Skip to content

Latest commit

 

History

History
79 lines (53 loc) · 3.32 KB

README-typetools.md

File metadata and controls

79 lines (53 loc) · 3.32 KB

This is a version of Commons IO that is annotated with type annotations for the Checker Framework.

To build this project

mvn -B -Dmaven.test.skip=true package

This creates file target/commons-io-VERSION.jar.

To update to a newer version of the upstream library

Create a branch and do work thre.

At https://github.com/apache/commons-io/releases , find the commit corresponding to a public release.

Commons IO version 2.8.0 is commit fa59009aaabcf8671a8d741993ef355f42b95ccd

Pull in that commit:

git pull https://github.com/apache/commons-io <commitid>

Update the version number throughout this file.

Use the latest Checker Framework version by changing pom.xml.

Search the codebase for all uses of "@since 2.8.0" and annotate those methods/classes.

Ensure that it builds:

mvn -B -Dmaven.test.skip=true package

Make a pull request for the branch.

When merging the branch, create a merge commit (don't squash-and-merge).

In my clone of Apache's fork (used for local comparisons), pull in version 2.8.0:

git fetch origin
git checkout <commitid>

To upload to Maven Central

This must be done on a CSE machine, which has access to the necessary passwords.

Set the version number:

* in file cfMavenCentral.xml

* in file pom.xml (if different from upstream; change in 3 places)

* environment variable PACKAGE below

JAVA_HOME must be a JDK 8 JDK.

PACKAGE=commons-io-2.8.0.1 &&
mvn -B -Dmaven.test.skip=true package &&
mvn source:jar &&
mvn javadoc:javadoc && (cd target/site/apidocs && jar -cf ${PACKAGE}-javadoc.jar org)

This does not seem to work for me:

-Dhomedir=/projects/swlab1/checker-framework/hosting-info

[ ! -z "$PACKAGE" ] &&
mvn gpg:sign-and-deploy-file -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -DpomFile=cfMavenCentral.xml -Dgpg.publicKeyring=/projects/swlab1/checker-framework/hosting-info/pubring.gpg -Dgpg.secretKeyring=/projects/swlab1/checker-framework/hosting-info/secring.gpg -Dgpg.keyname=ADF4D638 -Dgpg.passphrase="cat /projects/swlab1/checker-framework/hosting-info/release-private.password" -Dfile=target/${PACKAGE}.jar
&&
mvn gpg:sign-and-deploy-file -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -DpomFile=cfMavenCentral.xml -Dgpg.publicKeyring=/projects/swlab1/checker-framework/hosting-info/pubring.gpg -Dgpg.secretKeyring=/projects/swlab1/checker-framework/hosting-info/secring.gpg -Dgpg.keyname=ADF4D638 -Dgpg.passphrase="cat /projects/swlab1/checker-framework/hosting-info/release-private.password" -Dfile=target/${PACKAGE}-sources.jar -Dclassifier=sources
&&
mvn gpg:sign-and-deploy-file -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -DpomFile=cfMavenCentral.xml -Dgpg.publicKeyring=/projects/swlab1/checker-framework/hosting-info/pubring.gpg -Dgpg.secretKeyring=/projects/swlab1/checker-framework/hosting-info/secring.gpg -Dgpg.keyname=ADF4D638 -Dgpg.passphrase="cat /projects/swlab1/checker-framework/hosting-info/release-private.password" -Dfile=target/site/apidocs/${PACKAGE}-javadoc.jar -Dclassifier=javadoc