Release Process
This project uses CalVer for versioning.
Releases are generally kept in sync with the fsspec monthly release cycle.
Automated Release Workflow
The monthly release process is automated via GitHub Actions:
Automated Preparation: On the 5th of every month, the Release Preparation workflow runs automatically:
Calculates the next CalVer version.
Updates
docs/source/changelog.rstwith commit history since the last release.Updates the minimum
fsspecdependency inpyproject.toml.Creates a release branch and opens a Pull Request labeled
autorelease(e.g.,chore: release YYYY.M.PATCH).
Review and Merge: Maintainers review the release PR and verify that CI and end-to-end tests pass. Merging the PR into
maintriggers the publishing phase.Automated Tagging & Publishing: Upon merging the release PR, the Release on Merge workflow automatically:
Creates and pushes the git tag for the new version.
Runs CI and waits for Cloud Build end-to-end integration tests to pass.
Creates a GitHub Release with generated release notes.
Publishes the package to PyPI.
Manual Release Workflow
Maintainers can also execute a release manually:
Pre-release steps:
Verify that the CI pipeline is passing on the
mainbranch.Update
docs/source/changelog.rstmanually with the changes for the new version following the existing format.Update the minimum
fsspecdependency inpyproject.tomlif necessary.Commit the updates and merge them to the
mainbranch.
Execution:
Create and push a git tag matching the CalVer version pattern (e.g.,
git tag 2026.6.0 && git push origin 2026.6.0).Pushing the tag directly triggers the Release workflow, which builds artifacts, runs end-to-end tests, creates a GitHub Release, and publishes to PyPI.
Verification
Monitor the Release on Merge or Release workflow in the GitHub Actions tab.
Verify the new version is published on PyPI.