Maps the default `traits` to preprocessor defines when building the
library.
Tested by swapping the
```swift
#endif
```
for:
```swift
#warning("Defined.")
#else
#error("Not defined.")
#endif
```
And inspecting the output of `pod lib lint` to confirm the `#warning` is
hit and not the `#error`. Fixes#2005
It appears that on macOS when building with Xcode the latest changes
have resulted in a error when resolving `swift-protobuf` reported in
https://github.com/apple/swift-protobuf/issues/1884.
This PR ignores the abseil privacy manifest which should fix the issue
The `Span` support was a _minor_ bump, so left that out of the previous
release so folks would get the assertion fix if they were only accepting
bug fixes.
# Motivations
In the previous PRs, I landed support for distributing `protoc` via this
repo which finally allows us to broadly recommend the SPM plugin.
# Modifications
This PR bumps the versions and updates the docs for the SPM plugin and a
tiny addition to the RELEASING doc to ensure the latest check is set.
# Result
Unblocking the ecosystem in broadly adopting the SPM plugin.
Update the documentation to reflect that we will try to support the older of the
Swift NIO supported version and the minimum Xcode version supported for the
Apple AppStore.
As of today, that means:
- Swift NIO: Swift 5.6 - https://github.com/apple/swift-nio#swiftnio-2
- AppStore: Xcode 14.1 - https://developer.apple.com/news/?id=jd9wcyov#:~:text=Starting%20April%2025%2C%202023%2C%20iOS,or%20later.
Xcode 14.1 included Swift 5.7. So we'll support Swift 5.6+, but the Apple
deployment minimums are moved up to the values from Xcode 14.1.
In addition to the documentation updates, this commit also:
- Updates the main Package.swift and SwiftProtobuf.podspec for the new
deployment minimums.
- Updates the CI setup to the minimum Swift version.
NOTE: There are no code changes in this commit, once this CL is landed, the code
changes will be done in follow ups since there are generation changes.
Fixes#1401.
As discussed in the issue, Xcode 14.3 no longer contains libarclite-*.a and podspecs targeting macOS 10.9 and 10.10 fail. There's limited traction on Cocoapods to implement a fix and this impacts our podspec maintainers' ability to release their specs and users' ability to consume them.
There are currently 10 projects in the Cocoapods spec repo that target 10.10 or below and none are actively maintained. Similarly, Xcode has dropped official support for 10.10 and below for several years.
Model what Firebase seems to do, have a podspec for each of the modules and
have dependencies between them.
Add a helper to the Makefile for running `pod lib lint`.
Update LibraryVersions.py to handle the multiple podspecs.
Update the docs on what publishing is likely going to take.
Fixes#1334