Releases: bazelbuild/rules_swift
3.4.0
What's Changed
- Fix last_green bazel support by @keith in #1606
- feat(examples): make -cxx-interoperability-mode a feature by @ma-oli in #1567
- Support
additional_linker_inputsinswift_binaryby @adincebic in #1584 - feat(swift): add embedded Swift feature by @ma-oli in #1608
- feat(toolchain): add embedded OS support in swift toolchain by @ma-oli in #1609
- feat(toolchain): add missing action types to toolchain configs by @ma-oli in #1611
- Allow setting
exec_groupin more places by @brentleyjones in #1588 - Fix
SWIFT_TOOLCHAIN_TYPEto work with Bzlmod + AEGs by @brentleyjones in #1587 - refactor(toolchain): fix --plugin-path on non-Xcode toolchains by @ma-oli in #1610
- Fix windows toolchain target_compatible_with by @keith in #1616
- Move the C++ toolchain into its own execution group so that it does not have to be bound by the same constraints as the execution platform selected for the Swift toolchain. by @brentleyjones in #1586
- Enable support for AEGs by @brentleyjones in #1585
- Add rpaths for the toolchain's compatibility back-deployment librarie by @adincebic in #1589
Full Changelog: 3.3.0...3.4.0
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.4.0", 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 = "13219bde174594c7af5403c7f3f41c37d1a62041294a0fd14c0834ca472fa8dc",
url = "https://github.com/bazelbuild/rules_swift/releases/download/3.4.0/rules_swift.3.4.0.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()3.3.0
What's Changed
- Include copts in WMO feature detection by @ma-oli in #1598
- Fix error when CC_TARGET_TRIPLE is passed by @ma-oli in #1596
- Handle Xcode version starting with path separator by @ma-oli in #1597
- Fix some bazel @ HEAD compatibility by @keith
Full Changelog: 3.2.0...3.3.0
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.3.0", 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 = "94136edf1ccdc7b9bb68ff85e006fe698ea161a02fbee55ba1feb4ce71522cfb",
url = "https://github.com/bazelbuild/rules_swift/releases/download/3.3.0/rules_swift.3.3.0.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()3.2.0
What's Changed
- [meta] Add @aaronsky to BCR maintainers list by @aaronsky in #1556
- Get triple from the make variable CC_TARGET_TRIPLE by @ma-oli in #1558
- Use apple constraints over config_setting_group in select by @ma-oli in #1563
- feat(toolchain): add copts and objc_copts attributes to toolchains by @ma-oli in #1564
- Remove space-in-path replacement by @brentleyjones in #896
- Fixes warnings in SwiftTestingRunner.swift by @csmulhern in #1565
- Make sure that symbol graph extraction and interface synthesis honor
-Xccflags that are derived from Bazel's--objccoptflags and from--compilation_mode. by @luispadron in #1566 - Lock
last_greenuntil a BEP bug is fixed by @brentleyjones in #1569 - Remove Patrick from contributors by @brentleyjones in #1573
- Fix
swift.split_derived_files_generationby @brentleyjones in #1574 - Use
all_compile_action_names()in more locations by @brentleyjones in #1579 - Remove Thi from maintainers by @brentleyjones in #1578
- Add
coptsandlinkoptstoswift_proto_libraryby @karim-alweheshy in #1497 - Add
$(location)support to proto rules by @brentleyjones in #1580 - Add
additional_objc_compiler_inputstomixed_langauge_libraryby @brentleyjones in #1581 - Pass
swiftc_inputstoswift_common.compileincompile_swift_protos_for_targetby @brentleyjones in #1582 - Ensure that PCMs are hermetic on Xcode 16 and higher. by @luispadron in #1575
- Unconditionally pass -file-prefix-map to the compiler to remove nondeterministic paths. by @luispadron in #1576
- Make sure that .swiftinterface compile actions also use
-file-prefix-map, so that indexstores emitted by those actions are also deterministic. by @luispadron in #1577 - Use Xcode 16.4 in CI and fix non-bzlmod dependency issues by @luispadron in #1591
- Add
@adincebicas a maintainer by @adincebic in #1592 - Force everyone to use checked continuations Obj-C async bridging, regardless of Swift language mode by @adincebic in #1593
- Add adincebic as BCR maintainer by @adincebic in #1594
New Contributors
- @ma-oli made their first contribution in #1558
- @csmulhern made their first contribution in #1565
- @karim-alweheshy made their first contribution in #1497
Full Changelog: 3.1.2...3.2.0
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.2.0", 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 = "e07a9870c2b2023a1212cb8ea7f436f26d68acddae99c868abb0fab710a247d9",
url = "https://github.com/bazelbuild/rules_swift/releases/download/3.2.0/rules_swift.3.2.0.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()3.1.2
What's Changed
- Merge Swift and Clang entries in
.swift-explicit-module-map.jsonby @ileitch in #1545 - Pass
-file-compilation-dir .explicitly to the Swift driver so that.swiftmodulefiles are hermetic. by @adincebic in #1554 - Insert
-plugin-pathfor testing macros location when building tests by @aaronsky in #1555
New Contributors
Full Changelog: 3.1.1...3.1.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.1.2", 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 = "5eff717c18bb513285b499add68f2331509cd4e411ff085e96a86b3342c1e5aa",
url = "https://github.com/bazelbuild/rules_swift/releases/download/3.1.2/rules_swift.3.1.2.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()3.1.1
What's Changed
- Fix dropping args when checking for
-Xwrapped-swiftarg in worker by @luispadron in #1551
Full Changelog: 3.1.0...3.1.1
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.1.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 = "a05b5aa112278c0f934fa8352c07b489f92014f437349b12e074bd0b12f53e30",
url = "https://github.com/bazelbuild/rules_swift/releases/download/3.1.1/rules_swift.3.1.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()3.1.0
What's Changed
- Add
always_include_developer_search_pathstomixed_language_libraryby @jschear in #1539 - Add
clang_depsattr tomixed_language_libraryby @jschear in #1540 - Use
ctx.coverage_instrumentedto detect if a target should be instrumented by @brentleyjones in #1547 - Fix
rules_ccfor 7.x WORKSPACE/non-bzlmod users by @aaronsky in #1549 - Fix
.swiftsourceinforeadonly bugs in version 3+ by @luispadron in #1550
Full Changelog: 3.0.2...3.1.0
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.1.0", 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 = "a7753fc930005bd1fffde96a63b562db873d58d5ad07752c1f7e16581feb4bb6",
url = "https://github.com/bazelbuild/rules_swift/releases/download/3.1.0/rules_swift.3.1.0.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()2.9.0
What's Changed
- Add
always_include_developer_search_pathsto `mixed_language_librar… by @jschear in #1541 - Add
clang_depsattr tomixed_language_library(#1540) by @jschear in #1542
Full Changelog: 2.8.2...2.9.0
This release is compatible with Bazel 6.x LTS, 7.x LTS, 8.x LTS, and 9.x rolling releases.
MODULE.bazel Snippet
bazel_dep(name = "rules_swift", version = "2.9.0", 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 = "f7a67197cd8a79debfe70b8cef4dc19d03039af02cc561e31e0718e98cad83ac",
url = "https://github.com/bazelbuild/rules_swift/releases/download/2.9.0/rules_swift.2.9.0.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()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
3.0.0
DO NOT USE.
2.8.2
What's Changed
- Update index-import for zlib brew dep fix (#1513) by @luispadron in #1514
Full Changelog: 2.8.1...2.8.2
This release is compatible with Bazel 6.x LTS, 7.x LTS, 8.x LTS, and 9.x rolling releases.
MODULE.bazel Snippet
bazel_dep(name = "rules_swift", version = "2.8.2", 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 = "a632eaf9d0d7564ae7dbd12f94fc2047cc00706a7f037a4af1fc10e20b7875a4",
url = "https://github.com/bazelbuild/rules_swift/releases/download/2.8.2/rules_swift.2.8.2.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()