myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Manfred Geiler <>
Subject Re: RC3: dependency on commons-lang
Date Mon, 24 Oct 2005 14:52:07 GMT
Hi all,
This thread is a little bit overloaded with issues and suggestions in
the meantime. So I do not want to make thinks worse and only pick out
the (IMO) most important point, that really has a major impact on
future releases: the shared classes repackage issue.
Regarding shared classes: One idea or motive, that has not been
mentioned yet, is/was to have a set of convenient base classes and
utils for component development. So they actually do not only have the
purpose of reducing redundancy. They also serve as some kind of
"commons" classes for JSF.
This speaks against "tricks" like repackaging or something like that.
Releasing the shared classes in a separate jar would solve this
problem sufficiently. BTW, current releases are a bit grubby anyway:
the shared classes are currently contained in both myfaces-impl.jar
and tomahawk.jar.
Regarding JBoss: Replacing the shared classes with a newer version to
be able to use a nightly tomahawk could be solved by putting the
current "myfaces-shared.jar" into the endorsed dir, right?

So, here is my
-1 for delivering shared classes twice in different Java namespaces
+1 for releasing shared classes in their own jar


2005/10/24, Sean Schofield <>:
> > Ok, so maybe this is the thread for these comments I have sitting on
> > for some time.
> > _Please_ don't be offended, we _do_ appreciate the work and the results
> > of the MyFaces contributors and the whole community.
> >
> > But you definitely have a release problem.
> >
> > 3 anecdotal examples: the ages it took from 1.0.9 to a next release,
> > the problems introduced from a stable nightly to 1.1.0, and the ages it
> > is taking to release 1.1.1 to replace the broken 1.1.0 (a "quick"
> > bugfix release was planned over a month ago).
> A month is quick in Open Source development.  We all have day jobs and
> we are spread out in several time zones.  Each release must also pass
> the TCK which takes time.
> > We now have 3 products deployed using MyFaces, and each is deployed
> > using a nightly. And we are definitely not alone in this. We
> > communicate to our clients at this time that official MyFaces releases
> > should be avoided! Most nightlies are more stable.
> There is one important bug in the 1.1.1 release but there is an easy
> workaround.  Other then that the release is very stable IMO.  There
> are still lots of bugs being discovered and fixed and so depending on
> your issues, the nightly might be a better fit for you.  But those
> fixes and changes can introduce new problems so I would disagree that
> the nightlies are more stable.  At any point there could be serious
> new issues introduced in a  nightly.
> But that's your call.  You can do what you want and tell your clients
> whatever you want.
> >
> > Here are some humble suggestions from our experience:
> >
> >
> > 1) Split the release schedules for the different parts
> >
> > myfaces-api, myfaces-impl, and indeed, myfaces-shared, and tomahawk,
> > need to be on different release tracks, and have different version
> > numbers. You are now in a situation that one release is waiting for the
> > other, almost in deadlock. This poses no difficulties for developers.
> > This makes it easier for developers. This also makes it easy to make
> > different contributors responsible for the releases and other issues of
> > the different parts, distributing the work and responsibility.
> Are you crazy?  How would this simplify things?  We have enough
> trouble getting the combined release done.  Its more then just
> executing a simple build script.
> >
> >
> > 2) Drop the combined package
> >
> > This again makes releases harder, and there is no need for that.
> > Tomahawk is a separate product anyway: it also works (or should work in
> > the near future) with other JSF implementations. Developers will
> > appreciate the clarity.
> I tend to agree with this one but others feel strongly about having
> the combined package.  I don't see how this affects you if you don't
> want to use it.  It doesn't really slow us down other then its one
> more jar that has to be tested, etc.  Now that the sandbox is out of
> the myfaces-all.jar the process is simpler.
> >
> >
> > 3) Automate the release procedure; use maven
> >
> > Yes, I know this was discussed 3 months ago. But it is clear that the
> > release procedure is manual now, that there are problems automating it.
> > With maven, most of the work is done already, and you will be able to
> > spend the time you spend now on duplicating maven functionality in ant,
> > to automate the missing parts, like running the JSF compatibility
> > tests.
> Maven won't make it any easier then Ant.  I don't think anyone can
> convince me of that.  Maven might help slightly with the website
> publication and a few other things but we have very good Ant scripts
> that took a long time to write.  At some point we can consider Maven
> but that will just delay the next release you are constantly looking
> for.  Maven will be an investment that will take quite a bit of time
> and testing.
> As Martin said, automating the TCK is not really feasible.  Believe
> me, we've automated most of what we can.  Its just more complicated
> then you might realize.
> >
> >
> > 4) Don't be afraid of a new release.
> >
> > E.g., take 1.1.0. This release is obviously broken, and there are over
> > 80 fixes in the repo since then already. But, no release. _Each_ of
> > those 80 fixes warranted a new release. _Each_ of those releases would
> > have helped a number of people that were fighting a bug in 1.1.0.
> >
> > If this means that there is a new release every day, in the extreme,
> > that's ok. If the release procedure is automatic, that doesn't take any
> > effort, and it is feasible for developers to track progress (is my bug
> > fixed in this release or not). Now, everybody in development is working
> > with nightlies, which introduces terrible uncertainty which is almost
> > impossible to defend to project managers or clients.
> > And it doesn't stay that way. In the first days after 1.1.0, it would
> > have meant a daily bugfix release, yes. After a week, it would go down
> > to a release every 3 days, and by now, we would probably have 1.1.21.
> > That's ok. Developers _can_ count past 10.
> >
> > If this goes to far for you, for bugfix releases (kudos for the
> > separate 1.1 branch), reverse the issue: in the first weeks, set a
> > release schedule: a new release every friday 00:00h. The fixes that are
> > in the branch make the release, the rest is for next week. If there are
> > blocking issues at that time, branch the branch, and fix them asap.
> > Again, this stabilizes after a while, when there simply are no new
> > commits in the branch since last friday. I promise it does!
> >
> > Developers see the trend in the release schedule. After a while, the
> > curve flattens, and we all know that we reached a certain stability. We
> > don't want to use a .0 version in deployment; we know there are bugs in
> > .0 versions of _every_ product. If we have a feeling about the release
> > schedule, we will use earlier versions, if our deadline is far enough
> > in the future, so you will have testers.
> Sorry but a major -1 for this.  I understand your frustration at the
> pace of the releases but nightly or weekly releases would be insane.
> I don't know of a single ASF project that does this.  Ask yourself why
> this is the case?  Is it because nobody has ever thought of this idea?
>  Clearly not.  It seems that other projects have rejected this on the
> same grounds that I have.  All of your effort goes into builds and
> releases and nobody is using the same version anymore.
> There is a nightly build so in theory we are already releasing every
> night.  What more do you need?
> >
> >
> > 5) Forget the RC-approach.
> >
> > For one, given the experience of the last few weeks, this approach
> > obviously isn't
> > working. Just depend on the stabilising nature of frequent, consecutive
> > bugfix releases.  You will have more testers this way than with the
> > RC's which are impossible to find (e.g., no maven repo release). I know
> > of nobody in production that will go through the effort of working with
> > an RC.
> Again -1.  I don't like the RC either but people seem to hold off on
> using the nightlies and doing serious testing until we approach
> release time.  If you give them an official RC they will test it
> because that is basically "last call" before the release.
> We're not going to do Maven repository releases for RC and if that's
> what you need to test a RC then you are out of luck.  Most of us can
> test just fine without Maven.  If you need Maven just create your own
> local library.
> The branch and RC process should increase stability of the builds.  I
> think we are on the right track here.
> [snip]
> sean

View raw message