|
| 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