-
Update
WORKFLOW_VERSION
inversion.rb
based onsemver
. -
Create a PR with the version change and merge to
main
. -
Create the release on GitHub:
- Go to the Releases and
Draft a new release
. Choose a tag
and create a tag for the new version. ex:v1.0.0
.Generate release notes
.- Ensure the
Title
corresponds to the version we're publishing and the generatedRelease Notes
are accurate. - Hit
Publish release
.
- Go to the Releases and
At this point, the new release is available and can be consumed using the Swift Package Manager.
[Square specific] To make the new version available internally, bump the version through SPM.
-
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. -
Make sure you are set up with
bundle exec pod trunk
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.- 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 aliasworkflow-swift-owners@squareup.com
:
bundle exec pod trunk register workflow-swift-owners@squareup.com 'Workflow Swift Owners' --description='Your computer description'
. - You should receive an email from CocoaPods to confirm your session before you procede.
- For Squares, membership is managed through the
-
To avoid possible headaches when publishing podspecs, validation can be performed first.
- Make sure you're using Xcode 15.4 in the command line:
sudo xcode-select -s Path/to/Xcode15.4
. - Run the following:
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
- Make sure you're using Xcode 15.4 in the command line:
-
Once validation passes on all pods, you can publish to CocoaPods.
bundle exec pod trunk push Workflow.podspec --synchronous bundle exec pod trunk push WorkflowTesting.podspec --synchronous bundle exec pod trunk push WorkflowReactiveSwift.podspec --synchronous bundle exec pod trunk push ViewEnvironment.podspec --synchronous bundle exec pod trunk push ViewEnvironmentUI.podspec --synchronous bundle exec pod trunk push WorkflowUI.podspec --synchronous bundle exec pod trunk push WorkflowRxSwift.podspec --synchronous bundle exec pod trunk push WorkflowReactiveSwiftTesting.podspec --synchronous bundle exec pod trunk push WorkflowRxSwiftTesting.podspec --synchronous bundle exec pod trunk push WorkflowSwiftUIExperimental.podspec --synchronous bundle exec pod trunk push WorkflowCombine.podspec --synchronous bundle exec pod trunk push WorkflowCombineTesting.podspec --synchronous bundle exec pod trunk push WorkflowConcurrency.podspec --synchronous bundle exec pod trunk push WorkflowConcurrencyTesting.podspec --synchronous
-
[Square specific] To make the new version available internally, update the CocoaPods spec repo.