mirror of
https://github.com/coder/registry.git
synced 2026-06-02 20:48:14 +00:00
docs: Update and split Contribution docs. (#122)
Co-authored-by: Atif Ali <atif@coder.com>
This commit is contained in:
+103
@@ -0,0 +1,103 @@
|
||||
# Maintainer Guide
|
||||
|
||||
Quick reference for maintaining the Coder Registry repository.
|
||||
|
||||
## Setup
|
||||
|
||||
Install Go for README validation:
|
||||
|
||||
```bash
|
||||
# macOS
|
||||
brew install go
|
||||
|
||||
# Linux
|
||||
sudo apt install golang-go
|
||||
```
|
||||
|
||||
## Daily Tasks
|
||||
|
||||
### Review PRs
|
||||
|
||||
Check that PRs have:
|
||||
|
||||
- [ ] All required files (`main.tf`, `main.test.ts`, `README.md`)
|
||||
- [ ] Proper frontmatter in README
|
||||
- [ ] Working tests (`bun test`)
|
||||
- [ ] Formatted code (`bun run fmt`)
|
||||
- [ ] Avatar image for new namespaces (`avatar.png` or `avatar.svg` in `.images/`)
|
||||
|
||||
#### Version Guidelines
|
||||
|
||||
When reviewing PRs, ensure the version change follows semantic versioning:
|
||||
|
||||
- **Patch** (1.2.3 → 1.2.4): Bug fixes
|
||||
- **Minor** (1.2.3 → 1.3.0): New features, adding inputs
|
||||
- **Major** (1.2.3 → 2.0.0): Breaking changes (removing inputs, changing types)
|
||||
|
||||
PRs should clearly indicate the version change (e.g., `v1.2.3 → v1.2.4`).
|
||||
|
||||
### Validate READMEs
|
||||
|
||||
```bash
|
||||
go build ./cmd/readmevalidation && ./readmevalidation
|
||||
```
|
||||
|
||||
## Releases
|
||||
|
||||
### Create Release Tags
|
||||
|
||||
After merging a PR:
|
||||
|
||||
1. Get the new version from the PR (shown as `old → new`)
|
||||
2. Checkout the merge commit and create the tag:
|
||||
|
||||
```bash
|
||||
# Checkout the merge commit
|
||||
git checkout MERGE_COMMIT_ID
|
||||
|
||||
# Create and push the release tag using the version from the PR
|
||||
git tag -a "release/$namespace/$module/v$version" -m "Release $namespace/$module v$version"
|
||||
git push origin release/$namespace/$module/v$version
|
||||
```
|
||||
|
||||
Example: If PR shows `v1.2.3 → v1.2.4`, use `v1.2.4` in the tag.
|
||||
|
||||
### Publishing
|
||||
|
||||
Changes are automatically published to [registry.coder.com](https://registry.coder.com) after tags are pushed.
|
||||
|
||||
## README Requirements
|
||||
|
||||
### Module Frontmatter (Required)
|
||||
|
||||
```yaml
|
||||
display_name: "Module Name"
|
||||
description: "What it does"
|
||||
icon: "../../../../.icons/tool.svg"
|
||||
maintainer_github: "username"
|
||||
partner_github: "partner-name" # Optional - For official partner modules
|
||||
verified: false # Optional - Set by maintainers only
|
||||
tags: ["tag1", "tag2"]
|
||||
```
|
||||
|
||||
### Namespace Frontmatter (Required)
|
||||
|
||||
```yaml
|
||||
display_name: "Your Name"
|
||||
bio: "Brief description of who you are and what you do"
|
||||
avatar_url: "./.images/avatar.png"
|
||||
github: "username"
|
||||
linkedin: "https://www.linkedin.com/in/username" # Optional
|
||||
website: "https://yourwebsite.com" # Optional
|
||||
support_email: "you@example.com" # Optional
|
||||
status: "community" # or "partner", "official"
|
||||
```
|
||||
|
||||
## Common Issues
|
||||
|
||||
- **README validation fails**: Check YAML syntax, ensure h1 header after frontmatter
|
||||
- **Tests fail**: Ensure Docker with `--network=host`, check Terraform syntax
|
||||
- **Wrong file structure**: Use `./scripts/new_module.sh` for new modules
|
||||
- **Missing namespace avatar**: Must be `avatar.png` or `avatar.svg` in `.images/` directory
|
||||
|
||||
That's it. Keep it simple.
|
||||
Reference in New Issue
Block a user