From 508916e893ac15d0b6883a0b6ad2822fe4be3786 Mon Sep 17 00:00:00 2001 From: Max Howell Date: Mon, 16 Mar 2026 12:41:55 -0400 Subject: [PATCH 01/14] We can stop breaking now --- .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 2d52aba..bbf5750 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -52,7 +52,7 @@ jobs: container: image: ${{ matrix.swift }} steps: - - uses: mxcl/get-swift-version@v1 + - uses: mxcl/get-swift-version@latest id: swift - uses: actions/checkout@v2 From 6862fa9c7f02defbe1fc9a7d389c7d1bdb0b6be7 Mon Sep 17 00:00:00 2001 From: Max Howell Date: Mon, 16 Mar 2026 12:47:38 -0400 Subject: [PATCH 02/14] wip --- .github/workflows/ci.yml | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bbf5750..c862a48 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,12 +17,9 @@ jobs: - run: git diff --exit-code apple: - runs-on: ${{ matrix.os }} + runs-on: macos-latest strategy: matrix: - os: - - macos-10.15 - - macos-11 platform: - iOS - tvOS @@ -30,15 +27,16 @@ jobs: - watchOS steps: - uses: actions/checkout@v2 - - uses: mxcl/xcodebuild@v1 + - uses: mxcl/xcodebuild@latest with: platform: ${{ matrix.platform }} code-coverage: true warnings-as-errors: true - - uses: codecov/codecov-action@v1 + - uses: codecov/codecov-action@v5 linux: runs-on: ubuntu-latest + continue-on-error: true strategy: matrix: swift: @@ -48,11 +46,11 @@ jobs: - swift:5.2 - swift:5.3 - swift:5.4 - - swiftlang/swift:nightly-5.5 + - swift:5.5 container: image: ${{ matrix.swift }} steps: - - uses: mxcl/get-swift-version@latest + - uses: mxcl/get-swift-version@v2 id: swift - uses: actions/checkout@v2 From b6a18581cc3d593245bc127b22b1621925e380ad Mon Sep 17 00:00:00 2001 From: Max Howell Date: Mon, 16 Mar 2026 12:50:19 -0400 Subject: [PATCH 03/14] wip --- .github/workflows/ci.yml | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c862a48..8f9bd22 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,9 +10,9 @@ concurrency: jobs: verify-linuxmain: - runs-on: macos-10.15 + runs-on: macos-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - run: swift test --generate-linuxmain - run: git diff --exit-code @@ -21,10 +21,10 @@ jobs: strategy: matrix: platform: - - iOS - - tvOS + # - iOS + # - tvOS - macOS - - watchOS + # - watchOS steps: - uses: actions/checkout@v2 - uses: mxcl/xcodebuild@latest @@ -40,13 +40,21 @@ jobs: strategy: matrix: swift: - - swift:4.2 - - swift:5.0 - - swift:5.1 - - swift:5.2 - - swift:5.3 - - swift:5.4 + # - swift:4.2 + # - swift:5.0 + # - swift:5.1 + # - swift:5.2 + # - swift:5.3 + # - swift:5.4 - swift:5.5 + # - swift:5.6 + # - swift:5.7 + # - swift:5.8 + # - swift:5.9 + # - swift:5.10 + # - swift:6.0 + # - swift:6.1 + # - swift:6.2 container: image: ${{ matrix.swift }} steps: From 2029bcc5531c27622b71dcfb0c6070155be41f6e Mon Sep 17 00:00:00 2001 From: Max Howell Date: Mon, 16 Mar 2026 12:51:54 -0400 Subject: [PATCH 04/14] wip --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8f9bd22..3d6536f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,10 +58,10 @@ jobs: container: image: ${{ matrix.swift }} steps: - - uses: mxcl/get-swift-version@v2 + - uses: mxcl/get-swift-version@latest id: swift - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - run: useradd -ms /bin/bash mxcl - run: chown -R mxcl . From 71a29642dbf08c19860cb8293683dcab03a8bbb1 Mon Sep 17 00:00:00 2001 From: Max Howell Date: Mon, 16 Mar 2026 12:53:11 -0400 Subject: [PATCH 05/14] wip --- .github/workflows/ci.yml | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3d6536f..8e115bb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,13 +9,6 @@ concurrency: cancel-in-progress: true jobs: - verify-linuxmain: - runs-on: macos-latest - steps: - - uses: actions/checkout@v4 - - run: swift test --generate-linuxmain - - run: git diff --exit-code - apple: runs-on: macos-latest strategy: @@ -58,7 +51,7 @@ jobs: container: image: ${{ matrix.swift }} steps: - - uses: mxcl/get-swift-version@latest + - uses: mxcl/get-swift-version@v1 id: swift - uses: actions/checkout@v4 From 6cd158abcda5e9e07f0404d38082eb20d94323e2 Mon Sep 17 00:00:00 2001 From: Max Howell Date: Mon, 16 Mar 2026 12:56:43 -0400 Subject: [PATCH 06/14] wip --- .github/workflows/ci.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8e115bb..c70938b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -51,11 +51,14 @@ jobs: container: image: ${{ matrix.swift }} steps: - - uses: mxcl/get-swift-version@v1 - id: swift - - uses: actions/checkout@v4 + - name: Get Swift version + id: swift + run: | + ver=$(swift --version | head -1 | sed 's/.*Swift version \([0-9]*\).*/\1/') + echo "marketing-version=$ver" >> $GITHUB_OUTPUT + - run: useradd -ms /bin/bash mxcl - run: chown -R mxcl . # ^^ we need to be a normal user and not root for the tests to be valid From 7660fd89988b4747fb1d472f9ddd7036a5cc8701 Mon Sep 17 00:00:00 2001 From: Max Howell Date: Mon, 16 Mar 2026 12:57:58 -0400 Subject: [PATCH 07/14] wip --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c70938b..3bd03fc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,7 +19,7 @@ jobs: - macOS # - watchOS steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v6 - uses: mxcl/xcodebuild@latest with: platform: ${{ matrix.platform }} @@ -51,7 +51,7 @@ jobs: container: image: ${{ matrix.swift }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v2 - name: Get Swift version id: swift From 6bd87d42d040fcd5221a305ece6271b081e61a43 Mon Sep 17 00:00:00 2001 From: Max Howell Date: Mon, 16 Mar 2026 12:58:46 -0400 Subject: [PATCH 08/14] wip --- .github/workflows/ci.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3bd03fc..54a5235 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,17 +14,16 @@ jobs: strategy: matrix: platform: - # - iOS - # - tvOS + - iOS + - tvOS - macOS - # - watchOS + - watchOS steps: - uses: actions/checkout@v6 - uses: mxcl/xcodebuild@latest with: platform: ${{ matrix.platform }} code-coverage: true - warnings-as-errors: true - uses: codecov/codecov-action@v5 linux: From c1c6e32b5c8a2004137be76a086cfa5b56fba288 Mon Sep 17 00:00:00 2001 From: Max Howell Date: Mon, 16 Mar 2026 13:01:26 -0400 Subject: [PATCH 09/14] wip --- .github/workflows/ci.yml | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 54a5235..b95ce57 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,22 +9,24 @@ concurrency: cancel-in-progress: true jobs: - apple: - runs-on: macos-latest - strategy: - matrix: - platform: - - iOS - - tvOS - - macOS - - watchOS - steps: - - uses: actions/checkout@v6 - - uses: mxcl/xcodebuild@latest - with: - platform: ${{ matrix.platform }} - code-coverage: true - - uses: codecov/codecov-action@v5 + # we want to test more macOS versions but GitHub make that difficult without + # constant maintenance because runners are deprecated and removed + # apple: + # runs-on: macos-latest + # strategy: + # matrix: + # platform: + # - iOS + # - tvOS + # - macOS + # - watchOS + # steps: + # - uses: actions/checkout@v6 + # - uses: mxcl/xcodebuild@latest + # with: + # platform: ${{ matrix.platform }} + # code-coverage: true + # - uses: codecov/codecov-action@v5 linux: runs-on: ubuntu-latest @@ -50,7 +52,7 @@ jobs: container: image: ${{ matrix.swift }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Get Swift version id: swift From 78a3497f65ccf71ab9c6c6d4a6e7644c85dcbc99 Mon Sep 17 00:00:00 2001 From: Max Howell Date: Mon, 16 Mar 2026 13:02:25 -0400 Subject: [PATCH 10/14] wip --- .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 b95ce57..f2f52e2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -52,7 +52,7 @@ jobs: container: image: ${{ matrix.swift }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v1 - name: Get Swift version id: swift From 84bc8291ca7f2a200eae3643cc5ed22b7d0d138a Mon Sep 17 00:00:00 2001 From: Max Howell Date: Mon, 16 Mar 2026 13:03:45 -0400 Subject: [PATCH 11/14] wip --- .github/workflows/ci.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f2f52e2..4704c7b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -41,14 +41,14 @@ jobs: # - swift:5.3 # - swift:5.4 - swift:5.5 - # - swift:5.6 - # - swift:5.7 - # - swift:5.8 - # - swift:5.9 - # - swift:5.10 - # - swift:6.0 - # - swift:6.1 - # - swift:6.2 + - swift:5.6 + - swift:5.7 + - swift:5.8 + - swift:5.9 + - swift:5.10 + - swift:6.0 + - swift:6.1 + - swift:6.2 container: image: ${{ matrix.swift }} steps: From 8b5a96ea26de3621b93b39414baedc1e2eff9090 Mon Sep 17 00:00:00 2001 From: Max Howell Date: Mon, 16 Mar 2026 13:06:53 -0400 Subject: [PATCH 12/14] wip --- .github/workflows/ci.yml | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4704c7b..91551fd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,21 +34,21 @@ jobs: strategy: matrix: swift: - # - swift:4.2 - # - swift:5.0 - # - swift:5.1 - # - swift:5.2 - # - swift:5.3 - # - swift:5.4 - - swift:5.5 - - swift:5.6 - - swift:5.7 - - swift:5.8 - - swift:5.9 - - swift:5.10 - - swift:6.0 - - swift:6.1 - - swift:6.2 + - swift:4.2 + - swift:5.0 + - swift:5.1 + - swift:5.2 + - swift:5.3 + - swift:5.4 + # - swift:5.5 + # - swift:5.6 + # - swift:5.7 + # - swift:5.8 + # - swift:5.9 + # - swift:5.10 + # - swift:6.0 strangely fails + # - swift:6.1 + # - swift:6.2 container: image: ${{ matrix.swift }} steps: From 5df2bca357b19f9cb6b968ac2acf2b291d1cba2f Mon Sep 17 00:00:00 2001 From: Max Howell Date: Mon, 16 Mar 2026 13:10:20 -0400 Subject: [PATCH 13/14] wip --- .github/workflows/ci.yml | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 91551fd..ef1a8ef 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,21 +34,21 @@ jobs: strategy: matrix: swift: - - swift:4.2 - - swift:5.0 - - swift:5.1 - - swift:5.2 - - swift:5.3 - - swift:5.4 - # - swift:5.5 - # - swift:5.6 - # - swift:5.7 - # - swift:5.8 - # - swift:5.9 - # - swift:5.10 - # - swift:6.0 strangely fails - # - swift:6.1 - # - swift:6.2 + # - swift:4.2 + # - swift:5.0 + # - swift:5.1 + # - swift:5.2 + # - swift:5.3 + # - swift:5.4 + # - swift:5.5 + # - swift:5.6 + # - swift:5.7 + # - swift:5.8 + # - swift:5.9 + # - swift:5.10 + # # - swift:6.0 strangely fails + # - swift:6.1 + - swift:6.2 container: image: ${{ matrix.swift }} steps: @@ -65,12 +65,12 @@ jobs: # ^^ we need to be a normal user and not root for the tests to be valid - run: echo ARGS=--enable-code-coverage >> $GITHUB_ENV - if: ${{ steps.swift.outputs.marketing-version > 5 }} + if: ${{ steps.swift.outputs.marketing-version > 6.1 }} - run: su mxcl -c "swift test --parallel $ARGS" - name: Generate `.lcov` - if: ${{ steps.swift.outputs.marketing-version > 5 }} + if: ${{ steps.swift.outputs.marketing-version > 6.1 }} run: | apt-get -qq update && apt-get -qq install curl b=$(swift build --show-bin-path) @@ -82,6 +82,6 @@ jobs: > info.lcov - uses: codecov/codecov-action@v1 - if: ${{ steps.swift.outputs.marketing-version > 5 }} + if: ${{ steps.swift.outputs.marketing-version > 6.1 }} with: file: ./info.lcov From f330b85c8bada2921bebe0ef62d4b7843512bada Mon Sep 17 00:00:00 2001 From: Max Howell Date: Mon, 16 Mar 2026 13:13:00 -0400 Subject: [PATCH 14/14] wip --- .github/workflows/ci.yml | 62 +++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 32 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ef1a8ef..87b0086 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,8 +1,6 @@ name: CI on: pull_request: - schedule: - - cron: '3 3 * * 5' # 3:03 AM, every Friday concurrency: group: ${{ github.head_ref || 'push' }} @@ -11,22 +9,22 @@ concurrency: jobs: # we want to test more macOS versions but GitHub make that difficult without # constant maintenance because runners are deprecated and removed - # apple: - # runs-on: macos-latest - # strategy: - # matrix: - # platform: - # - iOS - # - tvOS - # - macOS - # - watchOS - # steps: - # - uses: actions/checkout@v6 - # - uses: mxcl/xcodebuild@latest - # with: - # platform: ${{ matrix.platform }} - # code-coverage: true - # - uses: codecov/codecov-action@v5 + apple: + runs-on: macos-latest + strategy: + matrix: + platform: + - iOS + - tvOS + - macOS + - watchOS + steps: + - uses: actions/checkout@v6 + - uses: mxcl/xcodebuild@latest + with: + platform: ${{ matrix.platform }} + code-coverage: true + - uses: codecov/codecov-action@v5 linux: runs-on: ubuntu-latest @@ -34,20 +32,20 @@ jobs: strategy: matrix: swift: - # - swift:4.2 - # - swift:5.0 - # - swift:5.1 - # - swift:5.2 - # - swift:5.3 - # - swift:5.4 - # - swift:5.5 - # - swift:5.6 - # - swift:5.7 - # - swift:5.8 - # - swift:5.9 - # - swift:5.10 - # # - swift:6.0 strangely fails - # - swift:6.1 + - swift:4.2 + - swift:5.0 + - swift:5.1 + - swift:5.2 + - swift:5.3 + - swift:5.4 + - swift:5.5 + - swift:5.6 + - swift:5.7 + - swift:5.8 + - swift:5.9 + - swift:5.10 + # - swift:6.0 strangely fails + - swift:6.1 - swift:6.2 container: image: ${{ matrix.swift }}