[vwnc] Prerequisite version selection

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[vwnc] Prerequisite version selection

Joachim Geidel
I am working on a framework (JNIPort) which must be loadable in VW 7.5 and
earlier, in 7.6, and soon in 7.7. I would like to have version specific
prerequisites. The framework comes with some methods which were not present
in VW at the time the framework was written, but have later been added to VW
7.6. VW 7.7 will have two additional methods which were included in the
framework. So, if the framework simply included all the methods which were
missing in VW 7.5 and earlier, there would be overrides of system methods in
later versions of VW.

Up to 7.6, I tried to solve the problem by having a package for the methods
which were present in 7.6, but missing in 7.5. The post-load action for one
of the framework packages tested the image version, and loaded the package
in pre-76 images. The drawback of this is that it did not work with parcels,
as my post-load action explicitly loads the package from Store. That was not
all too bad, because 7.5/7.6 had problems creating loadable parcels from the
framework's bundles anyway.

With 7.7, I do not think that this is a viable solution any more. The
post-load action would become quite complicated. In addition, I can create
usable parcels for the framework with the 7.7 prerelease, and would like to
distribute parcels in addition to publishing the framework to the public
repository.

I tried two different approaches:

1. Creating a package per VW version, adding all of them as prerequisites of
the framework, and writing a prerequisite selection block which answers true
if the package matches the image version.

2. Creating only one package, with different branches ('75.*', '76.*',
'77.*') for each VW version, and a prerequisite selection block which
answers true if the package version string matches the image version.

However, with the Store prerequisites settings set to "Always prompt for
version", both approaches don't really work.

Using the first approach, I get a version selection dialog for each of the
packages. I can't use "cancel" for packages which I don't want, as this will
stop loading the framework. If I select a version, I am next asked if I want
to load the package despite the version not matching.

The second approach works somewhat better, but there is still the version
selection dialog popping up before the prerequisite selection block is
executed, and if I select the wrong version, there is the "version not
matching" dialog again.

I wonder why the version selection dialog comes first. Wouldn't it make more
sense to send the candidate versions through the prerequisite selection
block first, such that I am only prompted with versions which match the
conditions?

Does anyone have an idea how I can solve the problem of version specific
prerequisistes? Or should I just give up, load the package with all the
methods which have to be added to VW 7.5, and live with the overrides which
are created in 7.6 and 7.7?

TIA
Joachim Geidel


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc