[plt-scheme] planet: version collision on schemeunit.plt

From: Richard Cobbe (cobbe at ccs.neu.edu)
Date: Sun Apr 15 16:56:24 EDT 2007

I'm going back to update some old code of mine that was originally written
to use SchemeUnit v1.1.  (As part of the update, I intend to migrate it to
the latest release of SchemeUnit as well as a bunch of other PLaneT
packages.

When I load the module that runs the SchemeUnit GUI on my tests in DrScheme
(SVN earlier today), I get the error

    Package schemeunit.plt loaded twice with multiple incompatible versions:
    attempted to load version 1.1 while version 2.6 was already loaded

I have another module that runs the SchemeUnit text UI on my tests, but
it's otherwise identical.  When I load this text module in DrScheme, I get
the same error, but if I load it in MzScheme, everything's fine -- it runs
my tests as I expect.

My first question was, of course, "OK, so who's using SchemeUnit 2.6?"
Unfortunately, planet isn't very helpful there:

    [Ridcully:~/work/cobbe/dev/classic-java]$ planet -l
      /Users/cobbe/work/cobbe/dev/classic-java/requires:
        require.plt (ryanc) 1 0
      /Users/cobbe/work/cobbe/dev/classic-java/run-graphical-tests:
        schemeunit.plt      (schematics)    1 1

and that's it.  (I did a "planet -U" before trying it the last time to
clear out any stale entries in the link table -- but I'd still expect to
see someone trying to use 2.6.)

So:
  1) What's going on?  I know what the immediate cause of the error is,
     but I'd like to know who I'm colliding with -- especially since all of
     my code uses 1.1, and since I haven't loaded anything else.

  2) Is there any way to include the conflict information in the error
     message?  I'd like to know which module/package I'm conflicting with.

I'm far from an expert in these things, but it looks to me like DrScheme
itself is using SchemeUnit.  If so, it's awfully unfortunate that a change
in DrScheme's test suites would break other people's code like this.

Richard


Posted on the users mailing list.