From 63b0a9b5479334265fb69d15e8fc39c016bc08de Mon Sep 17 00:00:00 2001 From: Rick Newton-Rogers Date: Wed, 12 Aug 2026 15:18:03 -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..4635451 --- /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@v6 + with: + persist-credentials: false + - name: Check for Semantic Version label + uses: apple/swift-nio/.github/actions/pull_request_semver_label_checker@0b18836bd8b0162e7e17a995a3fbee20ed8f3b2b