+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