Skip to content

Create new hub repository for modules/templates/future Coder resources #530

Closed
coder/registry
#1
@f0ssel

Description

@f0ssel

We've decided that we're going to create a monorepo for holding all templates, modules, user profiles (particularly partners), and any other Coder resource types that can receive open-source contributions.

The specific name of the repo isn't 100% final, but we think that this directory structure makes the most sense and has the best tradeoffs:

repository-root/
├── hub/
|   ├── matifali/
|   |   ├─ README.md
|   |   ├─ modules/
|   |   |  ├── airflow/
|   |   |  └── jetbrains/
|   |   ├─ templates/
|   |   |  ├── azure_vm/
|   |   |  └── aws_ec2/
|   |   └─ other_resource_types_in_the_future/
|   ├── nataindata/
|   |   ├─ README.md
|   |   ├─ modules/
|   |   ├─ templates/
|   |   └─ other_resource_types_in_the_future/
|   └── etc/
|       ├─ modules/
|       ├─ templates/
|       └─ other_resource_types_in_the_future/
├── testing/
|   └─ put_general_testing_helpers_here/
├── ci/
|   └─ put_all_ci_stuff here/
└── .logos

The idea is that there would be one main top-level directory (tentatively named hub), and directly inside that would be a set of user directories:

  • A user is free to contribute their own directory
  • Inside each user directory would be a number of subdirectories, one for each resource type. We would be launching with support for a modules subdirectory and a templates subdirectory
  • Each user directory must include a README.md file. This file would define metadata about who the user is, which would then be rendered in the Registry site as a profile page.

Each README must include frontmatter that follows a specific schema. There is another issue for adding CI to validate the structure of each schema. The current schema proposal looks like this:

# User Profile Schema
---
display_name: Atif Ali # required
bio: # optional
avatar: https://github.com/matifali.png # optional, use GitHub avatar if not specified or can be URL
github: matifali # required
linkedin: ioatif # optional
website: https://matifali.dev # optional for individuals
company: # optional, reference to a company profile
email: # optioanl contact email
status: community # options: official | partner | community (default: community if not specified)
---

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions