Add "needs" tags for giac and libgiac#38770
Merged
vbraun merged 19 commits intosagemath:developfrom Oct 26, 2024
Merged
Conversation
This was referenced Oct 5, 2024
|
Documentation preview for this PR (built with commit 5127fd2; changes) is ready! 🎉 |
Contributor
|
shouldn't the tag be |
Contributor
Author
|
I think either will work, but IIRC "needs" is preferred for standard features, and |
Contributor
Author
|
The CI fail is,
and doesn't have anything to do with this PR (which just adds some presently-unused tags). |
This was referenced Oct 11, 2024
This module uses the pexpect interface in sage.interfaces.giac to access giac, so we test for the program and not the library.
One doctest in this module uses simplify(...,algorithm='giac'), which passes the object to the giac pexpect interface and then simplifies it. This requires the giac program (as opposed to the library).
This entire module needs the giac program.
…iac() There are a few doctests in this module that use giac(), but already have "needs sage.libs.giac" tags. It is more correct for these to depend on the giac program and not the library.
The _giac_solver for symbolic relations uses libgiac.
A few doctests in this module call giac(), which is the pexpect interface.
…libs.giac" Several Groebner basis tests that use libgiac now need "needs" for sage.libs.giac
There's an example in this file that can only be integrated by giac. We add the corresponding "needs" tag, but also, since this is end-user documentation, explain why it is there.
Some tests in this file use the giac pexpect interface but are tagged with "needs sage.libs.giac". Now that we have a feature for the giac executable, "needs giac" is more appropriate.
Some tests in this file use the giac pexpect interface but are tagged with "needs sage.libs.giac". Now that we have a feature for the giac executable, "needs giac" is more appropriate.
One test in this file use the giac pexpect interface but is tagged with "needs sage.libs.giac". Now that we have a feature for the giac executable, "needs giac" is more appropriate.
Some tests in this file use the giac pexpect interface but are tagged with "needs sage.libs.giac". Now that we have a feature for the giac executable, "needs giac" is more appropriate.
Some tests in this file use the giac pexpect interface but are tagged with "needs sage.libs.giac". Now that we have a feature for the giac executable, "needs giac" is more appropriate.
d1d6d94 to
937f6a8
Compare
When this file has not been crudely deleted to prevent the build system from building sage.libs.giac, it will be tested, and when it is tested, it needs sage.libs.giac to exist.
This file contains several doctests that won't work without sage.libs.giac installed.
tobiasdiez
approved these changes
Oct 20, 2024
vbraun
pushed a commit
to vbraun/sage
that referenced
this pull request
Oct 23, 2024
sagemathgh-38770: Add "needs" tags for giac and libgiac Part of sagemath#38668. If it's going to be possible to disable giac, we need to guard all of the tests that use it with either `# needs giac` or `# needs sage.libs.giac`. I think I've gotten them all. A crude way to test: 1. `git rm -r src/sage/libs/giac` and rebuild to disable sage.libs.giac 2. build sage, and then delete the giac executable to disable the pexpect interface If you do these one at a time, it should ensure that the correct tags are used. (Typically, if giac is missing, neither sage.libs.giac nor the giac executable will be present, making it very easy to mix up the tags.) For bonus points you can undelete `src/sage/libs/giac` after building but before testing to make sure the "needs" tags in those files are accurate. ### Dependencies: * sagemath#38756 * sagemath#38686 (not strictly required, but it adds a few "needs sage.libs.giac" tags of its own) URL: sagemath#38770 Reported by: Michael Orlitzky Reviewer(s): Tobias Diez
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of #38668. If it's going to be possible to disable giac, we need to guard all of the tests that use it with either
# needs giacor# needs sage.libs.giac.I think I've gotten them all. A crude way to test:
git rm -r src/sage/libs/giacand rebuild to disable sage.libs.giacIf you do these one at a time, it should ensure that the correct tags are used. (Typically, if giac is missing, neither sage.libs.giac nor the giac executable will be present, making it very easy to mix up the tags.)
For bonus points you can undelete
src/sage/libs/giacafter building but before testing to make sure the "needs" tags in those files are accurate.Dependencies: