Skip to content
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

Docs: add feature documentation for build.jobs #9067

Closed
agjohnson opened this issue Apr 1, 2022 · 6 comments · Fixed by #9138
Closed

Docs: add feature documentation for build.jobs #9067

agjohnson opened this issue Apr 1, 2022 · 6 comments · Fixed by #9138
Assignees
Labels
Accepted Accepted issue on our roadmap Needed: documentation Documentation is required

Comments

@agjohnson
Copy link
Contributor

Author some documentation with some examples, common use cases, and some more description of the new feature.

@agjohnson
Copy link
Contributor Author

This originally mentioned authoring guide content, but I'd still like to push more content into top-level, feature documentation, instead of tucked away in guides content.

We need to decide how we want to describe this as a product feature, we need something more user-friendly than calling it build.jobs. If someone asked me to describe it I'd call it something more like "build command hooks" or something.

Anyways, when I say feature documentation, I'm describing a top-level document "Build customization" or something that we would slide into the list of Read the Docs features on the front page.

@humitos
Copy link
Member

humitos commented Apr 4, 2022

We've talked a little about how to expose this to users in one of our planning meetings and we have some notes at https://trello.com/c/zuGW7ywZ/9-execute-arbitrary-commands#comment-60524f6b21f59534f53e33c7. In those notes, there are some examples about what users would like to do with this (e.g. doxygen, openapi/swagger, etc). It may be good to review those notes and expand with examples in the documentation guide.

@humitos
Copy link
Member

humitos commented Apr 5, 2022

I think it's fine to work in a document named "Build customization" as you mentioned. I did some research to find the common cases we were asked for and I found some of them that we could use in this document.

I wrote these notes as a potential structure this document could have --but I don't know how to write the document yet 😅 :

@agjohnson please, let me know if this is more or less aligned with what you have in mind.

@ericholscher
Copy link
Member

ericholscher commented Apr 5, 2022

Testing is another good one to cover. I think it makes sense to break these high-level goals out into their own guides, eg. Testing your documentation which could cover:

I think we already have a build process page, which should probably hold a lot of this proposed info and needs some updates: https://docs.readthedocs.io/en/latest/builds.html

I think Build customization is pretty generic, and I'd like to see more focused content solving common issues broken out into guides, I think. That seems like it would be easier to find, but at least having the content written somewhere is more important than how it's structured IMO.

I do think we should have a full guide covering all the various build.jobs configs, but also include longer use cases in topic-specific guides as well. I'm imagining build.jobs being a reference, but I'm not sure what the structure of that would be. Perhaps as part of the TOC that you proposed, in the Build process page?

@humitos humitos added Needed: documentation Documentation is required Accepted Accepted issue on our roadmap labels Apr 5, 2022
@agjohnson
Copy link
Contributor Author

I'd agree some of this should also be included in our build process documentation, and eventually we want some guides for specific use cases. I don't have a problem with minor examples in our feature documentation, these are low stakes and we can produce these fairly easily.

But, I'm mostly advocating for writing more top-level content that we can market first, perhaps focusing a bit on our SEO. This doc is especially important, as build customization is the primary place that users need to fiddle with RTD.

Guides are much more specific, and not as discoverable or translatable as generic content. We can always add guides as we go and find gaps in our documentation or user use-cases. It may help to accumulate solutions to user use cases, like how to test with Sphinx, but the initial missing piece is more generic than guide content.

I put down some more thoughts here, but general discoverability of our documentation is a significant (but very separate) issue:
https://github.com/readthedocs/meta/issues/7

@humitos what you're describing is indeed close to what I'm describing, and perhaps even a step or two further. I'd be happy to have any start to a doc like this, but agree we could use a bottom up approach to a doc like this. This is maybe one of the more important documents we should maintain, and the fact that our config file doc comes up in search results most frequently is maybe proof of that.

However, generally speaking, I think we need to balance our documentation out more and author narrative content rather than link to our config file documentation. I agree the config file doc works great as a reference doc, but it doesn't do a great job of guiding the user if they don't know what they need.

And it arguably shouldn't, it's a reference doc. This is where narrative or feature documentation would help guide the user more, and likely make SEO easier.

The one thing I'll add to your list, is that we should cover the build steps sequentially and with a bit more description of what happens before/after each step. This could be a replacement for some of the content in the build process doc. That doc needs some additional help to be useful though. But anyways, for non-core team it's probably not clear when these build hooks are executed and what native commands are executed in between:

image

@humitos
Copy link
Member

humitos commented Apr 25, 2022

I opened a PR at #9138 with an initial version of this. I think it covers the main aspects we discussed here and it could work as a starting point that we can improve over time when we find more use cases and more examples.

I left Eric's idea for testing outside this initial version. I think these particular cases can be covered in user guides as we talked. I mainly focused on having narrative content that walks the user through the default build process pointing them to specific config keys to improve their experience. Finally, if that's not enough, it points them to the "Build customization" page that explains how to use build.jobs more deeper.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Accepted Accepted issue on our roadmap Needed: documentation Documentation is required
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

3 participants