# Developer Instructions

## Python Environment & Development Tools

See [the contributing guide](CONTRIBUTING.md) for instructions on setting up your development environment
and tools for formatting and type checking.

## Release Process

1. Ensure clean git status.
2. Set the version for release, e.g.
   
       python scripts/bump_version.py --patch
       python scripts/bump_version.py --minor

   This also creates the git tag.
3. Push to GitHub:

       git push
       git push --tags

   Important: This must push a single tag only!
   Pushing the single tag triggers the `create-release` workflow for the tag, which creates a
   **draft release** on GitHub.
4. Review the draft release on the
   [GitHub Releases page](https://github.com/oraios/serena/releases).
   When ready, publish it (click *Publish release*).
   This triggers the `publish` workflow, which builds and publishes the
   package to PyPI.