From f050d41a91594d415ec1b9658b22198b735e18e5 Mon Sep 17 00:00:00 2001 From: Rick Newton-Rogers Date: Mon, 5 Oct 2026 16:32:47 -0400 Subject: [PATCH] Add SemVer machinery. The Swift Server ecosystem has machinery for making sure that SemVer is used for changes and reflected easily and correctly in releases. This PR adopts those tools so that we can more easily ensure we don't break downstream consumers of the package. * Add PR workflow check for SemVer labels * Add `release.yml` which will allow GitHub's release/tag flow to automatically group merged changes by SemVer level. --- .github/release.yml | 14 ++++++++++++++ .github/workflows/pull_request_label.yml | 21 +++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 .github/release.yml create mode 100644 .github/workflows/pull_request_label.yml diff --git a/.github/release.yml b/.github/release.yml new file mode 100644 index 0000000..e29eb84 --- /dev/null +++ b/.github/release.yml @@ -0,0 +1,14 @@ +changelog: + categories: + - title: SemVer Major + labels: + - ⚠️ semver/major + - title: SemVer Minor + labels: + - 🆕 semver/minor + - title: SemVer Patch + labels: + - 🔨 semver/patch + - title: Other Changes + labels: + - semver/none diff --git a/.github/workflows/pull_request_label.yml b/.github/workflows/pull_request_label.yml new file mode 100644 index 0000000..fc14422 --- /dev/null +++ b/.github/workflows/pull_request_label.yml @@ -0,0 +1,21 @@ +name: PR label + +permissions: + contents: read + +on: + pull_request: + types: [labeled, unlabeled, opened, reopened, synchronize] + +jobs: + semver-label-check: + name: Semantic version label check + runs-on: ubuntu-latest + timeout-minutes: 1 + steps: + - name: Checkout repository + uses: actions/checkout@v7 + with: + persist-credentials: false + - name: Check for Semantic Version label + uses: apple/swift-nio/.github/actions/pull_request_semver_label_checker@21de5f08c1a166a6dd293d0e587ad977bf8dac5d