-
Notifications
You must be signed in to change notification settings - Fork 69
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
Rework documentation #197
Comments
@CAM-Gerlach, if you have time, would you like to have a look at our documentation and provide feedback? |
Sure, thanks for asking. I'll keep my initial feedback and suggestions mostly fairly high level, focusing on your goals above (making the docs more accessible to beginners, while enhancing the key information for more advanced users) and the docs you have so far (maybe there are more than this, somewhere else besides the example?). For some context, this comes from the perspective of both a fairly experienced documentarian familiar with the Diataxis principles (that the NumPy, SciPy etc. docs also follow), but also a new user having only minimal familiarity with Meson and MesonPy. Initial impressions and feedbackBelow, I present what I noticed and the questions I had as a first time user of the site. I've embedded it in a details block in case you want to skip right to the suggestions/recommendations. Initial impressions and feedback
Recommended Structure/ContentThese are my high-level suggestions, taking into account both the above and your overall goals.Aside from adding a step by step tutorial, the primary focus is on structuring and plugging the key gaps in what you already have and laying the groundwork for future content you may want to write, as opposed to adding a bunch of new material right away. Consider organizing the content with the basic Diataxis content types that serve different reader needs in mind: Tutorial, How-to, Reference and Explanation. This helps the reader jump to the type of content they are looking for (a beginner quickstart? solutions to specific problems? the command/API reference? Or in-depth behind the scenes details?), and you see what needs you serve well and what you're missing.
Other suggestions:
I'm happy to give further more focused feedback and/or suggestions if there's something more specific you'd like my input on. |
This is great, thanks so much for the extensive feedback @CAM-Gerlach! I agree with the big picture of this - organizing everything according to the Diataxis framework. A couple of other scattered thoughts:
|
I'm so glad it is helpful to you! I was worried it was way too much and would be overwhelming.
+1
I'm guessing you might be referring to the Python Packaging User Guide tutorial (despite being the de-facto flagship tutorial of the PyPUG, its not nearly as visible/prominent as it could be on the homepage/ToC). I was going to recommend linking there, though I'm not totally sure about how it might be best to integrate backends like MesonPy (and Scikit-Build, once Henry stabilizes the PEP 517 support—funny enough, it was he that recently revised it to tabbed-by-backend organization you mention), since the main focus of the page is on beginners with pure-Python code, whereas introducing C extensions and separate build systems adds a fair amount of additional considerations and complexity. That would be something the various folks involved (you, Henry, the PyPUG maintainers, and the other packaging folks) would want to discuss and think about, once MesonPy and its docs are ready to be included—a Discourse thread on the packaging category might be best.
+1
That would be really helpful and I neglected to mention it above; I went looking for some early adopters to get a sense of an example usage, but didn't see a list in the docs. |
If you have any comments on https://mesonbuild.com/ as well, I'd be happy to help incorporate feedback. I'm not a documentation expert by any means, although I do believe Meson's API reference docs are excellent at a minimum. |
@eli-schwartz My first high-level impression, as both a first-time visitor to the site with minimal Meson experience and as a documentarian, is that the docs look quite complete and comprehensive, with all the major pieces there (tutorials, how-tos, user reference, API reference, some amount of explanations, and a healthy helping of ancillary, meta- and developer-focused docs. However, at least to me, the current organization and structure of the docs feels a little overwhelming, not so well-organized, hard to navigate easily and logically and potentially confusing. Specific first impressionsFor example, as a new user starting out, there's a "Getting Meson" guide, an "Absolute Beginners Guide to Installing and Using", a "Quickstart Guide", a Tutorial, what appears to be another tutorial with a very specific name (building SDL2 app), all at the top level—and under Additional Documentation, there's another In-Depth Tutorial. Where should I start, and where should I go from there? Most of these give some kind of introduction, but I don't see a lot connections between these documents (now that you've done XXX, you can move on to YYY and ZZZ in order to...). It could use a coherent organizational structure, and a high-level page/section listing these learning resources in one place, and at least briefly introducing each and providing a suggested sequence. Likewise, I went looking for the "API reference docs" you referred to above, and was a bit confounded by the fact that there's a Manual, a Reference Manual, Reference Tables, and a Quick Reference menu, all at the top level. Peering inside the "Manual", I was hit with a massive flat list of topics, from which I quickly retreated. After a bit of digging and looking at things, I figured out you must be referring to the sections in the Reference Manual. Indeed, seems clear enough—within that section, it's well organized, and suitably formatted and structured for API reference docs. I was a bit confused at first when the topics I was seeing at the top of the top-level Reference Manual page didn't match those in the sidebar, though I did figure out it was just in a different order, for some reason. Searching for methods, even by fully qualified name, was also not so friendly or easy to navigate, and didn't always work reliably, though I assume that has more to do with your docs system (I haven't heard of Aside from that, if I were looking for how to do something specific with Meson (i..e. a "How to" guide), there's the How do I do X in Meson with a long flat list of tasks, but there's also a number of misclanious how-to-type documents floating around in the root, others under "Additional documentation" as well as some "How to" type material in the FAQ. Likewise, I'd expect to find most of the developer documentation and meta-documents under "Contributing to Meson", but some of that is under Additional Documentation too. And overall, the ordering did not seem the most logical. I could provide more detailed recommendations for a more helpful, logical and organized structure here or in a more appropriate venue, but overall, I'd suggest:
Again, all the moving pieces look to more or less be there—compared to all the work that's clearly gone into them so far, a very modest amount of thoughtful organization should help go a long way toward making all the detailed content you have friendlier to new users, quicker to navigate for experienced users, and more accessible, discoverable and useful to everyone in between. |
Thanks again for the detailed analysis @CAM-Gerlach!
I kinda agree with that. I really like the Meson docs, pages are well-written and the content is quite complete. However, I've spent a lot of time in those docs, and navigating them is still confusing on occasion. Multiple sidebar and foldouts, content not always logically organized, and the way the search bar works is odd. For the last point, maybe migrating to a new doc generator would help - also makes it easier to build the docs, I had trouble with |
FWIW, |
Closes mesonbuild#197, mesonbuild#230, mesonbuild#253, and mesonbuild#264 Sets us up to fix mesonbuild#138, mesonbuild#233, and mesonbuild#224 Signed-off-by: Filipe Laíns <[email protected]>
Closes mesonbuild#197, mesonbuild#230, mesonbuild#253, and mesonbuild#264 Sets us up to fix mesonbuild#138, mesonbuild#233, and mesonbuild#224 Signed-off-by: Filipe Laíns <[email protected]>
Closes mesonbuild#197, mesonbuild#230, mesonbuild#253, and mesonbuild#264 Sets us up to fix mesonbuild#138, mesonbuild#233, and mesonbuild#224 Signed-off-by: Filipe Laíns <[email protected]>
Closes mesonbuild#197, mesonbuild#230, mesonbuild#253, and mesonbuild#264 Sets us up to fix mesonbuild#138, mesonbuild#233, and mesonbuild#224 Signed-off-by: Filipe Laíns <[email protected]>
Closes mesonbuild#197, mesonbuild#230, mesonbuild#253, and mesonbuild#264 Sets us up to fix mesonbuild#138, mesonbuild#233, and mesonbuild#224 Signed-off-by: Filipe Laíns <[email protected]>
Closes mesonbuild#197, mesonbuild#230, mesonbuild#253, and mesonbuild#264 Sets us up to fix mesonbuild#138, mesonbuild#233, and mesonbuild#224 Signed-off-by: Filipe Laíns <[email protected]>
Closes mesonbuild#197, mesonbuild#230, mesonbuild#253, and mesonbuild#264 Sets us up to fix mesonbuild#138, mesonbuild#233, and mesonbuild#224 Signed-off-by: Filipe Laíns <[email protected]>
Closes mesonbuild#197, mesonbuild#230, mesonbuild#253, and mesonbuild#264 Sets us up to fix mesonbuild#138, mesonbuild#233, and mesonbuild#224 Signed-off-by: Filipe Laíns <[email protected]>
The documentation is not super accessible to new users. I would like to rewrite it so that it is more accessible to new users, while still presenting the required information for advanced users.
The text was updated successfully, but these errors were encountered: