NumPy 2.1.3 is a maintenance release that fixes bugs and regressions
discovered after the 2.1.2 release. This release also adds support
for free threaded Python 3.13 on Windows.
The Python versions supported by this release are 3.10-3.13.
Improvements
Fixed a number of issues around promotion for string ufuncs with
StringDType arguments. Mixing StringDType and the fixed-width DTypes
using the string ufuncs should now generate much more uniform
results.
This is a walkthrough of the NumPy 2.1.0 release on Linux, modified for
building with GitHub Actions and cibuildwheels and uploading to the
anaconda.org staging repository for NumPy <https://anaconda.org/multibuild-wheels-staging/numpy>_.
The commands can be copied into the command line, but be sure to replace 2.1.0
by the correct version. This should be read together with the
:ref:general release guide <prepare_release>.
Facility preparation
Before beginning to make a release, use the requirements/*_requirements.txt files to
ensure that you have the needed software. Most software can be installed with
pip, but some will require apt-get, dnf, or whatever your system uses for
software. You will also need a GitHub personal access token (PAT) to push the
documentation. There are a few ways to streamline things:
Git can be set up to use a keyring to store your GitHub personal access token.
Search online for the details.
You can use the keyring app to store the PyPI password for twine. See the
online twine documentation for details.
Prior to release
Add/drop Python versions
When adding or dropping Python versions, three files need to be edited:
.github/workflows/wheels.yml # for github cibuildwheel
.travis.yml # for cibuildwheel aarch64 builds
setup.py # for classifier and minimum version check.
Make these changes in an ordinary PR against main and backport if necessary.
Using the BLD: prefix (build label) for the commit summary will cause the
wheel builds to be run so that the changes will be tested, We currently release
wheels for new Python versions after the first Python rc once manylinux and
cibuildwheel support it. For Python 3.11 we were able to release within a week
of the rc1 announcement.
Backport pull requests
Changes that have been marked for this release must be backported to the
maintenance/2.1.x branch.
Update 2.1.0 milestones
... (truncated)
Commits
98464cc Merge pull request #27690 from charris/prepare-2.1.3
cbda85b REL: Prepare for the NumPy 2.1.3 release [wheel build]
daa8699 Merge pull request #27672 from charris/backport-27666
614ca19 Merge pull request #27673 from charris/backport-27636
We are excited to announce the release of PyTorch® 2.5! This release features a new CuDNN backend for SDPA, enabling speedups by default for users of SDPA on H100s or newer GPUs. As well, regional compilation of torch.compile offers a way to reduce the cold start up time for torch.compile by allowing users to compile a repeated nn.Module (e.g. a transformer layer in LLM) without recompilations. Finally, TorchInductor CPP backend offers solid performance speedup with numerous enhancements like FP16 support, CPP wrapper, AOT-Inductor mode, and max-autotune mode.
This release is composed of 4095 commits from 504 contributors since PyTorch 2.4. We want to sincerely thank our dedicated community for your contributions. As always, we encourage you to try these out and report any issues as we improve 2.5. More information about how to get started with the PyTorch 2-series can be found at our Getting Started page.
As well, please check out our new ecosystem projects releases with TorchRec and TorchFix.
Beta
Prototype
CuDNN backend for SDPA
FlexAttention
torch.compile regional compilation without recompilations
Compiled Autograd
TorchDynamo added support for exception handling & MutableMapping types
Flight Recorder
TorchInductor CPU backend optimization
Max-autotune Support on CPU with GEMM Template
TorchInductor on Windows
FP16 support on CPU path for both eager mode and TorchInductor CPP backend
Autoload Device Extension
Enhanced Intel GPU support
*To see a full list of public feature submissions click here.
BETA FEATURES
[Beta] CuDNN backend for SDPA
The cuDNN "Fused Flash Attention" backend was landed for torch.nn.functional.scaled_dot_product_attention. On NVIDIA H100 GPUs this can provide up to 75% speed-up over FlashAttentionV2. This speedup is enabled by default for all users of SDPA on H100 or newer GPUs.
[Beta] torch.compile regional compilation without recompilations
Regional compilation without recompilations, via torch._dynamo.config.inline_inbuilt_nn_modules which default to True in 2.5+. This option allows users to compile a repeated nn.Module (e.g. a transformer layer in LLM) without recompilations. Compared to compiling the full model, this option can result in smaller compilation latencies with 1%-5% performance degradation compared to full model compilation.
... (truncated)
Commits
a8d6afb Disabling amp context when invoking compiler (#138659)
class Pet(Enum):
CAT = 1 # Member attribute
DOG = 2 # Member attribute
WOLF: int = 3 # New error: Enum members must be left unannotated
species: str # Considered a non-member attribute
In particular, the specification change can result in issues in type stubs (.pyi files), since
historically it was common to leave the value absent:
# In a type stub (.pyi file)
class Pet(Enum):
# Change in semantics: previously considered members, now non-member attributes
CAT: int
DOG: int
# Mypy will now issue a warning if it detects this situation in type stubs:
# > Detected enum "Pet" in a type stub with zero members.
# > There is a chance this is due to a recent change in the semantics of enum membership.
# > If so, use `member = value` to mark an enum member, instead of `member: type`
class Pet(Enum):
# As per the specification, you should now do one of the following:
DOG = 1 # Member attribute with value 1 and known type
WOLF = cast(int, ...) # Member attribute with unknown value but known type
LION = ... # Member attribute with unknown value and unknown type
Contributed by Terence Honles in PR 17207 and
Shantanu Jain in PR 18068.
Mypy 1.13
We’ve just uploaded mypy 1.13 to the Python Package Index (PyPI).
Mypy is a static type checker for Python. You can install it as follows:
Black is now officially tested with Python 3.13 and provides Python 3.13
mypyc-compiled wheels. (#4436) (#4449)
Black will issue an error when used with Python 3.12.5, due to an upstream memory
safety issue in Python 3.12.5 that can cause Black's AST safety checks to fail. Please
use Python 3.12.6 or Python 3.12.4 instead. (#4447)
Black no longer supports running with Python 3.8 (#4452)
Stable style
Fix crashes involving comments in parenthesised return types or X | Y style unions.
(#4453)
Fix skipping Jupyter cells with unknown %% magic (#4462)
Preview style
Fix type annotation spacing between * and more complex type variable tuple (i.e. def fn(*args: *tuple[*Ts, T]) -> None: pass) (#4440)
Caching
Fix bug where the cache was shared between runs with and without --unstable (#4466)
Packaging
Upgrade version of mypyc used to 1.12 beta (#4450) (#4449)
blackd now requires a newer version of aiohttp. (#4451)
Output
Added Python target version information on parse error (#4378)
Add information about Black version to internal error messages (#4457)
Black is now officially tested with Python 3.13 and provides Python 3.13
mypyc-compiled wheels. (#4436) (#4449)
Black will issue an error when used with Python 3.12.5, due to an upstream memory
safety issue in Python 3.12.5 that can cause Black's AST safety checks to fail. Please
use Python 3.12.6 or Python 3.12.4 instead. (#4447)
Black no longer supports running with Python 3.8 (#4452)
Stable style
Fix crashes involving comments in parenthesised return types or X | Y style unions.
(#4453)
Fix skipping Jupyter cells with unknown %% magic (#4462)
Preview style
Fix type annotation spacing between * and more complex type variable tuple (i.e. def fn(*args: *tuple[*Ts, T]) -> None: pass) (#4440)
Caching
Fix bug where the cache was shared between runs with and without --unstable (#4466)
Packaging
Upgrade version of mypyc used to 1.12 beta (#4450) (#4449)
blackd now requires a newer version of aiohttp. (#4451)
Output
Added Python target version information on parse error (#4378)
Add information about Black version to internal error messages (#4457)
Fix bad example in documentation for dependency groups - by :user:gaborbernat. (:issue:3240)
v4.23.0 (2024-10-16)
Features - 4.23.0
- Add ``NETRC`` to the list of environment variables always passed through. (:issue:`3410`)
Improved Documentation - 4.23.0
replace [tool.pyproject] and [tool.tox.pyproject] with [tool.tox] in config.rst (:issue:3411)
v4.22.0 (2024-10-15)
Features - 4.22.0
- Implement dependency group support as defined in :pep:`735` - see :ref:`dependency_groups` - by :user:`gaborbernat`. (:issue:`3408`)
v4.21.2 (2024-10-03)
Bugfixes - 4.21.2
Include tox.toml in sdist archives to fix test failures resulting from its lack.
by :user:mgorny (:issue:3389)
v4.21.1 (2024-10-02)
Bugfixes - 4.21.1
- Fix error when using ``requires`` within a TOML configuration file - by :user:`gaborbernat`. (:issue:`3386`)
- Fix error when using ``deps`` within a TOML configuration file - by :user:`gaborbernat`. (:issue:`3387`)
- Multiple fixes for the TOML configuration by :user:`gaborbernat`.:
Do not fail when there is an empty command within commands.
</tr></table>
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Updates the requirements on numpy, torch, qrcode, horde-sdk, horde-engine, horde-model-reference, mypy, black, ruff, tox and pre-commit to permit the latest version. Updates
numpy
from 1.26.4 to 2.1.3Release notes
Sourced from numpy's releases.
... (truncated)
Changelog
Sourced from numpy's changelog.
... (truncated)
Commits
98464cc
Merge pull request #27690 from charris/prepare-2.1.3cbda85b
REL: Prepare for the NumPy 2.1.3 release [wheel build]daa8699
Merge pull request #27672 from charris/backport-27666614ca19
Merge pull request #27673 from charris/backport-27636e6b02d7
DOC: add release note54fd729
BUG: substantially simplify and fix issue with justification promotera90fe7c
BUG: fix more issues with string ufunc promotiona121864
BUG: fixes for StringDType/unicode promotersf055fb9
BUG: Fix a reference count leak in npy_find_descr_for_scalar.5895c02
Merge pull request #27669 from charris/backport-27663Updates
torch
from 2.3.1 to 2.5.1Release notes
Sourced from torch's releases.
... (truncated)
Commits
a8d6afb
Disabling amp context when invoking compiler (#138659)f31b8bb
[MPS] Fix sliced cast (#138535)848e7ac
[SDPA-CUDNN] Make CuDNN Attention Opt in (#138587)885c823
Update doc copyrights to 2024 (#138650)8c3ed97
Update cpuinfo submodule (#138600)70cf2bb
Add link to torch.compile the missing manual in troubleshooting (#137369)cde6b38
Don't try to load cufile (#138539)4076a73
[Cherry-Pick] Use cuda 12.4 pytorch_extra_install_requirements as default (#1...a97c151
update getting started xpu (#138090)32f585d
[Release only] use triton 3.1.x from pypi (#137895)Updates
qrcode
from 7.4.2 to 8.0Changelog
Sourced from qrcode's changelog.
Commits
456b01d
Preparing release 8.0909b791
Merge pull request #370 from lincolnloop/poetrydc783ed
Update CHANGELOG and README68f3b29
Raise error if embedded image is provided and error correction is lower than Hffa2b4a
Merge branch 'poetry' into fix/embedded-and-error-correction39cf502
Fix test dependency skipd991b67
Update poetry dependency groups to allow having pillow and png together11b0f95
Merge branch 'poetry' into decompat5760eec
Run ruf and fix formatting137946a
Fix import errors in testsUpdates
horde-sdk
to 0.16.0Release notes
Sourced from horde-sdk's releases.
Commits
dd4a5fe
Merge pull request #276 from Haidra-Org/mainbd64abe
feat: bare-bones 'style' api update support2d3530f
fix: config default root models to allow new API fieldseb20833
Merge pull request #272 from Haidra-Org/main7912776
fix: use new default ssl context in all aiohttp requests (#271)f9df079
Merge pull request #270 from Haidra-Org/main63a3917
style: fix19dae45
feat: addssl_context
arge726c55
docs: add missing ssl_context docstringa9260d9
ci: remove pre-commit job steps; replaced by dedi. actionUpdates
horde-engine
to 2.17.1Release notes
Sourced from horde-engine's releases.
Commits
69af49e
Merge pull request #356 from Haidra-Org/main1d83b8d
fix: set torch 2.4.1 for rocm compat for nowc710b5d
ci: update changelog2811d1c
Merge pull request #354 from Haidra-Org/main366ca85
feat: use torch>=2.5.0 by default89ae3de
feat: use comfyui73e3a9e6
e17d0e4
ci: update changelog2da5186
Merge pull request #349 from Haidra-Org/maincd9497b
tests/fix: include all models required for tests as fixtures1404626
fix: prevent comfyui internals error with layer diffusionUpdates
horde-model-reference
to 0.9.1Release notes
Sourced from horde-model-reference's releases.
Commits
d1a64a9
Merge pull request #148 from Haidra-Org/main825cf0e
ci: remove pre-commit github action (replaced by https://pre-commit.ci/)a954f5d
chore: update black pre-commit hook64c5681
[pre-commit.ci] pre-commit autoupdate2bac968
build(deps-dev): bump the python-packages group across 1 directory with 6 upd...a3e2377
fix: set new type hint for otherrequirements
fields8bd5607
fix: allow floats for model requirement valuese6dfd02
ci:pre-commit.ci
configUpdates
mypy
from 1.11.2 to 1.13.0Changelog
Sourced from mypy's changelog.
... (truncated)
Commits
eb31034
Bump version to 1.13.02eeb588
Update changelog for 1.12.1 (#17999)bc0386b
Changelog for 1.13 (#18000)5c4d2db
Add faster-cache extra, test in CI (#17978)854ad18
Make is_sub_path faster (#17962)50aa4ca
Speed up stubs suggestions (#17965)7c27808
Use orjson instead of json, when available (#17955)2cd2406
Use fast path in modulefinder more often (#17950)e20aaee
Let mypyc optimise os.path.join (#17949)159974c
Use sha1 for hashing (#17953)Updates
black
from 24.8.0 to 24.10.0Release notes
Sourced from black's releases.
Changelog
Sourced from black's changelog.
Commits
1b2427a
Prepare release 24.10.0 (#4471)a22b1eb
Add mypyc 3.13 wheel build (#4449)b7d0e72
Bump AndreMiras/coveralls-python-action from 65c1672f0b8a201702d86c81b79187df...f1a2f92
Include --unstable in cache key (#4466)8d9d18c
Fix skipping Jupyter cells with unknown %% magic (#4462)bbfdba3
Fix docs CI: use venv for uv to fix 'failed to create directory' (#4460)8fb2add
Use builtin generics (#4458)2a45cec
Fix crashes with comments in parentheses (#4453)b4d6d86
Drop Python 3.8 support (#4452)ac018c1
Require newer aiohttp for blackd (#4451)Updates
ruff
from 0.6.5 to 0.7.2Release notes
Sourced from ruff's releases.
... (truncated)
Changelog
Sourced from ruff's changelog.
... (truncated)
Commits
11c3b52
generate using cargo-dista388e49
Temporary comment out certain release steps099f077
[docs] Add rule short code to mkdocs tags (#14040)8574751
Give non-existent files a durability of at least Medium (#14034)ddae741
Switch touv publish
(#14042)5053d2c
Doc: markdown link fix (#14041)ef72fd7
Bump version to 0.7.2 (#14039)658a51e
Fix typo for static method decorator (#14038)7c2da4f
Sync vendored typeshed stubs (#14030)48fa839
Use named function in incremental red knot benchmark (#14033)Updates
tox
to 4.23.2Release notes
Sourced from tox's releases.
Changelog
Sourced from tox's changelog.
... (truncated)
Commits
0447036
release 4.23.2f0799ac
Support external tox.pytest usage via "test" extra (#3422)ec88713
Fix docs link check962bc59
release 4.23.15916cc9
Fix example docs (#3421)e9cb93a
[pre-commit.ci] pre-commit autoupdate (#3418)88c1b99
Docs: adjusting EOL Python version testing remarks (#3417)7696a8e
release 4.23.0c01a023
Add NETRC to the default_pass_env list (#3410)971e7da
replace tool.pyproject and tool.tox.pyproject with tool.tox in config… (#3411)Updates
pre-commit
to 4.0.1Release notes
Sourced from pre-commit's releases.
Changelog
Sourced from pre-commit's changelog.
... (truncated)
Commits
cc4a522
v4.0.1772d7d4
Merge pull request #3324 from pre-commit/migrate-config-purelib222c62b
fix migrate-config for purelib yaml3d5548b
Merge pull request #3323 from pre-commit/pre-commit-ci-update-config4235a87
[pre-commit.ci] pre-commit autoupdatedbccd57
v4.0.0d07e529
Merge pull request #3320 from pre-commit/remove-python-venv801b956
remove deprecated python_venv aliasa2f7b80
Merge pull request #3315 from pre-commit/warn-deprecated-stage-names-on-initd317223
add warning for deprecates stages for remote repos on initDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show