mirror of
https://github.com/freedomofpress/dangerzone.git
synced 2025-04-28 18:02:38 +02:00
docs: Update release instructions
Some checks failed
Build dev environments / Build dev-env (debian-bookworm) (push) Has been cancelled
Build dev environments / Build dev-env (debian-bullseye) (push) Has been cancelled
Build dev environments / Build dev-env (debian-trixie) (push) Has been cancelled
Build dev environments / Build dev-env (fedora-40) (push) Has been cancelled
Build dev environments / Build dev-env (fedora-41) (push) Has been cancelled
Build dev environments / Build dev-env (ubuntu-20.04) (push) Has been cancelled
Build dev environments / Build dev-env (ubuntu-22.04) (push) Has been cancelled
Build dev environments / Build dev-env (ubuntu-24.04) (push) Has been cancelled
Build dev environments / Build dev-env (ubuntu-24.10) (push) Has been cancelled
Build dev environments / build-container-image (push) Has been cancelled
Tests / run-lint (push) Has been cancelled
Tests / build-container-image (push) Has been cancelled
Tests / Download and cache Tesseract data (push) Has been cancelled
Scan latest app and container / security-scan-container (push) Has been cancelled
Scan latest app and container / security-scan-app (push) Has been cancelled
Tests / windows (push) Has been cancelled
Tests / macOS (arch64) (push) Has been cancelled
Tests / macOS (x86_64) (push) Has been cancelled
Tests / build-deb (debian bookworm) (push) Has been cancelled
Tests / build-deb (debian bullseye) (push) Has been cancelled
Tests / build-deb (debian trixie) (push) Has been cancelled
Tests / build-deb (ubuntu 20.04) (push) Has been cancelled
Tests / build-deb (ubuntu 22.04) (push) Has been cancelled
Tests / build-deb (ubuntu 24.04) (push) Has been cancelled
Tests / build-deb (ubuntu 24.10) (push) Has been cancelled
Tests / install-deb (debian bookworm) (push) Has been cancelled
Tests / install-deb (debian bullseye) (push) Has been cancelled
Tests / install-deb (debian trixie) (push) Has been cancelled
Tests / install-deb (ubuntu 20.04) (push) Has been cancelled
Tests / install-deb (ubuntu 22.04) (push) Has been cancelled
Tests / install-deb (ubuntu 24.04) (push) Has been cancelled
Tests / install-deb (ubuntu 24.10) (push) Has been cancelled
Tests / build-install-rpm (fedora 40) (push) Has been cancelled
Tests / build-install-rpm (fedora 41) (push) Has been cancelled
Tests / run tests (debian bookworm) (push) Has been cancelled
Tests / run tests (debian bullseye) (push) Has been cancelled
Tests / run tests (debian trixie) (push) Has been cancelled
Tests / run tests (fedora 40) (push) Has been cancelled
Tests / run tests (fedora 41) (push) Has been cancelled
Tests / run tests (ubuntu 20.04) (push) Has been cancelled
Tests / run tests (ubuntu 22.04) (push) Has been cancelled
Tests / run tests (ubuntu 24.04) (push) Has been cancelled
Tests / run tests (ubuntu 24.10) (push) Has been cancelled
Some checks failed
Build dev environments / Build dev-env (debian-bookworm) (push) Has been cancelled
Build dev environments / Build dev-env (debian-bullseye) (push) Has been cancelled
Build dev environments / Build dev-env (debian-trixie) (push) Has been cancelled
Build dev environments / Build dev-env (fedora-40) (push) Has been cancelled
Build dev environments / Build dev-env (fedora-41) (push) Has been cancelled
Build dev environments / Build dev-env (ubuntu-20.04) (push) Has been cancelled
Build dev environments / Build dev-env (ubuntu-22.04) (push) Has been cancelled
Build dev environments / Build dev-env (ubuntu-24.04) (push) Has been cancelled
Build dev environments / Build dev-env (ubuntu-24.10) (push) Has been cancelled
Build dev environments / build-container-image (push) Has been cancelled
Tests / run-lint (push) Has been cancelled
Tests / build-container-image (push) Has been cancelled
Tests / Download and cache Tesseract data (push) Has been cancelled
Scan latest app and container / security-scan-container (push) Has been cancelled
Scan latest app and container / security-scan-app (push) Has been cancelled
Tests / windows (push) Has been cancelled
Tests / macOS (arch64) (push) Has been cancelled
Tests / macOS (x86_64) (push) Has been cancelled
Tests / build-deb (debian bookworm) (push) Has been cancelled
Tests / build-deb (debian bullseye) (push) Has been cancelled
Tests / build-deb (debian trixie) (push) Has been cancelled
Tests / build-deb (ubuntu 20.04) (push) Has been cancelled
Tests / build-deb (ubuntu 22.04) (push) Has been cancelled
Tests / build-deb (ubuntu 24.04) (push) Has been cancelled
Tests / build-deb (ubuntu 24.10) (push) Has been cancelled
Tests / install-deb (debian bookworm) (push) Has been cancelled
Tests / install-deb (debian bullseye) (push) Has been cancelled
Tests / install-deb (debian trixie) (push) Has been cancelled
Tests / install-deb (ubuntu 20.04) (push) Has been cancelled
Tests / install-deb (ubuntu 22.04) (push) Has been cancelled
Tests / install-deb (ubuntu 24.04) (push) Has been cancelled
Tests / install-deb (ubuntu 24.10) (push) Has been cancelled
Tests / build-install-rpm (fedora 40) (push) Has been cancelled
Tests / build-install-rpm (fedora 41) (push) Has been cancelled
Tests / run tests (debian bookworm) (push) Has been cancelled
Tests / run tests (debian bullseye) (push) Has been cancelled
Tests / run tests (debian trixie) (push) Has been cancelled
Tests / run tests (fedora 40) (push) Has been cancelled
Tests / run tests (fedora 41) (push) Has been cancelled
Tests / run tests (ubuntu 20.04) (push) Has been cancelled
Tests / run tests (ubuntu 22.04) (push) Has been cancelled
Tests / run tests (ubuntu 24.04) (push) Has been cancelled
Tests / run tests (ubuntu 24.10) (push) Has been cancelled
Update our release instructions with a way to run manual tasks via `doit`. Also, add developer documentation on how to use `doit`, and some tips and tricks.
This commit is contained in:
parent
54ffc63c4f
commit
fbe05065c9
2 changed files with 85 additions and 5 deletions
23
RELEASE.md
23
RELEASE.md
|
@ -76,7 +76,16 @@ Once we are confident that the release will be out shortly, and doesn't need any
|
||||||
|
|
||||||
### macOS Release
|
### macOS Release
|
||||||
|
|
||||||
This needs to happen for both Silicon and Intel chipsets.
|
> [!TIP]
|
||||||
|
> You can automate these steps from your macOS terminal app with:
|
||||||
|
>
|
||||||
|
> ```
|
||||||
|
> export APPLE_ID=<email>
|
||||||
|
> make build-macos-intel # for Intel macOS
|
||||||
|
> make build-macos-arm # for Apple Silicon macOS
|
||||||
|
> ```
|
||||||
|
|
||||||
|
The following needs to happen for both Silicon and Intel chipsets.
|
||||||
|
|
||||||
#### Initial Setup
|
#### Initial Setup
|
||||||
|
|
||||||
|
@ -217,12 +226,16 @@ Rename `Dangerzone.msi` to `Dangerzone-$VERSION.msi`.
|
||||||
|
|
||||||
### Linux release
|
### Linux release
|
||||||
|
|
||||||
> [!INFO]
|
> [!TIP]
|
||||||
> Below we explain how we build packages for each Linux distribution we support.
|
> You can automate these steps from any Linux distribution with:
|
||||||
>
|
>
|
||||||
> There is also a `release.sh` script available which creates all
|
> ```
|
||||||
> the `.rpm` and `.deb` files with a single command.
|
> make build-linux
|
||||||
|
> ```
|
||||||
|
>
|
||||||
|
> You can then add the created artifacts to the appropriate APT/YUM repo.
|
||||||
|
|
||||||
|
Below we explain how we build packages for each Linux distribution we support.
|
||||||
|
|
||||||
#### Debian/Ubuntu
|
#### Debian/Ubuntu
|
||||||
|
|
||||||
|
|
67
docs/developer/doit.md
Normal file
67
docs/developer/doit.md
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
# Using the Doit Automation Tool
|
||||||
|
|
||||||
|
Developers can use the [Doit](https://pydoit.org/) automation tool to create
|
||||||
|
release artifacts. The purpose of the tool is to automate the manual release
|
||||||
|
instructions in `RELEASE.md` file. Not everything is automated yet, since we're
|
||||||
|
still experimenting with this tool. You can find our task definitions in this
|
||||||
|
repo's `dodo.py` file.
|
||||||
|
|
||||||
|
## Why Doit?
|
||||||
|
|
||||||
|
We picked Doit out of the various tools out there for the following reasons:
|
||||||
|
|
||||||
|
* **Pythonic:** The configuration file and tasks can be written in Python. Where
|
||||||
|
applicable, it's easy to issue shell commands as well.
|
||||||
|
* **File targets:** Doit borrows the file target concept from Makefiles. Tasks
|
||||||
|
can have file dependencies, and targets they build. This makes it easy to
|
||||||
|
define a dependency graph for tasks.
|
||||||
|
* **Hash-based caching:** Unlike Makefiles, doit does not look at the
|
||||||
|
modification timestamp of source/target files, to figure out if it needs to
|
||||||
|
run them. Instead, it hashes those files, and will run a task only if the
|
||||||
|
hash of a file dependency has changed.
|
||||||
|
* **Parallelization:** Tasks can be run in parallel with the `-n` argument,
|
||||||
|
which is similar to `make`'s `-j` argument.
|
||||||
|
|
||||||
|
## How to Doit?
|
||||||
|
|
||||||
|
First, enter your Poetry shell. Then, make sure that your environment is clean,
|
||||||
|
and you have ample disk space. You can run:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
doit clean --dry-run # if you want to see what would happen
|
||||||
|
doit clean # you'll be asked to cofirm that you want to clean everything
|
||||||
|
```
|
||||||
|
|
||||||
|
Finally, you can build all the release artifacts with `doit`, or a specific task
|
||||||
|
with:
|
||||||
|
|
||||||
|
```
|
||||||
|
doit <task>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Tips and tricks
|
||||||
|
|
||||||
|
* You can run `doit list --all -s` to see the full list of tasks, their
|
||||||
|
dependencies, and whether they are up to date.
|
||||||
|
* You can run `doit info <task>` to see which dependencies are missing.
|
||||||
|
* You can change this line in `pyproject.toml` to `true`, to allow using the
|
||||||
|
Docker/Podman build cache:
|
||||||
|
|
||||||
|
```
|
||||||
|
use_cache = true
|
||||||
|
```
|
||||||
|
|
||||||
|
> [!WARNING]
|
||||||
|
> Using caching may speed up image builds, but is not suitable for release
|
||||||
|
> artifacts. The ID of our base container image (Alpine Linux) does not change
|
||||||
|
> that often, but its APK package index does. So, if we use caching, we risk
|
||||||
|
> skipping the `apk upgrade` layer and end up with packages that are days
|
||||||
|
> behind.
|
||||||
|
|
||||||
|
* You can pass the following environment variables to the script, in order to
|
||||||
|
affect some global parameters:
|
||||||
|
- `CONTAINER_RUNTIME`: The container runtime to use. Either `podman` (default)
|
||||||
|
or `docker`.
|
||||||
|
- `RELEASE_DIR`: Where to store the release artifacts. Default path is
|
||||||
|
`~/release-assets/<version>`
|
||||||
|
- `APPLE_ID`: The Apple ID to use when signing/notarizing the macOS DMG.
|
Loading…
Reference in a new issue