aboutsummaryrefslogtreecommitdiffstats
path: root/release/README.md
blob: 5e18ceaed40e34836d7e86e8d905ff5eb10a08ef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# Release Checklist

These steps assume you are on the correct branch and have a git remote called `origin` that points to the `mitmproxy/mitmproxy` repo. If necessary, create a major version branch starting off the release tag (e.g. `git checkout -b v4.x v4.0.0`) first.

- Update CHANGELOG.
- Verify that the compiled mitmweb assets are up-to-date.
- Verify that all CI tests pass.
- Verify that `mitmproxy/version.py` is correct. Remove `.dev` suffix if it exists.
- Tag the release and push to Github.
    - `git tag v4.0.0`
    - `git push origin v4.0.0`
- Wait for tag CI to complete.

### GitHub Releases
- Create release notice on Github
  [here](https://github.com/mitmproxy/mitmproxy/releases/new) if not already
  auto-created by the tag.
- We DO NOT upload release artifacts to GitHub anymore. Simply add the
  following snippet to the notice:
  `You can find the latest release packages at https://mitmproxy.org/downloads/.`

### PyPi
- The created wheel is uploaded to PyPi automatically.
- Please verify that https://pypi.python.org/pypi/mitmproxy has the latest version.

### Homebrew
- The Homebrew maintainers are typically very fast and detect our new relese
  within a day.
- If you feel the need, you can run this from a macOS machine:
  `brew bump-formula-pr --url https://github.com/mitmproxy/mitmproxy/archive/v<version number here>`

### Docker
- The docker image is built by our CI workers and pushed to Docker Hub automatically.
- Please verify that https://hub.docker.com/r/mitmproxy/mitmproxy/tags/ has the latest version.
- The latest tag should auto-update. @mhils introduced this after the 5.0.0 release.
  Please verify that this is the case and remove this notice. For reference, this is how to do it manually:
  `export VERSION=4.0.3 && docker pull mitmproxy/mitmproxy:$VERSION && docker tag mitmproxy/mitmproxy:$VERSION mitmproxy/mitmproxy:latest && docker push mitmproxy/mitmproxy:latest`.

### Docs
  - `./build.sh`. If everything looks alright, continue with
  - `./upload-stable.sh`,
  - `DOCS_ARCHIVE=true ./build.sh`, and
  - `./upload-archive.sh v4`. Doing this now already saves you from switching back to an old state on the next release.

### Website
 - Update version here:
   https://github.com/mitmproxy/www/blob/master/src/config.toml
 - Update docs menu here:
   https://github.com/mitmproxy/www/blob/master/src/themes/mitmproxy/layouts/partials/header.html
 - Run `./build && ./upload-test`.
 - If everything looks alright at https://www-test.mitmproxy.org, run `./upload-prod`.


### Prepare for next release
 - Last but not least, bump the major version on master in
   [https://github.com/mitmproxy/mitmproxy/blob/master/mitmproxy/version.py](mitmproxy/version.py) and add a `.dev` suffix.