Problem saving new package because of cyclic prerequisites

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

Problem saving new package because of cyclic prerequisites

John Small
Hi,

I have created a new package with 7 classes.

When I try to save it a warning dialog pops up
saying that "the package can not be saved because
the package will NOT load if saved in this form so
the package file has not been saved."

The prerequisite pane of the package browser (Dolphin 5) shows
that this new package (w/ 7 classes) depends upon three
standard packages directly:

        Dolphin
        Debug Trace Stream
        Sockets Connection

Why can't I save the package to PAC format?

When I attempt to save it using PAX source format
the 7 classes are successfully saved to their "file out",
i.e. *.cls chunk format, but the overall operation without
writing the 8th file (presumably the PAX file itself).
I get a debug walkback window and I find that the
package "hasCyclicPrerequisites."

The classes do reference each other in several
of their class methods but I don't see any way this
package is cyclically referenced by the standard packages.
It appears that this circular reference amongst my packages
is upsetting the Package>>#hasCyclicPrerequisities: algorithm.

Any suggestions?

John


Reply | Threaded
Open this post in threaded view
|

Re: Problem saving new package because of cyclic prerequisites

Christopher J. Demers
John Small <[hidden email]> wrote in message
news:[hidden email]...
> When I try to save it a warning dialog pops up
> saying that "the package can not be saved because
> the package will NOT load if saved in this form so
> the package file has not been saved."
>
> The prerequisite pane of the package browser (Dolphin 5) shows
> that this new package (w/ 7 classes) depends upon three
> standard packages directly:
...

Try to drill down on the prerequisite tree and see if one of the system
packages depends upon one of your packages, and then look to see the reason.
Perhaps you accidentally have some of your code in one of the system
packages.

> When I attempt to save it using PAX source format
> the 7 classes are successfully saved to their "file out",
> i.e. *.cls chunk format, but the overall operation without
> writing the 8th file (presumably the PAX file itself).
> I get a debug walkback window and I find that the
> package "hasCyclicPrerequisites."

This sounds like it might be a bug, it should probably alert about the
cyclic prerequisites before it starts saving the files.

Chris


Reply | Threaded
Open this post in threaded view
|

Re: Problem saving new package because of cyclic prerequisites

Jason Shannon
In reply to this post by John Small
On Thu, 6 Jun 2002 17:58:38 -0400, "John Small" <[hidden email]>
wrote:

[...]
>The classes do reference each other in several
>of their class methods but I don't see any way this
>package is cyclically referenced by the standard packages.
>It appears that this circular reference amongst my packages
>is upsetting the Package>>#hasCyclicPrerequisities: algorithm.

I had this recently. FWIW, there have been two things that have cured
the problem at different times:

1) Uninstalling the Tools+ evaluation that I had installed shortly
before the problems started. There did *seem* to be a cyclic
dependency detected by #hasCyclicPrerequisites between Tools+ and the
development packages (something to do with a toolbar button I think),
but I'm not sure why this was affecting my package. It may be a red
herring.
2) Adding all occurrences of publishedAspectsOfInstances in my
package's classes to the "must strip" category.

Cheers,
--
Jason Shannon http://www.araxis.com


Reply | Threaded
Open this post in threaded view
|

Re: Problem saving new package because of cyclic prerequisites

Ian Bartholomew-13
In reply to this post by John Small
John,

> Why can't I save the package to PAC format?

Just in case you missed this (I did until someone mentioned it!), the
PackageBrowser's prerequisites tab tree has a context menu, "Show Status
Icons". If you turn this on then the branch(es) of the tree that have
circularities are indicated by a red cross. I can't say it has always
pointed me straight at the problem, a little deduction is usually needed as
well, but it might give a pointer.

Regards
    Ian


Reply | Threaded
Open this post in threaded view
|

Re: Problem saving new package because of cyclic prerequisites

John Aspinall-4
In reply to this post by Jason Shannon
Jason,

> 1) Uninstalling the Tools+ evaluation that I had installed shortly
> before the problems started. There did *seem* to be a cyclic
> dependency detected by #hasCyclicPrerequisites between Tools+ and the
> development packages (something to do with a toolbar button I think),
> but I'm not sure why this was affecting my package. It may be a red
> herring.

One for the FAQ: there *is* a cyclic dependency between Tools+ and the
development system packages; if your own packages depend on the development
system (e.g. via a reference to Aspect) then this will affect your packages.
To save your packages, the dependency can be removed (temporarily) by
evaluating the following:

SmalltalkSystem current deactivateSSWTools.
Package manager resetPrerequisites

This will unhook the Tools+ enhancements from the standard browsers (the
cause of the cyclic dependency), allowing you to save. The tools can be
reactivated with:

SmalltalkSystem current activateSSWTools

...I'll look into automating this behaviour for the next release.

Regards,

John Aspinall
Solutions Software