db-derby-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Db-derby Wiki] Update of "DerbySnapshotOrRelease" by KristianWaagan
Date Mon, 26 Apr 2010 14:46:07 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Db-derby Wiki" for change notification.

The "DerbySnapshotOrRelease" page has been changed by KristianWaagan.
http://wiki.apache.org/db-derby/DerbySnapshotOrRelease?action=diff&rev1=145&rev2=146

--------------------------------------------------

   
  
   1. Deploy to Maven repository.
+ 
+   The detailed instructions for deploying Maven 2 artifacts to the Maven repositories are
located in the Derby source tree as `maven2/README.txt`.
+   Below is a brief overview of the process.
+ 
+   a. If you do not already have the latest Maven 2 distribution, [[http://maven.apache.org/download.html|download
it]], unpack it, and put the bin directory into your path so that you can run Maven commands.
You also need GnuPG and ssh/scp.
+ 
+    {i} As of this writing, the latest 2.x version of Maven was 2.2.1.
+    
+   a. Make sure you can log into people at apache dot org without specifying a password.
This means you have to configure SSH to use key-based authentication. Also make sure that
SSH picks up your Apache user name (action is required if your local account name is different
from you Apache account name).
+ 
+   a. Make sure you have your private GPG key and passphrase available. It is recommended
to make the passphrase available to Maven by using an agent, but alternatively you can specify
it on the command line.
+ 
+   a. `cd` into Derby's `maven2` directory.
+ 
+   a. Compile and run `SetDerbyVersion`.
+ 
+   a. Verify the diff (from the `maven2`-directory).
+ 
+   a. Run `mvn clean install`
+ 
+    {i} This does not build Derby using Maven, it works by copying the pre-built jars.
+ 
+   a. Verify the jars installed into your local Maven repository (i.e. `~/.m2/repository/org/apache/derby`).
+ 
+   a. Deploy the artifacts to the Apache staging repository: `mvn deploy`
+ 
+   a. Verify the group ownership and permissions on the deployed artifacts. In general it
is nice to grant write access to other members of the community, but not to the world!
+ 
+   a. Revert local modifications in the `maven2` directory.
+ 
+   a. After some time (NOTE: See how long it takes for the 10.6 release):
+      1. Verify that the artifacts have been propagated to the Maven repositories.
+      1. Add the release to the release history in `maven2/README.txt`.
+ 
+  1. Update the release section in the Derby project DOAP file for an official release.
+   {{{
+ cd site-trunk
+ vi doap_Derby.rdf
+ svn commit}}}
+ 
+   {i} This DOAP file is the source for http://projects.apache.org/projects/derby.html .
Projects are supposed to get updated periodically (you don't do anything to publish the update).

+ 
+   {X} If the update doesn't get generated within a day or two, send email to derby-dev@db.apache.org
letting them know you updated the file and that the update appears to be delayed (site-dev@apache.org
needs to be notified).
+ 
+  1. Announce the release.
+ 
+   Twenty-four hours after putting the release files in the mirror directory, verify that
you can reach them through a mirror (the mirroring will likely take effect long before this).
Then, you should email derby-dev, derby-user, general@db.apache.org, announce@apache.org and
anyone else you think might be interested an announcement concerning the release. See past
release announcements for examples.
+ 
+   <!> Note that you can only send emails to announce@apache.org from your Apache account!
+ 
+   Include a description of the project, and a description of any significant new features
or important bug fixes. 
+ 
+   (!) Every tech news blog remotely related to Java or databases will pick up the announcement
and post it verbatim, so it's a good idea to spell check it, proofread it a couple of times,
and/or get input from derby-dev on its content.
+ 
+  1. Tag the release in subversion.
+ 
+   {{{
+ svn copy -r {rev} https://svn.apache.org/repos/asf/db/derby/code/branches/{version}/ https://svn.apache.org/repos/asf/db/derby/code/tags/{version}/
+ svn copy -r {rev} https://svn.apache.org/repos/asf/db/derby/docs/branches/{version}/ https://svn.apache.org/repos/asf/db/derby/docs/tags/{version}/}}}
+ 
+  1. Check in a copy of the jars to the jars directory of the repository.
+ 
+   Copies of the released jars are kept in the repository for use with the upgrade tests.
You can check in the new jars without having to checkout all of the old jars. First, make
a non-recursive checkout of the jars directory:
+ 
+   {{{svn co -N https://svn.apache.org/repos/asf/db/derby/jars/}}}
+ 
+   Then create a new directory in the checkout with the version number, copy all of the jar
files into the directory, remove non-Derby jars (like the jakarta jar), then svn add the new
directory and check the directory in.
+ 
+  1. Wire the new release into the upgrade tests.
+ 
+   Add the new release to the OLD_VERSIONS table in org.apache.derbyTesting.functionTests.tests.upgradeTests.OldVersions.

+ 
+  1. Update the News section of the website.
+ 
+   Update the News section at the bottom of the front page of the Derby website. Add the
announcement mail to the top of the news items at http://db.apache.org/derby/index.html#News

+ 
+  1. Update wiki Front Page
+ 
+   Update any information about new and upcoming releases (for new releases link to the download
page) on the wiki's FrontPage.
+ 
+  1. Update JIRA versions and merge development versions into released version.
+  
+   a. Mark the release id as a released version in JIRA.
+    * Go to the Administration page, select Derby, then click the Manage versions link on
the bottom right. 
+    * Click the Release link next to the version id of the release and add the release date.
In addition, you may need to create a new version id for the next release vehicle on the branch.

+ 
+   a. The older development versions used for tracking changes between releases are no longer
needed, and old versions should be merged into the release version. E.g. for the 10.3.1.4
release, 10.3.0.0, 10.3.1.0, 10.3.1.1, 10.3.1.2, and 10.3.1.3 need to be merged into the released
10.3.1.4.
+    * Click the Merge button next to the oldest release. 
+    * Select all the versions in the list on the right to merge and then the released version
to merge to on the left (in the example above, this would be 10.3.1.4
+    * Click the Merge button and confirm the merge.
+ 
+  1. Update STATUS again.
+ 
+   Update STATUS to reflect that the release has occurred. Check in the new file. 
+ 
+ 
+ You're done!
+ 
+ 
+ = Snapshots =
+ 
+ In essence a snapshot differs from a full release (feature, or bug fix release) in the following
ways:
+ 
+  1. A snapshot is an alpha or beta distribution cut from the trunk, while a release (candidate)
is supposed to be a full-fledged, upgradeable distribution, and likely cut from a branch.

+ 
+  1. You don't have to polish the release notes for snapshots.
+ 
+  1. For snapshots, the vetting cycle is shorter and the community is willing to tolerate
regressions and serious bugs in the interests of garnering early feedback. 
+ 
+  1. Snapshots don't necessarily include everything included in a full release, for example
demos, plugins etc.
+ 
+  1. Snapshots are placed in a different location:
+ 
+   It's a good idea, once the snapshot has appeared on the site, to announce to derby-dev
and derby-user that the new snapshot has been posted so interested testers can grab it.
+ 
+ 
+ = Making a (private) Quick Build of Release Artifacts =
+ 
+ Sometimes it is useful for a Derby developer to build a private version of the release artifacts
(archives), for example to verify modifications made to the structure of a specific release
distribution (-bin, -lib, -lib-debug, -src, etc.). 
+ 
+ For example, when adding a new demo or changing which files gets included in certain subdirectories
of a -bin distribution, reviewing generated release artifacts is often the only way to verify
that modifications made to the build scripts are correct (of course, having a developer with
knowledge of the build scripts and experience with the release building process review the
patch thoroughly would help as well).
+ 
+ Note that this section describes only a small subset of the steps needed to build a real
Apache Derby release. The generated artifacts are '''''suitable for private testing purposes
only'''''.
+  * the development community has not been involved
+  * version numbers are probably incorrect
+  * release notes are wrong, or not included at all
+  * jars are not signed
+  * etc. etc.
+ 
+ To build a set of release artifacts that is suitable for reviewing the file structure of
a release, among other things, do the following steps (extracted from the full release procedure
description above):
+ 
+  1. Check out (or update) the source tree from which you want to build release artifacts,
for example 
+    https://svn.apache.org/repos/asf/db/derby/code/trunk/ for the trunk
+ 
+  1. Make sure you are able to build the code jars the regular way, as described in [[http://svn.apache.org/repos/asf/db/derby/code/trunk/BUILDING.html|BUILDING.html]]
+ 
+  1. Check out (or update) the corresponding documentation tree, for example 
+    https://svn.apache.org/repos/asf/db/derby/docs/trunk/ for trunk
+ 
+  1. Build the documentation (all) as described on the [[http://db.apache.org/derby/manuals/dita.html|web
site]]
+ 
+  1. Copy ''tools/ant/properties/packaging.tmpl'' to ''tools/ant/properties/packaging.properties''
and modify as necessary (see details above). The important thing here is to include a pointer
to you doc build, for example:
+    {{{
+ docs.out=/export/home/tmp/user/docTrunk/trunk/out
+    }}}
+ 
+  1. Include the following in your ''ant.properties'' file (for 10.3 or newer), modified
to suit your environment:
+    {{{
+ j14lib=/usr/local/java/jdk1.4/jre/lib
+ # For 10.4 or newer:
+ j15lib=/usr/local/java/jdk1.5/jre/lib
+ # For JDBC 4 support
+ jdk16=/usr/local/java/jdk1.6.0
+ # If you want Java ME-support:
+ jsr169compile.classpath=/home/user/lib/cdc/jsr169.jar:/home/user/lib/cdc/btclasses.zip
+ #  May not be necessary (?):
+ relnotes.src.reports=/home/user/derby/relnotes-reports # empty directory
+    }}}
+ 
+  1. Ensure that 'sane=true' and 'debug=true' are not present in your ''ant.properties'',
by removing or commenting out those lines if present.
+ 
+  1. In the top-level directory of the source code tree, do:
+    {{{
+ ant prepareforrelease
+ cd tools/release
+ ant release
+    }}}
+ 
+    ''prepareforrelease'' will actually do:
+    {{{
+ # clean up classes, jars and javadoc:
+ rm -rf jars javadoc snapshot                   # clean.
+ rm -rf tools/release/crlf/ tools/release/lf/   # clean more.
+ rm tools/release/maintversion.properties       # really clean.
+ rm tools/release/*.zip tools/release/*.tar.gz  # really,
+ rm tools/release/*.md5 tools/release/*.asc     # really clean
+ ant clobber
+ ant sane ; ant all ; ant buildjars   # for lib-debug
+ ant clobber
+ ant insane
+ ant -Dsane=false snapshot
+ }}}
+ 
+    The release artifacts should now be available as ''.zip'' and ''.tar.gz'' files in the
''tools/release/'' directory.
+ 
+    To clean up, run ''svn stat'' to see which files don't naturally belong in the repository.
+ 
+ 
+ = Deprecated instructions =
+ 
+ 
+  1. Deploy to Maven repository.
    a. If you do not already have the latest Maven 1 distribution, [[http://maven.apache.org/maven-1.x/start/download.html|download
it]], unpack it, and put the bin directory into your path so that you can run maven commands.
  
     {i} As of this writing, the latest 1.x version of Maven was 1.1.
@@ -728, +920 @@

  
    a. Use sftp to bulk put the artifacts into the corresponding subdirectories of `www/people.apache.org/repo/m1-ibiblio-rsync-repository/org.apache.derby/`.
Note that there are 3 directories of files (jars, poms, wars) which must be sftp'd from your
machine to the tree on people.apache.org.
  
-  1. Update the release section in the Derby project DOAP file for an official release.
-   {{{
- cd site-trunk
- vi doap_Derby.rdf
- svn commit}}}
- 
-   {i} This DOAP file is the source for http://projects.apache.org/projects/derby.html .
Projects are supposed to get updated periodically (you don't do anything to publish the update).

- 
-   {X} If the update doesn't get generated within a day or two, send email to derby-dev@db.apache.org
letting them know you updated the file and that the update appears to be delayed (site-dev@apache.org
needs to be notified).
- 
-  1. Announce the release.
- 
-   Twenty-four hours after putting the release files in the mirror directory, verify that
you can reach them through a mirror (the mirroring will likely take effect long before this).
Then, you should email derby-dev, derby-user, general@db.apache.org, announce@apache.org and
anyone else you think might be interested an announcement concerning the release. See past
release announcements for examples.
- 
-   <!> Note that you can only send emails to announce@apache.org from your Apache account!
- 
-   Include a description of the project, and a description of any significant new features
or important bug fixes. 
- 
-   (!) Every tech news blog remotely related to Java or databases will pick up the announcement
and post it verbatim, so it's a good idea to spell check it, proofread it a couple of times,
and/or get input from derby-dev on its content.
- 
-  1. Tag the release in subversion.
- 
-   {{{
- svn copy -r {rev} https://svn.apache.org/repos/asf/db/derby/code/branches/{version}/ https://svn.apache.org/repos/asf/db/derby/code/tags/{version}/
- svn copy -r {rev} https://svn.apache.org/repos/asf/db/derby/docs/branches/{version}/ https://svn.apache.org/repos/asf/db/derby/docs/tags/{version}/}}}
- 
-  1. Check in a copy of the jars to the jars directory of the repository.
- 
-   Copies of the released jars are kept in the repository for use with the upgrade tests.
You can check in the new jars without having to checkout all of the old jars. First, make
a non-recursive checkout of the jars directory:
- 
-   {{{svn co -N https://svn.apache.org/repos/asf/db/derby/jars/}}}
- 
-   Then create a new directory in the checkout with the version number, copy all of the jar
files into the directory, remove non-Derby jars (like the jakarta jar), then svn add the new
directory and check the directory in.
- 
-  1. Wire the new release into the upgrade tests.
- 
-   Add the new release to the OLD_VERSIONS table in org.apache.derbyTesting.functionTests.tests.upgradeTests.OldVersions.

- 
-  1. Update the News section of the website.
- 
-   Update the News section at the bottom of the front page of the Derby website. Add the
announcement mail to the top of the news items at http://db.apache.org/derby/index.html#News

- 
-  1. Update wiki Front Page
- 
-   Update any information about new and upcoming releases (for new releases link to the download
page) on the wiki's FrontPage.
- 
-  1. Update JIRA versions and merge development versions into released version.
-  
-   a. Mark the release id as a released version in JIRA.
-    * Go to the Administration page, select Derby, then click the Manage versions link on
the bottom right. 
-    * Click the Release link next to the version id of the release and add the release date.
In addition, you may need to create a new version id for the next release vehicle on the branch.

- 
-   a. The older development versions used for tracking changes between releases are no longer
needed, and old versions should be merged into the release version. E.g. for the 10.3.1.4
release, 10.3.0.0, 10.3.1.0, 10.3.1.1, 10.3.1.2, and 10.3.1.3 need to be merged into the released
10.3.1.4.
-    * Click the Merge button next to the oldest release. 
-    * Select all the versions in the list on the right to merge and then the released version
to merge to on the left (in the example above, this would be 10.3.1.4
-    * Click the Merge button and confirm the merge.
- 
-  1. Update STATUS again.
- 
-   Update STATUS to reflect that the release has occurred. Check in the new file. 
- 
- 
- You're done!
- 
- 
- = Snapshots =
- 
- In essence a snapshot differs from a full release (feature, or bug fix release) in the following
ways:
- 
-  1. A snapshot is an alpha or beta distribution cut from the trunk, while a release (candidate)
is supposed to be a full-fledged, upgradeable distribution, and likely cut from a branch.

- 
-  1. You don't have to polish the release notes for snapshots.
- 
-  1. For snapshots, the vetting cycle is shorter and the community is willing to tolerate
regressions and serious bugs in the interests of garnering early feedback. 
- 
-  1. Snapshots don't necessarily include everything included in a full release, for example
demos, plugins etc.
- 
-  1. Snapshots are placed in a different location:
- 
-   It's a good idea, once the snapshot has appeared on the site, to announce to derby-dev
and derby-user that the new snapshot has been posted so interested testers can grab it.
- 
- 
- = Making a (private) Quick Build of Release Artifacts =
- 
- Sometimes it is useful for a Derby developer to build a private version of the release artifacts
(archives), for example to verify modifications made to the structure of a specific release
distribution (-bin, -lib, -lib-debug, -src, etc.). 
- 
- For example, when adding a new demo or changing which files gets included in certain subdirectories
of a -bin distribution, reviewing generated release artifacts is often the only way to verify
that modifications made to the build scripts are correct (of course, having a developer with
knowledge of the build scripts and experience with the release building process review the
patch thoroughly would help as well).
- 
- Note that this section describes only a small subset of the steps needed to build a real
Apache Derby release. The generated artifacts are '''''suitable for private testing purposes
only'''''.
-  * the development community has not been involved
-  * version numbers are probably incorrect
-  * release notes are wrong, or not included at all
-  * jars are not signed
-  * etc. etc.
- 
- To build a set of release artifacts that is suitable for reviewing the file structure of
a release, among other things, do the following steps (extracted from the full release procedure
description above):
- 
-  1. Check out (or update) the source tree from which you want to build release artifacts,
for example 
-    https://svn.apache.org/repos/asf/db/derby/code/trunk/ for the trunk
- 
-  1. Make sure you are able to build the code jars the regular way, as described in [[http://svn.apache.org/repos/asf/db/derby/code/trunk/BUILDING.html|BUILDING.html]]
- 
-  1. Check out (or update) the corresponding documentation tree, for example 
-    https://svn.apache.org/repos/asf/db/derby/docs/trunk/ for trunk
- 
-  1. Build the documentation (all) as described on the [[http://db.apache.org/derby/manuals/dita.html|web
site]]
- 
-  1. Copy ''tools/ant/properties/packaging.tmpl'' to ''tools/ant/properties/packaging.properties''
and modify as necessary (see details above). The important thing here is to include a pointer
to you doc build, for example:
-    {{{
- docs.out=/export/home/tmp/user/docTrunk/trunk/out
-    }}}
- 
-  1. Include the following in your ''ant.properties'' file (for 10.3 or newer), modified
to suit your environment:
-    {{{
- j14lib=/usr/local/java/jdk1.4/jre/lib
- # For 10.4 or newer:
- j15lib=/usr/local/java/jdk1.5/jre/lib
- # For JDBC 4 support
- jdk16=/usr/local/java/jdk1.6.0
- # If you want Java ME-support:
- jsr169compile.classpath=/home/user/lib/cdc/jsr169.jar:/home/user/lib/cdc/btclasses.zip
- #  May not be necessary (?):
- relnotes.src.reports=/home/user/derby/relnotes-reports # empty directory
-    }}}
- 
-  1. Ensure that 'sane=true' and 'debug=true' are not present in your ''ant.properties'',
by removing or commenting out those lines if present.
- 
-  1. In the top-level directory of the source code tree, do:
-    {{{
- ant prepareforrelease
- cd tools/release
- ant release
-    }}}
- 
-    ''prepareforrelease'' will actually do:
-    {{{
- # clean up classes, jars and javadoc:
- rm -rf jars javadoc snapshot                   # clean.
- rm -rf tools/release/crlf/ tools/release/lf/   # clean more.
- rm tools/release/maintversion.properties       # really clean.
- rm tools/release/*.zip tools/release/*.tar.gz  # really,
- rm tools/release/*.md5 tools/release/*.asc     # really clean
- ant clobber
- ant sane ; ant all ; ant buildjars   # for lib-debug
- ant clobber
- ant insane
- ant -Dsane=false snapshot
- }}}
- 
-    The release artifacts should now be available as ''.zip'' and ''.tar.gz'' files in the
''tools/release/'' directory.
- 
-    To clean up, run ''svn stat'' to see which files don't naturally belong in the repository.
- 

Mime
View raw message