summaryrefslogtreecommitdiff
path: root/mentoring/programs
diff options
context:
space:
mode:
authorJeffrey Sica <jeef111x@gmail.com>2020-04-13 12:30:27 -0400
committerJeffrey Sica <jeef111x@gmail.com>2020-04-22 12:14:45 -0400
commit80817da158e1a73335f951f1d739c132e2a2be4e (patch)
tree1643c5376197a86fd207194c952af2d86f34737f /mentoring/programs
parentb91c28a6d6955f15959a9c14b77ad5524174b3d3 (diff)
move ncw under mentoring subproject
Diffstat (limited to 'mentoring/programs')
-rw-r--r--mentoring/programs/new-contributor-workshop/OWNERS17
-rw-r--r--mentoring/programs/new-contributor-workshop/README.md45
-rw-r--r--mentoring/programs/new-contributor-workshop/build-and-test.md27
-rw-r--r--mentoring/programs/new-contributor-workshop/community-groups.md27
-rw-r--r--mentoring/programs/new-contributor-workshop/contributor-paths.md26
-rw-r--r--mentoring/programs/new-contributor-workshop/first-issue-help.md31
-rw-r--r--mentoring/programs/new-contributor-workshop/how-we-communicate.md33
-rw-r--r--mentoring/programs/new-contributor-workshop/labels-and-bots.md25
-rw-r--r--mentoring/programs/new-contributor-workshop/live-pr-demo.md24
-rw-r--r--mentoring/programs/new-contributor-workshop/new-contributor-workshop-lead.md38
-rw-r--r--mentoring/programs/new-contributor-workshop/playground-exercise.md28
-rw-r--r--mentoring/programs/new-contributor-workshop/repo-tour.md24
-rw-r--r--mentoring/programs/new-contributor-workshop/workspace-setup.md24
13 files changed, 369 insertions, 0 deletions
diff --git a/mentoring/programs/new-contributor-workshop/OWNERS b/mentoring/programs/new-contributor-workshop/OWNERS
new file mode 100644
index 00000000..0c10d897
--- /dev/null
+++ b/mentoring/programs/new-contributor-workshop/OWNERS
@@ -0,0 +1,17 @@
+reviewers:
+ - alisondy
+ - guineveresaenger
+ - jberkus
+ - jeefy
+ - tpepper
+
+approvers:
+ - alisondy
+ - guineveresaenger
+ - jberkus
+ - jeefy
+ - tpepper
+
+labels:
+ - area/mentorship-planning
+ - sig/contributor-experience \ No newline at end of file
diff --git a/mentoring/programs/new-contributor-workshop/README.md b/mentoring/programs/new-contributor-workshop/README.md
new file mode 100644
index 00000000..d497a737
--- /dev/null
+++ b/mentoring/programs/new-contributor-workshop/README.md
@@ -0,0 +1,45 @@
+# New Contributor Workshops
+
+
+## Overview
+
+This folder contains the [handbook for the New Contributor Workshop Content Lead](./new-contributor-workshop-lead.md) as well as playbooks for each of the New Contributor Workshop sessions.
+
+This workshop is held periodically by the Kubernetes Community, but materials and processes may be used at contributor focused summits and events anywhere.
+
+## Upcoming Workshops
+
+None scheduled
+
+## Previous Workshops
+* [2019 NA Contributor Summit NCW](https://www.youtube.com/watch?v=uUJrGwAom-E&list=PL69nYSiGNLP0OWp38tPBc-jSlMmwWr6Ci&index=16) (Videos in playlist, links to first NCW video)
+
+## Sample Track for Beginner Workshop
+
+This workshop is meant for folks who have never contributed to opensource before and/or need help setting up a Kubernetes developer environment.
+
+1. Welcome
+1. [Live PR Demo](./live-pr-demo.md)
+1. [Paths to Contributorship](./contributor-paths.md)
+1. [Communication in the Kubernetes Community](./how-we-communicate.md)
+1. [Community Group and Governance Overview](./community-groups.md)
+1. [Kubernetes Orgs Overview](./repo-tour.md)
+1. [Workspace Setup](./workspace-setup.md)
+1. [Local Build&Test](./build-and-test.md)
+1. [Pull Request Exercise](./playground-exercise.md)
+1. [Find Your First Issue](./first-issue-help.md)
+
+## Sample Track for Intermediate Workshop
+
+This workshop differs from the Beginner workshop in that participants are expected to have a working Docker/Kubernetes/Go setup. They have a basic understanding of how opensource contributions work, and may have opened a PR against Kubernetes before.
+
+1. Welcome
+1. [Live PR Demo](./live-pr-demo.md)
+1. [Paths to Contributorship](./contributor-paths.md)
+1. [Communication in the Kubernetes Community](./how-we-communicate.md)
+1. [Community Group and Governance Overview](./community-groups.md)
+1. [Kubernetes Orgs Overview](./repo-tour.md)
+1. k/k Walkthrough
+1. [Local Build&Test](./build-and-test.md)
+1. Labels, Bots and Git Workflow
+1. [Find Your First Issue](./first-issue-help.md)
diff --git a/mentoring/programs/new-contributor-workshop/build-and-test.md b/mentoring/programs/new-contributor-workshop/build-and-test.md
new file mode 100644
index 00000000..147d91a3
--- /dev/null
+++ b/mentoring/programs/new-contributor-workshop/build-and-test.md
@@ -0,0 +1,27 @@
+## Build and Test
+
+### Duration
+
+40-60 minutes, depending on beginner vs intermediate participants
+
+### Task Overview
+
+Build Kubernetes binaries locally, and do some fun things with them.
+
+**Important** Have facilitators to help with technical issues (2-3 is enough for Intermediate, you want 5 for Beginner)
+
+### Slides
+
+Clear command line instructions.
+
+### Details To Cover
+
+- This is the hands-on part. Details are up to you; look to previous workshops for inspiration.
+- Adjust difficulty based on whether this is the Beginner or Intermediate workshop.
+- It is _extremely important_ to run this part of the workshop several times previously, and to make sure that versions match those in the [workspace setup](./workspace-setup.md).
+
+### Ideas
+
+- Do a fun thing with the Kubernetes [go client](https://git.k8s.io/client-go) and a [kind](https://sigs.k8s.io/kind) cluster.
+- Build and modify `kubectl`.
+- Try a `make` command; be aware you may need to give docker a lot of space on your machine for a successful build.
diff --git a/mentoring/programs/new-contributor-workshop/community-groups.md b/mentoring/programs/new-contributor-workshop/community-groups.md
new file mode 100644
index 00000000..01a8c80c
--- /dev/null
+++ b/mentoring/programs/new-contributor-workshop/community-groups.md
@@ -0,0 +1,27 @@
+## Community Groups
+
+### Duration
+
+15 minutes
+
+### Task Overview
+
+Introduce SIGs, Working Groups, and a tiny bit of governance (if you must).
+
+### Slides
+
+Refer to previous workshops for inspirations.
+
+### Details To Cover
+
+- SIGs
+- Subprojects
+- Working Groups
+- User Groups
+- Committees
+- How to Join Any Of The Above
+
+### Ideas
+
+- Stay simple. Don't make it too complicated.
+- Ask participants to define a few example SIGs via audience interaction. \ No newline at end of file
diff --git a/mentoring/programs/new-contributor-workshop/contributor-paths.md b/mentoring/programs/new-contributor-workshop/contributor-paths.md
new file mode 100644
index 00000000..d14691eb
--- /dev/null
+++ b/mentoring/programs/new-contributor-workshop/contributor-paths.md
@@ -0,0 +1,26 @@
+## Contributor Paths
+
+### Duration
+
+10-30 minutes
+
+### Task Overview
+
+This is about contributor origin stories.
+
+### Slides
+
+Refer to previous workshops for inspirations
+
+### Details To Cover
+
+- Who can contribute?
+- What skills are needed?
+- How to Fit Contributions Into Your Job
+- Balance knowledge with learning and the needs of the project
+
+### Ideas
+
+- Share some contributor origin stories
+- Ask the room why they are at the workshop
+- Have a few people share their thoughts
diff --git a/mentoring/programs/new-contributor-workshop/first-issue-help.md b/mentoring/programs/new-contributor-workshop/first-issue-help.md
new file mode 100644
index 00000000..b99488af
--- /dev/null
+++ b/mentoring/programs/new-contributor-workshop/first-issue-help.md
@@ -0,0 +1,31 @@
+## Finding Your First Issue
+
+### Duration
+
+20 minutes
+
+### Task Overview
+
+Set participants on as much of a paved path to contributor success as possible.
+At this point in the workshop, participants should know what kind of issue they want to tackle.
+
+### Slides
+
+Refer to previous workshops for inspirations
+
+### Details To Cover
+
+- help-wanted and good-first-issue labels
+- Up and coming sandbox projects
+- Working with your SIG
+- Refer participants to specific SIGs
+- How to "claim" an issue (since non-members cannot self-assign)
+- Path to [membership](/community-membership.md)
+
+### Ideas
+
+- Give folks time to discuss and help each other
+- Gather information from SIGs in advance (via Slack, Twitter...) on who needs help, and at what level
+- Prepare a list of issues and assign folks right there
+- Connect participants to mentoring tracks if available (e.g. Release Team Shadow)
+
diff --git a/mentoring/programs/new-contributor-workshop/how-we-communicate.md b/mentoring/programs/new-contributor-workshop/how-we-communicate.md
new file mode 100644
index 00000000..777929e2
--- /dev/null
+++ b/mentoring/programs/new-contributor-workshop/how-we-communicate.md
@@ -0,0 +1,33 @@
+## How We Communicate
+
+### Duration
+
+10-30 minutes
+
+### Task Overview
+
+Show how we communicate in the community, and which tools are for what purpose.
+
+### Slides
+
+Refer to previous workshops for inspirations.
+
+### Details To Cover
+
+- [Code of Conduct](https://git.k8s.io/community/code-of-conduct.md) (CoC)
+- Where We Talk:
+ - Slack
+ - Discuss
+- How We Decide:
+ - GitHub
+ - Zoom
+ - Mailing List
+- Calendar
+- Meetups
+
+### Ideas
+
+- Have a #ncw channel on Slack. The first person who finds the Slack channel with the most members, or the longest name(etc) and posts in here wins a prize!
+- Everyone introduces their neighbor and a cool Kubernetes fact about them in a Slack or Discuss channel/topic.
+- Put an easter egg in the mailing list and whoever discovers it first by joining and reading the discussions, wins a prize!
+- Come up with the most creative TL;DR for the CoC. \ No newline at end of file
diff --git a/mentoring/programs/new-contributor-workshop/labels-and-bots.md b/mentoring/programs/new-contributor-workshop/labels-and-bots.md
new file mode 100644
index 00000000..0e191f03
--- /dev/null
+++ b/mentoring/programs/new-contributor-workshop/labels-and-bots.md
@@ -0,0 +1,25 @@
+## Labels and Bots
+
+### Duration
+
+10 - 15 minutes
+
+### Task Overview
+
+Show the Kubernetes automation and PR workflow, as well as the bot command help page.
+This task is meant as a short overview for Intermediate content.
+
+### Slides
+
+The [PR workflow diagram](https://git.k8s.io/community/blob/master/contributors/guide/git_workflow.png) is useful here. There are also previous slides that explain the differnet labels.
+
+### Details To Cover
+
+- Which labels are used how, and by whom?
+- How to add labels
+- Other bot commands
+- Prow
+
+### Ideas
+
+- Play with bots in the [contributor playground](https://sigs.k8s.io/contributor-playground)
diff --git a/mentoring/programs/new-contributor-workshop/live-pr-demo.md b/mentoring/programs/new-contributor-workshop/live-pr-demo.md
new file mode 100644
index 00000000..27b6c97e
--- /dev/null
+++ b/mentoring/programs/new-contributor-workshop/live-pr-demo.md
@@ -0,0 +1,24 @@
+## Live PR Demo
+
+### Duration
+
+Plan for about 30 minutes
+
+### Task Overview
+
+Demonstrate opening a pull request against the [Kubernetes/Kubernetes](https://git.k8s.io/kubernetes) (k/k) repository. There are some docs cleanup good-first-issues, but feel free to show off something you've been working on for a while.
+
+### Slides
+
+None; this is a live demo.
+
+### Details To Cover
+
+- Make sure to prepare code in advance but only commit locally
+- Show the k/k pull request workflow
+- Show the PR templates and fill them out, explaining why
+- Interact with the bot and briefly mention labels/OWNERS files
+- Leave room for questions, but be aware that the workflow will be covered in depth later.
+
+### Ideas
+- ask the audience or a pre-planned reviewer for code review, showing more of the k/k automation
diff --git a/mentoring/programs/new-contributor-workshop/new-contributor-workshop-lead.md b/mentoring/programs/new-contributor-workshop/new-contributor-workshop-lead.md
new file mode 100644
index 00000000..dfbf0547
--- /dev/null
+++ b/mentoring/programs/new-contributor-workshop/new-contributor-workshop-lead.md
@@ -0,0 +1,38 @@
+# New Contributor Workshop Lead
+
+## Overview
+The New Contributor Workshop Lead is in charge of planning and executing the New Contributor Workshop. They will coordinate with the overall Events Team and the organizers of related activities aimed at new contributors.
+
+## Skills and Qualifications
+
+The New Contributor Content Lead must be a current, active Kubernetes contributor who is knowledgeable of the community and organizational structure of the Kubernetes project, as well as familiar with building and developing Kubernetes.
+They should have experience and be comfortable with teaching in a workshop setting and presenting interactively in front of an audience.
+Additionally, they must be able to relate to and empathize with newcomers of many different experience levels.
+As this role is part of a subproject of SIG-contributor-experience, the New Contributor Content Lead must be a member of SIG-contributor-experience.
+
+## Activities
+
+*These tasks reflect a rough timeline leading from the end of the previous New Contributor Workshop to the currently planned one.*
+- Attend event planning meetings in preparation for the New Contributor Workshop, where applicable.
+- Create a Workshop Content Proposal and link in an Issue to k/community:
+ - determine sessions and their overall topic (e.g. How We Communicate, Code Base Walkthrough, etc)
+ - determine what difficulty/experience levels will be offered, if any, and coordinate with Lead
+ - determine workshop capacity, and coordinate with Lead
+ - determine room requirements (size, number, table/chair layout, A/V) and coordinate with the planning team
+- Coordinate with New Contributor Content Shadows to prepare them for leading this role.
+- Recruit and coordinate with workshop teachers for any sessions/topics you do not wish to teach yourself (e.g. invite someone to speak on "Communication in the Kubernetes Project").
+- Make modifications and continuous improvements to the new contributor workshop template.
+Incorporate feedback from previous New Contributor Workshops.
+Shadows and co-presenters are expected to assist and review these updates.
+[Past presentations are linked here](https://github.com/cncf/presentations/tree/master/kubernetes) - please make a copy of the existing deck before updating/editing.
+- Work with Registration to:
+ - disseminate course materials (slides) in advance
+ - ensure participants sign the CLA
+ - ensure attendees meet technical and experience requirements for their course
+ - obtain a comprehensive list of names, emails, and GitHub handles
+- Ensure to advertise the SIG-Intros.
+- Solicit feedback from workshop participants.
+
+## Time Commitment
+
+1-2 hours/week most of the time, 4-5 in the weeks leading up to NCW, depending on previous teaching/shadowing experience.
diff --git a/mentoring/programs/new-contributor-workshop/playground-exercise.md b/mentoring/programs/new-contributor-workshop/playground-exercise.md
new file mode 100644
index 00000000..6aca9178
--- /dev/null
+++ b/mentoring/programs/new-contributor-workshop/playground-exercise.md
@@ -0,0 +1,28 @@
+## Playground Exercise
+
+### Duration
+
+30 - 50 minutes
+
+### Task Overview
+
+Give new contributors the experience of the Kubernetes GitHub workflow!
+This task requires some setup and planning.
+
+Create a New Contributor Workshop folder specific to this event, with teachers' and participants' GitHub handles in the OWNERS file.
+[Here is an example](https://sigs.k8s.io/contributor-playground/seattle). Make sure to obtain participants' GitHub handles from the event registrar in advance.
+Issue and PR exercise ideas can be found [here](https://sigs.k8s.io/contributor-playground/exercises).
+
+### Slides
+
+Refer to previous workshops for inspirations.
+
+### Details To Cover
+
+- Labels and bot commands - more material [here](./labels-and-bots.md)
+- Automation
+- How to assign reviewers
+
+### Ideas
+
+- The first person to `/honk` on a PR wins a prize!
diff --git a/mentoring/programs/new-contributor-workshop/repo-tour.md b/mentoring/programs/new-contributor-workshop/repo-tour.md
new file mode 100644
index 00000000..d1f46ee0
--- /dev/null
+++ b/mentoring/programs/new-contributor-workshop/repo-tour.md
@@ -0,0 +1,24 @@
+## Repo Tour
+
+### Duration
+
+10 - 15 minutes
+
+### Task Overview
+
+Show that Kubernetes is not just about the Core Repository, but also about the other repos in the org and in kubernetes-sigs.
+
+### Slides
+
+Have a few overview slides, but also go off-book and live show the repos on GitHub.
+
+### Details To Cover
+
+- k/website, k/test-infra, k/community, k/enhancements, with explanations
+- Exciting things in kubernetes-sigs
+
+
+### Ideas
+
+- Ask participants if they have found or are interested in specific repos, and share about their purpose.
+- Mention which repos need help, or have awesome good-first-issue shepherding from maintainers! \ No newline at end of file
diff --git a/mentoring/programs/new-contributor-workshop/workspace-setup.md b/mentoring/programs/new-contributor-workshop/workspace-setup.md
new file mode 100644
index 00000000..19dbef29
--- /dev/null
+++ b/mentoring/programs/new-contributor-workshop/workspace-setup.md
@@ -0,0 +1,24 @@
+## Workspace Setup
+
+### Duration
+
+Plan for 90- 120 minutes of download and setup time when on wifi. When on a workshop specific network, this may be much shortened.
+
+### Task Overview
+
+Make sure all Beginning Contributors have a workspace setup for hacking on Kubernetes.
+
+**Important** Have facilitators to help with technical issues (3-5 for ~30 people)
+
+### Slides
+
+Clear and large download commands to copy into the terminal.
+
+### Details To Cover
+
+- Make sure everyone has the correct setup for a local build and test demo.
+
+### Ideas
+
+- Have a dedicated workshop network.
+- When internet is slow, start the download and prep process during earlier sessions, to make sure everyone is up to date.