[OPEN-ILS-DEV] Proposal: Versioned Add-on Packages

Scott McKellar mck9 at swbell.net
Fri Feb 20 10:00:01 EST 2009


--- On Thu, 2/19/09, Mike Rylander <mrylander at gmail.com> wrote:

<snip: proposal on how to make IDL files easier to upgrade in
the presence of customizations>

To summarize my simple-minded understanding of your proposal:

-- Represent standard IDL classes in one file;
-- Represent extension classes and site-specific classes in a
   separate IDL file;
-- Use a third IDL file at runtime;
-- Regenerate the third IDL file as needed, by merging the first
   two whenever either of them changes.

That way we can upgrade the standard IDL with a minimum of disruption
to the customizations.

Some upgrades to the standard IDL may require changes to the custom IDL,
but those changes will be relatively contained.  It might even be
possible for the merge process to detect when such changes are needed, though I wouldn't offer or ask for any promises along those lines.

I have two questions.  Maybe your post already answered them but I
didn't grasp the answers.

-----------------

What if a customization adds a column to a standard table?  Does your
proposal address that situation?  Or does it not happen much anyway?

I don't mean to suggest that the proposal *should* address this
situation.  Even if it doesn't, it would leave us better off than we
are now.  However it might be nice if the design didn't make it
needlessly difficult to add such a feature later.

------------------

Among other things, the IDL expresses foreign key relationships, i.e.
arrangements whereby a column in a child table refers to a key column
of a parent table.  In your example, the rmobbhol class has two
columns pointing to the id column of the aou class.  It is also
possible (though much less likely) for a custom class to serve as a
parent for a standard class.)

In many cases (although not in this one) the IDL defines the linkage at
both ends.  It defines not only a link from the child to the parent,
but also a link from the parent back to the child.

If a custom IDL defines a linkage from a custom class to a standard
class, any linkage from the standard class back to the custom class
would have to be added manually to the standard IDL file.  More
specifically: if no one adds that linkage manually, the IDL merge
process will not add it automatically.

Am I right about that?

Scott McKellar
http://home.swbell.net/mck9/ct/



More information about the Open-ils-dev mailing list