- All 58 unit tests passing
- Test coverage at 74% (exceeds 65% requirement)
- No failing tests
- Code formatted with black
- Type hints verified
-
pyproject.tomlversion updated to 2.0.0 -
ukfuelfinder/__init__.pyversion updated to 2.0.0 - CHANGELOG.md updated with 2.0.0 entry
- Release notes created (RELEASE_NOTES_2.0.0.md)
- README.md updated with API changes
- Migration guide included
- All code examples updated
- New examples created:
- examples/api_migration.py
- examples/global_config.py
- CHANGELOG.md comprehensive
- Unit tests: 58 passing
- HTTP client tests: 10 tests
- Global config tests: 6 tests
- Integration test for 404 handling added
- Backward compatibility tested
- Error handling tested
- Global configuration support
- Environment variable support
- Backward compatibility mode
- BatchNotFoundError exception
- Enhanced HTTP client
- Priority-based configuration
# Run all tests
python3 -m pytest tests/unit/ -v
# Check coverage
python3 -m pytest tests/unit/ --cov=ukfuelfinder --cov-report=term-missing
# Verify version
python3 -c "import ukfuelfinder; print(ukfuelfinder.__version__)"# Stage all changes
git add -A
# Commit
git commit -m "Release: Version 2.0.0 - API Changes Feb 2025
- Implement global configuration for backward compatibility
- Add comprehensive HTTP client tests
- Update all examples for new API format
- Add integration test for invalid batch 404 handling
- Update version to 2.0.0
- Create release notes and update CHANGELOG
All 58 tests passing with 74% coverage."
# Tag release
git tag -a v2.0.0 -m "Version 2.0.0 - API Changes February 2025"
# Push
git push origin main
git push origin v2.0.0# Clean previous builds
rm -rf dist/ build/ *.egg-info
# Build
python3 -m build
# Verify build
ls -lh dist/# Install in test environment
pip install dist/ukfuelfinder-2.0.0-py3-none-any.whl
# Test import
python3 -c "import ukfuelfinder; print(ukfuelfinder.__version__)"
# Run quick test
python3 -c "from ukfuelfinder import set_global_backward_compatible; print('OK')"# Upload to Test PyPI first
python3 -m twine upload --repository testpypi dist/*
# Test install from Test PyPI
pip install --index-url https://test.pypi.org/simple/ ukfuelfinder
# Upload to PyPI
python3 -m twine upload dist/*- Go to https://github.com/mretallack/ukfuelfinder/releases
- Click "Draft a new release"
- Tag: v2.0.0
- Title: "Version 2.0.0 - API Changes February 2025"
- Description: Copy from RELEASE_NOTES_2.0.0.md
- Attach dist files
- Publish release
- Verify PyPI page updated
- Test installation:
pip install ukfuelfinder - Verify documentation renders correctly
- Update any external documentation
- Announce release (if applicable)
If issues are discovered:
- Remove PyPI release (if possible)
- Revert git tag:
git tag -d v2.0.0 && git push origin :refs/tags/v2.0.0 - Revert commit:
git revert HEAD - Fix issues
- Re-release as 2.0.1
- All tests pass
- Version numbers consistent
- Documentation complete
- Backward compatibility maintained
- New features working
- Package published to PyPI
- GitHub release created
- Installation verified
- This is a major version bump (2.0.0) due to API changes
- Backward compatibility is maintained by default
- Deprecation timeline: 6 months (until August 2025)
- Next breaking change: Version 3.0.0 (remove backward compatibility)