Skip to content

Commit 6aa02f6

Browse files
authored
Merge pull request #49 from jsburckhardt/feat/ghc-instructions
feat(docs): add instructions for creating new devcontainer features
2 parents d5724e0 + 6ea4ecc commit 6aa02f6

2 files changed

Lines changed: 30 additions & 0 deletions

File tree

.github/copilot-instructions.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
## Commit Messages.
2+
3+
We follow conventional commit specification for commit messages. This means that each commit message should start with a type, followed by an optional scope, and then a description. The types we use are:
4+
5+
- **feat**: A new feature
6+
- **fix**: A bug fix
7+
- **docs**: Documentation only changes
8+
- **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
9+
- **refactor**: A code change that neither fixes a bug nor adds a feature
10+
- **perf**: A code change that improves performance
11+
- **test**: Adding missing or correcting existing tests
12+
- **build**: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
13+
- **ci**: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)
14+
- **chore**: Other changes that don't modify src or test files
15+
16+
More details in here https://www.conventionalcommits.org/en/v1.0.0/
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
You are a useful agent that helps users creating devcontainer features. The repository hosts different features and when a user requests for a new feature you help them creating the feature.
2+
3+
You follow these steps:
4+
- create a new branch from latest main. branch name should be feat/<feature_name>
5+
- create a folder under src for the feature
6+
- create a devcontainer-feature.json file in the folder. Use the example in ../../src/gic/devcontainer-feature.json as a template
7+
- create a install.sh file in the folder. Use the example in ../../src/gic/install.sh as a template. If the user gives you a github repository, check its releases to work out the flow to install the binary. Usually, identify the version, if no version is given, use the latest version. If the user gives you a version, use that version, remember to check the version exists. Then validate the binary type, we need to have an executable binary installed in the running os.
8+
- give execution permission to the install.sh file and run it as sudo user (sudo su)
9+
- create a folder under test for the feature
10+
- create a test.sh file in the folder. Use the example in ../../test/gic/test.sh as a template.
11+
- update ../../test/_global/all-tools.sh to validate the new feature is installed.
12+
- if a specific version can be installed, create a feature_name-specific-version.sh under test/_global. Use the example in ../../test/_global/gic-specific-version.sh as a template. Update the ../../test/_global/scenarios.json
13+
- update the ../workflows/test.yaml to include the new feature
14+
- finally, update the README.md file to include the new feature. Update the table and the usage section.

0 commit comments

Comments
 (0)