From 5876316c9d8ad4bb04bd4a25107f0c888c64b674 Mon Sep 17 00:00:00 2001 From: Leandro Rodrigues Date: Tue, 21 Jul 2026 20:47:28 -0300 Subject: [PATCH 1/2] ci: publish release candidates manually via workflow_dispatch - Exclude v*-rc* tags from the push trigger. RCs are now published by triggering the Release workflow manually with the tag as input: the workflow validates the -rc suffix, runs CI against the tag, and marks the GitHub release as a pre-release. - Pause the nightly pre-release schedule (workflow_dispatch only). - Document the AI-assisted contributions policy in CONTRIBUTING.md. --- .github/workflows/pre-release.yml | 2 -- .github/workflows/release.yml | 37 ++++++++++++++++++++++++++----- CONTRIBUTING.md | 17 ++++++++++++-- 3 files changed, 46 insertions(+), 10 deletions(-) diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index 368cf86..3426433 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -1,8 +1,6 @@ name: Nightly pre-release on: - schedule: - - cron: '15 0 * * *' workflow_dispatch: inputs: force: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0a19120..81981d8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,23 +4,47 @@ on: push: tags: - 'v[0-9]*' + - '!v[0-9]*-rc*' + workflow_dispatch: + inputs: + tag: + description: Release candidate tag to publish (e.g. v49.0-rc1) + required: true + type: string permissions: contents: write packages: write +env: + RELEASE_TAG: ${{ inputs.tag || github.ref_name }} + jobs: ci: - if: ${{ !contains(github.ref_name, '-') || contains(github.ref_name, '-rc') }} + if: ${{ github.event_name == 'workflow_dispatch' || !contains(github.ref_name, '-') }} uses: ./.github/workflows/ci.yml + with: + checkout_ref: ${{ inputs.tag || '' }} release: name: Create GitHub Release - if: ${{ !contains(github.ref_name, '-') || contains(github.ref_name, '-rc') }} + if: ${{ github.event_name == 'workflow_dispatch' || !contains(github.ref_name, '-') }} runs-on: ubuntu-latest needs: [ci] steps: + - name: Validate release candidate tag + if: ${{ github.event_name == 'workflow_dispatch' }} + run: | + set -euo pipefail + tag="${{ inputs.tag }}" + if [[ "$tag" != *-rc* ]]; then + echo "Tag '$tag' is not a release candidate (expected to contain '-rc')." >&2 + exit 1 + fi + - uses: actions/checkout@v7 + with: + ref: ${{ inputs.tag || '' }} - name: Download extension zip uses: actions/download-artifact@v8 @@ -31,15 +55,16 @@ jobs: - name: Create GitHub Release uses: softprops/action-gh-release@v3 with: - name: ${{ github.ref_name }} + tag_name: ${{ env.RELEASE_TAG }} + name: ${{ env.RELEASE_TAG }} files: dist/target/aurora-shell@luminusos.github.io.shell-extension.zip generate_release_notes: true - prerelease: ${{ contains(github.ref_name, '-') }} + prerelease: ${{ github.event_name == 'workflow_dispatch' }} - name: Create maintenance branch - if: ${{ !contains(github.ref_name, '-') }} + if: ${{ github.event_name == 'push' }} run: | - MAJOR=$(echo "${{ github.ref_name }}" | sed 's/^v//' | grep -oP '^\d+') + MAJOR=$(echo "${{ env.RELEASE_TAG }}" | sed 's/^v//' | grep -oP '^\d+') BRANCH="release/v${MAJOR}.x" if git ls-remote --exit-code --heads origin "$BRANCH" > /dev/null 2>&1; then echo "Branch $BRANCH already exists, skipping." diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2e0d976..3dbfd89 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,6 +2,17 @@ Thank you for your interest in contributing to Aurora Shell! This document outlines the project architecture and provides guidelines for adding new modules and adhering to the project's code style. +## AI-Assisted Contributions + +Contributions made with AI assistance are welcome, but the contributor remains +responsible for the change. Do not submit code you do not understand. You must +be able to explain what the code does, why it is correct, and what tradeoffs or +risks it introduces. + +AI-assisted changes must be tested thoroughly. Maintainers may ask for evidence +that the functionality works and was tested, such as test output, screenshots, +screen recordings, logs, or clear reproduction steps. + ## Architecture Overview Aurora Shell keeps GNOME integration close to each functional area. `extension.ts` creates the @@ -90,7 +101,9 @@ and adds a final version bump commit. For example, if `metadata.json` on `releas ### Release candidates -Release candidates are published alongside GNOME Shell RCs. Tags follow the pattern `v50-rc1`, `v50-rc2`, etc. RC releases are automatically marked as **pre-releases** on GitHub. +Release candidates are published alongside GNOME Shell RCs. Tags follow the pattern `v50-rc1`, `v50-rc2`, etc. RC releases are marked as **pre-releases** on GitHub. + +Pushing an RC tag does **not** publish anything. After pushing the tag, trigger the `Release` workflow manually (`workflow_dispatch`) and pass the tag name in the `tag` input. The workflow validates that the tag contains `-rc`, runs CI against it, and publishes the pre-release. ### Stable releases @@ -176,7 +189,7 @@ D-Bus services. All jobs must pass before a PR can be merged. -When a version tag (`v50.1`, `v50-rc1`, etc.) is pushed, `.github/workflows/release.yml` calls the CI pipeline and, if all jobs pass, publishes the GitHub Release automatically. +When a stable version tag (`v50.1`, `v50.2`, etc.) is pushed, `.github/workflows/release.yml` calls the CI pipeline and, if all jobs pass, publishes the GitHub Release automatically. Release candidate tags (`v50-rc1`, etc.) are excluded from this trigger and are published manually via `workflow_dispatch`, as described above. ## Coding Standards From 7e5101a84e42a44954d81cb121974e03ca24b82b Mon Sep 17 00:00:00 2001 From: Leandro Rodrigues Date: Tue, 21 Jul 2026 20:50:21 -0300 Subject: [PATCH 2/2] chore: remove CLAUDE.md --- CLAUDE.md | 1 - 1 file changed, 1 deletion(-) delete mode 120000 CLAUDE.md diff --git a/CLAUDE.md b/CLAUDE.md deleted file mode 120000 index 47dc3e3..0000000 --- a/CLAUDE.md +++ /dev/null @@ -1 +0,0 @@ -AGENTS.md \ No newline at end of file