Proposal for Documentation Template for the Admin Team #886
Replies: 2 comments
-
Considering we also have the documentation website, I would detail what type of documentation should be in the repository and what should be in the website. I also don't think we should use the wiki feature in GitHub, as we already have the website. Maybe documentation for maintenance should be in the repository and usage/contribution should be in the website. The only exception I think should be the README, since it's already common practice for it to include the information that you listed. |
Beta Was this translation helpful? Give feedback.
-
What kind of documentation are we producing or willing to? I would split this discussion into specific ones: Contributing, Changelog, Doc. |
Beta Was this translation helpful? Give feedback.
-
Proposal for Documentation Template for the Admin Team
This document aims to consolidate and formalize a documentation template for the repositories of the Admin team. This particular proposal follows the following premises:
Documentation Structure
Each repository of the Admin team (including templates) will follow the following documentation structure:
Documentation File Structure
All documentation within the root folder:
README.md
The
/README.md
file will be the entry point for the project's documentation. It should be clear and concise, providing essential information about the project, divided into three sections that define its structure:Complete example:
CONTRIBUTING.md
The
/CONTRIBUTING.md
file or contribution section in the/README.md
should describe the contribution process for the project. It should include information about:CHANGELOG.md
The
/CHANGELOG.md
file should contain a record of all relevant changes in the project, including new features, bug fixes, and other modifications.A widely accepted standard for CHANGELOGs is Keep a Changelog, which suggests a specific format and guidelines for organizing and documenting changes, including:
Added
for new features.Changed
for changes in existing functionality.Deprecated
for soon-to-be-removed features.Removed
for now removed features.Fixed
for any bug fixes.Security
in case of vulnerabilities.Some tools can help automate the maintenance of the CHANGELOG and ensure compliance with a standard, such as the aforementioned Keep a Changelog:
Conventional Changelog: Conventional Changelog is a collection of tools and conventions that automatically generate a CHANGELOG based on Git commit messages. It works well for both monorepo and single-repo projects.
Lerna: For monorepo projects, Lerna is a management tool that can help manage and publish various parts of the project from a single repository. It can also be used in conjunction with Conventional Changelog to automatically generate CHANGELOGs for each package in the monorepo.
Semantic Release: Semantic Release is another tool that can automate CHANGELOG generation, as well as package versioning and publishing. It can be used in both single-repo and monorepo projects and follows the SemVer specification.
Husky: Using Git Hooks through Husky is an effective way to ensure CHANGELOG consistency, as it allows for automatic verification of commit messages against a specific specification, such as the mentioned SemVer, before being accepted into the repository. By ensuring that commit messages follow a specific pattern, a consistent CHANGELOG can be generated.
Implementation
To implement the proposed documentation template, we should follow the steps below for each project in the Admin team (including templates like admin-ui-example and the future raccoon template):
/docs
folder in the repository if it doesn't exist yet./README.md
file based on the proposed structure and relevant project information./CONTRIBUTING.md
file or include a "How to Contribute" section in theREADME.md
file with contribution guidelines./CHANGELOG.md
file, following the Keep a Changelog standard and utilizing the mentioned tools for automation and consistency.ARCHITECTURE.md
,OBSERVABILITY.md
, etc.) as needed, including links to them in the` README.md file.README.md
file.CHANGELOG
maintenance and project versioning, unless the project already follows this pattern through releasy.Beta Was this translation helpful? Give feedback.
All reactions