From 02484831a46abb43ca7820b42deeab9b9e0bc0f9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 12:03:52 +0000 Subject: [PATCH 1/4] chore(deps): Bump actions/upload-artifact from 6 to 7 Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 68d8920..39e894e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -43,7 +43,7 @@ jobs: run: ./gradlew check koverXmlReport buildPlugin verifyPlugin - name: Upload plugin artifact - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: intellij-codexp-plugin path: build/distributions/*.zip @@ -51,7 +51,7 @@ jobs: - name: Upload test report if: ${{ failure() }} - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: test-report path: build/reports/tests @@ -59,7 +59,7 @@ jobs: - name: Upload plugin verifier report if: ${{ always() }} - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: plugin-verifier-report path: build/reports/pluginVerifier From ae137c94e53acccb82db24e1d04b20bb779010d9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 12:03:58 +0000 Subject: [PATCH 2/4] chore(deps): Bump codecov/codecov-action from 5 to 6 Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5 to 6. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v5...v6) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 68d8920..3d8dfc0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -67,7 +67,7 @@ jobs: - name: Upload coverage if: ${{ env.CODECOV_TOKEN != '' }} - uses: codecov/codecov-action@v5 + uses: codecov/codecov-action@v6 with: files: build/reports/kover/report.xml token: ${{ env.CODECOV_TOKEN }} From 721b643cd2bb25eb88b16a05de8de25d7252292c Mon Sep 17 00:00:00 2001 From: byteaurora Date: Mon, 18 May 2026 22:01:16 +0900 Subject: [PATCH 3/4] ci: Separate release draft workflow --- .github/workflows/ci.yml | 44 --------------------- .github/workflows/release-draft.yml | 61 +++++++++++++++++++++++++++++ CONTRIBUTING.md | 9 +++++ 3 files changed, 70 insertions(+), 44 deletions(-) create mode 100644 .github/workflows/release-draft.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 68d8920..34bb31c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -71,47 +71,3 @@ jobs: with: files: build/reports/kover/report.xml token: ${{ env.CODECOV_TOKEN }} - - release-draft: - name: Release draft - if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} - needs: [build] - runs-on: ubuntu-latest - permissions: - contents: write - steps: - - name: Fetch sources - uses: actions/checkout@v6 - - - name: Setup Java - uses: actions/setup-java@v5 - with: - distribution: zulu - java-version: 21 - - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v5 - with: - cache-read-only: true - - - name: Create release draft - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - VERSION="$(./gradlew properties --property version --quiet --console=plain | tail -n 1 | cut -f2- -d ' ')" - RELEASE_NOTE="./build/tmp/release_note.txt" - ./gradlew getChangelog --unreleased --no-header --quiet --console=plain --output-file="$RELEASE_NOTE" - - if gh release view "v${VERSION}" >/dev/null 2>&1; then - IS_DRAFT="$(gh release view "v${VERSION}" --json isDraft --jq '.isDraft')" - if [ "$IS_DRAFT" != "true" ]; then - echo "Release v${VERSION} already exists and is not a draft." - exit 1 - fi - gh release delete "v${VERSION}" --cleanup-tag --yes - fi - - gh release create "v${VERSION}" \ - --draft \ - --title "v${VERSION}" \ - --notes-file "$RELEASE_NOTE" diff --git a/.github/workflows/release-draft.yml b/.github/workflows/release-draft.yml new file mode 100644 index 0000000..efc93c9 --- /dev/null +++ b/.github/workflows/release-draft.yml @@ -0,0 +1,61 @@ +name: Release Draft + +on: + workflow_dispatch: + inputs: + ref: + description: Git ref to create the release draft from + required: true + default: main + +permissions: + contents: write + +concurrency: + group: release-draft-${{ inputs.ref }} + cancel-in-progress: false + +jobs: + release-draft: + name: Create release draft + if: ${{ github.repository == 'ByteAurora/intellij-codexp' && github.actor == 'ByteAurora' }} + runs-on: ubuntu-latest + steps: + - name: Fetch sources + uses: actions/checkout@v6 + with: + ref: ${{ inputs.ref }} + + - name: Setup Java + uses: actions/setup-java@v5 + with: + distribution: zulu + java-version: 21 + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v5 + with: + cache-read-only: true + + - name: Create release draft + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + VERSION="$(./gradlew properties --property version --quiet --console=plain | tail -n 1 | cut -f2- -d ' ')" + RELEASE_NOTE="./build/tmp/release_note.txt" + ./gradlew getChangelog --unreleased --no-header --quiet --console=plain --output-file="$RELEASE_NOTE" + + if gh release view "v${VERSION}" >/dev/null 2>&1; then + IS_DRAFT="$(gh release view "v${VERSION}" --json isDraft --jq '.isDraft')" + if [ "$IS_DRAFT" != "true" ]; then + echo "Release v${VERSION} already exists and is not a draft." + exit 1 + fi + gh release delete "v${VERSION}" --cleanup-tag --yes + fi + + gh release create "v${VERSION}" \ + --draft \ + --target "${{ inputs.ref }}" \ + --title "v${VERSION}" \ + --notes-file "$RELEASE_NOTE" diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d09c23b..5b9fdec 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -29,9 +29,18 @@ Before opening a pull request: - Update `CHANGELOG.md` when the change affects users, compatibility, build, or release behavior. - Do not include private certificates, Marketplace tokens, or local signing files. +## Branch Workflow + +- Use `develop` as the integration branch for normal work. +- Open feature, fix, documentation, and maintenance pull requests against `develop`. +- Use `main` as the stable release branch. +- Merge `develop` into `main` only when preparing a release. +- For urgent production fixes, branch from `main`, merge back into `main`, then merge the fix back into `develop`. + ## Release Policy CodeXP is open source, but publishing to JetBrains Marketplace is restricted to the maintainer. Contributors should not run or request release publishing. Marketplace credentials are stored only in GitHub Secrets or protected GitHub Environments. +Release drafts are created manually from the `Release Draft` workflow after the release changes have been merged into `main`. Publishing the GitHub Release triggers the protected Marketplace deployment workflow. From 6b3ad3340756c0354d8dd24e98e4de6c0164b37d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 13:19:38 +0000 Subject: [PATCH 4/4] chore(deps): Bump gradle/actions from 5 to 6 Bumps [gradle/actions](https://github.com/gradle/actions) from 5 to 6. - [Release notes](https://github.com/gradle/actions/releases) - [Commits](https://github.com/gradle/actions/compare/v5...v6) --- updated-dependencies: - dependency-name: gradle/actions dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci.yml | 2 +- .github/workflows/release-draft.yml | 2 +- .github/workflows/release.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 34bb31c..b07e6a1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,7 +37,7 @@ jobs: java-version: 21 - name: Setup Gradle - uses: gradle/actions/setup-gradle@v5 + uses: gradle/actions/setup-gradle@v6 - name: Check, package, and verify plugin run: ./gradlew check koverXmlReport buildPlugin verifyPlugin diff --git a/.github/workflows/release-draft.yml b/.github/workflows/release-draft.yml index efc93c9..e2e00ef 100644 --- a/.github/workflows/release-draft.yml +++ b/.github/workflows/release-draft.yml @@ -33,7 +33,7 @@ jobs: java-version: 21 - name: Setup Gradle - uses: gradle/actions/setup-gradle@v5 + uses: gradle/actions/setup-gradle@v6 with: cache-read-only: true diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b6eacad..b487fa6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -27,7 +27,7 @@ jobs: java-version: 21 - name: Setup Gradle - uses: gradle/actions/setup-gradle@v5 + uses: gradle/actions/setup-gradle@v6 - name: Export release notes id: release-notes