You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: docs/07_release_instructions.md
+21-3
Original file line number
Diff line number
Diff line change
@@ -222,25 +222,37 @@ Once enough time has passed and all regressions and TODOs have been solved, you
222
222
223
223
## Creating the APK
224
224
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:
226
236
227
237
- In the local repository, check out the `master` branch and make sure it is up-to-date with the remote
228
238
-`git checkout master`
229
239
-`git pull origin master`
230
240
- Open the local project in Android Studio
241
+
- Go to *Settings -> Build, Execution, Deployment -> Build Tools -> Gradle -> Gradle JDK* and select JDK 21
231
242
- Run the Gradle `clean` task using Android Studio's interface, in order to clean up temporary/cache files that may interfere with reproducible builds
232
243
- Double press Ctrl, type `gradle clean`, press Enter
233
244
- Make sure leftover files from building RC releases are actually removed, in order to avoid confusion
234
245
-`rm -rf ./app/release`
235
246
- Run the Gradle `assembleRelease` task using Android Studio's interface: it will start the process of building an unsigned APK
236
247
- Double press Ctrl, type `gradle assembleRelease`, press Enter
237
248
- 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`
238
250
239
251
## Having the APK signed by @TheAssassin
240
252
241
253
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.
-`gpg -b NewPipe_vX.X.X.apk` will generate `NewPipe_vX.X.X.apk.sig`
246
258
- 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
252
264
- He will send you back the signed APK
253
265
- Make sure its name is still `NewPipe_vX.X.X.apk` (rename if it's not the case)
254
266
- 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.
256
268
257
269
## Publishing the release
258
270
@@ -264,6 +276,12 @@ Currently @TheAssassin is the only holder of NewPipe's APK signing keys. Therefo
264
276
- Publish the release
265
277
- Profit :-D
266
278
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
+
267
285
## Blog post
268
286
269
287
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