On Fri, 2008-06-20 at 09:06 +0200, Volker Weber wrote: > Hi, > > 2008/6/20 Scott O'Bryan <[EMAIL PROTECTED]>: > [...] > > The old > > code line gets bug fixes and nothing more and the active development is > > always on the latest and greatest. Why can't we do something similar? > > The active development is done where needed, which in my case is jsf1.1.
Just applying patches to one version is not a good idea. If someone (like Volker) uses just JSF1.1, and provides a patch for that branch then it is really important to try to apply something similar to the other branches too. For example, if a bugfix is applied to the jsf1.1 stuff, then someone's code might work with 1.1 but fail when upgraded to use 1.2. That would suck. When patches add new features, it's even worse. It would be really confusing for the jsf1.1 branch of some project to provide features that the jsf1.2 branch did not. And that's the real problem with carrying multiple lines of development. It significantly increases the effort needed to apply patches. And we already have a whole lot of patches sitting in jira that have not been evaluated yet. So I'm really reluctant to see code branches created unless there is a major benefit. The work Leonardo has done for Tomahawk is interesting in this regard. The code base is the same; the 1.2 tomahawk release just: * compiles the source with java1.5 * compiles it against the 1.2 shared code * uses the 1.2 code-generation templates for generated classes * generates 1.2-style faces-config and tld files This gives 80% of the benefits of a 1.2-specific tomahawk branch, while keeping just one copy of the code to be maintained. It's a pretty good compromise IMO. The comparison with how Tomcat development is done is perhaps useful for the Core project, but not for Tomahawk. In Core, we do follow pretty much the same approach as Tomcat: branch for a new revision, and then try to evaluate patches against each branch. And this works because both Tomcat and Core are implementations of a stable specification. New features are not added usually added. But Tomahawk is different: its feature-set evolves. It is also significantly buggier than tomcat releases, meaning that applying bugfixes is a bigger issue. And I'm pretty sure that the ratio * tomcat-developer-hours-available/lines-of-code is significantly higher than * tomahawk-developer-hours-available/lines-of-code That means that we may need to compromise on tomahawk performance/featureset in order to reduce the maintenance effort required. In other words, keeping one line of code makes sense (less maintenance) even if we lose some JSF1.2/JSF2.0-specific features or performance boosts. Regards, Simon
