diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml deleted file mode 100644 index 4cd5de0af6c..00000000000 --- a/.github/release-drafter.yml +++ /dev/null @@ -1,83 +0,0 @@ -# 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 \ No newline at end of file diff --git a/.github/release.yml b/.github/release.yml new file mode 100644 index 00000000000..06326d0c5a5 --- /dev/null +++ b/.github/release.yml @@ -0,0 +1,63 @@ +changelog: + exclude: + labels: + - merge + - procedures + - planning + - status/needs feedback + - status/planning + authors: + - dependabot[bot] + - github-actions[bot] + - galaxybot + categories: + - title: ๐ŸŽ‰ Major Changes + labels: + - highlight + - highlight/admin + - highlight/dev + - highlight/power-user + - title: ๐Ÿš€ New Features + labels: + - kind/feature + exclude: + labels: + - area/documentation + - 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' + - title: Other Changes + labels: + - "*" diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml deleted file mode 100644 index 2de8daba8a7..00000000000 --- a/.github/workflows/release-drafter.yml +++ /dev/null @@ -1,72 +0,0 @@ -name: Release Drafter - -on: - push: - branches: - - dev - - master - - 'release_*' - pull_request_target: - types: [opened, reopened, synchronize] - workflow_dispatch: - -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@v6 - with: - 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}" - - - name: Check if we should update draft - id: check-draft - run: | - VERSION="${{ inputs.version || steps.galaxy-version.outputs.version }}" - - # Check if this version is already published - PUBLISHED=$(gh release view "v${VERSION}" --json isDraft --jq '.isDraft' 2>/dev/null || echo "not_found") - - if [ "$PUBLISHED" = "false" ]; then - echo "Published release v${VERSION} already exists. Skipping." - echo "skip=true" >> $GITHUB_OUTPUT - exit 0 - fi - - # Check if a draft exists for a DIFFERENT version (only one draft at a time) - EXISTING_DRAFT=$(gh release list --limit 50 --json tagName,isDraft --jq '.[] | select(.isDraft == true) | .tagName' | head -1) - - if [ -n "$EXISTING_DRAFT" ] && [ "$EXISTING_DRAFT" != "v${VERSION}" ]; then - echo "Draft release $EXISTING_DRAFT already exists (for different version). Skipping v${VERSION}." - echo "Only one draft release at a time is supported." - echo "skip=true" >> $GITHUB_OUTPUT - else - echo "Proceeding with draft for v${VERSION}." - echo "skip=false" >> $GITHUB_OUTPUT - fi - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - uses: release-drafter/release-drafter@v6 - if: steps.check-draft.outputs.skip == 'false' - with: - config-name: release-drafter.yml - version: ${{ steps.galaxy-version.outputs.version }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file