- Xcode
- Carthage
- Cocoapods
- Ruby
- Node
Note: we use SemVer format.
MAJOR: breaking change. MINOR: new feature(s), backwards compatible. PATCH: bugfix only.
In a PR:
- bump
HCaptcha.podspecversion - update
Example/Podfile.lockversion withpod installcommand - update
CHANGELOG.mdwith changes since last version
After merging and tests pass:
- tag
masterwith exact version fromHCaptcha.podspec(i.e "1.7.0"). This will kick off an automated release to:- Cocoapods
- Github Releases
.. and that's it!
Carthage doesn't support the concept of subspec, so HCaptcha-Carthage.xcodeproj is used to achieve a similar goal.
Unlike Cocoapods, Carthage and SPM are decentralized. They do not require any centralized updates per version.
We use GitOps. It is triggered by a version tag on the default branch (master). This must be done by an administrator, as we use tag protection. Don't tag the new version on feature branches, just update the metadata for release.