From 41c695d286c2637b6023141b2c9e083531f2c49f Mon Sep 17 00:00:00 2001 From: Oscar Benjamin Date: Fri, 29 Aug 2025 15:30:00 +0100 Subject: [PATCH 1/2] maint: update release notes --- README.md | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6e48216d..a9938b86 100644 --- a/README.md +++ b/README.md @@ -167,18 +167,42 @@ Contributors - Oscar Benjamin (OB) - Robert Dougherty-Bliss (RDB) - Rémy Oudompheng (RO) +- Agriya Khetarpal (AK) Changes +- [gh-302](https://github.com/flintlib/python-flint/pull/302), + [gh-283](https://github.com/flintlib/python-flint/pull/283), + [gh-284](https://github.com/flintlib/python-flint/pull/284), + Wheels now ship MPFR 4.2.2 and FLINT 3.3.0. Cython 3.1 is now + supported for building (and required for the freethreaded + build). Wheels are provided for CPython 3.14 and 3.14t + (free-threaded) and PyPy 3.11. (OB) - [gh-310](https://github.com/flintlib/python-flint/pull/310), Add `truncate`, `left_shift` and `right_shift` methods to `fmpz_poly`, `fmpq_poly`, `nmod_poly`, `acb_poly`, `arb_poly` to match other univariate polynomial types. (RO) -- [gh-300](https://github.com/flintlib/python-flint/pull/300), Fix `arb.repr` - which now returns a Python representation that round trips. (OB) +- [gh-287](https://github.com/flintlib/python-flint/pull/287), + [gh-293](https://github.com/flintlib/python-flint/pull/293), + [gh-305](https://github.com/flintlib/python-flint/pull/305), + [gh-307](https://github.com/flintlib/python-flint/pull/307), + [gh-309](https://github.com/flintlib/python-flint/pull/309), + Add type annotations for `fmpz`, `fmpq`, `nmod`, `fmpz_mod`, + `fq_default`, `fmpz_poly`, `fmpq_poly`, `nmod_poly`, + `fmpz_mod_poly`, `fq_default_poly`, `fmpz_mpoly`, `fmpq_mpoly`, + `nmod_mpoly`, `fmpz_mod_mpoly`, `fmpz_series` and `fmpq_series` + (about half of the codebase). (OB) +- [gh-300](https://github.com/flintlib/python-flint/pull/300), + Fix `arb.repr` which now returns a Python representation that + round trips. (OB) +- [gh-292](https://github.com/flintlib/python-flint/pull/292), + The `fmpq` constructor now accepts `fmpq` numerator and denominator + as input. (OB) - [gh-289](https://github.com/flintlib/python-flint/pull/289), Add `.prec` attribute to series types `fmpz_series`, `fmpq_series`, `arb_series` and `acb_series`. (OB) +- [gh-285](https://github.com/flintlib/python-flint/pull/285), + Don't use deprecated meson build option. (AK) - [gh-274](https://github.com/flintlib/python-flint/pull/274), Add resultant methods to `fmpz_poly`, `fmpq_poly` and `nmod_poly`. Now all univariate and polynomial types have the From 5ad1dc9fb680bb009709759ac0431f66e383c9d7 Mon Sep 17 00:00:00 2001 From: Oscar Benjamin Date: Fri, 29 Aug 2025 15:53:35 +0100 Subject: [PATCH 2/2] release: bump version to 0.8.0 and update README --- README.md | 37 ++++++++++++++++++++++++++----------- doc/source/conf.py | 4 ++-- pyproject.toml | 2 +- src/flint/__init__.py | 2 +- src/flint/test/test_all.py | 2 +- 5 files changed, 31 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index a9938b86..53707b52 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ Author: Fredrik Johansson Installation ------------ -Currently python-flint supports CPython versions 3.11-3.13 and 3.13t +Currently python-flint supports CPython versions 3.11-3.14 and 3.14t (free-threaded) and provides binaries on PyPI for the following platforms: - Windows (x86-64) @@ -144,37 +144,52 @@ Compatible versions: | python-flint | Release date | CPython | FLINT | Cython | |--------------|---------------|-------------|------------|------------------| -| `0.8.0` | Aug 2025?| `3.11-3.14` | `3.0-3.3` | `3.1` only | +| `0.8.0` | 29th Aug 2025 | `3.11-3.14` | `3.0-3.3` | `3.1` only | | `0.7.0` | 16th Mar 2025 | `3.11-3.13` | `3.0-3.2` | `3.0.11-3.1.0a1` | | `0.6.0` | 1st Feb 2024 | `3.9-3.12` | `3.0` only | `3.0` only | The requirement for Cython 3.1 is only for CPython's free-threaded build. -Otherwise any version of Cython 3.x is fine. As of python-flint 0.7.0, CPython -3.13 [PEP 703](https://peps.python.org/pep-0703/) free-threaded (no-GIL) builds -of python-flint are provided. In the the free-threaded build, mutating matrices -or polynomials from multiple threads can lead to memory corruption. There are -some other known issues with the free-threaded build so it should be considered +Otherwise Cython 3.0 is fine. As of python-flint 0.7.0, CPython 3.13 [PEP +703](https://peps.python.org/pep-0703/) free-threaded (no-GIL) builds of +python-flint are provided. In the the free-threaded build, mutating matrices or +polynomials from multiple threads can lead to memory corruption. There are some +other known issues with the free-threaded build so it should be considered experimental. CHANGELOG ========= -Next release (0.8.0)... +Next release (0.9.0)... ----------------------- -Contributors +0.8.0 +----- + +Contributors (0.8.0): - Oscar Benjamin (OB) - Robert Dougherty-Bliss (RDB) - Rémy Oudompheng (RO) - Agriya Khetarpal (AK) -Changes +Notes (0.8.0): + +- This mostly a maintenance release with some bug fixes, + dependency updates and a few smaller features. +- Since GitHub Actions is retiring its MacOS x86-64 runners + python-flint 0.8.0 is likely the last release to provide + prebuilt wheels for MacOS x86-64 (MacOS arm64 remains + fully supported). It is likely that future versions will + still work fine on MacOS x86-64 but would require building + from source and will not be tested in python-flint's CI. + MacOS arm64 wheels will still be provided and tested. + +Changes (0.8.0): - [gh-302](https://github.com/flintlib/python-flint/pull/302), [gh-283](https://github.com/flintlib/python-flint/pull/283), [gh-284](https://github.com/flintlib/python-flint/pull/284), - Wheels now ship MPFR 4.2.2 and FLINT 3.3.0. Cython 3.1 is now + Wheels now ship MPFR 4.2.2 and FLINT 3.3.1. Cython 3.1 is now supported for building (and required for the freethreaded build). Wheels are provided for CPython 3.14 and 3.14t (free-threaded) and PyPy 3.11. (OB) diff --git a/doc/source/conf.py b/doc/source/conf.py index 54d17558..6b232bfb 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -52,9 +52,9 @@ # built documents. # # The short X.Y version. -version = '0.7.1' +version = '0.8.0' # The full version, including alpha/beta/rc tags. -release = '0.7.1' +release = '0.8.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/pyproject.toml b/pyproject.toml index 9bbf1440..698b1928 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "python-flint" description = "Bindings for FLINT" -version = "0.7.1" +version = "0.8.0" # This needs to be in sync with README, and CI config. requires-python = ">= 3.11" authors = [ diff --git a/src/flint/__init__.py b/src/flint/__init__.py index bf055b80..1401e17c 100644 --- a/src/flint/__init__.py +++ b/src/flint/__init__.py @@ -48,7 +48,7 @@ Ordering, ) -__version__ = "0.7.1" +__version__ = "0.8.0" __all__ = [ "ctx", diff --git a/src/flint/test/test_all.py b/src/flint/test/test_all.py index 7837e554..d17da939 100644 --- a/src/flint/test/test_all.py +++ b/src/flint/test/test_all.py @@ -48,7 +48,7 @@ def raises(f, exception) -> bool: def test_pyflint(): - assert flint.__version__ == "0.7.1" + assert flint.__version__ == "0.8.0" ctx = flint.ctx assert str(ctx) == repr(ctx) == _default_ctx_string