|
2 | 2 |
|
3 | 3 | ## Production Releases
|
4 | 4 |
|
5 |
| ---- |
6 |
| - |
7 |
| -***Before you begin:*** Please make sure you are set up with |
8 |
| -[`bundle exec pod trunk`](https://guides.cocoapods.org/making/getting-setup-with-trunk.html) and your CocoaPods |
9 |
| -account is a contributor for all pods. If you need to be added as a |
10 |
| -contributor, please [open a ticket requesting access](https://github.com/square/workflow-swift/issues/new). |
11 |
| - |
12 |
| -For Squares, membership is managed through the `Workflow Swift Owners` registry group. Please request access to that group through Registry. Once you have access, you can register a session with `bundle exec pod trunk` using the group e-mail alias `[email protected]`. |
13 |
| - |
14 |
| -`bundle exec pod trunk register [email protected] 'Workflow Swift Owners' --description='Your computer description'` |
15 |
| - |
16 |
| ---- |
17 |
| - |
18 |
| -> ⚠️ [Optional] To avoid possible headaches when publishing podspecs, validation can be performed before updating the Workflow version number(s). To do this, run the following in the root directory of this repo: |
19 |
| -> ```bash |
20 |
| -> bundle exec pod lib lint Workflow.podspec ViewEnvironment.podspec ViewEnvironmentUI.podspec WorkflowTesting.podspec WorkflowReactiveSwift.podspec WorkflowUI.podspec WorkflowRxSwift.podspec WorkflowReactiveSwiftTesting.podspec WorkflowRxSwiftTesting.podspec WorkflowSwiftUIExperimental.podspec WorkflowCombine.podspec WorkflowCombineTesting.podspec WorkflowConcurrency.podspec WorkflowConcurrencyTesting.podspec |
21 |
| -> ``` |
22 |
| -> You may need to `--include-podspecs` for pods that have changed and are depended on by other of the pods. |
23 |
| -
|
| 5 | +### Updating the release |
24 | 6 | 1. Update `WORKFLOW_VERSION` in `version.rb` based on [`semver`](https://semver.org/).
|
25 | 7 |
|
26 | 8 | 1. Create a PR with the version change and merge to `main`.
|
27 | 9 |
|
28 | 10 | 1. Create the release on GitHub:
|
29 | 11 | 1. Go to the [Releases](https://github.com/square/workflow-swift/releases) and `Draft a new release`.
|
30 |
| - 1. `Choose a tag` and create a tag for the new version. ex: `v1.0.0` |
31 |
| - 1. `Generate release notes` |
| 12 | + 1. `Choose a tag` and create a tag for the new version. ex: `v1.0.0`. |
| 13 | + 1. `Generate release notes`. |
32 | 14 | 1. Ensure the `Title` corresponds to the version we're publishing and the generated `Release Notes` are accurate.
|
33 | 15 | 1. Hit `Publish release`.
|
34 | 16 |
|
35 |
| -1. Publish to CocoaPods: |
| 17 | +At this point, the new release is available and can be consumed using the Swift Package Manager. |
| 18 | + |
| 19 | +[Square specific] To make the new version available internally, [bump the version](https://go/spm-bump-dependency) through SPM. |
| 20 | + |
| 21 | +### Publishing to CocoaPods |
| 22 | + |
| 23 | +1. Xcode 15.4 is the currently recommended version to use to publish all pods. Due to a bug in CocoaPods, you will also need to download Xcode 14.2 and copy `Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc`from within the Xcode 14.2 app to the same location in Xcode 15.4. |
| 24 | + |
| 25 | +1. Make sure you are set up with [`bundle exec pod trunk`](https://guides.cocoapods.org/making/getting-setup-with-trunk.html) and your CocoaPods account is a contributor for all pods. If you need to be added as a contributor, please [open a ticket requesting access](https://github.com/square/workflow-swift/issues/new). |
| 26 | + 1. For Squares, membership is managed through the `workflow-swift-owners` registry group. Please request access to that group through Registry. |
| 27 | + 1. Once you have access, you can register a session with `bundle exec pod trunk` using the group e-mail alias `[email protected]`: |
| 28 | +`bundle exec pod trunk register [email protected] 'Workflow Swift Owners' --description='Your computer description'`. |
| 29 | + 1. You should receive an email from CocoaPods to confirm your session before you procede. |
| 30 | + |
| 31 | +1. To avoid possible headaches when publishing podspecs, validation can be performed first. |
| 32 | + 1. Make sure you're using Xcode 15.4 in the command line: `sudo xcode-select -s Path/to/Xcode15.4`. |
| 33 | + 1. Run the following: |
| 34 | + ```bash |
| 35 | + bundle exec pod lib lint Workflow.podspec ViewEnvironment.podspec ViewEnvironmentUI.podspec WorkflowTesting.podspec WorkflowReactiveSwift.podspec WorkflowUI.podspec WorkflowRxSwift.podspec WorkflowReactiveSwiftTesting.podspec WorkflowRxSwiftTesting.podspec WorkflowSwiftUIExperimental.podspec WorkflowCombine.podspec WorkflowCombineTesting.podspec WorkflowConcurrency.podspec WorkflowConcurrencyTesting.podspec |
| 36 | + ``` |
| 37 | + |
| 38 | +1. Once validation passes on all pods, you can publish to CocoaPods. |
36 | 39 | ```bash
|
37 | 40 | bundle exec pod trunk push Workflow.podspec --synchronous
|
38 | 41 | bundle exec pod trunk push WorkflowTesting.podspec --synchronous
|
|
0 commit comments