Skip to content

Commit a29d9d1

Browse files
authored
Improve releasing instructions. (#309)
1 parent 9cba476 commit a29d9d1

File tree

1 file changed

+25
-22
lines changed

1 file changed

+25
-22
lines changed

RELEASING.md

+25-22
Original file line numberDiff line numberDiff line change
@@ -2,37 +2,40 @@
22

33
## Production Releases
44

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
246
1. Update `WORKFLOW_VERSION` in `version.rb` based on [`semver`](https://semver.org/).
257

268
1. Create a PR with the version change and merge to `main`.
279

2810
1. Create the release on GitHub:
2911
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`.
3214
1. Ensure the `Title` corresponds to the version we're publishing and the generated `Release Notes` are accurate.
3315
1. Hit `Publish release`.
3416

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.
3639
```bash
3740
bundle exec pod trunk push Workflow.podspec --synchronous
3841
bundle exec pod trunk push WorkflowTesting.podspec --synchronous

0 commit comments

Comments
 (0)