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

Disable AvailabilityTest checking for skipping install of packages #1037

Closed

Conversation

lgoettgens
Copy link
Member

@lgoettgens lgoettgens commented Sep 11, 2024

In some edge-cases a package is available, but one of its transitive dependencies is not. This piece of code would have skipped any installation in this case.
We (@ThomasBreuer and I) ran into this in oscar-system/Oscar.jl#3688, because recog is available, but its transitive dependency io needs compilation.

Copy link

codecov bot commented Sep 11, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 74.48%. Comparing base (c5766b7) to head (b5a4e2f).
Report is 6 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1037      +/-   ##
==========================================
+ Coverage   74.37%   74.48%   +0.11%     
==========================================
  Files          55       55              
  Lines        4534     4527       -7     
==========================================
  Hits         3372     3372              
+ Misses       1162     1155       -7     
Files with missing lines Coverage Δ
src/packages.jl 75.72% <ø> (+4.81%) ⬆️

@lgoettgens lgoettgens changed the title Add workaround for AvailabilityTest returning fail Disable AvailabilityTest checking for skipping install of packages Sep 11, 2024
@lgoettgens
Copy link
Member Author

We verified locally, that this PR gets rid of the ERROR: LoadError: InitError: cannot load the GAP package recog in oscar-system/Oscar.jl#3688.

@fingolfin
Copy link
Member

Ahhh, that makes sense.

But I think there was a reason for the added code: to avoid network issues... considering this:

gap> InstallPackage("spinsym");
#I  Getting PackageInfo URLs...
#I  Retrieving PackageInfo.g from https://gap-packages.github.io/spinsym/PackageInfo.g ...
#I  Downloading archive from URL https://github.com/gap-packages/spinsym/releases/download/v1.5.2/spinsym-1.5.2.tar.gz ...
#I  Saved archive to /var/folders/d_/1zss2fnd6xdgclqnj8jj_27m0000gp/T//gaptempdirQYoqkn/spinsym-1.5.2.tar.gz.pkgman
#I  Extracting to /Users/mhorn/Library/Preferences/GAP/pkg/spinsym-1.5.2 ...
#I  Checking dependencies for SpinSym...
#I    CTblLib >=1.2.2: true
#I    GAPDoc >=1.5: true
true
gap> InstallPackage("spinsym");
#I  Getting PackageInfo URLs...
#I  Retrieving PackageInfo.g from https://gap-packages.github.io/spinsym/PackageInfo.g ...
#I  The newest version of package "spinsym" is already installed
true
gap> InstallPackage("spinsym");
#I  Getting PackageInfo URLs...
#I  Retrieving PackageInfo.g from https://gap-packages.github.io/spinsym/PackageInfo.g ...
#I  The newest version of package "spinsym" is already installed
true

So each InstallPackage tries to download a PackageInfo.g.

And if I disconnect my laptop from the internet, it gets suck on this for a long time.

So won't we be treading one source of OSCAR startup issues for another? Of course one might be more or less common than the other...

Another problem is that InstallPackage may install newer versions than what is in the GAP 4.13.1 distro, which is bad for reproducibility. But right now that's a minor concern, and we already have this problem, so it's OK to ignore it here.

Unfortunately I again did not end up having time to work towards the long-planned better solution, which is to provide GAP_pkg_recog.jl, GAP_pkg_io.jl etc. (see https://github.com/oscar-system/GAP_pkg). Perhaps we can talk about that next week.

Copy link
Member

@fingolfin fingolfin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this fixes more problems right now than it causes, go ahead, but we need to eventually solve the "no network connection" issues

@lgoettgens
Copy link
Member Author

When I talked to @ThomasBreuer yesterday, our primary goal was to get oscar-system/Oscar.jl#3688 merged, for the simple reason that after that we again have OscarCI that reports potential problems early.

@ThomasBreuer
Copy link
Member

The point is that just calling the AvailabilityTest function is not good enough.
Calling TestPackageAvailability would be better, but I have to check this.

@lgoettgens
Copy link
Member Author

If this fixes more problems right now than it causes, go ahead, but we need to eventually solve the "no network connection" issues

(I don't have the right to proceed with merging and tagging a release of this.)

@lgoettgens
Copy link
Member Author

superceded by #1039

@lgoettgens lgoettgens closed this Sep 13, 2024
@lgoettgens lgoettgens deleted the lg/availability_test branch September 13, 2024 14:02
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

Successfully merging this pull request may close these issues.

3 participants