Skip to content

Commit ed03f04

Browse files
authored
Merge pull request #49 from TeamNewPipe/release-instructions-jdk21-fdroiddata
Update release instructions to ensure JDK 21 and explain F-Droid MR
2 parents 18b5e0c + f7286ce commit ed03f04

File tree

1 file changed

+21
-3
lines changed

1 file changed

+21
-3
lines changed

docs/07_release_instructions.md

+21-3
Original file line numberDiff line numberDiff line change
@@ -222,25 +222,37 @@ Once enough time has passed and all regressions and TODOs have been solved, you
222222

223223
## Creating the APK
224224

225-
Now on the remote `master` branch there is the release code which you need to turn into an APK.
225+
Now on the remote `master` branch there is the release code which you need to turn into an APK. The APK needs to be built with **JDK 21**, [as agreed with the F-Droid team](https://github.com/TeamNewPipe/NewPipe/issues/11754), to ensure reproducibility.
226+
227+
You should build the APK using the `build-release-apk` CI workflow:
228+
229+
- Go to the [workflow's page](https://github.com/TeamNewPipe/NewPipe/actions/workflows/build-release-apk.yml)
230+
- The page will say "This workflow has a `workflow_dispatch` event trigger.", click on "Run workflow" on the right
231+
- In the "Use workflow from" prompt, don't change anything (i.e. use `dev`); the workflow uses the last commit from the `master` branch in any case!
232+
- Wait for the workflow to finish
233+
- Download `app.zip` from the workflow artifacts, extract the APK from the archive, and make sure it is called `NewPipe_vX.X.X.apk`
234+
235+
*In alternative*, in case something is wrong with the CI or you don't have permission to run the workflow, follow these steps to build with Android Studio:
226236

227237
- In the local repository, check out the `master` branch and make sure it is up-to-date with the remote
228238
- `git checkout master`
229239
- `git pull origin master`
230240
- Open the local project in Android Studio
241+
- Go to *Settings -> Build, Execution, Deployment -> Build Tools -> Gradle -> Gradle JDK* and select JDK 21
231242
- Run the Gradle `clean` task using Android Studio's interface, in order to clean up temporary/cache files that may interfere with reproducible builds
232243
- Double press Ctrl, type `gradle clean`, press Enter
233244
- Make sure leftover files from building RC releases are actually removed, in order to avoid confusion
234245
- `rm -rf ./app/release`
235246
- Run the Gradle `assembleRelease` task using Android Studio's interface: it will start the process of building an unsigned APK
236247
- Double press Ctrl, type `gradle assembleRelease`, press Enter
237248
- After a while you should find the APK under `./app/build/outputs/apk/release/app-release-unsigned.apk`
249+
- Rename `app-release-unsigned.apk` to `NewPipe_vX.X.X.apk`
238250

239251
## Having the APK signed by @TheAssassin
240252

241253
Currently @TheAssassin is the only holder of NewPipe's APK signing keys. Therefore you should send the unsigned APK to him, after which he will sign it and send it back to you. He will also then publish the signed APK in NewPipe's F-Droid repo.
242254

243-
- Rename `app-release-unsigned.apk` to `NewPipe_vX.X.X.apk`
255+
- Make sure the APK is called `NewPipe_vX.X.X.apk`
244256
- Generate a signature for the APK file
245257
- `gpg -b NewPipe_vX.X.X.apk` will generate `NewPipe_vX.X.X.apk.sig`
246258
- It will also output 'using "FINGERPRINT" as default secret key for signing'; keep track of the `FINGERPRINT` part
@@ -252,7 +264,7 @@ Currently @TheAssassin is the only holder of NewPipe's APK signing keys. Therefo
252264
- He will send you back the signed APK
253265
- Make sure its name is still `NewPipe_vX.X.X.apk` (rename if it's not the case)
254266
- Install it on your device to see if everything went well (note that installation will work only if your currently installed version of newpipe comes from NewPipe's F-Droid repo or GitHub)
255-
- Tell @TheAssassin to "push the buttons", i.e. publish the signed APK in NewPipe's F-Droid repo.
267+
- **Tell @TheAssassin to "push the buttons"**, i.e. publish the signed APK in NewPipe's F-Droid repo.
256268

257269
## Publishing the release
258270

@@ -264,6 +276,12 @@ Currently @TheAssassin is the only holder of NewPipe's APK signing keys. Therefo
264276
- Publish the release
265277
- Profit :-D
266278

279+
## Updating the official F-Droid repository
280+
281+
- You should open a Merge Request similar to [this one](https://gitlab.com/fdroid/fdroiddata/-/merge_requests/15367) on the [fdroiddata](https://gitlab.com/fdroid/fdroiddata) repository
282+
- Follow [these instructions](https://f-droid.org/en/docs/Reproducible_Builds/#publish-both-upstream-developer-signed-and-f-droid-signed-apks) to extract signatures from the APK
283+
- This step is not mandatory, as the F-Droid team will take care when they notice the new release, but it is better if we do not burden them with more work
284+
267285
## Blog post
268286

269287
The blog post writers need an up-to-date list of merged PRs numbered in chronological order. This is so that they can keep track of what changes have already been detailed in the draft blog post, and which ones still need to be added. So make sure that there is always at least one up-to-date "master copy" of the draft release notes available for them to review.

0 commit comments

Comments
 (0)