Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial commit of v3 alpha1 #120

Merged
merged 53 commits into from
Jul 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
4c3b03c
Update to Swift 5.9 as minimum
Jun 10, 2023
d7730ce
Added Macro targets (and a test Macro to keep things compiling)
Jun 10, 2023
4c05ec8
Reformatted
Jun 11, 2023
ef2d609
Disable things
Jun 11, 2023
9998941
Added initial `Flag` and `FlagContainer` macros
Jun 11, 2023
a34d48f
Added @FlagGroup macro
Jun 12, 2023
4f4b282
Added visitor pattern to FlagContainer
Jun 13, 2023
b2fd98a
Added sourceName back to flag lookups for diagnostics
Jun 13, 2023
46d90c6
Added back initial read-only Snapshot implementation
Jun 13, 2023
d8e4aa9
Added back writable Snapshots (and renamed MutableFlagGroup to Mutabl…
Jun 16, 2023
6c36fc2
Added Wigwags with flag info
Jun 16, 2023
400a5a0
Added back display options and group Wigwags
Jun 17, 2023
584c5fc
Added initial support for flag publishing
Jun 19, 2023
0333400
WIP
bok- Sep 28, 2023
cc6a440
Re-added support for VexilConfiguration.CodingKeyStrategy customisation
bok- Oct 1, 2023
707de61
Added `@EquatableFlagContainer`
bok- Oct 2, 2023
48c7865
Added `FlagPole.snapshotPublisher` which replaces the old Snapshot-ba…
bok- Oct 2, 2023
e115cb4
Fixed visitor implementation to meet needs of Vexllographer and exist…
bok- Dec 31, 2023
0b55cba
Replaced `@EquatableFlagContainer` with an argument on `@FlagContainer`
bok- Dec 31, 2023
763e876
Remove diagnostic support
bok- Dec 31, 2023
fcf30b5
Update minimum Swift version to 5.10
bok- Jul 13, 2024
f958406
Update swift-async-algorithms to 1.0
bok- Jul 13, 2024
6915d11
Update swiftformat to 0.54.1
bok- Jul 13, 2024
94ab34d
Remove unused diagnostic code
bok- Jul 13, 2024
dace689
Enable Strict Concurrency
bok- Jul 13, 2024
dd44de0
Update support for UserDefault and NSUbiqutousKeyValueStore flag valu…
bok- Jul 14, 2024
d009cf6
Get it building and testing successfully on all supported platforms a…
bok- Jul 14, 2024
c7e4d7a
Added `FlagPole.walk(visitor:)` and `FlagVisitor` documentation
bok- Jul 14, 2024
6b74a4b
Aligned macro declarations better with original property wrappers
bok- Jul 14, 2024
cb26e21
Re-added support for property initialisation
bok- Jul 14, 2024
c9c6661
Cleanup and added migration guide.
bok- Jul 14, 2024
76981c7
Merge branch 'main' into macro-refactor
bok- Jul 14, 2024
6d6e556
Accept code suggestions and reformat
bok- Jul 14, 2024
dc069ac
Update GitHub workflows to latest supported Xcode/Swift versions
bok- Jul 14, 2024
45a59b7
Remove windows, it was worth a shot!
bok- Jul 14, 2024
cd0a733
Remove centos7, SwiftPM doesn't seem to work on it.
bok- Jul 14, 2024
cbd27bb
Fixed workflows
bok- Jul 14, 2024
d384c1d
Remove unsupported runners (Intel macs)
bok- Jul 14, 2024
467e6f6
Defer Xcode 16 support to a followup PR
bok- Jul 14, 2024
40f80eb
So fussy
bok- Jul 14, 2024
a69699f
Find out whats going on
bok- Jul 14, 2024
a51ca97
Fix scheme names
bok- Jul 14, 2024
9b6fc9f
Seems the "Any * Simulator Device" devices don't actually work.
bok- Jul 14, 2024
88cd194
Commit Vexil scheme so it stops trying to test VexilMacros on non-mac…
bok- Jul 14, 2024
9b681d4
Switch to explicit test plans
bok- Jul 15, 2024
137b42c
`#if` out the macro tests. This seems to be what the Swift 5.9 templa…
bok- Jul 15, 2024
d5861e8
Fix spelling :facepalm:
bok- Jul 15, 2024
6c244a3
Disable publisher-based tests temporarily
bok- Jul 15, 2024
d167a9f
See if macro validation is preventing running of tests
bok- Jul 15, 2024
ff68b92
Disable macro validation across the board
bok- Jul 15, 2024
2bd03c8
Use xcodebuild with macOS
bok- Jul 15, 2024
b3734a0
Disable another flakey publisher test
bok- Jul 15, 2024
212a1f3
More flake
bok- Jul 15, 2024
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
4 changes: 2 additions & 2 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ on:
- '**/*.swift'

env:
DEVELOPER_DIR: /Applications/Xcode_13.0.app/Contents/Developer
DEVELOPER_DIR: /Applications/Xcode_15.4.app/Contents/Developer

jobs:
BuildWebsite:
name: "Build Docs"
runs-on: macos-11.0
runs-on: macos-latest
steps:
- name: 🛒 Checkout
uses: actions/checkout@v2
Expand Down
62 changes: 14 additions & 48 deletions .github/workflows/ios-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
check-changes:
name: Check for Changes
Expand All @@ -23,50 +23,15 @@ jobs:
- '.github/workflows/ios-tests.yml'
- '**/*.swift'

#####################
# macOS 11 Versions #
#####################

build-ios-macos-11-matrix:
name: iOS Metrix - macOS 11
runs-on: macos-11.0
if: ${{ github.event_name == 'push' || needs.check-changes.outputs.changed == 'true' }}
needs: check-changes
strategy:
matrix:
xcode: [ "11.7", "12.4", "12.5.1", "13.0", "13.1", "13.2.1" ]

env:
DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer

steps:
- name: Checkout
uses: actions/checkout@v2
- name: Build and Test
run: swift package generate-xcodeproj && xcrun xcodebuild test -scheme "Vexil-Package" -destination "platform=iOS Simulator,name=iPhone 8"

build-ios-macos-11:
runs-on: ubuntu-latest
name: iOS Tests - macOS 11
if: ${{ github.event_name == 'push' || needs.check-changes.outputs.changed == 'true' }}
needs: build-ios-macos-11-matrix
steps:
- name: Check build matrix status
if: ${{ needs.build-ios-macos-11-matrix.result == 'failure' }}
run: exit 1

#####################
# macOS 12 Versions #
#####################

build-ios-macos-12-matrix:
name: iOS Matrix - macOS 12
runs-on: macos-12
build-ios-matrix:
name: iOS Matrix
if: ${{ github.event_name == 'push' || needs.check-changes.outputs.changed == 'true' }}
needs: check-changes
strategy:
matrix:
xcode: [ "13.1", "13.2.1", "13.3.1", "13.4.1", "14.0.1", "14.1", "14.2" ]
xcode: [ "15.4" ]
os: [ macos-14 ]
runs-on: ${{ matrix.os }}

env:
DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer
Expand All @@ -76,16 +41,17 @@ jobs:
uses: actions/checkout@v2
- name: Build and Test
run: |
DEVICE_ID=`xcrun simctl list --json devices available iPhone | jq -r '.devices | to_entries | map(select(.value | add)) | sort_by(.key) | last.value | first.udid'`
swift package generate-xcodeproj
xcrun xcodebuild test -scheme "Vexil-Package" -destination "platform=iOS Simulator,id=$DEVICE_ID"
set -o pipefail && \
NSUnbufferedIO=YES \
xcrun xcodebuild test -workspace . -scheme Vexil -skipMacroValidation -destination "platform=iOS Simulator,name=iPhone 15" \
| xcbeautify --renderer github-actions

build-ios-macos-12:
build-ios:
runs-on: ubuntu-latest
name: iOS Tests - macOS 12
name: iOS Tests
if: ${{ github.event_name == 'push' || needs.check-changes.outputs.changed == 'true' }}
needs: build-ios-macos-12-matrix
needs: build-ios-matrix
steps:
- name: Check build matrix status
if: ${{ needs.build-ios-macos-12-matrix.result == 'failure' }}
if: ${{ needs.build-ios-matrix.result == 'failure' }}
run: exit 1
2 changes: 1 addition & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
filters: |
changed:
- '.github/workflows/lint.yml'
- '..swiftformat'
- '.swiftformat'
- '**/*.swift'

Lint:
Expand Down
17 changes: 2 additions & 15 deletions .github/workflows/linux-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,21 +34,8 @@ jobs:
needs: check-changes
strategy:
matrix:
swift: [ "5.2.5", "5.3.3", "5.4.3", "5.5.3", "5.6.3", "5.7.3" ]
os: [ amazonlinux2, bionic, centos7, focal, jammy ]
exclude:
- swift: 5.2.5
os: jammy
- swift: 5.3.3
os: jammy
- swift: 5.4.3
os: jammy
- swift: 5.5.3
os: jammy
- swift: 5.6.3
os: jammy
- swift: 5.7.3
os: centos7
swift: [ "5.10.1" ]
os: [ amazonlinux2, bookworm, focal, jammy, rhel-ubi9, mantic, noble ]

container:
image: swift:${{ matrix.swift }}-${{ matrix.os }}
Expand Down
59 changes: 14 additions & 45 deletions .github/workflows/macos-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,18 +23,15 @@ jobs:
- '.github/workflows/macos-tests.yml'
- '**/*.swift'

############
# macOS 11 #
############

build-macos-macos-11-matrix:
name: macOS Matrix - macOS 11
runs-on: macos-11.0
build-macos-matrix:
name: macOS Matrix
if: ${{ github.event_name == 'push' || needs.check-changes.outputs.changed == 'true' }}
needs: check-changes
strategy:
matrix:
xcode: [ "11.7", "12.4", "12.5.1", "13.0", "13.1", "13.2.1" ]
xcode: [ "15.4" ]
os: [ macos-14 ]
runs-on: ${{ matrix.os }}

env:
DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer
Expand All @@ -43,46 +40,18 @@ jobs:
- name: Checkout
uses: actions/checkout@v2
- name: Build and Test
run: swift test

build-macos-macos-11:
runs-on: ubuntu-latest
name: macOS Tests - macOS 11
if: ${{ github.event_name == 'push' || needs.check-changes.outputs.changed == 'true' }}
needs: build-macos-macos-11-matrix
steps:
- name: Check build matrix status
if: ${{ needs.build-macos-macos-11-matrix.result == 'failure' }}
run: exit 1

############
# macOS 12 #
############

build-macos-macos-12-matrix:
name: macOS Matrix - macOS 12
runs-on: macos-12
if: ${{ github.event_name == 'push' || needs.check-changes.outputs.changed == 'true' }}
needs: check-changes
strategy:
matrix:
xcode: [ "13.1", "13.2.1", "13.3.1", "13.4.1", "14.0.1", "14.1", "14.2" ]

env:
DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer
run: |
set -o pipefail && \
NSUnbufferedIO=YES \
xcrun xcodebuild test -workspace . -scheme Vexil -skipMacroValidation -destination "platform=macOS,name=My Mac" \
| xcbeautify --renderer github-actions

steps:
- name: Checkout
uses: actions/checkout@v2
- name: Build and Test
run: swift

build-macos-macos-12:
build-macos:
runs-on: ubuntu-latest
name: macOS Tests - macOS 12
name: macOS Tests
if: ${{ github.event_name == 'push' || needs.check-changes.outputs.changed == 'true' }}
needs: build-macos-macos-12-matrix
needs: build-macos-matrix
steps:
- name: Check build matrix status
if: ${{ needs.build-macos-macos-12-matrix.result == 'failure' }}
if: ${{ needs.build-macos-matrix.result == 'failure' }}
run: exit 1
59 changes: 14 additions & 45 deletions .github/workflows/tvos-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,50 +23,15 @@ jobs:
- '.github/workflows/tvos-tests.yml'
- '**/*.swift'

#####################
# macOS 11 Versions #
#####################

build-tvos-macos-11-matrix:
name: tvOS Matrix - macOS 11
runs-on: macos-11.0
if: ${{ github.event_name == 'push' || needs.check-changes.outputs.changed == 'true' }}
needs: check-changes
strategy:
matrix:
xcode: [ "11.7", "12.4", "12.5.1", "13.0", "13.1", "13.2.1" ]

env:
DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer

steps:
- name: Checkout
uses: actions/checkout@v2
- name: Build and Test
run: swift package generate-xcodeproj && xcrun xcodebuild test -scheme "Vexil-Package" -destination "platform=tvOS Simulator,name=Apple TV 4K"

build-tvos-macos-11:
runs-on: ubuntu-latest
name: tvOS Tests - macOS 11
if: ${{ github.event_name == 'push' || needs.check-changes.outputs.changed == 'true' }}
needs: build-tvos-macos-11-matrix
steps:
- name: Check build matrix status
if: ${{ needs.build-tvos-macos-11-matrix.result == 'failure' }}
run: exit 1

#####################
# macOS 12 Versions #
#####################

build-tvos-macos-12-matrix:
name: tvOS Matrix - macOS 12
runs-on: macos-12
build-tvos-matrix:
name: tvOS Matrix
if: ${{ github.event_name == 'push' || needs.check-changes.outputs.changed == 'true' }}
needs: check-changes
strategy:
matrix:
xcode: [ "13.1", "13.2.1", "13.3.1", "13.4.1", "14.0.1", "14.1", "14.2" ]
xcode: [ "15.4" ]
os: [ macos-14 ]
runs-on: ${{ matrix.os }}

env:
DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer
Expand All @@ -75,14 +40,18 @@ jobs:
- name: Checkout
uses: actions/checkout@v2
- name: Build and Test
run: swift package generate-xcodeproj && xcrun xcodebuild test -scheme "Vexil-Package" -destination "platform=tvOS Simulator,name=Apple TV 4K (2nd generation)"
run: |
set -o pipefail && \
NSUnbufferedIO=YES \
xcrun xcodebuild test -workspace . -scheme Vexil -skipMacroValidation -destination "platform=tvOS Simulator,name=Apple TV 4K (3rd generation)" \
| xcbeautify --renderer github-actions

build-tvos-macos-12:
build-tvos:
runs-on: ubuntu-latest
name: tvOS Tests - macOS 12
name: tvOS Tests
if: ${{ github.event_name == 'push' || needs.check-changes.outputs.changed == 'true' }}
needs: build-tvos-macos-12-matrix
needs: build-tvos-matrix
steps:
- name: Check build matrix status
if: ${{ needs.build-tvos-macos-12-matrix.result == 'failure' }}
if: ${{ needs.build-tvos-matrix.result == 'failure' }}
run: exit 1
57 changes: 57 additions & 0 deletions .github/workflows/visionos-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: visionOS Tests

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
check-changes:
name: Check for Changes
runs-on: ubuntu-latest
outputs:
changed: ${{ steps.filter.outputs.changed }}
steps:
- name: Checkout
uses: actions/checkout@v2
- uses: dorny/paths-filter@v2
id: filter
with:
filters: |
changed:
- '.github/workflows/visionos-tests.yml'
- '**/*.swift'

build-visionos-matrix:
name: visionOS Matrix
if: ${{ github.event_name == 'push' || needs.check-changes.outputs.changed == 'true' }}
needs: check-changes
strategy:
matrix:
xcode: [ "15.4" ]
os: [ macos-14 ]
runs-on: ${{ matrix.os }}

env:
DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer

steps:
- name: Checkout
uses: actions/checkout@v2
- name: Build and Test
run: |
set -o pipefail && \
NSUnbufferedIO=YES \
xcrun xcodebuild test -workspace . -scheme Vexil -skipMacroValidation -destination "platform=visionOS Simulator,name=Apple Vision Pro" \
| xcbeautify --renderer github-actions

build-visionos:
runs-on: ubuntu-latest
name: visionOS Tests
if: ${{ github.event_name == 'push' || needs.check-changes.outputs.changed == 'true' }}
needs: build-visionos-matrix
steps:
- name: Check build matrix status
if: ${{ needs.build-visionos-matrix.result == 'failure' }}
run: exit 1
Loading
Loading