Closed amznestebanpapp closed 1 year ago
Took a look at the size issue, it seems the o3de.org repo has a "static" folder with doxygen-generated documentation. That documentation has a lot of duplicated files, e.g. jquery.js
takes 171Kb and its there 91 times.
Describe the feature you'd like available on the website
Currently we don't have a good way to document a feature that is not available in other versions. Suppose a new feature is introduced in development, a user on a particular release (e.g. 21.11.1) reading the documentation may read about the feature, but the feature is not available in that release. This can create confusion. For a developer, its also hard to figure out when to introduce the documentation. Developers usually do one of the following options:
Proposed implementation
A solution that seems to be common among sites is to present an option to choose the documentation version the user wants to use. Then the documentation site adjusts to such version. Some examples: CMake:
Read the docs:
![image](https://user-images.githubusercontent.com/81431996/145452370-97e2bbc0-67f5-43a9-ad7a-56e7812d378b.png)
I would expect to put the documentation for the feature into a development branch in the o3de.org repo around the same time that is developed. Then users of o3de.org select "development" and see the feature's documentation (docs would likely be a bit behind). If they select "21.11.1" they don't see it. Once development is branched into a new stabilization, I would expect the same to happen to documentation. Once stabilization is made into a release, I would expect the same to happen to documentation. Of course, documentation is usually behind, so at those branch points there may be docs that need to be merged into different branches.
I understand there may be practical limitations, tools and/or features that need to be worked on with the current doc framework.
This is my understanding of the current issues:
Available alternatives
A suggested alternative is to flag things and state in which version they become available. This IMO is harder to achieve and maintain. A feature is usually done in the development branch. It could take months for that feature to become part of a release. We currently name releases based on the month the release happens, so it would be problematic to predict what the next release will be and mark the documentation accordingly. This IMO is also really hard to read. In the cases where I have seen documents written this way (e.g. Microsoft documentation), it makes it really hard to understand which versions it applies to. Sometimes it ends up a mix with "sections" stating the differences between versions and/or making the whole page state something like "Applies to version X". Microsoft also has the approach to not deprecate things, which is not our case. In our case we may have a feature that starts one way and changes to something else and ends up being something completely different. Documenting that in one page, with the different options will not only be extremely hard for the person writing the documentation, it will make it really hard to read.