Skip to content

Latest commit

 

History

History
130 lines (85 loc) · 6.73 KB

CONTRIBUTING.md

File metadata and controls

130 lines (85 loc) · 6.73 KB

Contributing Guidelines

Welcome! We gladly accept contributions on new tests, example CNFs, updates to documentation, enhancements, bug reports and more.

The CNTI Test Catalog is Apache 2.0 licensed and accepts contributions via GitHub pull requests. Please read the following guidelines carefully to make it easier to get your contribution accepted.

Support Channels:

Support channels include:

Before starting work on a major feature, please reach out to us via GitHub Issues or Slack. We will make sure no one else is already working on it and ask you to open a GitHub issue.

  • Small patches and bug fixes don't need prior communication.

Issues

GitHub Issues are used as the primary method for tracking items for the CNTI Test Catalog. Please self-assign an issue to yourself when you start to work on it so we don't duplicate work :)

Issue Templates

1. New Features: To request an enhancement, please create a new issue using the Feature Request Template

2. Report Bugs: To report a bug, please create a new issue using the Bug Report Template. Check out How to Report Bugs Effectively.

NOTE: To help with debugging, you can enable higher logging level output via the command line or env var

# cmd line
./cnf-testsuite -l debug test

# make sure to use -- if running from source
crystal src/cnf-testsuite.cr -- -l debug test

# env var
LOGLEVEL=DEBUG ./cnf-testsuite test

Also setting the verbose option for many tasks will add extra output to help with debugging

crystal src/cnf-testsuite.cr test_name verbose

Check usage documentation for more info about invoking commands and loggin

3. New CNTI Test Catalog Tests:

  • To request a new workload test, please create a new issue using the New Workload Test Template
  • To request a new platform test, please create a new issue using the New Platform Test Template

4. New CNF Example: To suggest a new CNF, please create a GitHub issue using the New Example CNF template.

To install the CNTI Test Catalog and run a CNF, follow instructions at:

Coding Style:

The test framework and tests (using upstream tools) are written in the human readable, compiled language, Crystal. Common capabilities like dependencies between tests and categories are supported.

Contribution Flow

Outline of what a contributor's workflow looks like:

  1. Fork it (https://github.com/cnti-testcatalog/testsuite/fork)
  2. Create a branch from where you want to base your work (usually main). Example git checkout -b my-new-feature)
  3. Read the install for build and test instructions at INSTALL.md.
  4. Make your changes and arrange them in readable commits.
  5. Commit your changes (Ex. `git commit -am 'Add some feature'``)
    • Make sure your commit messages are in the proper format (see below).
  6. Push to the branch (Ex. git push origin my-new-feature)
  7. Make sure branch is up to date with upstream base branch (eg. main)
  8. Make sure all tests pass, and add any new tests as appropriate.
  9. Create a new Pull Request (PR)

Submitting a PR:

Once you have implemented the feature or bug fix in your branch, you will open a PR to the upstream cnf-testsuite repo. Before opening the PR ensure you rebased on the latest upstream, have added spec tests, if needed, all spec tests are passing.

In order to open a pull request (PR) it is required to be up to date with the latest changes upstream. If other commits are pushed upstream before your PR is merged, you will also need to rebase again before it will be merged.

Using the automated pull request template, please note a description of the changes, the type of change, the issue(s) related to the PR, how the changes have been tested and if updates are needed in the documentation.

For general advice on how to submit a pull request, please see Creating a pull request.

Accepting a PR:

Problem: Pull requests from forks do not have the permissions to run through the github actions CI, so they will fail

Solution: Pull down the source from the fork and branch, then push up the source to the original cnf-testsuite repo.

  1. Make a directory based on the forked user's name in the the pull request. mkdir <contributor-username> cd <contributer-username>
  2. Clone the fork. git clone [email protected]:<contributor-username>/cnf-testsuite.git cd cnf-testsuite
  3. Add the original cnf-testsuite repo. git remote add cncf [email protected]:cnti-testcatalog/testsuite.git
  4. Checkout the pull request's branch. git checkout <pull-request's-branch-name>
  5. Push the branch to the original cnf-testsuite repo. git push <pull-request's-branch-name>
  6. Observe results of the github actions.
  7. (optional) Accept the original pull request if the review and tests pass.
  8. (optional -- changes required) Create a new PR, make changes, and merge into main (Github will automatically merge the original PR since it's changes will be included in the new PR)

Community Meeting:

The CNTI Test Catalog community meets weekly on Tuesdays at 8:00 - 9:00 AM Pacific Time

  • Meeting minutes are here

Thank you!

Thank you for your contributions. We appreciate your help and look forward to collaborating with you!