Release Manager
Streamline software delivery by automating release management cycles and coordinating deployment pipelines
Release Manager is a community skill for automating software release processes, covering version management, changelog generation, release branching, artifact publishing, and deployment coordination for reliable software delivery.
What Is This?
Overview
Release Manager provides tools for automating and standardizing software release workflows. It covers version management that applies semantic versioning rules to determine version bumps based on commit history and change types, changelog generation that creates formatted release notes from conventional commits and pull request descriptions, release branching that manages branch creation, cherry-picking, and merge strategies for release preparation, artifact publishing that builds and publishes packages to registries like npm, PyPI, and Docker Hub, and deployment coordination that sequences release steps across staging and production environments. The skill standardizes release workflows.
Who Should Use This
This skill serves engineering teams managing frequent software releases, DevOps engineers automating deployment pipelines, and project maintainers publishing open source packages to public registries.
Why Use It?
Problems It Solves
Manual version numbering leads to inconsistent versions that do not accurately reflect the scope of changes. Writing changelogs by hand is tedious and results in incomplete or delayed release notes. Release branching and cherry-picking without clear processes introduces bugs when wrong commits are included or excluded. Publishing artifacts to multiple registries requires coordinated steps that are error-prone when performed manually.
Core Highlights
Version calculator determines the next version from commit history and change types. Changelog builder generates formatted release notes from commits and pull requests. Branch manager handles release branch creation and cherry-pick operations. Artifact publisher builds and pushes packages to configured registries.
How to Use It?
Basic Usage
import subprocess
import re
from datetime import date
def get_version() -> str:
tags = subprocess.run(
['git', 'tag',
'--sort=-v:refname'],
capture_output=True,
text=True)
lines = tags.stdout\
.strip().split('\n')
return lines[0] if (
lines[0]) else '0.0.0'
def bump_version(
current: str,
bump: str
) -> str:
m = re.match(
r'v?(\d+)\.(\d+)'
r'\.(\d+)', current)
major, minor, patch = (
int(m.group(1)),
int(m.group(2)),
int(m.group(3)))
if bump == 'major':
return (
f'{major+1}.0.0')
if bump == 'minor':
return (
f'{major}.{minor+1}.0')
return (
f'{major}.{minor}'
f'.{patch+1}')
def changelog(
from_tag: str
) -> str:
log = subprocess.run(
['git', 'log',
f'{from_tag}..HEAD',
'--format=%s'],
capture_output=True,
text=True)
lines = log.stdout\
.strip().split('\n')
today = date.today()\
.isoformat()
entries = '\n'.join(
f'- {l}' for l
in lines if l)
return (
f'## {today}\n'
f'{entries}')
current = get_version()
new_ver = bump_version(
current, 'minor')
notes = changelog(current)
print(f'Release {new_ver}')
print(notes)Real-World Examples
import subprocess
import json
class ReleaseManager:
def __init__(
self,
repo_path: str
):
self.path = repo_path
def run(self, cmd):
return subprocess.run(
cmd, cwd=self.path,
capture_output=True,
text=True, check=True)
def create_branch(
self, version: str
):
branch = (
f'release/{version}')
self.run(['git',
'checkout', '-b',
branch])
return branch
def tag(
self, version: str,
message: str
):
self.run(['git',
'tag', '-a',
f'v{version}',
'-m', message])
def publish_npm(self):
self.run(
['npm', 'publish'])
def release(
self,
version: str,
notes: str
):
branch = (
self.create_branch(
version))
self.tag(
version, notes)
self.publish_npm()
return {
'version': version,
'branch': branch}Advanced Tips
Use conventional commit messages to automate version bump decisions based on commit types like feat, fix, and breaking changes. Create release candidates on separate branches to allow testing before final release tagging. Automate changelog formatting with categories for features, fixes, and breaking changes.
When to Use It?
Use Cases
Automate semantic version bumps based on conventional commits in a continuous delivery pipeline. Generate formatted changelogs from pull request descriptions for each release. Publish npm packages with automated version tagging and registry upload.
Related Topics
Release management, semantic versioning, changelog generation, CI/CD, package publishing, and deployment automation.
Important Notes
Requirements
Git repository with tagged releases for version history tracking. Conventional commit format or structured PR descriptions for automated changelog generation. Registry credentials for publishing packages to npm, PyPI, or container registries.
Usage Recommendations
Do: follow semantic versioning strictly to communicate the scope of changes to consumers. Test release branches in staging before tagging final releases. Automate the entire release process to reduce human error in multi-step workflows.
Don't: manually edit version numbers when automated tooling can determine the correct bump from commit history. Skip changelog generation since users and teams depend on release notes. Force push release tags after they have been published since consumers may have already referenced them.
Limitations
Automated version bumping requires consistent commit message conventions that all contributors follow. Changelog quality depends on the descriptiveness of commit messages and pull request titles. Multi-registry publishing requires separate credentials and configuration for each target platform.
More Skills You Might Like
Explore similar skills to enhance your workflow
Whatsapp Automation
Automate WhatsApp Business tasks via Rube MCP (Composio): send messages, manage templates, upload media, and handle contacts. Always search tools firs
Asc Release Flow
Streamline the App Store Connect release lifecycle from initial submission to final production approval
Lexoffice Automation
Automate Lexoffice operations through Composio's Lexoffice toolkit via
google-search
Search the web using Google Custom Search Engine (PSE). Use this when you need live information
Web App Testing
Enhance web app quality with automated testing skills for AI and tech tool integration
Stripe Best Practices
Apply and integrate best practices for Stripe payments and billing workflows