Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Automate a large portion of our release tasks #1023

Merged
merged 6 commits into from
Dec 10, 2024
Merged

Automate a large portion of our release tasks #1023

merged 6 commits into from
Dec 10, 2024

Conversation

apyrgio
Copy link
Contributor

@apyrgio apyrgio commented Dec 4, 2024

Create a dodo.py file where we define the dependencies and targets of each release task, as well as how to run it. Currently, we have automated all of our Linux and macOS tasks, except for adding Linux packages to the respective APT/YUM repos.

The tasks we have automated are:

build_image               Build the container image using ./install/common/build-image.py
check_container_runtime   Test that the container runtime is ready.
clean_container_runtime   Clean the storage space of the container runtime.
clean_prompt              Make sure that the user really wants to run the clean tasks.
debian_deb                Build a Debian package for Debian Bookworm.
debian_env                Build a Debian Bookworm dev environment.
download_tessdata         Download the Tesseract data using ./install/common/download-tessdata.py
fedora_env                Build Fedora dev environments.
fedora_env:40             Build Fedora 40 dev environments
fedora_env:41             Build Fedora 41 dev environments
fedora_rpm                Build Fedora packages for every supported version.
fedora_rpm:40             Build a Fedora 40 package
fedora_rpm:40-qubes       Build a Fedora 40 package for Qubes
fedora_rpm:41             Build a Fedora 41 package
fedora_rpm:41-qubes       Build a Fedora 41 package for Qubes
git_archive               Build a Git archive of the repo.
init_release_dir          Create a directory for release artifacts.
macos_build_dmg           Build the macOS .dmg file for Dangerzone.
macos_check_cert          Test that the Apple developer certificate can be used.
macos_check_system        Run macOS specific system checks, as well as the generic ones.
poetry_install            Setup the Poetry environment

Closes #1016
Depends on #1021

@almet almet changed the base branch from main to 1020-ditch-ids December 4, 2024 16:05
@apyrgio apyrgio added this to the 0.9.0 milestone Dec 5, 2024
Copy link
Contributor

@almet almet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've added a few comments, but it seems good overall 👍

RELEASE.md Show resolved Hide resolved
RELEASE.md Outdated Show resolved Hide resolved
docs/developer/doit.md Outdated Show resolved Hide resolved
docs/developer/doit.md Show resolved Hide resolved
docs/developer/doit.md Outdated Show resolved Hide resolved
dodo.py Outdated Show resolved Hide resolved
dodo.py Outdated Show resolved Hide resolved
docs/developer/doit.md Outdated Show resolved Hide resolved
pyproject.toml Outdated Show resolved Hide resolved
dodo.py Outdated Show resolved Hide resolved
@apyrgio apyrgio changed the base branch from 1020-ditch-ids to main December 10, 2024 09:04
Add the doit automation tool in our `pyproject.toml` and `poetry.lock`
file as a package-related dependency, since we don't want to ship it to
our end users.
Copy link
Contributor

@almet almet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, thanks for the follow-up changes. That looks ready to be merged now :-)

Create a `dodo.py` file where we define the dependencies and targets of
each release task, as well as how to run it. Currently, we have
automated all of our Linux and macOS tasks, except for adding Linux
packages to the respective APT/YUM repos.

The tasks we have automated follow below:

    build_image               Build the container image using ./install/common/build-image.py
    check_container_runtime   Test that the container runtime is ready.
    clean_container_runtime   Clean the storage space of the container runtime.
    clean_prompt              Make sure that the user really wants to run the clean tasks.
    debian_deb                Build a Debian package for Debian Bookworm.
    debian_env                Build a Debian Bookworm dev environment.
    download_tessdata         Download the Tesseract data using ./install/common/download-tessdata.py
    fedora_env                Build Fedora dev environments.
    fedora_env:40             Build Fedora 40 dev environments
    fedora_env:41             Build Fedora 41 dev environments
    fedora_rpm                Build Fedora packages for every supported version.
    fedora_rpm:40             Build a Fedora 40 package
    fedora_rpm:40-qubes       Build a Fedora 40 package for Qubes
    fedora_rpm:41             Build a Fedora 41 package
    fedora_rpm:41-qubes       Build a Fedora 41 package for Qubes
    git_archive               Build a Git archive of the repo.
    init_release_dir          Create a directory for release artifacts.
    macos_build_dmg           Build the macOS .dmg file for Dangerzone.
    macos_check_cert          Test that the Apple developer certificate can be used.
    macos_check_system        Run macOS specific system checks, as well as the generic ones.
    poetry_install            Setup the Poetry environment

Closes #1016
Add Make targets that build release artifacts with doit.
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.
@apyrgio apyrgio merged commit fbe0506 into main Dec 10, 2024
17 checks passed
@apyrgio apyrgio deleted the 1016-doit branch December 10, 2024 13:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

Automate the main bulk of our release tasks
2 participants