You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tvm.apache.org by GitBox <gi...@apache.org> on 2021/09/08 00:34:35 UTC

[GitHub] [tvm-rfcs] hogepodge commented on a change in pull request #27: Formalize TVM Documentation Organization

hogepodge commented on a change in pull request #27:
URL: https://github.com/apache/tvm-rfcs/pull/27#discussion_r703939881



##########
File path: rfcs/0027-formalize-documentation-organization.md
##########
@@ -0,0 +1,430 @@
+- Feature Name: `Formalize TVM Documentation Organization`
+- Start Date: 2021-09-01
+- RFC PR: [apache/tvm-rfcs#0027](https://github.com/apache/tvm-rfcs/pull/0027)
+- GitHub Issue: [apache/tvm#00xx](https://github.com/apache/tvm/issues/0000)
+
+# Summary
+[summary]: #summary
+
+This RFC proposes a refactoring of TVM documentation. The goal of this refactor
+is to create a document architecture that classifies four major documentation types:
+
+* Tutorials,
+* How-tos,
+* Deep Dives,
+* and Reference
+
+then organizes the documents them based on those types. The desired result is
+to make it easier for entire TVM community, to easily find documentation to
+meet their needs, whether they are new users or experienced users. Another goal
+is to make it easier for the development community to contribute to the TVM
+documentation. It recognizes that while in most communities there is a distinct
+divide between the user and the developer communities, there can be significant
+overlap given the nature of TVM as an optimizing compiler.
+
+# Motivation
+[motivation]: #motivation
+
+TVM has seen an explosion of growth since it was released as an open source project,
+and formally grauated as an official Apache Software Foundation project. The vision of
+the Apache TVM Project is to host a "diverse community of experts and
+practitioners in machine learning, compilers, and systems architecture to build
+an accessible, extensible, and automated open-source framework that optimizes
+current and emerging machine learning models for any hardware platform."
+
+The TVM community has done an excellent job in producing a wide range of documents to describe
+how to successfully install, use, and develop for TVM. The documenation project grew with
+the community, to address the immediate needs of the developer community. However, one
+consistent piece of feedback is that the documentation is difficult to navigate, with beginner
+material mixed in with advanced material. As a result, it can be difficult for new users
+to find the exact information they need, and can work against the vision of the project.
+
+This RFC aims to refactor the organization of the TVM docs, loosely following the [formal
+documentation style described by Divio](https://documentation.divio.com). This system has been chosen
+because it is a:
+
+> "simple, comprehensive and nearly universally-applicable scheme. It is proven
+> in practice across a wide variety of fields and applications."
+
+This RFC is primarily concerned with the organization of the documents, and not
+the content. As such, the implementation of this RFC would move documents, and
+only create new documents as top-level placeholders, indexes, and documentation
+about the system itself.
+
+
+# Guide-level explanation
+[guide-level-explanation]: #guide-level-explanation
+
+## The Four Document Types
+
+### Introductory Tutorials
+
+These are step by step guides to introduce new users to a project. A successful
+introductory tutorial successfully get the user engaged with the software
+without necessarily explaining why the software works the way it does. Those
+explanations can be saved for other document types; the introductory tutorial
+focuses on a successful first experience. These are the most important docs to
+turning newcomers into new users and developers. A fully end-to-end tutorial,
+from installing TVM and supporting ML software, to creating and training a
+model, to compiling to different architectures will give a new user the
+opportunity to use TVM in the most efficient way possible.
+
+Tutorials need to be repeatable and reliable, because the lack of success means
+a user will look for other solutions.
+
+### How-to Guides
+
+These are step by step guides on how to solve particular problems. The user can
+ask meaningful questions, and the documents provide answers. An examples of
+this type of document might be, “how do I compile an optimized model for ARM
+architecture?” or “how do I compile and optimize a TensorFlow model?” These
+documents should be open enough that a user could see how to apply it to a new
+use case. Practical usability is more important than completeness. The title
+should tell the user what problem the how-to is solving.
+
+How are tutorials different from how-tos? A tutorial is oriented towards the
+new developer, and focuses on successfully introducing them to the software and
+community. A how-to in contrast focuses on accomplishing a specific task within
+the context of basic understanding. A tutorial helps to onboard, a how-to helps

Review comment:
       The primary difference is a how-to requires basic prior knowledge of the software, and answers a question that user would have. A tutorial assumes no knowledge, and is meant show a user what they can accomplish with the software.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@tvm.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org