-
-
Notifications
You must be signed in to change notification settings - Fork 490
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
add intersphinx mapping for SciPy #29231
Comments
Commit: |
Author: Markus Wageringel |
Branch: u/gh-mwageringel/29231 |
This comment has been minimized.
This comment has been minimized.
comment:3
Sage should in principle build without an internet connection, so I am not in favor of this approach. (“If this fails for some reason, the docbuild will also fail.”) |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:5
You are right, that is a problem. It is possible to set a local inventory file as a fallback*. For Python, this was done by adding Instead, I have configured intersphinx to use the With these changes applied, I have successfully built the documentation without internet access. *For reference, see Multiple target for the inventory. |
This comment has been minimized.
This comment has been minimized.
comment:6
Replying to @jhpalmieri:
+1. Though, it would be great that something like
Though, if we start allowing for |
comment:7
Replying to @videlec:
I would suggest to change the pplpy intersphinx mapping to point to the online version of the pplpy documentation instead of the local version. The local inventory file can be used as fallback (and the dummy file as secondary fallback). This ensures that cross-links (to the online version) can still be resolved correctly if either an internet connection or the local pplpy documentation exists during the docbuild. Admittedly, it might be better if the cross-links resolved to the local documentation in the case when the local objects.inv is used, and to the online documentation if the online version is used, but there does not seem to be an easy way to configure this, as far as I understand. |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:9
I have just made the change for |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:11
This proposal is not acceptable. Building Sage should not trigger any internet connection beyond downloading packages (that can be done prior to the build with One option would actually be to package the various inventories. But that look tedious to maintain. Do you know what other projects do? |
comment:12
Other projects like numpy, scipy and matplotlib all use the online versions of inventory files. None of them even provides a fallback for the case that the download fails. This also means we cannot follow the I am not sure why triggering an internet connection is a problem, as long as download failures are handled gracefully. In the worst case, one ends up without cross-references, which is exactly what we have now. I would like to avoid extra maintenance burdens that would be caused by packaging the inventory files. How about making the download of inventory files optional, similar to the |
comment:13
Replying to @mwageringel:
Because a user do not expect
+1. It makes no sense to have these files as packages. It will be outdated very soon.
Could you make a detailed proposal on sage-devel? This kind of changes in the build system have to go through a common agreement by devs. |
comment:14
Here is the thread on sage-devel. There is also a very similar ticket #27164. |
comment:15
There is also #27495, which is somewhat related. |
comment:18
What's the status of this? There has been discussion of this recently again, and it would be good to do at least something about it, as I need this for #31404 as well. I think currently this looks good--one thing I might change is for the dummy fallback see if the docs are installed locally first (e.g. if pplpy was installed with I think this is better than nothing for now. |
comment:19
I think the main concern voiced on the mailing list discussion linked in comment:14 is that intersphinx eagerly tries to connect to the internet, which may be undesirable for some people in some situations. To avoid this, Sage could by default ask for permission to connect to the internet to download missing files, but that would be quite a complex change to the build system. |
comment:20
We should just make this optional, enabled by another |
comment:21
Sage development has entered the release candidate phase for 9.3. Setting a new milestone for this ticket based on a cursory review of ticket status, priority, and last modification date. |
comment:22
Setting a new milestone for this ticket based on a cursory review. |
comment:23
Stalled in |
…flint, fpylll, gmpy2, ipywidgets, matplotlib, mpmath, networkx, numpy, rpy2, scipy, sympy <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes sagemath#12345". --> [Intersphinx](https://www.sphinx- doc.org/en/master/usage/extensions/intersphinx.html) allows us to refer to functions and classes in other projects using the standard Sphinx roles `:func:`, `:class:`, ... Examples in the documentation preview: - [References to FLINT functions in sage.libs.flint.arith_sage](https://deploy-preview-37575--sagemath.netli fy.app/html/en/reference/libs/sage/libs/flint/arith_sage#sage.libs.flint .arith_sage.bell_number) - [References to SciPy functions in sage.manifolds.differentiable.integrated_curve](https://deploy- preview-37575--sagemath.netlify.app/html/en/reference/manifolds/sage/man ifolds/differentiable/integrated_curve#sage.manifolds.differentiable.int egrated_curve.IntegratedCurve.solve) - [References to NetworkX functions in sage.graphs.generic_graph](https://deploy-preview-37575--sagemath.netlif y.app/html/en/reference/graphs/sage/graphs/generic_graph#sage.graphs.gen eric_graph.GenericGraph.export_to_file) - [Examples in the Developer Guide](https://deploy-preview-37575-- sagemath.netlify.app/html/en/developer/sage_manuals#hyperlinks) Based on a rebased version of sagemath#29231 by @mwageringel. In addition to the `scipy` intersphinx done in sagemath#29231, here we add a number of relevant Python libraries, as well as `flint`, whose docs are built with Sphinx as well. To address concerns in the discussion there about the docbuild contacting remote servers for the inventory files, here we instead vendor the inventory files: ``` $ ls -l src/doc/common/_vendor -rw-r--r-- 1 mkoeppe staff 1942 Mar 9 21:20 cvxopt.inv -rw-r--r-- 1 mkoeppe staff 13251 Mar 9 21:20 cvxpy.inv -rw-r--r-- 1 mkoeppe staff 10728 Mar 9 21:20 cypari2.inv -rw-r--r-- 1 mkoeppe staff 775 Mar 9 21:20 cysignals.inv -rw-r--r-- 1 mkoeppe staff 246266 Mar 9 21:20 flint.inv -rw-r--r-- 1 mkoeppe staff 1603 Mar 9 21:20 fpylll.inv -rw-r--r-- 1 mkoeppe staff 2891 Mar 9 21:20 gmpy2.inv -rw-r--r-- 1 mkoeppe staff 10934 Mar 9 21:20 ipywidgets.inv -rw-r--r-- 1 mkoeppe staff 105887 Mar 9 21:20 matplotlib.inv -rw-r--r-- 1 mkoeppe staff 3115 Mar 9 21:20 mpmath.inv -rw-r--r-- 1 mkoeppe staff 51830 Mar 9 21:20 networkx.inv -rw-r--r-- 1 mkoeppe staff 78006 Mar 9 21:20 numpy.inv -rw-r--r-- 1 mkoeppe staff 1449 Mar 9 21:20 pplpy.inv -rw-r--r-- 1 mkoeppe staff 136166 Mar 9 21:20 python.inv -rw-r--r-- 1 mkoeppe staff 3289 Mar 9 21:20 rpy2.inv -rw-r--r-- 1 mkoeppe staff 112691 Mar 9 21:20 scipy.inv -rw-r--r-- 1 mkoeppe staff 55596 Mar 9 21:20 sympy.inv ``` This extends our existing practice with the Python inventory (moved here from its previous location `src/doc/common/python3.inv`). The new command `sage -python -m sage_docbuild.vendor` retrieves the latest versions of these files. (Distribution notes: These files are not installed, as they are only needed at the build time of the documentation. After sagemath#36730, they are part of the sdist of sagemath-doc- html, but not part of the wheel.) By setting `SAGE_DOC_REMOTE_INVENTORIES=yes`, this can be overridden, as previously suggested in sagemath#29231 (comment). In this case it is first tried to contact the remote servers. Fixes sagemath#29231 (stalled since 2020). Fixes sagemath#27164 (stalled since 2019). **Outside the scope of this PR:** - adding such Intersphinx links everywhere (that would be a long-term writing project - https://groups.google.com/g/sage- devel/c/PfYpuOWt8xQ/m/Emn7pZd5AQAJ) - linking to documentation of non-Sphinx projects (see sagemath#37598, sagemath#37577) - any considerations how these .inv files could/should/would be taken from our installations of these packages, or from system packages that ship the documentation. ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [ ] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### ⌛ Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - sagemath#12345: short description why this is a dependency --> <!-- - sagemath#34567: ... --> URL: sagemath#37575 Reported by: Matthias Köppe Reviewer(s): David Coudert, Matthias Köppe
This ticket adds an intersphinx mapping for Sphinx to resolve hyperlinks to the Scipy documentation.
With this change, Sphinx fetches the Scipy inventory file
objects.inv
from https://docs.scipy.org/doc/scipy/reference/ during the docbuild. It links against the latest version of the Scipy documentation to keep it simple.If the download fails, for example when building Sage without internet access, the docbuild will still succeed, but the Scipy cross-links will not be resolved.
CC: @embray @jhpalmieri
Component: documentation
Author: Markus Wageringel
Branch/Commit: u/gh-mwageringel/29231 @
d19232d
Issue created by migration from https://trac.sagemath.org/ticket/29231
The text was updated successfully, but these errors were encountered: