Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 83 additions & 0 deletions .github/release-drafter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# Release Drafter Configuration for Galaxy
# Implements YY.N.P versioning scheme using existing Galaxy labels
#
# IMPORTANT: Galaxy's versioning scheme is YY.N.P where:
# - YY = Two-digit year (25 for 2025)
# - N = Feature release number (0, 1, 2... - typically 2-3 per year)
# - P = Patch/point release number (0, 1, 2, 3...)
#
# Year transitions (24→25) must be handled manually when creating releases.

name-template: 'Galaxy $RESOLVED_VERSION'
tag-template: 'v$RESOLVED_VERSION'

# Categories for organizing release notes using existing Galaxy labels
categories:
- title: '🎉 Major Changes'
labels:
- 'major'
- 'highlight'
- title: '🚀 New Features'
labels:
- 'kind/feature'
- title: '🔧 Enhancements'
labels:
- 'kind/enhancement'
- title: '🐛 Bug Fixes'
labels:
- 'kind/bug'
- title: '🔒 Security Updates'
labels:
- 'area/security'
- title: '⚡ Performance'
labels:
- 'area/performance'
- title: '🧰 Refactoring'
labels:
- 'kind/refactoring'
- title: '📚 Documentation'
labels:
- 'area/documentation'
- title: '🔧 Admin & Configuration'
labels:
- 'area/admin'
- 'area/configuration'
- title: '🛠️ API Changes'
labels:
- 'area/API'
- title: '🧪 Testing'
labels:
- 'area/testing'
- 'area/testing/api'
- 'area/testing/integration'
- 'area/testing/selenium'
- title: '🏗️ Infrastructure & Dependencies'
labels:
- 'area/dependencies'
- 'area/client-build'

# Exclude certain labels from release notes
exclude-labels:
- 'triage'
- 'procedures'
- 'planning'
- 'merge'
- 'status/needs feedback'
- 'status/planning'

# Template for each change line
change-template: '- $TITLE @$AUTHOR (#$NUMBER)'

# Characters to escape in titles
change-title-escapes: '\<*_&'

# Version is read from lib/galaxy/version.py by the workflow
# No version-resolver needed since Galaxy manages versions manually

# Template for the release body
template: |
## Changes in $RESOLVED_VERSION

$CHANGES

**Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...v$RESOLVED_VERSION
43 changes: 43 additions & 0 deletions .github/workflows/release-drafter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Release Drafter

on:
push:
branches:
- dev
- master
- 'release_*'
pull_request_target:
types: [opened, reopened, synchronize]

permissions:
contents: read

jobs:
update_release_draft:
permissions:
contents: write
pull-requests: write
if: github.repository == 'galaxyproject/galaxy'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: dev
sparse-checkout: |
lib/galaxy/version.py

- name: Read Galaxy version
id: galaxy-version
run: |
# Extract VERSION_MAJOR from version.py (e.g., "25.1")
VERSION_MAJOR=$(grep '^VERSION_MAJOR' lib/galaxy/version.py | cut -d'"' -f2)
RELEASE_VERSION="${VERSION_MAJOR}.0"
echo "version=${RELEASE_VERSION}" >> $GITHUB_OUTPUT
echo "Galaxy release version: ${RELEASE_VERSION}"

- uses: release-drafter/release-drafter@v6
with:
config-name: release-drafter.yml
version: ${{ steps.galaxy-version.outputs.version }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Loading