You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by Apache Wiki <wi...@apache.org> on 2007/11/21 17:33:52 UTC

[Db-derby Wiki] Update of "DerbySnapshotOrRelease" by JohnHEmbretsen

Dear Wiki user,

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

The following page has been changed by JohnHEmbretsen:
http://wiki.apache.org/db-derby/DerbySnapshotOrRelease

The comment on the change is:
Added section: Making a (private) Quick Build of Release Artifacts

------------------------------------------------------------------------------
  
  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. 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. 
  
- 2. You don't have to polish the release notes for snapshots.
+  1. You don't have to polish the release notes for snapshots.
  
- 3. 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. 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.
+ 
- 4. Snapshots are placed in a different location:
+  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 '''''only 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 are suitable for reviewing the file structure of a release, among other things, do the following steps (extraced 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.txt BUILDING.txt]
+ 
+  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
+ 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. In the top-level directory of the source code tree, do:
+    {{{
+ # If you have built release artifacts or snapshots before, clean up. Also
+ # clean up 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
+ 
+ # In any case do this:
+ ant clobber
+ ant sane ; ant all ; ant buildjars   # for lib-debug
+ ant clobber
+ ant insane
+ ant -Dsane=false snapshot
+ cd tools/release
+ ant release
+    }}}
+ 
+ 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.
+