Skip to content

Releases: pdssp/planetary_fetch

Release list

2.0.0

Choose a tag to compare

@github-actions github-actions released this 14 Oct 21:14

v2.0.0 (2026-10-14)

This release is published under the GPL-3.0-or-later License.

Bug Fixes

  • download: Report failed and skipped files, cache the umask (22ba0b6)

Read the process umask once at import instead of resetting it in each download thread. os.umask is process-wide, so the old reset briefly set the umask to 0 for every thread, and a directory created in that window by os.makedirs could end up world-writable.

A failed download no longer aborts the batch. Files.download() now waits on each future with as_completed, logs each failure and returns the list of (url, error). PlanetaryFetchLib.run() still renders the CRISM report, then raises DownloadError listing every failed file. With --with_ub, the UB selection is skipped when a download failed, because it needs the TRR3 labels.

Files without a storage rule are still logged one by one at debug level, and a single warning now gives their count so they are no longer hidden at the default log level.

Tests: - download continues after one file fails - run() renders the report and then raises DownloadError - the skipped-files warning is emitted - the umask test patches the cached _UMASK value

Build System

  • Migrate packaging to pyproject.toml (4b14ea7)

Replace setup.py and the requirements files with PEP 621 metadata in pyproject.toml. The version still comes from git tags through setuptools-scm, with 0.0.0 as fallback.

  • runtime dependencies are only requests and tqdm; setuptools-scm and
    types-setuptools were build/typing tools, not runtime needs

  • development tools move to the "test" and "dev" extras, unpinned
    (the old pins no longer install on recent Python)

  • README is declared as reStructuredText instead of Markdown

  • fix the duplicated license classifier

  • _version.py uses importlib.metadata instead of pkg_resources, which
    is no longer available with Python 3.12+ and recent setuptools

  • Makefile, MANIFEST.in and CONTRIBUTING.rst no longer refer to
    setup.py or the requirements files

  • Require Python 3.11 or later (aa4da7b)

Python 3.10 reaches end of life in October 2026.

BREAKING CHANGE: Python 3.10 is no longer supported.

  • Switch to uv with the uv_build backend (7de7d61)

uv_build cannot read the version from git tags, so the version is now static in pyproject.toml (starting at 1.1.0, the latest tag). python-semantic-release writes the new version to pyproject.toml and uv.lock, builds with uv, then commits "chore(release): X.Y.Z" to main and tags it.

  • development tools move from the "dev" extra to dependency groups,
    locked in uv.lock
  • the license is declared with PEP 639, so LICENSE and AUTHORS.rst are
    now shipped in the wheel and sdist
  • the release workflow uses setup-uv, runs the tests with --locked and
    calls the semantic-release CLI through uvx
  • Makefile, CONTRIBUTING.rst and README.rst use uv
  • MANIFEST.in is removed; only setuptools used it

Chores

  • Add conventional commit message template (8104260)

Add a .gitmessage template listing the commit types and the release each one triggers. make install-dev enables it, and CONTRIBUTING.rst now documents the Conventional Commits format.

  • Add Renovate configuration (d6c0004)

Weekly updates for the pyproject dependencies, the GitHub Actions and the pre-commit hooks (CI and pre-commit grouped in one PR). Commit messages follow conventional commits, so runtime dependency updates (fix(deps)) produce a patch release and the others (chore(deps)) do not.

The file may hold PyPI credentials. It is now ignored, and make prepare-dev no longer copies it to the home directory.

Continuous Integration

  • Release automatically from conventional commits (9a2aad4)

On every push to main, run the tests on Python 3.10, 3.12 and 3.13, then let python-semantic-release compute the next version from the commit messages (fix -> patch, feat -> minor, breaking -> major).

The version lives only in git tags, read by setuptools-scm, so the workflow only creates the tag and the GitHub release and never commits to main. The wheel and sdist are built after tagging and attached to the release.

It duplicated the GitHub Actions workflow and still targeted Python 3.8, below the required 3.10.

Documentation

  • Add rrauhun to contributors (5c0f140)

  • Fix README for the pdssp/planetary_fetch repository (442f4fd)

  • point every link and badge to pdssp/planetary_fetch and the main
    branch; clone over https instead of the disabled git:// protocol

  • drop the PyPI badge (the package is not on PyPI) and the disabled
    badges

  • state the Python >= 3.11 requirement and install a release with
    uv tool install or pip, pinned to a tag

  • describe the uv-based development setup and Conventional Commits

  • quote the wildcard IDs in the usage examples

  • replace the Markdown links with RST links and remove the
    Sphinx-only highlight directive rejected by PyPI's renderer

  • fix the project URL in pyproject.toml, _version.py,
    CONTRIBUTING.rst and init_remote_repo.bash

  • fix the "dowload" typo in the description and file headers

Breaking Changes

  • Python 3.10 is no longer supported.

Detailed Changes: 1.1.0...2.0.0