Skip to content

Conversation

@subhobhai943
Copy link

Summary

This PR addresses issue #39 by implementing stable releases and semantic versioning for pplx-kernels. Users can now pin to specific versions instead of commit SHAs, making the project more stable and easier to manage.

Changes Made

1. Automated Release Workflow

  • Added .github/workflows/release.yml for automated releases
  • Supports both tag-triggered and manual releases
  • Automatically updates version in pyproject.toml
  • Generates release notes from CHANGELOG.md
  • Creates GitHub releases with proper tagging

2. Version Management

  • Added CHANGELOG.md following Keep a Changelog format
  • Updated README.md with installation instructions for stable versions
  • Added comprehensive release process documentation in docs/RELEASE_PROCESS.md
  • Created scripts/release.py helper script for version management

3. User-Facing Improvements

  • Users can now install specific versions: pip install git+https://github.com/perplexityai/[email protected]
  • Clear migration path from SHA-based installations to version tags
  • Semantic versioning following semver.org specification

Benefits

  1. Stability: Users can pin to stable versions instead of potentially unstable commit SHAs
  2. Predictability: Semantic versioning helps users understand the impact of updates
  3. Reproducibility: Version tags ensure consistent builds across environments
  4. Documentation: Clear changelog and release notes for each version
  5. Automation: Streamlined release process reduces manual errors

Migration Guide

Before

pip install git+https://github.com/perplexityai/pplx-kernels.git@2bd6e30fab358829bd01d1c0907be8088ff9e5e1

After

pip install git+https://github.com/perplexityai/[email protected]

Release Process

  1. Automated (Recommended): Use GitHub Actions workflow
  2. Manual: Use the provided scripts/release.py helper script
  3. Documentation: Follow docs/RELEASE_PROCESS.md for detailed instructions

Testing

  • All existing functionality remains unchanged
  • Installation methods are backwards compatible
  • Release workflow tested with dry-run scenarios
  • Version management script tested locally

Future Improvements

The foundation is now in place for:

  • PyPI publishing for even easier installation
  • Automated changelog generation from commit messages
  • Integration with package managers
  • Automated testing for each release

Resolves


Note: This PR is ready for review and testing. The first stable release (v0.1.0) can be created immediately after merging to establish the versioning baseline.

- Add type annotations for all functions and parameters
- Add encoding specification for file operations
- Fix subprocess.run calls with check=False for non-critical operations
- Add noqa comments for intentional print statements
- Fix conditional logic to use early returns
- Add docstring for main function
- Use unpacking in subprocess calls
- Use keyword-only arguments where appropriate
- Fix argument formatting and trailing commas
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Consider publishing stable tags/releases

1 participant