github jjjake/internetarchive v5.12.0
Version 5.12.0

3 hours ago

Features and Improvements

  • Packaging metadata moved from setup.cfg to a PEP 621 pyproject.toml,
    built with hatchling. setup.py, setup.cfg, and MANIFEST.in are
    gone.
  • The package version is now derived from the git tag by hatch-vcs instead of
    being stored in internetarchive/__version__.py. Tagging vX.Y.Z is what
    sets the version, so the tag and the released version cannot disagree, and
    releases no longer need a version-bump PR or a follow-up .devN bump.
    internetarchive.__version__ keeps working for installed packages, reading
    the value hatch-vcs generates at build time. In a source checkout that has
    never been built it falls back to the installed distribution metadata, and
    reports 0.0.0.dev0 if the package is not installed at all.
  • make release RELEASE=X.Y.Z replaces make prepare-release /
    check-version; it validates the branch, tree, tag, and changelog section
    before pushing the tag.
  • The install_internetarchive CI job now tests installation across Python
    3.10-3.14 rather than across historical setuptools versions, which no longer
    mean anything now that hatchling is the build backend, and asserts that the
    installed version resolved from git rather than falling back.
  • setuptools and types-setuptools dropped from the development extras;
    nothing imports setuptools or pkg_resources at runtime.
  • Dependencies are now locked in uv.lock, and CI installs from it with
    uv sync --locked rather than resolving fresh on every run. Contributors
    who change a dependency must run uv lock in the same commit; the
    --locked flag fails the build when the lockfile and pyproject.toml
    disagree. tox still resolves per interpreter, since that is the point of
    running it.
  • The pex build tool and the twine/packaging release tools are now
    declared as PEP 735 dependency groups, so their versions are pinned by the
    lockfile without being published as installable extras. Previously CI
    installed them unpinned, which is how the pex bootstrap grew roughly
    500 KB between 5.11.0 and 5.11.1 with no change in this repository.
  • tests/requirements.txt is gone; it duplicated the test extra, which
    tox now uses directly.
  • mypy runs from the locked environment in both lint_python and the
    pre-commit hook, against explicit targets. The two checks previously used
    different mypy versions and different type-stub sets, so they could disagree
    about the same file.

What's Changed

Other Changes

  • Bump dev version to 5.11.2.dev0 (post-5.11.1 release) by @jjjake in #801
  • Move packaging to PEP 621 pyproject.toml, derive version from git tag by @jjjake in #802
  • Report request failures from ia account instead of printing null by @jjjake in #817
  • Lock dependencies with uv.lock and sync CI from it by @jjjake in #804
  • Date the 5.12.0 changelog section by @jjjake in #821

Full Changelog: v5.11.1...v5.12.0

Don't miss a new internetarchive release

NewReleases is sending notifications on new releases.