Skip to content

Releasing TorOnionProxyLibrary-Android

  • Create a local release branch from master

    git checkout master
    git pull
    git checkout -b release_2.0.3
    

  • Update VERSION_NAME (remove -SNAPSHOT) in gradle.properties

    VERSION_NAME=2.0.3
    

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

    extra:
      topl_android:
        release: '2.0.3'
        next_release: 'REPLACE_WITH_NEXT_VERSION_NUMBER'
    

  • Perform a clean build

    ./gradlew clean
    ./gradlew build
    

  • Generate the Dokka docs

    rm -rf docs/topl-core docs/topl-core-base docs/topl-service-base docs/topl-service
    ./gradlew topl-core-base:dokka topl-core:dokka topl-service-base:dokka topl-service:dokka
    

  • Fix Dokka doc links

    ./gradlew fixDokkaDocLinks
    

  • Update docs/changelog.md after checking out all changes:

  • Update docs/roadmap.md with with new milestones:

  • Take one last look

    git diff
    

  • Commit all local changes and PGP sign

    git commit -S -am "Prepare 2.0.3 release"
    

  • Create a PGP signed tag, and push it

    git tag -s 2.0.3 -m "Release v2.0.3"
    git push origin 2.0.3
    

  • Make sure you have valid credentials in ~/.gradle/gradle.properties to sign and upload the artifacts

    SONATYPE_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_2.0.3
    

  • Update VERSION_NAME (increase version and add -SNAPSHOT) and VERSION_CODE in gradle.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 locally
      • mkdocs gh-deploy to deploy
      • Check settings in GitHub that it did not revert the url back to use github.io
      • Ensure docs are served Here
      • exit
    • Sign SampleApp release apks:
      • scripts/sign_sampleapp_release_build.sh
    • Go to the Draft a new release page
      • Enter the release name (2.0.3) as tag and title.
      • 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 signed release apks.