Skip to content

Bump to v2.0.0, require Swift 6.3, remove CocoaPods support#201

Draft
dfed wants to merge 6 commits intomainfrom
dfed/major-version-bump
Draft

Bump to v2.0.0, require Swift 6.3, remove CocoaPods support#201
dfed wants to merge 6 commits intomainfrom
dfed/major-version-bump

Conversation

@dfed
Copy link
Copy Markdown
Owner

@dfed dfed commented Mar 29, 2026

Summary

  • Bump version from 1.5.4 to 2.0.0 as a prerequisite for additional breaking changes before release
  • Update swift-tools-version from 6.0 to 6.3, swift-syntax range to 603..<605
  • Remove deprecated CSV configuration file support (replaced by @SafeDIConfiguration macro in Add @SafeDIConfiguration macro to replace CSV config #199)
  • Add MigrateSafeDIFromVersionOne command plugin (swift package plugin safedi-v1-to-v2 --target <Target>) to automate migration from 1.x to 2.x
  • Add migration guide section to README
  • Delete support for CocoaPods
  • Updated minimum deployment targets to match latest dev tooling
  • Update CI to macOS-26 runner with Xcode 26.4 and swift:6.3 container
  • Update SwiftFormat to 0.60.1 with new trailing-commas and test-case-name-format options
  • Update README with v2.0 dependency examples and Swift 6.3 requirement note
  • Add historical comment to UnexpectedNodesSyntax detection explaining its SwiftSyntax 602 origins

Test plan

  • swift build passes locally
  • swift test -c release — all 363 tests pass
  • ./lint.sh passes (with manual fix for SwiftFormat hoistTry bug in multiline string interpolation)
  • CI passes on GitHub

🤖 Generated with Claude Code

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 29, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.91%. Comparing base (f57c521) to head (27aaf91).

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #201      +/-   ##
==========================================
- Coverage   99.91%   99.91%   -0.01%     
==========================================
  Files          36       36              
  Lines        3470     3455      -15     
==========================================
- Hits         3467     3452      -15     
  Misses          3        3              
Files with missing lines Coverage Δ
...s/SafeDICore/Extensions/DiagnosticExtensions.swift 100.00% <100.00%> (ø)
...DICore/Extensions/ImportDeclSyntaxExtensions.swift 100.00% <100.00%> (ø)
...afeDICore/Generators/DependencyTreeGenerator.swift 100.00% <100.00%> (ø)
Sources/SafeDICore/Generators/ScopeGenerator.swift 100.00% <100.00%> (ø)
...SafeDICore/Models/ConcreteDeclSyntaxProtocol.swift 100.00% <100.00%> (ø)
Sources/SafeDICore/Models/Dependency.swift 100.00% <100.00%> (ø)
Sources/SafeDICore/Models/ImportStatement.swift 100.00% <ø> (ø)
Sources/SafeDICore/Models/Initializer.swift 100.00% <100.00%> (ø)
Sources/SafeDICore/Models/InstantiableStruct.swift 100.00% <ø> (ø)
Sources/SafeDICore/Models/Property.swift 100.00% <100.00%> (ø)
... and 11 more
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@dfed dfed force-pushed the dfed/major-version-bump branch from 04848cc to 0c42a56 Compare March 29, 2026 23:14
@dfed dfed force-pushed the dfed/major-version-bump branch 2 times, most recently from e965a84 to 95c3b8b Compare March 30, 2026 05:15
dfed and others added 5 commits March 29, 2026 22:18
- Version 1.5.4 → 2.0.0
- swift-tools-version 6.0 → 6.3
- swift-syntax range 600..<604 → 603..<605
- Remove deprecated CSV configuration file support (replaced by @SafeDIConfiguration macro)
- Update CI to macOS-26 runner with Xcode 26.4, swift:6.3 container
- Update SwiftFormat to 0.60.1, add trailing-commas and test-case-name-format options
- Update README with v2.0 dependency examples and Swift 6.3 requirement note

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Provides `swift package plugin safedi-v1-to-v2 --target <TargetName>` to
help users migrate from SafeDI 1.x to 2.x. The plugin validates the
swift-tools-version, migrates CSV configuration files to a
@SafeDIConfiguration enum, and creates the configuration file if one
doesn't already exist.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@dfed dfed force-pushed the dfed/major-version-bump branch from fff5373 to e162219 Compare March 30, 2026 05:24
@dfed dfed changed the title Bump to v2.0.0, require Swift 6.3, remove CSV config support Bump to v2.0.0, require Swift 6.3, remove CocoaPods support Mar 30, 2026
When an existing @SafeDIConfiguration file was found, the plugin warned
that CSV values must be manually migrated, but then unconditionally
deleted the CSV files — destroying the data the user needs to migrate.

Move CSV deletion inside the else branch so it only runs when the
plugin successfully creates the new configuration file.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant