Skip to content

Commit 24b9352

Browse files
tomerdneonichu
andauthored
add 5.9 release notes (#7148)
motivation: make sure 5.9 release notes are published changes: Document key 5.9 features per https://www.swift.org/blog/swift-5.9-released and https://github.com/apple/swift-package-manager/blob/main/CHANGELOG.md --------- Co-authored-by: Boris Bügling <[email protected]>
1 parent 7411a19 commit 24b9352

File tree

1 file changed

+31
-0
lines changed
  • Documentation/ReleaseNotes

1 file changed

+31
-0
lines changed

Documentation/ReleaseNotes/5.9.md

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# SwiftPM 5.9 Release Notes
2+
3+
## Cross compilation
4+
5+
SwiftPM now supports cross compilation based on the Swift SDK bundle format. While the feature is still considered experimental, we invite users to try it out and provide feedback.
6+
7+
## Package registry
8+
9+
SwiftPM can now publish to a registry following the specification defined in SE-0391, as well as support signed packages, which may be required by a registry. Trust-on-first-use (TOFU) validation checks can now use signing identities in addition to fingerprints, and are enforced for source archives as well as package manifests.
10+
11+
## Embedded resources
12+
13+
Basic support for a new `.embedInCode` resource rule which allows embedding the contents of the resource into the executable code by generating a byte array
14+
15+
```
16+
struct PackageResources {
17+
static let best_txt: [UInt8] = [104,101,108,108,111,32,119,111,114,108,100,10]
18+
}
19+
```
20+
21+
## Other improvements
22+
23+
The `CompilerPluginSupport` module enables defining macro targets. Macro targets allow authoring and distributing custom Swift macros as APIs in a library.
24+
25+
Packages can use the new `package` access modifier, allowing access of symbols in another target / module within the same package without making them public. SwiftPM automatically sets the new compiler configuration to ensure this feature works out-of-the-box for packages.
26+
27+
The `allowNetworkConnections(scope:reason:)` setting gives a command plugin permissions to access the network. Permissions can be scoped to Unix domain sockets as well as local or remote IP connections, with an option to limit by port. For non-interactive use cases, the `--allow-network-connections` command-line flag allows network connections for a particular scope.
28+
29+
When a package contains a single target, sources may be distributed anywhere within the `./Sources` directory. If sources are placed in a subdirectory under `./Sources/<target>`, or there is more than one target, the existing expectation for sources apply
30+
31+
Build tool plugins can be used with C-family targets

0 commit comments

Comments
 (0)