-
-
Notifications
You must be signed in to change notification settings - Fork 648
Revive doc-release #40586
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
base: develop
Are you sure you want to change the base?
Revive doc-release #40586
Conversation
Documentation preview for this PR (built with commit bdf6897; changes) is ready! 🎉 |
actually what is livedoc release? I mostly just use the and what rule determines which user can deploy to which netlify URL? |
a464b18
to
91d1eb5
Compare
See the updated PR description. The doc-release is published on every release (so about weekly).
No user deploys. The netlify URL is determined by the sage repo secrets |
You can add "Fixes #40463" to the PR description. |
Thanks. A test running at my repo is not yet finished; hence "Draft" state yet. |
Is there a published version of the built PDF documentation accessible somewhere? I can't find it. |
The test is building pdfs. I will show you when it finished. |
I assume meson builds things faster than make (but doc-build is not 100% meson either, it still uses bootstrap at some parts), it's unfortunate that meson live doc doesn't work. If I understood correctly the logic is moved to doc-build-pdf just because doc-build-pdf still uses make (while doc-build uses meson). Still, working slow code is better than broken code. (also, any idea which part of the code is responsible for deploying the documentation preview on each pull request, and why does that one actually work?) |
It does work. But doc-release (=live doc + pdf docs) needs pdf docs, for which meson does not work yet (right?).
Yes.
For once a weak release, "slow" does not matter much.
See |
not really.
I assume the original |
Thanks for fixing this! A few initial questions/comments:
|
I think this is already discussed above: none of us knows why livedoc on meson fails (yet), so a temporary workaround is to use it in the pdf, which is still based on make.
probably just a mistake caused while doing the manual upload, if you change the
As mentioned in the first message, it's linked from the wiki. I agree it's hard to find though, having in the README would be good. The README, however, links to https://doc.sagemath.org/html/en/index.html—which makes sense, since this is user-facing, and unreleased versions are not visible to most users. Maybe https://doc.sagemath.org/html/en/developer/index.html#section-updating-documentation would be suitable. |
It works with "-j1", as you suggested as a fix. |
Okay, so currently we have meson builds HTML doc, and make builds PDF doc. Why do we need to build the HTML again in the "Build live doc" step, if meson can already build HTML with |
Right. Later if everything works well with meson, all could be combined into single "doc-build.yml" and "doc-publish.yml". However, since building pdf docs takes more time, having separate workflows might be still preferred.
Correct.
Right. "doc-release" is for developers. That provides a sample to be eventually released for users. On the other hand,
I looked around. But I don't see a suitable place; the section is focused on local development. Perhaps Wiki itself should be advertised, but isn't it wildly visible? |
For your information, "doc-release" is also essential for "other version" selector (see below the Sage logo on the left panel) to work. It is currently broken. "doc-release" is the source of "other versions" info. See https://doc-release--sagemath.netlify.app/html/en/versions.txt |
I updated the Wiki to emphasize the doc-release. |
"again" because it is "live doc". And in doc-build-pdf because doc-release should contain pdf docs. An alternative approach is to build live doc with '-j1' in "doc-build" and publish doc-release with pdf docs built in "doc-build-pdf" (after wasting time waiting for pdf docs) But this approach would slow down doc previews for PRs. |
I like this approach better. The live docs are only build on releases and take quite some time, right? So in this case, it would be okay to wait for the live docs + pdf build before publishing them together. Btw, what is the difference between the doc-release and doc-develop netlify sites? I would be fine changing the first sentence on https://doc-develop--sagemath.netlify.app/html/en/index.html to "Documentations in other languages and the most recent beta release are available too." and then link the doc-release. And a similar sentence can be added in the readme. For your info, in #40597, I've now fixed the pdf-meson build and migrated the CI to it. |
It was first advertised here: https://github.com/sagemath/sage/wiki/Sage-10.2-Release-Tour#documentation
I guess we are talking about doc-release and live doc; this thing is different from doc previews for PRs. I think we may add a subsection about the automatic generation of various docs for developers available in github interface (perhaps also about the Wiki :-) in the section about the github repo: https://doc-release--sagemath.netlify.app/html/en/developer/github# However, then this issue is somewhat beyond the present PR. I may do this work in a new PR. |
I gave up that approach and took the present approach, because that approach would slow down generation of doc previews for PRs since the doc-publish action needs to wait for the completion of building pdf docs, which takes long.
doc-develop is used when doc preview diffs (changes) for a PR is generated, by comparing it with doc-pr-xxxxx.
I don't agree. That sentence is about the specific doc version. It is inappropriate to talk about other versions in the same sentence. Anyway, let's deal with the advertisement issue in a new PR mentioned in the previous comment.
I don't know meson and how things are going about meson transition. Hopefully in a sequel to this PR, you may convert pdf doc build stuffs to meson and perhaps then merge |
I'm not sure I quite follow. The "-j1" approach would consist in just uncommenting the currently commented code and adding that not-parallel flag, right? I don't see how this is related to the pdf-doc building. Let's figure out the best way to get the live docs functional using meson. In the best case, even with parallel jobs. If not, then I'm fine with another workaround. But using make in place of meson is just a step backwards and will brake sooner than later again. |
We have [no live doc < make live doc < meson live doc]. The current situation is no live doc, so make live doc is better than that. That said… in my understanding, the ideal dependency is like
but the current one, somehow, have deploy preview depend on doc-pdf. In order to separate this, one need to spin up a separate job. At least that's my current understanding. Without actually trying to implement it, it's probably difficult to tell what's the bottleneck. |
Right. But note that In the situation where doc-publish deals with both publishing doc previews for PRs and doc-release, waiting for doc-build-pdf to finish would slow down generation of doc previews for PRs, which do not need pdf docs. Hence I separated out doc-publish-pdf, which only deals with doc-release. Then it is only natural that livedoc (which contains pdf docs) is generated in doc-build-pdf. |
No. "deploy preview" (= doc preview for PRs in my terminology) does not depend on doc-build-pdf. ... By the way, If you somehow are confused by the pdf icons shown in doc previews (for example, https://doc-pr-40610--sagemath.netlify.app/html/en/), that is another thing broken by the recent upheaval in the documentation building process. (There are no pdf docs linked; The icons should not appear.) The current approach is
(no dependency) ... and the ideal approach (for meson enthusiasts :-) seems to be
(no dependency) |
doc-build-pdf workflow is failing since 10.8.beta0: https://github.com/sagemath/sage/actions/workflows/doc-build-pdf.yml |
Wait, I don't understand. Why does build live doc require doc-pdf? Surely it should require doc-html instead (since it appears on html page)? |
"building live doc" does not require pdfs. But, doc-release is published from live-doc artifact, which contains both htmls (live doc) and pdfs. By the way, building live doc is a complete rebuilding and does not use the previously built htmls. |
It seems that something happened with jupyter kernel "sagemath" in 10.8.beta0:
|
On every release, "doc-release" (full sage documentation with live examples and pdf docs) had been published. That was broken by #40379.
The up-to-date doc-release was available through the Documentation section of the Wiki. Currently available doc-release was manually uploaded by me.
By the way, "doc-release" is also essential for "other version" selector (see below the Sage logo on the left panel) to work. It is currently broken. Note that "doc-release" is the source of "other versions" info. See https://doc-release--sagemath.netlify.app/html/en/versions.txt.
Now doc-release is built in the doc-build-pdf workflow, and published in the new doc-publish-pdf workflow, separated from the doc-publish workflow.
Test run:
doc-build-pdf: https://github.com/kwankyu/sage/actions/runs/17028284341
doc-publish-pdf: https://github.com/kwankyu/sage/actions/runs/16993049457
Deployed doc-release:
https://doc-release--sagemath-test.netlify.app/html/en/reference/
Try "Sage Live" tabs at https://doc-release--sagemath-test.netlify.app/html/en/reference/plot3d/sage/plot/plot3d/plot3d
Fixes #40463.
📝 Checklist
⌛ Dependencies