thunderbird / thunderbird/thunderbird-android

Automate f-droid releases

Open
#9,395 1 comment 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

type: developer experience
Dominant language
Kotlin
Stars
14k
Forks
2.8k
Avg merge
3d 3h
Merged PRs (30d)
57

Description

I think we should take care of this now, otherwise we'll never do it and it will be annoying every time. We currently need to submit f-droid builds manually. There is an opportunity to automate it based on tag updates, but our files aren't ready for this because it uses regex. I think we have two options:

1) Adjust build files to a regexable format

Upside here is that it is all automated, we adjust our version files once and then f-droid does the rest. Downside is that once we tag (which is early), f-droid will pick it up, so we have no way to hold a build. We should make sure that the regex is fairly stable, so that we don't accidentally break this by changing something in build.gradle.kts and it maybe picks up the wrong version.

2) Add a build step after publish_hold that will send a pull request to f-droid

Upside is that we do it after the publish_hold step and it is similar to the play store review. Downside is they have to manually review each pull request.

3) Defer tagging in our builds until after publish_hold
  • Make it so that tagging only actually happens after the publish_hold is confirmed
  • Continue same steps as in (1)

Upside is that we can hold builds also for those who use FFUpdater or similar. The build is only considered a release once the publish step completes. We get the upsides from (1) as well. The only downside is that this is more effort since we're making some major adjustments to our release process.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by comparing the F-Droid Build Metadata Reference with the current build.gradle.kts and release process around publish_hold. Evaluate the three proposed approaches, including tag patterns, version.txt or build.gradle.kts updates, and fdroiddata pull requests. Done means F-Droid builds are automated while the project can still control when releases become available.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, kotlin
Domain
build-system, ci-cd, release
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.