diff --git a/.github/workflows/_checks.yml b/.github/workflows/_checks.yml index 2ed9a4d1..71026947 100644 --- a/.github/workflows/_checks.yml +++ b/.github/workflows/_checks.yml @@ -29,12 +29,9 @@ jobs: - "3.13" - "3.14" - "3.14t" + - "3.15" + - "3.15t" prerelease: [false] - include: - - python-version: "3.15" - prerelease: true - - python-version: "3.15t" - prerelease: true steps: - uses: actions/checkout@v6 - uses: extractions/setup-just@v4 diff --git a/docs/dev/contributing.md b/docs/dev/contributing.md index 717693a4..19145a85 100644 --- a/docs/dev/contributing.md +++ b/docs/dev/contributing.md @@ -46,7 +46,7 @@ The writing rules are in `docs/agents/docs-style.md`. ## What CI runs Every pull request runs `just lint-ci` and `just adr-check`, `just test-ci` and `just test-docs` on -Python 3.11 to 3.14 (3.15 as a pre-release), `just test-race --count=50` on the free-threaded +Python 3.11 to 3.15, `just test-race --count=50` on the free-threaded builds, `just test-docs-integrations`, `just docs-build`, and an offline link check of every Markdown file. diff --git a/docs/introduction/design-decisions.md b/docs/introduction/design-decisions.md index c82e5892..98f2c57c 100644 --- a/docs/introduction/design-decisions.md +++ b/docs/introduction/design-decisions.md @@ -27,7 +27,7 @@ What modern-di guarantees: guards `register` and `add_providers` with its own lock and iterates over a snapshot of the provider dict, so it never gets corrupted or raises "dict changed size during iteration". - Free-threaded CPython (PEP 703) is supported at `2 - Beta` and tested under real multithreading - on the `3.14t` build. It is Beta because modern-di relies on object-publication ordering (a + on the `3.14t` and `3.15t` builds. It is Beta because modern-di relies on object-publication ordering (a reader that sees a stored reference sees fully initialized fields), and CPython implements that without a published memory model to guarantee it. Per-operation latency is competitive, but throughput does not scale across cores: atomic reference counting of the objects every resolve diff --git a/pyproject.toml b/pyproject.toml index e5581fa5..b1f30e10 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,6 +14,7 @@ classifiers = [ "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15", "Programming Language :: Python :: Free Threading :: 2 - Beta", "Typing :: Typed", "Topic :: Software Development :: Libraries",