It's a tricky situation; some users are going to want to upgrade to 5.3 and
see new features and behaviors automatically; others will want to upgrade to
5.3 and see nothing change until they enable it.

I like the idea of factoring out as much as possible into
tapestry-compatibility.jar.

I think there will always have to be some "case" logic to handle some of
these compatibility issues. It's simply not avoidable (well, perhaps by
adding n-layers of new abstraction, and that's not going to happen).

On Fri, Dec 17, 2010 at 2:25 PM, Robert Zeigler <robe...@scazdl.org> wrote:

> +1.
> Although the question remains... how /long/ to be compatible.  For
> instance, you might want "5.0" in there, as well, in which case, the
> label-id generation would need to be enabled for modes 5.0 and 5.1
> (suggesting perhaps a need for some conversion to an "ordered" value...
> something more than boolean).
>
> What we /don't/ want is to have the codebase littered with multiple
> different cases for different versions.  It might go that way, but at some
> point, support for old behavior has to go... the question is when?
>
> I'm thinking out loud here, but...
> Recently, I upgraded a project from 5.0.15 to 5.1.0.4.  The project is
> fairly complex, and there were some major changes in Tapestry's behavior
> between 5.0.15 and 5.0.18, when the public apis were locked down as stable.
> What impressed me from this process was how much of the "old" behavior I
> could restore via various service contributions.  It makes me wonder if,
> instead of introducing a "compatibility version" symbol (and associated
> checks in the code), we could introduce "compatibility modules".  Eg:
> tapestry-compatibility-5.1 (version 5.2.4) would restore 5.1's behavior in
> 5.2.4.  For this to really work, we might need to introduce a mechanism for
> explicitly overriding components... so the 5.1 compatibility could have a
> label component that overrides the default 5.2 component, or something like
> that.  Anyway... this might be a good solution to avoid littering the core
> codebase with checks.
>
> Thoughts?
>
> Robert
>
> On Dec 17, 2010, at 12/172:09 PM , Howard Lewis Ship wrote:
>
> > It was simply the case that the id wasn't needed, because the label could
> be
> > located as previously outlined.
> >
> > Rather than have an endless number of switches to set, I think we may
> need a
> > global compatibility symbol ("tapestry.compatibility"), and maybe a
> > mechanism for turning that into a boolean at the point of injection.  The
> > values for the symbol would be "5.1", "5.2"  "5.3", etc.
> >
> > The quickstart archetype should set the symbol in the generated
> AppModule.
> > In this way, users on upgrade could conciously change the compatibility
> > mode.
> >
> > We would want to document, exhaustively, what is enabled or disabled
> based
> > on the symbol.
> >
> > This isn't a total solution to backwards compatibility, and not
> everything
> > could be handled this way, but it would be a good start.
> >
> > On Fri, Dec 17, 2010 at 11:38 AM, Josh Canfield <joshcanfi...@gmail.com
> >wrote:
> >
> >> Hmm...
> >>
> >> The id needs to be put back, but before we add a symbol to allow it to
> >> be optionally removed I'd like to make sure that Howard (and anyone
> >> else) really needed it removed and it wasn't just some house cleaning.
> >> I imagine if it was really a number of bytes issue then more than just
> >> the label could be optimized and a markup filter like Robert suggested
> >> is more appropriate...
> >>
> >> Josh
> >>
> >> On Fri, Dec 17, 2010 at 10:56 AM, Robert Zeigler <robe...@scazdl.org>
> >> wrote:
> >>>
> >>> On Dec 17, 2010, at 12/1712:53 PM , Thiago H. de Paula Figueiredo
> wrote:
> >>>
> >>>> On Fri, 17 Dec 2010 16:35:43 -0200, Robert Zeigler <
> robe...@scazdl.org>
> >> wrote:
> >>>>
> >>>>> Just to clarify, I hope that by "true" you mean that id generation is
> >> turned /on/ by default. :)
> >>>>
> >>>> Your hope isn't in vain. :) true = on in this case.
> >>>>
> >>>>> warnings as time allowed.  The important thing is that even with
> >> deprecated methods, the old /behavior/ was preserved.  It's a policy we
> >> should adhere to more in Tapestry.  What users need /most/ from the
> >> framework is dependable behavior; in large part, they need that more
> than
> >> the few bytes of bandwidth saved by removing the id from the label
> >> component.
> >>>>
> >>>> Agreed. I guess most of the disrupting changes were just honest
> >> mistakes. It's kinda hard to foresee of all the consequence of a change,
> >> specially when most of the users (the developers using Tapestry) are not
> in
> >> your team.
> >>>>
> >>>
> >>> Fair enough.
> >>>
> >>> Robert
> >>>
> >>>> --
> >>>> Thiago H. de Paula Figueiredo
> >>>> Independent Java, Apache Tapestry 5 and Hibernate consultant,
> developer,
> >> and instructor
> >>>> Owner, Ars Machina Tecnologia da Informação Ltda.
> >>>> http://www.arsmachina.com.br
> >>>>
> >>>> ---------------------------------------------------------------------
> >>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> >>>> For additional commands, e-mail: users-h...@tapestry.apache.org
> >>>
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> >>> For additional commands, e-mail: users-h...@tapestry.apache.org
> >>>
> >>>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> >> For additional commands, e-mail: users-h...@tapestry.apache.org
> >>
> >>
> >
> >
> > --
> > Howard M. Lewis Ship
> >
> > Creator of Apache Tapestry
> >
> > The source for Tapestry training, mentoring and support. Contact me to
> learn
> > how I can get you up and productive in Tapestry fast!
> >
> > (971) 678-5210
> > http://howardlewisship.com
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>


-- 
Howard M. Lewis Ship

Creator of Apache Tapestry

The source for Tapestry training, mentoring and support. Contact me to learn
how I can get you up and productive in Tapestry fast!

(971) 678-5210
http://howardlewisship.com

Reply via email to