This document checklist of things that need to happen before, during, and after a release of this library. This document is included in the repo for a couple reasons:
- It makes it easier for people who are not the primary maintainers to perform a release if needed
- It helps one primary maintainer, who has the memory of a goldfish, remember to actually do all this stuff before releasing
Things to do before cutting a release:
- Update the
CHANGELOGwith all relevant changes since the prior version. Easiest way to do this is to check theNext Releasetag in Github. - Update the version in
Configuration/Shared/Project-Version.xcconfig - Run the Documentation Generator as noted in
api-reference.mdto re-generate documentation from source for all included libraries - Validate that
mainbuilds with a test Swift Package Manager project - Validate that
mainbuilds with a test CocoaPods project - Validate that
mainbuilds with a test Carthage project (make sure to use--use-xcframeworks) - Make sure all playground pages merged into
mainrun
Things to do as part of releasing:
- Add tag of format
major.minor.patchto GitHub for SPM/Carthage - Run
pod trunk push Apollo.podspec* to publish to CocoaPods - Update release on GitHub to have
CHANGELOGcontents for that version - Tweet link to tag for new version
* - You will need write permissions for this to actually work, please contact Ellen or Anthony if you need them and don't have them
Things to do after release has been made:
- Update version of library in sample applications (Currently:
RocketReserver, and for changes to theApolloCodegenLib,iOSCodegenTemplate) - Close out milestone in GitHub and all related issues
- Create new "Next Release" milestone in GitHub