On Wed, 10 Mar 2021, 09:21 François Bissey, <frp.bis...@gmail.com> wrote:
> Hi all, > > So today I will be talking about subject that I in sage-on-gentoo have > brushed under the carpet for years focusing on helping to be able to > use more and more components of the system and ultimately get “sagelib” > to be one such component. > > Sagemath as a meta distribution of stuff has bad habits in regards to > treating “sagelib” as a regular package. In short it doesn’t. > > A normal software package usually should only contains it own sources, > vendoring as it is called should be kept at a minimum and some other > best practise are that > * the package can be tested after being built and before being installed > * the package documentation be built usually after the package itself, > but before it is installed and the documentation should be installed > at the same time as the rest of the package. > > Some project offer pre-build documentation, as part of the package if > it is small, or downloadable tarballs if it is large. It is also > the way to go for particularly difficult to build documentation. > I’d say Sagemath will eventually go that way. > > So, we have made progress on vendoring, sage-on-gentoo has been building > Sagelib and the documentation as a regular well behaved package for years > and I have only pestered about the testing. Modularisation may force some > things about the testing and offer solutions to an unmentioned problem > so far, optional dependencies. > > But my situation about being able to build the documentation is under > threat and is hack-ish in any case. > > So how are we building, installing and testing the elements of “vanilla" > sage > at the moment: > * sagelib is built and installed > * using the sagelib install the documentation is built. It is not supposed > to be > possible to build the doc without installing sage first, which is why > sage-on-gentoo’s > ability is really a hack > * testing is done on the installed elements, that includes running tests > inside the documentation > > 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). > > Can anyone point me to some other system that do that? Does anyone else > thinks > that’s a bit insane? > numpy does this: https://numpy.org/devdocs/docs/howto_build_docs.html you can only build numpy docs after numpy is installed. > #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+unsubscr...@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 > . > -- 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+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/CAAWYfq0tAM8kUFjLKi9DJgvcejwTaPXjeSP2ecF0ppHiwHd0qw%40mail.gmail.com.