This checklist should be worked through when releasing a new Serverless version.
More info about our release process can be found in the RELEASE_PROCESS.md document.
- Look through all open issues and PRs (if any) of that milestone and close them / move them to another milestone if still open
- Look through all closed issues and PRs of that milestone to see what has changed. Run
./scripts/prs-since-last tagor if you want to run against a specific tag./scripts/prs-since-last tag v1.20.0to get a list of all merged PR's since a specific tag - Close milestone on GitHub
- Create a new draft release in GitHub
- Create a Serverless service (with some events), deploy and test it intensively
- Look through the milestone and test all of the new major changes
- Run
npm test - Run
npm run simple-integration-test - Run
npm run complex-integration-test
- Create a new branch to bump version in
package.json - Install the latest
npmversion or Docker container with latestnodeandnpm - Bump version in
package.json, removenode_modulesfolder and runnpm installandnpm prune --production && npm shrinkwrap - Look through closed PRs and update
CHANGELOG.md - Make sure all files that need to be pushed are included in
package.json -> files - Send PR and merge PR with new version to be released
- Add the changes you made to
CHANGELOG.mdto the description of the GitHub release draft - Go back to branch you want to release from (e.g.
master) and pull bumped version changes from GitHub - Make sure there are no local changes to your repository (or reset with
git reset --hard HEAD) - Check
package.json,package-lock.jsonandnpm-shrinkwrap.jsonversion config to make sure it fits what we want to release
- Publish the GitHub release draft (Travis CI will automatically publish the new release to
npm)
- Validate that
npm installworks (npm install -g serverless@<new-tag>ornpm install -g serverlessif latest is released)
- Run
./scripts/generate-release-contributors-list <old-tag> <new-tag>and hand the generated list over to the release blog post author