3.0.2
Breaking changes
- Increased
compatibility_levelto3by @luispadron in #1536 - Drop support for Bazel 6 by @brentleyjones in #1422
- Remove support for the
objc_library.module_mapattribute inswift_clang_module_aspectby @brentleyjones in #1328 - Remove old
SwiftInfoarguments by @brentleyjones in #1427 - Remove
swift_common.toolchain_attrsby @brentleyjones in #1385 - Remove the
emit_swiftinterfacebuild setting by @brentleyjones in #1393 - Remove support for the
SWIFT_CUSTOM_TOOLCHAINdefine by @brentleyjones in #1432 - Remove
swift_module_aliasby @brentleyjones in #1390 - Disable
swift.emit_swiftsourceinfoby default by @brentleyjones in #1409
Fixed
- Fix
apple.swizzle_absolute_xcttestsourcelocationusage by @brentleyjones in #1457 - Fix typo in
_check_supports_language_mode_6by @brentleyjones in #1484 - Fix index-import on all Xcode 16.x versions by @luispadron in #1504
- Fix documentation of per_module_swiftcopt flag by @jschear in #1508
- Fix ensure undeclared outputs are deleted when not tracked by @luispadron in #1533
Added
- Improved Swift Testing support by @brentleyjones in #1443
- Introduce a pure Swift runfiles library by @cerisier in #1310
- Add execution groups for actions that don't have to use the same toolchain used when building the target by @brentleyjones in #1317
- Add back API docs for function removed from
swift_commonby @brentleyjones in - Add back API docs for function removed from
swift_commonby @brentleyjones in #1429 - Add
swift_overlayrule by @brentleyjones in #1431 - Support sharding and regex-based
--test_filterinswift_testby @brentleyjones in #1410 - Add
dataattribute tomixed_language_libraryby @brentleyjones in #1450 - Add an API that lets aspects ask whether a target is a
swift_overlayby @brentleyjones in #1441 - Add support for
package_nameinmixed_language_libraryby @luispadron in #1458 - Add implicit deps to
swift_library_groupby @brentleyjones in #1468 - Add
swift.suppress_warningsfeature by @aaronsky in #1489 - Add instrumented files info to
swift_binaryandswift_compiler_pluginby @sebastianv1 in #1512 - Add env attribute to swift_{binary,test} and env_inherit to swift_test by @luispadron in #1517
- Swift 6.0.3 for Linux by @brentleyjones in #1491
- Add a feature to allow certain targets to ignore the implicit dependencies from the toolchain. by @luispadron in #1518
- Add an advanced API to create a custom instance of swift_clang_module_aspect with a different toolchain type than the default by @luispadron in #1524
- Add swift_common.is_action_enabled as a public API. by @luispadron in #1523
- Implement
swift_synthesize_interface_aspect. by @luispadron in #1522
Changed
- Update
doc/README.mdby @brentleyjones in #1428 - Change
swift_libraryalwayslinkdefault to True by @brentleyjones in #1398 - Warn instead of fail when
swiftcnot found on Linux by @brentleyjones in #1433 - Prefer Swift toolchain clang over system clang by @brentleyjones in #1434
- Stop trying to extract symbol graphs from actions that don’t compile Swift or Objective-C code by @brentleyjones in #1435
- Allow
swift_cross_import_overlayto specify a disambiguating explicit module name for the declaring and/or bystanding module by @brentleyjones in #1417 - Put the
swift_overlay's depsSwiftInfos into the transitiveSwiftInfos of the propagatedSwiftInfoinstead of the directSwiftInfos (which causes them to be merged with the overlay module itself) by @brentleyjones in #1438 - Don't drop compilation contexts for
private_depswhen compiling the target that imports them by @brentleyjones in #1437 - Update docs to say that a source file should only be in a single
swift_*target, and aswift_overlayshould only be referenced by a single other target'saspect_hintsby @brentleyjones in #1439 - Set
alwayslinkon the clang target ofmixed_language_libraryas well by @brentleyjones in #1451 - Stop using config.string(allow_multiple = True) by @EdSchouten in #1452
- Make sure that the path to the generated header in the generated module map is workspace-relative when the feature configuration asks for it by @brentleyjones in #1442
- Don't drop
swift_overlaylinking contexts when an overlay depends on another library that has an overlay by @brentleyjones in #1440 - Apply -enable-bare-slash-regex action config to SWIFT_ACTION_DERIVE_F… by @jschear in #1464
- Map const-values in output file map for incremental by @vikage in #1471
- Include swift_proto_library attrs in compilation by @sebastianv1 in #1473
- Mark non_module_deps extension as reproducible by @cerisier in #1481
- Print a warning, instead of an error, when not finding
swiftc.exeby @brentleyjones in #1483 - Create fewer Xcode toolchains by @brentleyjones in #1487
- Always create all toolchains by @brentleyjones in #1488
- Only warn about missing
swiftcon matching host platform by @brentleyjones in #1490 - Support swift plugins in mixed_language_library by @qyang-nj in #1493
- Deduplicate plugin arguments by @qyang-nj in #1495
- Update
swift.suppress_warningscomment by @mattrobmattrob in #1499 - Use
exec_groupforSWIFT_ACTION_DERIVE_FILESandSWIFT_ACTION_DUMP_ASTby @brentleyjones in #1510 - Only pass the strict Obj-C include paths from direct dependencies to compilation actions by @luispadron in #1516
- Use a different attribute than features on toolchain rules to specify which features should be enabled/disabled by default for all targets built with that toolchain by @luispadron in #1519
- Use a new provider to wrap symbol graph extraction used for test discovery by @luispadron in #1521
- Ensure that
swift_synthesize_interface_aspectgenerates unique outputs by @luispadron in #1526 - Remove prints when toolchain is skipped by @keith in #1535
Removed
- Remove
apple_common.Objcprovider usage related to linking now that the Apple linking logic in Bazel gets everything fromCcInfoby @brentleyjones in #1383 - Remove implicit dependencies of
_allowlist_function_transitionin third_party by @brentleyjones in #1402 - Remove unnecessary
SwiftBinaryInforequired provider frompluginsattribute by @brentleyjones in #1445 - Remove redundant code in
swift_importby @brentleyjones in #1446
New Contributors
- @EdSchouten made their first contribution in #1452
- @jschear made their first contribution in #1464
- @vikage made their first contribution in #1471
- @cerisier made their first contribution in #1481
- @qyang-nj made their first contribution in #1493
- @thelvis4 made their first contribution in #1503
Full Changelog: 2.8.2...3.0.2
This release is compatible with Bazel 7.x LTS, 8.x LTS, and 9.x rolling releases.
MODULE.bazel Snippet
bazel_dep(name = "rules_swift", version = "3.0.1", repo_name = "build_bazel_rules_swift")Workspace Snippet
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_swift",
sha256 = "ae6673d27024914fa89e32fd1369e9563fb8ede463feac703aaec1ba6ca0358c",
url = "https://github.com/bazelbuild/rules_swift/releases/download/3.0.1/rules_swift.3.0.1.tar.gz",
)
load(
"@build_bazel_rules_swift//swift:repositories.bzl",
"swift_rules_dependencies",
)
swift_rules_dependencies()
load(
"@build_bazel_rules_swift//swift:extras.bzl",
"swift_rules_extra_dependencies",
)
swift_rules_extra_dependencies()