Release Process¶
This document outlines the process for creating and publishing new releases of Earth Data Kit. Earth Data Kit versioning starts from 0.1.0 and follows a straightforward versioning scheme. We don’t use alpha or beta releases in our versioning strategy.
Version Numbering¶
Earth Data Kit follows Semantic Versioning (SemVer):
- MAJOR version for incompatible API changes 
- MINOR version for backward-compatible functionality additions 
- PATCH version for backward-compatible bug fixes 
The current version is maintained in earth_data_kit/__init__.py as the __version__ variable.
Planning the Release¶
- Development Workflow - All development work happens on the - devbranch
- Features and fixes are developed in feature branches and merged into - dev
- Code reviews and tests are performed before merging into - dev
 
- Release Branch Creation - When approaching a planned release, create a release branch from - dev:- $ git checkout dev $ git pull $ git checkout -b release/vX.Y.Z 
- The release branch is used to prepare and stabilize the release 
- Only bug fixes and release-specific changes should be made on this branch 
- Any changes made to the release branch must be merged back to - devafter release
 
- Release Preparation - Finalize features and fixes for the release 
- Make sure all documentation is updated to reflect the new version 
- Ensure all tests are passing: - $ make run-tests 
- Update version using the make command: - $ make bump-version # You will be prompted to enter version type (patch, minor, major) 
- Update the changelog with all notable changes 
- Merge all changes to the - devbranch
 
Release Checklist¶
- Finalize the Release - Create a pull request to merge the - devbranch to- master:- Create the pull request with a descriptive title and details about the release 
- Make sure all tests pass 
- Once approved, merge the pull request 
 
- Lock the release branch to prevent further changes 
- Checkout the master branch for release: - $ git checkout master $ git pull 
 
- Build and Release the Package and Documentation - Clean the build environment: - $ rm -rf build/ dist/ 
- Build the package: - $ make build 
- Install the built package to ensure documentation builds with the latest code: - $ pip3 install dist/earth_data_kit-*.tar.gz 
- Build the documentation: - $ make build-docs 
- Release both the package and documentation using the tag. Note that the tag is the version number without the - vprefix:- $ TAG=X.Y.Z make release $ TAG=X.Y.Z make release-docs 
 
- Announce the Release - Notify the team and users about the new release 
- Include a link to the changelog 
- Highlight key features, improvements, and bug fixes 
 
Development Releases¶
For development releases, follow these steps:
- Create a Development Version - After merging changes that need to be tested in a development environment, create a development version: - $ make bump-dev - This will create a version like - X.Y.Z.devYYYYMMDDbased on the current version.
 
- Build and Release the Development Package - Build the package: - $ make build 
- Install the development package: - $ pip install dist/earth_data_kit-*.tar.gz 
- Build the documentation: - $ make build-docs 
- Create a GitHub release with the development tag: - $ TAG=$(poetry version -s) make release 
- Release the development documentation (hosted at https://earth-data-kit.github.io/dev-docs): - $ TAG=$(poetry version -s) make release-dev-docs 
 
Note
Development releases use version numbers that are lower than stable releases (e.g. 0.1.2.dev20240501 < 0.1.2), ensuring proper upgrades.