Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
58070ed
Package updates
0xTim Feb 17, 2026
114cca9
Migrate to Swift Testing
0xTim Feb 17, 2026
c911208
Make sure we only test the public API
0xTim Feb 17, 2026
e216bff
Update manifest
0xTim Feb 17, 2026
a98c720
Bring mostly inline with fork
0xTim Feb 17, 2026
d59c2f4
Rmove the Lock in favour of Mutex
0xTim Feb 17, 2026
5982cd2
Attempt to simplify things
0xTim Feb 17, 2026
d1425d8
Bump benchmark manifest
0xTim Feb 18, 2026
e03253a
Get benchmark running
0xTim Feb 18, 2026
4d86fa4
Gitignore update
0xTim Feb 18, 2026
81c77c5
Allow us to parallelise the tests
0xTim Feb 18, 2026
6cf672a
Tidy up
0xTim Feb 18, 2026
fc44a93
Remove enum to remove a copy
0xTim Feb 18, 2026
68f1905
Add test to catch behaviour bug accidentally added
0xTim Feb 18, 2026
7359eac
Back to an enum approach
0xTim Feb 18, 2026
b8679e1
Update CI from template
0xTim Feb 18, 2026
d87ab52
Add dependabot
0xTim Feb 18, 2026
d486a80
Bump CI versions
0xTim Feb 18, 2026
e066736
Turn on all the flags
0xTim Feb 18, 2026
c5a5be7
Migrate to use the plugins in the manifest
0xTim Feb 18, 2026
39e797f
Add missing CI file
0xTim Feb 18, 2026
8b87859
Fix swiftlint
0xTim Feb 18, 2026
c2b7521
Fix some CI builds
0xTim Feb 18, 2026
7a0a77e
Fix CodeCov job
0xTim Feb 18, 2026
b6d860a
Fix redundant test
0xTim Feb 18, 2026
61d0065
Disable some failing tests
0xTim Feb 18, 2026
815c771
Avoid risk of collisions by using the milliseconds as a seed
0xTim Feb 18, 2026
d111761
PR tweaks
0xTim Feb 19, 2026
235b0dc
Remove some instructions for the identifier
0xTim Feb 19, 2026
8033dd5
Some more performance improvements
0xTim Feb 19, 2026
9ad9b1f
Clarify nano seconds usage
0xTim Feb 19, 2026
66c01dc
Save a few more cycles
0xTim Feb 19, 2026
95a4433
Reverse out problematic code
0xTim Feb 19, 2026
608ef34
Merge branch 'main' into feature/sc-29118/update-frostlake
0xTim Feb 20, 2026
1092db4
Delete .claude/settings.local.json
freef4ll Feb 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/actions/consul-start/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@ runs:
shell: bash
run: |
consul agent -dev -log-level=warn &

7 changes: 7 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/workflows/swift"
schedule:
# Check for updates to GitHub Actions every week
interval: "weekly"
22 changes: 11 additions & 11 deletions .github/workflows/lint-pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: amannn/action-semantic-pull-request@v5
- uses: amannn/action-semantic-pull-request@v6
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
Expand All @@ -27,19 +27,19 @@ jobs:
style
refactor
perf
test
test
build
ci
chore
revert
ci
chore
revert
# Configure which scopes are allowed.
scopes: |
patch
hotfix
minor
major
# Configure that a scope must always be provided.
requireScope: false
requireScope: false
# Configure which scopes are disallowed in PR titles. For instance by setting
# the value below, `chore(release): ...` and `ci(e2e,release): ...` will be rejected.
disallowScopes: |
Expand All @@ -56,10 +56,10 @@ jobs:
ignoreLabels: |
bot
ignore-semantic-pull-request
# For work-in-progress PRs you can typically use draft pull requests
# from GitHub. However, private repositories on the free plan don't have
# this option and therefore this action allows you to opt-in to using the
# special "[WIP]" prefix to indicate this state. This will avoid the
# For work-in-progress PRs you can typically use draft pull requests
# from GitHub. However, private repositories on the free plan don't have
# this option and therefore this action allows you to opt-in to using the
# special "[WIP]" prefix to indicate this state. This will avoid the
# validation of the PR title and the pull request checks remain pending.
# Note that a second check will be reported if this is enabled.
wip: true
wip: true
12 changes: 6 additions & 6 deletions .github/workflows/semantic-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ on:

jobs:
semantic-release:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 0

Expand Down Expand Up @@ -52,15 +52,15 @@ jobs:
failTitle: false" > .releaserc.yml

- name: Setup Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: '20'
node-version: '24'

- name: Install semantic-release
run: |
npm install semantic-release@v24 conventional-changelog-conventionalcommits@v8 -D
npm install semantic-release@v25 conventional-changelog-conventionalcommits@v9 -D
npm list
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: npx semantic-release
run: npx semantic-release
4 changes: 2 additions & 2 deletions .github/workflows/swift-benchmark-delta.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
workflow_dispatch:
pull_request:
branches: [ main ]

jobs:
benchmark-delta:
timeout-minutes: 30
Expand All @@ -15,7 +15,7 @@ jobs:
os: [ubuntu-latest]

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Homebrew Mac
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/swift-check-api-breaks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ jobs:

runs-on: [ubuntu-latest]
timeout-minutes: 30

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Ubuntu deps
Expand All @@ -33,4 +33,4 @@ jobs:
run: swift package diagnose-api-breaking-changes origin/main --targets ${{ env.spmlibrarytarget }}
- name: Analyze API breakage
if: ${{ env.spmlibrarytarget }}
run: swift package diagnose-api-breaking-changes origin/main --targets ${{ env.spmlibrarytarget }}
run: swift package diagnose-api-breaking-changes origin/main --targets ${{ env.spmlibrarytarget }}
10 changes: 5 additions & 5 deletions .github/workflows/swift-code-coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@ jobs:
runs-on: [ubuntu-24.04]
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Ubuntu deps
if: ${{ runner.os == 'Linux' }}
run: |
sudo apt-get install -y libjemalloc-dev

- uses: swift-actions/setup-swift@next
- uses: swift-actions/setup-swift@v2
with:
swift-version: "6"

Expand Down Expand Up @@ -46,8 +46,8 @@ jobs:
fi

- name: Upload codecov
uses: codecov/codecov-action@v4
with:
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_REPO_TOKEN }}
files: info.lcov
fail_ci_if_error: true
fail_ci_if_error: true
4 changes: 2 additions & 2 deletions .github/workflows/swift-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ jobs:
timeout-minutes: 60
runs-on: [ubuntu-latest]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: GitHub Action for SwiftLint with --strict
uses: norio-nomura/action-swiftlint@3.2.1
with:
args: --strict
args: --strict
7 changes: 3 additions & 4 deletions .github/workflows/swift-linux-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest]
# swift: [ "5.10", "6.0" ]

runs-on: ${{ matrix.os }}

Expand All @@ -24,7 +23,7 @@ jobs:
with:
swift-version: ${{ matrix.swift }}

- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Start consul
uses: ./.github/actions/consul-start
Expand All @@ -43,5 +42,5 @@ jobs:
- name: Run tests
run: |
if [ -d Tests ]; then
swift test --parallel
fi
swift test
fi
23 changes: 12 additions & 11 deletions .github/workflows/swift-macos-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,18 @@ on:
branches: [ main ]
pull_request:
branches: [ main, next ]

jobs:
build-macos:
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
os: [macos-15]
# swift: [ "5.10", "6.0" ]
os: [macos-26]

runs-on: ${{ matrix.os }}
env:
DEVELOPER_DIR: /Applications/Xcode_16.4.app/Contents/Developer
DEVELOPER_DIR: /Applications/Xcode_26.2.app/Contents/Developer

steps:
- uses: swift-actions/setup-swift@v2
Expand All @@ -33,7 +32,7 @@ jobs:
echo BENCHMARK_DISABLE_JEMALLOC=true >> $GITHUB_ENV
brew install jemalloc

- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Start consul
uses: ./.github/actions/consul-start
Expand All @@ -49,10 +48,12 @@ jobs:
- name: Run tests
run: |
if [ -d Tests ]; then
swift test --parallel
fi
- name: Run tests (release)
run: |
if [ -d Tests ]; then
swift test -c release --parallel
swift test
fi
# Disable release tests now as there's a bug in Swift Testing with release builds and argument parser
# and executable targets
# - name: Run tests (release)
# run: |
# if [ -d Tests ]; then
# swift test -c release
# fi
14 changes: 7 additions & 7 deletions .github/workflows/swift-outdated-dependencies.yml
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
name: Swift outdated dependencies
name: Swift outdated dependencies

on:
on:
workflow_dispatch:
schedule:
- cron: '0 8 */100,1-7 * MON' # First Monday of the month

jobs:
spm-dep-check:
runs-on: [ubuntu-latest]
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Check Swift package dependencies
id: spm-dep-check
uses: MarcoEidinger/swift-package-dependencies-check@2.5.0
uses: MarcoEidinger/swift-package-dependencies-check@2.7.0
with:
isMutating: true
failWhenOutdated: false
- name: Create Pull Request
if: steps.spm-dep-check.outputs.outdatedDependencies == 'true'
uses: peter-evans/create-pull-request@v7
uses: peter-evans/create-pull-request@v8
with:
commit-message: 'chore: update package dependencies'
branch: updatePackageDepedencies
delete-branch: true
title: 'chore: update package dependencies'
body: ${{ steps.spm-dep-check.outputs.releaseNotes }}
body: ${{ steps.spm-dep-check.outputs.releaseNotes }}
14 changes: 8 additions & 6 deletions .github/workflows/swift-sanitizer-address.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [macos-15]
os: [macos-26]

runs-on: ${{ matrix.os }}
timeout-minutes: 60
Expand All @@ -29,7 +29,7 @@ jobs:
run: |
sudo apt-get install -y libjemalloc-dev

- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Start consul
uses: ./.github/actions/consul-start
Expand All @@ -43,9 +43,11 @@ jobs:

- name: Run address sanitizer
run: swift test --sanitize=address

- name: Clean before release build sanitizier
run: swift package clean

- name: Run address sanitizer on release build
run: swift test --sanitize=address -c release -Xswiftc -enable-testing

# Disable release tests now as there's a bug in Swift Testing with release builds and argument parser
# and executable targets
# - name: Run address sanitizer on release build
# run: swift test --sanitize=address -c release
8 changes: 4 additions & 4 deletions .github/workflows/swift-sanitizer-thread.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
sudo apt-get install -y libjemalloc-dev
echo BENCHMARK_DISABLE_JEMALLOC=true >> $GITHUB_ENV
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Start consul
uses: ./.github/actions/consul-start
Expand All @@ -44,9 +44,9 @@ jobs:

- name: Run thread sanitizer
run: swift test --sanitize=thread

- name: Clean before release build sanitizier
run: swift package clean

- name: Run thread sanitizer on release build
run: swift test --sanitize=thread -c release -Xswiftc -enable-testing
run: swift test --sanitize=thread -c release -Xswiftc -enable-testing
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -98,3 +98,4 @@ fastlane/test_output
# https://github.com/johnno1962/injectionforxcode

iOSInjectionProject/
.vscode/
2 changes: 1 addition & 1 deletion .swift-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
5.10
6.2
24 changes: 24 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"configurations": [
{
"type": "swift",
"request": "launch",
"args": [],
"cwd": "${workspaceFolder:package-frostflake}",
"name": "Debug flake",
"target": "flake",
"configuration": "debug",
"preLaunchTask": "swift: Build Debug flake"
},
{
"type": "swift",
"request": "launch",
"args": [],
"cwd": "${workspaceFolder:package-frostflake}",
"name": "Release flake",
"target": "flake",
"configuration": "release",
"preLaunchTask": "swift: Build Release flake"
}
]
}
Loading
Loading