Skip to content

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) in


  • Update the current version and next version in mkdocs.yml

        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/ && 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
    • Copy/Paste new strings into demo/src/main/res/values/strings.xml resource file fields
      • text_view_settings_features
      • text_view_controller_features
    • Save files
    • Delete output.bak.txt
      rm -rf scripts/output.bak.txt
  • Update docs/ 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


  • 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/ to sign and upload the artifacts


  • Upload the artifacts to Sonatype OSS Nexus

    ./gradlew uploadArchives --no-daemon --no-parallel

  • Release to Maven Central

    • Login to Sonatype OSS Nexus:
    • 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) and VERSION_CODE in


  • 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 locally
      • mkdocs gh-deploy to deploy
      • exit
    • 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
  • Release the Demo App to the Play Store