Repository: incubator-datafu Updated Branches: refs/heads/master be4a95f7a -> 13bae3661
DATAFU-111 Update RELEASE.md with instructions for publishing to maven Project: http://git-wip-us.apache.org/repos/asf/incubator-datafu/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-datafu/commit/13bae366 Tree: http://git-wip-us.apache.org/repos/asf/incubator-datafu/tree/13bae366 Diff: http://git-wip-us.apache.org/repos/asf/incubator-datafu/diff/13bae366 Branch: refs/heads/master Commit: 13bae36617a6265c3043dfff387e0793ab14124c Parents: be4a95f Author: Matthew Hayes <matthew.terence.ha...@gmail.com> Authored: Mon Dec 7 18:21:57 2015 -0800 Committer: Matthew Hayes <matthew.terence.ha...@gmail.com> Committed: Mon Dec 7 18:21:57 2015 -0800 ---------------------------------------------------------------------- RELEASE.md | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 64 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-datafu/blob/13bae366/RELEASE.md ---------------------------------------------------------------------- diff --git a/RELEASE.md b/RELEASE.md index 5405b8c..11e5dd0 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -76,7 +76,7 @@ If you have configured your key information in your `gradle.properties` then you If you have GPG v2 installed then you'll need to use `gpg2` instead. -## Upload the release +## Upload the Source Release You should make the release available in your folder under `people.apache.org`. For example, if you are releasing release candidate RC0 for version `x.y.z` then you should upload the source distribution files to: @@ -94,13 +94,50 @@ Then push the tag: git push origin release-x.y.z-rc0 +## Staging artifacts in Maven + +General information on publishing to Maven can be found [here](http://www.apache.org/dev/publishing-maven-artifacts.html). To upload the archive to the Apache Nexus staging repository, run: + + ./gradlew uploadArchives -Prelease=true -PnexusUsername=yourNexusUsername -PnexusPassword=yourNexusPassword -Psigning.keyId=yourGpgKeyId -Psigning.password=yourGpgSigningPassword + +Note that if you are running the above command from a source release you don't need `-Prelease=true`. + +If you now visit the [Apache Nexus Repository](https://repository.apache.org) and click on Staging Repositories, you should see a repository named orgapachedatafu-xxxx, where xxxx is some number. Select the repository and browse the content to make sure the set of files looks right. If it looks correct then Close the repository. The repository is now ready for testing. If you look at the summary there is a URL for the repository that may be used to fetch the archives. + +Let's suppose you have a Gradle project you'd like to use to test DataFu. You can add the URL for the Staging Repository to your `build.gradle` like this: + + repositories { + mavenCentral() + maven { + url 'https://repository.apache.org/content/repositories/orgapachedatafu-xxxx' + } + } + +You can now depend on the versions of the archives in this Staging Repository in your `build.gradle`: + + dependencies { + compile "org.apache.datafu:datafu-pig-incubating:x.y.z" + compile "org.apache.datafu:datafu-hourglass-incubating:x.y.z" + } + +You could also visit the Staging Repository URL in your browser and download the files for testing. + +## Call for a vote to release + +At this point you should have: + +1. Published a source release for testing +2. Staged artifacts in Nexus built from that source archive for testing + +Now you can call a vote in the DataFu dev mailing list for release. Look in the archives at previous votes for an example. If the vote passes then you may call a vote in the Incubator general mailing list (this is necessary because DataFu is still incubating). + ## Testing the source release Once you have built the source tarball, you should verify that it can be used. Follow the instructions in the `README.md` file assuming you are someone who has just downloaded the source tarball and want to use it. -## Releasing to your local Maven repository +### Releasing to your local Maven repository -You may want to release binaries to your local Maven repository under your home directory to do additional testing. To do so, run: +You may want to release binaries to your local Maven repository under your home directory to do local testing against it. To do so, run: ./gradlew install -Prelease=true @@ -109,3 +146,27 @@ You should be able to see all the installed artifacts in the local repository no find ~/.m2/repository/org/apache/datafu/ Again, setting `release=true` prevents `-SNAPSHOT` from being appended to the version. + +## Publishing the release + +Once the Incubator general vote has passed, you can publish the source release and artifacts. + +### Source release + +The DataFu source release are checked into SVN under [https://dist.apache.org/repos/dist/release/incubator/datafu](https://dist.apache.org/repos/dist/release/incubator/datafu). + +To see all the previous releases: + + svn list https://dist.apache.org/repos/dist/release/incubator/datafu + +Create a directory for the release (replace `x.y.z` with the release number): + + svn mkdir https://dist.apache.org/repos/dist/release/incubator/datafu/apache-datafu-incubating-x.y.z + svn co https://dist.apache.org/repos/dist/release/incubator/datafu apache-datafu-incubating-x.y.z-release + cd apache-datafu-incubating-x.y.z-release + +Now copy the source release files into this directory and commit them. Within 24 hours they will be distributed to the mirrors. Then it should be available for download at `http://www.apache.org/dyn/closer.cgi/incubator/datafu/apache-datafu-incubating-x.y.z/`. + +### Artifacts + +To distribute the artifacts, simple select the staged repository for DataFu that you prepared in Nexus and chooose Release. They should then be available within the next day or so in the [central repository](http://search.maven.org/). \ No newline at end of file