Releasing PinAuthentication¶
-
Create a local release branch from
master
git checkout master git pull git checkout -b release_1.0.0-beta02
-
Update
VERSION_NAME
(remove-SNAPSHOT
) ingradle.properties
VERSION_NAME=1.0.0-beta02
-
Update the current version and next version in
mkdocs.yml
extra: pin_authentication: release: '1.0.0-beta02' next_release: 'REPLACE_WITH_NEXT_VERSION_NUMBER'
-
Generate the Dokka docs
rm -rf docs/pin-authentication ./gradlew pin-authentication:dokka
-
Update the Demo App if changes were made to documentation in the
PinAuthentication
class:scripts/comments_to_string_resource.sh && gedit scripts/output.txt scripts/output.bak.txt demo/src/main/res/values/strings.xml
- Tweak the strings to 45-50 characters per line & add headers
- ex:
\n//////////// Listeners ////////////\n
- ex:
- Copy/Paste new strings into
demo/src/main/res/values/strings.xml
resource file fieldstext_view_settings_features
text_view_controller_features
- Save files
- Delete
output.bak.txt
rm -rf scripts/output.bak.txt
- Tweak the strings to 45-50 characters per line & add headers
-
Update
docs/changelog.md
after checking out all changes: -
Take one last look
git diff
-
Commit all local changes and PGP sign
git commit -S -am "Prepare 1.0.0-beta02 release"
-
Perform a clean build
./gradlew clean ./gradlew build
-
Sign the Demo App release apk
scripts/sign_demo_release_build.sh
-
Install the Demo App’s release.apk and ensure it works properly.
-
Create a PGP signed tag, and push it
git tag -s 1.0.0-beta02 -m "Release v1.0.0-beta02" git push origin 1.0.0-beta02
-
Make sure you have valid credentials in
~/.gradle/gradle.properties
to sign and upload the artifactsSONATYPE_NEXUS_USERNAME=<Your Username> SONATYPE_NEXUS_PASSWORD=<Your Password> signing.gnupg.homeDir=/home/matthew/.gnupg/ signing.gnupg.optionsFile=/home/matthew/.gnupg/gpg.conf signing.gnupg.keyName=0x61471B8AB3890961
-
Upload the artifacts to Sonatype OSS Nexus
./gradlew uploadArchives --no-daemon --no-parallel
-
Release to Maven Central
- Login to Sonatype OSS Nexus: oss.sonatype.org
- Click on Staging Repositories
- Scroll to the bottom, you should see an entry named
iomatthewnelson-XXXX
- Check the box next to the
iomatthewnelson-XXXX
entry, click Close then Confirm - Wait a bit, hit Refresh, until the Status for that column changes to Closed.
- Check the box next to the
iomatthewnelson-XXXX
entry, click Release then Confirm
-
Merge the release branch to master
git checkout master git pull git merge --no-ff -S release_1.0.0-beta02
-
Update
VERSION_NAME
(increase version and add-SNAPSHOT
) andVERSION_CODE
ingradle.properties
VERSION_NAME=REPLACE_WITH_NEXT_VERSION_NUMBER-SNAPSHOT VERSION_CODE=INCREMENT
-
Commit your changes and sign with PGP keys
git commit -S -am "Prepare for next development iteration"
-
Push your changes
git push
-
Wait for the release to become available on Maven Central, then:
- Redeploy the docs:
pipenv shell
mkdocs serve
to check locallymkdocs gh-deploy
to deployexit
- Go to the Draft a new release page, enter the release name (1.0.0-beta02) as tag and title, and have the description point to the changelog. You can find the direct anchor URL from the Change Log page on the doc site.
- Upload the
demo-release-signed.apk
to assets
- Redeploy the docs:
-
Release the Demo App to the Play Store