Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Release Process

How ALF releases are managed.

Release Cycle

Versioning

ALF uses semantic-style versioning (MAJOR.MINOR). Major bumps indicate significant API or algorithmic changes; minor bumps cover new features, model additions, and improvements. Version metadata is tracked in:

Release Checklist

  1. Tests pass. Ensure all CI pipelines (test-branch, test-vs-ed) are green across all supported environments (GNU, Intel, PGI, macOS).

  2. Documentation up to date. Check that the LaTeX documentation paper reflects any new features or API changes.

  3. CHANGELOG.md up to date. All merged changes since the last release should be listed with author and merge request reference.

  4. Create release branch. Branch ALF-X.Y from master.

  5. Update version strings. Set \ALFver in the documentation, update CITATION.cff.

  6. Update README. Add the version number, remove any development warning.

  7. Update master. Add a development warning to master’s README pointing to the release branch.

  8. Companion repos. Create corresponding branches in pyALF and the Tutorial repository.

  9. Announce. Update the ALF website and post to Discord.

CI / CD

Two GitHub Actions workflows support the release process (both workflow_dispatch):

WorkflowPurpose
test-branch.yamlCompare a feature branch against master using alf_test_branch; matrix across Debian (GNU), Intel, PGI, macOS
test-vs-ed.yamlQMC vs exact diagonalization regression; prepare → simulate → analyze pipeline

Both use Docker containers from ghcr.io/alf-qmc/alf-container/ for reproducible environments.