Repository navigation
Releases: pdssp/planetary_fetch
Release list
2.0.0
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.
- Stop tracking .pypirc (
31a97f5)
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.
- Remove Travis CI (
51fe610)
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