pypa / hatch

Modern, extensible Python project management
https://hatch.pypa.io/latest/
MIT License
5.91k stars 294 forks source link

Improve structure of documentation for different target groups #625

Open tomschr opened 1 year ago

tomschr commented 1 year ago

Situation

Thanks for this project, it looks really promising. :+1:

As you probably know, I'm the current maintainer of python-semver and I'm also a documentarian. That means, I care about documentation, I like to write them, improve them, etc.

As we are currently migrating the python-semver repository from setuptools to hatch, I also consulted your documentation. :slightly_smiling_face: However, I have some difficulties with it. Maybe it's only me. :wink:

For example, some of my problems were:

However, it's not limited to that. Consider it as a more of a "meta documentation" issue: what should it contain, how it should be structured, whom does it address.

Possible ideas and solutions

I'm aware, from the above description it sounds a bit foggy. That comes a bit from describing my experience and to give a more of a high-level overview.

From my own experience, I know that documentation can be hard to write and to structure. As such, to mitigate the structure problem, I'd like to suggest to look into the Diátaxis doc framework. Cited from their homepage:

The Diátaxis framework aims to solve the problem of structure in technical documentation. It adopts a systematic approach to understanding the needs of documentation users in their cycle of interaction with a product.

Diátaxis identifies four modes of documentation - tutorials, how-to guides, technical reference and explanation. It derives its structure from the relationship between them.

In Diátaxis, each of these modes (or types) answers to a different user need, fulfils a different purpose and requires a different approach to its creation.

This does not mean, we need to change the complete documentation in one single huge pull request. Quite the opposite. Each pull request should fix one problem in the documentation that works towards the above doc framework.

I could imagine the following changes that could be done more or less independently:

It does not mean all of the above items need to be implemented. They just serve as some inspirations. Of course, a project is never finished, and this also applies to the documentation. :wink:

Let me know what you think about. :slightly_smiling_face: I can also help with reviewing some pull request or help to set up the initial change.

Benefits

I think, the project will benefit from a good documentation in many ways:

References

ofek commented 11 months ago

I'm going to post comments about how the documentation is currently hard to navigate to give myself more motivation to devote time to a large refactor.

ofek commented 11 months ago

https://github.com/pypa/hatch/issues/981#issuecomment-1744761966