Skip to content
David Foster edited this page Jun 22, 2024 · 4 revisions

To release a new version of Crystal:

  • Update the version number in src/crystal/__init__.py (and other places).
    • test_version.py will verify that all copies of the version number are updated.
  • Ensure all the automated tests pass.
  • Review/revise the release notes.
  • Rebuild the Mac and Windows binary on the earliest supported Mac/Windows versions, as documented in the README.
  • Smoke test: Install/test the built binaries on a fresh Mac/Windows VM, attempting to download/serve a simple web page like https://xkcd.com/ .
  • Update the README to point to where the latest binaries will be.
  • Tag the Git commit as v#.#.# for the version:
    • CRYSTAL_VERSION=$(python3 -c "import crystal; print(crystal.__version__)")
    • git tag v$CRYSTAL_VERSION
    • git push origin --tags
  • Draft/publish a new Release on GitHub, with the same description as in the release notes, and upload the related binaries.
  • Upload to PyPI:
    • PYPI_PASSWORD=...
    • poetry build
    • poetry publish --username __token__ --password $PYPI_API_TOKEN
  • Announce the release via blog post, Twitter, etc if desired.
Clone this wiki locally