76 lines
1.9 KiB
Markdown
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"!
|