finalize the release process with git

Project: http://git-wip-us.apache.org/repos/asf/ant-ivy/repo
Commit: http://git-wip-us.apache.org/repos/asf/ant-ivy/commit/88fd69de
Tree: http://git-wip-us.apache.org/repos/asf/ant-ivy/tree/88fd69de
Diff: http://git-wip-us.apache.org/repos/asf/ant-ivy/diff/88fd69de

Branch: refs/heads/2.4.x
Commit: 88fd69de23e82b592311f5441d7e096c8a171ad0
Parents: e469954
Author: Nicolas Lalevée <[email protected]>
Authored: Thu Oct 30 00:21:14 2014 +0100
Committer: Nicolas Lalevée <[email protected]>
Committed: Thu Nov 6 22:08:37 2014 +0100

----------------------------------------------------------------------
 doc/dev/makerelease.html | 104 +++++++++++++++++-------------------------
 1 file changed, 43 insertions(+), 61 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/88fd69de/doc/dev/makerelease.html
----------------------------------------------------------------------
diff --git a/doc/dev/makerelease.html b/doc/dev/makerelease.html
index 06ef7d1..49d8d57 100644
--- a/doc/dev/makerelease.html
+++ b/doc/dev/makerelease.html
@@ -35,23 +35,20 @@ This includes particularly:
 RELEASE_NOTES
 CHANGES
 README
-<h3>2. Create a release branch</h3>
-This will allow to work separately from other developers, in case you need any 
last modification. For a release we have 2 branches. For instance, suppose we 
create a 2.0.0-beta1 release. We have a branch for the code for all 2.0.x 
releases, this is the '2.0.x' branch. From this branch we will create the 
release branch which is for a specific release. It is possible that the 2.0.x 
branch has already been created when releasing a previous version, in that case 
the creation of this branch can be skipped.
+<h3>2. Check out a clean copy of the branch</h3>
+Run the following git command to checkout the branch, revert any change and 
remove untracked and ignored files:
 <code>
-git branch 2.0.x master
-git branch 2.0.0-beta1 2.0.x
+git checkout 2.0.x
+git reset --hard
+git clean -d -x -f
 </code>
-<h3>3. Check out the branch</h3>
-<code>
-git checkout 2.0.0-beta1
-</code>
-<h3>4. Add Ivy xsd file.</h3>
+<h3>3. Add Ivy xsd file.</h3>
 You need to store the current ivy xml schema in the documentation, so that it 
will later be accessible on public web site. To do so, run the following 
command in the directory in which you checked out the release branch:
 <code>
 ant -f build-release.xml release-xsd
 </code>
 
-<h3>5. Add release note page in the documentation.</h3>
+<h3>4. Add release note page in the documentation.</h3>
 Open the file doc/index.html with your favorite browser, and click on the plus 
button in the upper right. Choose "Release Notes" as title, and "release-notes" 
as page id. 
 
 Then edit the page (hit the first button at the upper right), and copy the 
content of the RELEASE_NOTES file. You can also add the announcement for the 
release if it's already ready.
@@ -61,28 +58,22 @@ Move the page up in the TOC using the arrow button in the 
toolbar at the upper r
 If you take the time to make the content of the release notes more "xooki 
compliant" (by removing unnecessary end of lines and adding h2 h3 and h4 tags), 
the page could then look like something like that:
 http://ant.apache.org/ivy/history/2.0.0-alpha-1.html
 
-<h3>6. Commit your changes</h3>
+And commit your changes:
 <code>
 git add doc/ivy.xsd
 git add doc/release-notes.html
 git commit -m "update templates, add release notes and ivy.xsd in 
documentation."
 </code>
-<h3>7. Check that you have no pending modifications</h3>
-<code>
-git status
-</code>
-If your working copy is clean, you can launch the release script. If it isn't, 
make sure to clean it properly. Sometimes you may need to call ant clean-all if 
you have started to work with ant builds. If you are confused about your 
working copy state, delete it and check it out again.
-<h3>8. Launch the release script</h3>
+<h3>5. Launch the release script</h3>
 <code>
 ant -f build-release.xml release
 </code>
 The status should be release only for final releases, and milestone for any 
other intermediate release.
-If anything is wrong, fix and go back to step 4.
 If the release script is successful, release artifacts will be waiting for you 
in the build/distrib directory.
-<h3>9. Verify the release</h3>
+<h3>6. Verify the release</h3>
 Check that all zips can be opened correctly, and that running 'ant' after 
unzipping the source distribution works properly.
-You can also do a smoke test with the generated ivy.jar , to see if it is able 
to resolve properly a basic module (for instance you can run some tutorials 
provided in the src/example directory in all distributions).
-<h3>10. Sign and upload the artifacts</h3>
+You can also do a smoke test with the generated ivy.jar, to see if it is able 
to resolve properly a basic module (for instance you can run some tutorials 
provided in the src/example directory in all distributions).
+<h3>7. Sign and upload the artifacts</h3>
 It's now time to sign the release artifacts and upload them to a location 
accessible by other Apache commiters.
 
 Here is a simple way to sign the files using gnupg:
@@ -100,12 +91,12 @@ end
 </code>
 Be prepared to enter your passphrase several times if you use this script, gpg 
will ask for your passphrase for each file to sign.
 
-<h3>11. Prepare the Eclipse update site</h3>
+<h3>8. Prepare the Eclipse update site</h3>
 
 To be able to test the release within IvyDE, it can be deployed in the IvyDE 
update site. See <a 
href="http://ant.apache.org/ivy/ivyde/history/trunk/dev/updatesite.html";>that 
page</a> to know how to process.
 
-<h3>12. Create the tag</h3>
-As soon as you are happy with the artifacts to be released, it is time to tag 
the svn repo
+<h3>9. Create the tag</h3>
+As soon as you are happy with the artifacts to be released, it is time to tag 
the release
 <code>
 git tag 2.0.0-beta1
 </code>
@@ -116,7 +107,7 @@ All artifacts in <tt>build/distrib</tt> except the 
<tt>maven2</tt> folder needs
 
 The artifacts should be pushed in that svn folder: 
https://dist.apache.org/repos/dist/dev/ant/ivy/$VERSION
 
-<h3>13. Call for a vote to approve the release</h3>
+<h3>10. Call for a vote to approve the release</h3>
 Cast a vote to approve the release on the [email protected] mailing list.
 
 Here is an example:
@@ -138,7 +129,7 @@ Regards,
 
 ${me}, Ivy ${version} release manager
 </code>
-<h3>14. Publish the release</h3>
+<h3>11. Publish the release</h3>
 
 If the release is approved, it's now time to make it public. The artifacts in 
the <i>dev</i> part needs to be moved into the <i>release</i> one:
 <code>
@@ -147,64 +138,55 @@ $ svn mv 
https://dist.apache.org/repos/dist/dev/ant/ivy/$VERSION https://dist.ap
 
 In order to keep the main dist area of a reasonable size, old releases should 
be removed. They will disapear from the main dist but will still be available 
via the <a href="http://archive.apache.org/dist/ant/ivy/";>archive</a>. To do 
so, just use the <tt>svn rm</tt> command against the artifacts or folders to 
remove.
 
-<h3>15. Update the web site</h3>
-Add a link to the released version documentation in the web site. 
+<h3>12. Update the web site</h3>
 
-To do so, you need to:
-<ol>
-<li>add a svn externals reference to the documentation</li>
-edit the svn properties of site/history, and in the svn:externals property, 
add a line like this one:
-<code>
-2.0.0-beta1 
https://svn.apache.org/repos/asf/ant/ivy/core/branches/2.0.0-beta1/doc
-</code>
-You should also change the latest-milestone external link.
-
-You can use "svn propedit svn:externals path/to/history" to do so.
+It's time to update the download image used on the home page and the download 
page. Use site/images/ivy-dl.xcf as a basis if you have <a 
href="http://www.gimp.org/";>gimp</a> installed. Then you can update the home 
page to refer to this image, and add a news item announcing the new version. 
Update also the download page with the new image and update the links to the 
download location (using a search/replace on the html source is recommended for 
this).
 
-Once you've changed the property, use "svn up" to checkout the proper 
documentation.
+The just release documentation should be added to the site. To do so, you need 
to:
+<ol>
 <li>edit the toc.json file in the site component of Ivy</li>
-and add something like that:
+and add a piece of json with a title and an url; note that the version in the 
url must be the same as the tag in the git repo.
 <code>
 {
    "title":"2.0.0-beta1",
    "url":"http://ant.apache.org/ivy/history/2.0.0-beta1/index.html";
 }
 </code>
-You can also edit the title of the main documentation node pointing to 
latest-milestone / latest-release if necessary.
-</ol>
-
-Then you can update the release notes page of the imported documentation if 
necessary, to include the announcement for example.
-
-It's time to update the download image used on the home page and the download 
page. Use site/images/ivy-dl.xcf as a basis if you have <a 
href="http://www.gimp.org/";>gimp</a> installed. Then you can update the home 
page to refer to this image, and add a news item announcing the new version. 
Update also the download page with the new image and update the links to the 
download location (using a search/replace on the html source is recommended for 
this).
-
-All site editing being done, commit your changes.
-
-And now let's generate the site and deploy it:
-<ol>
-    <li>generate the part of the site for the new version:</li>
+<li>generate the part of the site for the new version:</li>
 <code>
+ant checkout-history -Dhistory.version=2.0.0-beta1
 ant generate-history -Dhistory.version=2.0.0-beta1
 </code>
-<u>WARNING:</u> that target is modifiying the toc.json in the imported branch 
so that the generated html have a proper version declared in the toc. You 
should not commit that change. Once the site has been generated, you may want 
to revert the changes so you won't commit it by mistake. (TODO: process to 
improve so we shouldn't worry).
-    <li>generate the website with the new toc:</li>
+<li>if the 'latest-milestone' needs to be update too, run:</li>
 <code>
-ant /all generate-site
+ant checkout-history -Dhistory.version=2.0.0-beta1 
-Dtarget.history.folder=latest-milestone
 </code>
-    <li>you should verify that the site generated in the production directory 
is OK. And once your happy with it, commit the changes (some svn add might be 
needed !)</li>
 </ol>
 
-<h3>16. Deploy the Eclipse updatesite</h3>
+Now let's generate the website with the new toc:
+<code>
+ant /all generate-site
+</code>
+
+You should verify that the site generated in the production directory is OK. 
You can open the files with your prefered web browser like it was deployed.
+
+And once your happy with it, commit the changes in the source directory, and 
in the production directoy to get it actually deployed via svnpubsub.
+
+Tip: lot's of files might need to be 'added' to svn. An handy command to 
<tt>add</tt> any file which is not yet under version control is the following 
one:
+<code>svn add --force sources</code>
+
+<h3>13. Deploy the Eclipse updatesite</h3>
 
 If the Eclipse update site has already been prepared to include that new Ivy 
release, it is now needed to be deployed. Then follow the deployment 
instruction on <a 
href="http://ant.apache.org/ivy/ivyde/history/trunk/dev/updatesite.html";>that 
page</a>.
 
-<h3>17. Announce</h3>
+<h3>14. Announce</h3>
 Announce the release on the [email protected], [email protected], [email protected] 
and [email protected] mailing lists.
 You can also announce the release on popular web sites, like freshmeat.net 
(xavier is the owner of the Ivy project on freshmeat), javalobby.org, 
theserverside.com, dzone.com, ...
-<h3>16. Update this doc</h3>
+<h3>15. Update this doc</h3>
 If you feel like anything is missing or misleading in this release doc, update 
it as soon as you encounter the problem.
-<h3>17. Merge your modifications back to the trunk if necessary.</h3>
+<h3>16. Merge your modifications back to the trunk if necessary.</h3>
 Modifications on the template files do not need to be merged, but if you had 
troubles during your release you may want to merge your fixes back to the trunk.
-<h3>18. Prepare next release</h3>
+<h3>17. Prepare next release</h3>
 Update the file version.properties with the version of the next release so 
that anyone building from the trunk will obtain jar with the correct version 
number.
 
 Release the version in <a 
href="https://issues.apache.org/jira/browse/IVY";>jira</a>, and create a new 
unreleased version for the next planned version.</textarea>

Reply via email to