Skip to content

Conversation

@arre-ankit
Copy link
Member

TLDR

Implements automated release system for the Langbase Python SDK with version bumping, changelog generation, and PyPI publishing support

Dive Deeper

Impact: Developers can now release new SDK versions with a single command, reducing manual errors and improving release consistency

Key Changes:

🚀 New release.py script for automated version management
📝 Automated changelog generation and version bumping
🔧 Integration with PyPI publishing workflow
📚 Updated CONTRIBUTING.md with release instructions

🎯 Problem Statement

The SDK lacked a standardized release process, making it difficult to:

  • Consistently bump version numbers across all files
  • Maintain accurate changelog entries
  • Ensure all release steps are followed correctly
  • Reduce human error in the release process

💡 Solution Overview

  • Created a comprehensive release system that automates the entire release workflow:
  • Version Management: Automatically bumps version in init.py, pyproject.toml, and other relevant files
  • Changelog Updates: Generates changelog entries based on conventional commits and PR patterns
  • Git Integration: Creates release commits and tags automatically
  • PyPI Ready: Prepares distribution packages for publishing

@saqibameen saqibameen requested a review from Copilot July 29, 2025 16:34
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR implements an automated release system for the Langbase Python SDK, enabling developers to create new releases with version bumping, changelog generation, and PyPI publishing support through a single command interface.

  • Introduces automated version management across multiple files (pyproject.toml, init.py)
  • Adds semantic-release integration with custom emoji-based commit conventions
  • Creates a simplified release workflow with git integration and PyPI preparation

Reviewed Changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
requirements-dev.txt Adds python-semantic-release dependency for automated releases
release.py Main release script providing user-friendly interface for the release process
pyproject.toml Configures semantic-release settings and updates license from MIT to Apache-2.0
langbase/init.py Adds author and description metadata for package information
CONTRIBUTING.md Documents the new release process for contributors
CHANGELOG.md Initializes changelog following Keep a Changelog format
.releaserc.json Configures semantic-release with custom emoji-based commit conventions
Comments suppressed due to low confidence (1)

pyproject.toml:8

  • The release rule mapping '📦 NEW' to 'major' releases seems inconsistent with semantic versioning conventions. New features typically warrant minor version bumps, not major ones. Major bumps should be reserved for breaking changes.
    { name = "Saqib", email = "[email protected]" },

Comment on lines +12 to +15
os.environ["PYTHONUTF8"] = "1"
os.environ["PYTHONIOENCODING"] = "utf-8"
Copy link

Copilot AI Jul 29, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Setting environment variables globally in a script can have unintended side effects. Consider wrapping the script execution in a function that sets these temporarily or documenting why global setting is necessary.

Suggested change
os.environ["PYTHONUTF8"] = "1"
os.environ["PYTHONIOENCODING"] = "utf-8"
def set_environment_variables():
os.environ["PYTHONUTF8"] = "1"
os.environ["PYTHONIOENCODING"] = "utf-8"

Copilot uses AI. Check for mistakes.
@saqibameen saqibameen force-pushed the ankit/release-python-sdk branch from fc4d665 to d16544b Compare August 7, 2025 00:05
@saqibameen saqibameen merged commit a479d16 into main Aug 7, 2025
1 check passed
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.

3 participants