Skip to content

Outreach student checklist

James O. D. Hunt edited this page Jan 12, 2024 · 38 revisions

Overview

This page lists some initial tasks that Kata Containers outreach students should consider performing early on in the process.

Advice

Before we continue, let's pause for a classic quote from the cover of the Hitchhiker's Guide to the Galaxy...

🔴🔴🔴🔴⚪⚪  ⚪🔴🔴🔴🔴🔴⚪  🔴⚪⚪⚪⚪⚪🔴  ⚪🔴🔴🔴  🔴🔴🔴🔴🔴🔴🔴
🔴⚪⚪⚪🔴⚪  🔴⚪⚪⚪⚪⚪🔴  🔴🔴⚪⚪⚪⚪🔴  ⚪🔴🔴🔴  ⚪⚪⚪🔴⚪⚪⚪
🔴⚪⚪⚪⚪🔴  🔴⚪⚪⚪⚪⚪🔴  🔴⚪🔴⚪⚪⚪🔴  ⚪⚪⚪🔴  ⚪⚪⚪🔴⚪⚪⚪
🔴⚪⚪⚪⚪🔴  🔴⚪⚪⚪⚪⚪🔴  🔴⚪⚪🔴⚪⚪🔴  ⚪⚪🔴⚪  ⚪⚪⚪🔴⚪⚪⚪
🔴⚪⚪⚪⚪🔴  🔴⚪⚪⚪⚪⚪🔴  🔴⚪⚪⚪🔴⚪🔴  ⚪⚪⚪⚪  ⚪⚪⚪🔴⚪⚪⚪
🔴⚪⚪⚪🔴⚪  🔴⚪⚪⚪⚪⚪🔴  🔴⚪⚪⚪⚪🔴🔴  ⚪⚪⚪⚪  ⚪⚪⚪🔴⚪⚪⚪
🔴🔴🔴🔴⚪⚪  ⚪🔴🔴🔴🔴🔴⚪  🔴⚪⚪⚪⚪⚪🔴  ⚪⚪⚪⚪  ⚪⚪⚪🔴⚪⚪⚪

🔴🔴🔴🔴🔴🔴  ⚪⚪⚪🔴⚪⚪⚪  🔴⚪⚪⚪⚪⚪🔴  🔴🔴🔴  ⚪🔴🔴🔴🔴⚪
🔴⚪⚪⚪⚪🔴  ⚪⚪🔴⚪🔴⚪⚪  🔴🔴⚪⚪⚪⚪🔴  ⚪🔴⚪  🔴⚪⚪⚪⚪🔴
🔴⚪⚪⚪⚪🔴  ⚪🔴⚪⚪⚪🔴⚪  🔴⚪🔴⚪⚪⚪🔴  ⚪🔴⚪  🔴⚪⚪⚪⚪⚪
🔴🔴🔴🔴🔴🔴  🔴⚪⚪⚪⚪⚪🔴  🔴⚪⚪🔴⚪⚪🔴  ⚪🔴⚪  🔴⚪⚪⚪⚪⚪
🔴⚪⚪⚪⚪⚪  🔴🔴🔴🔴🔴🔴🔴  🔴⚪⚪⚪🔴⚪🔴  ⚪🔴⚪  🔴⚪⚪⚪⚪⚪
🔴⚪⚪⚪⚪⚪  🔴⚪⚪⚪⚪⚪🔴  🔴⚪⚪⚪⚪🔴🔴  ⚪🔴⚪  🔴⚪⚪⚪⚪🔴
🔴⚪⚪⚪⚪⚪  🔴⚪⚪⚪⚪⚪🔴  🔴⚪⚪⚪⚪⚪🔴  🔴🔴🔴  ⚪🔴🔴🔴🔴⚪

Please continue to refer to this advice whilst reading through the remainder of this document 😄

Ok? Let's do this!

The Golden Rules

By participating in a Kata Containers Outreach project you agree to be bound by the "Golden Rule":

Golden Rule #1: If in doubt, ask a mentor!

Or in more detail...

Golden Rule #1: If you...

  • get stuck
  • have questions
  • are worried about something
  • are confused
  • don't understand
  • just want to chat ;)

... ask one of your mentors!

Golden Rule #2: Talk to each other regularly and in person if possible.

If at all possible arrange to meet each other daily, in person to talk over progress, issues, and to discuss what you've learned and what you are struggling with.

Assumptions and requirements

For details of required skills and knowledge, required hardware, etc, see the pre-flight checklist page.

Required skills and knowledge

Tasks

The table below shows a list of preparatory tasks you should consider attempting.

Note: Not all these tasks are required and they certainly don't all need to be completed simultaneously!

Done? When? Category Type Task Notes
⚠️ day 1 environment required Install rust toolchain https://www.rust-lang.org/tools/install or distro-packaged version
⚠️ day 1! (*) code very strongly recommended Start reading and writing rust from day 1 Start reading "the rust book" and write that "hello, world!" program asap!
week 1 project required Read and agree to our code of conduct
week 1 environment required Setup a Linux development environment (Ubuntu, Fedora, etc) You can use a GitHub codespace environment for basic compilation, and you may be able to run a Kata Container in that environment.
week 1 read strongly recommended Read the project overview and onboarding presentation
week 1 environment strongly recommended Ensure you have a backup strategy for your development environment This could be as simple as git push
week 1 ideally install required Learn how to install Kata Create a Kata container using containerd
week 1 ideally project recommended Found a problem? Please raise a GitHub issue! 😄
week 1 setup recommended Join the Kata community Join all channels if possible
before raising a PR docs recommended Read the Kata contributing guide Skim and refer back as necessary
first 2 weeks ideally contribute ⚠️ very strongly recommended ⚠️ Raise a "one liner" PR (of any type) Even a one letter typo PR is good. This will help you ensure git is configured correctly, and give you contact with the community via the PR reviewers. Plus it will help you understand our CI systems and the checks performed on all PRs, which will save you a lot of time later.
within first 6 weeks contribute ⚠️ very strongly recommended ⚠️ Raise a tiny/small rust PR Again, it doesn't matter that it's small: we're starting to build up the complexity incrementally
any time familiarise recommended Try out a few tasks in the Things-for-a-developer-to-do-after-installing-Kata
any time familiarise recommended "Lurk" in the Kata Architecture Committee meeting Just listen in, or participate
any time familiarise recommended Look at our project glossary Feel free to update as necessary
any time familiarise recommended Look over our main repository
any time familiarise optional Look over our tests repository May be of interest, but most outreach test work will be unit testing (in the main repository)
any time familiarise recommended Read the Kata design docs (current gen and next gen)
any time project desirable Please add to the suggestions page This could help you all now and will benefit future outreach projects!

Key:

  • (*): Day 1? Seriously? Yes! 😄

Tasks advice

Note:

Yes, some of this is repeated in the table above, but these points are so important that they cannot be stressed enough ;)

  • Keep asking questions.
  • Ask for help when you need it!
  • Start reading and writing rust code as early as possible.

Questions and answers

See the Outreach-student-faq.

Final thoughts

How are you feeling?

Appendices

Terminology

Term Description Notes
CI Continuous Integration (system) auto-triggered test system
PR Pull Request A set of changes (patches) to review

Linux development and test environment

See the pre-flight checklist page.

See also