- 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.podspec
version - update
Example/Podfile.lock
version withpod install
command - update
CHANGELOG.md
with changes since last version
After merging and tests pass:
- tag
master
with 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.