#30010 is not all bad. Doc building elements have been buried inside sage_setup
for a while and that wasn’t a good thing. sage_setup is mostly useless at
runtime and shouldn’t really be installed unless some downstream packages can
make use of it. But the doc building elements are already used by downstream
packages (p_cohomology_group does), so installing them has some value.
My own idea of modularisation would be that each package should be able to build
its own documentation and be testable on its own, before install. Not to split
the whole documentation as a separate package.
I want to repeat #30010 is not without value. Having a helper package to build
the documentation is not a bad idea in itself so long as it applies in the following
order:
* install B (the doc building helper)
* build A, build A’s documentation using B
* install A and its documentation
No C please.
If you read this far, thank you. That’s long enough for such a rant.
François
--
You received this message because you are subscribed to the Google Groups "sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/BE94013F-0363-4E78-94AD-93390E8669EA%40gmail.com.
Instead of trying to fix the problem that you should be building the documentation
before installing, the push to modularisation is currently used to enshrine the
current situation. #30010 actually separate the bits needed to build the sage
documentation in a completely separate package.
So the situation is now:
* install package A
* install package B
* make a package C that takes B and applies it to the install of A and install
the documentation of A (not C).
[...] building the documentation [...]
Of course, if the long term plan is to split this to a separate git repo, then I completely share your concerns.
Sagemath as a meta distribution of stuff has bad habits in regards to
treating “sagelib” as a regular package. In short it doesn’t.
As long as everything is still shipped in the Sage source tarball, isn't it just a matter of changing a path in the build script?
I've always run the doc build directly from the Sage source, without installing anything, and I hope to be able to keep doing it that way (after a quick test, it still seems to be possible after #30010).
numpy does this:you can only build numpy docs after numpy is installed.
I’d like to talk to you on another channel, I have to do a small
patch currently. It may reflect different packaging strategy or
something I could improve.
Here is my current PKGBUILD (after some cleanup I did today) https://github.com/archlinux/svntogit-community/blob/packages/sagemath-doc/trunk/PKGBUILD
I'm building the docs in a separate package for practical purposes (sage requires frequent rebuilds for soname bumps in dependencies, and I don't want to have to build the docs every time) [...]
On Wednesday, March 10, 2021 at 4:50:41 AM UTC-6 Dima wrote:numpy does this:you can only build numpy docs after numpy is installed.Of course, with numpy "installed" doesn't necessarily mean installed in the main site-packages, you can use a virtualenv. Then you delete the virtualenv once the docs are built and install the module and the docs for real.
> On 12/03/2021, at 09:46, Matthias Koeppe <matthia...@gmail.com> wrote:
> you get this type of build isolation for free if you make the documentation a separate distribution according to PEP 517 (pyproject.toml), for which you declare the package as a build-system requirement.
I have been wondering for a while why you want to have those kinds of requirements.
In the autotools world there is no issues with building documentation as part of the
building process even if, potentially like sage, you want some content to be dynamically
generated by executing the just built package.
And that’s when it hits me. In a lot of python packages, building the documentation,
when it is available, a different build system is used than when you where
building the package itself.
In a typical case, you build with distutils/setuptools and then invoke make to start
sphinx to build the doc. [...] since you often use a completely different way of building stuff,
those PEPs literally mandate a separate package.
I guess it is my fault for doing CI, including doc, straight from git.
You can also run `./setup.py develop` to have all extension modules
copied into the main package source, so that it can be directly
importable.
> On 12/03/2021, at 12:14, Matthias Koeppe <matthia...@gmail.com> wrote:
> this one? https://pypi.org/project/sagemath-standard/#files
Even for betas? I was thinking there would only be some for proper releases.
Well, I should get ready to use that stuff directly rather than the sage
git tarball with stuff that I do not use and that requires special settings
to figure out where the sources are located.
9.3 may very well be my last “classic" release of sage.