-
Notifications
You must be signed in to change notification settings - Fork 47
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
[doc] 3rd-party documentation should become more actionable #1104
Comments
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
We could potentially fix this specific doc issue, but I'm interested in your broader thoughts about how to better document taskwarrior! |
(I’m sorry that it took me some time to answer and that this answer is so long. I hope you understand that I am invested into this & other issues because I want to aid TaskWarrior and not because I want to just hate. I love TW and am thankful for having access to the software & its code.) Roughly citing from Diátaxis, software documentation can be in different forms, depending on their purpose. Diátaxis identifies:
IMO TWs current documentation consists of mostly Tutorial and How-To Guides, mixed with some Explanation in between, with a lack of proper Reference. Tutorials are great for newbies & How-To Guides are great if you find one aligning with your goal, and TW has a lot of that, which btw. is great. But if you don’t find an aligning How-To Guide, you need Explanation to gain enough understanding, and then Reference to know your possibilities. While Explanation is somewhat easy to maintain (requires changes infrequently), Reference is not because it should be accurate, complete and reliable to be useful. I see three main problems with the current documentation. First, it lacks a bit of separation between these forms. By this I mean that before clicking on a certain title, it is not clear what kind of documentation I will find. Second, the official documentation is split in multiple locations and lacks a lot of usable cross-references. There are, at least, the web documentation, the man pages (e.g. taskrc) and running At last, most "Reference" pages are hard to find and are lacking completeness & authority. E.g. the web page Configuration does not mention that there is a |
IMO, adding a search functionality would be better than giving up on structuring our documentation in pages. Ctrl-F is really not the ideal search engine because you're going to pick up all kinds of cross-references which aren't relevant when you're just trying to learn about a specific concept. It seems to me that, besides searchability, the second lowest hanging fruit you've identified is more and better cross-referencing. Perhaps a glossary of terminology would be helpful for establishing canonical references to terms/concepts? While consistency and intentional differentiation in the documentation type would be ideal, this might serve as a preliminary step because it would highlight the inconsistencies (and possibly omissions). Edit: Silly me, I forgot that there is a glossary: https://taskwarrior.org/docs/terminology/. Perhaps we just need to do more interlinking with it? |
I saw a talk by Daniele Procidat at PyCon years ago and was struggling to find the content. Diátaxis is it! I think it's a great way of understanding and structuring docs. And I agree that the TW docs are not up to those standards. I think you've identified a few key issues:
I feel like the first point would require a pretty substantial rewrite -- which is not to say we shouldn't do it! The second and third points might be addressed by focusing all of the documentation in a single repo (taskwarrior) and using some tooling to make sure it all lines up, so developers can write a piece of reference information once and have it appear everywhere it is required. The last point could be addressed by better search integration, as @ryneeverett suggests. But we might also consider various LLM integrations. I'm no AI booster, but this does seem like a reasonable use of an LLM, especially one that is privacy-respecting and provides links to authoritative information instead of hallucinating. |
Thanks. Its great to read that my points came across.
I would also not give up your structuring in pages. I rather would like to also have a variant of the documentation which is automatically rendered into a single HTML or PDF page. |
I find the offline use case compelling. While it doesn't preclude html/pdf also, getting all the docs into the man pages would be nice. They could be both separate documents and also assembled into a single searchable man page ( |
issue summary
This 3rd-party documentation is actually a great documentation page to have because it increases the chance of 3rd-party software & hooks integrating nicely with each other. But IMO following abstract at the end is not really useful to 3rd-party devs:
The warning/content by itself is important. But IMO it is missing important references to actual useful content. So I mean something developers can immediately work with (instead of becoming frustrated, because they now have to read the full documentation, in the hope that the find every possible hurdle).
reasoning / story
To make an example: "disabling rebuilding the working set":
rc.gc=off
Great. Now you can repeat this steps for at least 5 more points, which is tedious, especially because there is (to my knowledge) no single reference/terminology page to find the right documentation for each point listed in this list.
why it matters?
Because 3rd-party devs can, in theory, just ignore all that stuff. Their code could work for most cases until some "edge case" happens (the ID numbers change while the user did not expect that, suddenly some verbose output is messing up with your code, your code halts because of a seemingly random confirmation question, your code fails because a task title was too long and so wrapped, …).
possible solutions
Each is capable to solve this specific issue by itself. But they could also be combined:
rc.gc=off
)CTRL+F
) page with all references / terminology / …why I create an issue for discussion instead of doing it myself
The text was updated successfully, but these errors were encountered: