Back when we released Prototype 1.6, I updated a number of
applications I was working on for various clients.

The process rarely took more than a couple of hours for each
application.

The 500+ hours for 20 projects is either grossly overestimated or the
sign of other issues in your code base (no test suites, little
abstraction, etc.)

We understand API changes are painful and have always tried to avoid
them as much as possible.

Unfortunately, they're sometimes inevitable. That was the case with
the hash class.

We did our best to help with the transition by providing an upgrade
helper.

That said, if it really is an issue, and if you're really bumping into
huge refactoring costs, I would suggest you created your own,
differently named hash class modeled on the old one.

A simple search and replace of $H and new Hash should get you on a
ready to upgrade path within minutes, not hundreds of hours.

Any way, good luck with your upgrade.

Tobie

On Nov 8, 4:42 pm, "Brian Marquis" <br...@quotepro.com> wrote:
> Just an update on this, 500 man hours > $15,000, perhaps more if the task
> falls to our most senior developers. And that doesn't include the
> opportunity cost assuming we would be working on billable projects for the
> same amount of time, in that case, double or triple that number. Please
> Prototype team, respect our time.
>
> From: Brian Marquis [mailto:br...@quotepro.com]
> Sent: Monday, November 08, 2010 9:33 AM
> To: 'prototype-scriptaculous@googlegroups.com'
> Subject: RE: [Proto-Scripty] Re: hash.__properties is undefined
>
> I also have an issue with the Hash class. We have about 20 live websites,
> each one with a large amount of javascript code which will break if I
> upgrade to 1.6.x. In our case, we were not using internal properties of the
> Hash object, but rather the published API, which said, among other things,
> that the merge command would modify the existing Hash instance, instead of
> creating a new one. It will take us about 500 man hours to make the
> necessary modifications to our code to be using the latest version of
> Prototype. It presents me with a difficult task to justify the effort to
> management.
>
> That being said, I'd really like to ask that the Prototype team make every
> effort to avoid making fundamental changes in the behavior of core objects
> in the framework. As developers, we rely on our libraries to provide a
> consistent, backwards-compatible base for us to build our applications with.
> I understand that sometimes it will be necessary to change core objects, in
> that case, I would much prefer to receive deprecation warnings, at least for
> a few point releases, so that we as developers can upgrade and then slowly
> modify our code to remove them and still stay current on the library for
> security patches, bug fixes and so on.
>
> From: prototype-scriptaculous@googlegroups.com
> [mailto:prototype-scriptacul...@googlegroups.com] On Behalf Of Hamed
> Iravanchi
> Sent: Monday, November 08, 2010 8:17 AM
> To: prototype-scriptaculous@googlegroups.com
> Subject: Re: [Proto-Scripty] Re: hash.__properties is undefined
>
> That's interesting! Because I find it very useful.
>
> I was so happy to find out that there's such an updater script.
>
> I guess if I fix my script to use 1.6.0.3, it will be compatible with 1.6.1
> too. Am I right?
>
> Or which is the latest version that the updater works with?
>
> My main issue for upgrading to 1.6 is that I have to use "get" and "set"
> methods on Hash, instead of direct access.
>
> And I have a large javascript code base, with lots of usages of "bind",
> event scheduling, closures, and things that make error reporting and
> tracking hard.
>
> It's very hard to find all usages of direct Hash property access. Do you
> think there's an easier way of fixing these?
>
> Thanks,
>
> -Hamed
>
> On Mon, Nov 8, 2010 at 4:10 PM, Tobie Langel <tobie.lan...@gmail.com> wrote:
>
> It's very possible the updater wasn't updated to support updating to
> v1.6.1 as few people actually use it.
>
> Sorry about that.
>
> Best,
>
> Tobie
>
> On Nov 8, 11:24 am, Hamed Iravanchi <ha...@iravanchi.com> wrote:
>
>
>
>
>
>
>
> > prototype_update_helper.js is the script shipped along side Prototype in
> the
> > same website for upgrading purpose.
> > It's supposed to show errors where there's a deprecated API used.
>
> > On Mon, Nov 8, 2010 at 2:32 AM, T.J. Crowder <t...@crowdersoftware.com>
> wrote:
> > > Hi,
>
> > > > I'm upgrading from 1.5 to 1.6.1, and Firefox reports an error in
> > > > prototype_update_helper.js (line 380)...
>
> > > As there's no prototype_update_helper.js in Prototype itself, you'll
> > > need to show the actual code being used. If it's using the internals
> > > of the `Hash` object (instead of its published API), I'm afraid you'll
> > > have to rewrite it to use the API instead (as internals can change
> > > from a dot rev to a dot rev without notice).
>
> > > FWIW,
> > > --
> > > T.J. Crowder
> > > Independent Software Engineer
> > > tj / crowder software / com
> > > www / crowder software / com
>
> > > On Nov 7, 8:10 am, Iravanchi <iravan...@gmail.com> wrote:
> > > > Hi,
>
> > > > I'm upgrading from 1.5 to 1.6.1, and Firefox reports an error in
> > > > prototype_update_helper.js (line 380) that "hash.__properties is
> > > > undefined".
>
> > > > When I set a breakpoint it works fine. I have no idea what can be the
> > > > problem.
>
> > > > When I try it with prototype version 1.6.0.3, there's no such errors,
> > > > and the update helper reports a few issues in my code. But it doesn't
> > > > work with 1.6.1.
>
> > > --
> > > You received this message because you are subscribed to the Google
> Groups
> > > "Prototype & script.aculo.us <http://script.aculo.us/> " group.
> > > To post to this group, send email to
> > > prototype-scriptacul...@googlegroups.com.
> > > To unsubscribe from this group, send email to
> > > prototype-scriptaculous+unsubscr...@googlegroups.com
>
> <mailto:prototype-scriptaculous%2bunsubscr...@googlegroups.com>
> <prototype-scriptaculou s%2bunsubscr...@googlegroups.com
> <mailto:s%252bunsubscr...@googlegroups.com> >
>
> > > .
> > > For more options, visit this group at
> > >http://groups.google.com/group/prototype-scriptaculous?hl=en.
>
> --
>
> You received this message because you are subscribed to the Google Groups
> "Prototype & script.aculo.us <http://script.aculo.us/> " group.
> To post to this group, send email to
> prototype-scriptacul...@googlegroups.com.
> To unsubscribe from this group, send email to
> prototype-scriptaculous+unsubscr...@googlegroups.com
> <mailto:prototype-scriptaculous%2bunsubscr...@googlegroups.com> .
> For more options, visit this group 
> athttp://groups.google.com/group/prototype-scriptaculous?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Prototype & script.aculo.us" group.
> To post to this group, send email to
> prototype-scriptacul...@googlegroups.com.
> To unsubscribe from this group, send email to
> prototype-scriptaculous+unsubscr...@googlegroups.com.
> For more options, visit this group 
> athttp://groups.google.com/group/prototype-scriptaculous?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"Prototype & script.aculo.us" group.
To post to this group, send email to prototype-scriptacul...@googlegroups.com.
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en.

Reply via email to