Skip to content
This repository was archived by the owner on Apr 16, 2025. It is now read-only.

Commit 27ff9c2

Browse files
committed
Add contributing.md
Signed-off-by: John Collier <[email protected]>
1 parent 75ff48f commit 27ff9c2

File tree

1 file changed

+86
-0
lines changed

1 file changed

+86
-0
lines changed

CONTRIBUTING.md

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
# Contributing to this registry
2+
3+
This document outlines the requirements for contributing a devfile stack or sample to this repository.
4+
5+
The [devfile registry structure](https://github.com/devfile/api/blob/main/docs/proposals/registry/registry-structure.md#repository-structure) design doc provides some useful background information on the structure of resources in a devfile registry (and its Git repository).
6+
7+
## Prerequisites
8+
9+
The following are required to build the devfile index container image containing your stack or sample:
10+
11+
- Docker 17.06 or later
12+
- Git
13+
14+
## Stacks
15+
16+
### Contributing
17+
18+
1) Verify your Devfile stack functions with odo.
19+
20+
- Core odo functions such as `odo create --devfile <devfile.yaml>`, `odo push`, `odo url create` should work with the devfile.
21+
- PR tests on this repository will verify this functionality as well.
22+
23+
2) Verify your Devfile stack has the following metadata fields at a minimum:
24+
25+
- Name: The name of the devfile stack, e.g. `java-springboot`.
26+
- Display Name: The longer name of your devfile stack, e.g. `Spring Boot®`.
27+
- Description: A brief description of your devfile stack, e.g. `Spring Boot® using Java`.
28+
- Version: The version of your stack, in semnatic version format, e.g. `1.0.0`.
29+
30+
2) Add a folder for the stack to `stacks/` in this repository.
31+
32+
- Make sure the name matches the devfile stack's name and be in the format `<language>-<framework>`. E.g. `java-quarkus`, `python-django`, etc.
33+
34+
3) Add the devfile.yaml and any other necessary files for the stack under the stack folder.
35+
36+
4) Run the `.ci/build.sh` to build the registry into a container image.
37+
38+
- This will also validate the devfiles in this repository, making sure they conform to a minimum standard.
39+
- This step will also be run in the PR build for the repository.
40+
41+
5) Open a pull request against this repository with a brief description of the change.
42+
43+
44+
### Updating
45+
46+
Updating an existing devfile stack is relatively straightforward:
47+
48+
1) Find the stack under the `stacks/` folder that you wish to update.
49+
2) Make the necessary changes to the stack, such as: updating image tags, commands, starter projects, etc.
50+
3) Update the version of stack, following the [semantic versioning format](https://semver.org/).
51+
4) Test your changes:
52+
53+
- Minimally, testing with odo (`odo create`, `odo push`, etc) is recommended, however if your Devfile is used with other tools, it's recommended to test there as well.
54+
5) Open a pull request against this repository with your changes.
55+
56+
## Samples
57+
58+
### Contributing
59+
60+
The devfile samples used in this devfile registry are stored in the `extraDevfileEntries.yaml` file in the root of the repository. To add a devfile sample:
61+
62+
1) Open `extraDevfileEntries.yaml` in an editor
63+
2) Add an entry to the file with the following required fields:
64+
```
65+
- name: <sample-name>
66+
displayName: <sample-display-name>
67+
description: <sample-description>
68+
icon: <link-to-sample-icon>
69+
tags: ["comma", "separated", "list", "of", "tags"]
70+
projectType: <sample-project-type>
71+
language: <sample-language>
72+
git:
73+
remotes:
74+
origin: <link-to-sample-git-repository>
75+
```
76+
3) Fill in the fields in the angle brackets based on your sample. Note that there must be only one git remote for the devfile sample.
77+
4) Open a pull request against this repository with your changes.
78+
79+
### Updating
80+
81+
To update a sample:
82+
83+
1) Open `extraDevfileEntries.yaml` in an editor.
84+
2) Find the entry for the sample you wish to update.
85+
3) Make the necessary changes.
86+
4) Open a pull request against this repository with your changes.

0 commit comments

Comments
 (0)