From 9daf1de73ca769b18a8abc0ddfdfff845708cb1c Mon Sep 17 00:00:00 2001 From: Henry Mercer Date: Tue, 12 Apr 2022 18:16:48 +0100 Subject: [PATCH] Update references to release branches Prepare for renaming `v1` -> `releases/v1` and `v2` -> `releases/v2`. --- .github/update-release-branch.py | 25 +++++++++---------- .github/workflows/__analyze-ref-input.yml | 4 +-- .github/workflows/__debug-artifacts.yml | 4 +-- .github/workflows/__extractor-ram-threads.yml | 4 +-- .github/workflows/__go-custom-queries.yml | 4 +-- .../__go-custom-tracing-autobuild.yml | 4 +-- .github/workflows/__go-custom-tracing.yml | 4 +-- .../workflows/__javascript-source-root.yml | 4 +-- .github/workflows/__ml-powered-queries.yml | 4 +-- .../workflows/__multi-language-autodetect.yml | 4 +-- .../__packaging-config-inputs-js.yml | 4 +-- .github/workflows/__packaging-config-js.yml | 4 +-- .github/workflows/__packaging-inputs-js.yml | 4 +-- .github/workflows/__remote-config.yml | 4 +-- .../workflows/__rubocop-multi-language.yml | 4 +-- .github/workflows/__split-workflow.yml | 4 +-- .../__test-autobuild-working-dir.yml | 4 +-- .github/workflows/__test-local-codeql.yml | 4 +-- .github/workflows/__test-proxy.yml | 4 +-- .github/workflows/__test-ruby.yml | 4 +-- .github/workflows/__unset-environment.yml | 4 +-- .github/workflows/__upload-ref-sha-input.yml | 4 +-- .github/workflows/__with-checkout-path.yml | 4 +-- .github/workflows/codeql.yml | 4 +-- .github/workflows/post-release-mergeback.yml | 6 ++--- .github/workflows/pr-checks.yml | 2 +- .github/workflows/python-deps.yml | 2 +- .github/workflows/update-release-branch.yml | 2 +- CONTRIBUTING.md | 18 ++++++------- pr-checks/sync.py | 2 +- 30 files changed, 74 insertions(+), 75 deletions(-) diff --git a/.github/update-release-branch.py b/.github/update-release-branch.py index 393eb7ec9..9ed20155d 100644 --- a/.github/update-release-branch.py +++ b/.github/update-release-branch.py @@ -19,6 +19,9 @@ # Value of the mode flag for a v2 release V2_MODE = 'v2-release' +SOURCE_BRANCH_FOR_MODE = { V1_MODE: 'releases/v2', V2_MODE: 'main' } +TARGET_BRANCH_FOR_MODE = { V1_MODE: 'releases/v1', V2_MODE: 'releases/v2' } + # Name of the remote ORIGIN = 'origin' @@ -191,8 +194,10 @@ def main(): type=str, required=True, choices=[V2_MODE, V1_MODE], - help=f"Which release to perform. '{V2_MODE}' uses main as the source branch and v2 as the target branch. " + - f"'{V1_MODE}' uses v2 as the source branch and v1 as the target branch." + help=f"Which release to perform. '{V2_MODE}' uses {SOURCE_BRANCH_FOR_MODE[V2_MODE]} as the source " + + f"branch and {TARGET_BRANCH_FOR_MODE[V2_MODE]} as the target branch. " + + f"'{V1_MODE}' uses {SOURCE_BRANCH_FOR_MODE[V1_MODE]} as the source branch and " + + f"{TARGET_BRANCH_FOR_MODE[V1_MODE]} as the target branch." ) parser.add_argument( '--conductor', @@ -203,14 +208,8 @@ def main(): args = parser.parse_args() - if args.mode == V2_MODE: - source_branch = 'main' - target_branch = 'v2' - elif args.mode == V1_MODE: - source_branch = 'v2' - target_branch = 'v1' - else: - raise ValueError(f"Unexpected value for release mode: '{args.mode}'") + source_branch = SOURCE_BRANCH_FOR_MODE[args.mode] + target_branch = TARGET_BRANCH_FOR_MODE[args.mode] repo = Github(args.github_token).get_repo(args.repository_nwo) version = get_current_version() @@ -247,9 +246,9 @@ def main(): print('Creating branch ' + new_branch_name) if args.mode == V1_MODE: - # If we're performing a backport, start from the v1 branch - print(f'Creating {new_branch_name} from the {ORIGIN}/v1 branch') - run_git('checkout', '-b', new_branch_name, f'{ORIGIN}/v1') + # If we're performing a backport, start from the target branch + print(f'Creating {new_branch_name} from the {ORIGIN}/{target_branch} branch') + run_git('checkout', '-b', new_branch_name, f'{ORIGIN}/{target_branch}') # Revert the commit that we made as part of the last release that updated the version number and # changelog to refer to 1.x.x variants. This avoids merge conflicts in the changelog and diff --git a/.github/workflows/__analyze-ref-input.yml b/.github/workflows/__analyze-ref-input.yml index 2c5367911..6549b9cf6 100644 --- a/.github/workflows/__analyze-ref-input.yml +++ b/.github/workflows/__analyze-ref-input.yml @@ -11,8 +11,8 @@ on: push: branches: - main - - v1 - - v2 + - releases/v1 + - releases/v2 pull_request: types: - opened diff --git a/.github/workflows/__debug-artifacts.yml b/.github/workflows/__debug-artifacts.yml index a1537815e..e232a7190 100644 --- a/.github/workflows/__debug-artifacts.yml +++ b/.github/workflows/__debug-artifacts.yml @@ -11,8 +11,8 @@ on: push: branches: - main - - v1 - - v2 + - releases/v1 + - releases/v2 pull_request: types: - opened diff --git a/.github/workflows/__extractor-ram-threads.yml b/.github/workflows/__extractor-ram-threads.yml index 98337a4e4..aba2644c3 100644 --- a/.github/workflows/__extractor-ram-threads.yml +++ b/.github/workflows/__extractor-ram-threads.yml @@ -11,8 +11,8 @@ on: push: branches: - main - - v1 - - v2 + - releases/v1 + - releases/v2 pull_request: types: - opened diff --git a/.github/workflows/__go-custom-queries.yml b/.github/workflows/__go-custom-queries.yml index 49e7c0f28..fdb62f0b0 100644 --- a/.github/workflows/__go-custom-queries.yml +++ b/.github/workflows/__go-custom-queries.yml @@ -11,8 +11,8 @@ on: push: branches: - main - - v1 - - v2 + - releases/v1 + - releases/v2 pull_request: types: - opened diff --git a/.github/workflows/__go-custom-tracing-autobuild.yml b/.github/workflows/__go-custom-tracing-autobuild.yml index a6c993819..a45375af4 100644 --- a/.github/workflows/__go-custom-tracing-autobuild.yml +++ b/.github/workflows/__go-custom-tracing-autobuild.yml @@ -11,8 +11,8 @@ on: push: branches: - main - - v1 - - v2 + - releases/v1 + - releases/v2 pull_request: types: - opened diff --git a/.github/workflows/__go-custom-tracing.yml b/.github/workflows/__go-custom-tracing.yml index bf5e1e4a2..53f001983 100644 --- a/.github/workflows/__go-custom-tracing.yml +++ b/.github/workflows/__go-custom-tracing.yml @@ -11,8 +11,8 @@ on: push: branches: - main - - v1 - - v2 + - releases/v1 + - releases/v2 pull_request: types: - opened diff --git a/.github/workflows/__javascript-source-root.yml b/.github/workflows/__javascript-source-root.yml index 8dfe4ca1b..98bd6c049 100644 --- a/.github/workflows/__javascript-source-root.yml +++ b/.github/workflows/__javascript-source-root.yml @@ -11,8 +11,8 @@ on: push: branches: - main - - v1 - - v2 + - releases/v1 + - releases/v2 pull_request: types: - opened diff --git a/.github/workflows/__ml-powered-queries.yml b/.github/workflows/__ml-powered-queries.yml index 14243f2b4..4e7ac04b4 100644 --- a/.github/workflows/__ml-powered-queries.yml +++ b/.github/workflows/__ml-powered-queries.yml @@ -11,8 +11,8 @@ on: push: branches: - main - - v1 - - v2 + - releases/v1 + - releases/v2 pull_request: types: - opened diff --git a/.github/workflows/__multi-language-autodetect.yml b/.github/workflows/__multi-language-autodetect.yml index eb04b2fcf..25548fbb7 100644 --- a/.github/workflows/__multi-language-autodetect.yml +++ b/.github/workflows/__multi-language-autodetect.yml @@ -11,8 +11,8 @@ on: push: branches: - main - - v1 - - v2 + - releases/v1 + - releases/v2 pull_request: types: - opened diff --git a/.github/workflows/__packaging-config-inputs-js.yml b/.github/workflows/__packaging-config-inputs-js.yml index 805169b7c..fe3edc96e 100644 --- a/.github/workflows/__packaging-config-inputs-js.yml +++ b/.github/workflows/__packaging-config-inputs-js.yml @@ -11,8 +11,8 @@ on: push: branches: - main - - v1 - - v2 + - releases/v1 + - releases/v2 pull_request: types: - opened diff --git a/.github/workflows/__packaging-config-js.yml b/.github/workflows/__packaging-config-js.yml index d2ea6b669..37da28617 100644 --- a/.github/workflows/__packaging-config-js.yml +++ b/.github/workflows/__packaging-config-js.yml @@ -11,8 +11,8 @@ on: push: branches: - main - - v1 - - v2 + - releases/v1 + - releases/v2 pull_request: types: - opened diff --git a/.github/workflows/__packaging-inputs-js.yml b/.github/workflows/__packaging-inputs-js.yml index 9a9b216b4..df598adc4 100644 --- a/.github/workflows/__packaging-inputs-js.yml +++ b/.github/workflows/__packaging-inputs-js.yml @@ -11,8 +11,8 @@ on: push: branches: - main - - v1 - - v2 + - releases/v1 + - releases/v2 pull_request: types: - opened diff --git a/.github/workflows/__remote-config.yml b/.github/workflows/__remote-config.yml index 9ab7ce727..2ebc7f7ec 100644 --- a/.github/workflows/__remote-config.yml +++ b/.github/workflows/__remote-config.yml @@ -11,8 +11,8 @@ on: push: branches: - main - - v1 - - v2 + - releases/v1 + - releases/v2 pull_request: types: - opened diff --git a/.github/workflows/__rubocop-multi-language.yml b/.github/workflows/__rubocop-multi-language.yml index 364688c73..dc12bb20e 100644 --- a/.github/workflows/__rubocop-multi-language.yml +++ b/.github/workflows/__rubocop-multi-language.yml @@ -11,8 +11,8 @@ on: push: branches: - main - - v1 - - v2 + - releases/v1 + - releases/v2 pull_request: types: - opened diff --git a/.github/workflows/__split-workflow.yml b/.github/workflows/__split-workflow.yml index a0ab24d08..b5bf5635c 100644 --- a/.github/workflows/__split-workflow.yml +++ b/.github/workflows/__split-workflow.yml @@ -11,8 +11,8 @@ on: push: branches: - main - - v1 - - v2 + - releases/v1 + - releases/v2 pull_request: types: - opened diff --git a/.github/workflows/__test-autobuild-working-dir.yml b/.github/workflows/__test-autobuild-working-dir.yml index 716628d9e..2f9ad8ed0 100644 --- a/.github/workflows/__test-autobuild-working-dir.yml +++ b/.github/workflows/__test-autobuild-working-dir.yml @@ -11,8 +11,8 @@ on: push: branches: - main - - v1 - - v2 + - releases/v1 + - releases/v2 pull_request: types: - opened diff --git a/.github/workflows/__test-local-codeql.yml b/.github/workflows/__test-local-codeql.yml index 1929b0062..7b98a4675 100644 --- a/.github/workflows/__test-local-codeql.yml +++ b/.github/workflows/__test-local-codeql.yml @@ -11,8 +11,8 @@ on: push: branches: - main - - v1 - - v2 + - releases/v1 + - releases/v2 pull_request: types: - opened diff --git a/.github/workflows/__test-proxy.yml b/.github/workflows/__test-proxy.yml index 81ee4d3fb..7fa3f7011 100644 --- a/.github/workflows/__test-proxy.yml +++ b/.github/workflows/__test-proxy.yml @@ -11,8 +11,8 @@ on: push: branches: - main - - v1 - - v2 + - releases/v1 + - releases/v2 pull_request: types: - opened diff --git a/.github/workflows/__test-ruby.yml b/.github/workflows/__test-ruby.yml index f6ecbfb05..97aaa1fc5 100644 --- a/.github/workflows/__test-ruby.yml +++ b/.github/workflows/__test-ruby.yml @@ -11,8 +11,8 @@ on: push: branches: - main - - v1 - - v2 + - releases/v1 + - releases/v2 pull_request: types: - opened diff --git a/.github/workflows/__unset-environment.yml b/.github/workflows/__unset-environment.yml index a7284dfd7..68b848131 100644 --- a/.github/workflows/__unset-environment.yml +++ b/.github/workflows/__unset-environment.yml @@ -11,8 +11,8 @@ on: push: branches: - main - - v1 - - v2 + - releases/v1 + - releases/v2 pull_request: types: - opened diff --git a/.github/workflows/__upload-ref-sha-input.yml b/.github/workflows/__upload-ref-sha-input.yml index 73e009e92..663a3df80 100644 --- a/.github/workflows/__upload-ref-sha-input.yml +++ b/.github/workflows/__upload-ref-sha-input.yml @@ -11,8 +11,8 @@ on: push: branches: - main - - v1 - - v2 + - releases/v1 + - releases/v2 pull_request: types: - opened diff --git a/.github/workflows/__with-checkout-path.yml b/.github/workflows/__with-checkout-path.yml index 8d13ca542..2da06c6f2 100644 --- a/.github/workflows/__with-checkout-path.yml +++ b/.github/workflows/__with-checkout-path.yml @@ -11,8 +11,8 @@ on: push: branches: - main - - v1 - - v2 + - releases/v1 + - releases/v2 pull_request: types: - opened diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 77ff8ed60..f780e1624 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -2,9 +2,9 @@ name: "CodeQL action" on: push: - branches: [main, v1, v2] + branches: [main, releases/v1, releases/v2] pull_request: - branches: [main, v1, v2] + branches: [main, releases/v1, releases/v2] # Run checks on reopened draft PRs to support triggering PR checks on draft PRs that were opened # by other workflows. types: [opened, synchronize, reopened, ready_for_review] diff --git a/.github/workflows/post-release-mergeback.yml b/.github/workflows/post-release-mergeback.yml index ab4d3c5a3..f7a58dce2 100644 --- a/.github/workflows/post-release-mergeback.yml +++ b/.github/workflows/post-release-mergeback.yml @@ -15,8 +15,8 @@ on: push: branches: - - v1 - - v2 + - releases/v1 + - releases/v2 jobs: merge-back: @@ -106,7 +106,7 @@ jobs: git push origin --atomic --force refs/tags/"${VERSION}" refs/tags/"${major_version_tag}" - name: Create mergeback branch - if: steps.check.outputs.exists != 'true' && contains(github.ref, 'v2') + if: steps.check.outputs.exists != 'true' && contains(github.ref, 'releases/v2') env: VERSION: "${{ steps.getVersion.outputs.version }}" NEW_BRANCH: "${{ steps.getVersion.outputs.newBranch }}" diff --git a/.github/workflows/pr-checks.yml b/.github/workflows/pr-checks.yml index 722c71f4d..53fca4a5a 100644 --- a/.github/workflows/pr-checks.yml +++ b/.github/workflows/pr-checks.yml @@ -2,7 +2,7 @@ name: PR Checks (Basic Checks and Runner) on: push: - branches: [main, v1, v2] + branches: [main, releases/v1, releases/v2] pull_request: # Run checks on reopened draft PRs to support triggering PR checks on draft PRs that were opened # by other workflows. diff --git a/.github/workflows/python-deps.yml b/.github/workflows/python-deps.yml index f9e35324b..3c616cf67 100644 --- a/.github/workflows/python-deps.yml +++ b/.github/workflows/python-deps.yml @@ -2,7 +2,7 @@ name: Test Python Package Installation on Linux and Mac on: push: - branches: [main, v1, v2] + branches: [main, releases/v1, releases/v2] pull_request: # Run checks on reopened draft PRs to support triggering PR checks on draft PRs that were opened # by other workflows. diff --git a/.github/workflows/update-release-branch.yml b/.github/workflows/update-release-branch.yml index 831fd028e..7ecb53a42 100644 --- a/.github/workflows/update-release-branch.yml +++ b/.github/workflows/update-release-branch.yml @@ -7,7 +7,7 @@ on: # When the v2 release is complete, this workflow will open a PR to update the v1 release branch. push: branches: - - v2 + - releases/v2 jobs: update: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d9cb6ce2a..1346a9aa3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -61,22 +61,22 @@ Here are a few things you can do that will increase the likelihood of your pull ## Releasing (write access required) 1. The first step of releasing a new version of the `codeql-action` is running the "Update release branch" workflow. - This workflow goes through the pull requests that have been merged to `main` since the last release, creates a changelog, then opens a pull request to merge the changes since the last release into the `v2` release branch. + This workflow goes through the pull requests that have been merged to `main` since the last release, creates a changelog, then opens a pull request to merge the changes since the last release into the `releases/v2` release branch. You can start a release by triggering this workflow via [workflow dispatch](https://github.com/github/codeql-action/actions/workflows/update-release-branch.yml). -1. The workflow run will open a pull request titled "Merge main into v2". Mark the pull request as [ready for review](https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request#marking-a-pull-request-as-ready-for-review) to trigger the PR checks. +1. The workflow run will open a pull request titled "Merge main into releases/v2". Mark the pull request as [ready for review](https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request#marking-a-pull-request-as-ready-for-review) to trigger the PR checks. 1. Review the checklist items in the pull request description. Once you've checked off all but the last two of these, approve the PR and automerge it. -1. When the "Merge main into v2" pull request is merged into the `v2` branch, the "Tag release and merge back" workflow will create a mergeback PR. - This mergeback incorporates the changelog updates into `main`, tags the release using the merge commit of the "Merge main into v2" pull request, and bumps the patch version of the CodeQL Action. +1. When the "Merge main into releases/v2" pull request is merged into the `releases/v2` branch, the "Tag release and merge back" workflow will create a mergeback PR. + This mergeback incorporates the changelog updates into `main`, tags the release using the merge commit of the "Merge main into releases/v2" pull request, and bumps the patch version of the CodeQL Action. Approve the mergeback PR and automerge it. -1. When the "Merge main into v2" pull request is merged into the `v2` branch, the "Update release branch" workflow will create a "Merge v2 into v1" pull request to merge the changes since the last release into the `v1` release branch. - This ensures we keep both the `v1` and `v2` release branches up to date and fully supported. +1. When the "Merge main into releases/v2" pull request is merged into the `releases/v2` branch, the "Update release branch" workflow will create a "Merge releases/v2 into releases/v1" pull request to merge the changes since the last release into the `releases/v1` release branch. + This ensures we keep both the `releases/v1` and `releases/v2` release branches up to date and fully supported. Review the checklist items in the pull request description. Once you've checked off all the items, approve the PR and automerge it. -1. Once the mergeback has been merged to `main` and the "Merge v2 into v1" PR has been merged to `v1`, the release is complete. +1. Once the mergeback has been merged to `main` and the "Merge releases/v2 into releases/v1" PR has been merged to `releases/v1`, the release is complete. ## Keeping the PR checks up to date (admin access required) @@ -91,8 +91,8 @@ To regenerate the PR jobs for the action: CHECKS="$(gh api repos/github/codeql-action/commits/${SHA}/check-runs --paginate | jq --slurp --compact-output --raw-output '[.[].check_runs | .[].name | select(contains("https://") or . == "CodeQL" or . == "LGTM.com" or . == "Update dependencies" or . == "Update Supported Enterprise Server Versions" | not)]')" echo "{\"contexts\": ${CHECKS}}" > checks.json gh api -X "PATCH" repos/github/codeql-action/branches/main/protection/required_status_checks --input checks.json - gh api -X "PATCH" repos/github/codeql-action/branches/v2/protection/required_status_checks --input checks.json - gh api -X "PATCH" repos/github/codeql-action/branches/v1/protection/required_status_checks --input checks.json + gh api -X "PATCH" repos/github/codeql-action/branches/releases/v2/protection/required_status_checks --input checks.json + gh api -X "PATCH" repos/github/codeql-action/branches/releases/v1/protection/required_status_checks --input checks.json ```` 2. Go to the [branch protection rules settings page](https://github.com/github/codeql-action/settings/branches) and validate that the rules have been updated. diff --git a/pr-checks/sync.py b/pr-checks/sync.py index 0ed8a4ae5..f1d213635 100644 --- a/pr-checks/sync.py +++ b/pr-checks/sync.py @@ -108,7 +108,7 @@ def writeHeader(checkStream): }, 'on': { 'push': { - 'branches': ['main', 'v1', 'v2'] + 'branches': ['main', 'releases/v1', 'releases/v2'] }, 'pull_request': { 'types': ["opened", "synchronize", "reopened", "ready_for_review"]