@@ -61,9 +61,9 @@ All modules are organized under `/registry/[namespace]/modules/`. Each contribut
6161
6262### Images and Icons
6363
64- - ** Namespace avatars** : Place your avatar in ` /registry/[namespace]/images/ `
65- - ** Module images ** : Place other images in ` /registry/[namespace]/images/ ` to avoid conflicts
66- - ** Module icons** : Can go in the top-level ` /.icons/ ` directory if used by multiple modules
64+ - ** Namespace avatars** : Must be named ` avatar.png ` or ` avatar.svg ` in ` /registry/[namespace]/. images/ `
65+ - ** Module screenshots/demos ** : Use ` /registry/[namespace]/. images/ ` for module-specific images
66+ - ** Module icons** : Use the shared ` /.icons/ ` directory at the root for module icons
6767
6868---
6969
@@ -75,16 +75,16 @@ If you're a new contributor, create your namespace:
7575
7676``` bash
7777mkdir -p registry/[your-username]
78- mkdir -p registry/[your-username]/images
78+ mkdir -p registry/[your-username]/. images
7979```
8080
8181#### Add Your Avatar
8282
83- Every namespace should have an avatar. Add your avatar image:
83+ Every namespace must have an avatar. Add your avatar image:
8484
85- 1 . Add a square image (recommended: 400x400px minimum) to ` registry/[your-username]/images/ `
86- 2 . Supported formats: ` .png ` , ` .jpg ` , ` .jpeg ` , ` .svg `
87- 3 . Name it something clear like ` avatar .png` or ` profile.jpg `
85+ 1 . Add a square image (recommended: 400x400px minimum) to ` registry/[your-username]/. images/ `
86+ 2 . Name it exactly ` avatar .png` or ` avatar .svg`
87+ 3 . Supported formats: ` .png ` or ` .svg ` only
8888
8989#### Create Your Namespace README
9090
@@ -93,16 +93,21 @@ Create `registry/[your-username]/README.md`:
9393``` markdown
9494---
9595display_name: "Your Name"
96- bio: "Brief description of what you do"
97- avatar_url: "./images/avatar.png"
96+ bio: "Brief description of who you are and what you do"
97+ avatar_url: "./. images/avatar.png"
9898github: "your-username"
99+ linkedin: "https://www.linkedin.com/in/your-username" # Optional
100+ website: "https://yourwebsite.com" # Optional
101+ support_email: "
[email protected] " # Optional
99102status: "community"
100103---
101104
102105# Your Name
106+
107+ Brief description of who you are and what you do.
103108```
104109
105- > ** Note** : The ` avatar_url ` should point to your avatar image relative to your namespace directory .
110+ > ** Note** : The ` avatar_url ` must point to ` ./.images/ avatar.png ` or ` ./.images/avatar.svg ` .
106111
107112### 2. Generate Module Files
108113
@@ -143,7 +148,7 @@ resource "coder_script" "install" {
143148---
144149display_name: "Tool Name"
145150description: "Brief description of what this module does"
146- icon: "../../../.icons/tool.svg"
151+ icon: "../../../../. icons/tool.svg"
147152maintainer_github: "your-username"
148153verified: false
149154tags: ["development", "tool"]
@@ -166,15 +171,17 @@ module "tool" {
166171
167172**Write tests in `main.test.ts`**:
168173```typescript
174+ import { describe, expect, it } from "bun:test";
169175import { runTerraformApply, runTerraformInit, testRequiredVariables } from "~test";
170176
171- describe("module-name", () => {
177+ describe("module-name", async () => {
178+ await runTerraformInit(import.meta.dir);
179+
172180 it("should have required variables", async () => {
173181 await testRequiredVariables(import.meta.dir);
174182 });
175183
176184 it("should apply successfully", async () => {
177- await runTerraformInit(import.meta.dir);
178185 await runTerraformApply(import.meta.dir, {
179186 agent_id: "test-agent-id",
180187 });
@@ -295,15 +302,17 @@ Example: `https://github.com/coder/registry/compare/main...your-branch?template=
295302
296303### README Frontmatter
297304
305+ Module README frontmatter must include:
306+
298307``` yaml
299308---
300309display_name : " Module Name" # Required - Name shown on Registry website
301- description : " What it does" # Required - Short description for Registry
302- icon : " path/to/icon .svg" # Required - Path to icon file
310+ description : " What it does" # Required - Short description
311+ icon : " ../../../../.icons/tool .svg" # Required - Path to icon file
303312maintainer_github : " your-username" # Required - Your GitHub username
304- verified : false # Optional - Set by Coder maintainers only
313+ partner_github : " partner-name" # Optional - For official partner modules
314+ verified : false # Optional - Set by maintainers only
305315tags : ["tag1", "tag2"] # Required - Array of descriptive tags
306- partner_github : " partner-name" # Optional - For official partnerships only
307316---
308317```
309318
0 commit comments