-
Notifications
You must be signed in to change notification settings - Fork 170
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
Create tutorials and documentation meant for developers that wish to build on the Sphinx stack #837
Comments
Thanks for opening an issue! I guess my point is that I know that it seems like a never-ending task to write tutorials about so many tools, but if I can get away with looking at a short mini-tutorial that links to the relevant source code section for more information, I am already a lot better off! I am quite sure that everybody is aware of these projects, but IMHO these are projects with the best documentation about their "stack":
PS: Slightly off-topic. I also think that this article from Sebastian about the future of education and art could be nicely targeted towards the executable book audience. Especially with many users in educational roles, maybe this could become a platform to invite "artists for education"? |
Heya, I would suggest this needs to be decided as an off-shoot of high-level strategy (see e.g. #839) In particular, should we be encouraging users to work with in the sphinx/docutils space, if (potentially) the high-level strategy is to move to a JavaScript implementation (see e.g. #838)? We should also make sure we are not duplicating upstream efforts and/or trying to upstream any work we do. There is already some good work done, primarily by the RTD guys, to add sphinx tutorials: sphinx-doc/sphinx#9165 I would also note here jupyter-book/jupyter-book#1673, i.e. a push to expose more of sphinx, which again seems at odds with a strategy of moving away from sphinx |
Hope it's okay that I chime in as an outsider. But there's a world of Python users that do not have any of the insight you all have built up from working with docutils and sphinx. When I heard @choldgraf @pradyunsg et al. on Talk Python describing the internals, I was really wishing that I could read about that somewhere. And clearly there are still people in Python land thinking about the tooling Would it be worth writing some summary of "lessons learned about Sphinx/docutils internals" with a big disclaimer at the top that says "we are focusing on js for reasons x, y, z, please see these other doc pages/blog posts/etc". Like, a post mortem (you can give it a more polite title). Of course in general reduplication of effort is bad. But as you all know better than me there's a bit of a divide between Jupyter users and contributors because of javascript. If you at least write down what you learned in a way that's a little more readable for the general public, maybe other Python devs could develop complementary tooling for all the users that aren't going to master Typescript I'd love to see a post with diagrams like in this presentation |
Heya thanks @NickleDave
Yeh I think that's the same kind of here, and more generally its just this trade-off that javascript is not particularly nice to use (Python is certainly better) but it has been the only game in town for web/browser-based development. So thats why JS. Then even if we could use Python, the problem with Sphinx, is that what we really want is a "reference implementation" for https://github.com/executablebooks/myst-spec, and its basically impossible to do this on top of a framework that we don't control, and certainly not one as messy and complicated as sphinx. Sphinx does still have a certain degree of method to its madness though lol, I for instance added the order of events list here: https://www.sphinx-doc.org/en/master/extdev/appapi.html#sphinx-core-events, and it is possible to "master" |
All makes sense to me
In fact you were, sorry! Hadn't made the connection, I blame common names like "Chris". Almost as bad as "David" 🙄 😼 Thank you for taking the time to share the links to the order of execution and what you had written up previously, both are definitely informative to me. I can totally understand not wanting to sound like you are criticizing the really hard-working Sphinx and docutils devs/maintainers who have their own project goals/histories/trade-offs, but something like this as a blog post I do think could be of wide interest
|
Thanks!
Indeed 😆
Yeh so Ideally, I would say, you want some kind of interface layer, whereby you could supply a "virtual file system" for sphinx to work on, using e.g. the python |
@chrisjsewell thank you for providing such a complete overview of your experience with Sphinx/Docutils! |
Hey all - just a quick note that I provide some explanation of my perspective on the Jupyter Book / MyST JS differentiation and plan here: For this issue of tutorials etc, I agree completely that we should offload as much team knowledge about Sphinx and Docutils as possible into the broader community. In my opinion this is where we should direct a significant amount of our capacity on the current grant, as it is crucial to spread knowledge of this stack across multiple people. I'm indifferent as to whether we do this in an Executable Books-specific place, or via upstream contributions to other places. I think the most important thing is to get the information out there because this is where the community is currently bottlenecked. We should take whatever path has the least resistance for now, and decide what to do with the information later. |
I would like to follow up on this a bit. I think that there is almost no question that the executable books project belongs to one of the most experienced "outside" sphinx users/developers (maybe with the readthedocs team) and that you are quite familiar with its shortcomings and limitations. I am aware that this has been discussed in a Sphinx issue (sphinx-doc/sphinx#9165) and that there has been some work to onboard new users, but I am still missing a good introduction for testing Sphinx. I know that from a testing perspective, the MyST ecosystem had to fight quite a bit with directive parsing and post-transforms, but even a trivial 'CLI' guided testing section would be tremendously helpful for writing 'simple' tests. TL;DR: IMHO, I think it would be nice if the executable books project could fill in a couple of holes in the Sphinx documentation regarding testing, as I think this project has the most in-depth knowledge on this subject aside from the core maintainers. I know that the testing methodology of Sphinx is maybe not be how many would like it to be, but a general tutorial for others that will have to use Sphinx would be very helpful for the wider community. Also, given the experience, it would also be nice to have a single blog post, accumulating the experience and giving a single reference to what an alternative solution could do differently. |
Context
The Python implementation of MyST and Jupyter Book depends heavily on Sphinx, and the ways to extend Jupyter Book will require an understanding of how Sphinx works. However, Sphinx and docutils are both very complex, and both of them lack complete and accessible documentation. This makes it hard for people to learn about how our projects work and how to contribute, and also makes it harder for them to extend and build on top of the stack.
Proposal
We should have a dedicated space in the documentation to help people in a few ways to make it easier for them to learn and contribute. Here are a few that came to mind immediately:
References
I think this is also related to:
The text was updated successfully, but these errors were encountered: