Release process
The project is released from version tags. The first release is v0.1.0; it is not published automatically by this repository state.
Local preparation
- Update
versioninpyproject.toml. - Add the release date and accurate entries to
CHANGELOG.md. - Run
python3 -m pytest,ruff check ., andmypy src tests. - Run
python3 -m buildand inspect bothdist/*.whlanddist/*.tar.gz. - Install the wheel in a clean virtual environment and run the canonical example.
- Review the diff and create a pull request.
TestPyPI validation
Run the Publish to TestPyPI workflow manually from GitHub Actions. Install the uploaded candidate into a fresh environment using:
python3 -m pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ agent-world-sim==VERSION
Run the example and smoke tests before production release.
Production release
- Merge the release changes to
main. - Create and push an annotated tag such as
v0.1.0. - The
Publish releaseworkflow builds the wheel and sdist, publishes them to PyPI with OIDC Trusted Publishing, and creates a GitHub Release with both files and the changelog.
The workflow does not contain PyPI passwords or API tokens.
One-time Trusted Publishing setup
Create the pypi and testpypi GitHub environments. On each corresponding package index, add a pending trusted publisher with:
- owner:
ArnavBallinCode - repository:
python-sim - workflow file:
publish.ymlfor PyPI,publish-testpypi.ymlfor TestPyPI - environment:
pypifor PyPI,testpypifor TestPyPI
On GitHub, enable Pages using GitHub Actions as the source. The docs workflow uses the supported Pages artifact and deployment actions. Add environment protection rules or required reviewers before production publishing if the project needs a manual approval gate.