short tl;dr; of the release
<List of items with PRs and/or Issues to be considered for this release>
<Date this release will ship on if everything goes to plan (week beginning...)>
- Stage 0 - Automated Testing
- Feature freeze. If any "non-trivial" changes (see the footnotes of docs/releases.md for a definition) get added to the release, uncheck all the checkboxes and return to this stage.
- Automated Testing (already tested in CI) - Ensure that all tests are passing, this includes:
- unit/functional/integration/e2e
- interop
-
sharness(Does not runjs-ipfs
) - all the examples run without problems
- IPFS application testing
-
webui(Does not depend onjs-ipfs
orjs-ipfs-http-client
) -
ipfs-desktop(Does not depend onjs-ipfs
orjs-ipfs-http-client
) - ipfs-companion
- npm-on-ipfs
- peer-base
- service-worker-gateway
-
- Third party application testing
- Stage 1 - Internal Testing
- Documentation
- Ensure that README.md is up to date
- Install section
- API calls
- Packages Listing
- Ensure that README.md is up to date
- Publish a release candidate to npm
# All successful builds of master update the `build/last-successful` branch # which contains an `npm-shrinkwrap.json`. # This command checks that branch out, installs it's dependencies using `npm ci`, # creates a release branch (e.g. release/v0.34.x), updates the minor prerelease # version (e.g. 0.33.1 -> 0.34.0-rc.0) and publishes it to npm. npx aegir publish-rc # Later we may wish to update the rc. First cherry-pick/otherwise merge the # new commits into the release branch on github (e.g. not locally) and wait # for CI to pass. Then update the lockfiles used by CI (n.b. one day this # will be done by our ci tools) with this command: npx aegir update-release-branch-lockfiles release/v0.34.x # Then update the rc published on npm. This command pulls the specified # release branch, installs it's dependencies `npm ci`, increments the # prerelease version (e.g. 0.34.0-rc.0 -> 0.34.0-rc.1) and publishes it # to npm. npx aegir update-rc release/v0.34.x
- Network Testing:
- test lab things - TBD
- Infrastructure Testing:
- TBD
- Documentation
- Stage 2 - Community Dev Testing
- Reach out to the IPFS early testers listed in docs/EARLY_TESTERS.md for testing this release (check when no more problems have been reported). If you'd like to be added to this list, please file a PR.
- Reach out on IRC for additional early testers.
- Stage 3 - Community Prod Testing
- Update js.ipfs.io examples to use the latest js-ipfs
- Invite the IPFS early testers to deploy the release to part of their production infrastructure.
- Invite the wider community (link to the release issue):
- discuss.ipfs.io
- IRC
- Stage 4 - Release
- Take a snapshot of everyone that has contributed to this release (including its direct dependencies in IPFS, libp2p, IPLD and multiformats) using the js-ipfs-contributors module.
- Publish to npm:
git checkout release/v0.34.x # Re-install dependencies using lockfile (will automatically remove your # node_modules folder) (Ensures the versions used for the browser build are the # same that have been verified by CI) npm ci # lint, build, test, tag, publish npm run release-minor # reintegrate release branch into master git rm npm-shrinkwrap.json yarn.lock git commit -m 'chore: removed lock files' git checkout master git merge release/v0.34.x git push
- Publish a blog post to github.com/ipfs/blog (at minimum, a c&p of this release issue with all the highlights, API changes and thank yous)
- Broadcasting (link to blog post)
- IRC
- discuss.ipfs.io
- Announce it on the IPFS Users Mailing List
- Copy release notes to the GitHub Release description
Would you like to contribute to the IPFS project and don't know how? Well, there are a few places you can get started:
- Check the issues with the
help wanted
label in the js-ipfs repo - Join an IPFS All Hands, introduce yourself and let us know where you would like to contribute - https://github.com/ipfs/team-mgmt/#weekly-ipfs-all-hands
- Hack with IPFS and show us what you made! The All Hands call is also the perfect venue for demos, join in and show us what you built
- Join the discussion at https://discuss.ipfs.io/ and help users finding their answers.
- Join the 🚀 IPFS Core Implementations Weekly Sync 🛰 and be part of the action!
The best place to ask your questions about IPFS, how it works and what you can do with it is at discuss.ipfs.io. We are also available at the #ipfs
channel on Freenode.