For users: minimal installation within an existing environment
conda install -c conda-forge xbudgetFor developers: installing from scratch using conda
git clone git@github.com:hdrake/xbudget.git
cd xbudget
conda env create -f docs/environment.yml
conda activate docs_env_xbudget
pip install -e .
python -m ipykernel install --user --name docs_env_xbudget --display-name "docs_env_xbudget"
jupyter-labThe git tag is the version. xbudget has no version string checked into the
source tree: hatch-vcs derives it from the tag at build time and writes
xbudget/_version.py (gitignored, but shipped inside the sdist and wheel). To
cut a release you tag; there is no file to bump and nothing to keep in sync.
- Make sure
mainis green and has everything you want in the release, and move the## Unreleasedentries in CHANGELOG.md under the new version heading. - Publish a GitHub Release whose tag is
vX.Y.Z, targeting the commit you want to ship:Publishing it (not merely pushing a tag) is what fires the workflow. Target the commit you actually want: a tag placed before the commit you meant to release builds the previous version, and PyPI rejects it as a duplicate.gh release create vX.Y.Z --target "$(git rev-parse origin/main)" \ --title vX.Y.Z --generate-notes - The Publish to PyPI workflow builds from that tag and uploads. It checks
out with
fetch-depth: 0so the tag is visible tohatch-vcs, and asserts that the built version matches the tag before publishing. - Verify: https://pypi.org/project/xbudget/.
- conda-forge builds from the PyPI sdist and lags by design; the autotick bot
opens the version-bump PR. The feedstock recipe must list
hatch-vcsalongsidehatchlingin itshostrequirements, since it builds with--no-build-isolation.