From 22377d2e4562ffd4a783fef1e58c932d768d6cab Mon Sep 17 00:00:00 2001 From: alisondy Date: Tue, 28 Apr 2020 12:13:16 +1200 Subject: Update NCW Resources --- .../2020/03-contributor-summit/README.md | 13 ++ .../2020/03-contributor-summit/content-proposal.md | 165 +++++++++++++++++++++ .../2020/03-contributor-summit/runbook.md | 160 ++++++++++++++++++++ .../programs/new-contributor-workshop/README.md | 39 +---- .../new-contributor-workshop/build-and-test.md | 27 ---- .../new-contributor-workshop/community-groups.md | 27 ---- .../new-contributor-workshop/contributor-paths.md | 26 ---- .../new-contributor-workshop/first-issue-help.md | 31 ---- .../new-contributor-workshop/how-we-communicate.md | 33 ----- .../new-contributor-workshop/labels-and-bots.md | 25 ---- .../new-contributor-workshop/live-pr-demo.md | 24 --- .../new-contributor-workshop-lead.md | 38 ----- .../playground-exercise.md | 28 ---- .../programs/new-contributor-workshop/repo-tour.md | 24 --- .../new-contributor-workshop/resources/README.md | 38 +++++ .../resources/build-and-test.md | 27 ++++ .../resources/community-groups.md | 27 ++++ .../resources/contributor-paths.md | 26 ++++ .../resources/first-issue-help.md | 31 ++++ .../resources/how-we-communicate.md | 33 +++++ .../resources/labels-and-bots.md | 25 ++++ .../resources/live-pr-demo.md | 24 +++ .../resources/new-contributor-workshop-lead.md | 38 +++++ .../resources/playground-exercise.md | 28 ++++ .../resources/repo-tour.md | 24 +++ .../resources/workspace-setup.md | 24 +++ .../new-contributor-workshop/workspace-setup.md | 24 --- 27 files changed, 684 insertions(+), 345 deletions(-) create mode 100644 mentoring/programs/new-contributor-workshop/2020/03-contributor-summit/README.md create mode 100644 mentoring/programs/new-contributor-workshop/2020/03-contributor-summit/content-proposal.md create mode 100644 mentoring/programs/new-contributor-workshop/2020/03-contributor-summit/runbook.md delete mode 100644 mentoring/programs/new-contributor-workshop/build-and-test.md delete mode 100644 mentoring/programs/new-contributor-workshop/community-groups.md delete mode 100644 mentoring/programs/new-contributor-workshop/contributor-paths.md delete mode 100644 mentoring/programs/new-contributor-workshop/first-issue-help.md delete mode 100644 mentoring/programs/new-contributor-workshop/how-we-communicate.md delete mode 100644 mentoring/programs/new-contributor-workshop/labels-and-bots.md delete mode 100644 mentoring/programs/new-contributor-workshop/live-pr-demo.md delete mode 100644 mentoring/programs/new-contributor-workshop/new-contributor-workshop-lead.md delete mode 100644 mentoring/programs/new-contributor-workshop/playground-exercise.md delete mode 100644 mentoring/programs/new-contributor-workshop/repo-tour.md create mode 100644 mentoring/programs/new-contributor-workshop/resources/README.md create mode 100644 mentoring/programs/new-contributor-workshop/resources/build-and-test.md create mode 100644 mentoring/programs/new-contributor-workshop/resources/community-groups.md create mode 100644 mentoring/programs/new-contributor-workshop/resources/contributor-paths.md create mode 100644 mentoring/programs/new-contributor-workshop/resources/first-issue-help.md create mode 100644 mentoring/programs/new-contributor-workshop/resources/how-we-communicate.md create mode 100644 mentoring/programs/new-contributor-workshop/resources/labels-and-bots.md create mode 100644 mentoring/programs/new-contributor-workshop/resources/live-pr-demo.md create mode 100644 mentoring/programs/new-contributor-workshop/resources/new-contributor-workshop-lead.md create mode 100644 mentoring/programs/new-contributor-workshop/resources/playground-exercise.md create mode 100644 mentoring/programs/new-contributor-workshop/resources/repo-tour.md create mode 100644 mentoring/programs/new-contributor-workshop/resources/workspace-setup.md delete mode 100644 mentoring/programs/new-contributor-workshop/workspace-setup.md (limited to 'mentoring/programs') diff --git a/mentoring/programs/new-contributor-workshop/2020/03-contributor-summit/README.md b/mentoring/programs/new-contributor-workshop/2020/03-contributor-summit/README.md new file mode 100644 index 00000000..283fe402 --- /dev/null +++ b/mentoring/programs/new-contributor-workshop/2020/03-contributor-summit/README.md @@ -0,0 +1,13 @@ +## NCW Workshop Amsterdam + +## Team + +| Name & Handle | Role | Timezone | +|---------------|------|----------| +| | | | +| | | | +| | | | + +## Deadlines + +## Meeting Information diff --git a/mentoring/programs/new-contributor-workshop/2020/03-contributor-summit/content-proposal.md b/mentoring/programs/new-contributor-workshop/2020/03-contributor-summit/content-proposal.md new file mode 100644 index 00000000..93ea95d3 --- /dev/null +++ b/mentoring/programs/new-contributor-workshop/2020/03-contributor-summit/content-proposal.md @@ -0,0 +1,165 @@ +# Content Proposal for NCW Amsterdam + +## Introduction + +### 9:30 - 11:00 Intro Communications and Community +Alison, Rob, Rael, Josh: support/segment? + +Provide an overview on how the community works as a project both in terms of coordinating people and the special interest groups that those people participate in and the workflow that are used to accept new features, bug fixes. + +Note: Although these will have to be run separately, the content will be the same. + +## NCW Topics 101 + +This workshop will help a complete newcomer to Kubernetes get a running start as a contributor. Learn how to set up your developer environment, how to find your first contribution, and how to navigate the Kubernetes GitHub workflow. We will focus on a community approach to solving challenges, and on being good open source citizens. + +### Morning Session + +#### 11:00 - 12:00 [Workspace Setup](https://github.com/kubernetes/community/blob/master/events/events-team/content/new-contributor-workshops/workspace-setup.md) Tim & Rael + +Make sure all Beginning Contributors have a workspace setup for hacking on Kubernetes + +#### 12:00 - 12:30 [Local Build Test](https://github.com/kubernetes/community/blob/master/events/events-team/content/new-contributor-workshops/build-and-test.md) Tim & Rael +#### 13:30 - 14:00 [Local Build Test](https://github.com/kubernetes/community/blob/master/events/events-team/content/new-contributor-workshops/build-and-test.md) Tim & Rael + +Build Kubernetes binaries locally, and do some fun things with them. + +### Afternoon Sessions + +#### 14:00 - 14:45 [Pull Request Exercise](https://github.com/kubernetes/community/blob/master/events/events-team/content/new-contributor-workshops/playground-exercise.md) Guinevere, Rob + +Give new contributors the experience of the Kubernetes GitHub workflow! + +This task requires some setup and planning. Labels, Bots + +#### 14:45 - 15:15 [Find Your First Issue](https://github.com/kubernetes/community/blob/master/events/events-team/content/new-contributor-workshops/first-issue-help.md) Jeff + +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. + +## NCW Topics 201 + +This workshop focuses on the **more experienced** open source contributor. You may have sent patches to Kubernetes before, but may have gotten stuck or overwhelmed somewhere along the line. Take your contributor journey to the next level by learning about the main Kubernetes code base, how to build and test Kubernetes, and how to find reviewers and collaborators for your issue patches. + +### Morning Session + +#### 11:00 - 12:00 K/K Walkthrough Alison + +Alison + +Guided tour of the main k/k repository, to build a broader understanding of how the codebase is structured + +#### 12:00 - 12:25 Labels, Bots and Git Workflow Guin & Rob + +In this session, we will cover how contributors interact with the kubernetes codebase on github. Join us as we dive into the Git Workflow used throughout the kubernetes project, including how Labels and Bots play a key role in managing issues and prs. + +### Afternoon Sessions + +#### 13:30 - 14:30 [Local Build & Test](https://github.com/kubernetes/community/blob/master/events/events-team/content/new-contributor-workshops/build-and-test.md) - 1hour ( Or Maybe More? ) Ben + +Build Kubernetes binaries locally, and do some fun things with them. + +#### 14:30 - 14:50 You! Yes you can review a PR! 15-20m Alison & Tim H + +In this session attendees will learn the in’s and outs of reviewing pull requests. We will go through a reviewing a pull request onstage, and provide some good starting points. + +#### 14:50 - 15:15 [Finding Your First Issue](https://github.com/kubernetes/community/blob/master/events/events-team/content/new-contributor-workshops/first-issue-help.md) / Closing Remarks 15m + +To close the Intermediate contributor workshop, The intermediate contributor workshop team will share their tips and tricks of finding a first issue, and stories of their first contributions. + +## Resources To Create + +* Capture who is presenting what + +* Slides to reflect the content proposal + +* Assign presenters for each section so presenters own their own slides + +* Docker Image Registry + + * Source Tree in a Docker Image incase of networking issues + + * [Sheet of what will be on the Harbor box](https://docs.google.com/spreadsheets/d/1_CUFluzIgeHt4vra9hs6OqBqDZQ8oUl9Og-IixkoEAM/edit?usp=sharing) + + * Add the needed container images, other binaries you want, and specific versions + +* Know before you go details + + * Instructions, What to install on your laptop, Sign the CLA + +* Can we link and update the handbooks here? Every presenter can update the handbooks as content matures! + +* On the day plan - More indepth dive of what happens + +### On The Day / Extra Notes +[runbook.md](runbook.md) + +### Handbooks +[../resources](../resources) + +### Slides +[https://docs.google.com/presentation/d/19OtCzuDTVeeIfMD39OOODGJzkV3UGM_nr7jpSNhoy2s/edit?ts=5e4b8bc8#slide=id.g52cc57d172_7_69](https://docs.google.com/presentation/d/19OtCzuDTVeeIfMD39OOODGJzkV3UGM_nr7jpSNhoy2s/edit?ts=5e4b8bc8#slide=id.g52cc57d172_7_69) + +## Slide Ideas + +* Solidify formatting for each type of slide + + * Code with instructions + + * Main Image + + * Image with text + + * Title Slides + + * Schedule Slides + +* Retro notes - Be a bit more creative with the slides, Do we want to do a direct copy paste of the slides from last time + +* From San Diego page +*Try to represent the journey of a contributor with the slides* + +* *Linking the key ideas themes, with walking along a brick road or similar. From cat to kubecat. *Or capybara to kubeybara + +* Break Slides + +* *Is a long presentation, adding a timeline at the bottom can help the attendees follow the presentation. This can go with the idea of showing the progress of the contributor as we move forward with the presentation. - I love this! -guin* + +## References + +San Diego Contributor Summit Content Proposal + +[https://docs.google.com/document/d/1ha3KtgLcRIY7IaRi9pm_h28xVsx9VoVLu8Fl1YO-eCI/edit?pli=1#heading=h.c2mvd8re7lpn](https://docs.google.com/document/d/1ha3KtgLcRIY7IaRi9pm_h28xVsx9VoVLu8Fl1YO-eCI/edit?pli=1#heading=h.c2mvd8re7lpn) + +Last years sched for san diego + +[https://kcsna2019.sched.com/](https://kcsna2019.sched.com/) + +Reference + +[https://github.com/kubernetes/community/blob/master/events/events-team/content/new-contributor-workshops/README.md](https://github.com/kubernetes/community/blob/master/events/events-team/content/new-contributor-workshops/README.md) + +## Virtual Event Go/No Go + +Alison: Go (speaking live) + +Jeff: Go (streaming/speaking live) + +Josh: Go (pre-record; virtual Q&A) + +Guin: Go (pre-record) + +James M: + +Rob: Go (Flexible; assign content ASAP) + +Chris Short: Go (shadow; streaming) + +Samudrala: Can present + +Nabarun: Can present + +Tim P: Can present (shadow) + +Rael: No Go + +Ben: No Go diff --git a/mentoring/programs/new-contributor-workshop/2020/03-contributor-summit/runbook.md b/mentoring/programs/new-contributor-workshop/2020/03-contributor-summit/runbook.md new file mode 100644 index 00000000..57369a71 --- /dev/null +++ b/mentoring/programs/new-contributor-workshop/2020/03-contributor-summit/runbook.md @@ -0,0 +1,160 @@ +# NCW On The Day Runbook / Extra Notes + +### 9:30 - 11:00 Intro Communications and Community +Alison, Rob, Rael, Josh: support/segment? + +Sections + +* Welcome & PR Demo [Slide 6](https://docs.google.com/presentation/d/19OtCzuDTVeeIfMD39OOODGJzkV3UGM_nr7jpSNhoy2s/edit#slide=id.g64b51f6423_1_0) + +* Why Contribute / Origin Story [Slide 10](https://docs.google.com/presentation/d/19OtCzuDTVeeIfMD39OOODGJzkV3UGM_nr7jpSNhoy2s/edit#slide=id.g5e6254b17b_4_1168) + + * Why + + * Origin Story + + * Choose your adventure + + * Find your topic + +* Communications [Slide 13](https://docs.google.com/presentation/d/19OtCzuDTVeeIfMD39OOODGJzkV3UGM_nr7jpSNhoy2s/edit#slide=id.g5e6254b17b_4_1185) + + * How we communicate + + * Standards + + * Asking tech Q’s + +* Community Groups/Organization/SIG Tour: Josh? [Slide 29](https://docs.google.com/presentation/d/19OtCzuDTVeeIfMD39OOODGJzkV3UGM_nr7jpSNhoy2s/edit#slide=id.g5e6254b17b_4_1266) + +* Repo Tour: Samudrala [Slide 52](https://docs.google.com/presentation/d/19OtCzuDTVeeIfMD39OOODGJzkV3UGM_nr7jpSNhoy2s/edit#slide=id.g645f82e308_0_17) + +* How to find what you need: Alison [Slide 55](https://docs.google.com/presentation/d/19OtCzuDTVeeIfMD39OOODGJzkV3UGM_nr7jpSNhoy2s/edit#slide=id.g7eae03886b_2_18) + + * https://cs.k8s.io/ + +Josh: I can take any of the above that someone else doesn't want. + +#### Notes and cool ideas + +#### Communications Tools + +Discuss, Slack, Mailing List, Github, Twitter + +#### Kubernetes Podcasts + +#### Periodic Meetings + +Office Hours, Community Meeting + +#### Scavenger Hunt + +Register in k8s slack, post a Hi to the New Contributor Workshop Room + +Post a commit made by Joe Beda that contains a TODO to a special NCW Amsterdam discuss Thread. Oldest TODO wins. + +Find and favorite a NCW Easter Egg post in the NCW Amsterdam room + +Find and heart a k8s First Good Issue on Github + +#### +Main content + +Live PR Demo + +Paths to Contributorship + +Communication in the Kubernetes Community + +Community Group and Governance + +Orgs Overview + +How to find what you need in the community + +Tips and tricks to interact with the community +Teach people to answer their own questions + +[cs.k8s.io](https://cs.k8s.io/) + +How to phrase questions + +Limitations of GitHub searches + +Traversing K8s docs + +List speakers and roles for each section + +## NCW Topics 101 + +### 11:00 - 12:00 [Workspace Setup](https://github.com/kubernetes/community/blob/master/events/events-team/content/new-contributor-workshops/workspace-setup.md) Tim & Rael + +**Make sure all Beginning Contributors have a workspace setup for hacking on Kubernetes** + +### 12:00 - 12:30 [Local Build Test](https://github.com/kubernetes/community/blob/master/events/events-team/content/new-contributor-workshops/build-and-test.md) Tim & Rael + +### 13:30 - 14:00 [Local Build Test](https://github.com/kubernetes/community/blob/master/events/events-team/content/new-contributor-workshops/build-and-test.md) **Tim & Rael** + +**Build Kubernetes binaries locally, and do some fun things with them.** + +### 14:00 - 14:45 [Pull Request Exercise](https://github.com/kubernetes/community/blob/master/events/events-team/content/new-contributor-workshops/playground-exercise.md) **Guinevere, Rob** + +**Give new contributors the experience of the Kubernetes GitHub workflow! ** + +**This task requires some setup and planning. Labels, Bots** + +### 14:45 - 15:15 [Find Your First Issue](https://github.com/kubernetes/community/blob/master/events/events-team/content/new-contributor-workshops/first-issue-help.md) **Jeff** + +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. + +## NCW Topics 201 + +### Morning Session + +### K/K Walkthrough 11:00 - 12:00 + +Alison + +Guided tour of the main k/k repository, to build a broader understanding of how the codebase is structured + +### Labels, Bots and Git Workflow 12:00 - 12:25 + +Guin & Rob + +In this session, we will cover how contributors interact with the kubernetes codebase on github. Join us as we dive into the Git Workflow used throughout the kubernetes project, including how Labels and Bots play a key role in managing issues and prs. + +### Afternoon Sessions + +### [Local Build & Test](https://github.com/kubernetes/community/blob/master/events/events-team/content/new-contributor-workshops/build-and-test.md) - 1hour ( Or Maybe More? ) 13:30 - 14:30 + +Ben + +Build Kubernetes binaries locally, and do some fun things with them. + +* Live workshop + +* This part can be really flexible + +* Walkthrough workspace set up + +* Step-by-step DevProcess + +* Fun with Go and Kind cluster ( some previous examples) + +* Resolving set up issues + +* Could we do something else here? + +* Modify a controllers behavior + +### You! Yes you can review a PR! 15-20m 14:30 - 14:50 + +Alison? With help from Tim +Look at Tim’s talk from SD + +In this session attendees will learn the in’s and outs of reviewing pull requests. We will go through a reviewing a pull request onstage, and provide some good starting points. + +### [Finding Your First Issue](https://github.com/kubernetes/community/blob/master/events/events-team/content/new-contributor-workshops/first-issue-help.md) / Closing Remarks 15m 14:50 - 15:15 + +To close the Intermediate contributor workshop, The intermediate contributor workshop team will share their tips and tricks of finding a first issue, and stories of their first contributions. + diff --git a/mentoring/programs/new-contributor-workshop/README.md b/mentoring/programs/new-contributor-workshop/README.md index d497a737..c0ebd557 100644 --- a/mentoring/programs/new-contributor-workshop/README.md +++ b/mentoring/programs/new-contributor-workshop/README.md @@ -1,11 +1,4 @@ -# 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. +# NCW Workshops ## Upcoming Workshops @@ -13,33 +6,3 @@ 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 deleted file mode 100644 index 147d91a3..00000000 --- a/mentoring/programs/new-contributor-workshop/build-and-test.md +++ /dev/null @@ -1,27 +0,0 @@ -## 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 deleted file mode 100644 index 01a8c80c..00000000 --- a/mentoring/programs/new-contributor-workshop/community-groups.md +++ /dev/null @@ -1,27 +0,0 @@ -## 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 deleted file mode 100644 index d14691eb..00000000 --- a/mentoring/programs/new-contributor-workshop/contributor-paths.md +++ /dev/null @@ -1,26 +0,0 @@ -## 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 deleted file mode 100644 index b99488af..00000000 --- a/mentoring/programs/new-contributor-workshop/first-issue-help.md +++ /dev/null @@ -1,31 +0,0 @@ -## 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 deleted file mode 100644 index 777929e2..00000000 --- a/mentoring/programs/new-contributor-workshop/how-we-communicate.md +++ /dev/null @@ -1,33 +0,0 @@ -## 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 deleted file mode 100644 index 0e191f03..00000000 --- a/mentoring/programs/new-contributor-workshop/labels-and-bots.md +++ /dev/null @@ -1,25 +0,0 @@ -## 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 deleted file mode 100644 index 27b6c97e..00000000 --- a/mentoring/programs/new-contributor-workshop/live-pr-demo.md +++ /dev/null @@ -1,24 +0,0 @@ -## 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 deleted file mode 100644 index dfbf0547..00000000 --- a/mentoring/programs/new-contributor-workshop/new-contributor-workshop-lead.md +++ /dev/null @@ -1,38 +0,0 @@ -# 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 deleted file mode 100644 index 6aca9178..00000000 --- a/mentoring/programs/new-contributor-workshop/playground-exercise.md +++ /dev/null @@ -1,28 +0,0 @@ -## 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 deleted file mode 100644 index d1f46ee0..00000000 --- a/mentoring/programs/new-contributor-workshop/repo-tour.md +++ /dev/null @@ -1,24 +0,0 @@ -## 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/resources/README.md b/mentoring/programs/new-contributor-workshop/resources/README.md new file mode 100644 index 00000000..f4507530 --- /dev/null +++ b/mentoring/programs/new-contributor-workshop/resources/README.md @@ -0,0 +1,38 @@ +# New Contributor Workshops Resources + + +## 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. + +## 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/resources/build-and-test.md b/mentoring/programs/new-contributor-workshop/resources/build-and-test.md new file mode 100644 index 00000000..147d91a3 --- /dev/null +++ b/mentoring/programs/new-contributor-workshop/resources/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/resources/community-groups.md b/mentoring/programs/new-contributor-workshop/resources/community-groups.md new file mode 100644 index 00000000..01a8c80c --- /dev/null +++ b/mentoring/programs/new-contributor-workshop/resources/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/resources/contributor-paths.md b/mentoring/programs/new-contributor-workshop/resources/contributor-paths.md new file mode 100644 index 00000000..d14691eb --- /dev/null +++ b/mentoring/programs/new-contributor-workshop/resources/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/resources/first-issue-help.md b/mentoring/programs/new-contributor-workshop/resources/first-issue-help.md new file mode 100644 index 00000000..b99488af --- /dev/null +++ b/mentoring/programs/new-contributor-workshop/resources/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/resources/how-we-communicate.md b/mentoring/programs/new-contributor-workshop/resources/how-we-communicate.md new file mode 100644 index 00000000..777929e2 --- /dev/null +++ b/mentoring/programs/new-contributor-workshop/resources/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/resources/labels-and-bots.md b/mentoring/programs/new-contributor-workshop/resources/labels-and-bots.md new file mode 100644 index 00000000..0e191f03 --- /dev/null +++ b/mentoring/programs/new-contributor-workshop/resources/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/resources/live-pr-demo.md b/mentoring/programs/new-contributor-workshop/resources/live-pr-demo.md new file mode 100644 index 00000000..27b6c97e --- /dev/null +++ b/mentoring/programs/new-contributor-workshop/resources/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/resources/new-contributor-workshop-lead.md b/mentoring/programs/new-contributor-workshop/resources/new-contributor-workshop-lead.md new file mode 100644 index 00000000..dfbf0547 --- /dev/null +++ b/mentoring/programs/new-contributor-workshop/resources/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/resources/playground-exercise.md b/mentoring/programs/new-contributor-workshop/resources/playground-exercise.md new file mode 100644 index 00000000..6aca9178 --- /dev/null +++ b/mentoring/programs/new-contributor-workshop/resources/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/resources/repo-tour.md b/mentoring/programs/new-contributor-workshop/resources/repo-tour.md new file mode 100644 index 00000000..d1f46ee0 --- /dev/null +++ b/mentoring/programs/new-contributor-workshop/resources/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/resources/workspace-setup.md b/mentoring/programs/new-contributor-workshop/resources/workspace-setup.md new file mode 100644 index 00000000..19dbef29 --- /dev/null +++ b/mentoring/programs/new-contributor-workshop/resources/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. diff --git a/mentoring/programs/new-contributor-workshop/workspace-setup.md b/mentoring/programs/new-contributor-workshop/workspace-setup.md deleted file mode 100644 index 19dbef29..00000000 --- a/mentoring/programs/new-contributor-workshop/workspace-setup.md +++ /dev/null @@ -1,24 +0,0 @@ -## 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. -- cgit v1.2.3