-
Notifications
You must be signed in to change notification settings - Fork 9
Add a SKIP about documentation #7
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
Open
bacongobbler
wants to merge
11
commits into
spinframework:main
Choose a base branch
from
bacongobbler:documentation
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 8 commits
Commits
Show all changes
11 commits
Select commit
Hold shift + click to select a range
1e22bd6
Add a SKIP about documentation
bacongobbler 284fb9d
add note about hard-wrapping at 100 characters
bacongobbler a50695e
add note about using acronyms/jargon
bacongobbler 665bddf
fix typos
bacongobbler e117306
more typo fixes
bacongobbler d6da7d3
fix word wrapping
bacongobbler e89f921
fix: this SKIP could describe spinkube.dev versioning in the future
bacongobbler a8e6289
add "open questions" section
bacongobbler 1c91c2f
address feedback
bacongobbler 2420aae
slight change of verbiage
bacongobbler 96661db
more terms
bacongobbler File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,170 @@ | ||
| # SKIP 00X - Documenting Spinkube | ||
|
|
||
| Summary: Describe how we document SpinKube and its projects. | ||
|
|
||
| Owner: Matt Fisher <[email protected]> | ||
|
|
||
| Impacted Projects: | ||
|
|
||
| - [x] documentation | ||
| - [x] spin-operator | ||
| - [x] `spin kube` plugin | ||
| - [x] runtime-class-manager | ||
| - [x] containerd-shim-spin | ||
| - [ ] Governance | ||
| - [ ] Creates a new project | ||
|
|
||
| Created: July 23rd, 2024 | ||
|
|
||
| Updated: n/a | ||
|
|
||
| ## Background | ||
|
|
||
| Documentation is important for a reader to understand SpinKube's value. As we move forward from | ||
| proof-of-concept to fully-fledged production system, we need to make sure that all of our | ||
| documentation is clear, concise, and up-to-date. | ||
|
|
||
| ## Proposal | ||
|
|
||
| When we first started the SpinKube project, we created a website at `spinkube.dev` to host our | ||
| documentation. In addition, each of our projects has its own README file in its repository. These | ||
| README files and the website are the primary sources of documentation for SpinKube. | ||
|
|
||
| Moving forward, I propose that we establish a set of principles for how we document SpinKube and its | ||
| projects using the current system as a framework. These principles should be followed by all | ||
| existing and future projects in the SpinKube ecosystem. | ||
|
|
||
| ### Prinicples | ||
|
|
||
| The following describes high-level principles that should be followed when documenting SpinKube: | ||
|
|
||
| 1. We place high importance on the consistency and readability of our documentation. | ||
| 1. We use a consistent writing style across all projects. | ||
| 1. We structure documentation in a consistent manner. | ||
| 1. We keep links and references up-to-date. | ||
| 1. We ensure that documentation matches the version of the project it describes. | ||
|
|
||
| ### Writing style | ||
|
|
||
| Documentation should be written in American English. This includes spelling, grammar, and | ||
| punctuation. For example, use "color" instead of "colour", "center" instead of "centre", and "gray" | ||
| instead of "grey". | ||
|
|
||
| Use the active voice instead of the passive voice. For example, use "SpinKube creates a new SpinApp" | ||
| instead of "A new SpinApp is created by SpinKube". | ||
|
|
||
| Use the present tense instead of the past tense. For example, use "SpinKube creates a new SpinApp" | ||
| instead of "SpinKube created a new SpinApp". | ||
|
|
||
| Use the imperative mood instead of the indicative mood. For example, use "Run `spin kube scaffold`" | ||
| instead of "You can run `spin kube scaffold`". | ||
|
|
||
| Use the second person instead of the first person. For example, use "You can run `spin kube | ||
| scaffold`" instead of "I can run `spin kube scaffold`". | ||
|
|
||
| When using pronouns in reference to a hypothetical person, such as "a user with a session cookie", | ||
| gender-neutral pronouns (they/their/them) should be used. Instead of: | ||
|
|
||
| - he or she... use they. | ||
| - him or her... use them. | ||
| - his or her... use their. | ||
| - his or hers... use theirs. | ||
| - himself or herself... use themselves. | ||
|
|
||
| Try to avoid using words that minimize the difficulty involved in a task or operation, such as | ||
| "easily", "simply", "just", "merely", "straightforward", and so on. People's experience may not | ||
| match your expectations, and they may become frustrated when they do not find a step as | ||
| "straightforward" or "simple" as it is implied to be. | ||
|
|
||
| Try to avoid using acronyms and jargon that are not widely known. For example, use "Kubernetes" | ||
| instead of "k8s", or "Custom Resource Definition" instead of "CRD". If you must use an acronym or | ||
| jargon, define it the first time it is used in the document, and include a link to the glossary | ||
| section of the document. | ||
|
|
||
| Sentences should be hard-wrapped at 100 characters. This makes it easier to read and edit the | ||
| documentation in a text editor. | ||
|
|
||
| In section titles, capitalize only initial words and proper nouns. For example, use "How to install | ||
| SpinKube" instead of "How to Install SpinKube". | ||
|
|
||
| Here are some style guidelines on commonly used terms throughout the documentation: | ||
|
|
||
| - SpinKube - Always capitalize the "S" and "K" in SpinKube. It is lowercase only in source code. | ||
| - email - no hyphen, lowercase. | ||
| - GitHub - uppercase "G" and "H", no space. | ||
| - Kubernetes - always capitalize the "K" in Kubernetes. | ||
| - Spin - always capitalize the "S" in Spin. | ||
| - SpinApp - always capitalize the "S" and "A" in SpinApp. | ||
|
|
||
| ### How the documentation should be structured | ||
|
|
||
| Documentation should be structured in a way that makes it easy to find the information that the | ||
| reader is looking for. | ||
|
|
||
| When referring to a "reader", we refer to their "persona", or the role the reader asssumes as | ||
| they're reading. This could be a user, an operator, a contributor, or someone else. It is important | ||
| to know who is the intended persona because readers will have different needs, different levels of | ||
| understanding, and different expectations as they learn more about the project. For example: | ||
|
|
||
| - A user is someone who uses SpinKube to deploy applications. They know how Spin works and how to | ||
| write a Spin application, but they may not be familiar with Kubernetes. They might be interested | ||
| to know how to deploy their application to SpinKube, diagnose issues with their application, and | ||
| how to submit bug reports. | ||
| - A contributor is someone who contributes to SpinKube and its subprojects. They are familiar with | ||
| Spin and Kubernetes, and they want to improve SpinKube by adding new features or fixing bugs. They | ||
| might be interested to know how to run SpinKube locally, understand SpinKube's architecture, and | ||
| how to contribute to SpinKube. | ||
| - An operator is someone who manages SpinKube in a production environment. They are familiar with | ||
| Kubernetes, and they want to make sure that SpinKube is running smoothly and efficiently. They | ||
| might be interested in how to deploy SpinKube, how to monitor SpinKube, and how to scale their | ||
| infrastructure as their needs increase. | ||
|
|
||
| As a general guideline, documentation should be structured as follows: | ||
|
|
||
| - Introduction: A brief overview of the project, its purpose, and its features. | ||
| - Getting started: Instructions on how to install SpinKube on various platforms. | ||
| - Topic guides: In-depth guides on specific topics, such as how to deploy an application, how to | ||
| monitor application traffic, using SpinKube features, and so on. | ||
| - Reference: technical reference for APIs and other aspects of SpinKube's machinery. | ||
| - Contributing: Information on how to contribute to the project, such as how to report bugs, how to | ||
| request features, how to submit a pull request, and so on. | ||
|
|
||
| Note that the contributing guide should not describe how to compile and run each project locally. | ||
| This information should be in the README file of each project. | ||
|
|
||
| ### Links and references | ||
|
|
||
| Links and references should be kept up-to-date. If a link or reference is no longer valid, it should | ||
| be removed or updated. This includes links to other documents, websites, and so on. | ||
|
|
||
| When referring to another document outside of the SpinKube github organization, such as a project | ||
bacongobbler marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| README file, a blog post, or a website, consider its permanence. If the document is likely to change | ||
| or move, consider copying the relevant information (and attribute the source), or link to a more | ||
| stable source. | ||
|
|
||
| ### Versioning | ||
|
|
||
| The documentation should match the version of the project it describes. For example, if the | ||
| quickstart guide for SpinKube installs version 0.2.0, the rest of the documentation should include | ||
| instructions for version 0.2.0. Features that are available in later versions of SpinKube (such as a | ||
| new feature in a development branch) should not be included in the documentation because the reader | ||
| will not be able to use those features until SpinKube version 0.3.0. | ||
|
|
||
| Note that the current version of this document does not propose a versioning scheme for spinkube.dev | ||
| itself. That is a separate issue that is considered out-of-scope for the current document. | ||
|
|
||
| ## Open questions | ||
|
|
||
| - how do we want to handle third-party documentation? Do we want to allow third-party content in | ||
bacongobbler marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| spinkube.dev? Do we want to put a notice in the content to suggest this has been tested by | ||
| SpinKube maintainers but is not officially maintained? | ||
|
|
||
| ## References | ||
|
|
||
| The following references were consulted in the creation of this SKIP: | ||
|
|
||
| - [Django documentation](https://docs.djangoproject.com/) | ||
|
|
||
| ## Alternatives Considered | ||
|
|
||
| No alternatives were considered. | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.