Building and packaging
This page covers building distributions and the planned conda-forge submission. The end-to-end release procedure is in Release checklist.
Building distributions
$ python -m pip install -e ".[dev]"
$ python -m build # writes sdist + wheel to dist/
$ twine check dist/* # validates package metadata
The build is warning-free, and the sdist is self-contained: it ships the complete test suite, the golden corpus, and the documentation source, so the tests can be run from an unpacked sdist.
Wheel smoke test
$ python -m venv /tmp/wheel-env
$ /tmp/wheel-env/bin/python -m pip install dist/*.whl
$ /tmp/wheel-env/bin/python -c "import pyiecwind; print(pyiecwind.__version__)"
$ /tmp/wheel-env/bin/pyiecwind template /tmp/smoke.ipt
Conda-forge submission
A conda-forge-style recipe lives in recipe/meta.yaml. It is configured as
noarch: python with a runtime dependency on numpy >=1.24 and the
pyiecwind CLI entry point.
Important
The sha256 in recipe/meta.yaml is the hash of the tagged source
archive and must be recomputed whenever the version tag changes, because the
archive contents (and therefore the hash) are fixed only once the tag exists:
$ curl -sL https://github.com/SMI-Lab-Inha/pyIECWind/archive/refs/tags/vX.Y.Z.tar.gz | sha256sum
(substitute the release version for vX.Y.Z). Update both
recipe/meta.yaml and any documentation referencing the hash with the result
on every release.
Submission workflow:
Confirm the GitHub tag (
vX.Y.Z) exists and the source URL resolves.Recompute and set the
sha256as above.Fork
conda-forge/staged-recipesand addrecipes/pyiecwind/meta.yamlfrom this repository’s recipe.Open a PR (a suggested body is in
recipe/STAGED_RECIPES_PR_BODY.md) and let conda-forge CI and linting run.After merge, conda-forge creates the
pyiecwind-feedstock; future version bumps happen there rather than instaged-recipes.
The intended recipe-maintainers entry is the GitHub handle SMI-Lab-Inha.