Releasing

This document describes the process for releasing new versions of the USDA FDC Python Client.

Version Numbering

This project follows Semantic Versioning (SemVer):

  • MAJOR version for incompatible API changes

  • MINOR version for new functionality in a backwards compatible manner

  • PATCH version for backwards compatible bug fixes

Release Process

1. Update Version

Update the version number in usda_fdc/__init__.py:

__version__ = "X.Y.Z"

2. Update Changelog

Update the CHANGELOG.md file with the changes in the new version.

3. Create Release Commit

Commit the version and changelog changes:

git add usda_fdc/__init__.py CHANGELOG.md
git commit -m "Release vX.Y.Z"

4. Create Git Tag

Create a git tag for the release:

git tag -a vX.Y.Z -m "Version X.Y.Z"

5. Push to GitHub

Push the commit and tag to GitHub:

git push origin main
git push origin vX.Y.Z

6. Build Distribution

Build the distribution packages:

python -m build

This will create both a source distribution and a wheel in the dist/ directory.

7. Upload to PyPI

Upload the packages to PyPI:

python -m twine upload dist/*

8. Create GitHub Release

Create a new release on GitHub:

  • Go to the repository’s releases page

  • Click “Draft a new release”

  • Select the tag you just created

  • Fill in the release title and description

  • Attach the distribution files

  • Publish the release

9. Update Documentation

Ensure the documentation is updated on Read the Docs:

  • Go to the Read the Docs project page

  • Trigger a new build if necessary

Post-Release

After releasing, update the version in usda_fdc/__init__.py to the next development version:

__version__ = "X.Y+1.0.dev0"

Commit this change:

git add usda_fdc/__init__.py
git commit -m "Bump version to X.Y+1.0.dev0"
git push origin main