skillfed

oldest-supported-numpy

Meta-package that provides the oldest NumPy that supports a given Python version and platform. If wheels for the platform became available on PyPI only for a more recent NumPy version, then that NumPy version is specified.

oldest-supported-numpy v2023.12.21 13.5M downloads/30d#1,275 on PyPI55
Permissive license BSD DORMANT released

What it is and what it does

oldest-supported-numpy is a meta-package that solves a specific build-time problem: when you compile C extensions against NumPy, binaries built with older NumPy versions remain compatible with newer NumPy versions, but not vice versa. This package automatically selects and provides the oldest NumPy version that works with your target Python version and platform, eliminating the need to manually maintain a long list of version pins in your pyproject.toml.

You use it by adding it to your build-system requires list instead of manually pinning NumPy versions for each Python version. The package contains a static mapping of Python versions to the oldest compatible NumPy release (or the oldest with prebuilt wheels for your platform), and pip installs that NumPy version into your build environment automatically. This is purely a build-time convenience; your package can still require a newer NumPy at runtime if needed.

Use it for:

  • Building a NumPy-based C extension without manually maintaining version pins for each Python version.
  • Ensuring compiled wheels remain forward-compatible with newer NumPy versions in user environments.
  • Simplifying pyproject.toml for packages that depend on NumPy's C API but don't require recent NumPy features.
  • Updating build requirements automatically as new Python versions are released, without editing pyproject.toml.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Provides the oldest version of NumPy compatible with a given Python version and platform, for use as a build-time dependency to ensure ABI compatibility across compiled extensions.

Yes, if you maintain a package with NumPy C extensions and want to avoid manual version pinning in pyproject.toml. The dormant maintenance status is not a concern because the package's role is static—it maintains a mapping that only needs updates when NumPy or Python versions change. Check that the pinned NumPy versions still match your platform and Python support before adopting it.

Install

oldest-supported-numpy on PyPI

pip

pip install oldest-supported-numpy

uv

uv add oldest-supported-numpy

poetry

poetry add oldest-supported-numpy

Installing oldest-supported-numpy

Before you install

Low friction; single runtime dependency (numpy). Dormant maintenance status (last release 2023-12-21, no commits since 2024-09-15), but the package's role is narrow and stable—it maintains a static mapping of Python versions to NumPy versions rather than active feature development.

License in practice

BSD license is permissive; no restrictions on use or redistribution in your own projects.

Quickstart

# In pyproject.toml:
[build-system]
requires = ["wheel", "setuptools", "oldest-supported-numpy"]

# oldest-supported-numpy automatically installs the appropriate NumPy version
# for your Python version and platform during build.

Intended only for build-time use in pyproject.toml; not a runtime package for application code. Requires Python >= 3.7.

Verify before relying

  • Whether the NumPy version pinnings remain accurate for current Python releases beyond 3.7.
  • Whether dormant status (no commits since 2024-09-15) will delay updates if NumPy or Python compatibility issues arise.

Package facts

License BSD (permissive)
Python support supports the current Python release (>=3.7)
Install friction low — pure-Python wheel
Runtime dependencies 1 — numpy
Maintenance dormant — 967 days since the last release
Last repo commit
First released
Downloads 13,547,387/month — #1,275 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: oldest_supported_numpy-2023.12.21-py3-none-any.whl

Tags

numpy abi compatibility buildoldest numpy version pythonbuild dependency numpy pinningnumpy binary compatibilitypyproject.toml numpy requirement
build-time-onlyabi-compatibility

More Build Tools packages