Swift 6.0 Release
MaxDesiatov
released this
16 Oct 10:08
·
425 commits
to main
since this release
What's Changed
- tests: repair
BuildPlanTests.testSnippets
on Windows by @compnerd in #7082 - Set
file-system
asdevice-agnostic
in build manifest by @pusukuri in #7052 - Ensure Xcode SDK paths are set when running test targets. by @grynspan in #7093
- SourceControl: add basic support for symlinks by @compnerd in #7092
- Disallow static linking core libraries in
swift test
by @MaxDesiatov in #7087 - Integration with swift-testing by @grynspan in #7047
- small cleanup after 7092 by @tomerd in #7096
- cache binary artifact globally by @tomerd in #7101
- PackagePlugin: silence a deprecation warning on Windows by @compnerd in #7109
- Fix broken link to 'Swift Package Registry Service Specification' by @ashokm in #7107
- Tests: clean up path representation for manifest checks by @compnerd in #7111
- Tests: adjust for sorting and path representation by @compnerd in #7112
- validate local repository has the correct remote by @tomerd in #7079
- Replace some uses of
temp_await
withawait
in tests by @AndrewHoos in #7102 - Remove usage of temp_await from WorkspaceTests by @AndrewHoos in #7124
- Revert "Disable CMake bootstrap by default" by @neonichu in #7108
- Make
swift test --show-code-cov-path
work withswift-testing
by @grynspan in #7094 - Revert "Only show command output in verbose mode (#7078)" by @MaxDesiatov in #7130
- improve handling of test output by @tomerd in #7126
- build: simplify the build rules with newer CMake by @compnerd in #7119
- Move PackageSigningTests to async/await by @AndrewHoos in #7132
- Skip unknown XCBuild message types by @jakepetroules in #7136
- Async package registry tests by @AndrewHoos in #7135
- Rename the swift-testing entry point. by @grynspan in #7137
- Remove some unused code by @neonichu in #7140
- Fix dump symbol graph target list by @neonichu in #7143
- [NFC] Remove redundant
DependencyResolver
protocol by @MaxDesiatov in #7127 - Update CHANGELOG.md by @tomerd in #7149
- Fix error handling for dump symbol graph by @neonichu in #7141
- Create an xunit results file even if no tests are run. by @grynspan in #7066
- add 5.9 release notes by @tomerd in #7148
- [NFC] Remove unused
fileSystem
fromGraphLoadingNode
by @MaxDesiatov in #7154 - adjust git call supported by older git clients by @tomerd in #7155
- Async package collections tests by @AndrewHoos in #7156
- Fix ignored symbol graph extraction exit code by @MaxDesiatov in #7159
- Remove discovery target in swift-testing case by @grynspan in #7123
- Use a different path extension for swift-testing builds by @grynspan in #7163
- build: allow building in Debug mode on Windows by @compnerd in #7152
- [NFC] Replace
PackageConditionProtocol
withPackageCondition
by @MaxDesiatov in #7117 - Add test fixture for experimental-lto-mode by @rauhul in #6891
- make it possible to specify permitted network port access at runtime by @tomerd in #7151
- Move .swiftmodule output directory by @neonichu in #7103
- Keep separate build parameters for host and target by @MaxDesiatov in #7164
- Avoid use of
temp_await
inPackageRegistryToolTests.swift
by @MaxDesiatov in #7015 - Revert "Avoid use of
temp_await
inPackageRegistryToolTests.swift
" by @neonichu in #7169 - build: remove
USE_CMAKE_INSTALL
option by @compnerd in #7168 - A fix for incorrectly overriding environment variables rdar://118814900 by @pusukuri in #7144
- Pass
-disable-sandbox
to Swift compiler if requested by @neonichu in #7167 - Public API for getting information about build targets by @neonichu in #6763
- [cxx-interop] Make test discovery compatible with C++ interop by @egorzhdan in #7165
- Fix modules path for XCBuild by @neonichu in #7180
- Re-revert "Avoid use of temp_await in
PackageRegistryToolTests.swift
" by @MaxDesiatov in #7176 - Adopt
async
/await
in more tests by @AndrewHoos in #7182 - [cxx-interop] Do not pass the C++ standard if C++ interop is not enabled by @egorzhdan in #7188
- Move SwiftPackageCollectionsTool to async/await by @AndrewHoos in #7183
- Avoid using
temp_await
inSwiftTestTool.swift
by @MaxDesiatov in #7016 - Mark global var as constant in
ConcurrencyHelpers.swift
by @MaxDesiatov in #7191 - Avoid using
temp_await
onloadRootPackage
by @MaxDesiatov in #7009 - Move PackageRegistryTool to async/await by @AndrewHoos in #7190
- Allow specifying testing libraries for
swift package init
by @grynspan in #7186 - Revert "Avoid using
temp_await
inSwiftTestTool.swift
" by @MaxDesiatov in #7196 - build: clean up some CMake usage by @compnerd in #7193
- [NFC] Remove
SupportedPlatforms
, addPlatformVersionProvider
by @MaxDesiatov in #7161 - Delete
Sources/swift-package-collection/CMakeLists.txt
by @MaxDesiatov in #7198 - Replace custom path type with URL in plugin API by @neonichu in #7184
- Make
Resolved*
inPackageGraph
value types by @MaxDesiatov in #7160 - Adjust
testURLBasedPluginAPI
logging checks by @neonichu in #7205 - Bifurcate SwiftPM library locations by @neonichu in #7212
- Move the
SourceKitLSPAPI
target to theSwiftPM
product by @neonichu in #7209 - Use
topologicalSort
withIdentifiable
onResolvedTarget
by @MaxDesiatov in #7211 - [NFC] Fix some of the new Swift
main
snapshots warnings by @MaxDesiatov in #7214 - Verify product dependencies w/ target platform, vs. hardcoded
macOS
by @peterkos in #6963 - Add
subsetDescriptor
to completion message by @neonichu in #7208 - Run build commands without declared outputs by @neonichu in #7203
- Automatically enable swift-testing support in
swift test
when it's a dependency. by @grynspan in #7220 - Limit cache directories by @neonichu in #7225
- Workaround in ZipArchiver when posix_spawn_file_actions_addchdir_np is unavailable by @yim-lee in #7187
- Add
swift test --no-parallel
by @grynspan in #7231 - Automatically enable swift-testing support when building swift-testing by @grynspan in #7235
- Emit a deprecation warning for
--skip-update
by @neonichu in #7229 - Add WWDR G8 intermediate certificate by @yim-lee in #7238
- Cache SwiftPM library deployment targets by @neonichu in #7230
- Allow tools-versions to be specified later in the manifest by @neonichu in #7201
- Include out-of-target resources by @neonichu in #7232
- Verify that the pinned version is still available by @neonichu in #7242
- Add git information to PD context by @neonichu in #7202
- Sort results of
TargetSourcesBuilder
by @neonichu in #7228 - Vend generated files to plugins by @neonichu in #7226
- Bump swift-tools-version to 5.9 by @MaxDesiatov in #7244
- Start using
package
for some APIs by @MaxDesiatov in #7240 - Bump test timeout by @neonichu in #7247
- Linux packages fail to build with LLVM 18 and Apple 2023 versions of clang by @ian-twilightcoder in #7241
- Revert "Start using
package
for some APIs" by @DougGregor in #7249 - Tests: Exercise output and diagnostic messages from command plugins by @euanh in #7254
- Add a CMake build for the
SourceKitLSPAPI
module by @ahoppen in #7246 - Fix
PackageGraph
traversal performance regressions by @MaxDesiatov in #7248 - Replace uses of
package
with@_spi(SwiftPMInternal)
by @MaxDesiatov in #7265 - Some C++ packages fail to build on Apple platforms by @ian-twilightcoder in #7267
- Lower
swift-tools-version
to 5.8 to prevent use ofpackage
by @MaxDesiatov in #7266 - command plugins: Inherit SwiftPM's --configuration flag in packageManager.build by @euanh in #7262
- track SDK dependencies (rdar://115777026) by @pusukuri in #7172
- Add
SSH_AUTH_SOCK
toEnvironmentVariables.nonCachableKeys
by @MaxDesiatov in #7272 - Fix overlapping plugins/products build database access by @MaxDesiatov in #7273
- Fix
./Utilities/soundness.sh
regressions by @MaxDesiatov in #7260 - command plugin Xcode extension name fixed by @carlynorama in #7277
- Lock scratch directory during tool execution by @neonichu in #7269
- Exercise bootstrapping with the XCBuild codepath in
build-using-self
by @MaxDesiatov in #7253 - Revert of "Lock scratch directory during tool execution" by @neonichu in #7286
- Fix warning for
CMakeLists.txt
by @neonichu in #7282 - Fix macro template by @neonichu in #7281
- command plugins: Build command plugin dependencies for the host, not the target by @euanh in #7280
- Add mermaid charts support to
swift package describe
by @MaxDesiatov in #7289 - Derive dynamic libraries explicitly to avoid linker errors for "release" builds by @pusukuri in #7284
- Revert "Skip tests which need
-suppress-warnings
to work if it doesn't work" by @neonichu in #7294 - Filter
codesign
messages by @neonichu in #7285 - Fix swiftc selection for the case no swiftc found in Swift SDK by @kateinoigakukun in #7296
- command plugins: Add a 'progress' diagnostic message at default verbosity by @euanh in #7256
- Inherit host Swift SDK's toolset paths to fallback to host tools by @kateinoigakukun in #7297
- command plugins: Optionally print build logs during packageManager.build by @euanh in #7255
- Clean up product dependency API by @neonichu in #7298
- Gate new tests on
supportsSDKDependentTests()
by @neonichu in #7305 - [GH] Add bnbarham to codeowners by @bnbarham in #7307
- Fix logging of "Running..." for plugins by @ktoso in #7303
- Update minimum deployment target to macOS 13 by @neonichu in #7313
- Fix non-tarballed SDK installation with remote URL by @kateinoigakukun in #7312
- Fix typos in comments and symbols naming by @rex4539 in #7318
- Show progress bar while downloading Swift SDK bundles by @kateinoigakukun in #7315
- Move
swiftpm-project-settings.el
settings to.dir-locals.el
by @judemille in #7314 - Build: avoid unnecessary warnings for build tool inputs by @pusukuri in #7300
- Enable index store based on Clang feature detection by @neonichu in #7287
- Revert "Filter superfluous diagnostics" by @neonichu in #7293
- Reduce use of raw
\n
to improve cross-platform compatibility by @neonichu in #7322 - Bring back "Lock scratch directory during tool execution" by @neonichu in #7291
- Don't lock if we don't have a package root by @neonichu in #7335
- Move and refactor
ProgressAnimation
code from TSC by @rauhul in #7328 - Add hidden
--ignore-lock
escape hatch by @neonichu in #7338 - Bump swift-syntax version in the macro template by @neonichu in #7339
- Remove myself from CODEOWNERS by @neonichu in #7342
- Add option to allow HTTP (not HTTPS) registries by @Footpad in #7204
- Fix test runner build on WASI by @kateinoigakukun in #7341
- Support for prebuilt packages in the SDK by @neonichu in #7337
- Set correct minimum OS targets for new packages using swift-testing by @grynspan in #7333
- Support macros when cross-compiling by @MaxDesiatov in #7118
- Make
PackageModel
resources optional by @MaxDesiatov in #7348 - Build direct dependencies of tests for target triple by @MaxDesiatov in #7350
- Revert "Support macros when cross-compiling (#7118)" by @MaxDesiatov in #7352
- Build: pass through
Embedded
flag to link jobs by @MaxDesiatov in #7304 - Fix
.wasm
product paths forwasm32-unknown-none
triple by @MaxDesiatov in #7355 - Enable
--gc-sections
for WebAssembly targets by @kateinoigakukun in #7356 - Clarify that Xcode issues are not tracked in
BUG_REPORT.yml
by @MaxDesiatov in #7324 - Allow reading
Package.swift
with the executable bit set by @bnbarham in #7360 - Exclude
XCBuildSupport
when building with CMake by @MaxDesiatov in #7358 - Use structured concurrency in
PackageLoadingTests
by @MaxDesiatov in #7359 - Don't link libc++ or libstd++ for Embedded Swift by @MaxDesiatov in #7357
- Replace 5.11 version with 6.0 in the code base by @MaxDesiatov in #7361
- Rename
PackageGraph
type toModulesGraph
by @MaxDesiatov in #7363 - Fix
package
access modifier in XCBuild support by @MaxDesiatov in #7258 - Generalize test to handle the compiler's new diagnostic printing style by @DougGregor in #7368
- Rename
Swift*Tool
toSwift*Command
by @MaxDesiatov in #7336 - Allow
swift-build
to haveasync
entrypoint by @MaxDesiatov in #7369 - Benchmarks: add
PackageGraphBenchmarks
target by @MaxDesiatov in #7283 - Revert "Revert "Start using
package
for some APIs"" by @MaxDesiatov in #7344 - Clean up
main
function signature inSwiftPM.swift
by @MaxDesiatov in #7370 - Revert "Exclude
XCBuildSupport
when building with CMake (#7358)" by @bnbarham in #7371 - Hide build system internals with
@_spi
by @MaxDesiatov in #7365 - Adopt
package
in the test support module by @MaxDesiatov in #7372 - Enable
AccessLevelOnImport
inSourceKitLSPAPI
by @MaxDesiatov in #7366 - Don’t include compiler in the command line arguments by @ahoppen in #7379
- Add swift-testing support to
swift build --build-tests
by @grynspan in #7377 - Hide CLI commands API with
package
access control by @MaxDesiatov in #7381 - Make ignore-lock a flag by @rauhul in #7384
- Remove uses of
temp_await
fromSwiftTestCommand
by @MaxDesiatov in #7382 - Add XDG Base Directory Specification support by @lordzsolt in #7386
- Hide more llbuild-specific APIs by @MaxDesiatov in #7387
- Replace
ProcessEnv.vars
withblock
w/o API breakage by @MaxDesiatov in #7390 - Remove previously deprecated
--enable-test-discovery
by @MaxDesiatov in #7391 - Revert "Remove previously deprecated
--enable-test-discovery
" by @bnbarham in #7395 - Pass all arguments when initing testing parameters in
swift build
by @grynspan in #7396 - Fix remove
to let
from parameter description by @NakaokaRei in #7401 - Replace getdtablesize() on Android by @finagolfin in #7402
- Fix XCTest entrypoint for WASI by making it async by @kateinoigakukun in #7400
- [6.0] Change
relatedDependenciesBranch
torelease/6.0
by @ahoppen in #7407 - [6.0] Suppress redundant linkage warnings by @pusukuri in #7414
- [6.0] Write output-file-map.json atomically by @ahoppen in #7415
- [6.0] Fix a memory leak in
DownloadTaskManager
andDataTaskManager
by @ahoppen in #7416 - Use
arguments
instead ofargumentList
in the macro template by @ahoppen in #7424 - [6.0] On Darwin, allow XCTest to be missing if we're only building swift-testing tests. by @grynspan in #7430
- 🍒[cxx-interop] Propagate interop flag to the test entry point target by @egorzhdan in #7429
- [6.0] Bump
swift-syntax
in template to600.0.0-latest
by @MaxDesiatov in #7445 - [6.0][PubGrub] Avoid resolving package versions twice in presence of prebu… by @xedin in #7457
- [6.0] Suppress warnings for remote Clang targets by @xedin in #7456
- [6.0] pkgconfig: Apply PKG_CONFIG_SYSROOTDIR when generating paths by @euanh in #7472
- 6.0: [SE-0301] Implement package manifest editing command-line options by @DougGregor in #7494
- [6.0] NFC: Add
Sendable
annotations to PackageDescription APIs by @xedin in #7488 - [6.0] Handle Swift versions unsupported by XCBuild by @neonichu in #7504
- [6.0] Set environment variable to disable building swift-syntax in Swift 6 mode by @ahoppen in #7500
- [6.0] plugins: Pass correct dependency origin information to plugins by @euanh in #7511
- [6.0] Make
SwiftSDK.init
available via@_spi
by @MaxDesiatov in #7487 - [6.0] Make
supportedTriples
optional in artifactbundle metadata by @MaxDesiatov in #7516 - [6.0] Deprecate
experimental
Swift SDK CLI in favor of unprefixed counterparts by @MaxDesiatov in #7515 - Cherry-picks to
release/6.0
for sourcekit-lsp update by @ahoppen in #7520 - [6.0] Remove the addition of external-plugin-path for dev toolchains by @bnbarham in #7526
- [6.0] Teach swift package add-target --type test about swift-testing (#7481) by @DougGregor in #7537
- [6.0]
swift sdk
: print warnings on stderr instead of stdout by @MaxDesiatov in #7533 - [6.0] Align
swift sdk
configuration subcommand with proposal text by @MaxDesiatov in #7538 - [6.0] Mark
buildSettingsDescription
as@_spi
inTarget.swift
by @MaxDesiatov in #7543 - Don’t disable Swift 6 mode in swift-syntax by @ahoppen in #7558
- package -> @_spi public due to package exportability rule updates by @ahoppen in #7561
- Add API needed for background indexing in SourceKit-LSP by @ahoppen in #7562
- [6.0] Pass through experimental swift-testing flags by @grynspan in #7564
- [6.0] Add
--enable-code-coverage
toswift build
by @grynspan in #7565 - Add two Sendable annotations to enable building SourceKit-LSP in Swift 6 mode by @ahoppen in #7559
- [6.0] Generated code for XCTest on non-Darwin needs to be actor-isolated. by @grynspan in #7569
- [6.0][SE-0435] Implement per target swift version selection by @xedin in #7567
- [6.0] Restore visibility of APIs that have been made
package
by @xedin in #7570 - [6.0] NFC: Rename
ResolvedTarget
toResolvedModule
by @xedin in #7571 - [6.0] Set an environment variable in
swift test
to indicate which testing library is in use. by @grynspan in #7577 - [6.0] Update diagnostics for duplicated product/target names by @neonichu in #7575
- [6.0] Various low-risk cherry-picks by @bnbarham in #7578
- [6.0] Update -swift-version to default to 6 for swift-tools-version 6 by @bnbarham in #7531
- [6.0] Rename back to
swift package completion-tool
by @kateinoigakukun in #7602 - [6.0] Enable
-user-module-version
for 6.0 by @MaxDesiatov in #7606 - [6.0][Package/ModuleGraph] Allow cyclic package dependencies if they don't introduce a cycle in a build graph by @xedin in #7541
- [6.0] Add support for swift-collections 1.1 by @jmschonfeld in #7614
- [6.0][PackageGraph] Allow package-level cyclic dependency only for >= 6.0 … by @xedin in #7617
- [6.0] Partially revert #7566 to fix amazon linux 2 crash by @bnbarham in #7624
- Update release/6.0 CODEOWNERS to branch managers only by @bnbarham in #7625
- [6.0] Fix incremental builds for
embedInCode
resources by @kateinoigakukun in #7618 - [6.0] Add
swift package add-target-dependency
command to edit the manifest by @DougGregor in #7628 - [6.0][Basics] Switch
IdentifiableSet
to useOrderedDictionary
by @xedin in #7634 - [6.0] Support macros when cross-compiling by @MaxDesiatov in #7640
- [6.0] Relax version ranges for dependencies in
Package.swift
by @finestructure in #7657 - [6.0] Add prepare for index experimental build argument by @bnbarham in #7638
- [6.0] Symbol graph cherry picks by @rauhul in #7659
- [6.0] Remove
Sendable
conformance onBundle
from SwiftPM by @MaxDesiatov in #7653 - [6.0] Fix
–-toolchain
value shadowed by local executables by @MaxDesiatov in #7485 - [6.0][Build/PackageGraph] Switch
BuildSubset.{product, target}
and `Modu… by @xedin in #7668 - [6.0][Test-only] Don't use invalid module to satisfy
canImport
check (#7647) by @cachemeifyoucan in #7678 - [6.0] Provide deprecation messages for
PackagePlugin.Path
by @MaxDesiatov in #7683 - [6.0] Fix cache not cleaned up if download fails by @MaxDesiatov in #7671
- [6.0] Update
CODEOWNERS
afterswiftlang
transfer by @MaxDesiatov in #7714 - Update links for repositories moved to the swiftlang org on GitHub by @ahoppen in #7711
- [6.0] Improvements to prebuilt/provided library handling by @MaxDesiatov in #7713
- [6.0] Implement
fileAffectsSwiftOrClangBuildSettings
with the logic fromLLBuildManifestBuilder
by @ahoppen in #7709 - [6.0/Prepare] Don't skip non-exportable-decls when enable-testing (#7675) by @dschaefer2 in #7686
- [6.0] Cherry-pick recent NFC changes to reduce merge conflicts by @MaxDesiatov in #7721
- [6.0] Remove unused options from
add-product
subcommand by @taji-taji in #7697 - [6.0] Fix host/target products with
--static-swift-stdlib
by @MaxDesiatov in #7743 - [6.0] Improve cross-compilation for experimental XCBuild support by @jakepetroules in #7736
- [6.0] Fix checksum computation for Swift SDK bundles by @MaxDesiatov in #7749
- [6.0] Work around
swift-bootstrap
inability to handle plugins by @MaxDesiatov in #7751 - [6.0] Add a
--experimental-prepare-for-indexing-no-skipping
command line option to prepare a target without function body skipping by @ahoppen in #7747 - [6.0] Use
release
build configuration inexperimental-install
by @MaxDesiatov in #7745 - [6.0] Invalidate manifest cache when
-Xbuild-tools-swiftc
changes by @kateinoigakukun in #7762 - [6.0] Add support for new Bionic module from Android overlay (
import Bionic
) (#7615) by @finagolfin in #7752 - [6.0] Add the formalized Swift Testing event stream arguments to
swift test
. by @grynspan in #7770 - [6.0] Add a helper tool for swift-testing by @xedin in #7779
- [6.0] NFC: Make 'FileRuleDescription.Rule' conform to
Sendable
by @MaxDesiatov in #7781 - [6.0] Fix warning in
OSSignpost.swift
w/@preconcurrency import
by @MaxDesiatov in #7786 - [6.0] NFC: Expose
Environment
with@_spi
by @MaxDesiatov in #7793 - [6.0] Build one test product for both Swift Testing and XCTest (with Swift Testing enabled by default.) by @grynspan in #7794
- [6.0] Don't log "no matching tests" diagnostic when running XCTest only. by @grynspan in #7804
- [6.0] Revert all of the functionality related to provided libraries by @xedin in #7800
- [6.0] Move the 'GitRepositoryProvider' to compare urls using their canonical representation, correctly accepting results where repositories only differ by '.git' by @francescomikulis in #7809
- [6.0][PubGrub] Narrow down cases when pre-release decisions are marked inv… by @xedin in #7808
- [6.0][PackageDescription] SE-0441: Rename
swiftLanguageVersion
to `swift… by @xedin in #7813 - [6.0] Handle
.xcprivacy
files inTargetSourcesBuilder.swift
by @MaxDesiatov in #7816 - [6.0] Add back
--enable-experimental-swift-testing
toswift build
as a no-op. by @grynspan in #7818 - 6.0: [NFC] Expose
platformVersionProvider
with@_spi(SwiftPMInternal)
by @MaxDesiatov in #7820 - [6.0][PackageDescription] Deprecated
swiftLanguageVersion
should result … by @xedin in #7826 - [6.0][PackageLoading] Support deserialization of manifests that used `swif… by @xedin in #7828
- [6.0] Implement
--checksum
option onswift sdk install
by @MaxDesiatov in #7723 - [6.0] Properly handle swift-testing installations in toolchain/SDK by @xedin in #7856
- [6.0.0][PackageModel] Toolchain: Split SwiftTesting flags between swift… by @xedin in #7908
- [6.0.0] Disable part of a test that fails with Swift Testing in the too… by @xedin in #7914
- [6.0.0][PackageModel] Inject swift-testing flags only if toolchain is target… by @xedin in #7922
- [6.0.0] Update package templates to use Swift Testing in the toolchain rather than as a package dependency. by @grynspan in #7911
New Contributors
- @ashokm made their first contribution in #7107
- @peterkos made their first contribution in #6963
- @carlynorama made their first contribution in #7277
- @ktoso made their first contribution in #7303
- @rex4539 made their first contribution in #7318
- @judemille made their first contribution in #7314
- @lordzsolt made their first contribution in #7386
Full Changelog: swift-5.10.1-RELEASE...swift-6.0-RELEASE