invidious-documentation/docs/create-new-invidious-releas...

76 lines
1.9 KiB
Markdown

# 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<MAJOR>.<YYYY><MM><DD>.<PATCH>`
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"!