Hi All,

If you're interested in contributing to the Kata Project but don't know where to start, here are some pointers...

= TL;DR =

The general advice is:

- Start small.
- If in doubt, raise an issue.
- Talk to us! ;)

= Read =

- https://github.com/kata-containers/documentation/blob/master/install/README.md
- https://github.com/kata-containers/community/blob/master/CONTRIBUTING.md
- https://github.com/kata-containers/documentation/blob/master/architecture.md
- https://github.com/kata-containers/documentation/blob/master/Developer-Guide.md

If something is unclear/missing/wrong, raise an issue so we (or you, if you want) can fix it.

= Review =

Take a look at some of the PRs that are in the queue:

- https://github.com/pulls?utf8=%E2%9C%93&q=is%3Aopen+is%3Apr+org%3Akata-containers

Add comments if you don't understand something. We want the code to be as easy to understand as possible, so asking questions (even "silly questions" aka "questions nobody else though of" or "questions nobody else was brave enough to ask"!) helps to ensure that.

= Tackle =

Take a look at the "bitesize" and "good first issue" issues:

https://github.com/issues?utf8=%E2%9C%93&q=is%3Aopen+org%3Akata-containers+label%3A%22good+first+issue%22+
https://github.com/issues?q=is%3Aopen+org%3Akata-containers+label%3Abitesize

Add a comment stating that you'd like to have a go. If you don't know how to start, ask for help! Note that multiple people can be assigned to an issue if necessary.

= Lurk =

Attend Architecture Committee and Working Committee meetings:

- https://katacontainers.io/

You don't need to be an architect / programmer / existing contributor to join! ;)

Hang out on slack+irc - see below.

= Talk =

We don't bite - come along and chat on slack/irc and let us know the sorts of things you'd like to get involved in:

- https://github.com/kata-containers/community/blob/master/CONTRIBUTING.md#contact

= Promote =

We'd love to have a regular blog post summarising the "week in Kata". If you'd like to get involved, see:

- http://lists.katacontainers.io/pipermail/kata-dev/2018-April/000113.html.

= Play =

Install Kata and see how it works:

- https://github.com/kata-containers/documentation/blob/master/install/README.md

= Test =

We're always looking to increase our test coverage. Each repo has it's own set of unit tests but we keep all other types of tests in it's own repo and all those tests also get run against all PRs for system components:

https://github.com/kata-containers/tests

Take a look at the unit-test coverage for, say, the runtime repo and see if you can find a way to increase it:

https://github.com/kata-containers/runtime

= Customise =

Try building a custom image with osbuilder:

- https://github.com/kata-containers/osbuilder

= Optimise =

Enable full debug (https://github.com/kata-containers/documentation/blob/master/Developer-Guide.md#enable-full-debug), create a Kata Container and then start analysing the logs.

We've got a basic tool called kata-log-parser that can convert the kata log entries to other formats (text, XML, JSON, TOML, YAML, CSV). Along with high-resolution timestamps, the tool also collates all the log entries and calculates time deltas. That isn't quite as good as system level tracing but can give you an indication of which parts of the system might need further investigation:

- https://github.com/kata-containers/tests/tree/master/cmd/log-parser

= Overcome =

Take a look at the limitations doc and see if you can help to chip away at the outstanding issues:

- https://github.com/kata-containers/documentation/blob/master/Limitations.md

Cheers,

James
---
Open Source Technology Center
Intel Corporation (UK) Ltd. - Co. Reg. #1134945 - Pipers Way, Swindon SN3 1RJ.