Closed
Description
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 atemplates
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