Stratax 0.2.0
Loading...
Searching...
No Matches
Releasing

Releasing

Checklist for preparing a Stratax release.

Version Updates

Update all user-visible version references together:

  • pyproject.toml project version
  • docs/Doxyfile PROJECT_NUMBER
  • docs/mainpage.md footer
  • docs/guides/CHANGELOG.md

Keep the changelog focused on public behavior: new APIs, changed behavior, bug fixes, docs updates, and known limitations.

Pre-Release Checks

Run the C++ build and tests:

cmake -S . -B build
cmake --build build
ctest --test-dir build --output-on-failure

Run Python tests:

python -m pip install -e .[dev]
python -m pytest tests/python

Run representative examples:

python examples/python/vector.py
python examples/python/matrix.py
python examples/python/tensor.py

Documentation

GitHub Pages documentation is generated by .github/workflows/docs.yml using docs/Doxyfile. Source docs should be updated before release; generated HTML does not need hand edits.

If generated HTML is committed for a release branch, regenerate it from source with Doxygen and review it as generated output. Do not edit files under docs/output/html directly.

For local verification:

doxygen docs/Doxyfile

Check that the generated landing page includes the current user guide, examples, roadmap, and developer docs.

Packaging

Before building distributions, confirm the Python package contains the public exports and typing files:

  • python/stratax/__init__.py
  • python/stratax/_core.pyi
  • python/stratax/py.typed

Local copied extension binaries such as _core.cp313-win_amd64.pyd are build artifacts and should remain ignored by Git. The release wheel should receive the freshly built _core extension through the CMake install rule.

Build source and wheel distributions from a clean checkout:

python -m pip install --upgrade build twine
python -m build
python -m twine check dist/*

Inspect package metadata before uploading:

python -m pip install --force-reinstall dist/stratax-*.whl
python -c "import stratax; print(stratax.__version__)"

For a quick typing artifact check, inspect the built wheel and confirm it contains stratax/_core.pyi and stratax/py.typed.

Publish

Create the release tag after tests, examples, docs, and packaging checks pass.

git tag v0.2.0
git push origin v0.2.0

Upload distributions only after the tag and changelog match the intended release:

python -m twine upload dist/*

After publishing, verify the PyPI page, install from PyPI in a fresh environment, and confirm the GitHub Pages workflow completes successfully.