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
- Create a new branch for the release
- Bump version ranges of all dependencies to latest supported versions (e.g. if latest version of a dependency is
2.3.5
, range in apackage.json
is^2.2.4
then it should be updated to^2.3.5
)
Note: Unfortunately there seems no reliable utility to automate that (there's a request atnpm-check-updates
)
If you handle installation of dependencies through npm-cross-link then--bump-deps
option will bump version ranges as expected - Bump the version number in
package.json
- Run
./scripts/prs-since-last-tag <OLD-TAG>
- Save the terminal output to your clipboard
- Close the milestone on GitHub
- Create a new draft release in GitHub
- Use the content in your clipboard as a description (without the heading)
- Ensure that the "Tag version" follows our naming convention
- Install the latest
npm
version or Docker container with latestnode
andnpm
(Ensure to work with annpm
version which is distributed with latestnode
version) - Update
CHANGELOG.md
with the content from your clipboard - Make sure all files that need to be pushed are included in
package.json -> files
- Commit your changes (make sure that
package.json
andCHANGELOG.md
are updated) - Push your branch and open up a new PR
- Await approval and merge the PR into
master
- Go back to the branch you want to release from (e.g.
master
) and pull the changes from GitHub - Make sure there are no local changes to your repository (or reset with
git reset --hard HEAD
) - Check
package.json
version 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
) - Update the branch ref in the site repo so docs are updated: https://github.com/serverless/site/blob/master/scripts/docs/config.js#L8
- Validate that
npm install
works (npm install -g serverless@<new-tag>
ornpm install -g serverless
if latest is released)