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

Reply via email to