Skip to content

Latest commit

 

History

History
86 lines (69 loc) · 2.43 KB

File metadata and controls

86 lines (69 loc) · 2.43 KB

Developer documentation

Making a release

Requirements

Your ~/.gradle/gradle.properties file must contain:

signing.keyId=...
signing.password=...
signing.secretKeyRingFile=...
mavenCentralUsername=...
mavenCentralPassword=...

Steps

Run these steps on any filesystem, except the javadocWeb step.

  • Make and test a snapshot release, see below.

  • git pull

  • Update CHANGELOG.md.

  • Update the version number in README.md, gradle.properties, and this file (possibly multiple times in each).

  • Save files and stage changes.

  • ./gradlew publishToMavenCentral

  • Browse to https://central.sonatype.com/publishing/deployments, click "publish".

  • Add a git tag and commit:

    VER=1.14.0 && \
    git commit -m "Version $VER" && git push && \
    git tag -a v$VER -m "Version $VER" && git push && git push --tags
  • Make a GitHub release.

    • Browse to https://github.com/plume-lib/plume-util/releases
    • Click "draft a new release"
    • Call it "plume-util 1.14.0"
    • Use the text from CHANGELOG.md as the description
    • Attach the .jar and -all.jar files from build/libs/
    • Click "publish release"
  • Finally, run on the CSE filesystem: git pull && ./gradlew javadocWeb

  • Update clients and test, so that if it's broken we can re-release.

Making a snapshot release

  • git pull

  • Set version number in gradle.properties to end in "-SNAPSHOT".

  • Make the snapshot release.

    • Approach 1: to Maven Central

      • ./gradlew publishToMavenCentral

      • In the clients' build.gradle: set version number and use:

          repositories {
            maven { url = uri("https://central.sonatype.com/repository/maven-snapshots/") }
          }
          configurations.all {
            resolutionStrategy.cacheChangingModulesFor(0, "minutes")
          }
    • Approach 2: to Maven Local

      • ./gradlew publishToMavenLocal

      • In the clients' build.gradle: set version number and use:

          repositories {
            mavenLocal()
          }
  • Test the test snapshot release on some clients:

    • For the Checker Framework (don't skip running the tests):

      # This ensures that the correct JDK is being used
      usecf THE-BRANCH-THAT-USES-THE-SNAPSHOT
      cd $cf
      checker/bin-devel/test-cftests-all.sh && checker/bin-devel/test-typecheck.sh && \
      checker/bin-devel/test-plume-lib.sh
  • For Daikon: make compile junit test