This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Contribution Guidelines

How to contribute and get started

How to contribute

We’re excited to have you consider contributing to our chaos! Contributions are always appreciated.

Krkn

Contributing to Krkn

If you would like to contribute to Krkn, but are not sure exactly what to work on, you can find a number of open issues that are awaiting contributions in issues.

Adding New Scenarios and Configurations

New Scenarios

We are always looking for new scenarios to make krkn better and more usable for our chaos community. If you have any ideas, please first open an issue to explain the new scenario you are wanting to add. We will review and respond with ideas of how to get started.

If adding a new scenario or tweaking the main config, be sure to add in updates into the CI to be sure the CI is up to date. Please read this file for more information on updates.

Scenario Plugin Development

If you’re gearing up to develop new scenarios, take a moment to review our Scenario Plugin API Documentation. It’s the perfect starting point to tap into your chaotic creativity!

New Configuration to Scenarios

If you are currently using a scenario but want more configuration options, please open a github issue describing your use case and what fields and functionality you would like to see added. We will review the sugguestion and give pointers on how to add the functionality. If you feel inclined, you can start working on the feature and we’ll help if you get stuck along the way.

Work in Progress PR’s

If you are working on a contribution in any capacity and would like to get a new set of eyes on your work, go ahead and open a PR with ‘[WIP]’ at the start of the tite in your PR and tag the maintainers for review. We will review your changes and give you sugguestions to keep you moving!

Office Hours

If you have any questions that you think could be better discussed on a meeting we have monthly office hours zoom link. Please add items to agenda before so we can best prepare to help you.

Good PR Checklist

Here’s a quick checklist for a good PR, more details below:

  • One feature/change per PR
  • One commit per PR squash your commits
  • PR rebased on main (git rebase, not git pull)
  • Good descriptive commit message, with link to issue
  • No changes to code not directly related to your PR
  • Includes functional/integration test (more applicable to krkn-lib)
  • Includes link to documentation PR (documentation hosted in https://github.com/krkn-chaos/website)

Helpful Documents

Refer to the docs below to be able to test your own images with any changes and be able to contribute them to the repository

1 - Git Help For Contributions

How to contribute

Contributions are always appreciated.

How to:

Pull request

In order to submit a change or a PR, please fork the project and follow instructions:

$ git clone http://github.com/<me>/krkn-hub
$ cd krkn-hub
$ git checkout -b <branch_name>
$ <make change>
$ git add <changes>
$ git commit -a
$ <insert good message>
$ git push

Squash Commits

If there are mutliple commits, please rebase/squash multiple commits before creating the PR by following:

$ git checkout <my-working-branch>
$ git rebase -i HEAD~<num_of_commits_to_merge>
   -OR-
$ git rebase -i <commit_id_of_first_change_commit>

In the interactive rebase screen, set the first commit to pick and all others to squash (or whatever else you may need to do).

Push your rebased commits (you may need to force), then issue your PR.

$ git push origin <my-working-branch> --force

Rebase with Upstream

If new commits were merged while you were working you’ll need to rebase with upstream before creating the PR by following:

$ git checkout <my-working-branch>
$ git remote add upstream https://github.com/krkn-chaos/krkn (or krkn-hub)
$ git fetch upstream
$ git rebase upstream/<branch_in_upstream_to_rebase> (most likely `main`)

If any errors occur:

  1. It’ll list off any files that have merge issues
  2. Edit the files with the code blocks you want to keep
  3. Add and continue rebase
$ git add .
$ git rebase --continue
  1. Might need to repeat steps 1-3 until you see Successfully rebased and updated refs/heads/<my-working-branch>.

Push your rebased commits (you may need to force), then issue your PR.

$ git push origin <my-working-branch> --force

Developer’s Certificate of Origin

Any contributions to Krkn must only contain code that can legally be contributed to Krkn, and which the Krkn project can distribute under its license.

Prior to contributing to Krkn please read the Developer’s Certificate of Origin and sign-off all commits with the –signoff option provided by git commit. For example:

git rebase HEAD~1 --signoff
git push origin <branch_name> --force

This option adds a Signed-off-by trailer at the end of the commit log message.