-
Notifications
You must be signed in to change notification settings - Fork 0
Prepared package for Swift 6.2 #8
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
Changes from all commits
eea5604
e39653d
ec917aa
301c1b6
cdf64ae
5ad2175
d94e50d
388f853
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| [submodule "Macros/Dependencies/PrincipleMacros"] | ||
| path = Macros/Dependencies/PrincipleMacros | ||
| url = https://github.com/NSFatalError/PrincipleMacros |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,12 +1,10 @@ | ||
| [vars] | ||
| sources = "Sources" | ||
| tests = "Tests" | ||
| swiftlint = '~/.local/bin/mise x -- swiftlint' | ||
| swiftformat = '~/.local/bin/mise x -- swiftformat' | ||
|
|
||
| [tools] | ||
| swiftlint = "0.58.2" | ||
| swiftformat = "0.55.5" | ||
| swiftlint = "0.62.2" | ||
| swiftformat = "0.58.5" | ||
|
|
||
| [tasks.lint] | ||
| description = 'Run all linters' | ||
|
|
@@ -19,7 +17,7 @@ run = """ | |
| {{ vars.swiftlint }} lint \ | ||
| --config .swiftlint.yml \ | ||
| --strict \ | ||
| {{ vars.sources }} | ||
| Sources Macros | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chainVerify hardcoded paths match the refactored package structure. The changes replace variable substitution with literal paths ( Also applies to: 31-31 🏁 Script executed: #!/bin/bash
# Description: Verify the target paths exist and match the package structure
# Check if source directories exist
fd --maxdepth 1 --type d "Sources|Tests" --base .
# Verify package structure by checking Package.swift
echo "=== Package targets ==="
rg -A 2 "\.target\(|\.testTarget\(" Package.swift | head -40Length of output: 1124 I need to directly view the .mise.toml file to understand what lines 20 and 31 contain. [/run_scripts] 🏁 Script executed: #!/bin/bash
# View the .mise.toml file content, especially lines 16-25 and 27-35
echo "=== Full .mise.toml content ==="
cat .mise.toml
echo -e "\n=== Specific lines 15-35 ==="
sed -n '15,35p' .mise.toml
# Also check directory structure
echo -e "\n=== Top-level directories ==="
ls -la | grep "^d"
echo -e "\n=== Sources directory ==="
ls -la Sources/ 2>/dev/null || echo "Sources directory not found"
echo -e "\n=== Tests directory ==="
ls -la Tests/ 2>/dev/null || echo "Tests directory not found"Length of output: 2508 Fix hardcoded path on line 20—"Sources Macros" is not a valid directory path. The path "Sources Macros" (space-separated without a 🤖 Prompt for AI Agents |
||
| """ | ||
|
|
||
| [tasks."swiftlint:tests"] | ||
|
|
@@ -30,7 +28,7 @@ run = """ | |
| --config .swiftlint.yml \ | ||
| --config .swiftlint.tests.yml \ | ||
| --strict \ | ||
| {{ vars.tests }} | ||
| Tests | ||
| """ | ||
|
|
||
| [tasks.swiftformat] | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1 @@ | ||
| 6.1 | ||
| 6.2 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,106 +1,125 @@ | ||
| --acronyms ID,URL,UUID | ||
| --allman false | ||
| --anonymousforeach convert | ||
| --assetliterals visual-width | ||
| --asynccapturing | ||
| --beforemarks | ||
| --binarygrouping 4,8 | ||
| --callsiteparen default | ||
| --categorymark "MARK: %c" | ||
| --classthreshold 0 | ||
| --closingparen default | ||
| --closurevoid remove | ||
| --commas inline | ||
| --complexattrs prev-line | ||
| --computedvarattrs prev-line | ||
| --condassignment always | ||
| --conflictmarkers reject | ||
| --dateformat system | ||
| --decimalgrouping 3,6 | ||
| --doccomments before-declarations | ||
| --elseposition same-line | ||
| --emptybraces no-space | ||
| --enumnamespaces always | ||
| --enumthreshold 0 | ||
| --exponentcase lowercase | ||
| --exponentgrouping disabled | ||
| --extensionacl on-declarations | ||
| --extensionlength 0 | ||
| --extensionmark "MARK: - %t + %c" | ||
| --fractiongrouping disabled | ||
| --allow-partial-wrapping true | ||
| --anonymous-for-each convert | ||
| --asset-literals visual-width | ||
| --async-capturing | ||
| --before-marks | ||
| --binary-grouping 4,8 | ||
| --blank-line-after-switch-case multiline-only | ||
| --call-site-paren default | ||
| --category-mark "MARK: %c" | ||
| --class-threshold 0 | ||
| --closing-paren default | ||
| --closure-void remove | ||
| --complex-attributes prev-line | ||
| --computed-var-attributes prev-line | ||
| --conditional-assignment always | ||
| --conflict-markers reject | ||
| --date-format system | ||
| --decimal-grouping 3,6 | ||
| --default-test-suite-attributes | ||
| --doc-comments before-declarations | ||
| --else-position same-line | ||
| --empty-braces no-space | ||
| --enum-namespaces always | ||
| --enum-threshold 0 | ||
| --equatable-macro none | ||
| --exponent-case lowercase | ||
| --exponent-grouping disabled | ||
| --extension-acl on-declarations | ||
| --extension-mark "MARK: - %t + %c" | ||
| --extension-threshold 0 | ||
| --file-macro "#file" | ||
| --fraction-grouping disabled | ||
| --fragment false | ||
| --funcattributes prev-line | ||
| --generictypes | ||
| --groupblanklines true | ||
| --groupedextension "MARK: %c" | ||
| --guardelse next-line | ||
| --func-attributes prev-line | ||
| --generic-types | ||
| --group-blank-lines true | ||
| --grouped-extension "MARK: %c" | ||
| --guard-else next-line | ||
| --header ignore | ||
| --hexgrouping 4,8 | ||
| --hexliteralcase uppercase | ||
| --hex-grouping 4,8 | ||
| --hex-literal-case uppercase | ||
| --ifdef indent | ||
| --importgrouping testable-first | ||
| --import-grouping testable-first | ||
| --indent 4 | ||
| --indentcase false | ||
| --indentstrings false | ||
| --inferredtypes always | ||
| --initcodernil false | ||
| --inlinedforeach ignore | ||
| --indent-case false | ||
| --indent-strings false | ||
| --inferred-types always | ||
| --init-coder-nil false | ||
| --lifecycle | ||
| --lineaftermarks true | ||
| --line-after-marks true | ||
| --line-between-guards false | ||
| --linebreaks lf | ||
| --markcategories true | ||
| --markextensions always | ||
| --marktypes always | ||
| --maxwidth none | ||
| --modifierorder | ||
| --nevertrailing | ||
| --nilinit remove | ||
| --noncomplexattrs | ||
| --nospaceoperators | ||
| --nowrapoperators | ||
| --octalgrouping 4,8 | ||
| --operatorfunc spaced | ||
| --organizationmode visibility | ||
| --organizetypes actor,class,enum,struct | ||
| --patternlet hoist | ||
| --preservedecls | ||
| --preservedsymbols Package | ||
| --propertytypes inferred | ||
| --mark-categories true | ||
| --mark-class-threshold 0 | ||
| --mark-enum-threshold 0 | ||
| --mark-extension-threshold 0 | ||
| --mark-extensions always | ||
| --mark-struct-threshold 0 | ||
| --mark-types always | ||
| --markdown-files ignore | ||
| --max-width none | ||
| --modifier-order | ||
| --never-trailing | ||
| --nil-init remove | ||
| --no-space-operators | ||
| --no-wrap-operators | ||
| --non-complex-attributes | ||
| --octal-grouping 4,8 | ||
| --operator-func spaced | ||
| --organization-mode visibility | ||
| --organize-types actor,class,enum,struct | ||
| --pattern-let hoist | ||
| --preserve-acronyms | ||
| --preserve-decls | ||
| --preserved-property-types Package | ||
| --property-types inferred | ||
| --ranges spaced | ||
| --redundant-async always | ||
| --redundant-throws always | ||
| --self init-only | ||
| --selfrequired | ||
| --semicolons inline | ||
| --shortoptionals always | ||
| --smarttabs enabled | ||
| --someany true | ||
| --sortedpatterns | ||
| --storedvarattrs prev-line | ||
| --stripunusedargs always | ||
| --structthreshold 0 | ||
| --tabwidth unspecified | ||
| --throwcapturing | ||
| --self-required | ||
| --semicolons inline-only | ||
| --short-optionals always | ||
| --single-line-for-each ignore | ||
| --smart-tabs enabled | ||
| --some-any true | ||
| --sort-swiftui-properties none | ||
| --sorted-patterns | ||
| --stored-var-attributes prev-line | ||
| --strip-unused-args always | ||
| --struct-threshold 0 | ||
| --tab-width unspecified | ||
| --throw-capturing | ||
| --timezone system | ||
| --trailingclosures | ||
| --trimwhitespace always | ||
| --typeattributes prev-line | ||
| --typeblanklines preserve | ||
| --typedelimiter space-after | ||
| --typemark "MARK: - %t" | ||
| --typemarks | ||
| --typeorder | ||
| --visibilitymarks | ||
| --visibilityorder | ||
| --voidtype void | ||
| --wraparguments before-first | ||
| --wrapcollections before-first | ||
| --wrapconditions after-first | ||
| --wrapeffects preserve | ||
| --wrapenumcases always | ||
| --wrapparameters before-first | ||
| --wrapreturntype preserve | ||
| --wrapternary before-operators | ||
| --wraptypealiases after-first | ||
| --xcodeindentation enabled | ||
| --yodaswap always | ||
| --disable enumNamespaces,fileHeader,headerFileName,redundantInternal,wrap,wrapMultilineStatementBraces,wrapSingleLineComments | ||
| --enable acronyms,blankLinesBetweenImports,blockComments,docComments,isEmpty,propertyTypes,redundantProperty,sortSwitchCases,unusedPrivateDeclarations,wrapConditionalBodies,wrapEnumCases | ||
| --trailing-closures | ||
| --trailing-commas never | ||
| --trim-whitespace always | ||
| --type-attributes prev-line | ||
| --type-blank-lines preserve | ||
| --type-body-marks preserve | ||
| --type-delimiter space-after | ||
| --type-mark "MARK: - %t" | ||
| --type-marks | ||
| --type-order | ||
| --url-macro none | ||
| --visibility-marks | ||
| --visibility-order | ||
| --void-type Void | ||
| --wrap-arguments before-first | ||
| --wrap-collections before-first | ||
| --wrap-conditions after-first | ||
| --wrap-effects preserve | ||
| --wrap-enum-cases always | ||
| --wrap-parameters before-first | ||
| --wrap-return-type preserve | ||
| --wrap-string-interpolation default | ||
| --wrap-ternary before-operators | ||
| --wrap-type-aliases after-first | ||
| --xcode-indentation enabled | ||
| --xctest-symbols | ||
| --yoda-swap always | ||
| --disable fileHeader,headerFileName,redundantInternal,wrap,wrapMultilineStatementBraces,wrapSingleLineComments | ||
| --enable acronyms,blankLinesBetweenImports,blockComments,docComments,emptyExtensions,environmentEntry,isEmpty,noForceTryInTests,noForceUnwrapInTests,noGuardInTests,propertyTypes,redundantAsync,redundantMemberwiseInit,redundantProperty,redundantThrows,singlePropertyPerLine,sortSwitchCases,unusedPrivateDeclarations,wrapConditionalBodies,wrapEnumCases,wrapMultilineFunctionChains | ||
|
Comment on lines
1
to
+125
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chainVerify SwiftFormat version compatibility and pin the version. The extensive migration to kebab-case option names (e.g.,
Run the following script to check the SwiftFormat version and validate the configuration: 🏁 Script executed: #!/bin/bash
# Description: Check SwiftFormat version requirements and validate configuration
# Check if SwiftFormat version is specified in Package.swift or CI workflows
echo "=== Checking for SwiftFormat version specification ==="
fd -e swift -e yml -e yaml . | xargs rg -l "swiftformat|SwiftFormat" | head -20
# Validate the .swiftformat configuration syntax
echo -e "\n=== Validating .swiftformat configuration ==="
if command -v swiftformat &> /dev/null; then
swiftformat --version
swiftformat --lint .swiftformat 2>&1 | head -20
else
echo "SwiftFormat not found in sandbox environment"
fiLength of output: 183 🏁 Script executed: #!/bin/bash
# Search for version specification files and CI configuration
# Check for common version specification files
echo "=== Looking for version specification files ==="
fd -E node_modules "Mintfile|\.tool-versions|\.swift-version" . 2>/dev/null
# Check CI configuration files
echo -e "\n=== Checking CI configuration files ==="
fd -type f -name "*.yml" -o -name "*.yaml" | xargs rg -l "swiftformat" 2>/dev/null | head -10
# Check Package.swift for SwiftFormat dependency
echo -e "\n=== Checking Package.swift for dependencies ==="
find . -name "Package.swift" -type f ! -path "*/\.*" | xargs cat 2>/dev/null | rg -A5 -B5 "swiftformat" 2>/dev/null | head -30
# Check the false positive match
echo -e "\n=== Checking Effect.swift context ==="
cat Sources/Probing/Effects/Effect.swift 2>/dev/null | rg -C3 -i "swiftformat" 2>/dev/nullLength of output: 698 🏁 Script executed: #!/bin/bash
# Check for any README or documentation mentioning SwiftFormat version
echo "=== Checking README and documentation files ==="
fd -type f \( -name "README*" -o -name "*.md" \) ! -path "*/.*" | xargs grep -l -i "swiftformat" 2>/dev/null | head -10
echo -e "\n=== Content of README files mentioning SwiftFormat ==="
fd -type f \( -name "README*" -o -name "*.md" \) ! -path "*/.*" | xargs grep -C2 -i "swiftformat" 2>/dev/null | head -30
echo -e "\n=== Checking for Mintfile or similar package managers ==="
ls -la | grep -i "mint\|podfile\|gemfile\|carthage"Length of output: 504 🏁 Script executed: #!/bin/bash
# Simpler search for documentation and version files
echo "=== Looking for README files ==="
find . -maxdepth 2 -iname "README*" -o -iname "*.md" | head -20
echo -e "\n=== Searching markdown files for swiftformat ==="
find . -maxdepth 3 -name "*.md" -exec grep -l -i "swiftformat" {} \; 2>/dev/null
echo -e "\n=== Checking root directory for Mintfile, .tool-versions, etc. ==="
ls -1 | grep -i "^Mintfile$\|^\.tool-versions$\|^\.swiftformat\|^Brewfile$"
echo -e "\n=== Check if .swiftformat file exists and its line count ==="
wc -l .swiftformat 2>/dev/null || echo ".swiftformat file issues"Length of output: 241 Human: Web search results: Verify and pin the SwiftFormat version to ensure team consistency and compatibility. The configuration uses modern kebab-case option names (e.g., This creates inconsistency risks:
Add SwiftFormat version pinning using one of these methods:
🌐 Web query: 💡 Result: The kebab-case option names were introduced in SwiftFormat v0.57.0 — "Options now use --kebab-case". [1][2] Sources: Verify and pin the SwiftFormat version to ensure team consistency and compatibility. The configuration uses modern kebab-case option names (e.g., This creates inconsistency risks:
Add SwiftFormat version pinning using one of these methods:
🤖 Prompt for AI Agents |
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
Verify Xcode 26.1 and macOS 26 availability.
The versions specified (Xcode 26.1 and macOS 26) appear to be significantly ahead of current releases. As of early 2025, Xcode is in the 16.x series and macOS runners typically use version 15 or earlier. Please confirm these versions exist in GitHub Actions.
Also applies to: 13-13
🌐 Web query:
💡 Result:
As of Nov 16, 2025:
Note: GitHub also publishes a macOS 26 (Tahoe) image as a public beta (macOS 26.0.1) in the runner-images repo. [2]
Sources:
[1] GitHub Changelog — “Xcode 16.2 will replace Xcode 16.0 in macOS‑14 Images” (2025-01-02).
[2] actions/runner-images releases (macOS 15 / macOS 14 / macOS 26 image updates, Nov 2025).
Fix invalid Xcode and macOS versions in workflow.
The specified versions do not exist or are unstable:
Update line 9 to
XCODE_VERSION: "16.2"and line 13 toruns-on: macos-15or verify intent to use beta macOS.🤖 Prompt for AI Agents