It would certainly be disturbing if a release could not be recreated. I'm pretty sure I'm speaking for all myfaces comitters when I say that repeatable builds are considered very important indeed.
What exactly were the incompatibilities you discovered? The two parts that we need to have in order to have a repeatable build are the tomahawk-module tag, and the shared-module tag. Tomahawk was released on 13 June 2007, as shown by the news page: http://myfaces.apache.org/index.html and by the dates on the jars in the maven repo: http://repo1.maven.org/maven2/org/apache/myfaces/tomahawk/tomahawk/1.1.6/ Oddly, in svn tomahawk/tags/1_1_6 was created in Nov 2007. <log> ------------------------------------------------------------------------ r598615 | baranda | 2007-11-27 13:38:42 +0100 (Tue, 27 Nov 2007) | 1 line Changed paths: A /myfaces/tomahawk/tags/1_1_6 (from /myfaces/tomahawk/branches/1_1_6:598614) Tagged tomahawk 1.1.6 getting it from the corresponding branch </log> It looks like the release manager for some older releases made release branches, but did not make release tags. That does seem like a bad idea to me, but not fatal. Looking at the commits to the "tomahawk/branches/1_1_6" dir, the last one was on 12 Jun, ie the day before the release. So that is clearly the code that was in the official release. And that's exactly the code that baranda later put into the proper "tags" dir, so although "delayed", that tomahawk 1.1.6 tag looks correct to me, ie should correspond to the actually-released binary. Here are the important bits from the branches dir: <log> ------------------------------------------------------------------------ r546805 | manolito | 2007-06-13 12:18:00 +0200 (Wed, 13 Jun 2007) | 2 lines Changed paths: M /myfaces/shared/branches/2_0_6/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java TOMAHAWK-983 TOMAHAWK-1021 ------------------------------------------------------------------------ r546402 | manolito | 2007-06-12 09:15:37 +0200 (Tue, 12 Jun 2007) | 1 line Changed paths: M /myfaces/shared/branches/2_0_6 M /myfaces/shared/branches/2_0_6/core M /myfaces/shared/branches/2_0_6/core/pom.xml M /myfaces/shared/branches/2_0_6/pom.xml D /myfaces/shared/branches/2_0_6/release.properties M /myfaces/shared/branches/2_0_6/shared-impl M /myfaces/shared/branches/2_0_6/shared-impl/pom.xml M /myfaces/shared/branches/2_0_6/shared-tomahawk M /myfaces/shared/branches/2_0_6/shared-tomahawk/pom.xml shared 2.0.6 preparation ------------------------------------------------------------------------ r546054 | manolito | 2007-06-11 11:10:55 +0200 (Mon, 11 Jun 2007) | 1 line Changed paths: A /myfaces/shared/branches/2_0_6 (from /myfaces/shared/branches/2_0_5:546053) </log> I'm pretty confident that my initial guess is right, ie that the "shared/branches/2_0_6" code holds the "shared" code used to build the tomahawk 1.1.6 release. I just can't see how the release could have been prepared any other way. So this seems ok: a release preparation branch was made, then the pom updated to contain the new version numbers, and then a couple of bugs fixed. And no changes made after the actual release date. I'll try to build tomahawk from fresh checkouts of these, but apart from some failure to officially tag the head of the release-preparation branch I cannot see anything wrong here. Regards, Simon On Sat, 2008-08-23 at 18:04 -0600, Jan Nielsen wrote: > Unfortunately, on closer inspection, my attempted rebuild of tomahawk > 1.1.6, while successful and runnable, does not re-create the 1.1.6 > release; it introduces some transitive dependencies which make it > unusable in my environment. At this point, I am left with > de-compilation and patching the Tomahawk JAR - very ugly. > > It's worrisome to me that a released MyFaces artifact cannot be easily > reproduce. Perhaps, there is a way, but I can't seem to find it, and > it sounds like the dev list can, either. In my experience, a simple, > reproducible build system pays-back many fold to a project (and part > of that includes a simple and well thought-out source-repository > structure. I'd be happy to open bugs on these issues if you like, but > it's unlikely I'll be able to implement these changes, even if the > developers approves them. Let me know. > > Best Wishes, > > -Jan > > On Thu, Aug 21, 2008 at 6:28 PM, Jan Nielsen > <[EMAIL PROTECTED]> wrote: > > Thank you, Simon! With a checkout of the branch and install of the > > artifact, the Tomahawk 1.1.6 tag builds and works. With this build of > > Tomahawk 1.1.6, I have validated Rodrigo Macedo's patch for > > TOMAHAWK-1249. > > > > Thanks, again! > > > > -Jan > > > > > > On Thu, Aug 21, 2008 at 1:27 AM, [EMAIL PROTECTED] > > <[EMAIL PROTECTED]> wrote: > >> [EMAIL PROTECTED] schrieb: > >>> > >>> Jan Nielsen schrieb: > >>>> > >>>> To get a bug fix into 1.1.6, I would like to recreate the Tomahawk > >>>> 1.1.6 build. I grabbed the code at: > >>>> > >>>> http://svn.apache.org/repos/asf/myfaces/tomahawk/tags/1_1_6 > >>>> > >>>> and tried to build that with "mvn -Djsf=12 -Dtomahawk=12 clean > >>>> package" but it fails to resolve the dependency on > >>>> myfaces-shared-tomahawk 2.0.6: > >>>> > >>>> org.apache.myfaces.shared:myfaces-shared-tomahawk:jar:2.0.6 > >>>> > >>>> Reviewing a couple of repositories, it looks like 2.0.x releases are > >>>> there, /except/ for 2.0.6. I'm fine with building it myself but it > >>>> also looks like the 2.0.6 is missing from subversion: > >>>> > >>>> http://svn.apache.org/repos/asf/myfaces/shared/tags > >>>> > >>>> So, can the Tomahawk 1.1.6 build be reproduced? Is there a recipe, a > >>>> wiki, a script, or a spot in subversion from which the Tomahawk 1.1.6 > >>>> release can be built? > >>>> > >>>> > >>> > >>> Hmm..that is weird indeed. I'll check the email archives. > >>> > >>> Tomahawk 1.1.6 does indeed depend on shared-2.0.6, and as you say there > >>> appears to be neither a tag nor a released jar for shared-2.0.6. > >>> > >>> The jsf1.2 "flavour" of tomahawk has only been added *after* the 1.1.6 > >>> tomahawk release. So the "-Djsf=12 -Dtomahawk=12" options are not valid > >>> when > >>> building the 1.1.6 release. Note that normal tomahawk 1.1.x runs fine on > >>> both JSF1.1 and JSF1.2. However there are some optimisations that can be > >>> added by building against JSF1.2, hence the new "flavour". But that > >>> doesn't > >>> change the fact that shared-2.0.6 is missing. > >> > >> I see there is a 2.0.6 dir in > >> http://svn.apache.org/repos/asf/myfaces/shared/branches > >> > >> And the pom there has the released version number. > >> > >> So I would guess that whoever did the release did a "mvn install" from that > >> branch dir, then build the final release of tomahawk but forgot to: > >> * move the branch to the tags dir > >> * deploy the shared jar to the release repo > >> > >> So to rebuild tomahawk 1.1.6, you should be able to check out that branch > >> dir, do "mvn install" locally then build tomahawk 1.1.6. > >> > >> In some ways it *is* a little odd to deploy the shared jar to the release > >> repo, as nobody will actually ever use it - except people like yourself who > >> want to rebuild the official release. But for tidiness it probably *should* > >> be done. And certainly an svn copy should have existed in the tag dir, not > >> just "branches" (although there is technically no difference when using > >> svn). > >> > >> Regards, > >> Simon > >> > >> > >
