Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

problem with installing GAP packages programmatically #963

Open
ThomasBreuer opened this issue Feb 2, 2024 · 0 comments
Open

problem with installing GAP packages programmatically #963

ThomasBreuer opened this issue Feb 2, 2024 · 0 comments

Comments

@ThomasBreuer
Copy link
Member

When one starts Oscar.jl, GAP.Packages.load("ferret", install = true) is called.
I noticed that this can fail in certain situations, as follows.

Suppose you have unpacked version 1.0.5 of ferret in the directory that is used by Oscar for additional GAP packages
(GAP.Packages.DEFAULT_PKGDIR), but that the package is not compiled.
Then GAP.Packages.load("ferret", install = true) first notices that an installation of ferret is necessary, and GAP's PackageManager package downloads the current PackageInfo.g file, which belongs to version 1.0.10 of ferret.
Since we are not in interactive mode, PackageManager does not propose an upgrade to 1.0.10.
Instead, it tries to compile the "available" old version 1.0.5, without success. In the end, false is returned.
And since Oscar.jl does not evaluate this return value, the user does not notice that something went wrong.
(With the quiet = false option, one would see a lot of messages about errors, but one would also see some messages if the installation is successful, which would be bad.)

In order to clean the installation, one has to remove the 1.0.5 directory of ferret by hand.
In order to load ferret, one can at least force the installation of a newer version that can be compiled (by prescribing a version number in the load call).

How can we improve the situation?
Oscar.jl could show a message when GAP.Packages.load("ferret", install = true) returns false, then one would at least notice that there is a problem.
Or what is a better way to handle this in GAP.jl?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant