martinpdes-maintenance
Shared release preparation for the MartinPdeS scientific Python ecosystem.
The distribution is martinpdes-maintenance; its command is mps-maintenance.
Python 3.10 and newer are supported. The Python package lives directly in
martinpdes_maintenance/, following the flat layout used by MartinPdeS-docs.
Install
From a source checkout:
python -m pip install -e ".[dev,scm]"
This repository has not yet been published on PyPI. After publication, consumers can pin a reviewed version in their release development extra. The tool is not a runtime dependency of scientific packages.
Configure a consuming project
Add explicit settings to the consumer's pyproject.toml:
[tool.mps-maintenance]
version-file = "DeepPeak/_version.py"
version-method = "setuptools-scm"
conda-recipe = "conda.recipe/meta.yaml"
Use version-method = "literal" (the default) to update a simple
__version__ = version = "X.Y.Z" assignment directly. SCM mode requires this
tool's scm extra and generates the file using setuptools-scm. Optional settings:
zenodo = ".zenodo.json"
citation = "CITATION.cff"
All configured files must already exist inside the repository. Unknown settings
are errors. Project versions may be static in [project].version, or declared with
dynamic = ["version"]. Dynamic projects require version-method = "setuptools-scm"
and a configured version file; their project table is never rewritten. Conda recipes
must contain one literal version: field. Jinja-templated recipe versions and
prerelease creation are not supported in this initial implementation. Citation
updates currently change the version only, preserving existing date behavior.
Commands
Run from the consumer repository root, or supply --root /path/to/repository
before the subcommand:
mps-maintenance check
mps-maintenance check --version v1.2.3
mps-maintenance next patch
mps-maintenance tag v1.2.4 --dry-run
next selects the highest stable vMAJOR.MINOR.PATCH tag available locally,
including tags not reachable from HEAD. It ignores prerelease and unrelated tags;
fetch tags first when remote releases may be missing. It fails if no stable tag exists.
tag requires a clean, full Git checkout and an unused stable tag. It calculates
all replacements before writing, prints a diff, validates updated versions,
stages the release files, commits, then creates an annotated tag. --dry-run
prints the plan without writing repository files, staging, committing, or tagging.
Zenodo publication dates default to the local calendar date; --date YYYY-MM-DD
sets a reproducible date explicitly.
To actually create the release commit and tag, omit --dry-run. Nothing is
pushed. Existing Makefile push behavior should remain in the consumer repository.
A commit or tag failure leaves state for inspection: use git status and
git log -1, fix the cause, and recover explicitly. A tag failure can leave a
successful release commit. Do not blindly rerun or reset unrelated work.
Migration
- Install a reviewed tool revision in the release environment.
- Configure every file the old scripts check or update.
- Compare
check,next, and dry-run output with the old scripts. - Replace old script bodies with thin CLI wrappers, preserving Makefile behavior.
- Verify in a disposable clone before removing compatibility wrappers.
DeepPeak uses SCM generation; PyMieSim and PackLab additionally update Zenodo; BornSim uses literal generation plus Zenodo and Citation metadata. No consumer repositories are migrated automatically.
Development
python -m pytest
python -m ruff check .
python -m ruff format --check .
python -m build
python -m twine check dist/*
Tests create local temporary Git repositories and never push or publish. See CONTRIBUTING.md for release bootstrapping.
Metadata
Release files for martinpdes-maintenance 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| martinpdes_maintenance-0.2.1.tar.gz | 8.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| martinpdes_maintenance-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.0 kB
Release files / martinpdes_maintenance-0.2.1.tar.gz
| Download URL | martinpdes_maintenance-0.2.1.tar.gz |
|---|---|
| Size | 8.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0958d616bf4391ab09c7b5ad46a5282db85f2e44fffa216d2d2e5a8bc94f1c05
|
|
BLAKE2b-256 checksum How to use checksums |
c9d40aa1a62ba67f77e9def2903b0ff6816a074933ef323eac3a041b13b075c7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.17
|
Release files / martinpdes_maintenance-0.2.1-py3-none-any.whl
| Download URL | martinpdes_maintenance-0.2.1-py3-none-any.whl |
|---|---|
| Size | 8.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
91fa739e6e9c927fc6ae5c42256868ce02160648d25046ad65153c0bb8d5fad6
|
|
BLAKE2b-256 checksum How to use checksums |
9a6e2f5f4ecd3e56efad45290ecd25e6e9d3d209dc7b5d02c2d7a61ac83eac5a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.17
|
Security for martinpdes-maintenance 0.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.