Author: stevel Date: Wed Feb 25 04:22:52 2015 New Revision: 1662166 URL: http://svn.apache.org/r1662166 Log: SLIDER-760 updating the docs
Modified: incubator/slider/site/trunk/content/developing/releasing.md Modified: incubator/slider/site/trunk/content/developing/releasing.md URL: http://svn.apache.org/viewvc/incubator/slider/site/trunk/content/developing/releasing.md?rev=1662166&r1=1662165&r2=1662166&view=diff ============================================================================== --- incubator/slider/site/trunk/content/developing/releasing.md (original) +++ incubator/slider/site/trunk/content/developing/releasing.md Wed Feb 25 04:22:52 2015 @@ -72,21 +72,28 @@ Slider release. Ensure the rat check is clean. This rejects files which lack ASF headers - mvn clean apache-rat:check -Prat + mvn clean + mvn apache-rat:check -Prat ### Checking licenses Maven can check that all dependent artifacts have valid licenses -For pom-only projects (including the root slider project) +For modules which publish JARs (`slider-core` and `slider-funtest`), +run the third party check for JARs. If you run this at the top level project +it will do it for the relevant sub projects. - mvn license:aggregate-add-third-party -Dlicense.useMissingFile -for projects which publish JARs + # in slider toplevel dir + mvn license:add-third-party -Dlicense.useMissingFile + +You also need to verify that the slider-assembly module is compliant + + # in slider-assembly + mvn license:aggregate-add-third-party -Dlicense.useMissingFile - mvn license:add-third-party -Dlicense.useMissingFile This generates the metadata for licenses. Dependencies without a license are warned about. To fix this, make sure that the (generated or updated) file `src/license/THIRD-PARTY.properties` @@ -95,15 +102,19 @@ has an entry for every dependency withou ### Signing keys -Verify your PGP key is provided to Apache. +Verify your GPG key is provided to Apache. Apache verifies that distributions are correctly signed. Login to [https://id.apache.org](https://id.apache.org) and verify the -fingerprint of PGP key used to sign above is provided. (`gpg --fingerprint`) -Upload your PGP public key only to `/home/$ASF_USER/.pgpkey` +fingerprint of GPG key used to sign above is provided. (`gpg --fingerprint`) +Upload your GPG public key only to `/home/$ASF_USER/.pgpkey` scp public-key.asc people.apache.org:.pgpkey +*Tip*: if you are creating a new key, remember what password/passphrase you have +given it. Then generate a revocation certificate and store it somewhere, so +that you can revoke the published key. + ##### Note: Profiles The slider POMs offer different profiles of Hadoop versions to build against. The instructions @@ -279,10 +290,17 @@ It's handy to set up an environment with export RELARGS="-DskipTests -DskipITs -Papache-release" echo $RELARGS +The profile `apache-release` is used to select a subset of the app packages, +because the default builds of these weren't usable and had odd version numbers +too. ## Git preparation -The maven automated release adds its own git tags and pushes things up to a branch. All work must be done on a branch created for the release process, so as to not interfere with the rest of the development. You are likely to end up rolling back the branch, force-pushing changes &c, so cannot actively share the branch with anyone. +The maven automated release adds its own git tags and pushes things up to a branch. +All work must be done on a branch created for the release process, so as to +not interfere with the rest of the development. +You are likely to end up rolling back the branch, force-pushing changes etc., +so cannot actively share the branch with anyone. ### Clone the repo. @@ -308,7 +326,8 @@ In the new clone, tag the head of the br ## Test Deploy a snapshot -This pushes up a `-SNAPSHOT` version to the ASF snapshot repo. It doesn't change the POMs; it does verify that you have the basic upload settings, signing keys etc. +This pushes up a `-SNAPSHOT` version to the ASF snapshot repo. +It doesn't change the POMs; it does verify that you have the basic upload settings, signing keys etc. mvn clean deploy $RELARGS -Darguments="$RELARGS" @@ -317,10 +336,10 @@ Assuming that all the test and integrati After the upload has completed, the complete archives will be in the version-specific subdirectory of -https://repository.apache.org/content/repositories/snapshots/org/apache/slider/slider-assembly/ + https://repository.apache.org/content/repositories/snapshots/org/apache/slider/slider-assembly/ -download the uploaded `.tar.gz`, expand it and verify that it is complete. That includes +Download the uploaded `.tar.gz`, expand it and verify that it is complete. That includes 1. Verify that the file `slider-agent.tar.gz` exists. 1. Execute `bin/slider --version` @@ -335,8 +354,11 @@ Perform a dry run. This will commit chan mvn release:prepare -DdryRun=true -DautoVersionSubmodules=true -Darguments="$RELARGS" -1. This prompts for some version numbers: go with them unless you have specific choices of -versions. +1. This prompts for the version numbers for the slider version to release: use + the `slider-0.60.0-incubating` or equivalent +1. Use the same (as recommanded) +go with them unless you have specific choices of +versions. 1. Look at the output to verify the versions are what you want. 1. Roll back to the commit tagged earlier @@ -347,9 +369,9 @@ versions. mvn release:prepare -DautoVersionSubmodules=true -Darguments="$RELARGS" -Dresume=false mvn release:perform -Darguments="$RELARGS" -1. the `release:prepare` command will trigger the local commit of changes to POMs, tagging this and pushing up the branch. -2. only skip those test runs if you have been running the tests in advance. -3. the funtests work by explicitly invoking `bin\slider` in the expanded tar directory under +1. The `release:prepare` command will trigger the local commit of changes to POMs, tagging this and pushing up the branch. +2. Only skip those test runs if you have been running the tests in advance. +3. The funtests work by explicitly invoking `bin\slider` in the expanded tar directory under `../slider-assembly/target` âthat is, it doesn't download and test any `.tar.gz` artifacts uploaded during the staging process. @@ -358,19 +380,8 @@ You may be asked for your ASF git passwo Consult [StackOverflow](http://stackoverflow.com/questions/5343068/is-there-a-way-to-skip-password-typing-when-using-https-github) *rolling back* -After this phase (or when you cancel it), you'll need to roll back git, force push the change to origin, and delete any newly created `slider-XY` tag locally *and* remotely. - - mvn release:rollback - mvn clean - -If you are in a specific release-only directory (as per the instructions): +After this phase (or when you cancel it), you'll need to roll back git, - git clean -d -f -x - - -### Tip: branching instead of preparing - -The `mvn release:branch` goal can be used instead of `mvn release:prepare`, which creates a branch explicitly for the release. We haven't used this yet. ### Tip: reverting changes @@ -379,18 +390,31 @@ Try mvn release:rollback -It *may* work. Also +It *may* work. Then -1. roll back the git branch to where it was before the release actions started -changing things. -1. Force push the rolled back branch back to the git repo. +1. Via GUI/CLI Roll back the git branch to where it was before the release actions started +changing things. That should be the revision which you tagged. +1. Force push that rolled back branch back to the git repository +1. Delete any newly created `slider-XY-incubating` tag locally *and* remotely. +1. Run `mvn clean` +If you are in a specific release-only directory (as per the instructions): + + git clean -d -f -x + +### Tip: branching instead of preparing + +The `mvn release:branch` goal can be used instead of `mvn release:prepare`, +which creates a branch explicitly for the release. We haven't used this yet. + ### Tip: Validating the artifacts -There's a small projects [slider-dependency-check](https://github.com/steveloughran/slider-dependency-check) which verifies that slider artifacts can be downloaded from the public or staging repositories. Clone this project and read its instructions to verify that everything went up to the staging repo. +There's a small projects [slider-dependency-check](https://github.com/steveloughran/slider-dependency-check) +which verifies that slider artifacts can be downloaded from the public or staging repositories. +Clone this project and read its instructions to verify that everything went up to the staging repo. @@ -571,7 +595,10 @@ Releasing "can take time", as the web si ## Publishing the source and binary tar/zip files -The ASF distribution system mirrors the source and binary files across the all apache mirror sites. This the standard way which the archives are distributed. +The ASF distribution system mirrors the source and binary files across all +apache mirror sites. + +This the standard way which the archives are distributed. Publish the release as below: @@ -615,7 +642,9 @@ the patch...this has now been addressed ### Web site updates -Update the Slider website as needed. Most of the documents would have been updated by now to reflect the released version. *The remaining changes should really be modifying the references to the latest release to the new version.* +Update the Slider website as needed. Most of the documents would have been +updated by now to reflect the released version. +*The remaining changes should really be modifying the references to the latest release to the new version.* The download details for the latest release needs to be updated after mirrors are updated in .