-
-
Notifications
You must be signed in to change notification settings - Fork 62
Releases
- F-Droid Status: https://monitor.f-droid.org/builds
- App page: https://f-droid.org/en/packages/com.forrestguice.suntimeswidget/
- Build Metadata: https://gitlab.com/fdroid/fdroiddata/blob/master/metadata/com.forrestguice.suntimeswidget.yml
- Build Logs: e.g. https://monitor.f-droid.org/builds/log/com.forrestguice.suntimeswidget/84
There isn't a set release cycle, but commits to master should be tagged early and often. For this project that means:
- at least once a month
- at most once a week
- create a release branch;
release-v#
. - update
app/build.gradle
; incrementversionCode
andversionName
; commit. - update
CHANGELOG.md
; add an entry forversionName
and list all changes; commit. - add
fastlane/metadata/android/en-US/changelogs/<versionCode>.txt
and list major highlights; commit. - build: run
gradlew build
; confirm the build completes without errors (lintVitalRelease must succeed). - lint: examine
app/build/reports/lint-results.html
; fix any major errors/warnings; commit. - create a pull request; link issues from the tracker; merge
release-v#
intomaster
(and cleanup / delete it). - tag a release
v<major>.<minor>.<patch>
; copy entries from the changelog into the release notes (highlights only). - wait for F-Droid (it takes about a week); the metadata will be modified when the release is detected, and build logs made available when it is eventually built.
F-Droid is responsible for building and publishing the app, so the following steps are optional:
- (optional) create a
signed release apk
(personal developer key); update the release. - (optional) attach GPG signatures to
ALL
download artifacts (https://wiki.debian.org/Creating%20signed%20GitHub%20releases); update the release.
- Connect a device/emulator to adb.
adb devices
- Run the SuntimesScreenshots instrumentation test:
gradlew connectedAndroidTest -Pandroid.testInstrumentationRunnerArguments.class='com.forrestguice.suntimeswidget.SuntimesScreenshots'
- Copy files from the device.
adb pull sdcard/Android/data/com.forrestguice.suntimeswidget/files/Pictures/test-screenshots/<version>/<locale>
- Upload select files to gh-pages branch; see https://gist.github.com/joncardasis/e6494afd538a400722545163eb2e1fa5.
Useful Resources
- Samsung Remote Test Lab .. remote testing
- TestObject .. remote testing
Ignore all warnings of deprecation and the lack of download
buttons in the AVD Manager, its still possible to create an obsolete virtual device for testing. While not immediately obvious (it wasn't for me), this is really easy:
- Install the obsolete sdk platform (e.g. api10) using the SDK Manager. Unlike newer releases, the older sdks bundle a copy of the emulator image.
- Create a virtual device using the AVD Manager. When selecting the system image, select "other images". Ignore warnings of deprecation and the missing download links.
- Choose from the "Gingerbread" armeabi images until the "next" button enables (this is the only visual indication that the image is available).
- Run the emulator; you might need to
adb kill-server
andadb start-server
before it shows up in the list of devices.
To get a list active timeouts:
adb shell dumpsys alarm > alarmdump.txt
https://stackoverflow.com/questions/28742884/how-to-read-adb-shell-dumpsys-alarm-output/31600886#31600886
To get the current idle state:
adb shell dumpsys deviceidle
To force the device into an idle state:
adb shell dumpsys battery unplug
adb shell dumpsys deviceidle force-idle
To restore the device to the active state:
adb shell dumpsys deviceidle unforce