Skip to content

Commit 03a4c55

Browse files
committed
Release v0.3.0
1 parent d5a8e63 commit 03a4c55

File tree

9 files changed

+18
-14
lines changed

9 files changed

+18
-14
lines changed

.github/workflows/release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ jobs:
2929
- name: Build wheels
3030
uses: pypa/cibuildwheel@v2.21.3
3131
env:
32-
# Build for Python 3.9+
33-
CIBW_BUILD: "cp39-* cp310-* cp311-* cp312-* cp313-*"
32+
# Build for Python 3.11+
33+
CIBW_BUILD: "cp311-* cp312-* cp313-*"
3434
# Skip PyPy, musllinux, and 32-bit Linux
3535
CIBW_SKIP: "pp* *-musllinux_* *-manylinux_i686"
3636

.github/workflows/tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
fail-fast: false
1515
matrix:
1616
os: [ubuntu-22.04, macos-13]
17-
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
17+
python-version: ["3.11", "3.12", "3.13"]
1818
steps:
1919
- uses: actions/checkout@v4
2020
- uses: actions/setup-python@v5

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [0.3.0] - 2025-12-06
9+
10+
### Changed
11+
12+
- **BREAKING**: Minimum Python version raised to 3.11 (was 3.9)
13+
814
## [0.2.3] - 2025-12-06
915

1016
### Changed

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ This document provides guidelines for setting up your development environment an
66

77
NetGraph-Core is a hybrid C++/Python project. You will need:
88

9-
- Python 3.9+
9+
- Python 3.11+
1010
- C++20 compatible compiler (GCC 10+, Clang 12+, MSVC 2019+)
1111
- CMake 3.23+
1212
- Ninja (recommended)

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
VENV_BIN := $(PWD)/venv/bin
1212

1313
# PY_BEST: scan for newest supported Python (used when creating new venvs)
14-
# Supports 3.9-3.13 to match CI matrix
15-
PY_BEST := $(shell for v in 3.13 3.12 3.11 3.10 3.9; do command -v python$$v >/dev/null 2>&1 && { echo python$$v; exit 0; }; done; command -v python3 2>/dev/null || command -v python 2>/dev/null)
14+
# Supports 3.11-3.13 to match requires-python >=3.11
15+
PY_BEST := $(shell for v in 3.13 3.12 3.11; do command -v python$$v >/dev/null 2>&1 && { echo python$$v; exit 0; }; done; command -v python3 2>/dev/null || command -v python 2>/dev/null)
1616

1717
# PY_PATH: active python3/python on PATH (respects CI setup-python and activated venvs)
1818
PY_PATH := $(shell command -v python3 2>/dev/null || command -v python 2>/dev/null)

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ make cov # Coverage report (C++ + Python)
8989
## Requirements
9090

9191
- **C++:** C++20 compiler (GCC 10+, Clang 12+, MSVC 2019+)
92-
- **Python:** 3.9+
92+
- **Python:** 3.11+
9393
- **Build:** CMake 3.15+, scikit-build-core
9494
- **Dependencies:** pybind11, NumPy
9595

pyproject.toml

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ build-backend = "scikit_build_core.build"
44

55
[project]
66
name = "netgraph-core"
7-
version = "0.2.3"
7+
version = "0.3.0"
88
description = "C++ implementation of graph algorithms for network flow analysis and traffic engineering with Python bindings"
99
readme = "README.md"
10-
requires-python = ">=3.9"
10+
requires-python = ">=3.11"
1111
license = { text = "AGPL-3.0-or-later" }
1212
authors = [{ name = "Project Contributors" }]
1313
classifiers = [
@@ -18,8 +18,6 @@ classifiers = [
1818
"Topic :: Software Development :: Libraries :: Python Modules",
1919
"License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)",
2020
"Programming Language :: Python :: 3",
21-
"Programming Language :: Python :: 3.9",
22-
"Programming Language :: Python :: 3.10",
2321
"Programming Language :: Python :: 3.11",
2422
"Programming Language :: Python :: 3.12",
2523
"Programming Language :: Python :: 3.13",
@@ -80,7 +78,7 @@ skip-magic-trailing-comma = false
8078

8179
[tool.pyright]
8280
typeCheckingMode = "standard"
83-
pythonVersion = "3.9"
81+
pythonVersion = "3.11"
8482
exclude = [
8583
"venv/**",
8684
"tests/**",

python/netgraph_core/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
__all__ = ["__version__"]
44

5-
__version__ = "0.2.3"
5+
__version__ = "0.3.0"

tests/py/conftest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ def cost_dist_dict():
7070
def _to_dict(summary) -> dict[float, float]:
7171
costs = np.asarray(getattr(summary, "costs", []), dtype=float)
7272
flows = np.asarray(getattr(summary, "flows", []), dtype=float)
73-
return {float(c): float(f) for c, f in zip(costs, flows)}
73+
return {float(c): float(f) for c, f in zip(costs, flows, strict=False)}
7474

7575
return _to_dict
7676

0 commit comments

Comments
 (0)