SE-0303: Build tool plugins and SE-0332: Command Plugins which were first introduced in Swift 5.6 have been further refined, with support for generating resources and improved diagnostics. To learn more, refer to the Getting Started with Plugins guide.
SwiftPM now supports package registry related capabilities introduced by SE-0292 and the corresponding service specification. With the exception of package publishing, SwiftPM can resolve and download dependencies from any compliant registry using the defined APIs.
To get started, users will need to specify their package registry by running the swift package-registry set
subcommand or editing the registries.json
configuration file. swift package
tool's --use-registry-identity-for-scm
and --replace-scm-with-registry
options might also be of interest.
Modules with the same name from different packages can now be disambiguated by module aliasing SE-0339. When adding a product dependency for a target in a package manifest, use a new parameter moduleAliases
to provide a new unique name for a conflicting module.
-
[#4119]
Add a
--disable-testable-imports
flag toswift test
with which tests are built without the testability feature (import @testable
disabled).