Sprint release procedure for uniprot-website
On the main branch perform the following:
- Update and release Franklin
- Update dependencies (see below (including the just updated Franklin)). If an update has several breaking changes and requires too much effort, create a Jira instead and update the table below
- Update the coverage (see below)
- Push the updated
main
to remote:git push origin main
- Tag a release, adding the list of implemented features and bug fixes (compiled in sprint review doc) (see below)
- Tell everyone it's ready 🎉
- Delete stale branches upon confirmation from the team 🧹
Note: do the same process on Franklin first as UniProt depends on Franklin. It will allow us to have the same up-to-date version of common dependencies at the same time.
It is assumed you're on UniProt's main and have all branches for that sprint merged in (if ready). Select all compatible upgrades and test:
yarn upgrade-interactive --latest
<select compatible upgrades>
yarn test
Now upgrade one-by-one the packages with breaking upgrades:
yarn upgrade-interactive --latest
<select an upgrade>
yarn test
Name | Version | Reason | Priority |
---|---|---|---|
d3 | 5.16.0 ❯ 7.2.1 | Breaking changes imcompatible with Nightingale | Low |
@types/d3 | 5.16.3 ❯ 7.1.0 | Breaking changes imcompatible with Nightingale | Low |
history | 4.10.1 ❯ 5.1.0 | Needs proper testing, coordinate with franklin | Medium |
react-router-dom | 5.0.4 ❯ 6.0.2 | Link update with history, needs testing | Medium |
@svgr/webpack | 5.5.0 ❯ 6.1.1 | Update alongside SVG optimisation in webpack | Low |
@storybook/* | 6.3.* ❯ 6.4.9 | Issue with router, linked to react-router-dom? | Low |
react-beautiful-dnd-test-utils | 3.2.1 ❯ 4.1.0 | API change for makeDnd() | Low |
Bump the test coverage as to define a new reference for the new sprint:
yarn coverage-bump
Tag the release with the relevant release notes https://github.com/ebi-uniprot/uniprot-website/releases
- To tag on your local machine:
git tag -a v<version> -m "v<version>"
eggit tag -a v0.18-alpha -m "v0.18-alpha"
- To push (annotated) tags:
git push --follow-tags origin main
- Draft a new release
- Put the sprint goal as release title
- Write the list of new features/bug fixes (already compiled in sprint review document)
Check in github if there any stale branches within both uniprot and franklin and if so, inform the team via slack that you will delete them unless anybody has objections. If all OK, delete the branches.