You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+79-4Lines changed: 79 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,7 +21,21 @@ Or this command on Windows:
21
21
powershell -c "irm bun.sh/install.ps1 | iex"
22
22
```
23
23
24
-
Follow the instructions to ensure that Bun is available globally.
24
+
Follow the instructions to ensure that Bun is available globally. Once Bun is installed, install all necessary dependencies from the root of the repo:
25
+
26
+
Via NPM:
27
+
28
+
```shell
29
+
npm i
30
+
```
31
+
32
+
Via PNPM:
33
+
34
+
```shell
35
+
pnpm i
36
+
```
37
+
38
+
This repo does not support Yarn.
25
39
26
40
### Installing Go (optional)
27
41
@@ -80,16 +94,77 @@ module "example" {
80
94
}
81
95
```
82
96
97
+
## Adding/modifying README files
98
+
99
+
This repo uses Go to do a quick validation of each README. If you are working with the README files at all, it is strongly recommended that you install Go, so that the files can be validated locally.
100
+
101
+
### Validating all README files
102
+
103
+
To validate all README files throughout the entire repo, you can run the following:
104
+
105
+
```shell
106
+
go build ./cmd/readmevalidation && ./readmevalidation
107
+
```
108
+
109
+
The resulting binary is already part of the `.gitignore` file, but you can quickly remove it with:
110
+
111
+
```shell
112
+
rm ./readmevalidation
113
+
```
114
+
115
+
### README validation criteria
116
+
117
+
The following criteria exists for one of two reasons: (1) content accessibility, or (2) having content be designed in a way that's easy for the Registry site build step to use:
118
+
119
+
#### General README requirements
120
+
121
+
- There must be a frontmatter section.
122
+
- There must be exactly one h1 header, and it must be at the very top
123
+
- The README body (if it exists) must start with an h1 header. No other content (including GitHub-Flavored Markdown alerts) is allowed to be placed above it.
124
+
- When increasing the level of a header, the header's level must be incremented by one each time.
125
+
- Additional image/video assets can be placed in one of two places:
126
+
- In the same user namespace directory where that user's main content lives
127
+
- In the top-level `.icons` directory
128
+
- Any `.hcl` code snippets must be labeled as `.tf` snippets instead
129
+
130
+
```txt
131
+
\`\`\`tf
132
+
Content
133
+
\`\`\`
134
+
```
135
+
136
+
#### Contributor profiles
137
+
138
+
- The README body is allowed to be empty, but if it isn't, it must follow all the rules above.
139
+
- The frontmatter supports the following fields:
140
+
-`display_name` (required string) – The name to use when displaying your user profile in the Coder Registry site
141
+
-`bio` (optional string) – A short description of who you are
142
+
-`github` (required string) – Your GitHub handle
143
+
-`avatar_url` (optional string) – A relative/absolute URL pointing to your avatar
144
+
-`linkedin` (optional string) – A URL pointing to your LinkedIn page
145
+
-`support_email` (optional string) – An email for users to reach you at if they need help with a published module/template
146
+
-`employer_github` (optional string) – The name of another user namespace whom you'd like to have associated with your account. The namespace must also exist in the repo, or else the README validation will fail.
147
+
-`status` (optional string union) – If defined, must be one of "community", "partner", or "official". "Community" is treated as the default value if not specified, and should be used for the majority of external contributions. "Official" should be used for Coder and Coder satellite companies. "Partner" is for companies who have a formal business agreement with Coder.
148
+
149
+
#### Modules and templates
150
+
151
+
- The frontmatter supports the following fields:
152
+
-`description` (required string) A short description of what the module/template does.
153
+
-`icon` (required string) – A URL pointing to the icon to use for the module/template when viewing it on the Registry website.
154
+
-`display_name` (optional string) – A name to display instead of the name intuited from the module's/template's directory name
155
+
-`verified` (optional boolean) – A boolean indicated that the Coder team has officially tested and vouched for the functionality/reliability of a given module or template. This field should only be changed by Coder employees.
156
+
-`tags` (optional string array) – A list of tags to associate with the module/template. Users will be able to search for these tags from the Registry website.
157
+
83
158
## Releases
84
159
85
160
The release process is automated with these steps:
86
161
87
-
## 1. Create and merge a new PR
162
+
###1. Create and merge a new PR
88
163
89
164
- Create a PR with your module changes
90
165
- Get your PR reviewed, approved, and merged into the `main` branch
91
166
92
-
## 2. Prepare Release (Maintainer Task)
167
+
###2. Prepare Release (Maintainer Task)
93
168
94
169
After merging to `main`, a maintainer will:
95
170
@@ -117,7 +192,7 @@ After merging to `main`, a maintainer will:
117
192
118
193
The tag format will be: `release/module-name/v1.2.3`
119
194
120
-
## 3. Publishing to Coder Registry
195
+
###3. Publishing to Coder Registry
121
196
122
197
Our automated processes will handle publishing new data to [registry.coder.com](https://registry.coder.com).
0 commit comments