[RTC] Merge m2migration (functional m2 build) to trunk
------------------------------------------------------
Key: GERONIMO-2219
URL: http://issues.apache.org/jira/browse/GERONIMO-2219
Project: Geronimo
Issue Type: RTC
Security Level: public (Regular issues)
Components: buildsystem
Affects Versions: 1.2
Reporter: Jason Dillon
Priority: Critical
Fix For: 1.2
h3. Overview
For the past few weeks we have been busy at work getting Geronimo 1.2-SNAPSHOT
to build with Maven 2. As I have noted before in email, the process is almost
complete. At this point the work done so far results in a functional server
for the following assemblies:
* geronimo-jetty-j2ee
* geronimo-jetty-minimal
* geronimo-tomcat-j2ee
* geronimo-tomcat-minimal
The work to implement has been applied to a branch in the sandbox, and includes
many submitted patches from those contributors and commiters that had been
helping with the effort.
My recommendation is that we _merge_ this change to trunk and not generate a
diff and then patch. There are a few changes which patch does not handle well
and will cause failed chunks when applied, and there are a few files moved and
copied, which when patched will cause loss of that history.
As I mentioned this work is _almost complete_, there are still a few pending
issues, please see the section below for more details.
h3. Recommend Action Post RTC
Once we have the required RTC +1's to allow this work to be merged, this is
what I recommend:
# Merge m2migration to trunk as described below
# Deprecate the Maven1 build; meaning leave the m1 files, but strongly urge
developers to use the m2 build
# Enable the TCK _automated_ testing in GBuild using the m2 build
# Remove the m1 build (and related files)
These steps will probably take a few weeks post-merge to complete.
h3. About the Branch
The main branch which should be used for review is:
* https://svn.apache.org/repos/asf/geronimo/sandbox/svkmerge/m2migration
I have been using SVK ( http://svk.elixus.org/ ) to keep this m2migration
branch up to date with the latest changes that have been made to trunk (with a
few exceptions). I have been staging the merge as follows:
* merge from {{trunk}} to {{sandbox/svkmerge/trunk}}
* merge from {{sandbox/svkmerge/trunk}} {{sandbox/svkmerge/m2migration}}
This has worked out very well and I have found that using SVK dramatically
reduces to complexity of performing full tree (or partial tree merges). I have
been verifying that the SVK {{smerge}} is indeed doing the right thing and I
have a good deal of confidence in it at this point.
The idea is to merge m2migration back to trunk using SVK as follows:
* merge from {{sandbox/svkmerge/m2migration}} to {{sandbox/svkmerge/trunk}}
* merge from {{sandbox/svkmerge/trunk}} to {{trunk}}
This is the opposite of what I am performing now on a regular basis to sync
this development branch. Normally the additional branch (svkmerge/trunk) would
not be needed, but it exists to help ensure that the merge is indeed _doing the
right thing_.
h3. Recommended Review Steps
{noformat}
svn co https://svn.apache.org/repos/asf/geronimo/sandbox/svkmerge/m2migration
cd m2migration
./bootstrap
gunzip -c
m2-assemblies/geronimo-jetty-j2ee/target/geronimo-jetty-j2ee-1.2-SNAPSHOT-bin.tar.gz
| tar xf -
./geronimo-jetty-j2ee/bin/startup.sh && tail -f
geronimo-jetty-j2ee/var/log/geronimo.out
....
./geronimo-jetty-j2ee/bin/shutdown.sh --user system --password manager
{noformat}
*NOTE:* Windows users need to run {{bootstrap}} from a Cygwin environment and
should probably run these steps from the root of a drive (c:, d:, etc) to
better ensure that the long filename problem is not an issue when testing.
*WARNING:* The {{bootstrap}} script will remove your local Maven2 repository
cache and will take maybe 30 minutes or so to run... more or less depending on
how fast your network connection is.
You should define a mirror for the {{central}} m2 repository before running...
otherwise you will almost certainly get repository failures downloading from
ibiblio. This is what I am using (in ~/.m2/settings.xml):
{code:xml}
<?xml version="1.0"?>
<settings>
<mirrors>
<mirror>
<id>repo.mergere.com</id>
<url>http://repo.mergere.com/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
</settings>
{code}
Also, due to the coupling of Geronimo and OpenEJB2, OpenEJB2 must be checked
out and built in the middle of the bootstrapping. Once G is hooked up to CI
and snapshots are being automatically deployed, we can also hook up OpenEJB2 to
do the same... but until then OpenEJB2 needs to be built in the bootstrap.
h4. Testing Caveats
Currently the test from the timer module may fail on systems that are slow or
are low on cpu resources when the test is run. If you run into this, you may
need to disable the tests for that module by adding this to the pom:
{code:xml}
<properties>
<maven.test.skip>true</maven.test.skip>
</properties>
{code}
Since the tests appear to normal work, I am uncomfortable turning them off by
default... and we will eventually fix them. Tracked by:
* https://issues.apache.org/jira/browse/GERONIMO-2183
You may run into problems downloading artifacts while bootstrapping,
specifically I have seen the Apache m1 repos reject connections and cause the
build to fail. Re-running will resolve. Make sure you have a mirror
configured for central.
h3. Pending Issues
There are still a few remaining issues which need to be sorted out.
Rick's JavaMail changes (#421872) which remove the javamail-transport module
have yet to be applied due to the lack of the deployed dependency.
Some use of version properties in pom.xml files are inconsistent due to
selective use by child pom's that can not easily make use of the
{{<dependencyManagement>}} section; which is the desired end result. It will
take some time to refactor to get this really finished.
https://issues.apache.org/jira/browse/GERONIMO-2206
Some minor work is needed to get the jsp/servlet examples happy. Also need to
resolve the geronimo-samples groupId (and more so where that source comes from).
Some (2 actually) test failures need to have some attention given to them,
tracked be:
* https://issues.apache.org/jira/browse/GERONIMO-2210
* https://issues.apache.org/jira/browse/GERONIMO-2211
Some more work also needs to be done on the Maven-2 generated site, but there
is most of it here already:
* http://geronimo.apache.org/maven/
h3. What if 'bootstrap' Fails?
So far, most of the failures that people run into are due to environmental
causes and not because of anything broken with the branch or build
configuration.
If you run into any failure, please mail dev@ and include the bootstrap.log,
which should be generated automatically and captures all output.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira