-
-
Notifications
You must be signed in to change notification settings - Fork 453
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
Replace is_package_installed with Features #20382
Comments
Commit: |
comment:2
Indeed same kind of work. Much more sophisticated on your part I must say. Do I understand well that you need an executable class for any external binaries that you want to call? It could also solve the issue that I was thinking about executables and other files requirement. You should be able to find and use something already installed in a standard location. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:6
Handling of That may require special consideration. |
comment:7
Thanks for the pointer about database_gap. I should have a complete proposal up on the other ticket in the next 24 hours. |
comment:8
I think this ticket should replace the other one unless you have a plan. I am making a list of stuff that needs to come from the other ticket and stuff that should use your feature detection. I guess we could split it along those lines. |
comment:9
Going through the files that I have changed in #20377 which this ticket should supersede:
|
Reviewer: Nicolas M. Thiéry, ... |
Author: Julian Rüth |
comment:12
Hi Julian, Just some rambling, thinking about use cases for this ticket or some follow up: While discussing with the Debian people, it was stressed out that we
To support this use case we would need:
Not directly related to this ticket, but building on the discussion we had while walking in Cernay, we may want to be able to write the annotation as::
Cheers, |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:14
nthiery: About version checks. I think it would be easy to add this in the current setup. However, I would recommend to follow the philosophy of autoconf here. I.e., we should not check for a version because you need to keep track which version range supportes the feature you are looking for (and often things are heavily patched so the version might be misleading.) Instead, we should check for the actual feature/interface required. It is a bit more work of course but usually better and much easier to maintain. |
comment:15
Yep there is value in the autoconf approach. On the other hand, since this is mostly about doctests at this point, a version information is more useful for the user: "oh, I need to upgrade to 3.5" is simpler than "oh, I need to upgrade to a recent enough version that supports method xxx on object yyy". We could do both: make a feature check, and provide a version number for user reporting; but that's more work. Another advantage of version checking is that you just need to fetch the version once, and don't need to relaunch, e.g a GAP command, each time you want to check another feature. |
comment:16
I like more the centralized approach in this ticket rather than the one in #20377 in which each feature needs a special care. Though many things looks very complicated and the related #20182 is much more readable (though using inheritance from this ticket would save some efforts). Moreover #20182 implements some database of available features which is not discussed here. The latter has the advantage of minimizing the requests time after the first call. With the architecture proposed here, each check involves a Some more specific remarks:
|
comment:17
And last but not the least: what about having the "packages" part directly attached to executable?
instead of
|
Changed dependencies from #24720 to none |
comment:155
Setting milestone to sage-pending because I think that this ticket should not be merged in Sage 8.2. The reason is that this ticket has a lot of potential to break stuff because it involves optional packages and those are tested poorly. This would be an ideal ticket to merge in 8.3.beta0. |
Changed reviewer from Nicolas M. Thiéry, François Bissey to Nicolas M. Thiéry, François Bissey, Julian Rüth |
Changed branch from u/jdemeyer/features to |
comment:159
Replying to @jdemeyer:
Indeed... help for fixing the consequences in: #25332 And one question: the LattE feature from #25400 needs to check for two executables. Should I introduce an abstract class feature "Executables" (whose constructor argument would be a list of |
Changed commit from |
CC: @mkoeppe @jdemeyer @nexttime @embray @defeo @isuruf @slel
Component: build
Keywords: days85
Author: Julian Rüth, Jeroen Demeyer
Branch:
ad6dcc6
Reviewer: Nicolas M. Thiéry, François Bissey, Julian Rüth
Issue created by migration from https://trac.sagemath.org/ticket/20382
The text was updated successfully, but these errors were encountered: