forked from upstream-mirrors/OpenTracks
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5857c0032e | |||
| d086aa3c06 | |||
| fba09bcc3a | |||
| 3ce0e2cede |
+19
-27
@@ -2,39 +2,31 @@
|
||||
|
||||
## Craft new releases
|
||||
|
||||
1. Get next _version code_ (main): `git rev-list HEAD --count main`
|
||||
2. Decide on _version name_ (semantic versioning)
|
||||
3. Manually update _version code_ and _version name_ in `build.gradle`
|
||||
4. Create changelog (`_version code_.txt`)
|
||||
5. Create commit with all changes
|
||||
6. Tag newly create commit with _version name_ (e.g., v3.2.1)
|
||||
7. Push commits and tags to public repository
|
||||
8. Add changelog to tag (Github releases)
|
||||
1. Execute use `RELEASE.sh`.
|
||||
2. Push to Github
|
||||
3. Create release on Github (incl. changelog)
|
||||
This actually creates a tag that is later used by F-Droid
|
||||
4. Pull from Github
|
||||
5. Build reproducible release and attach to release
|
||||
6. ... wait until reproducibility is verified by F-Droid
|
||||
|
||||
## F-Droid
|
||||
Application id: de.dennisguse.opentracks
|
||||
Two releases will be created:
|
||||
* Application id: `de.dennisguse.opentracks` (irreproducible)
|
||||
* Application id: `de.dennisguse.opentracks.playstore` (reproducible)
|
||||
|
||||
It if it properly tagged F-Droid takes care of building the app and publishing.
|
||||
Usually, it takes two days before the update is published (build, signed, and published).
|
||||
For F-Droid the build status can be found [here](https://monitor.f-droid.org/builds/build).
|
||||
|
||||
The recent build activity can be found [here](https://monitor.f-droid.org/builds/build)
|
||||
## Reproducible builds
|
||||
|
||||
## Google Play Store
|
||||
Application id: `de.dennisguse.opentracks.playstore`
|
||||
A lot of detailed information can be found [here](https://f-droid.org/docs/Reproducible_Builds/)
|
||||
|
||||
Requirement: `gem install fastlane`
|
||||
|
||||
1. Build signed apk
|
||||
(requires keystore)
|
||||
2. Upload signed apk to [Google Play Console](https://play.google.com/apps/publish)
|
||||
3. Update store meta data (e.g., description and screenshots)
|
||||
`fastlane metadata`
|
||||
(requires API key configured in `Appfile`)
|
||||
|
||||
Supported languages: https://support.google.com/googleplay/android-developer/table/4419860
|
||||
Technical requirements:
|
||||
* Must be build using OpenJDK17
|
||||
|
||||
## Translations (localization)
|
||||
|
||||
Translations of the OpenTracks are handled in
|
||||
Weblate: [https://hosted.weblate.org/projects/opentracks/](https://hosted.weblate.org/projects/opentracks)
|
||||
.
|
||||
Weblate: [https://hosted.weblate.org/projects/opentracks/](https://hosted.weblate.org/projects/opentracks).
|
||||
|
||||
## Google Play Store
|
||||
Supported languages: https://support.google.com/googleplay/android-developer/table/4419860
|
||||
Executable
+28
@@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64/
|
||||
|
||||
JAVA_VERSION=`java --version`
|
||||
if [[ $JAVA_VERSION != "openjdk 17."* ]]; then
|
||||
echo "OpenJDK version should be 17.X"
|
||||
exit -1;
|
||||
fi
|
||||
|
||||
RELEASE_STORE_PASSWORD=
|
||||
read -s -p "Enter store password: " RELEASE_STORE_PASSWORD
|
||||
echo ""
|
||||
read -s -p "Enter key alias: " RELEASE_KEY_ALIAS
|
||||
echo ""
|
||||
read -s -p "Enter key password: " RELEASE_KEY_PASSWORD
|
||||
echo ""
|
||||
|
||||
./gradlew --no-configuration-cache \
|
||||
clean \
|
||||
assembleReproducibleRelease \
|
||||
-Drelease_store_file=`ls ../*.jks` \
|
||||
-Drelease_store_file="../keystore_opentracks.jks" \
|
||||
-Drelease_store_password="$RELEASE_STORE_PASSWORD" \
|
||||
-Drelease_key_alias="$RELEASE_KEY_ALIAS" \
|
||||
-Drelease_key_password="$RELEASE_KEY_PASSWORD"
|
||||
+13
-4
@@ -64,8 +64,8 @@ android {
|
||||
|
||||
defaultConfig {
|
||||
applicationId 'de.dennisguse.opentracks'
|
||||
versionCode 5985
|
||||
versionName "v4.17.4"
|
||||
versionCode 5989
|
||||
versionName "v4.17.5"
|
||||
|
||||
buildConfigField "String", "VERSION_NAME_FULL", "\"${getVersionName()}\""
|
||||
|
||||
@@ -84,6 +84,14 @@ android {
|
||||
keyPassword System.getProperty('nightly_key_password')
|
||||
}
|
||||
}
|
||||
release {
|
||||
if (System.getProperty("release_store_file") != null) {
|
||||
storeFile file(System.getProperty("release_store_file"))
|
||||
storePassword System.getProperty("release_store_password")
|
||||
keyAlias System.getProperty("release_key_alias")
|
||||
keyPassword System.getProperty("release_key_password")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
namespace 'de.dennisguse.opentracks'
|
||||
@@ -113,12 +121,13 @@ android {
|
||||
applicationId 'de.dennisguse.opentracks'
|
||||
versionNameSuffix 'irreproducible'
|
||||
}
|
||||
reproducible {
|
||||
reproducible {
|
||||
// Developer Binaries: https://github.com/OpenTracksApp/OSMDashboard/releases/download/v%v/de.dennisguse.opentracks.playstore_%v.apk
|
||||
// FDroid: https://f-droid.org/de/packages/de.dennisguse.opentracks.playstore
|
||||
// PlayStore: https://play.google.com/store/apps/details?id=de.dennisguse.opentracks.playstore
|
||||
dimension 'version'
|
||||
applicationId 'de.dennisguse.opentracks.playstore'
|
||||
signingConfig signingConfigs.release
|
||||
}
|
||||
}
|
||||
|
||||
@@ -132,7 +141,7 @@ android {
|
||||
outputFileName = "${applicationId}_${variant.versionCode}.apk"
|
||||
}
|
||||
|
||||
if (variant.flavorName== 'nightly') {
|
||||
if (variant.flavorName == 'nightly') {
|
||||
setVersionCodeOverride(getVersionCode())
|
||||
setVersionNameOverride(getVersionName())
|
||||
}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
v4.17.5: OpenTracks
|
||||
|
||||
Changes:
|
||||
- Reproducible build: let's see if it works.
|
||||
|
||||
Bugfix:
|
||||
- Reproducible build uses PlayStore icon.
|
||||
|
||||
Developer:
|
||||
- Added RELEASE_BUILD.sh
|
||||
Reference in New Issue
Block a user