Forum OpenACS Development: Re: Clarification of Upgrade milestone criterion

Collapse
Posted by Don Baccus on
At the moment we're facing upgrade difficulties that aren't entirely off our own making.

In particular OpenACS 5.0 requires some PG 7.3 features, but upgrading from PG 7.2->PG 7.3 introduces complexities which aren't, strictly speaking, "our problem".  Yet ... we need to support this upgrade path.

Even after this upgrade, there's constraint metadata in PG 7.3 that's missing in PG 7.2, which means in the future we can't necessarily rely on being able to do ALTER TABLE on an instance that's been migrated from PG 7.2->PG 7.3.  It may be possible to write an upgrade script to drop all referential integrity triggers (FOREIGN KEY constraints) and recreate them with ALTER TABLE but that won't happen for 5.0 and will never be automated (you'd only run such a script on  an instance you know was migrated from PG 7.2->7.3)

And Dirk Gomez reports that migrating from 8.1.7->9i requires FORTY-THREE manual steps!  (he is going to investigate whether or not an export/import cycle will suffice but since Oracle documents the manual steps, it may not).

Fortunately thus far the AOLserver and Tcl people have been kind enough not to f**k our world in such fashion ...

Anyway ... we need to address upgrade problems due to changes in our underlying platform as well as upgrade problems we bring upon ourselves, and our criteria probably needs to expose the fact that we run into such problems.

Collapse
Posted by Joel Aufrecht on

I don't understand what "our criteria probably needs to expose the fact that we run into such problems." means. Could you explain more?

I propose that our upgrade criterion not distinguish between work/risk caused directly by our code and work/risk caused by underlying platform changes necessitated by our code. If I have an OpenACS 4.6.1 site which I want to upgrade, I have certain set of problems which I _must_ fix in order to upgrade, regardless of their origin.

In other words, if there is a code change in 5.0 that requires a platform upgrade, the work of the platform upgrade should be counted against meeting our upgrade criterion. This will have the effect, I hope, of encouraging more backwards platform compatibility, which is more work for OpenACS developers but a Good Thing for users. We should also continue to address the "more work" part by providing more resources for developers along the lines of the test servers. That way, new code can be tested against older platform combos without requiring developers to maintain a full suite of old software.