-
-
Notifications
You must be signed in to change notification settings - Fork 65
Releases
Forrest Guice edited this page Feb 26, 2022
·
21 revisions
- Repository page: https://f-droid.org/en/packages/com.forrestguice.suntimeswidget/
- Build Metadata: https://gitlab.com/fdroid/fdroiddata/blob/master/metadata/com.forrestguice.suntimeswidget.yml
- F-Droid Status page: https://monitor.f-droid.org/builds
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 (
prep-release-v#
). - increment
versionCode
andversionName
; commit. - update the changelog; add
versionName
andreleaseDate
; commit; - run lint: fix major errors/warnings; commit.
- build w/ cmd line:
gradlew build
; confirm the build completes without errors (lintVitalRelease succeeds). - install and test the signed release apk on an actual device.
- if there's a bug.. fix it on the
master
branch, sync theprep-release
branch, and retest the build (repeat 4, 5, and 6 until happy).
- if there's a bug.. fix it on the
- create a pull request; merge
prep-release
intomaster
(and cleanup / delete it). - draft a new release; in the release notes summarize the major entries to the changelog (highlights only).
- publish the release; each release is tagged with
v<major>.<minor>.<patch>
. - wait for fdroid to detect the new release; monitor the fdroid wiki page for build errors (https://f-droid.org/wiki/index.php?title=com.forrestguice.suntimeswidget/lastbuild&redirect=no).
- (optional) create a
signed release apk
(using your personal developer key); update the release. - (optional) if creating a
signed release apk
, attach your GPG signature toALL
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