diff --git a/docs/create-new-invidious-release.md b/docs/create-new-invidious-release.md new file mode 100644 index 0000000..beda9d6 --- /dev/null +++ b/docs/create-new-invidious-release.md @@ -0,0 +1,75 @@ +# How to make a new Invidious release + +## Preamble + +In the following document, `vX.Y.Z` is the release version, which should follow +the pattern `v.
.` + +The major component is only updated on breaking changes (database migrations, +incompatible config changes). The minor component is the current UTC date. +The patch component is updated if a second release is done the same day. + + +## Step 0 + +Make sure you're synced with upstream: +```sh +git checkout master +git remote update +git pull origin master +``` + + +## Step 1 + +Update CHANGELOG.md to reflect the changes made since the last release. + +Each changelog entry is composed of a summary and a list of PRs (~= diff). + +The summary should be simple and concise, and only reflect most important +changes, preferably sorted by impact (new features/breaking changes that the +users will see goes first, changes that affect developers/API users should go +last). Minor changes that are related to repo maintenance can be ignored. + +Do not forget to list **ALL** the PRs that have been merged since the last +release, with the proper links. + +Note: Maybe this should be done each time a PR is marged? + + +## Step 2 + +Commit the changes made to `CHANGELOG.md`: +```sh +git commit -S -m "Release vX.Y.Z" +``` + +**THEN** tag your release, like so: +```sh +git tag -as vX.Y.Z +``` + +Git will ask to provide a tag message. All you have to do is copy/pasting the +summary from `CHANGEMLOG.md` and adapt a the formatting as required. Do not +include the list of PRs merged. + + +## Step 3 + +Once you have checked everything, push to GitHub: +```sh +git push origin master +git push upstream vX.Y.Z +``` + + +## Step 4 + +Got to GitHub to make a new release: +https://github.com/iv-org/invidious/releases/new + +Select the tag your previously created, leave `target` set to `master`, +and then copy paste the text you wrote to `CHANGELOG.md` (both the summary and +the list of PRs merged since last release). + +And then click "publish"!