Skip to main content

GitHub Release Process

OIBus uses release-please with GitHub Actions to automate the release process. The version bump (patch, minor, or major) follows the Conventional Commits standard.

GitHub Actions Requirement

For this to work on your fork:

  1. Enable GitHub Actions in your fork's settings
  2. Ensure you have write permissions to the repository

📦 Automated Release Process

How It Works

  1. Trigger: When commits are added to the stable branch
  2. Release PR: release-please automatically creates a release Pull Request with:
  • Version bump based on commit types
  • Generated changelog
  • Updated package versions
  1. Version Determination: Based on commit messages since last release:
  • fix: → Patch version (0.0.x)
  • feat: → Minor version (0.x.0)
  • feat!:, BREAKING CHANGE: → Major version (x.0.0)
  1. Release Creation: When the release PR is merged to stable:
  • GitHub release is automatically created
  • Release branch is created/updated (e.g., release-v1.2.3)
  • Changelog is published

Release Types

Commit TypeVersion BumpExample
fix:Patch (0.0.x)fix: correct minor bug
feat:Minor (0.x.0)feat: add new feature
feat!:, BREAKING CHANGE:Major (x.0.0)feat!: change API

🆕 Creating a Pre-Release

For testing purposes before merging to stable, you can manually create pre-releases:

Step-by-Step Guide

  1. Navigate to Releases:
  • Go to your fork's GitHub repository
  • Click on "Releases" in the right sidebar
  • Click "Draft a new release"
Draft a GitHub release
  1. Configure the Release:
  • Tag version: Use semantic versioning (e.g., v1.2.3-alpha.1)
  • Target: Select your working branch (usually main or feature branch)
  • Release title: Follow pattern "v1.2.3 (Pre-release)"
  • Description: Add:
    • Key changes since last release
    • Known issues
    • Testing instructions
  • Pre-release: ✅ Check this box
  • Set as latest release: ❌ Do NOT check this box
  1. Pre-release Best Practices:
  • Use suffixes: -alpha.x, -beta.x, -rc.x
  • Example: v2.1.0-beta.1
  • Include "[Pre-release]" in the title
  • Clearly mark experimental features
  1. Publish: Click "Publish release"