From fc33a2d8254a89788d812a3ee9418e80ded5c435 Mon Sep 17 00:00:00 2001 From: RinkiyaKeDad Date: Sat, 12 Jun 2021 13:01:12 +0530 Subject: [PATCH 01/16] initial commit Signed-off-by: RinkiyaKeDad --- hack/gen_content.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 hack/gen_content.go diff --git a/hack/gen_content.go b/hack/gen_content.go new file mode 100644 index 000000000..267ff2ef7 --- /dev/null +++ b/hack/gen_content.go @@ -0,0 +1,28 @@ +package main + +import ( + "log" + "os" + "os/exec" + "strconv" +) + +func main() { + // TODO: replace this with reading from env vars + repos := []string{"https://github.com/kubernetes/community.git", "https://github.com/kubernetes/sig-release.git"} + + err := os.Mkdir("./_tmp", 0755) + if err != nil { + log.Fatal(err) + } + + for i, r := range repos { + // TODO: concatenate repo name instead + concatenatedPath := "./_tmp/" + strconv.Itoa(i) + gitClone := exec.Command("git", "clone", r, concatenatedPath) + err := gitClone.Run() + if err != nil { + log.Fatal(err) + } + } +} From b15e84e66f9e28f3095753ed655b45c87f959b93 Mon Sep 17 00:00:00 2001 From: RinkiyaKeDad Date: Tue, 22 Jun 2021 18:11:28 +0530 Subject: [PATCH 02/16] basic copying working Signed-off-by: RinkiyaKeDad --- hack/gen_content.go | 78 ++++++++++++++++++++++++++++++++++++++++----- hack/go.mod | 5 +++ hack/go.sum | 4 +++ hack/info.yaml | 11 +++++++ 4 files changed, 90 insertions(+), 8 deletions(-) create mode 100644 hack/go.mod create mode 100644 hack/go.sum create mode 100644 hack/info.yaml diff --git a/hack/gen_content.go b/hack/gen_content.go index 267ff2ef7..f886a495a 100644 --- a/hack/gen_content.go +++ b/hack/gen_content.go @@ -1,28 +1,90 @@ package main import ( + "fmt" + "io/ioutil" "log" "os" "os/exec" - "strconv" + "path/filepath" + + "gopkg.in/yaml.v2" ) +type Info struct { + Sources []struct { + Repo string `yaml:"repo"` + Files []struct { + Src string `yaml:"src"` + Dest string `yaml:"dest"` + } `yaml:"files"` + } `yaml:"sources"` +} + func main() { - // TODO: replace this with reading from env vars - repos := []string{"https://github.com/kubernetes/community.git", "https://github.com/kubernetes/sig-release.git"} + filename, _ := filepath.Abs("./info.yaml") + yamlFile, err := ioutil.ReadFile(filename) + + if err != nil { + log.Fatal(err) + } + + var info Info + err = yaml.Unmarshal(yamlFile, &info) + if err != nil { + log.Fatal(err) + } + + err = os.Mkdir("./_tmp", 0755) + if err != nil { + log.Fatal(err) + } - err := os.Mkdir("./_tmp", 0755) + err = os.Mkdir("./_out", 0755) if err != nil { log.Fatal(err) } - for i, r := range repos { - // TODO: concatenate repo name instead - concatenatedPath := "./_tmp/" + strconv.Itoa(i) - gitClone := exec.Command("git", "clone", r, concatenatedPath) + for _, source := range info.Sources { + repo := source.Repo + // TODO: replace hard coded "community" with some variable + concatenatedPath := "./_tmp/" + "community" + gitClone := exec.Command("git", "clone", repo, concatenatedPath) err := gitClone.Run() if err != nil { log.Fatal(err) } + + for _, file := range source.Files { + copyFrom := concatenatedPath + file.Src + copyTo := "./_out" + file.Dest + Copy(copyFrom, copyTo) + } + } + +} + +func Copy(src, dst string) error { + input, err := ioutil.ReadFile(src) + if err != nil { + fmt.Println(err) + return err + } + + dir, _ := filepath.Split(dst) + err = os.MkdirAll(dir, os.ModePerm) + if err != nil { + log.Fatal(err) + } + _, err = os.Create(dst) + if err != nil { + log.Fatal(err) + } + err = ioutil.WriteFile(dst, input, 0644) + if err != nil { + fmt.Println("Error creating", dst) + fmt.Println(err) + return err } + return nil } diff --git a/hack/go.mod b/hack/go.mod new file mode 100644 index 000000000..4208fa26a --- /dev/null +++ b/hack/go.mod @@ -0,0 +1,5 @@ +module gen_content + +go 1.16 + +require gopkg.in/yaml.v2 v2.4.0 diff --git a/hack/go.sum b/hack/go.sum new file mode 100644 index 000000000..dd0bc19f1 --- /dev/null +++ b/hack/go.sum @@ -0,0 +1,4 @@ +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= diff --git a/hack/info.yaml b/hack/info.yaml new file mode 100644 index 000000000..deb4c197b --- /dev/null +++ b/hack/info.yaml @@ -0,0 +1,11 @@ +sources: +- repo: https://github.com/kubernetes/community.git + files: + - src: "/contributors/guide/README.md" + dest: "/docs/guide/_index.md" + # - src: "/contributors/guide/*" + # dest: "/docs/guide" + # - src: "/events/(community-meeting.md|office-hours.md)" + # dest: "/events" + - src: "/mentoring/programs/meet-our-contributors.md" + dest: "/events/meet-our-contributors.md" \ No newline at end of file From d9755e55365114aef1fa173cae4bb198c9c177b6 Mon Sep 17 00:00:00 2001 From: RinkiyaKeDad Date: Thu, 24 Jun 2021 18:26:42 +0530 Subject: [PATCH 03/16] started link fetching logic Signed-off-by: RinkiyaKeDad --- hack/_out/docs/guide/_index.md | 160 ++++++++++++++++++++++ hack/_out/events/meet-our-contributors.md | 103 ++++++++++++++ hack/gen_content.go | 36 +++++ hack/info.yaml | 4 +- 4 files changed, 301 insertions(+), 2 deletions(-) create mode 100644 hack/_out/docs/guide/_index.md create mode 100644 hack/_out/events/meet-our-contributors.md diff --git a/hack/_out/docs/guide/_index.md b/hack/_out/docs/guide/_index.md new file mode 100644 index 000000000..c3156c5d9 --- /dev/null +++ b/hack/_out/docs/guide/_index.md @@ -0,0 +1,160 @@ +--- +title: "Getting Started" +weight: 1 +aliases: [ "/guide" ] +description: + A small list of things that you should read and be familiar with before you + get started with contributing. This includes such things as signing the + Contributor License Agreement, familiarizing yourself with our Code of Conduct, + and more. +--- + +# Getting Started + +- [Getting Started](#getting-started) + - [Welcome](#welcome) + - [Contributor Guide](#contributor-guide) + - [Prerequisites](#prerequisites) + - [Sign the CLA](#sign-the-cla) + - [Code of Conduct](#code-of-conduct) + - [Setting up your development environment](#setting-up-your-development-environment) + - [Community Expectations and Roles](#community-expectations-and-roles) + - [Kubernetes Contributor Playground](#kubernetes-contributor-playground) + - [Contributor Workshops](#contributor-workshops) + - [Community](#community) + - [Communication](#communication) + - [Events](#events) + - [Meetups](#meetups) + - [Mentorship](#mentorship) + - [Advanced Topics](#advanced-topics) + +## Welcome + +Have you ever wanted to contribute to the coolest cloud technology? +This guide will help you understand the overall organization of the Kubernetes +project, and direct you to the best places to get started contributing. You'll +be able to pick up issues, write code to fix them, and get your work reviewed +and merged. + +This document is the single source of truth for how to contribute to the code +base. Feel free to browse the [open issues] and file new ones, all feedback +is welcome! + +## Contributor Guide + +Welcome to Kubernetes! This guide is broken up into the following sections. +It is recommended that you follow these steps in order: + +- [Welcome](#welcome) - this page +- [Prerequisites](#prerequisites) - tasks you need to complete before + you can start contributing to Kubernetes +- [Your First Contribution](./first-contribution.md) - things you'll need to know + before making your first contribution +- [Contributing](./contributing.md) - the main reference guide to contributing + to Kubernetes + +## Prerequisites + +Before submitting code to Kubernetes, you should first complete the following +prerequisites. These steps are checked automatically by [a bot] during your +first submission. Completing these steps will make your first contribution +easier: + +### Sign the CLA + +Before you can contribute to Kubernetes, you will need to sign the +[Contributor License Agreement]. + +### Code of Conduct + +Please make sure to read and observe the [Code of Conduct] and +[Community Values] + +### Setting up your development environment + +It is not required to set up a developer environment in order to contribute to +Kubernetes. + +If you plan to contribute code changes, review the [developer resources] page +for how to set up your environment. + +### Community Expectations and Roles + +Kubernetes is a community project. Consequently, it is wholly dependent on its +community to provide a productive, friendly and collaborative environment. + +- Read and review the [Community Expectations] for an + understanding of code and review expectations. +- See [Community Membership][CM] for a list the various + responsibilities of contributor roles. +- You are encouraged to move up this contributor ladder as you gain experience. + +## Kubernetes Contributor Playground + +If you are looking for a safe place, where you can familiarize yourself with +the pull request and issue review process in Kubernetes, then the +[Kubernetes Contributor Playground] is the right place for you. + +### Contributor Workshops + +A [Youtube playlist] of the New Contributor workshop has been posted. An +outline of the video content can be found [here]. + +## Community + +Kubernetes is a large, lively, friendly open-source community. As many open +source projects often do, it depends on new people becoming members and regular +code contributors. The [Community Membership Document][CM] covers membership +processes and roles. Please consider joining Kubernetes, and making your way +up the contributor ladder! + +### Communication + +- [General Information] relating to Kubernetes communication policies + +### Events + +Kubernetes participates in KubeCon + CloudNativeCon, held three times per year +in China, Europe and in North America. Information about these and other +community events is available on the CNCF [Events] pages. + +### Meetups + +All Kubernetes meetups follow the general [Cloud Native Computing Foundation Guidelines] +You may also contact CNCF Staff driving the Community Groups (previously known +as Meetups) program by email (meetups@cncf.io) + +### Mentorship + +Learn more about the Kubernetes [mentoring initiatives]. Join past and present +Kubernetes Contributors for a live question-and-answer session during +[Meet Our Contributors]. + +## Advanced Topics + +This section includes things that need to be documented, but typical contributors +do not need to interact with regularly. + +- [OWNERS files] - The Kubernetes organizations are managed with OWNERS files, + which outline which parts of the code are owned by what groups. + + +[a bot]: https://github.com/k8s-ci-robot +[Contributor License Agreement]: /CLA.md +[Code of Conduct]: /code-of-conduct.md +[Community Values]: /values.md +[First Contribution]: ./first-contribution.md +[Contributing]: ./contributing.md +[Developer Resources]: /contributors/devel/README.md#setting-up-your-dev-environment-coding-and-debugging +[Community Expectations]: ./expectations.md +[CM]: /community-membership.md +[here]: /events/2019/11-contributor-summit +[General Information]: /communication +[mentoring initiatives]: /mentoring/README.md +[Meet Our Contributors]: /mentoring/programs/meet-our-contributors.md +[OWNERS files]: ./owners.md +[Cloud Native Computing Foundation Guidelines]: https://github.com/cncf/communitygroups +[Events]: https://www.cncf.io/events/ +[YouTube Playlist]: https://www.youtube.com/playlist?list=PL69nYSiGNLP3M5X7stuD7N4r3uP2PZQUx +[Kubernetes Contributor Playground]: https://github.com/kubernetes-sigs/contributor-playground/blob/master/README.md +[Open Issues]: https://github.com/kubernetes/community/issues?q=is%3Aissue+is%3Aopen+label%3Aarea%2Fcontributor-guide diff --git a/hack/_out/events/meet-our-contributors.md b/hack/_out/events/meet-our-contributors.md new file mode 100644 index 000000000..fca04632c --- /dev/null +++ b/hack/_out/events/meet-our-contributors.md @@ -0,0 +1,103 @@ +--- +title: Meet our Contributors +weight: 4 +description: | + Meet Our Contributors gives you a monthly one-hour opportunity to ask questions + about our upstream community, watch interviews with our contributors, and + participate in peer code reviews. +--- + +# Meet Our Contributors - Ask Us Anything! + +When Slack seems like it’s going too fast, and you just need a quick answer from +a human... + +Meet Our Contributors gives you a monthly one-hour opportunity to ask questions +about our upstream community, watch interviews with our contributors, and +participate in peer code reviews. + +## When: + +Every first Wednesday of the month at the following times: +- 03:30pm UTC [Convert to your timezone]. + +## Where: + +Follow along live: [Kubernetes YouTube Channel] + +Ask questions: [#meet-our-contributors] Slack channel + + +To ask anonymously, direct message the host on Slack. They will ID at the start +of the show. + +Watch past recordings: +Playlist of [previous Meet-Our-Contributors monthly meetings] + + +## What You'll Gain By Participating: + +- An opportunity to learn more about how to get started contributing to K8s +- A chance to get your PRs reviewed by members of the community +- Peer code review that can help you get more eyes on your code, or learn more +about a part of the Kubernetes code that may have you struggling +- A deeper understanding of the unique role that our contributors occupy in the +Kubernetes ecosystem as a whole +- Practical advice and hands-on tips for how you can get started as a Kubernetes +contributor, become a member, or otherwise contribute to the project + +## What’s on-topic: + +- How our contributors got started with k8s +- Advice for getting attention on your PR +- GitHub tooling and automation +- Your first commit +- kubernetes/community +- Testing + +## What’s off-topic: + +- End-user questions (Check out [#office-hours] on Slack and details [here]) + +## Submitting questions and/or code for review/walk through: + +### Questions: + +- Day of on Twitter - use the hashtag [#k8smoc] after your question +- Slack - Ask your question in [#meet-our-contributors] + +Questions will be on a first-come, first-served basis. The first half of the +discussion will be dedicated to questions for contributors and in the second +half, we will pick a problem (in advance) for peer code review. + +### Code snip / PR for peer code review / Suggestion for part of codebase walk through: + +- At least 24 hours before the session to Slack channel ([#meet-our-contributors]) + +Problems will be chosen based on time commitment needed, the skills of the reviewer, +and if a large amount are submitted, need for the project. + +## Call for Mentor Panelists! + +Expectations of mentors: +- Be online 5 minutes early. You can look at questions in the queue by joining +the #meet-our-contributors Slack channel to give yourself some time to prepare. +- Expect questions about the contribution process, membership, navigating the +Kubernetes seas, testing, and general questions about you and your path to open +source/Kubernetes. It's okay if you don't know the answer! +- We will be using video chat (Zoom, but livestreaming through YouTube) but +voice-only is fine if you are more comfortable with that. +- Be willing to provide suggestions and feedback to make this process & experience +better! + + + +[#meet-our-contributors]: https://kubernetes.slack.com/messages/meet-our-contributors +[Convert to your timezone]: https://www.thetimezoneconverter.com/?t=03%3A30%20pm&tz=UTC& +[#meet-our-contributors]: https://kubernetes.slack.com/messages/meet-our-contributors +[Kubernetes YouTube Channel]: https://www.youtube.com/c/KubernetesCommunity/live +[previous Meet-Our-Contributors monthly meetings]: https://www.youtube.com/playlist?list=PL69nYSiGNLP3QpQrhZq_sLYo77BVKv09F +[#office-hours]: https://kubernetes.slack.com/messages/office-hours +[#k8smoc]: https://twitter.com/hashtag/k8smoc +[#meet-our-contributors]: https://kubernetes.slack.com/messages/meet-our-contributors +[here]: /events/office-hours.md diff --git a/hack/gen_content.go b/hack/gen_content.go index f886a495a..fae66110e 100644 --- a/hack/gen_content.go +++ b/hack/gen_content.go @@ -1,12 +1,15 @@ package main import ( + "bufio" "fmt" "io/ioutil" "log" "os" "os/exec" "path/filepath" + "regexp" + "strings" "gopkg.in/yaml.v2" ) @@ -71,6 +74,8 @@ func Copy(src, dst string) error { return err } + fmt.Println(GetAllLinks(string(input))) + dir, _ := filepath.Split(dst) err = os.MkdirAll(dir, os.ModePerm) if err != nil { @@ -88,3 +93,34 @@ func Copy(src, dst string) error { } return nil } + +func GetAllLinks(markdown string) map[string]string { + // Holds all the links and their corresponding values + m := make(map[string]string) + + // Regex to extract link and text attached to link + re := regexp.MustCompile(`\[([^\]]*)\]\(([^)]*)\)`) + + scanner := bufio.NewScanner(strings.NewReader(markdown)) + stop := false + // Scans line by line + for scanner.Scan() { + if strings.HasPrefix(scanner.Text(), "```") == true { + stop = !stop + } + + if stop == false { + // Make regex + matches := re.FindAllStringSubmatch(scanner.Text(), -1) + + // Only apply regex if there are links and the link does not start with # + if matches != nil { + if strings.HasPrefix(matches[0][2], "#") == false { + // fmt.Println(matches[0][2]) + m[matches[0][1]] = matches[0][2] + } + } + } + } + return m +} diff --git a/hack/info.yaml b/hack/info.yaml index deb4c197b..2bbc29e1c 100644 --- a/hack/info.yaml +++ b/hack/info.yaml @@ -7,5 +7,5 @@ sources: # dest: "/docs/guide" # - src: "/events/(community-meeting.md|office-hours.md)" # dest: "/events" - - src: "/mentoring/programs/meet-our-contributors.md" - dest: "/events/meet-our-contributors.md" \ No newline at end of file + # - src: "/mentoring/programs/meet-our-contributors.md" + # dest: "/events/meet-our-contributors.md" \ No newline at end of file From 81242dad97548297057f07db1821e6aaecb6e3fd Mon Sep 17 00:00:00 2001 From: RinkiyaKeDad Date: Thu, 24 Jun 2021 18:28:03 +0530 Subject: [PATCH 04/16] removed accidently commited lines Signed-off-by: RinkiyaKeDad --- hack/_out/docs/guide/_index.md | 160 ---------------------- hack/_out/events/meet-our-contributors.md | 103 -------------- 2 files changed, 263 deletions(-) delete mode 100644 hack/_out/docs/guide/_index.md delete mode 100644 hack/_out/events/meet-our-contributors.md diff --git a/hack/_out/docs/guide/_index.md b/hack/_out/docs/guide/_index.md deleted file mode 100644 index c3156c5d9..000000000 --- a/hack/_out/docs/guide/_index.md +++ /dev/null @@ -1,160 +0,0 @@ ---- -title: "Getting Started" -weight: 1 -aliases: [ "/guide" ] -description: - A small list of things that you should read and be familiar with before you - get started with contributing. This includes such things as signing the - Contributor License Agreement, familiarizing yourself with our Code of Conduct, - and more. ---- - -# Getting Started - -- [Getting Started](#getting-started) - - [Welcome](#welcome) - - [Contributor Guide](#contributor-guide) - - [Prerequisites](#prerequisites) - - [Sign the CLA](#sign-the-cla) - - [Code of Conduct](#code-of-conduct) - - [Setting up your development environment](#setting-up-your-development-environment) - - [Community Expectations and Roles](#community-expectations-and-roles) - - [Kubernetes Contributor Playground](#kubernetes-contributor-playground) - - [Contributor Workshops](#contributor-workshops) - - [Community](#community) - - [Communication](#communication) - - [Events](#events) - - [Meetups](#meetups) - - [Mentorship](#mentorship) - - [Advanced Topics](#advanced-topics) - -## Welcome - -Have you ever wanted to contribute to the coolest cloud technology? -This guide will help you understand the overall organization of the Kubernetes -project, and direct you to the best places to get started contributing. You'll -be able to pick up issues, write code to fix them, and get your work reviewed -and merged. - -This document is the single source of truth for how to contribute to the code -base. Feel free to browse the [open issues] and file new ones, all feedback -is welcome! - -## Contributor Guide - -Welcome to Kubernetes! This guide is broken up into the following sections. -It is recommended that you follow these steps in order: - -- [Welcome](#welcome) - this page -- [Prerequisites](#prerequisites) - tasks you need to complete before - you can start contributing to Kubernetes -- [Your First Contribution](./first-contribution.md) - things you'll need to know - before making your first contribution -- [Contributing](./contributing.md) - the main reference guide to contributing - to Kubernetes - -## Prerequisites - -Before submitting code to Kubernetes, you should first complete the following -prerequisites. These steps are checked automatically by [a bot] during your -first submission. Completing these steps will make your first contribution -easier: - -### Sign the CLA - -Before you can contribute to Kubernetes, you will need to sign the -[Contributor License Agreement]. - -### Code of Conduct - -Please make sure to read and observe the [Code of Conduct] and -[Community Values] - -### Setting up your development environment - -It is not required to set up a developer environment in order to contribute to -Kubernetes. - -If you plan to contribute code changes, review the [developer resources] page -for how to set up your environment. - -### Community Expectations and Roles - -Kubernetes is a community project. Consequently, it is wholly dependent on its -community to provide a productive, friendly and collaborative environment. - -- Read and review the [Community Expectations] for an - understanding of code and review expectations. -- See [Community Membership][CM] for a list the various - responsibilities of contributor roles. -- You are encouraged to move up this contributor ladder as you gain experience. - -## Kubernetes Contributor Playground - -If you are looking for a safe place, where you can familiarize yourself with -the pull request and issue review process in Kubernetes, then the -[Kubernetes Contributor Playground] is the right place for you. - -### Contributor Workshops - -A [Youtube playlist] of the New Contributor workshop has been posted. An -outline of the video content can be found [here]. - -## Community - -Kubernetes is a large, lively, friendly open-source community. As many open -source projects often do, it depends on new people becoming members and regular -code contributors. The [Community Membership Document][CM] covers membership -processes and roles. Please consider joining Kubernetes, and making your way -up the contributor ladder! - -### Communication - -- [General Information] relating to Kubernetes communication policies - -### Events - -Kubernetes participates in KubeCon + CloudNativeCon, held three times per year -in China, Europe and in North America. Information about these and other -community events is available on the CNCF [Events] pages. - -### Meetups - -All Kubernetes meetups follow the general [Cloud Native Computing Foundation Guidelines] -You may also contact CNCF Staff driving the Community Groups (previously known -as Meetups) program by email (meetups@cncf.io) - -### Mentorship - -Learn more about the Kubernetes [mentoring initiatives]. Join past and present -Kubernetes Contributors for a live question-and-answer session during -[Meet Our Contributors]. - -## Advanced Topics - -This section includes things that need to be documented, but typical contributors -do not need to interact with regularly. - -- [OWNERS files] - The Kubernetes organizations are managed with OWNERS files, - which outline which parts of the code are owned by what groups. - - -[a bot]: https://github.com/k8s-ci-robot -[Contributor License Agreement]: /CLA.md -[Code of Conduct]: /code-of-conduct.md -[Community Values]: /values.md -[First Contribution]: ./first-contribution.md -[Contributing]: ./contributing.md -[Developer Resources]: /contributors/devel/README.md#setting-up-your-dev-environment-coding-and-debugging -[Community Expectations]: ./expectations.md -[CM]: /community-membership.md -[here]: /events/2019/11-contributor-summit -[General Information]: /communication -[mentoring initiatives]: /mentoring/README.md -[Meet Our Contributors]: /mentoring/programs/meet-our-contributors.md -[OWNERS files]: ./owners.md -[Cloud Native Computing Foundation Guidelines]: https://github.com/cncf/communitygroups -[Events]: https://www.cncf.io/events/ -[YouTube Playlist]: https://www.youtube.com/playlist?list=PL69nYSiGNLP3M5X7stuD7N4r3uP2PZQUx -[Kubernetes Contributor Playground]: https://github.com/kubernetes-sigs/contributor-playground/blob/master/README.md -[Open Issues]: https://github.com/kubernetes/community/issues?q=is%3Aissue+is%3Aopen+label%3Aarea%2Fcontributor-guide diff --git a/hack/_out/events/meet-our-contributors.md b/hack/_out/events/meet-our-contributors.md deleted file mode 100644 index fca04632c..000000000 --- a/hack/_out/events/meet-our-contributors.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -title: Meet our Contributors -weight: 4 -description: | - Meet Our Contributors gives you a monthly one-hour opportunity to ask questions - about our upstream community, watch interviews with our contributors, and - participate in peer code reviews. ---- - -# Meet Our Contributors - Ask Us Anything! - -When Slack seems like it’s going too fast, and you just need a quick answer from -a human... - -Meet Our Contributors gives you a monthly one-hour opportunity to ask questions -about our upstream community, watch interviews with our contributors, and -participate in peer code reviews. - -## When: - -Every first Wednesday of the month at the following times: -- 03:30pm UTC [Convert to your timezone]. - -## Where: - -Follow along live: [Kubernetes YouTube Channel] - -Ask questions: [#meet-our-contributors] Slack channel - - -To ask anonymously, direct message the host on Slack. They will ID at the start -of the show. - -Watch past recordings: -Playlist of [previous Meet-Our-Contributors monthly meetings] - - -## What You'll Gain By Participating: - -- An opportunity to learn more about how to get started contributing to K8s -- A chance to get your PRs reviewed by members of the community -- Peer code review that can help you get more eyes on your code, or learn more -about a part of the Kubernetes code that may have you struggling -- A deeper understanding of the unique role that our contributors occupy in the -Kubernetes ecosystem as a whole -- Practical advice and hands-on tips for how you can get started as a Kubernetes -contributor, become a member, or otherwise contribute to the project - -## What’s on-topic: - -- How our contributors got started with k8s -- Advice for getting attention on your PR -- GitHub tooling and automation -- Your first commit -- kubernetes/community -- Testing - -## What’s off-topic: - -- End-user questions (Check out [#office-hours] on Slack and details [here]) - -## Submitting questions and/or code for review/walk through: - -### Questions: - -- Day of on Twitter - use the hashtag [#k8smoc] after your question -- Slack - Ask your question in [#meet-our-contributors] - -Questions will be on a first-come, first-served basis. The first half of the -discussion will be dedicated to questions for contributors and in the second -half, we will pick a problem (in advance) for peer code review. - -### Code snip / PR for peer code review / Suggestion for part of codebase walk through: - -- At least 24 hours before the session to Slack channel ([#meet-our-contributors]) - -Problems will be chosen based on time commitment needed, the skills of the reviewer, -and if a large amount are submitted, need for the project. - -## Call for Mentor Panelists! - -Expectations of mentors: -- Be online 5 minutes early. You can look at questions in the queue by joining -the #meet-our-contributors Slack channel to give yourself some time to prepare. -- Expect questions about the contribution process, membership, navigating the -Kubernetes seas, testing, and general questions about you and your path to open -source/Kubernetes. It's okay if you don't know the answer! -- We will be using video chat (Zoom, but livestreaming through YouTube) but -voice-only is fine if you are more comfortable with that. -- Be willing to provide suggestions and feedback to make this process & experience -better! - - - -[#meet-our-contributors]: https://kubernetes.slack.com/messages/meet-our-contributors -[Convert to your timezone]: https://www.thetimezoneconverter.com/?t=03%3A30%20pm&tz=UTC& -[#meet-our-contributors]: https://kubernetes.slack.com/messages/meet-our-contributors -[Kubernetes YouTube Channel]: https://www.youtube.com/c/KubernetesCommunity/live -[previous Meet-Our-Contributors monthly meetings]: https://www.youtube.com/playlist?list=PL69nYSiGNLP3QpQrhZq_sLYo77BVKv09F -[#office-hours]: https://kubernetes.slack.com/messages/office-hours -[#k8smoc]: https://twitter.com/hashtag/k8smoc -[#meet-our-contributors]: https://kubernetes.slack.com/messages/meet-our-contributors -[here]: /events/office-hours.md From 7879860d987a9f0b3c9ad5bafe98fef4840f69a6 Mon Sep 17 00:00:00 2001 From: RinkiyaKeDad Date: Mon, 5 Jul 2021 17:48:05 +0530 Subject: [PATCH 05/16] a bit more to go Signed-off-by: RinkiyaKeDad --- hack/gen_content.go | 55 ++++++++++++++++++++++++++++++++++++--------- 1 file changed, 44 insertions(+), 11 deletions(-) diff --git a/hack/gen_content.go b/hack/gen_content.go index fae66110e..5fe724dc7 100644 --- a/hack/gen_content.go +++ b/hack/gen_content.go @@ -2,6 +2,7 @@ package main import ( "bufio" + "encoding/json" "fmt" "io/ioutil" "log" @@ -51,7 +52,8 @@ func main() { for _, source := range info.Sources { repo := source.Repo // TODO: replace hard coded "community" with some variable - concatenatedPath := "./_tmp/" + "community" + folderName, _ := GetStringInBetweenTwoString(repo, "https://github.com/kubernetes/", ".git") + concatenatedPath := "./_tmp/" + folderName gitClone := exec.Command("git", "clone", repo, concatenatedPath) err := gitClone.Run() if err != nil { @@ -60,7 +62,7 @@ func main() { for _, file := range source.Files { copyFrom := concatenatedPath + file.Src - copyTo := "./_out" + file.Dest + copyTo := "./_out/" + folderName + file.Dest Copy(copyFrom, copyTo) } } @@ -74,7 +76,8 @@ func Copy(src, dst string) error { return err } - fmt.Println(GetAllLinks(string(input))) + mkdown, mp := GetAllLinks(string(input)) + PrettyPrint(mp) dir, _ := filepath.Split(dst) err = os.MkdirAll(dir, os.ModePerm) @@ -85,7 +88,7 @@ func Copy(src, dst string) error { if err != nil { log.Fatal(err) } - err = ioutil.WriteFile(dst, input, 0644) + err = ioutil.WriteFile(dst, []byte(mkdown), 0644) if err != nil { fmt.Println("Error creating", dst) fmt.Println(err) @@ -94,33 +97,63 @@ func Copy(src, dst string) error { return nil } -func GetAllLinks(markdown string) map[string]string { +func GetAllLinks(markdown string) (string, map[string]string) { // Holds all the links and their corresponding values m := make(map[string]string) // Regex to extract link and text attached to link re := regexp.MustCompile(`\[([^\]]*)\]\(([^)]*)\)`) + re2 := regexp.MustCompile(`\[([^\]]*)\]\:\ ([^ ]*)\w`) scanner := bufio.NewScanner(strings.NewReader(markdown)) stop := false // Scans line by line for scanner.Scan() { - if strings.HasPrefix(scanner.Text(), "```") == true { + if strings.HasPrefix(scanner.Text(), "```") { stop = !stop } - if stop == false { + if !stop { // Make regex matches := re.FindAllStringSubmatch(scanner.Text(), -1) - + matches2 := re2.FindAllStringSubmatch(scanner.Text(), -1) // Only apply regex if there are links and the link does not start with # if matches != nil { - if strings.HasPrefix(matches[0][2], "#") == false { - // fmt.Println(matches[0][2]) + if !strings.HasPrefix(matches[0][2], "#") { + markdown = strings.Replace(markdown, matches[0][2], "hugo-url", -1) m[matches[0][1]] = matches[0][2] } } + if matches2 != nil { + if !strings.HasPrefix(matches2[0][2], "#") { + markdown = strings.Replace(markdown, matches2[0][2], "hugo-url", -1) + m[matches2[0][1]] = matches2[0][2] + } + } } } - return m + fmt.Println(markdown) + return markdown, m +} + +func GetStringInBetweenTwoString(str string, startS string, endS string) (result string, found bool) { + s := strings.Index(str, startS) + if s == -1 { + return result, false + } + newS := str[s+len(startS):] + e := strings.Index(newS, endS) + if e == -1 { + return result, false + } + result = newS[:e] + return result, true +} + +func PrettyPrint(v interface{}) (err error) { + b, err := json.MarshalIndent(v, "", " ") + if err == nil { + fmt.Println(string(b)) + } + return } From cb799cfc3c61472c1f2c32bdca2941215de23323 Mon Sep 17 00:00:00 2001 From: RinkiyaKeDad Date: Mon, 5 Jul 2021 19:39:12 +0530 Subject: [PATCH 06/16] tidied up a bit Signed-off-by: RinkiyaKeDad --- hack/gen_content.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hack/gen_content.go b/hack/gen_content.go index 5fe724dc7..8dab0c9c7 100644 --- a/hack/gen_content.go +++ b/hack/gen_content.go @@ -51,7 +51,6 @@ func main() { for _, source := range info.Sources { repo := source.Repo - // TODO: replace hard coded "community" with some variable folderName, _ := GetStringInBetweenTwoString(repo, "https://github.com/kubernetes/", ".git") concatenatedPath := "./_tmp/" + folderName gitClone := exec.Command("git", "clone", repo, concatenatedPath) @@ -114,12 +113,13 @@ func GetAllLinks(markdown string) (string, map[string]string) { } if !stop { - // Make regex matches := re.FindAllStringSubmatch(scanner.Text(), -1) matches2 := re2.FindAllStringSubmatch(scanner.Text(), -1) - // Only apply regex if there are links and the link does not start with # + if matches != nil { + // for ignoring internal links if !strings.HasPrefix(matches[0][2], "#") { + // TODO: add logic to build hugo link markdown = strings.Replace(markdown, matches[0][2], "hugo-url", -1) m[matches[0][1]] = matches[0][2] } From 7023e6354e89f2a51e82dc6cebff98c79793464a Mon Sep 17 00:00:00 2001 From: RinkiyaKeDad Date: Fri, 16 Jul 2021 12:56:17 +0530 Subject: [PATCH 07/16] major changes Signed-off-by: RinkiyaKeDad --- hack/gen_content.go | 100 +++++++++++++++++++++++++++++++++++++++----- hack/info.yaml | 4 +- 2 files changed, 92 insertions(+), 12 deletions(-) diff --git a/hack/gen_content.go b/hack/gen_content.go index 8dab0c9c7..f7f357e65 100644 --- a/hack/gen_content.go +++ b/hack/gen_content.go @@ -25,6 +25,13 @@ type Info struct { } `yaml:"sources"` } +type entry struct { + org string + repo string + src string + dest string +} + func main() { filename, _ := filepath.Abs("./info.yaml") yamlFile, err := ioutil.ReadFile(filename) @@ -39,6 +46,15 @@ func main() { log.Fatal(err) } + var entries []entry + for _, source := range info.Sources { + repoName, _ := GetStringInBetweenTwoString(source.Repo, "https://github.com/kubernetes/", ".git") + orgName := "kubernetes" + for _, file := range source.Files { + entries = append(entries, entry{orgName, repoName, file.Src, file.Dest}) + } + } + err = os.Mkdir("./_tmp", 0755) if err != nil { log.Fatal(err) @@ -62,20 +78,20 @@ func main() { for _, file := range source.Files { copyFrom := concatenatedPath + file.Src copyTo := "./_out/" + folderName + file.Dest - Copy(copyFrom, copyTo) + Copy(copyFrom, copyTo, entries) } } } -func Copy(src, dst string) error { +func Copy(src, dst string, entries []entry) error { input, err := ioutil.ReadFile(src) if err != nil { fmt.Println(err) return err } - mkdown, mp := GetAllLinks(string(input)) + mkdown, mp := GetAllLinks(string(input), src, entries) PrettyPrint(mp) dir, _ := filepath.Split(dst) @@ -96,13 +112,14 @@ func Copy(src, dst string) error { return nil } -func GetAllLinks(markdown string) (string, map[string]string) { +func GetAllLinks(markdown string, src string, entries []entry) (string, map[string]string) { // Holds all the links and their corresponding values m := make(map[string]string) - // Regex to extract link and text attached to link + // Regex to extract link for [text](./something.md) re := regexp.MustCompile(`\[([^\]]*)\]\(([^)]*)\)`) - re2 := regexp.MustCompile(`\[([^\]]*)\]\:\ ([^ ]*)\w`) + // Regex to extract link for [text]: ./something.md + re2 := regexp.MustCompile(`^\[.*\]:\s(\S+)$`) scanner := bufio.NewScanner(strings.NewReader(markdown)) stop := false @@ -120,22 +137,85 @@ func GetAllLinks(markdown string) (string, map[string]string) { // for ignoring internal links if !strings.HasPrefix(matches[0][2], "#") { // TODO: add logic to build hugo link + foundLink := matches[0][2] + var replacementLink string + if strings.HasPrefix(foundLink, "http") { + replacementLink = foundLink + } else { + replacementLink = ExpandPath(foundLink, src) + } + replacementLink = GenLink(replacementLink, entries) markdown = strings.Replace(markdown, matches[0][2], "hugo-url", -1) m[matches[0][1]] = matches[0][2] } } if matches2 != nil { - if !strings.HasPrefix(matches2[0][2], "#") { - markdown = strings.Replace(markdown, matches2[0][2], "hugo-url", -1) - m[matches2[0][1]] = matches2[0][2] + if !strings.HasPrefix(matches2[0][1], "#") { + markdown = strings.Replace(markdown, matches2[0][1], "hugo-url", -1) + m[matches2[0][1]] = matches2[0][1] } } } } - fmt.Println(markdown) + //fmt.Println(markdown) return markdown, m } +func GenLink(replacementLink string, entries []entry) string { + // if it is a web link + if strings.HasPrefix(replacementLink, "http") { + // if it belongs to one of the k8s urls check if it's present in the hugo site and replace + // TODO: add more checks here for now let's just work with "http://github.com/kubernetes" + + if strings.Contains(replacementLink, "http://github.com/kubernetes") { + for _, entry := range entries { + // TODO: remove blob tree master from the replacementLink else Contains won't work + if strings.Contains(replacementLink, entry.src) { + return entry.dest + } + } + } + } else { + // if its not an external url check if present on hugo side if yes then replace with that else generate an external url + for _, entry := range entries { + if replacementLink == entry.src { + return entry.dest + } + } + // add logic for generating external link now + + } + return replacementLink +} + +func ExpandPath(foundLink string, src string) string { + // if ./a.md or /a.md or a.md then it's in same dir as src + if filepath.Dir(foundLink) == "." || filepath.Dir(foundLink) == "/" { + return filepath.Dir(src) + filepath.Base(foundLink) + } + + // if foundLink was ../../abc.md and src was /_temp/community/something/contributors/guide/README.md + + src = filepath.Dir(src) + fileName := filepath.Base(foundLink) + foundLink = filepath.Dir(foundLink) + + // foundLink is now ../.. src is now /_temp/community/something/contributors/guide and fileName is abc.md + + linkSliceLen := len(strings.SplitAfter(foundLink, "/")) + srcSlice := strings.SplitAfter(src, "/") + + // linkSliceLen is now 2 srcSlice is [_temp,community,something,contributors,guide] + + // we want to get the last 2 elements of srcSlice now + srcSlice = srcSlice[len(srcSlice)-linkSliceLen:] + + // now srcSlice is [contributors, guide] + + // return contributors/guide/abc.md + return strings.Join(srcSlice, "/") + fileName +} + func GetStringInBetweenTwoString(str string, startS string, endS string) (result string, found bool) { s := strings.Index(str, startS) if s == -1 { diff --git a/hack/info.yaml b/hack/info.yaml index 2bbc29e1c..deb4c197b 100644 --- a/hack/info.yaml +++ b/hack/info.yaml @@ -7,5 +7,5 @@ sources: # dest: "/docs/guide" # - src: "/events/(community-meeting.md|office-hours.md)" # dest: "/events" - # - src: "/mentoring/programs/meet-our-contributors.md" - # dest: "/events/meet-our-contributors.md" \ No newline at end of file + - src: "/mentoring/programs/meet-our-contributors.md" + dest: "/events/meet-our-contributors.md" \ No newline at end of file From 64f48000e3e70137a87d7240e0aa51e59d0f1824 Mon Sep 17 00:00:00 2001 From: RinkiyaKeDad Date: Sat, 17 Jul 2021 11:18:50 +0530 Subject: [PATCH 08/16] major progress Signed-off-by: RinkiyaKeDad --- hack/gen_content.go | 70 +++++++++++++++++++++++++++++---------------- 1 file changed, 45 insertions(+), 25 deletions(-) diff --git a/hack/gen_content.go b/hack/gen_content.go index f7f357e65..0236456d9 100644 --- a/hack/gen_content.go +++ b/hack/gen_content.go @@ -48,6 +48,7 @@ func main() { var entries []entry for _, source := range info.Sources { + // TODO: add logic to handle more orgs repoName, _ := GetStringInBetweenTwoString(source.Repo, "https://github.com/kubernetes/", ".git") orgName := "kubernetes" for _, file := range source.Files { @@ -60,7 +61,7 @@ func main() { log.Fatal(err) } - err = os.Mkdir("./_out", 0755) + err = os.Mkdir("./contentNew", 0755) if err != nil { log.Fatal(err) } @@ -77,7 +78,7 @@ func main() { for _, file := range source.Files { copyFrom := concatenatedPath + file.Src - copyTo := "./_out/" + folderName + file.Dest + copyTo := "./contentNew/" + folderName + file.Dest Copy(copyFrom, copyTo, entries) } } @@ -91,8 +92,7 @@ func Copy(src, dst string, entries []entry) error { return err } - mkdown, mp := GetAllLinks(string(input), src, entries) - PrettyPrint(mp) + mkdown := GetAllLinks(string(input), src, entries) dir, _ := filepath.Split(dst) err = os.MkdirAll(dir, os.ModePerm) @@ -112,11 +112,11 @@ func Copy(src, dst string, entries []entry) error { return nil } -func GetAllLinks(markdown string, src string, entries []entry) (string, map[string]string) { - // Holds all the links and their corresponding values - m := make(map[string]string) +// src is something like "./_tmp/community/contributors/guide/README.md" +func GetAllLinks(markdown string, src string, entries []entry) string { // Regex to extract link for [text](./something.md) + // TODO: change this regex to return only the () and not both [] and () re := regexp.MustCompile(`\[([^\]]*)\]\(([^)]*)\)`) // Regex to extract link for [text]: ./something.md re2 := regexp.MustCompile(`^\[.*\]:\s(\S+)$`) @@ -125,6 +125,7 @@ func GetAllLinks(markdown string, src string, entries []entry) (string, map[stri stop := false // Scans line by line for scanner.Scan() { + // TODO: improve logic to stop only when same number of "`" are found if strings.HasPrefix(scanner.Text(), "```") { stop = !stop } @@ -136,7 +137,6 @@ func GetAllLinks(markdown string, src string, entries []entry) (string, map[stri if matches != nil { // for ignoring internal links if !strings.HasPrefix(matches[0][2], "#") { - // TODO: add logic to build hugo link foundLink := matches[0][2] var replacementLink string if strings.HasPrefix(foundLink, "http") { @@ -144,54 +144,72 @@ func GetAllLinks(markdown string, src string, entries []entry) (string, map[stri } else { replacementLink = ExpandPath(foundLink, src) } - replacementLink = GenLink(replacementLink, entries) - markdown = strings.Replace(markdown, matches[0][2], "hugo-url", -1) - m[matches[0][1]] = matches[0][2] + replacementLink = GenLink(replacementLink, entries, src) + markdown = strings.Replace(markdown, matches[0][2], replacementLink, -1) } } if matches2 != nil { if !strings.HasPrefix(matches2[0][1], "#") { markdown = strings.Replace(markdown, matches2[0][1], "hugo-url", -1) - m[matches2[0][1]] = matches2[0][1] } } } } //fmt.Println(markdown) - return markdown, m + return markdown } -func GenLink(replacementLink string, entries []entry) string { +func GenLink(replacementLink string, entries []entry, src string) string { // if it is a web link if strings.HasPrefix(replacementLink, "http") { - // if it belongs to one of the k8s urls check if it's present in the hugo site and replace - // TODO: add more checks here for now let's just work with "http://github.com/kubernetes" + // if it belongs to one of the k8s urls, replace if it will be present on the hugo site + // TODO: add more checks here for now let's just work with "http://github.com/kubernetes" + // for example replacementLink = https://github.com/kubernetes/community/blob/master/mentoring/programs/meet-our-contributors.md if strings.Contains(replacementLink, "http://github.com/kubernetes") { for _, entry := range entries { - // TODO: remove blob tree master from the replacementLink else Contains won't work + // one entry would be "/mentoring/programs/meet-our-contributors.md" + // ?? TODO: remove blob tree master from the replacementLink else Contains won't work if strings.Contains(replacementLink, entry.src) { + // return "/events/meet-our-contributors.md" return entry.dest } } } + + // if it's not one of the k8s urls just let it be + // for example replacement link "youtube.com" + } else { - // if its not an external url check if present on hugo side if yes then replace with that else generate an external url + // if its not an external url check if it's present on hugo site + + // if yes then replace with that + // for example replacement link "/contributors/guide/abc.md" for _, entry := range entries { if replacementLink == entry.src { return entry.dest } } - // add logic for generating external link now - + // else generate an external url + // for example replacement link "/mentoring/programs/shadow-roles.md" + // src is something like "./_tmp/community/contributors/guide/README.md" + repo := strings.SplitAfter(src, "/")[2] + for _, entry := range entries { + if entry.repo == repo { + return "http://github.com/" + entry.org + "/" + entry.repo + replacementLink + } + } } return replacementLink } +// foundLink is something like ../../abc.md +// src is something like "./_tmp/community/contributors/guide/README.md" func ExpandPath(foundLink string, src string) string { // if ./a.md or /a.md or a.md then it's in same dir as src if filepath.Dir(foundLink) == "." || filepath.Dir(foundLink) == "/" { - return filepath.Dir(src) + filepath.Base(foundLink) + // return "./_tmp/community/contributors/guide" + "abc.md" + return filepath.Dir(src) + "/" + filepath.Base(foundLink) } // if foundLink was ../../abc.md and src was /_temp/community/something/contributors/guide/README.md @@ -200,20 +218,22 @@ func ExpandPath(foundLink string, src string) string { fileName := filepath.Base(foundLink) foundLink = filepath.Dir(foundLink) - // foundLink is now ../.. src is now /_temp/community/something/contributors/guide and fileName is abc.md + // src is now "./_tmp/community/contributors/guide" + // fileName is now abc.md + // foundLink is now ../.. linkSliceLen := len(strings.SplitAfter(foundLink, "/")) srcSlice := strings.SplitAfter(src, "/") - // linkSliceLen is now 2 srcSlice is [_temp,community,something,contributors,guide] + // linkSliceLen is now 2 srcSlice is [., _tmp, community, contributors, guide] // we want to get the last 2 elements of srcSlice now srcSlice = srcSlice[len(srcSlice)-linkSliceLen:] // now srcSlice is [contributors, guide] - // return contributors/guide/abc.md - return strings.Join(srcSlice, "/") + fileName + // return "/" + "contributors/guide" + "/" + abc.md" = /contributors/guide/abc.md + return "/" + strings.Join(srcSlice, "/") + "/" + fileName } func GetStringInBetweenTwoString(str string, startS string, endS string) (result string, found bool) { From 801b2cf2a2429b510633ad39801b0347ad16a417 Mon Sep 17 00:00:00 2001 From: RinkiyaKeDad Date: Sat, 24 Jul 2021 16:30:10 +0530 Subject: [PATCH 09/16] initial edits after call Signed-off-by: RinkiyaKeDad --- hack/gen_content.go | 39 +++++++++++++-------- hack/info.yaml | 82 ++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 99 insertions(+), 22 deletions(-) diff --git a/hack/gen_content.go b/hack/gen_content.go index 0236456d9..1e6d08d51 100644 --- a/hack/gen_content.go +++ b/hack/gen_content.go @@ -48,9 +48,11 @@ func main() { var entries []entry for _, source := range info.Sources { - // TODO: add logic to handle more orgs - repoName, _ := GetStringInBetweenTwoString(source.Repo, "https://github.com/kubernetes/", ".git") - orgName := "kubernetes" + // TODO: add logic to handle more orgs -> DONE + orgName := strings.SplitAfter(source.Repo, "/")[3] + repoName := strings.SplitAfter(source.Repo, "/")[4] + // repoName, _ := GetStringInBetweenTwoString(source.Repo, "https://github.com/kubernetes/", ".git") + // orgName := "kubernetes" for _, file := range source.Files { entries = append(entries, entry{orgName, repoName, file.Src, file.Dest}) } @@ -66,9 +68,10 @@ func main() { log.Fatal(err) } + // not iterating through "entries" so that we don't have to do multiple git clones for _, source := range info.Sources { repo := source.Repo - folderName, _ := GetStringInBetweenTwoString(repo, "https://github.com/kubernetes/", ".git") + folderName := strings.SplitAfter(repo, "/")[4] concatenatedPath := "./_tmp/" + folderName gitClone := exec.Command("git", "clone", repo, concatenatedPath) err := gitClone.Run() @@ -145,6 +148,12 @@ func GetAllLinks(markdown string, src string, entries []entry) string { replacementLink = ExpandPath(foundLink, src) } replacementLink = GenLink(replacementLink, entries, src) + // TODO: remove md here and keep # in mind -> done + replacementLink = strings.ReplaceAll(replacementLink, ".md", "") + // TODO: if it's _index or index then remove the last part -> done + replacementLink = strings.ReplaceAll(replacementLink, "_index", "") + replacementLink = strings.ReplaceAll(replacementLink, "index", "") + markdown = strings.Replace(markdown, matches[0][2], replacementLink, -1) } } @@ -155,7 +164,6 @@ func GetAllLinks(markdown string, src string, entries []entry) string { } } } - //fmt.Println(markdown) return markdown } @@ -164,9 +172,8 @@ func GenLink(replacementLink string, entries []entry, src string) string { if strings.HasPrefix(replacementLink, "http") { // if it belongs to one of the k8s urls, replace if it will be present on the hugo site // TODO: add more checks here for now let's just work with "http://github.com/kubernetes" - // for example replacementLink = https://github.com/kubernetes/community/blob/master/mentoring/programs/meet-our-contributors.md - if strings.Contains(replacementLink, "http://github.com/kubernetes") { + if strings.Contains(replacementLink, "github.com/kubernetes") || strings.Contains(replacementLink, "github.com/kubernetes-sigs") || strings.Contains(replacementLink, "github.com/kubernetes-csi") || strings.Contains(replacementLink, "github.com/kubernetes-client") || strings.Contains(replacementLink, "git.k8s.io") || strings.Contains(replacementLink, "sigs.k8s.io") { for _, entry := range entries { // one entry would be "/mentoring/programs/meet-our-contributors.md" // ?? TODO: remove blob tree master from the replacementLink else Contains won't work @@ -178,7 +185,6 @@ func GenLink(replacementLink string, entries []entry, src string) string { } // if it's not one of the k8s urls just let it be - // for example replacement link "youtube.com" } else { // if its not an external url check if it's present on hugo site @@ -196,7 +202,8 @@ func GenLink(replacementLink string, entries []entry, src string) string { repo := strings.SplitAfter(src, "/")[2] for _, entry := range entries { if entry.repo == repo { - return "http://github.com/" + entry.org + "/" + entry.repo + replacementLink + // TODO: add blob/master also -> done + return "https://github.com/" + entry.org + "/" + entry.repo + "/blob/main" + replacementLink } } } @@ -205,14 +212,17 @@ func GenLink(replacementLink string, entries []entry, src string) string { // foundLink is something like ../../abc.md // src is something like "./_tmp/community/contributors/guide/README.md" +// expandPath will return "/contributors/guide/abc.md" func ExpandPath(foundLink string, src string) string { // if ./a.md or /a.md or a.md then it's in same dir as src if filepath.Dir(foundLink) == "." || filepath.Dir(foundLink) == "/" { - // return "./_tmp/community/contributors/guide" + "abc.md" - return filepath.Dir(src) + "/" + filepath.Base(foundLink) + // fullFilePath is "./_tmp/community/contributors/guide" + "/" +"abc.md" + fullFilePath := filepath.Dir(src) + "/" + filepath.Base(foundLink) + // we want to return "/" + "contributors/guide/abc.md" + return "/" + strings.Join(strings.Split(fullFilePath, "/")[3:], "/") } - // if foundLink was ../../abc.md and src was /_temp/community/something/contributors/guide/README.md + // if foundLink was ../../abc.md and src was ./_tmp/community/contributors/guide/README.md src = filepath.Dir(src) fileName := filepath.Base(foundLink) @@ -225,12 +235,13 @@ func ExpandPath(foundLink string, src string) string { linkSliceLen := len(strings.SplitAfter(foundLink, "/")) srcSlice := strings.SplitAfter(src, "/") - // linkSliceLen is now 2 srcSlice is [., _tmp, community, contributors, guide] + // linkSliceLen is now 2 + // srcSlice is now [., _tmp, community, contributors, guide] // we want to get the last 2 elements of srcSlice now srcSlice = srcSlice[len(srcSlice)-linkSliceLen:] - // now srcSlice is [contributors, guide] + // srcSlice is now [contributors, guide] // return "/" + "contributors/guide" + "/" + abc.md" = /contributors/guide/abc.md return "/" + strings.Join(srcSlice, "/") + "/" + fileName diff --git a/hack/info.yaml b/hack/info.yaml index deb4c197b..b41dd79e1 100644 --- a/hack/info.yaml +++ b/hack/info.yaml @@ -1,11 +1,77 @@ sources: - repo: https://github.com/kubernetes/community.git files: - - src: "/contributors/guide/README.md" - dest: "/docs/guide/_index.md" - # - src: "/contributors/guide/*" - # dest: "/docs/guide" - # - src: "/events/(community-meeting.md|office-hours.md)" - # dest: "/events" - - src: "/mentoring/programs/meet-our-contributors.md" - dest: "/events/meet-our-contributors.md" \ No newline at end of file + - src: /contributors/guide/README.md + dest: /docs/guide/_index.md + - src: /contributors/guide/coding-conventions.md + dest: /docs/guide/coding-convention.md + - src: /contributors/guide/collab.md + dest: /docs/guide/collab.md + - src: /contributors/guide/contributing.md + dest: /docs/guide/contributing.md + - src: /contributors/guide/expectations.md + dest: /docs/guide/expectations.md + - src: /contributors/guide/first-contribution.md + dest: /docs/guide/first-contribution.md + - src: /contributors/guide/getting-started.md + dest: /docs/guide/getting-started.md + - src: /contributors/guide/github-workflow.md + dest: /docs/guide/github-workflow.md + - src: /contributors/guide/help-wanted.md + dest: /docs/guide/help-wanted.md + - src: /contributors/guide/issue-triage.md + dest: /docs/guide/issue-triage.md + - src: /contributors/guide/non-code-contributions.md + dest: /docs/guide/non-code-contributions.md + - src: /contributors/guide/owners.md + dest: /docs/guide/owners.md + - src: /contributors/guide/pull-requests.md + dest: /docs/guide/pull-requests.md + - src: /contributors/guide/release-notes.md + dest: /docs/guide/release-notes.md + - src: /contributors/guide/git_workflow.png + dest: /docs/guide/git_workflow.png + - src: /contributors/guide/contributor-cheatsheet/README.md + dest: /docs/contributor-cheatsheet.md + - src: /events/community-meeting.md + dest: /events/community-meeting.md + - src: /events/office-hours.md + dest: /events/office-hours.md + - src: /mentoring/programs/meet-our-contributors.md + dest: /events/meet-our-contributors.md + - src: /sig-list.md + dest: /community/community-groups.md + - src: /mentoring/README.md + dest: /community/mentoring.md + - src: /values.md + dest: /community/values.md + - src: /communication/best-practices.md + dest: /docs/comms/notifications.md + - src: /communication/calendar-guidelines.md + dest: /docs/comms/calendars.md + - src: /communication/discuss-guidelines.md + dest: /docs/comms/discuss.md" + - src: /communication/mailing-list-guidelines.md + dest: /docs/comms/mailing-lists.md + - src: /communication/moderation.md + dest: /docs/comms/moderation.md + - src: /communication/moderators.md + dest: /docs/comms/moderators.md + - src: /communication/requesting-survey.md + dest: /docs/comms/surveys.md + - src: /communication/slack-guidelines.md + dest: /docs/comms/slack.md + - src: /communication/zoom-guidelines.md + dest: /docs/comms/zoom.md + - src: /communication/youtube/youtube-guidelines.md + dest: /docs/comms/youtube.md + - src: /github-management/default-branch-migration.md + dest: /resources/rename.md + - src: /committee-code-of-conduct/incident-process.md + dest: /community/code-of-conduct-incident-process.md +- repo: https://github.com/kubernetes/sig-release + files: + - src: /releases/release-1.22/README.md + dest: /resources/release/index.md + +# git.k8s.io, etc will only be in links not in the yaml \ No newline at end of file From 429ab97eacf99231883dbee3928e96a5b704ed6b Mon Sep 17 00:00:00 2001 From: RinkiyaKeDad Date: Sat, 24 Jul 2021 16:49:45 +0530 Subject: [PATCH 10/16] added log statements Signed-off-by: RinkiyaKeDad --- hack/gen_content.go | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/hack/gen_content.go b/hack/gen_content.go index 1e6d08d51..b8643572b 100644 --- a/hack/gen_content.go +++ b/hack/gen_content.go @@ -72,6 +72,7 @@ func main() { for _, source := range info.Sources { repo := source.Repo folderName := strings.SplitAfter(repo, "/")[4] + folderName = strings.ReplaceAll(folderName, ".git", "") concatenatedPath := "./_tmp/" + folderName gitClone := exec.Command("git", "clone", repo, concatenatedPath) err := gitClone.Run() @@ -148,13 +149,15 @@ func GetAllLinks(markdown string, src string, entries []entry) string { replacementLink = ExpandPath(foundLink, src) } replacementLink = GenLink(replacementLink, entries, src) - // TODO: remove md here and keep # in mind -> done - replacementLink = strings.ReplaceAll(replacementLink, ".md", "") - // TODO: if it's _index or index then remove the last part -> done - replacementLink = strings.ReplaceAll(replacementLink, "_index", "") - replacementLink = strings.ReplaceAll(replacementLink, "index", "") - - markdown = strings.Replace(markdown, matches[0][2], replacementLink, -1) + if foundLink != replacementLink { + // TODO: remove md here and keep # in mind -> done + replacementLink = strings.ReplaceAll(replacementLink, ".md", "") + // TODO: if it's _index or index then remove the last part -> done + replacementLink = strings.ReplaceAll(replacementLink, "_index", "") + replacementLink = strings.ReplaceAll(replacementLink, "index", "") + fmt.Println("In", src, "replacing", foundLink, "with", replacementLink) + markdown = strings.Replace(markdown, matches[0][2], replacementLink, -1) + } } } if matches2 != nil { From 1c4096f8d330a3ee20483a557a77997d9e9d27d5 Mon Sep 17 00:00:00 2001 From: RinkiyaKeDad Date: Mon, 26 Jul 2021 18:43:25 +0530 Subject: [PATCH 11/16] fixed some more problems Signed-off-by: RinkiyaKeDad --- hack/gen_content.go | 41 ++++++++++--- hack/info.yaml | 136 ++++++++++++++++++++++---------------------- 2 files changed, 102 insertions(+), 75 deletions(-) diff --git a/hack/gen_content.go b/hack/gen_content.go index b8643572b..e427f6c86 100644 --- a/hack/gen_content.go +++ b/hack/gen_content.go @@ -50,7 +50,9 @@ func main() { for _, source := range info.Sources { // TODO: add logic to handle more orgs -> DONE orgName := strings.SplitAfter(source.Repo, "/")[3] + orgName = strings.ReplaceAll(orgName, "/", "") repoName := strings.SplitAfter(source.Repo, "/")[4] + repoName = strings.ReplaceAll(repoName, ".git", "") // repoName, _ := GetStringInBetweenTwoString(source.Repo, "https://github.com/kubernetes/", ".git") // orgName := "kubernetes" for _, file := range source.Files { @@ -58,6 +60,10 @@ func main() { } } + fmt.Println("$$$") + fmt.Println(entries) + fmt.Println("$$$") + err = os.Mkdir("./_tmp", 0755) if err != nil { log.Fatal(err) @@ -148,14 +154,17 @@ func GetAllLinks(markdown string, src string, entries []entry) string { } else { replacementLink = ExpandPath(foundLink, src) } + fmt.Println("EXPANDED PATH", replacementLink) replacementLink = GenLink(replacementLink, entries, src) if foundLink != replacementLink { - // TODO: remove md here and keep # in mind -> done - replacementLink = strings.ReplaceAll(replacementLink, ".md", "") - // TODO: if it's _index or index then remove the last part -> done - replacementLink = strings.ReplaceAll(replacementLink, "_index", "") - replacementLink = strings.ReplaceAll(replacementLink, "index", "") - fmt.Println("In", src, "replacing", foundLink, "with", replacementLink) + if !strings.HasPrefix(replacementLink, "http") { + // TODO: remove md here and keep # in mind -> done + replacementLink = strings.ReplaceAll(replacementLink, ".md", "") + // TODO: if it's _index or index then remove the last part -> done + replacementLink = strings.ReplaceAll(replacementLink, "_index", "") + replacementLink = strings.ReplaceAll(replacementLink, "index", "") + } + fmt.Println("Replacing", foundLink, "with", replacementLink, "in", src) markdown = strings.Replace(markdown, matches[0][2], replacementLink, -1) } } @@ -202,13 +211,24 @@ func GenLink(replacementLink string, entries []entry, src string) string { // else generate an external url // for example replacement link "/mentoring/programs/shadow-roles.md" // src is something like "./_tmp/community/contributors/guide/README.md" + fmt.Println("IT WENT HERE") + fmt.Println("src", src) + fmt.Println("replacementLink", replacementLink) + + // if replacementLink == "/contributors/devel/sig-architecture/api-conventions.md" { repo := strings.SplitAfter(src, "/")[2] + repo = strings.ReplaceAll(repo, "/", "") + // fmt.Println("repo", repo) for _, entry := range entries { + // fmt.Println("entry.repo", entry.repo) if entry.repo == repo { // TODO: add blob/master also -> done - return "https://github.com/" + entry.org + "/" + entry.repo + "/blob/main" + replacementLink + return "https://github.com/" + entry.org + "/" + entry.repo + "/blob/master" + replacementLink } } + // fmt.Println("OVER $$$$$") + // } + } return replacementLink } @@ -225,6 +245,13 @@ func ExpandPath(foundLink string, src string) string { return "/" + strings.Join(strings.Split(fullFilePath, "/")[3:], "/") } + // for cases where + // foundLink is /contributors/devel/sig-architecture/api_changes.md + // src is ./_tmp/community/contributors/guide/coding-conventions.md + if !strings.Contains(foundLink, "..") { + return foundLink + } + // if foundLink was ../../abc.md and src was ./_tmp/community/contributors/guide/README.md src = filepath.Dir(src) diff --git a/hack/info.yaml b/hack/info.yaml index b41dd79e1..1a5a5d2df 100644 --- a/hack/info.yaml +++ b/hack/info.yaml @@ -5,73 +5,73 @@ sources: dest: /docs/guide/_index.md - src: /contributors/guide/coding-conventions.md dest: /docs/guide/coding-convention.md - - src: /contributors/guide/collab.md - dest: /docs/guide/collab.md - - src: /contributors/guide/contributing.md - dest: /docs/guide/contributing.md - - src: /contributors/guide/expectations.md - dest: /docs/guide/expectations.md - - src: /contributors/guide/first-contribution.md - dest: /docs/guide/first-contribution.md - - src: /contributors/guide/getting-started.md - dest: /docs/guide/getting-started.md - - src: /contributors/guide/github-workflow.md - dest: /docs/guide/github-workflow.md - - src: /contributors/guide/help-wanted.md - dest: /docs/guide/help-wanted.md - - src: /contributors/guide/issue-triage.md - dest: /docs/guide/issue-triage.md - - src: /contributors/guide/non-code-contributions.md - dest: /docs/guide/non-code-contributions.md - - src: /contributors/guide/owners.md - dest: /docs/guide/owners.md - - src: /contributors/guide/pull-requests.md - dest: /docs/guide/pull-requests.md - - src: /contributors/guide/release-notes.md - dest: /docs/guide/release-notes.md - - src: /contributors/guide/git_workflow.png - dest: /docs/guide/git_workflow.png - - src: /contributors/guide/contributor-cheatsheet/README.md - dest: /docs/contributor-cheatsheet.md - - src: /events/community-meeting.md - dest: /events/community-meeting.md - - src: /events/office-hours.md - dest: /events/office-hours.md - - src: /mentoring/programs/meet-our-contributors.md - dest: /events/meet-our-contributors.md - - src: /sig-list.md - dest: /community/community-groups.md - - src: /mentoring/README.md - dest: /community/mentoring.md - - src: /values.md - dest: /community/values.md - - src: /communication/best-practices.md - dest: /docs/comms/notifications.md - - src: /communication/calendar-guidelines.md - dest: /docs/comms/calendars.md - - src: /communication/discuss-guidelines.md - dest: /docs/comms/discuss.md" - - src: /communication/mailing-list-guidelines.md - dest: /docs/comms/mailing-lists.md - - src: /communication/moderation.md - dest: /docs/comms/moderation.md - - src: /communication/moderators.md - dest: /docs/comms/moderators.md - - src: /communication/requesting-survey.md - dest: /docs/comms/surveys.md - - src: /communication/slack-guidelines.md - dest: /docs/comms/slack.md - - src: /communication/zoom-guidelines.md - dest: /docs/comms/zoom.md - - src: /communication/youtube/youtube-guidelines.md - dest: /docs/comms/youtube.md - - src: /github-management/default-branch-migration.md - dest: /resources/rename.md - - src: /committee-code-of-conduct/incident-process.md - dest: /community/code-of-conduct-incident-process.md -- repo: https://github.com/kubernetes/sig-release - files: - - src: /releases/release-1.22/README.md - dest: /resources/release/index.md +# - src: /contributors/guide/collab.md +# dest: /docs/guide/collab.md +# - src: /contributors/guide/contributing.md +# dest: /docs/guide/contributing.md +# - src: /contributors/guide/expectations.md +# dest: /docs/guide/expectations.md +# - src: /contributors/guide/first-contribution.md +# dest: /docs/guide/first-contribution.md +# - src: /contributors/guide/getting-started.md +# dest: /docs/guide/getting-started.md +# - src: /contributors/guide/github-workflow.md +# dest: /docs/guide/github-workflow.md +# - src: /contributors/guide/help-wanted.md +# dest: /docs/guide/help-wanted.md +# - src: /contributors/guide/issue-triage.md +# dest: /docs/guide/issue-triage.md +# - src: /contributors/guide/non-code-contributions.md +# dest: /docs/guide/non-code-contributions.md +# - src: /contributors/guide/owners.md +# dest: /docs/guide/owners.md +# - src: /contributors/guide/pull-requests.md +# dest: /docs/guide/pull-requests.md +# - src: /contributors/guide/release-notes.md +# dest: /docs/guide/release-notes.md +# - src: /contributors/guide/git_workflow.png +# dest: /docs/guide/git_workflow.png +# - src: /contributors/guide/contributor-cheatsheet/README.md +# dest: /docs/contributor-cheatsheet.md +# - src: /events/community-meeting.md +# dest: /events/community-meeting.md +# - src: /events/office-hours.md +# dest: /events/office-hours.md +# - src: /mentoring/programs/meet-our-contributors.md +# dest: /events/meet-our-contributors.md +# - src: /sig-list.md +# dest: /community/community-groups.md +# - src: /mentoring/README.md +# dest: /community/mentoring.md +# - src: /values.md +# dest: /community/values.md +# - src: /communication/best-practices.md +# dest: /docs/comms/notifications.md +# - src: /communication/calendar-guidelines.md +# dest: /docs/comms/calendars.md +# - src: /communication/discuss-guidelines.md +# dest: /docs/comms/discuss.md" +# - src: /communication/mailing-list-guidelines.md +# dest: /docs/comms/mailing-lists.md +# - src: /communication/moderation.md +# dest: /docs/comms/moderation.md +# - src: /communication/moderators.md +# dest: /docs/comms/moderators.md +# - src: /communication/requesting-survey.md +# dest: /docs/comms/surveys.md +# - src: /communication/slack-guidelines.md +# dest: /docs/comms/slack.md +# - src: /communication/zoom-guidelines.md +# dest: /docs/comms/zoom.md +# - src: /communication/youtube/youtube-guidelines.md +# dest: /docs/comms/youtube.md +# - src: /github-management/default-branch-migration.md +# dest: /resources/rename.md +# - src: /committee-code-of-conduct/incident-process.md +# dest: /community/code-of-conduct-incident-process.md +# - repo: https://github.com/kubernetes/sig-release +# files: +# - src: /releases/release-1.22/README.md +# dest: /resources/release/index.md # git.k8s.io, etc will only be in links not in the yaml \ No newline at end of file From 6cbd116295bfc3009ded14372e6243ed43c7ad0e Mon Sep 17 00:00:00 2001 From: RinkiyaKeDad Date: Wed, 4 Aug 2021 12:55:51 +0530 Subject: [PATCH 12/16] fixed wrong sub folders while copying content Signed-off-by: RinkiyaKeDad --- hack/gen_content.go | 4 +- hack/info.yaml | 136 ++++++++++++++++++++++---------------------- 2 files changed, 70 insertions(+), 70 deletions(-) diff --git a/hack/gen_content.go b/hack/gen_content.go index e427f6c86..8100e6a7c 100644 --- a/hack/gen_content.go +++ b/hack/gen_content.go @@ -69,7 +69,7 @@ func main() { log.Fatal(err) } - err = os.Mkdir("./contentNew", 0755) + err = os.Mkdir("./content/en", 0755) if err != nil { log.Fatal(err) } @@ -88,7 +88,7 @@ func main() { for _, file := range source.Files { copyFrom := concatenatedPath + file.Src - copyTo := "./contentNew/" + folderName + file.Dest + copyTo := "./content/en" + file.Dest Copy(copyFrom, copyTo, entries) } } diff --git a/hack/info.yaml b/hack/info.yaml index 1a5a5d2df..8d5b1488e 100644 --- a/hack/info.yaml +++ b/hack/info.yaml @@ -5,73 +5,73 @@ sources: dest: /docs/guide/_index.md - src: /contributors/guide/coding-conventions.md dest: /docs/guide/coding-convention.md -# - src: /contributors/guide/collab.md -# dest: /docs/guide/collab.md -# - src: /contributors/guide/contributing.md -# dest: /docs/guide/contributing.md -# - src: /contributors/guide/expectations.md -# dest: /docs/guide/expectations.md -# - src: /contributors/guide/first-contribution.md -# dest: /docs/guide/first-contribution.md -# - src: /contributors/guide/getting-started.md -# dest: /docs/guide/getting-started.md -# - src: /contributors/guide/github-workflow.md -# dest: /docs/guide/github-workflow.md -# - src: /contributors/guide/help-wanted.md -# dest: /docs/guide/help-wanted.md -# - src: /contributors/guide/issue-triage.md -# dest: /docs/guide/issue-triage.md -# - src: /contributors/guide/non-code-contributions.md -# dest: /docs/guide/non-code-contributions.md -# - src: /contributors/guide/owners.md -# dest: /docs/guide/owners.md -# - src: /contributors/guide/pull-requests.md -# dest: /docs/guide/pull-requests.md -# - src: /contributors/guide/release-notes.md -# dest: /docs/guide/release-notes.md -# - src: /contributors/guide/git_workflow.png -# dest: /docs/guide/git_workflow.png -# - src: /contributors/guide/contributor-cheatsheet/README.md -# dest: /docs/contributor-cheatsheet.md -# - src: /events/community-meeting.md -# dest: /events/community-meeting.md -# - src: /events/office-hours.md -# dest: /events/office-hours.md -# - src: /mentoring/programs/meet-our-contributors.md -# dest: /events/meet-our-contributors.md -# - src: /sig-list.md -# dest: /community/community-groups.md -# - src: /mentoring/README.md -# dest: /community/mentoring.md -# - src: /values.md -# dest: /community/values.md -# - src: /communication/best-practices.md -# dest: /docs/comms/notifications.md -# - src: /communication/calendar-guidelines.md -# dest: /docs/comms/calendars.md -# - src: /communication/discuss-guidelines.md -# dest: /docs/comms/discuss.md" -# - src: /communication/mailing-list-guidelines.md -# dest: /docs/comms/mailing-lists.md -# - src: /communication/moderation.md -# dest: /docs/comms/moderation.md -# - src: /communication/moderators.md -# dest: /docs/comms/moderators.md -# - src: /communication/requesting-survey.md -# dest: /docs/comms/surveys.md -# - src: /communication/slack-guidelines.md -# dest: /docs/comms/slack.md -# - src: /communication/zoom-guidelines.md -# dest: /docs/comms/zoom.md -# - src: /communication/youtube/youtube-guidelines.md -# dest: /docs/comms/youtube.md -# - src: /github-management/default-branch-migration.md -# dest: /resources/rename.md -# - src: /committee-code-of-conduct/incident-process.md -# dest: /community/code-of-conduct-incident-process.md -# - repo: https://github.com/kubernetes/sig-release -# files: -# - src: /releases/release-1.22/README.md -# dest: /resources/release/index.md + - src: /contributors/guide/collab.md + dest: /docs/guide/collab.md + - src: /contributors/guide/contributing.md + dest: /docs/guide/contributing.md + - src: /contributors/guide/expectations.md + dest: /docs/guide/expectations.md + - src: /contributors/guide/first-contribution.md + dest: /docs/guide/first-contribution.md + - src: /contributors/guide/getting-started.md + dest: /docs/guide/getting-started.md + - src: /contributors/guide/github-workflow.md + dest: /docs/guide/github-workflow.md + - src: /contributors/guide/help-wanted.md + dest: /docs/guide/help-wanted.md + - src: /contributors/guide/issue-triage.md + dest: /docs/guide/issue-triage.md + - src: /contributors/guide/non-code-contributions.md + dest: /docs/guide/non-code-contributions.md + - src: /contributors/guide/owners.md + dest: /docs/guide/owners.md + - src: /contributors/guide/pull-requests.md + dest: /docs/guide/pull-requests.md + - src: /contributors/guide/release-notes.md + dest: /docs/guide/release-notes.md + - src: /contributors/guide/git_workflow.png + dest: /docs/guide/git_workflow.png + - src: /contributors/guide/contributor-cheatsheet/README.md + dest: /docs/contributor-cheatsheet.md + - src: /events/community-meeting.md + dest: /events/community-meeting.md + - src: /events/office-hours.md + dest: /events/office-hours.md + - src: /mentoring/programs/meet-our-contributors.md + dest: /events/meet-our-contributors.md + - src: /sig-list.md + dest: /community/community-groups.md + - src: /mentoring/README.md + dest: /community/mentoring.md + - src: /values.md + dest: /community/values.md + - src: /communication/best-practices.md + dest: /docs/comms/notifications.md + - src: /communication/calendar-guidelines.md + dest: /docs/comms/calendars.md + - src: /communication/discuss-guidelines.md + dest: /docs/comms/discuss.md + - src: /communication/mailing-list-guidelines.md + dest: /docs/comms/mailing-lists.md + - src: /communication/moderation.md + dest: /docs/comms/moderation.md + - src: /communication/moderators.md + dest: /docs/comms/moderators.md + - src: /communication/requesting-survey.md + dest: /docs/comms/surveys.md + - src: /communication/slack-guidelines.md + dest: /docs/comms/slack.md + - src: /communication/zoom-guidelines.md + dest: /docs/comms/zoom.md + - src: /communication/youtube/youtube-guidelines.md + dest: /docs/comms/youtube.md + - src: /github-management/default-branch-migration.md + dest: /resources/rename.md + - src: /committee-code-of-conduct/incident-process.md + dest: /community/code-of-conduct-incident-process.md +- repo: https://github.com/kubernetes/sig-release + files: + - src: /releases/release-1.22/README.md + dest: /resources/release/index.md # git.k8s.io, etc will only be in links not in the yaml \ No newline at end of file From 808ebc7ebf360e1c2ef39750f17f44b95e3ad2aa Mon Sep 17 00:00:00 2001 From: RinkiyaKeDad Date: Fri, 13 Aug 2021 12:13:12 +0530 Subject: [PATCH 13/16] making it work with existing folders Signed-off-by: RinkiyaKeDad --- hack/gen_content.go | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/hack/gen_content.go b/hack/gen_content.go index 8100e6a7c..11f42635a 100644 --- a/hack/gen_content.go +++ b/hack/gen_content.go @@ -69,10 +69,10 @@ func main() { log.Fatal(err) } - err = os.Mkdir("./content/en", 0755) - if err != nil { - log.Fatal(err) - } + // err = os.Mkdir("./content", 0755) + // if err != nil { + // log.Fatal(err) + // } // not iterating through "entries" so that we don't have to do multiple git clones for _, source := range info.Sources { @@ -88,7 +88,7 @@ func main() { for _, file := range source.Files { copyFrom := concatenatedPath + file.Src - copyTo := "./content/en" + file.Dest + copyTo := "./content" + file.Dest Copy(copyFrom, copyTo, entries) } } @@ -105,10 +105,19 @@ func Copy(src, dst string, entries []entry) error { mkdown := GetAllLinks(string(input), src, entries) dir, _ := filepath.Split(dst) - err = os.MkdirAll(dir, os.ModePerm) - if err != nil { - log.Fatal(err) + // only create folders if they do not already exist + if _, err := os.Stat(dir); os.IsNotExist(err) { + err = os.MkdirAll(dir, os.ModePerm) + if err != nil { + log.Fatal(err) + } + } else { + fmt.Println("File Exists") } + // err = os.MkdirAll(dir, os.ModePerm) + // if err != nil { + // log.Fatal(err) + // } _, err = os.Create(dst) if err != nil { log.Fatal(err) From 9d4a1c2eb5c3cd825f323f83d334ea1744a43d2b Mon Sep 17 00:00:00 2001 From: RinkiyaKeDad Date: Wed, 25 Aug 2021 13:43:21 +0530 Subject: [PATCH 14/16] bunch of changes Signed-off-by: RinkiyaKeDad --- hack/diff.txt | 974 +++++++++++++++++++++++++++++++++++++++ hack/gen_content.go | 22 +- hack/gen_content_test.go | 18 + hack/output.txt | 3 + 4 files changed, 1016 insertions(+), 1 deletion(-) create mode 100644 hack/diff.txt create mode 100644 hack/gen_content_test.go create mode 100644 hack/output.txt diff --git a/hack/diff.txt b/hack/diff.txt new file mode 100644 index 000000000..2891c7259 --- /dev/null +++ b/hack/diff.txt @@ -0,0 +1,974 @@ +diff -r ./content/community/code-of-conduct-incident-process.md ../../contentCorrect/en/community/code-of-conduct-incident-process.md +83c83 +< To reduce the likelihood of recusals, our [election](https://github.com/kubernetes/community/blob/master/election.md) process stipulates that we may never have a majority of the Committee from a single employer. +--- +> To reduce the likelihood of recusals, our [election](https://github.com/kubernetes/community/blob/master/committee-code-of-conduct/election.md) process stipulates that we may never have a majority of the Committee from a single employer. +diff -r ./content/community/community-groups.md ../../contentCorrect/en/community/community-groups.md +22c22 +< time bounded Working Groups, and the [community meeting](https://github.com/kubernetes/community/blob/mastercommunication/README.md#weekly-meeting). +--- +> time bounded Working Groups, and the [community meeting](https://github.com/kubernetes/community/blob/master/communication/README.md#weekly-meeting). +24c24 +< SIGs follow these [guidelines](https://github.com/kubernetes/community/blob/master/) although each of these groups may operate a little differently +--- +> SIGs follow these [guidelines](https://github.com/kubernetes/community/blob/master/governance.md) although each of these groups may operate a little differently +29c29 +< When the need arises, a [new SIG can be created](https://github.com/kubernetes/community/blob/master/) +--- +> When the need arises, a [new SIG can be created](https://github.com/kubernetes/community/blob/master/sig-wg-lifecycle.md) +35,58c35,58 +< |[API Machinery](https://github.com/kubernetes/community/blob/mastersig-api-machinery/README.md)|api-machinery|* [David Eads](https://github.com/deads2k), Red Hat
* [Federico Bongiovanni](https://github.com/fedebongio), Google
|* [Slack](https://kubernetes.slack.com/messages/sig-api-machinery)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-api-machinery)|* Kubebuilder and Controller Runtime Meeting: [Thursdays at 09:00 PT (Pacific Time) (biweekly)]()
* Regular SIG Meeting: [Wednesdays at 11:00 PT (Pacific Time) (biweekly)](https://zoom.us/my/apimachinery)
+< |[Apps](https://github.com/kubernetes/community/blob/mastersig-apps/README.md)|apps|* [Janet Kuo](https://github.com/janetkuo), Google
* [Kenneth Owens](https://github.com/kow3ns), Brex
* [Maciej Szulik](https://github.com/soltysh), Red Hat
|* [Slack](https://kubernetes.slack.com/messages/sig-apps)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-apps)|* Regular SIG Meeting: [Mondays at 9:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/739385290?pwd=ekVmNGRjT214MGJkY1JUUUpPMVlJUT09)
+< |[Architecture](https://github.com/kubernetes/community/blob/mastersig-architecture/README.md)|architecture|* [Derek Carr](https://github.com/derekwaynecarr), Red Hat
* [Davanum Srinivas](https://github.com/dims), VMware
* [John Belamaric](https://github.com/johnbelamaric), Google
|* [Slack](https://kubernetes.slack.com/messages/sig-architecture)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-architecture)|* Enhancements Subproject Meeting: [Thursdays at 10:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/95357819945)
* Production Readiness Office Hours: [Wednesdays at 12:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/482444151)
* Regular SIG Meeting: [Thursdays at 11:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/845605479)
* code organization Office Hours: [Thursdays at 14:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/159990793)
* conformance office Hours: [Tuesdays at 19:00 UTC (biweekly)](https://zoom.us/j/427337923)
+< |[Auth](https://github.com/kubernetes/community/blob/mastersig-auth/README.md)|auth|* [Mo Khan](https://github.com/enj), VMware
* [Mike Danese](https://github.com/mikedanese), Google
* [Rita Zhang](https://github.com/ritazh), Microsoft
|* [Slack](https://kubernetes.slack.com/messages/sig-auth)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-auth)|* Regular SIG Meeting: [Wednesdays at 11:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/264572674)
* Secrets Store CSI Meeting: [Thursdays at 8:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/91272289538)
+< |[Autoscaling](https://github.com/kubernetes/community/blob/mastersig-autoscaling/README.md)|autoscaling|* [Guy Templeton](https://github.com/gjtempleton), Skyscanner
* [Marcin Wielgus](https://github.com/mwielgus), Google
|* [Slack](https://kubernetes.slack.com/messages/sig-autoscaling)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-autoscaling)|* Regular SIG Meeting: [Mondays at 16:00 Poland (weekly)](https://zoom.us/j/944410904)
+< |[CLI](https://github.com/kubernetes/community/blob/mastersig-cli/README.md)|cli|* [Eddie Zaneski](https://github.com/eddiezane), Amazon
* [Sean Sullivan](https://github.com/seans3), Google
* [Maciej Szulik](https://github.com/soltysh), Red Hat
|* [Slack](https://kubernetes.slack.com/messages/sig-cli)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-cli)|* Bug Scrub: [Wednesdays at 09:00 PT (Pacific Time) (monthly)](https://zoom.us/j/288426795?pwd=UDdoYnFyNjBiS1RHcXRxS1BCNy9wUT09)
* Kustomize Bug Scrub: [Wednesdays at 09:00 PT (Pacific Time) (monthly)](https://zoom.us/j/288426795?pwd=UDdoYnFyNjBiS1RHcXRxS1BCNy9wUT09)
* Regular SIG Meeting: [Wednesdays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/288426795?pwd=UDdoYnFyNjBiS1RHcXRxS1BCNy9wUT09)
+< |[Cloud Provider](https://github.com/kubernetes/community/blob/mastersig-cloud-provider/README.md)|cloud-provider|* [Andrew Sy Kim](https://github.com/andrewsykim), VMware
* [Walter Fender](https://github.com/cheftako), Google
|* [Slack](https://kubernetes.slack.com/messages/sig-cloud-provider)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-cloud-provider)|* Regular SIG Meeting: [Wednesdays at 13:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/508079177?pwd=ZmEvMksxdTFTc0N1eXFLRm91QUlyUT09)
* (cloud-provider-extraction-migration) Weekly Sync removing the in-tree cloud providers led by @cheftako and @mcrute: [Thursdays at 13:30 PT (Pacific Time) (weekly)](https://docs.google.com/document/d/1KLsGGzNXQbsPeELCeF_q-f0h0CEGSe20xiwvcR2NlYM/edit)
* (provider-alibaba-cloud) Regular Alibaba Cloud Subproject Meeting: [Tuesdays at 12:00 UTC (monthly 2020 start date: Jan. 7th)](https://docs.google.com/document/d/1FQx0BPlkkl1Bn0c9ocVBxYIKojpmrS1CFP5h0DI68AE/edit)
* (provider-aws) Regular AWS Subproject Meeting: [Fridays at 9:00 PT (Pacific Time) (biweekly 2019 start date: Jan. 11th)](https://zoom.us/my/k8ssigaws)
* (provider-azure) Azure Subproject Meeting (every four weeks): [Mondays at 18:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/586836662)
* (provider-azure) Azure Subproject Meeting (every four weeks): [Thursdays at 8:30 PT (Pacific Time) (biweekly)](https://zoom.us/j/586836662)
* (provider-gcp) Regular GCP Subproject Meeting: [Thursdays at 16:00 UTC (biweekly)](https://docs.google.com/document/d/1FQx0BPlkkl1Bn0c9ocVBxYIKojpmrS1CFP5h0DI68AE/edit)
* (provider-ibmcloud) Regular IBM Subproject Meeting: [Wednesdays at 14:00 EST (biweekly)](https://zoom.us/j/9392903494)
* (provider-openstack) Regular OpenStack Subproject Meeting: [Wednesdays at 08:00 PT (Pacific Time) (biweekly starting Wednesday March 20, 2019)](https://docs.google.com/document/d/1bW3j4hFN4D8rv2LFv-DybB3gcE5ISAaOO_OpvDCgrGg/edit)
* (provider-vsphere) Cloud Provider vSphere monthly syncup: [Wednesdays at 09:00 PT (Pacific Time) (monthly - first Wednesday every month)](https://zoom.us/j/584244729)
+< |[Cluster Lifecycle](https://github.com/kubernetes/community/blob/mastersig-cluster-lifecycle/README.md)|cluster-lifecycle|* [Justin Santa Barbara](https://github.com/justinsb), Google
* [Lubomir Ivanov](https://github.com/neolit123), VMware
* [Vince Prignano](https://github.com/vincepri), VMware
|* [Slack](https://kubernetes.slack.com/messages/sig-cluster-lifecycle)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-cluster-lifecycle)|* Regular SIG Meeting: [Tuesdays at 08:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/916523531?pwd=eVhPNU5IQWtBYWhmT1N4T0V6bHZFZz09)
* (cluster-addons) Cluster Addons meeting: [Tuesdays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/130096731?pwd=U3pzWloxZ0lpbEtadTZGSERRdENrZz09)
* (cluster-api) Cluster API office hours: [Wednesdays at 10:00 PT (Pacific Time) (weekly)](https://zoom.us/j/861487554?pwd=dTVGVVFCblFJc0VBbkFqQlU0dHpiUT09)
* (cluster-api-provider-aws) Cluster API Provider AWS office hours: [Mondays at 10:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/423312508?pwd=Tk9OWnZ4WHg2T2xRek9xZXA1eFQ4dz09)
* (cluster-api-provider-azure) Cluster API Provider Azure office hours: [Thursdays at 08:00 PT (Pacific Time) (bi-weekly)](https://zoom.us/j/566930821?pwd=N2JuRWljc3hGS3ZnVlBLTk42TFlzQT09)
* (cluster-api-provider-digitalocean) Cluster API Provider DigitalOcean office hours: [Thursdays at 09:00 PT (Pacific Time) (monthly, second Thursday of the month)](https://zoom.us/j/91312171751?pwd=bndnMDdJMkhySDVncjZoR1VhdFBTZz09)
* (cluster-api-provider-nested) Cluster API Provider Nested Office Hours: [Tuesdays at 10:00 PT (Pacific Time) (weekly)](https://zoom.us/j/91929881559?pwd=WllxazhTUzBFN1BNWTRadTA3NGtQQT09)
* (cluster-api-provider-vsphere) Cluster API vSphere meeting: [Thursdays at 10:00 PT (Pacific Time) (biweekly starting Thursday June 25th, 2020)](https://zoom.us/j/92253194848?pwd=cVVVNDMxeTl1QVJPUlpvLzNSVU1JZz09)
* (etcdadm) etcdadm Office Hours: [Mondays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/612375927?pwd=MldxRnRSOExCVW1rbjM4ZzBSc3MvUT09)
* (image-builder) Image Builder office hours: [Thursdays at 08:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/807524571?pwd=WEFTeDJzeWU3bVFkcWQ0UEdZRkRCdz09)
* (kops) kops Office Hours: [Fridays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/97072789944?pwd=VVlUR3dhN2h5TEFQZHZTVVd4SnJUdz09)
* (kubeadm) kubeadm Office Hours: [Wednesdays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/179916854?pwd=dzRhbjFnRGVQRDVUVHY1a29JV2JxUT09)
* (kubespray) Kubespray Office Hours: [Wednesdays at 08:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/532465189?pwd=THMvL2MzdjZXWG55eHpJMkU2dkI1dz09)
* (minikube) minikube office hours: [Mondays at 11:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/97017029363?pwd=U3MvZ3pMMHM5eWorSjgzUnd5OEFtUT09)
+< |[Contributor Experience](https://github.com/kubernetes/community/blob/mastersig-contributor-experience/README.md)|contributor-experience|* [Alison Dowdney](https://github.com/alisondy), Weaveworks
* [Bob Killen](https://github.com/mrbobbytables), Google
|* [Slack](https://kubernetes.slack.com/messages/sig-contribex)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-contribex)|* Regular SIG Meeting: [Wednesdays at 9:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/397264241?pwd=bHNnZVArNFdPaWVJMmttdko0Sktudz09)
* (community-management) APAC Coordinator Meeting: [Thursdays at 5:00 UTC (biweekly)](https://zoom.us/j/144440337?pwd=VEVBejdPYkE2MGdUSDZZZnVlNFdrdz09)
* (contributor-comms) Contributor Comms - Upstream Marketing Team Meeting: [Fridays at 8:00 PT (Pacific Time) (weekly)](https://zoom.us/j/596959769?pwd=TURBNlZPb3BEWVFmbWlCYXlMVVJiUT09)
* (events) Office Hours European Edition (Open Q&A for end-user kubernetes related questions): [Wednesdays at 09:00 ET (Eastern Time) (monthly on 3rd Wednesday)](https://hackmd.io/@k8s/office-hours)
* (events) Office Hours Western Edition (Open Q&A for end-user kubernetes related questions): [Wednesdays at 12:00 ET (Eastern Time) (monthly on 3rd Wednesday)]()
* (github-management) GitHub Administration Subproject: [Thursdays at 09:30 PT (Pacific Time) (Monthly on 4th Thursday)](https://zoom.us/j/442435463?pwd=Rk1PWWpSSTJDaWJKdzRYb2EyTlkvZz09)
* (mentoring) Mentoring Subproject Meeting: [Mondays at 08:00 PT (Biweekly)](https://zoom.us/j/95894431386?pwd=RFdmQzlZeVZDVWJzcFVXZXR5djNwUT09)
+< |[Docs](https://github.com/kubernetes/community/blob/mastersig-docs/README.md)|docs|* [Jim Angel](https://github.com/jimangel), Google
|* [Slack](https://kubernetes.slack.com/messages/sig-docs)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-docs)|* APAC SIG Meeting: [Wednesdays at 01:00 UTC (monthly - Wednesday, after the fourth Tuesday, every month)](https://docs.google.com/document/d/1ddHwLK3kUMX1wVFIwlksjTk0MsqitBnWPe1LRa1Rx5A/edit)
* Korean Team Meeting: [Thursdays at 13:00 UTC (biweekly)](https://docs.google.com/document/d/1h5sMhBpPB5unJmBAS7KzDiPs-_eFQOu5o4UyHwMtFCA/edit)
* Localization Subgroup Meeting: [Mondays at 15:00 UTC (monthly)](https://docs.google.com/document/d/1NwO1AN8Ea2zlK8uAdaDAKf1-LZDAFvSewIfrKqfl5No/)
* Regular SIG Meeting: [Tuesdays at 17:30 UTC (weekly - except fourth Tuesday every month)](https://docs.google.com/document/d/1ddHwLK3kUMX1wVFIwlksjTk0MsqitBnWPe1LRa1Rx5A/edit)
* Spanish Team Meeting: [Tuesdays at 15:30 UTC (weekly)](https://zoom.us/j/95918289494?pwd=Wk9Oa0xZUkFXSDV5OTFoZEZsTURCZz09)
+< |[Instrumentation](https://github.com/kubernetes/community/blob/mastersig-instrumentation/README.md)|instrumentation|* [Elana Hashman](https://github.com/ehashman), Red Hat
* [Han Kang](https://github.com/logicalhan), Google
|* [Slack](https://kubernetes.slack.com/messages/sig-instrumentation)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-instrumentation)|* Regular SIG Meeting: [Thursdays at 9:30 PT (Pacific Time) (biweekly)](https://zoom.us/j/5342565819?pwd=RlVsK21NVnR1dmE3SWZQSXhveHZPdz09)
* Regular Triage Meeting: [Thursdays at 9:30 PT (Pacific Time) (biweekly - alternating with regular meeting)](https://zoom.us/j/5342565819?pwd=RlVsK21NVnR1dmE3SWZQSXhveHZPdz09)
+< |[Multicluster](https://github.com/kubernetes/community/blob/mastersig-multicluster/README.md)|multicluster|* [Jeremy Olmsted-Thompson](https://github.com/jeremyot), Google
* [Paul Morie](https://github.com/pmorie), Red Hat
|* [Slack](https://kubernetes.slack.com/messages/sig-multicluster)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-multicluster)|* Regular SIG Meeting: [Tuesdays at 9:30 PT (Pacific Time) (weekly)](https://zoom.us/my/k8s.mc)
+< |[Network](https://github.com/kubernetes/community/blob/mastersig-network/README.md)|network|* [Casey Davenport](https://github.com/caseydavenport), Tigera
* [Dan Williams](https://github.com/dcbw), Red Hat
* [Tim Hockin](https://github.com/thockin), Google
|* [Slack](https://kubernetes.slack.com/messages/sig-network)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-network)|* Gateway API Meeting (APAC Friendly): [Mondays at 15:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/441530404)
* Gateway API Meeting (EMEA Friendly): [Tuesdays at 10:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/441530404)
* Network Policy API Meeting: [Mondays at 13:00 PT (Pacific Time) (weekly)](https://zoom.us/j/96264742248)
* SIG Network Ingress NGINX Meeting: [Tuesdays at 9:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/98377891310)
* SIG Network Kube Proxy Meeting: [Fridays at 8:30 PT (Pacific Time) (weekly)](https://docs.google.com/document/d/1yW3AUp5rYDLYCAtZc6e4zeLbP5HPLXdvuEFeVESOTic/edit)
* SIG Network Meeting: [Thursdays at 14:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/361123509)
+< |[Node](https://github.com/kubernetes/community/blob/mastersig-node/README.md)|node|* [Dawn Chen](https://github.com/dchen1107), Google
* [Derek Carr](https://github.com/derekwaynecarr), Red Hat
|* [Slack](https://kubernetes.slack.com/messages/sig-node)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-node)|* Main SIG Meeting: [Tuesdays at 10:00 PT (Pacific Time) (weekly)](https://zoom.us/j/4799874685)
* Monthly Alternate Time CI/Triage Meeting: [second Thursdays at 08:00 PT (Pacific Time) (monthly)](https://zoom.us/j/4799874685)
* Weekly CI/Triage Meeting: [Wednesdays at 10:00 PT (Pacific Time) (weekly - excluding 2nd week of the month)](https://zoom.us/j/4799874685)
+< |[Release](https://github.com/kubernetes/community/blob/mastersig-release/README.md)|release|* [Stephen Augustus](https://github.com/justaugustus), Cisco
* [Sascha Grunert](https://github.com/saschagrunert), Red Hat
|* [Slack](https://kubernetes.slack.com/messages/sig-release)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-release)|* Regular SIG Meeting: [Tuesdays at 14:30 UTC (biweekly)](https://zoom.us/j/327142148?pwd=RE9aZWtCc0hhOWs4ZTdXZ0hBM0ROdz09)
* (Release Engineering) Release Engineering: [Tuesdays at 14:30 UTC (biweekly)](https://zoom.us/j/240812475?pwd=bmhDQjN3N3dhV1dNSm9walJmTG5tUT09)
+< |[Scalability](https://github.com/kubernetes/community/blob/mastersig-scalability/README.md)|scalability|* [Matt Matejczyk](https://github.com/mm4tt), Google
* [Shyam Jeedigunta](https://github.com/shyamjvs), AWS
|* [Slack](https://kubernetes.slack.com/messages/sig-scalability)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-scale)|* Regular SIG Meeting: [Thursdays at 10:30 PT (Pacific Time) (bi-weekly ([upcoming meeting dates](#upcoming-meeting-dates)))](https://zoom.us/j/94252896018?pwd=cTlMMlBoTHZqUEdjRm9VY2NWNUg5dz09)
+< |[Scheduling](https://github.com/kubernetes/community/blob/mastersig-scheduling/README.md)|scheduling|* [Wei Huang](https://github.com/Huang-Wei), IBM
* [Abdullah Gharaibeh](https://github.com/ahg-g), Google
|* [Slack](https://kubernetes.slack.com/messages/sig-scheduling)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-scheduling)|* 10AM PT Meeting: [Thursdays at 17:00 UTC (biweekly starting Thursday June 7, 2018)](https://zoom.us/j/841218129)
+< |[Security](https://github.com/kubernetes/community/blob/mastersig-security/README.md)|security|* [Ian Coldwater](https://github.com/IanColdwater), Twilio
* [Tabitha Sable](https://github.com/tabbysable), Datadog
|* [Slack](https://kubernetes.slack.com/messages/sig-security)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-security)|* Regular SIG Meeting: [Thursdays at 9:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/9934z1184192?pwd=L25Tc0ZOL3FqU09KNERlTU12dFhTQT09)
+< |[Service Catalog](https://github.com/kubernetes/community/blob/mastersig-service-catalog/README.md)|service-catalog|* [Jonathan Berkhahn](https://github.com/jberkhahn), IBM
* [Konstantin Semenov](https://github.com/jhvhs), VMware
|* [Slack](https://kubernetes.slack.com/messages/sig-service-catalog)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-service-catalog)|* Regular SIG Meeting: [Mondays at 10:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/7201225346)
+< |[Storage](https://github.com/kubernetes/community/blob/mastersig-storage/README.md)|storage|* [Saad Ali](https://github.com/saad-ali), Google
* [Xing Yang](https://github.com/xing-yang), VMware
|* [Slack](https://kubernetes.slack.com/messages/sig-storage)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-storage)|* Regular SIG Meeting: [Thursdays at 9:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/614261834)
+< |[Testing](https://github.com/kubernetes/community/blob/mastersig-testing/README.md)|testing|* [Benjamin Elder](https://github.com/BenTheElder), Google
* [Aaron Crickenberger](https://github.com/spiffxp), Google
* [Steve Kuznetsov](https://github.com/stevekuznetsov), Red Hat
|* [Slack](https://kubernetes.slack.com/messages/sig-testing)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-testing)|* SIG Testing Bi-Weekly Meeting: [Tuesdays at 10:00 PT (Pacific Time) (bi-weekly starting Tuesday August 13, 2019)](https://zoom.us/j/135450138?pwd=WGJyaVZzekJCWFBTMGJGTXVjUFJaUT09)
+< |[UI](https://github.com/kubernetes/community/blob/mastersig-ui/README.md)|ui|* [Sebastian Florek](https://github.com/floreks), Kubermatic
* [Marcin Maciaszczyk](https://github.com/maciaszczykm), Kubermatic
* [Shu Muto](https://github.com/shu-mutou), NEC
|* [Slack](https://kubernetes.slack.com/messages/sig-ui)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-ui)|* Regular SIG Meeting: [Thursdays at 09:00 PT (Pacific Time) (bi-weekly)](https://groups.google.com/forum/#!forum/kubernetes-sig-ui)
+< |[Usability](https://github.com/kubernetes/community/blob/mastersig-usability/README.md)|usability|* [Himanshu Pandey](https://github.com/hpandeycodeit), VMware
* [Gaby Moreno Cesar](https://github.com/morengab), IBM
* [Tasha Drew](https://github.com/tashimi), VMware
|* [Slack](https://kubernetes.slack.com/messages/sig-usability)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-usability)|* Regular SIG Meeting: [Tuesdays at 9:00 PT (Pacific Time) (every third week)](https://zoom.us/j/3832562240)
+< |[Windows](https://github.com/kubernetes/community/blob/mastersig-windows/README.md)|windows|* [Mark Rossetti](https://github.com/marosset), Microsoft
|* [Slack](https://kubernetes.slack.com/messages/sig-windows)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-windows)|* Backlog Refinement / Bug Triage Meeting: [Thursdays at 12:30 Eastern Time (ET) (biweekly)](https://zoom.us/j/94389601840?pwd=MCs2SEJQWG0zUWpBS3Nod0ZNMmVXQT09)
* Regular SIG Meeting: [Tuesdays at 12:30 Eastern Time (ET) (weekly)](https://zoom.us/j/96892680257?pwd=TVNyMzB4VVMwRGZnUkgzT1dnb2szZz09)
* Weekly CI Meeting: [Tuesdays at 12:15 Eastern Time (ET) (weekly)](https://zoom.us/j/96892680257?pwd=TVNyMzB4VVMwRGZnUkgzT1dnb2szZz09)
+--- +> |[API Machinery](https://github.com/kubernetes/community/blob/master/sig-api-machinery/README.md)|api-machinery|* [David Eads](https://github.com/deads2k), Red Hat
* [Federico Bongiovanni](https://github.com/fedebongio), Google
|* [Slack](https://kubernetes.slack.com/messages/sig-api-machinery)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-api-machinery)|* Kubebuilder and Controller Runtime Meeting: [Thursdays at 09:00 PT (Pacific Time) (biweekly)]()
* Regular SIG Meeting: [Wednesdays at 11:00 PT (Pacific Time) (biweekly)](https://zoom.us/my/apimachinery)
+> |[Apps](https://github.com/kubernetes/community/blob/master/sig-apps/README.md)|apps|* [Janet Kuo](https://github.com/janetkuo), Google
* [Kenneth Owens](https://github.com/kow3ns), Brex
* [Maciej Szulik](https://github.com/soltysh), Red Hat
|* [Slack](https://kubernetes.slack.com/messages/sig-apps)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-apps)|* Regular SIG Meeting: [Mondays at 9:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/739385290?pwd=ekVmNGRjT214MGJkY1JUUUpPMVlJUT09)
+> |[Architecture](https://github.com/kubernetes/community/blob/master/sig-architecture/README.md)|architecture|* [Derek Carr](https://github.com/derekwaynecarr), Red Hat
* [Davanum Srinivas](https://github.com/dims), VMware
* [John Belamaric](https://github.com/johnbelamaric), Google
|* [Slack](https://kubernetes.slack.com/messages/sig-architecture)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-architecture)|* Enhancements Subproject Meeting: [Thursdays at 10:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/95357819945)
* Production Readiness Office Hours: [Wednesdays at 12:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/482444151)
* Regular SIG Meeting: [Thursdays at 11:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/845605479)
* code organization Office Hours: [Thursdays at 14:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/159990793)
* conformance office Hours: [Tuesdays at 19:00 UTC (biweekly)](https://zoom.us/j/427337923)
+> |[Auth](https://github.com/kubernetes/community/blob/master/sig-auth/README.md)|auth|* [Mo Khan](https://github.com/enj), VMware
* [Mike Danese](https://github.com/mikedanese), Google
* [Rita Zhang](https://github.com/ritazh), Microsoft
|* [Slack](https://kubernetes.slack.com/messages/sig-auth)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-auth)|* Regular SIG Meeting: [Wednesdays at 11:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/264572674)
* Secrets Store CSI Meeting: [Thursdays at 8:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/91272289538)
+> |[Autoscaling](https://github.com/kubernetes/community/blob/master/sig-autoscaling/README.md)|autoscaling|* [Guy Templeton](https://github.com/gjtempleton), Skyscanner
* [Marcin Wielgus](https://github.com/mwielgus), Google
|* [Slack](https://kubernetes.slack.com/messages/sig-autoscaling)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-autoscaling)|* Regular SIG Meeting: [Mondays at 16:00 Poland (weekly)](https://zoom.us/j/944410904)
+> |[CLI](https://github.com/kubernetes/community/blob/master/sig-cli/README.md)|cli|* [Eddie Zaneski](https://github.com/eddiezane), Amazon
* [Sean Sullivan](https://github.com/seans3), Google
* [Maciej Szulik](https://github.com/soltysh), Red Hat
|* [Slack](https://kubernetes.slack.com/messages/sig-cli)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-cli)|* Bug Scrub: [Wednesdays at 09:00 PT (Pacific Time) (monthly)](https://zoom.us/j/288426795?pwd=UDdoYnFyNjBiS1RHcXRxS1BCNy9wUT09)
* Kustomize Bug Scrub: [Wednesdays at 09:00 PT (Pacific Time) (monthly)](https://zoom.us/j/288426795?pwd=UDdoYnFyNjBiS1RHcXRxS1BCNy9wUT09)
* Regular SIG Meeting: [Wednesdays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/288426795?pwd=UDdoYnFyNjBiS1RHcXRxS1BCNy9wUT09)
+> |[Cloud Provider](https://github.com/kubernetes/community/blob/master/sig-cloud-provider/README.md)|cloud-provider|* [Andrew Sy Kim](https://github.com/andrewsykim), VMware
* [Walter Fender](https://github.com/cheftako), Google
|* [Slack](https://kubernetes.slack.com/messages/sig-cloud-provider)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-cloud-provider)|* Regular SIG Meeting: [Wednesdays at 13:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/508079177?pwd=ZmEvMksxdTFTc0N1eXFLRm91QUlyUT09)
* (cloud-provider-extraction-migration) Weekly Sync removing the in-tree cloud providers led by @cheftako and @mcrute: [Thursdays at 13:30 PT (Pacific Time) (weekly)](https://docs.google.com/document/d/1KLsGGzNXQbsPeELCeF_q-f0h0CEGSe20xiwvcR2NlYM/edit)
* (provider-alibaba-cloud) Regular Alibaba Cloud Subproject Meeting: [Tuesdays at 12:00 UTC (monthly 2020 start date: Jan. 7th)](https://docs.google.com/document/d/1FQx0BPlkkl1Bn0c9ocVBxYIKojpmrS1CFP5h0DI68AE/edit)
* (provider-aws) Regular AWS Subproject Meeting: [Fridays at 9:00 PT (Pacific Time) (biweekly 2019 start date: Jan. 11th)](https://zoom.us/my/k8ssigaws)
* (provider-azure) Azure Subproject Meeting (every four weeks): [Mondays at 18:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/586836662)
* (provider-azure) Azure Subproject Meeting (every four weeks): [Thursdays at 8:30 PT (Pacific Time) (biweekly)](https://zoom.us/j/586836662)
* (provider-gcp) Regular GCP Subproject Meeting: [Thursdays at 16:00 UTC (biweekly)](https://docs.google.com/document/d/1FQx0BPlkkl1Bn0c9ocVBxYIKojpmrS1CFP5h0DI68AE/edit)
* (provider-ibmcloud) Regular IBM Subproject Meeting: [Wednesdays at 14:00 EST (biweekly)](https://zoom.us/j/9392903494)
* (provider-openstack) Regular OpenStack Subproject Meeting: [Wednesdays at 08:00 PT (Pacific Time) (biweekly starting Wednesday March 20, 2019)](https://docs.google.com/document/d/1bW3j4hFN4D8rv2LFv-DybB3gcE5ISAaOO_OpvDCgrGg/edit)
* (provider-vsphere) Cloud Provider vSphere monthly syncup: [Wednesdays at 09:00 PT (Pacific Time) (monthly - first Wednesday every month)](https://zoom.us/j/584244729)
+> |[Cluster Lifecycle](https://github.com/kubernetes/community/blob/master/sig-cluster-lifecycle/README.md)|cluster-lifecycle|* [Justin Santa Barbara](https://github.com/justinsb), Google
* [Lubomir Ivanov](https://github.com/neolit123), VMware
* [Timothy St. Clair](https://github.com/timothysc), VMware
|* [Slack](https://kubernetes.slack.com/messages/sig-cluster-lifecycle)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-cluster-lifecycle)|* Regular SIG Meeting: [Tuesdays at 08:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/916523531?pwd=eVhPNU5IQWtBYWhmT1N4T0V6bHZFZz09)
* (cluster-addons) Cluster Addons meeting: [Tuesdays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/130096731?pwd=U3pzWloxZ0lpbEtadTZGSERRdENrZz09)
* (cluster-api) Cluster API office hours: [Wednesdays at 10:00 PT (Pacific Time) (weekly)](https://zoom.us/j/861487554?pwd=dTVGVVFCblFJc0VBbkFqQlU0dHpiUT09)
* (cluster-api-provider-aws) Cluster API Provider AWS office hours: [Mondays at 10:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/423312508?pwd=Tk9OWnZ4WHg2T2xRek9xZXA1eFQ4dz09)
* (cluster-api-provider-azure) Cluster API Provider Azure office hours: [Thursdays at 08:00 PT (Pacific Time) (bi-weekly)](https://zoom.us/j/566930821?pwd=N2JuRWljc3hGS3ZnVlBLTk42TFlzQT09)
* (cluster-api-provider-digitalocean) Cluster API Provider DigitalOcean office hours: [Thursdays at 09:00 PT (Pacific Time) (monthly, second Thursday of the month)](https://zoom.us/j/91312171751?pwd=bndnMDdJMkhySDVncjZoR1VhdFBTZz09)
* (cluster-api-provider-nested) Cluster API Provider Nested Office Hours: [Tuesdays at 10:00 PT (Pacific Time) (weekly)](https://zoom.us/j/91929881559?pwd=WllxazhTUzBFN1BNWTRadTA3NGtQQT09)
* (cluster-api-provider-vsphere) Cluster API vSphere meeting: [Thursdays at 10:00 PT (Pacific Time) (biweekly starting Thursday June 25th, 2020)](https://zoom.us/j/92253194848?pwd=cVVVNDMxeTl1QVJPUlpvLzNSVU1JZz09)
* (etcdadm) etcdadm Office Hours: [Mondays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/612375927?pwd=MldxRnRSOExCVW1rbjM4ZzBSc3MvUT09)
* (image-builder) Image Builder office hours: [Thursdays at 08:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/807524571?pwd=WEFTeDJzeWU3bVFkcWQ0UEdZRkRCdz09)
* (kops) kops Office Hours: [Fridays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/97072789944?pwd=VVlUR3dhN2h5TEFQZHZTVVd4SnJUdz09)
* (kubeadm) kubeadm Office Hours: [Wednesdays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/179916854?pwd=dzRhbjFnRGVQRDVUVHY1a29JV2JxUT09)
* (kubespray) Kubespray Office Hours: [Wednesdays at 08:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/532465189?pwd=THMvL2MzdjZXWG55eHpJMkU2dkI1dz09)
* (minikube) minikube office hours: [Mondays at 11:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/97017029363?pwd=U3MvZ3pMMHM5eWorSjgzUnd5OEFtUT09)
+> |[Contributor Experience](https://github.com/kubernetes/community/blob/master/sig-contributor-experience/README.md)|contributor-experience|* [Alison Dowdney](https://github.com/alisondy), Weaveworks
* [Bob Killen](https://github.com/mrbobbytables), Google
|* [Slack](https://kubernetes.slack.com/messages/sig-contribex)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-contribex)|* Regular SIG Meeting: [Wednesdays at 9:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/397264241?pwd=bHNnZVArNFdPaWVJMmttdko0Sktudz09)
* (community-management) APAC Coordinator Meeting: [Thursdays at 5:00 UTC (biweekly)](https://zoom.us/j/144440337?pwd=VEVBejdPYkE2MGdUSDZZZnVlNFdrdz09)
* (contributor-comms) Contributor Comms - Upstream Marketing Team Meeting: [Fridays at 8:00 PT (Pacific Time) (weekly)](https://zoom.us/j/596959769?pwd=TURBNlZPb3BEWVFmbWlCYXlMVVJiUT09)
* (events) Office Hours European Edition (Open Q&A for end-user kubernetes related questions): [Wednesdays at 09:00 ET (Eastern Time) (monthly on 3rd Wednesday)](https://hackmd.io/@k8s/office-hours)
* (events) Office Hours Western Edition (Open Q&A for end-user kubernetes related questions): [Wednesdays at 12:00 ET (Eastern Time) (monthly on 3rd Wednesday)]()
* (github-management) GitHub Administration Subproject: [Thursdays at 09:30 PT (Pacific Time) (Monthly on 4th Thursday)](https://zoom.us/j/442435463?pwd=Rk1PWWpSSTJDaWJKdzRYb2EyTlkvZz09)
* (mentoring) Mentoring Subproject Meeting: [Mondays at 08:00 PT (Biweekly)](https://zoom.us/j/95894431386?pwd=RFdmQzlZeVZDVWJzcFVXZXR5djNwUT09)
+> |[Docs](https://github.com/kubernetes/community/blob/master/sig-docs/README.md)|docs|* [Irvi Aini](https://github.com/irvifa), Spotify
* [Jim Angel](https://github.com/jimangel), Google
* [Kaitlyn Barnard](https://github.com/kbarnard10), Kong
|* [Slack](https://kubernetes.slack.com/messages/sig-docs)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-docs)|* APAC SIG Meeting: [Wednesdays at 01:00 UTC (monthly - Wednesday, after the fourth Tuesday, every month)](https://docs.google.com/document/d/1ddHwLK3kUMX1wVFIwlksjTk0MsqitBnWPe1LRa1Rx5A/edit)
* Korean Team Meeting: [Thursdays at 13:00 UTC (biweekly)](https://docs.google.com/document/d/1h5sMhBpPB5unJmBAS7KzDiPs-_eFQOu5o4UyHwMtFCA/edit)
* Localization Subgroup Meeting: [Mondays at 15:00 UTC (monthly)](https://docs.google.com/document/d/1NwO1AN8Ea2zlK8uAdaDAKf1-LZDAFvSewIfrKqfl5No/)
* Regular SIG Meeting: [Tuesdays at 17:30 UTC (weekly - except fourth Tuesday every month)](https://docs.google.com/document/d/1ddHwLK3kUMX1wVFIwlksjTk0MsqitBnWPe1LRa1Rx5A/edit)
* Spanish Team Meeting: [Tuesdays at 15:30 UTC (weekly)](https://zoom.us/j/95918289494?pwd=Wk9Oa0xZUkFXSDV5OTFoZEZsTURCZz09)
+> |[Instrumentation](https://github.com/kubernetes/community/blob/master/sig-instrumentation/README.md)|instrumentation|* [Elana Hashman](https://github.com/ehashman), Red Hat
* [Han Kang](https://github.com/logicalhan), Google
|* [Slack](https://kubernetes.slack.com/messages/sig-instrumentation)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-instrumentation)|* Regular SIG Meeting: [Thursdays at 9:30 PT (Pacific Time) (biweekly)](https://zoom.us/j/5342565819?pwd=RlVsK21NVnR1dmE3SWZQSXhveHZPdz09)
* Regular Triage Meeting: [Thursdays at 9:30 PT (Pacific Time) (biweekly - alternating with regular meeting)](https://zoom.us/j/5342565819?pwd=RlVsK21NVnR1dmE3SWZQSXhveHZPdz09)
+> |[Multicluster](https://github.com/kubernetes/community/blob/master/sig-multicluster/README.md)|multicluster|* [Jeremy Olmsted-Thompson](https://github.com/jeremyot), Google
* [Paul Morie](https://github.com/pmorie), Red Hat
|* [Slack](https://kubernetes.slack.com/messages/sig-multicluster)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-multicluster)|* Regular SIG Meeting: [Tuesdays at 9:30 PT (Pacific Time) (weekly)](https://zoom.us/my/k8s.mc)
+> |[Network](https://github.com/kubernetes/community/blob/master/sig-network/README.md)|network|* [Casey Davenport](https://github.com/caseydavenport), Tigera
* [Dan Williams](https://github.com/dcbw), Red Hat
* [Tim Hockin](https://github.com/thockin), Google
|* [Slack](https://kubernetes.slack.com/messages/sig-network)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-network)|* Gateway API Meeting (APAC Friendly): [Mondays at 15:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/441530404)
* Gateway API Meeting (EMEA Friendly): [Tuesdays at 10:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/441530404)
* Network Policy API Meeting: [Mondays at 13:00 PT (Pacific Time) (weekly)](https://zoom.us/j/96264742248)
* SIG Network Ingress NGINX Meeting: [Tuesdays at 9:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/98377891310)
* SIG Network Kube Proxy Meeting: [Fridays at 8:30 PT (Pacific Time) (weekly)](https://docs.google.com/document/d/1yW3AUp5rYDLYCAtZc6e4zeLbP5HPLXdvuEFeVESOTic/edit)
* SIG Network Meeting: [Thursdays at 14:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/361123509)
+> |[Node](https://github.com/kubernetes/community/blob/master/sig-node/README.md)|node|* [Dawn Chen](https://github.com/dchen1107), Google
* [Derek Carr](https://github.com/derekwaynecarr), Red Hat
|* [Slack](https://kubernetes.slack.com/messages/sig-node)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-node)|* Regular SIG Meeting: [Tuesdays at 10:00 PT (Pacific Time) (weekly)](https://zoom.us/j/4799874685)
* Weekly CI/Triage Meeting: [Wednesdays at 10:00 PT (Pacific Time) (weekly)](https://zoom.us/j/4799874685)
+> |[Release](https://github.com/kubernetes/community/blob/master/sig-release/README.md)|release|* [Stephen Augustus](https://github.com/justaugustus), Cisco
* [Sascha Grunert](https://github.com/saschagrunert), Red Hat
|* [Slack](https://kubernetes.slack.com/messages/sig-release)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-release)|* Regular SIG Meeting: [Tuesdays at 14:30 UTC (biweekly)](https://zoom.us/j/327142148)
* (Release Engineering) Release Engineering: [Tuesdays at 14:30 UTC (biweekly)](https://zoom.us/j/240812475)
+> |[Scalability](https://github.com/kubernetes/community/blob/master/sig-scalability/README.md)|scalability|* [Matt Matejczyk](https://github.com/mm4tt), Google
* [Shyam Jeedigunta](https://github.com/shyamjvs), AWS
|* [Slack](https://kubernetes.slack.com/messages/sig-scalability)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-scale)|* Regular SIG Meeting: [Thursdays at 10:30 PT (Pacific Time) (bi-weekly ([upcoming meeting dates](#upcoming-meeting-dates)))](https://zoom.us/j/94252896018?pwd=cTlMMlBoTHZqUEdjRm9VY2NWNUg5dz09)
+> |[Scheduling](https://github.com/kubernetes/community/blob/master/sig-scheduling/README.md)|scheduling|* [Wei Huang](https://github.com/Huang-Wei), IBM
* [Abdullah Gharaibeh](https://github.com/ahg-g), Google
|* [Slack](https://kubernetes.slack.com/messages/sig-scheduling)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-scheduling)|* 10AM PT Meeting: [Thursdays at 17:00 UTC (biweekly starting Thursday June 7, 2018)](https://zoom.us/j/841218129)
+> |[Security](https://github.com/kubernetes/community/blob/master/sig-security/README.md)|security|* [Ian Coldwater](https://github.com/IanColdwater), Twilio
* [Tabitha Sable](https://github.com/tabbysable), Datadog
|* [Slack](https://kubernetes.slack.com/messages/sig-security)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-security)|* Regular SIG Meeting: [Thursdays at 9:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/9934z1184192?pwd=L25Tc0ZOL3FqU09KNERlTU12dFhTQT09)
+> |[Service Catalog](https://github.com/kubernetes/community/blob/master/sig-service-catalog/README.md)|service-catalog|* [Jonathan Berkhahn](https://github.com/jberkhahn), IBM
* [Konstantin Semenov](https://github.com/jhvhs), VMware
|* [Slack](https://kubernetes.slack.com/messages/sig-service-catalog)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-service-catalog)|* Regular SIG Meeting: [Mondays at 10:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/7201225346)
+> |[Storage](https://github.com/kubernetes/community/blob/master/sig-storage/README.md)|storage|* [Saad Ali](https://github.com/saad-ali), Google
* [Xing Yang](https://github.com/xing-yang), VMware
|* [Slack](https://kubernetes.slack.com/messages/sig-storage)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-storage)|* Regular SIG Meeting: [Thursdays at 9:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/614261834)
+> |[Testing](https://github.com/kubernetes/community/blob/master/sig-testing/README.md)|testing|* [Benjamin Elder](https://github.com/BenTheElder), Google
* [Aaron Crickenberger](https://github.com/spiffxp), Google
* [Steve Kuznetsov](https://github.com/stevekuznetsov), Red Hat
|* [Slack](https://kubernetes.slack.com/messages/sig-testing)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-testing)|* SIG Testing Bi-Weekly Meeting: [Tuesdays at 10:00 PT (Pacific Time) (bi-weekly starting Tuesday August 13, 2019)](https://zoom.us/j/135450138?pwd=WGJyaVZzekJCWFBTMGJGTXVjUFJaUT09)
+> |[UI](https://github.com/kubernetes/community/blob/master/sig-ui/README.md)|ui|* [Sebastian Florek](https://github.com/floreks), Kubermatic
* [Marcin Maciaszczyk](https://github.com/maciaszczykm), Kubermatic
* [Shu Muto](https://github.com/shu-mutou), NEC
|* [Slack](https://kubernetes.slack.com/messages/sig-ui)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-ui)|* Regular SIG Meeting: [Thursdays at 09:00 PT (Pacific Time) (bi-weekly)](https://groups.google.com/forum/#!forum/kubernetes-sig-ui)
+> |[Usability](https://github.com/kubernetes/community/blob/master/sig-usability/README.md)|usability|* [Himanshu Pandey](https://github.com/hpandeycodeit), VMware
* [Gaby Moreno Cesar](https://github.com/morengab), IBM
* [Tasha Drew](https://github.com/tashimi), VMware
|* [Slack](https://kubernetes.slack.com/messages/sig-usability)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-usability)|* Regular SIG Meeting: [Tuesdays at 9:00 PT (Pacific Time) (every third week)](https://zoom.us/j/3832562240)
+> |[Windows](https://github.com/kubernetes/community/blob/master/sig-windows/README.md)|windows|* [Mark Rossetti](https://github.com/marosset), Microsoft
|* [Slack](https://kubernetes.slack.com/messages/sig-windows)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-windows)|* Backlog Refinement / Bug Triage Meeting: [Thursdays at 12:30 Eastern Time (ET) (biweekly)](https://zoom.us/j/94389601840?pwd=MCs2SEJQWG0zUWpBS3Nod0ZNMmVXQT09)
* Regular SIG Meeting: [Tuesdays at 12:30 Eastern Time (ET) (weekly)](https://zoom.us/j/96892680257?pwd=TVNyMzB4VVMwRGZnUkgzT1dnb2szZz09)
* Weekly CI Meeting: [Tuesdays at 12:15 Eastern Time (ET) (weekly)](https://zoom.us/j/96892680257?pwd=TVNyMzB4VVMwRGZnUkgzT1dnb2szZz09)
+64,73c64,73 +< |[API Expression](https://github.com/kubernetes/community/blob/masterwg-api-expression/README.md)|* API Machinery
* Architecture
|* [Antoine Pelisse](https://github.com/apelisse), Google
* [Kevin Wiesmueller](https://github.com/kwiesmueller), //SEIBERT/MEDIA GmbH
|* [Slack](https://kubernetes.slack.com/messages/wg-api-expression)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-api-expression)|* Regular WG Meeting: [Tuesdays at 9:30 PT (Pacific Time) (biweekly)](https://zoom.us/j/94238112084)
+< |[Component Standard](https://github.com/kubernetes/community/blob/masterwg-component-standard/README.md)|* API Machinery
* Architecture
* Cluster Lifecycle
|* [Michael Taufen](https://github.com/mtaufen), Google
* [Leigh Capili](https://github.com/stealthybox), Weaveworks
|* [Slack](https://kubernetes.slack.com/messages/wg-component-standard)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-component-standard)|* Regular WG Meeting (please join kubernetes-dev@googlegroups.com or kubernetes-wg-component-standard@googlegroups.com to access the notes): [Tuesdays at 08:30 PT (Pacific Time) (weekly)](https://zoom.us/j/8027741546)
* Weekly Mentorship Office Hours - Come ask questions and get help: [Tuesdays at 10:00 PT (Pacific Time) (weekly)](https://zoom.us/j/8027741546)
+< |[Data Protection](https://github.com/kubernetes/community/blob/masterwg-data-protection/README.md)|* Apps
* Storage
|* [Xing Yang](https://github.com/xing-yang), VMware
* [Xiangqian Yu](https://github.com/yuxiangqian), Google
|* [Slack](https://kubernetes.slack.com/messages/wg-data-protection)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-data-protection)|* Regular WG Meeting: [Wednesdays at 9:00 PT (Pacific Time) (bi-weekly)](https://zoom.us/j/6933410772)
+< |[IoT Edge](https://github.com/kubernetes/community/blob/masterwg-iot-edge/README.md)|* Multicluster
* Network
|* [Steve Wong](https://github.com/cantbewong), VMware
* [Cindy Xing](https://github.com/cindyxing), Microsoft
* [Dejan Bosanac](https://github.com/dejanb), Red Hat
|* [Slack](https://kubernetes.slack.com/messages/wg-iot-edge)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-iot-edge)|* APAC WG Meeting: [Wednesdays at 5:00 UTC (every four weeks)](https://zoom.us/j/91251176046?pwd=cmdqclovM3R3eDB1VlpuL1ZGU1hnZz09)
* Regular WG Meeting (Pacific Time): [Wednesdays at 09:00 PT (every four weeks)](https://zoom.us/j/92778512626?pwd=MXhlemwvYnhkQmkxeXllQ0Z5VGs4Zz09)
+< |[K8s Infra](https://github.com/kubernetes/community/blob/masterwg-k8s-infra/README.md)|* Architecture
* Contributor Experience
* Release
* Testing
|* [Arnaud Meukam](https://github.com/ameukam), Alter Way
* [Davanum Srinivas](https://github.com/dims), VMware
* [Aaron Crickenberger](https://github.com/spiffxp), Google
|* [Slack](https://kubernetes.slack.com/messages/wg-k8s-infra)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-k8s-infra)|* Regular WG Meeting: [Wednesdays at 20:00 UTC (bi-weekly)](https://zoom.us/j/93109963352?pwd=SHJTcFR2bVg1akYxSDREUWQzaldrQT09)
+< |[Multitenancy](https://github.com/kubernetes/community/blob/masterwg-multitenancy/README.md)|* API Machinery
* Auth
* Network
* Node
* Scheduling
* Storage
|* [Sanjeev Rampal](https://github.com/srampal), Cisco
* [Tasha Drew](https://github.com/tashimi), VMware
|* [Slack](https://kubernetes.slack.com/messages/wg-multitenancy)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-multitenancy)|* Regular WG Meeting: [Tuesdays at 11:00 PT (Pacific Time) (biweekly)](https://zoom.us/my/k8s.sig.auth)
+< |[Naming](https://github.com/kubernetes/community/blob/masterwg-naming/README.md)|* Architecture
* Contributor Experience
* Docs
|* [Celeste Horgan](https://github.com/celestehorgan), CNCF
* [Jaice Singer DuMars](https://github.com/jdumars), Apple
* [Stephen Augustus](https://github.com/justaugustus), Cisco
|* [Slack](https://kubernetes.slack.com/messages/wg-naming)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-naming)|* Regular WG Meeting: [Mondays at 10:30 PT (Pacific Time) (monthly - second Monday of month)](https://zoom.us/j/91522666403?pwd=WnRSNlNhNXhDWkR2ZU9ydGpsNWxtZz09)
+< |[Policy](https://github.com/kubernetes/community/blob/masterwg-policy/README.md)|* Architecture
* Auth
* Multicluster
* Network
* Node
* Scheduling
* Storage
|* [Jim Bugwadia](https://github.com/JimBugwadia), Kyverno/Nirmata
* [Robert Ficcaglia](https://github.com/rficcaglia), SunStone
|* [Slack](https://kubernetes.slack.com/messages/wg-policy)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-policy)|* Regular WG Meeting: [Wednesdays at 8:00 PT (Pacific Time) (semimonthly)](https://zoom.us/j/7375677271)
+< |[Reliability](https://github.com/kubernetes/community/blob/masterwg-reliability/README.md)|* Architecture
* Cluster Lifecycle
* Release
* Scalability
* Testing
|* [David Eads](https://github.com/deads2k), Red Hat
* [Steve Kuznetsov](https://github.com/stevekuznetsov), Red Hat
* [Wojciech Tyczynski](https://github.com/wojtek-t), Google
|* [Slack](https://kubernetes.slack.com/messages/wg-reliability)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-reliability)|* Regular WG Meeting: [Mondays at 11:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/97964505804?pwd=R3hzSnArQWJHYmdWUnpSUDh3aXhFUT09)
+< |[Structured Logging](https://github.com/kubernetes/community/blob/masterwg-structured-logging/README.md)|* API Machinery
* Architecture
* Cloud Provider
* Instrumentation
* Network
* Node
* Scheduling
* Storage
|* [Marek Siarkowicz](https://github.com/serathius), Google
* [Shubheksha Jalan](https://github.com/shubheksha), Apple
|* [Slack](https://kubernetes.slack.com/messages/wg-structured-logging)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-structured-logging)|* Regular Meeting: [Thursdays at 15:00 UTC (biweekly)](https://zoom.us/j/96716142646?pwd=VmgrN29sbmhDREp3R0NtZlpGSlZ4Zz09)
+--- +> |[API Expression](https://github.com/kubernetes/community/blob/master/wg-api-expression/README.md)|* API Machinery
* Architecture
|* [Antoine Pelisse](https://github.com/apelisse), Google
* [Kevin Wiesmueller](https://github.com/kwiesmueller), //SEIBERT/MEDIA GmbH
|* [Slack](https://kubernetes.slack.com/messages/wg-api-expression)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-api-expression)|* Regular WG Meeting: [Tuesdays at 9:30 PT (Pacific Time) (biweekly)](https://zoom.us/j/94238112084)
+> |[Component Standard](https://github.com/kubernetes/community/blob/master/wg-component-standard/README.md)|* API Machinery
* Architecture
* Cluster Lifecycle
|* [Michael Taufen](https://github.com/mtaufen), Google
* [Leigh Capili](https://github.com/stealthybox), Weaveworks
|* [Slack](https://kubernetes.slack.com/messages/wg-component-standard)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-component-standard)|* Regular WG Meeting (please join kubernetes-dev@googlegroups.com or kubernetes-wg-component-standard@googlegroups.com to access the notes): [Tuesdays at 08:30 PT (Pacific Time) (weekly)](https://zoom.us/j/8027741546)
* Weekly Mentorship Office Hours - Come ask questions and get help: [Tuesdays at 10:00 PT (Pacific Time) (weekly)](https://zoom.us/j/8027741546)
+> |[Data Protection](https://github.com/kubernetes/community/blob/master/wg-data-protection/README.md)|* Apps
* Storage
|* [Xing Yang](https://github.com/xing-yang), VMware
* [Xiangqian Yu](https://github.com/yuxiangqian), Google
|* [Slack](https://kubernetes.slack.com/messages/wg-data-protection)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-data-protection)|* Regular WG Meeting: [Wednesdays at 9:00 PT (Pacific Time) (bi-weekly)](https://zoom.us/j/6933410772)
+> |[IoT Edge](https://github.com/kubernetes/community/blob/master/wg-iot-edge/README.md)|* Multicluster
* Network
|* [Steve Wong](https://github.com/cantbewong), VMware
* [Cindy Xing](https://github.com/cindyxing), Microsoft
* [Dejan Bosanac](https://github.com/dejanb), Red Hat
|* [Slack](https://kubernetes.slack.com/messages/wg-iot-edge)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-iot-edge)|* APAC WG Meeting: [Wednesdays at 5:00 UTC (every four weeks)](https://zoom.us/j/91251176046?pwd=cmdqclovM3R3eDB1VlpuL1ZGU1hnZz09)
* Regular WG Meeting (Pacific Time): [Wednesdays at 09:00 PT (every four weeks)](https://zoom.us/j/92778512626?pwd=MXhlemwvYnhkQmkxeXllQ0Z5VGs4Zz09)
+> |[K8s Infra](https://github.com/kubernetes/community/blob/master/wg-k8s-infra/README.md)|* Architecture
* Contributor Experience
* Release
* Testing
|* [Arnaud Meukam](https://github.com/ameukam), Alter Way
* [Davanum Srinivas](https://github.com/dims), VMware
* [Aaron Crickenberger](https://github.com/spiffxp), Google
|* [Slack](https://kubernetes.slack.com/messages/wg-k8s-infra)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-k8s-infra)|* Regular WG Meeting: [Wednesdays at 20:00 UTC (bi-weekly)](https://zoom.us/j/93109963352?pwd=SHJTcFR2bVg1akYxSDREUWQzaldrQT09)
+> |[Multitenancy](https://github.com/kubernetes/community/blob/master/wg-multitenancy/README.md)|* API Machinery
* Auth
* Network
* Node
* Scheduling
* Storage
|* [Sanjeev Rampal](https://github.com/srampal), Cisco
* [Tasha Drew](https://github.com/tashimi), VMware
|* [Slack](https://kubernetes.slack.com/messages/wg-multitenancy)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-multitenancy)|* Regular WG Meeting: [Tuesdays at 11:00 PT (Pacific Time) (biweekly)](https://zoom.us/my/k8s.sig.auth)
+> |[Naming](https://github.com/kubernetes/community/blob/master/wg-naming/README.md)|* Architecture
* Contributor Experience
* Docs
|* [Celeste Horgan](https://github.com/celestehorgan), CNCF
* [Jaice Singer DuMars](https://github.com/jdumars), Apple
* [Stephen Augustus](https://github.com/justaugustus), Cisco
|* [Slack](https://kubernetes.slack.com/messages/wg-naming)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-naming)|* Regular WG Meeting: [Mondays at 10:30 PT (Pacific Time) (monthly - second Monday of month)](https://zoom.us/j/91522666403?pwd=WnRSNlNhNXhDWkR2ZU9ydGpsNWxtZz09)
+> |[Policy](https://github.com/kubernetes/community/blob/master/wg-policy/README.md)|* Architecture
* Auth
* Multicluster
* Network
* Node
* Scheduling
* Storage
|* [Jim Bugwadia](https://github.com/JimBugwadia), Kyverno/Nirmata
* [Robert Ficcaglia](https://github.com/rficcaglia), SunStone
|* [Slack](https://kubernetes.slack.com/messages/wg-policy)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-policy)|* Regular WG Meeting: [Wednesdays at 8:00 PT (Pacific Time) (semimonthly)](https://zoom.us/j/7375677271)
+> |[Reliability](https://github.com/kubernetes/community/blob/master/wg-reliability/README.md)|* Architecture
* Cluster Lifecycle
* Release
* Scalability
* Testing
|* [David Eads](https://github.com/deads2k), Red Hat
* [Steve Kuznetsov](https://github.com/stevekuznetsov), Red Hat
* [Wojciech Tyczynski](https://github.com/wojtek-t), Google
|* [Slack](https://kubernetes.slack.com/messages/wg-reliability)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-reliability)|* Regular WG Meeting: [Mondays at 11:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/97964505804?pwd=R3hzSnArQWJHYmdWUnpSUDh3aXhFUT09)
+> |[Structured Logging](https://github.com/kubernetes/community/blob/master/wg-structured-logging/README.md)|* API Machinery
* Architecture
* Cloud Provider
* Instrumentation
* Network
* Node
* Scheduling
* Storage
|* [Marek Siarkowicz](https://github.com/serathius), Google
* [Shubheksha Jalan](https://github.com/shubheksha), Apple
|* [Slack](https://kubernetes.slack.com/messages/wg-structured-logging)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-structured-logging)|* Regular Meeting: [Thursdays at 15:00 UTC (biweekly)](https://zoom.us/j/96716142646?pwd=VmgrN29sbmhDREp3R0NtZlpGSlZ4Zz09)
+79,80c79,80 +< |[Big Data](https://github.com/kubernetes/community/blob/masterug-big-data/README.md)|big-data|* [Erik Erlandson](https://github.com/erikerlandson), Red Hat
* [Anirudh Ramanathan](https://github.com/foxish), Rockset
* [Yinan Li](https://github.com/liyinan926), Google
|* [Slack](https://kubernetes.slack.com/messages/ug-big-data)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-ug-big-data)|* Regular User Group Meeting: [Wednesdays at 18:00 UTC (biweekly)](https://zoom.us/my/ug.big.data)
+< |[VMware Users](https://github.com/kubernetes/community/blob/masterug-vmware-users/README.md)|vmware-users|* [Steve Wong](https://github.com/cantbewong), VMware
* [Myles Gray](https://github.com/mylesagray), VMware
|* [Slack](https://kubernetes.slack.com/messages/ug-vmware)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-ug-vmware)|* Regular User Group Meeting: [Thursdays at 11:00 PT (Pacific Time) (monthly)](https://docs.google.com/document/d/1ujpqj4hhcIBrSCK2qn6J1r--3QyD96rfDjXTZQ7n7Mw/edit)
+--- +> |[Big Data](https://github.com/kubernetes/community/blob/master/ug-big-data/README.md)|big-data|* [Erik Erlandson](https://github.com/erikerlandson), Red Hat
* [Anirudh Ramanathan](https://github.com/foxish), Rockset
* [Yinan Li](https://github.com/liyinan926), Google
|* [Slack](https://kubernetes.slack.com/messages/ug-big-data)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-ug-big-data)|* Regular User Group Meeting: [Wednesdays at 18:00 UTC (biweekly)](https://zoom.us/my/ug.big.data)
+> |[VMware Users](https://github.com/kubernetes/community/blob/master/ug-vmware-users/README.md)|vmware-users|* [Steve Wong](https://github.com/cantbewong), VMware
* [Myles Gray](https://github.com/mylesagray), VMware
|* [Slack](https://kubernetes.slack.com/messages/ug-vmware)
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-ug-vmware)|* Regular User Group Meeting: [Thursdays at 11:00 PT (Pacific Time) (monthly)](https://docs.google.com/document/d/1ujpqj4hhcIBrSCK2qn6J1r--3QyD96rfDjXTZQ7n7Mw/edit)
+86,88c86,88 +< |[Code of Conduct](https://github.com/kubernetes/community/blob/mastercommittee-code-of-conduct/README.md)|code-of-conduct|* [Aeva Black](https://github.com/AevaOnline), Microsoft
* [Celeste Horgan](https://github.com/celestehorgan), CNCF
* [Karen Chu](https://github.com/karenhchu), Microsoft
* [Tasha Drew](https://github.com/tashimi), VMware
* [Tim Pepper](https://github.com/tpepper), VMware
|* [Slack](https://kubernetes.slack.com/messages/code-of-conduct)
* [Private Mailing List](conduct@kubernetes.io) +< |[Security Response](https://github.com/kubernetes/community/blob/mastercommittee-security-response/README.md)|security-response|* [CJ Cullen](https://github.com/cjcullen), Google
* [Joel Smith](https://github.com/joelsmith), Red Hat
* [Luke Hinds](https://github.com/lukehinds), Red Hat
* [Micah Hausler](https://github.com/micahhausler), Amazon
* [Swamy Shivaganga Nagaraju](https://github.com/swamymsft), Microsoft
* [Tabitha Sable](https://github.com/tabbysable), Datadog
* [Tim Allclair](https://github.com/tallclair), Apple
|* [Private Mailing List](security@kubernetes.io) +< |[Steering](https://github.com/kubernetes/community/blob/mastercommittee-steering/README.md)|steering|* [Christoph Blecker](https://github.com/cblecker), Red Hat
* [Derek Carr](https://github.com/derekwaynecarr), Red Hat
* [Davanum Srinivas](https://github.com/dims), VMware
* [Jordan Liggitt](https://github.com/liggitt), Google
* [Bob Killen](https://github.com/mrbobbytables), Google
* [Nikhita Raghunath](https://github.com/nikhita), VMware
* [Paris Pittman](https://github.com/parispittman), Apple
|* [Slack](https://kubernetes.slack.com/messages/steering-committee)
* [Mailing List](https://groups.google.com/a/kubernetes.io/forum/#!forum/steering)
* [Private Mailing List](steering-private@kubernetes.io) +--- +> |[Code of Conduct](https://github.com/kubernetes/community/blob/master/committee-code-of-conduct/README.md)|code-of-conduct|* [Aeva Black](https://github.com/AevaOnline), Microsoft
* [Celeste Horgan](https://github.com/celestehorgan), CNCF
* [Karen Chu](https://github.com/karenhchu), Microsoft
* [Tasha Drew](https://github.com/tashimi), VMware
* [Tim Pepper](https://github.com/tpepper), VMware
|* [Slack](https://kubernetes.slack.com/messages/code-of-conduct)
* [Private Mailing List](conduct@kubernetes.io) +> |[Security Response](https://github.com/kubernetes/community/blob/master/committee-security-response/README.md)|security-response|* [CJ Cullen](https://github.com/cjcullen), Google
* [Joel Smith](https://github.com/joelsmith), Red Hat
* [Luke Hinds](https://github.com/lukehinds), Red Hat
* [Micah Hausler](https://github.com/micahhausler), Amazon
* [Swamy Shivaganga Nagaraju](https://github.com/swamymsft), Microsoft
* [Tabitha Sable](https://github.com/tabbysable), Datadog
* [Tim Allclair](https://github.com/tallclair), Apple
|* [Private Mailing List](security@kubernetes.io) +> |[Steering](https://github.com/kubernetes/community/blob/master/committee-steering/README.md)|steering|* [Christoph Blecker](https://github.com/cblecker), Red Hat
* [Derek Carr](https://github.com/derekwaynecarr), Red Hat
* [Davanum Srinivas](https://github.com/dims), VMware
* [Jordan Liggitt](https://github.com/liggitt), Google
* [Bob Killen](https://github.com/mrbobbytables), Google
* [Nikhita Raghunath](https://github.com/nikhita), VMware
* [Paris Pittman](https://github.com/parispittman), Apple
|* [Slack](https://kubernetes.slack.com/messages/steering-committee)
* [Mailing List](https://groups.google.com/a/kubernetes.io/forum/#!forum/steering)
* [Private Mailing List](steering-private@kubernetes.io) +diff -r ./content/docs/comms/calendars.md ../../contentCorrect/en/docs/comms/calendars.md +179,180c179,180 +< [gsuite]: hugo-url +< [doodle]: hugo-url +--- +> [gsuite]: https://github.com/kubernetes/community/issues/3362 +> [doodle]: https://doodle.com +182,186c182,186 +< [new shared calendar]: hugo-url +< [configure access permissions and sharing:]: hugo-url +< [SIG/WG list]: hugo-url +< [Public Community Calendar]: hugo-url +< [contributor mailing list]: hugo-url +--- +> [new shared calendar]: https://support.google.com/calendar/answer/37095?hl=en +> [configure access permissions and sharing:]: https://support.google.com/calendar/answer/37082?hl=en +> [SIG/WG list]: /community/community-groups +> [Public Community Calendar]: https://calendar.google.com/calendar/embed?src=calendar%40kubernetes.io&ctz=America%2FLos_Angeles +> [contributor mailing list]: https://groups.google.com/forum/#!forum/kubernetes-dev +diff -r ./content/docs/comms/discuss.md ../../contentCorrect/en/docs/comms/discuss.md +203,221c203,221 +< [Discourse]: hugo-url +< [A community forum for Kubernetes KEP]: hugo-url +< [archive k-users]: hugo-url +< [Kubernetes Code of Conduct]: hugo-url +< [Linux Foundation Privacy Policy]: hugo-url +< [admins]: hugo-url +< [Discuss About page]: hugo-url +< [sig contributor experience mailing list]: hugo-url +< [built in system for flagging inappropriate posts]: hugo-url +< [unlist]: hugo-url +< [user-trust]: hugo-url +< [moderation guidelines]: hugo-url +< [kubernetes.io blog]: hugo-url +< [lwkd]: hugo-url +< [Site Feedback and Help]: hugo-url +< [SIG, WG or subj-project]: hugo-url +< [Regional Discussions Category]: hugo-url +< [translated versions of the CNCF Code of Conduct]: hugo-url +< [CNCF foundation]: hugo-url +--- +> [Discourse]: https://discourse.org +> [A community forum for Kubernetes KEP]: https://github.com/kubernetes/enhancements/tree/master/keps/sig-contributor-experience/0000-community-forum +> [archive k-users]: https://github.com/kubernetes/community/issues/2492 +> [Kubernetes Code of Conduct]: https://github.com/kubernetes/community/blob/master/code-of-conduct.md +> [Linux Foundation Privacy Policy]: https://www.linuxfoundation.org/privacy/ +> [admins]: /docs/comms/moderators#discusskubernetesio +> [Discuss About page]: https://discuss.kubernetes.io/about +> [sig contributor experience mailing list]: https://groups.google.com/forum/#!forum/kubernetes-sig-contribex +> [built in system for flagging inappropriate posts]: https://meta.discourse.org/t/what-are-flags-and-how-do-they-work/32783 +> [unlist]: https://meta.discourse.org/t/what-is-the-difference-between-closed-unlisted-and-archived-topics/51238 +> [user-trust]: https://blog.discourse.org/2018/06/understanding-discourse-trust-levels/ +> [moderation guidelines]: /docs/comms/moderation +> [kubernetes.io blog]: https://kubernetes.io/blog/ +> [lwkd]: http://lwkd.info/ +> [Site Feedback and Help]: https://discuss.kubernetes.io/c/site-feedback +> [SIG, WG or subj-project]: /community/community-groups +> [Regional Discussions Category]: https://discuss.kubernetes.io/c/regional-discussions +> [translated versions of the CNCF Code of Conduct]: https://github.com/cncf/foundation/tree/master/code-of-conduct-languages +> [CNCF foundation]: https://github.com/cncf/foundation +diff -r ./content/docs/comms/mailing-lists.md ../../contentCorrect/en/docs/comms/mailing-lists.md +284,293c284,293 +< [sig-list]: hugo-url +< [Code of Conduct]: hugo-url +< [admins]: hugo-url +< [sig contributor experience mailing list]: hugo-url +< [moderation guidelines]: hugo-url +< [lock the thread immediately]: hugo-url +< [delete the post]: hugo-url +< [these instructions]: hugo-url +< [groups help]: hugo-url +< [sigs.yaml]: hugo-url +--- +> [sig-list]: /community/community-groups +> [Code of Conduct]: https://github.com/kubernetes/community/blob/master/code-of-conduct.md +> [admins]: /docs/comms/moderators#mailing-lists +> [sig contributor experience mailing list]: https://groups.google.com/forum/#!forum/kubernetes-sig-contribex +> [moderation guidelines]: /docs/comms/moderation +> [lock the thread immediately]: https://support.google.com/groups/answer/2466386?hl=en# +> [delete the post]: https://support.google.com/groups/answer/1046523?hl=en +> [these instructions]: https://support.google.com/groups/answer/2646833?hl=en&ref_topic=2458761# +> [groups help]: https://support.google.com/groups/answer/2466386?hl=en&ref_topic=2458761 +> [sigs.yaml]: https://github.com/kubernetes/community/blob/master/sigs.yaml +diff -r ./content/docs/comms/moderation.md ../../contentCorrect/en/docs/comms/moderation.md +205,207c205,207 +< - [Discuss Guidelines](https://github.com/kubernetes/community/blob/master/discuss-guidelines.md) +< - [Moderators](https://github.com/kubernetes/community/blob/master/moderators.md#discuss.kubernetes.io) +< - [Regional Moderators](https://github.com/kubernetes/community/blob/master/moderators.md#regional-category-moderators) +--- +> - [Discuss Guidelines](/docs/comms/discuss) +> - [Moderators](/docs/comms/moderators#discuss.kubernetes.io) +> - [Regional Moderators](/docs/comms/moderators#regional-category-moderators) +211,212c211,212 +< - [Mailing List Guidelines](https://github.com/kubernetes/community/blob/master/mailing-list-guidelines.md) +< - [Moderators](https://github.com/kubernetes/community/blob/master/moderators.md#mailing-list) +--- +> - [Mailing List Guidelines](/docs/comms/mailing-lists) +> - [Moderators](/docs/comms/moderators#mailing-list) +216,217c216,217 +< - [Slack Guidelines](https://github.com/kubernetes/community/blob/master/slack-guidelines.md) +< - [Moderators](https://github.com/kubernetes/community/blob/master/moderators.md#slack) +--- +> - [Slack Guidelines](/docs/comms/slack) +> - [Moderators](/docs/comms/moderators#slack) +226,227c226,227 +< - [Youtube Guidelines](https://github.com/kubernetes/community/blob/master./youtube/youtube-guidelines.md) +< - [Moderators](https://github.com/kubernetes/community/blob/master/moderators.md#youtube-channel) +--- +> - [Youtube Guidelines](/docs/comms/youtube) +> - [Moderators](/docs/comms/moderators#youtube-channel) +231,232c231,232 +< - [Zoom Guidelines](https://github.com/kubernetes/community/blob/master/zoom-guidelines.md) +< - [Moderators](https://github.com/kubernetes/community/blob/master/moderators.md#zoom) +--- +> - [Zoom Guidelines](/docs/comms/zoom) +> - [Moderators](/docs/comms/moderators#zoom) +256c256 +< [moderators@kubernetes.io group]: hugo-url +--- +> [moderators@kubernetes.io group]: https://github.com/kubernetes/k8s.io/blob/main/groups/groups.yaml +272,280c272,280 +< [charter]: hugo-url +< [moderators]: hugo-url +< [Code of Conduct]: hugo-url +< [Kubernetes Community Values]: hugo-url +< [stages of burnout]: hugo-url +< [Code of Conduct Committee]: hugo-url +< [Steering Committee]: hugo-url +< [moderator request]: hugo-url +< [filing an issue]: hugo-url +--- +> [charter]: https://github.com/kubernetes/community/blob/master/sig-contributor-experience/charter.md#code-binaries-and-services +> [moderators]: /docs/comms/moderators +> [Code of Conduct]: https://github.com/kubernetes/community/blob/master/code-of-conduct.md +> [Kubernetes Community Values]: /community/values +> [stages of burnout]: https://opensource.com/business/15/12/avoid-burnout-live-happy +> [Code of Conduct Committee]: https://github.com/kubernetes/community/blob/master/committee-code-of-conduct/README.md +> [Steering Committee]: https://git.k8s.io/steering +> [moderator request]: https://github.com/kubernetes/community/issues/new/choose +> [filing an issue]: https://github.com/kubernetes/community/issues/new/?assignees=&labels=area%2Fcommunity-management%2C+sig%2Fcontributor-experience&template=moderator_application.md&title=REQUEST%3A+New+moderator+for+%3Cyour-GH-handle%3E+of+%3Ck8s+property%3E +diff -r ./content/docs/comms/moderators.md ../../contentCorrect/en/docs/comms/moderators.md +230,237c230,237 +< [moderation guidelines]: hugo-url +< [github administration team]: hugo-url +< [trust system]: hugo-url +< [chinese]: hugo-url +< [german]: hugo-url +< [italian]: hugo-url +< [spanish]: hugo-url +< [ukrainian]: hugo-url +--- +> [moderation guidelines]: /docs/comms/moderation +> [github administration team]: https://git.k8s.io/community/github-management#github-administration-team +> [trust system]: https://blog.discourse.org/2018/06/understanding-discourse-trust-levels/ +> [chinese]: https://discuss.kubernetes.io/t/about-the-chinese-category/2881 +> [german]: https://discuss.kubernetes.io/t/about-the-german-category/3152 +> [italian]: https://discuss.kubernetes.io/t/about-the-italian-category/2917/2 +> [spanish]: https://discuss.kubernetes.io/t/about-the-spanish-category/6167 +> [ukrainian]: https://discuss.kubernetes.io/t/about-the-ukrainian-category/2916 +diff -r ./content/docs/comms/notifications.md ../../contentCorrect/en/docs/comms/notifications.md +20,22c20,22 +< [Special Interest Groups (SIG)]: hugo-url +< [Working Groups (WG)]: hugo-url +< [Gubernator]: hugo-url +--- +> [Special Interest Groups (SIG)]: /community/community-groups#master-sig-list +> [Working Groups (WG)]: /community/community-groups#master-working-group-list +> [Gubernator]: https://gubernator.k8s.io/pr +97,98c97,98 +< [kubernetes-dev]: hugo-url +< [thread]: hugo-url +--- +> [kubernetes-dev]: https://groups.google.com/g/kubernetes-dev +> [thread]: https://groups.google.com/forum/#!topic/kubernetes-dev/5qU8irU7_tE/discussion +101c101 +< [Creating rules to filter your email]: hugo-url +--- +> [Creating rules to filter your email]: https://support.google.com/mail/answer/6579?hl=en +diff -r ./content/docs/comms/slack.md ../../contentCorrect/en/docs/comms/slack.md +339c339 +< This channel abides to the Kubernetes Code of Conduct - http://git.k8s.io/communityhugo-url +--- +> This channel abides to the Kubernetes Code of Conduct - http://git.k8s.io/community/code-of-conduct.md +401,421c401,421 +< [coc]: hugo-url +< [admins]: hugo-url +< [Slack Archive Download]: hugo-url +< [cocc]: hugo-url +< [GitHub Issue]: hugo-url +< [sig-list]: hugo-url +< [tempelis]: hugo-url +< [slack-config]: hugo-url +< [Channel Documentation]: hugo-urlREADME.md#channels +< [channels.yaml]: hugo-urlchannels.yaml +< [restrictions.yaml]: hugo-urlrestrictions.yaml +< [`owners`]: hugo-url +< [users]: hugo-urlREADME.md#users +< [users.yaml]: hugo-urlusers.yaml +< [usergroups.yaml]: hugo-urlusergroups.yaml +< [User Group Documentation]: hugo-urlREADME.md#usergroups +< [Slack Config Documentation]: hugo-urlREADME.md +< [default message pinned]: hugo-urltemplate.yaml +< [Slack’s policy on inactivated accounts]: hugo-url +< [moderation guidelines]: hugo-url +< [CNCF Slack]: hugo-url +--- +> [coc]: https://github.com/kubernetes/community/blob/master/code-of-conduct.md +> [admins]: /docs/comms/moderators#Slack +> [Slack Archive Download]: https://drive.google.com/drive/folders/1Xnkwsxis3tu0pT7rwp-crRq4IciZ5b1o?usp=sharing +> [cocc]: https://github.com/kubernetes/community/blob/master/committee-code-of-conduct/README.md +> [GitHub Issue]: https://github.com/kubernetes/community/issues/new/choose +> [sig-list]: /community/community-groups +> [tempelis]: http://sigs.k8s.io/slack-infra/tempelis +> [slack-config]: https://github.com/kubernetes/community/blob/master/communication/slack-config +> [Channel Documentation]: https://github.com/kubernetes/community/blob/master/communication/slack-configREADME.md#channels +> [channels.yaml]: https://github.com/kubernetes/community/blob/master/communication/slack-configchannels.yaml +> [restrictions.yaml]: https://github.com/kubernetes/community/blob/master/communication/slack-configrestrictions.yaml +> [`owners`]: /docs/guide/owners +> [users]: https://github.com/kubernetes/community/blob/master/communication/slack-configREADME.md#users +> [users.yaml]: https://github.com/kubernetes/community/blob/master/communication/slack-configusers.yaml +> [usergroups.yaml]: https://github.com/kubernetes/community/blob/master/communication/slack-configusergroups.yaml +> [User Group Documentation]: https://github.com/kubernetes/community/blob/master/communication/slack-configREADME.md#usergroups +> [Slack Config Documentation]: https://github.com/kubernetes/community/blob/master/communication/slack-configREADME.md +> [default message pinned]: https://github.com/kubernetes/community/blob/master/communication/slack-configtemplate.yaml +> [Slack’s policy on inactivated accounts]: https://get.Slack.help/hc/en-us/articles/204475027-Deactivate-a-member-s-account +> [moderation guidelines]: /docs/comms/moderation +> [CNCF Slack]: https://slack.cncf.io/ +diff -r ./content/docs/comms/surveys.md ../../contentCorrect/en/docs/comms/surveys.md +84c84 +< [issue]: hugo-url +--- +> [issue]: https://github.com/kubernetes/community/issues +108c108 +< [contributor comms issue template]: hugo-url/new/choose +--- +> [contributor comms issue template]: https://github.com/kubernetes/community/issues/new/choose +diff -r ./content/docs/comms/youtube.md ../../contentCorrect/en/docs/comms/youtube.md +165c165 +< - [SIG Contributor Experience](https://github.com/kubernetes/community/blob/masterhugo-url/README.md) +--- +> - [SIG Contributor Experience](https://github.com/kubernetes/community/blob/master/sig-contributor-experience/README.md) +215,230c215,230 +< [coc]: hugo-url +< [Kubernetes YouTube Channel]: hugo-url +< [collaboration]: hugo-url +< [loosen the permissions in your YouTube settings]: hugo-url +< [SIG Contributor Experience]: hugo-url +< [centralized list of administrators]: hugo-url +< [YouTube admins]: hugo-url#YouTube-Channel +< [trim]: hugo-url +< [edit]: hugo-url +< [Community Meeting]: hugo-url +< [Office Hours]: hugo-url +< [Meet our Contributors]: hugo-url +< [Streaming Config]: hugo-url +< [Subprojects]: hugo-url +< [moderation guidelines]: hugo-url +< [zoom guidelines]:/communication/zoom-guidelines.md +\ No newline at end of file +--- +> [coc]: https://github.com/kubernetes/community/blob/master/code-of-conduct.md +> [Kubernetes YouTube Channel]: https://www.youtube.com/channel/UCZ2bu0qutTOM0tHYa_jkIwg +> [collaboration]: https://support.google.com/youtube/answer/6109639 +> [loosen the permissions in your YouTube settings]: https://support.google.com/a/answer/6212415 +> [SIG Contributor Experience]: https://github.com/kubernetes/community/blob/master/sig-contributor-experience +> [centralized list of administrators]: /docs/comms/moderators +> [YouTube admins]: /docs/comms/moderators#YouTube-Channel +> [trim]: https://support.google.com/youtube/answer/9057455?hl=en +> [edit]: https://support.google.com/youtube/topic/9257530?hl=en&ref_topic=9257610 +> [Community Meeting]: /events/community-meeting +> [Office Hours]: /events/office-hours +> [Meet our Contributors]: /events/meet-our-contributors +> [Streaming Config]: https://github.com/kubernetes/community/blob/master/communication/youtube/streaming-config.md +> [Subprojects]: https://github.com/kubernetes/community/blob/master/governance.md#subprojects +> [moderation guidelines]: /docs/comms/moderation +> [zoom guidelines]: /docs/comms/zoom +\ No newline at end of file +diff -r ./content/docs/comms/zoom.md ../../contentCorrect/en/docs/comms/zoom.md +217,240c217,240 +< [community meeting]: hugo-url +< [SIG/WG meetings]: hugo-url +< [Office Hours]: hugo-url +< [Meet Our Contributors]: hugo-url +< [moderation]: hugo-url +< [zoom admins]: hugo-url +< [host key]: hugo-url +< [CNCF Service Desk]: hugo-url +< [Kubernetes Code of Conduct]: hugo-url +< [code of conduct committee]: hugo-url +< [SIG Creation procedure]: hugo-url +< [latest version]: hugo-url +< [documentation on how to use their moderation tools]: hugo-url +< [best practices doc]: hugo-url +< [Kubernetes channel]: hugo-url +< [SIG Contributor Experience]: hugo-url +< [Please follow this guideline for more details]: hugo-url +< [centralized list of administrators]: hugo-url +< [documentation on how to use their screen sharing feature]: hugo-url +< [lots of things that can go wrong]: hugo-url +< [Blue Yeti]: hugo-url +< [pop filter]: hugo-url +< [Join on muted audio and video]: hugo-url +< [waiting room]: hugo-url +--- +> [community meeting]: /events/community-meeting +> [SIG/WG meetings]: /community/community-groups +> [Office Hours]: /events/office-hours +> [Meet Our Contributors]: https://github.com/kubernetes/community/blob/master/mentoring/meet-our-contributors.md +> [moderation]: /docs/comms/moderation +> [zoom admins]: /docs/comms/moderators#zoom +> [host key]: https://support.zoom.us/hc/en-us/articles/205172555-Host-Key +> [CNCF Service Desk]: https://github.com/cncf/servicedesk +> [Kubernetes Code of Conduct]: https://github.com/kubernetes/community/blob/master/code-of-conduct.md +> [code of conduct committee]: https://github.com/kubernetes/community/blob/master/committee-code-of-conduct/README.md +> [SIG Creation procedure]: https://github.com/kubernetes/community/blob/master/sig-wg-lifecycle.md#communicate +> [latest version]: https://zoom.us/download +> [documentation on how to use their moderation tools]: https://support.zoom.us/hc/en-us/articles/201362603-Host-Controls-in-a-Meeting +> [best practices doc]: https://docs.google.com/document/d/1fudC_diqhN2TdclGKnQ4Omu4mwom83kYbZ5uzVRI07w/edit?usp=sharing +> [Kubernetes channel]: https://www.youtube.com/c/kubernetescommunity +> [SIG Contributor Experience]: https://github.com/kubernetes/community/blob/master/sig-contributor-experience +> [Please follow this guideline for more details]: /docs/comms/youtube +> [centralized list of administrators]: /docs/comms/moderators +> [documentation on how to use their screen sharing feature]: https://support.zoom.us/hc/en-us/articles/201362153-How-Do-I-Share-My-Screen +> [lots of things that can go wrong]: https://www.youtube.com/watch?v=JMOOG7rWTPg +> [Blue Yeti]: https://www.bluedesigns.com/products/yeti/ +> [pop filter]: https://en.wikipedia.org/wiki/Pop_filter +> [Join on muted audio and video]: https://support.zoom.us/hc/en-us/articles/203024649-Video-Or-Microphone-Off-By-Attendee +> [waiting room]: https://support.zoom.us/hc/en-us/articles/115000332726-Waiting-Room +diff -r ./content/docs/contributor-cheatsheet.md ../../contentCorrect/en/docs/contributor-cheatsheet.md +15c15 +< [Deutsch](https://github.com/kubernetes/community/blob/master/guide/contributor-cheatsheet/README-de.md) | [Français](README-fr.md) | [Bahasa Indonesia](README-id.md) | [日本語](README-ja.md) | [한국어](README-ko.md) | [Português](README-pt.md) | [中文](README-zh.md) | [Українська](README-uk.md) | [Italian](README-it.md) +--- +> [Deutsch](https://github.com/kubernetes/community/blob/master/contributors/guide/contributor-cheatsheet/README-de.md) | [Français](https://github.com/kubernetes/community/blob/master/contributors/guide/contributor-cheatsheet/README-fr.md) | [Bahasa Indonesia](https://github.com/kubernetes/community/blob/master/contributors/guide/contributor-cheatsheet/README-id.md) | [日本語](https://github.com/kubernetes/community/blob/master/contributors/guide/contributor-cheatsheet/README-ja.md) | [한국어](https://github.com/kubernetes/community/blob/master/contributors/guide/contributor-cheatsheet/README-ko.md) | [Português](https://github.com/kubernetes/community/blob/master/contributors/guide/contributor-cheatsheet/README-pt.md) | [中文](https://github.com/kubernetes/community/blob/master/contributors/guide/contributor-cheatsheet/README-zh.md) | [Українська](https://github.com/kubernetes/community/blob/master/contributors/guide/contributor-cheatsheet/README-uk.md) | [Italian](https://github.com/kubernetes/community/blob/master/contributors/guide/contributor-cheatsheet/README-it.md) +379,424c379,424 +< [contributor guide]: hugo-url +< [developer guide]: hugo-url +< [gubernator dashboard]: hugo-url +< [prow]: hugo-url +< [tide]: hugo-url +< [tide dashboard]: hugo-url/tide +< [bot commands]: hugo-url +< [gitHub labels]: hugo-url +< [Kubernetes Code Search]: hugo-url +< [@dims]: hugo-url +< [calendar]: hugo-url +< [kubernetes-dev]: hugo-url +< [slack channels]: hugo-url +< [Stack Overflow]: hugo-url +< [youtube channel]: hugo-url +< [triage dashboard]: hugo-url +< [test grid]: hugo-url +< [developer statistics]: hugo-url +< [code of conduct]: hugo-url +< [user support requests]: hugo-url +< [troubleshooting guide]: hugo-url +< [kubernetes forum]: hugo-url +< [pull request process]: hugo-url +< [github workflow]: hugo-url +< [prow]: hugo-url +< [cla]: hugo-url +< [cla troubleshooting guidelines]: hugo-url +< [commands]: hugo-url/command-help +< [kind]: hugo-url/command-help#kind +< [cc]: hugo-url/command-help#cc +< [hold]: hugo-url/command-help#hold +< [assign]: hugo-url/command-help#assign +< [SIGs]: hugo-url +< [testing guide]: hugo-url +< [labels]: hugo-url +< [trivial fix]: hugo-url#10-trivial-edits +< [GitHub workflow]: hugo-url#3-branch +< [squashing commits]: hugo-url#6-squashing-and-commit-titles +< [owners]: hugo-url +< [testing locally]: hugo-url#testing +< [Atlassian git tutorial]: hugo-url +< [git magic]: hugo-url +< [Security and Disclosure Information]: hugo-url +< [approve]: hugo-url/command-help#approve +< [GitHub Administration Team]: hugo-url +< [Kubernetes Patch Release]: hugo-url +--- +> [contributor guide]: /docs/guide +> [developer guide]: https://github.com/kubernetes/community/blob/master/contributors/devel/README.md +> [gubernator dashboard]: https://gubernator.k8s.io/pr +> [prow]: https://prow.k8s.io +> [tide]: http://git.k8s.io/test-infra/prow/cmd/tide/pr-authors.md +> [tide dashboard]: https://prow.k8s.io/tide +> [bot commands]: https://go.k8s.io/bot-commands +> [gitHub labels]: https://go.k8s.io/github-labels +> [Kubernetes Code Search]: https://cs.k8s.io/ +> [@dims]: https://github.com/dims +> [calendar]: https://calendar.google.com/calendar/embed?src=calendar%40kubernetes.io +> [kubernetes-dev]: https://groups.google.com/forum/#!forum/kubernetes-dev +> [slack channels]: http://slack.k8s.io/ +> [Stack Overflow]: https://stackoverflow.com/questions/tagged/kubernetes +> [youtube channel]: https://www.youtube.com/c/KubernetesCommunity/ +> [triage dashboard]: https://go.k8s.io/triage +> [test grid]: https://testgrid.k8s.io +> [developer statistics]: https://k8s.devstats.cncf.io +> [code of conduct]: https://github.com/kubernetes/community/blob/master/code-of-conduct.md +> [user support requests]: /docs/guide/issue-triage#determine-if-its-a-support-request +> [troubleshooting guide]: https://kubernetes.io/docs/tasks/debug-application-cluster/troubleshooting/ +> [kubernetes forum]: https://discuss.kubernetes.io/ +> [pull request process]: /docs/guide/pull-requests +> [github workflow]: /docs/guide/github-workflow +> [prow]: https://git.k8s.io/test-infra/prow#prow +> [cla]: https://github.com/kubernetes/community/blob/master/CLA.md#how-do-i-sign +> [cla troubleshooting guidelines]: https://github.com/kubernetes/community/blob/master/CLA.md#troubleshooting +> [commands]: https://prow.k8s.io/command-help +> [kind]: https://prow.k8s.io/command-help#kind +> [cc]: https://prow.k8s.io/command-help#cc +> [hold]: https://prow.k8s.io/command-help#hold +> [assign]: https://prow.k8s.io/command-help#assign +> [SIGs]: /community/community-groups +> [testing guide]: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-testing/testing.md +> [labels]: https://git.k8s.io/test-infra/label_sync/labels.md +> [trivial fix]: /docs/guide/pull-requests#10-trivial-edits +> [GitHub workflow]: /docs/guide/github-workflow#3-branch +> [squashing commits]: /docs/guide/pull-requests#6-squashing-and-commit-titles +> [owners]: /docs/guide/owners +> [testing locally]: /docs/guide#testing +> [Atlassian git tutorial]: https://www.atlassian.com/git/tutorials +> [git magic]: http://www-cs-students.stanford.edu/~blynn/gitmagic/ +> [Security and Disclosure Information]: https://kubernetes.io/docs/reference/issues-security/security/ +> [approve]: https://prow.k8s.io/command-help#approve +> [GitHub Administration Team]: https://github.com/kubernetes/community/blob/master/github-management#github-administration-team +> [Kubernetes Patch Release]: https://github.com/kubernetes/sig-release/blob/master/releases/patch-releases.md +diff -r ./content/docs/guide/_index.md ../../contentCorrect/en/docs/guide/_index.md +51c51 +< - [Your First Contribution](https://github.com/kubernetes/community/blob/master/guide/first-contribution.md) - things you'll need to know +--- +> - [Your First Contribution](/docs/guide/first-contribution) - things you'll need to know +53c53 +< - [Contributing](https://github.com/kubernetes/community/blob/master/guide/contributing.md) - the main reference guide to contributing +--- +> - [Contributing](/docs/guide/contributing) - the main reference guide to contributing +142,160c142,160 +< [a bot]: hugo-url +< [Contributor License Agreement]: hugo-url +< [Code of Conduct]: hugo-url +< [Community Values]: hugo-url +< [First Contribution]: https://github.com/kubernetes/community/blob/master/guide/first-contribution.md +< [Contributing]: https://github.com/kubernetes/community/blob/master/guide/contributing.md +< [Developer Resources]: hugo-url +< [Community Expectations]: hugo-url +< [CM]: hugo-url +< [here]: hugo-url +< [General Information]: hugo-url +< [mentoring initiatives]: hugo-url +< [Meet Our Contributors]: hugo-url +< [OWNERS files]: hugo-url +< [Cloud Native Computing Foundation Guidelines]: hugo-url +< [Events]: hugo-url +< [YouTube Playlist]: hugo-url +< [Kubernetes Contributor Playground]: hugo-url +< [Open Issues]: hugo-url +--- +> [a bot]: https://github.com/k8s-ci-robot +> [Contributor License Agreement]: https://github.com/kubernetes/community/blob/master/CLA.md +> [Code of Conduct]: https://github.com/kubernetes/community/blob/master/code-of-conduct.md +> [Community Values]: /community/values +> [First Contribution]: /docs/guide/first-contribution +> [Contributing]: /docs/guide/contributing +> [Developer Resources]: https://github.com/kubernetes/community/blob/master/contributors/devel/README.md#setting-up-your-dev-environment-coding-and-debugging +> [Community Expectations]: /docs/guide/expectations +> [CM]: https://github.com/kubernetes/community/blob/master/community-membership.md +> [here]: https://github.com/kubernetes/community/blob/master/events/2019/11-contributor-summit +> [General Information]: https://github.com/kubernetes/community/blob/master/communication +> [mentoring initiatives]: /community/mentoring +> [Meet Our Contributors]: /events/meet-our-contributors +> [OWNERS files]: /docs/guide/owners +> [Cloud Native Computing Foundation Guidelines]: https://github.com/cncf/communitygroups +> [Events]: https://www.cncf.io/events/ +> [YouTube Playlist]: https://www.youtube.com/playlist?list=PL69nYSiGNLP3M5X7stuD7N4r3uP2PZQUx +> [Kubernetes Contributor Playground]: https://github.com/kubernetes-sigs/contributor-playground/blob/master/README.md +> [Open Issues]: https://github.com/kubernetes/community/issues?q=is%3Aissue+is%3Aopen+label%3Aarea%2Fcontributor-guide +diff -r ./content/docs/guide/contributing.md ../../contentCorrect/en/docs/guide/contributing.md +28c28 +< Check out our [community guiding principles](https://github.com/kubernetes/community/blob/masterhttps://github.com/kubernetes/community/blob/master/contributors/guide/expectations.md#code-review) on how to create great code as a big group. +--- +> Check out our [community guiding principles](/docs/guide/expectations#code-review) on how to create great code as a big group. +32c32 +< For quick reference on contributor resources, we have a handy [contributor cheatsheet](https://github.com/kubernetes/community/blob/master./contributor-cheatsheet/). +--- +> For quick reference on contributor resources, we have a handy [contributor cheatsheet](/docs/contributor-cheatsheet). +42c42 +< To check out code to work on, please refer to [the GitHub Workflow Guide](https://github.com/kubernetes/community/blob/master/guide/github-workflow.md). +--- +> To check out code to work on, please refer to [the GitHub Workflow Guide](/docs/guide/github-workflow). +46c46 +< - [Kubernetes-specific github workflow](https://github.com/kubernetes/community/blob/master/guide/pull-requests.md#the-testing-and-merge-workflow). +--- +> - [Kubernetes-specific github workflow](/docs/guide/pull-requests#the-testing-and-merge-workflow). +63c63 +< * not having correctly signed the CLA ahead of your first PR. See the [CLA page](https://github.com/kubernetes/community/blob/master/guide/CLA.md) for troubleshooting help, in some cases you might need to file a ticket with the CNCF to resolve a CLA problem. +--- +> * not having correctly signed the CLA ahead of your first PR. See the [CLA page](https://github.com/kubernetes/community/blob/master/CLA.md) for troubleshooting help, in some cases you might need to file a ticket with the CNCF to resolve a CLA problem. +65,66c65,66 +< * dealing with test cases which fail on your PR, unrelated to the changes you introduce (see [Test Flakes](https://github.com/kubernetes/community/blob/master/contributors/develhttps://github.com/kubernetes/community/blob/master/guide/sig-testing/flaky-tests.md)) +< * Not following [scalability good practices](https://github.com/kubernetes/community/blob/master/guide/scalability-good-practices.md) +--- +> * dealing with test cases which fail on your PR, unrelated to the changes you introduce (see [Test Flakes](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-testing/flaky-tests.md)) +> * Not following [scalability good practices](https://github.com/kubernetes/community/blob/master/contributors/guide/scalability-good-practices.md) +71c71 +< For a brief description of the importance of code review, please read [On Code Review](https://github.com/kubernetes/community/blob/masterhttps://github.com/kubernetes/community/blob/master/contributors/guide/expectations.md#code-review). +--- +> For a brief description of the importance of code review, please read [On Code Review](/docs/guide/expectations#code-review). +76c76 +< * follow the project [coding conventions](https://github.com/kubernetes/community/blob/master/guide/coding-conventions.md) +--- +> * follow the project [coding conventions](/docs/guide/coding-convention) +81c81 +< Reviewers, the people giving the review, are highly encouraged to revisit the [Code of Conduct](https://github.com/kubernetes/community/blob/master/guide/code-of-conduct.md) as well as [community expectations](./expectations.md#expectations-of-reviewers-review-latency) and must go above and beyond to promote a collaborative, respectful community. +--- +> Reviewers, the people giving the review, are highly encouraged to revisit the [Code of Conduct](https://github.com/kubernetes/community/blob/master/code-of-conduct.md) as well as [community expectations](/docs/guide/expectations#expectations-of-reviewers-review-latency) and must go above and beyond to promote a collaborative, respectful community. +105,106c105,106 +< Testing is the responsibility of all contributors and is in part owned by all SIGs, but is also coordinated by [sig-testing](https://github.com/kubernetes/community/blob/master/guide/sig-testing). +< Refer to the [Testing Guide](/contributors/develhttps://github.com/kubernetes/community/blob/master/guide/sig-testing/testing.md) for more information. +--- +> Testing is the responsibility of all contributors and is in part owned by all SIGs, but is also coordinated by [sig-testing](https://github.com/kubernetes/community/blob/master/sig-testing). +> Refer to the [Testing Guide](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-testing/testing.md) for more information. +113c113 +< * End-to-end ("e2e"): These are broad tests of overall system behavior and coherence. These are more complicated as they require a functional kubernetes cluster built from the sources to be tested. A separate [document detailing e2e testing](/contributors/develhttps://github.com/kubernetes/community/blob/master/guide/sig-testing/e2e-tests.md) and test cases themselves can be found in [kubernetes/test/e2e/](https://git.k8s.io/kubernetes/test/e2e). +--- +> * End-to-end ("e2e"): These are broad tests of overall system behavior and coherence. These are more complicated as they require a functional kubernetes cluster built from the sources to be tested. A separate [document detailing e2e testing](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-testing/e2e-tests.md) and test cases themselves can be found in [kubernetes/test/e2e/](https://git.k8s.io/kubernetes/test/e2e). +diff -r ./content/docs/guide/expectations.md ../../contentCorrect/en/docs/guide/expectations.md +33c33 +< The [community membership](https://github.com/kubernetes/community/blob/master/guide/community-membership.md) outlines the responsibilities +--- +> The [community membership](https://github.com/kubernetes/community/blob/master/community-membership.md) outlines the responsibilities +45c45 +< Reviewers are highly encouraged to not only abide by the [code of conduct](https://github.com/kubernetes/community/blob/master/guide/governance.md#code-of-conduct) but are strongly encouraged to go above and beyond the code of conduct to promote a collaborative, respectful Kubernetes community. +--- +> Reviewers are highly encouraged to not only abide by the [code of conduct](https://github.com/kubernetes/community/blob/master/governance.md#code-of-conduct) but are strongly encouraged to go above and beyond the code of conduct to promote a collaborative, respectful Kubernetes community. +diff -r ./content/docs/guide/first-contribution.md ../../contentCorrect/en/docs/guide/first-contribution.md +115,119c115,119 +< - [`hugo-urlcommunity/blob/master/sig-apps/CONTRIBUTING.md`](hugo-urlcommunity/blob/master/sig-apps/CONTRIBUTING.md) +< - [`hugo-urlcommunity/blob/master/sig-cli/CONTRIBUTING.md`](hugo-urlcommunity/blob/master/sig-cli/CONTRIBUTING.md) +< - [`hugo-urlcommunity/blob/master/sig-multicluster/CONTRIBUTING.md`](hugo-urlcommunity/blob/master/sig-multicluster/CONTRIBUTING.md) +< - [`hugo-urlcommunity/blob/master/sig-storage/CONTRIBUTING.md`](hugo-urlcommunity/blob/master/sig-storage/CONTRIBUTING.md) +< - [`hugo-urlcommunity/blob/master/sig-windows/CONTRIBUTING.md`](hugo-urlcommunity/blob/master/sig-windows/CONTRIBUTING.md) +--- +> - [`/sig-apps/CONTRIBUTING.md`](https://github.com/kubernetes/community/blob/master/sig-apps/CONTRIBUTING.md) +> - [`/sig-cli/CONTRIBUTING.md`](https://github.com/kubernetes/community/blob/master/sig-cli/CONTRIBUTING.md) +> - [`/sig-multicluster/CONTRIBUTING.md`](https://github.com/kubernetes/community/blob/master/sig-multicluster/CONTRIBUTING.md) +> - [`/sig-storage/CONTRIBUTING.md`](https://github.com/kubernetes/community/blob/master/sig-storage/CONTRIBUTING.md) +> - [`/sig-windows/CONTRIBUTING.md`](https://github.com/kubernetes/community/blob/master/sig-windows/CONTRIBUTING.md) +130,147c130,147 +< [Contributor Role Board]: hugo-url +< [k8s-ci-robot]: hugo-url +< [Non-Code Contributions Guide]: hugo-url +< [multiple repositories]: hugo-url +< [kubernetes/kubernetes]: hugo-url +< [help wanted]: hugo-url +< [good first issue]: hugo-url +< [extra assistance]:./help-wanted.md +< [sl]: hugo-url +< [video meetings]: hugo-url +< [sig-contributor-experience]: hugo-url +< [weekly meetings]: hugo-url +< [container networking interface]: hugo-url +< [network SIG]: hugo-url +< [ask in Slack]: hugo-url +< [issue triage guide]: hugo-url +< [kubernetes/website]: hugo-urlwebsite/issues +< [SIG Contributor Experience]: hugo-url +--- +> [Contributor Role Board]: https://discuss.kubernetes.io/c/contributors/role-board +> [k8s-ci-robot]: https://github.com/k8s-ci-robot +> [Non-Code Contributions Guide]: /docs/guide/non-code-contributions +> [multiple repositories]: https://github.com/kubernetes/ +> [kubernetes/kubernetes]: https://git.k8s.io/kubernetes +> [help wanted]: https://go.k8s.io/help-wanted +> [good first issue]: https://go.k8s.io/good-first-issue +> [extra assistance]: /docs/guide/help-wanted +> [sl]: /community/community-groups +> [video meetings]: https://kubernetes.io/community/ +> [sig-contributor-experience]: https://github.com/kubernetes/community/blob/master/sig-contributor-experience/README.md +> [weekly meetings]: https://docs.google.com/document/d/1qf-02B7EOrItQgwXFxgqZ5qjW0mtfu5qkYIF1Hl4ZLI/edit +> [container networking interface]: https://github.com/containernetworking/cni +> [network SIG]: http://git.k8s.io/community/sig-network +> [ask in Slack]: http://slack.k8s.io/ +> [issue triage guide]: /docs/guide/issue-triage +> [kubernetes/website]: https://github.com/kubernetes/website/issues +> [SIG Contributor Experience]: https://github.com/kubernetes/community/blob/master/sig-contributor-experience#contact +Binary files ./content/docs/guide/git_workflow.png and ../../contentCorrect/en/docs/guide/git_workflow.png differ +diff -r ./content/docs/guide/github-workflow.md ../../contentCorrect/en/docs/guide/github-workflow.md +10c10 +< ![Git workflow](https://github.com/kubernetes/community/blob/master/guide/git_workflow.png) +--- +> ![Git workflow](/docs/guide/git_workflow.png) +22c22 +< [go-workspace]: hugo-url +--- +> [go-workspace]: https://golang.org/doc/code.html#Workspaces +85c85 +< This workflow is process-specific; for quick start build instructions for [kubernetes/kubernetes](https://git.k8s.io/kubernetes) please [see here](/contributors/devel/development.md#building-kubernetes-on-a-local-osshell-environment). +--- +> This workflow is process-specific; for quick start build instructions for [kubernetes/kubernetes](https://git.k8s.io/kubernetes) please [see here](https://github.com/kubernetes/community/blob/master/contributors/devel/development.md#building-kubernetes-on-a-local-osshell-environment). +diff -r ./content/docs/guide/issue-triage.md ../../contentCorrect/en/docs/guide/issue-triage.md +102c102 +< We encourage more SIGs to use project boards to enhance visibility and tracking. If you'd like some help getting started, visit [GitHub's documentation](https://help.github.com/en/github/managing-your-work-on-github/about-project-boards) or reach out to [SIG Contributor Experience](/sig-contributor-experience/README.md#contact). +--- +> We encourage more SIGs to use project boards to enhance visibility and tracking. If you'd like some help getting started, visit [GitHub's documentation](https://help.github.com/en/github/managing-your-work-on-github/about-project-boards) or reach out to [SIG Contributor Experience](https://github.com/kubernetes/community/blob/master/sig-contributor-experience/README.md#contact). +209c209 +< Components are divided among [Special Interest Groups (SIGs)](https://github.com/kubernetes/community/blob/master/guide/sig-list.md). [The bot](https://go.k8s.io/bot-commands) assists in finding a proper SIG to own an issue. +--- +> Components are divided among [Special Interest Groups (SIGs)](/community/community-groups). [The bot](https://go.k8s.io/bot-commands) assists in finding a proper SIG to own an issue. +diff -r ./content/docs/guide/non-code-contributions.md ../../contentCorrect/en/docs/guide/non-code-contributions.md +64,65c64,65 +< - [Mailing list moderation](/docs/comms/moderation#mailing-list) +< - [Slack](/docs/comms/moderation#slack) or [Discourse management](/docs/comms/moderation#discuss) +--- +> - [Mailing list moderation](/docs/comms/moderation) +> - [Slack](/docs/comms/moderation) or [Discourse management](/docs/comms/moderation) +diff -r ./content/docs/guide/owners.md ../../contentCorrect/en/docs/guide/owners.md +312,319c312,319 +< [go-regex]: hugo-url +< [test-infra-7690]: hugo-url +< [approver-role]: hugo-url +< [reviewer-role]: hugo-url +< [community membership doc]: hugo-url +< [chromium-owners]: hugo-url +< [github-codeowners]: hugo-url +< [pr-workflow]: hugo-url +--- +> [go-regex]: https://golang.org/pkg/regexp/#pkg-overview +> [test-infra-7690]: https://github.com/kubernetes/test-infra/issues/7690 +> [approver-role]: https://git.k8s.io/community/community-membership.md#approver +> [reviewer-role]: https://git.k8s.io/community/community-membership.md#reviewer +> [community membership doc]: https://git.k8s.io/community/community-membership.md +> [chromium-owners]: https://chromium.googlesource.com/chromium/src/+/master/docs/code_reviews.md +> [github-codeowners]: https://help.github.com/articles/about-codeowners/ +> [pr-workflow]: /docs/guide/pull-requests#the-testing-and-merge-workflow +diff -r ./content/docs/guide/pull-requests.md ../../contentCorrect/en/docs/guide/pull-requests.md +44c44 +< If you're looking for information on setting up your developer environment and creating code to contribute to Kubernetes, see the [development guide](https://github.com/kubernetes/community/blob/masterhttps://github.com/kubernetes/community/blob/master/contributors/devel/development.md). +--- +> If you're looking for information on setting up your developer environment and creating code to contribute to Kubernetes, see the [development guide](https://github.com/kubernetes/community/blob/master/contributors/devel/development.md). +46c46 +< First-time contributors should head to the [Contributor Guide](/docs/guide/) to get started. +--- +> First-time contributors should head to the [Contributor Guide](/docs/guide) to get started. +86c86 +< If you feel your pull request is in this state, contact the appropriate [SIG](/community/community-groups) or [SIG-Release](https://git.k8s.io/sig-release) for clarification. +--- +> If you feel your pull request is in this state, contact the appropriate [SIG](https://git.k8s.io/community/sig-list.md) or [SIG-Release](https://git.k8s.io/sig-release) for clarification. +168,169c168,169 +< * [Development guide](https://github.com/kubernetes/community/blob/masterhttps://github.com/kubernetes/community/blob/master/contributors/devel/development.md) +< * [Coding conventions](https://github.com/kubernetes/community/blob/master/contributors//guide/coding-conventions.md) +--- +> * [Development guide](https://github.com/kubernetes/community/blob/master/contributors/devel/development.md) +> * [Coding conventions](/docs/guide/coding-convention) +184c184 +< Here's a [list of SIGs](https://github.com/kubernetes/community/blob/master/guide/sig-list.md), this includes their public meetings. +--- +> Here's a [list of SIGs](/community/community-groups), this includes their public meetings. +280c280 +< For more information, see [squash commits](https://github.com/kubernetes/community/blob/master/guide/github-workflow.md#squash-commits). +--- +> For more information, see [squash commits](/docs/guide/github-workflow#squash-commits). +482c482 +< - [How to Write a Git Commit Message - Chris Beams](hugo-urlposts/git-commit/) +--- +> - [How to Write a Git Commit Message - Chris Beams](https://chris.beams.io/posts/git-commit/) +532c532 +< A generic explanation of how labels are used in pull requests can be found [here](https://github.com/kubernetes/community/blob/master/contributors/guide/owners.md#code-review-using-owners-files). +--- +> A generic explanation of how labels are used in pull requests can be found [here](/docs/guide/owners#code-review-using-owners-files). +551c551 +< Pull requests by Kubernetes organization [members](https://github.com/kubernetes/community/blob/master/guide/community-membership.md) do not need this step. Now the pull request is considered to be trusted, and the pre-submit tests will run: +--- +> Pull requests by Kubernetes organization [members](https://github.com/kubernetes/community/blob/master/community-membership.md) do not need this step. Now the pull request is considered to be trusted, and the pre-submit tests will run: +604,612c604,612 +< [Chris Beams]: hugo-url +< [Tim Pope]: hugo-url +< [Scott Chacon]: hugo-url +< [Ben Straub]: hugo-url +< [kind]: hugo-url +< [area]: hugo-url +< [preferred editor]: hugo-url +< [imperative mood]: hugo-url +< [GitHub keywords]: hugo-url +--- +> [Chris Beams]: https://chris.beams.io/ +> [Tim Pope]: https://tpo.pe/ +> [Scott Chacon]: https://scottchacon.com/ +> [Ben Straub]: https://ben.straub.cc/ +> [kind]: https://github.com/kubernetes/kubernetes/labels?q=kind +> [area]: https://github.com/kubernetes/kubernetes/labels?q=area +> [preferred editor]: https://help.github.com/en/github/using-git/associating-text-editors-with-git +> [imperative mood]: https://www.grammar-monster.com/glossary/imperative_mood.htm +> [GitHub keywords]: https://help.github.com/articles/closing-issues-using-keywords +diff -r ./content/events/community-meeting.md ../../contentCorrect/en/events/community-meeting.md +117,129c117,129 +< [community-meeting]: hugo-url +< [10am PT]: hugo-url +< [calendar.google.com]: hugo-url +< [iCal url]: hugo-url +< [iCal client]: hugo-url +< [YouTube Channel]: hugo-url +< [agenda]: hugo-url +< [this forum thread]: hugo-url +< [devstats graphs]: hugo-url +< [CNCF Webinar]: hugo-url +< [schedule]: hugo-url +< [pregenerated slide template]: hugo-url +< [Meeting Notes Archive]: hugo-url +--- +> [community-meeting]: https://zoom.us/j/91768411674?pwd=MVpqL0ZHbGFYMnpXVXpybTBvalFRQT09 +> [10am PT]: http://www.thetimezoneconverter.com/?t=10:00&tz=PT%20%28Pacific%20Time%29 +> [calendar.google.com]: https://calendar.google.com/calendar/embed?src=calendar%40kubernetes.io +> [iCal url]: https://calendar.google.com/calendar/ical/calendar%40kubernetes.io/public/basic.ics +> [iCal client]: https://en.wikipedia.org/wiki/ICalendar +> [YouTube Channel]: https://www.youtube.com/playlist?list=PL69nYSiGNLP1pkHsbPjzAewvMgGUpkCnJ +> [agenda]: http://bit.ly/k8scommunity +> [this forum thread]: https://discuss.kubernetes.io/t/kubernetes-weekly-community-meeting-notes/35/53 +> [devstats graphs]: https://k8s.devstats.cncf.io/ +> [CNCF Webinar]: https://www.cncf.io/webinars/ +> [schedule]: https://docs.google.com/spreadsheets/d/1adztrJ05mQ_cjatYSnvyiy85KjuI6-GuXsRsP-T2R3k +> [pregenerated slide template]: https://docs.google.com/presentation/d/1-nTvKCiqu9UvFYUeM6p6RIqHS5-H-u3_x-V4xj_eIWo/edit#slide=id.g401c104a3c_0_0 +> [Meeting Notes Archive]: https://git.kubernetes.io/community/communication/meeting-notes-archive +diff -r ./content/events/meet-our-contributors.md ../../contentCorrect/en/events/meet-our-contributors.md +95,103c95,103 +< [#meet-our-contributors]: hugo-url +< [Convert to your timezone]: hugo-url +< [#meet-our-contributors]: hugo-url +< [Kubernetes YouTube Channel]: hugo-url +< [previous Meet-Our-Contributors monthly meetings]: hugo-url +< [#office-hours]: hugo-url +< [#k8smoc]: hugo-url +< [#meet-our-contributors]: hugo-url +< [here]: hugo-url +--- +> [#meet-our-contributors]: https://kubernetes.slack.com/messages/meet-our-contributors +> [Convert to your timezone]: https://www.thetimezoneconverter.com/?t=03%3A30%20pm&tz=UTC& +> [#meet-our-contributors]: https://kubernetes.slack.com/messages/meet-our-contributors +> [Kubernetes YouTube Channel]: https://www.youtube.com/c/KubernetesCommunity/live +> [previous Meet-Our-Contributors monthly meetings]: https://www.youtube.com/playlist?list=PL69nYSiGNLP3QpQrhZq_sLYo77BVKv09F +> [#office-hours]: https://kubernetes.slack.com/messages/office-hours +> [#k8smoc]: https://twitter.com/hashtag/k8smoc +> [#meet-our-contributors]: https://kubernetes.slack.com/messages/meet-our-contributors +> [here]: /events/office-hours +diff -r ./content/events/office-hours.md ../../contentCorrect/en/events/office-hours.md +171,183c171,183 +< [YouTube channel]: hugo-url +< [9am ET]: hugo-url +< [5pm PT]: hugo-url +< [Kubernetes YouTube Channel]: hugo-urllive +< [#office-hours channel]: hugo-url +< [discuss.kubernetes.io]: hugo-url +< [StackOverflow]: hugo-url +< [Meet our Contributors]: hugo-url +< [Office Hours playlist]: hugo-url +< [Volunteer working sheet]: hugo-url +< [@castrojo]: hugo-url +< [#kubernetes-users]: hugo-url +< [#office-hours]: hugo-url +--- +> [YouTube channel]: https://www.youtube.com/c/KubernetesCommunity/ +> [9am ET]: http://www.thetimezoneconverter.com/?t=09:00&tz=ET%20%28Eastern%20Time%29 +> [5pm PT]: http://www.thetimezoneconverter.com/?t=17:00&&tz=PT%20(Pacific%20Time) +> [Kubernetes YouTube Channel]: https://www.youtube.com/c/KubernetesCommunity/live +> [#office-hours channel]: https://kubernetes.slack.com/messages/office-hours +> [discuss.kubernetes.io]: https://discuss.kubernetes.io +> [StackOverflow]: https://stackoverflow.com/questions/tagged/kubernetes +> [Meet our Contributors]: /events/meet-our-contributors +> [Office Hours playlist]: https://www.youtube.com/watch?v=D0Q7wwljN30&list=PL69nYSiGNLP3azFUvYJjGn45YbF6C-uIg +> [Volunteer working sheet]: http://bit.ly/k8s-office-hours-volunteers +> [@castrojo]: https://github.com/castrojo +> [#kubernetes-users]: https://kubernetes.slack.com/messages/kubernetes-users +> [#office-hours]: https://kubernetes.slack.com/messages/office-hours +diff -r ./content/resources/release/index.md ../../contentCorrect/en/resources/release/index.md +15c15 +< * [This document](/resources/release/) +--- +> * [This document](https://git.k8s.io/sig-release/releases/release-1.22/README.md) +29c29 +< * [kubernetes/sig-release v1.22 milestone](hugo-url/milestone/50) +--- +> * [kubernetes/sig-release v1.22 milestone](https://github.com/kubernetes/kubernetes/milestone/50) +41,43c41,43 +< - **Thursday, May 13th**: Week 3 - [Enhancements Freeze](https://github.com/kubernetes/sig-release/blob/master/release-1.22/release_phases.md#enhancements-freeze) +< - **Thursday, July 8th**: Week 11 - [Code Freeze](https://github.com/kubernetes/sig-release/blob/master/release-1.22/release_phases.md#code-freeze) +< - **Thursday, July 15th**: Week 12 - [Test Freeze](https://github.com/kubernetes/sig-release/blob/master/release-1.22/release_phases.md#test-freeze) +--- +> - **Thursday, May 13th**: Week 3 - [Enhancements Freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#enhancements-freeze) +> - **Thursday, July 8th**: Week 11 - [Code Freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#code-freeze) +> - **Thursday, July 15th**: Week 12 - [Test Freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#test-freeze) +88c88 +< Please refer to the [release phases document](https://github.com/kubernetes/sig-release/blob/master/release-1.22/release_phases.md). +--- +> Please refer to the [release phases document](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md). +90,109c90,109 +< [k8s122-calendar]: hugo-url +< [Internal Contact Info]: hugo-url +< [Retrospective Document]: hugo-url +< +< [Enhancements Freeze]: https://github.com/kubernetes/sig-release/blob/master/release-1.22/release_phases.md#enhancements-freeze +< [Burndown]: https://github.com/kubernetes/sig-release/blob/master/release-1.22/release_phases.md#burndown +< [Code Freeze]: https://github.com/kubernetes/sig-release/blob/master/release-1.22/release_phases.md#code-freeze +< [Exception]: https://github.com/kubernetes/sig-release/blob/master/release-1.22/release_phases.md#exceptions +< [Thaw]: https://github.com/kubernetes/sig-release/blob/master/release-1.22/release_phases.md#thaw +< [Test Freeze]: https://github.com/kubernetes/sig-release/blob/master/release-1.22/release_phases.md#test-freeze +< +< [kubernetes-release-team@]: hugo-url +< [kubernetes-sig-release@]: hugo-url +< [#sig-release]: hugo-url +< [kubernetes-release-calendar]: hugo-url +< [kubernetes/kubernetes]: hugo-url +< +< [master-blocking]: hugo-url +< [master-informing]: hugo-url +< [1.22-blocking]: hugo-url +--- +> [k8s122-calendar]: https://bit.ly/k8s-release-cal +> [Internal Contact Info]: https://github.com/kubernetes/sig-release/blob/master/releases/release-1.22/TBD +> [Retrospective Document]: http://bit.ly/k8s122-retro +> +> [Enhancements Freeze]: https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#enhancements-freeze +> [Burndown]: https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#burndown +> [Code Freeze]: https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#code-freeze +> [Exception]: https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#exceptions +> [Thaw]: https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#thaw +> [Test Freeze]: https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#test-freeze +> +> [kubernetes-release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team +> [kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release +> [#sig-release]: https://kubernetes.slack.com/messages/sig-release/ +> [kubernetes-release-calendar]: https://bit.ly/k8s-release-cal +> [kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes +> +> [master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary +> [master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary +> [1.22-blocking]: https://testgrid.k8s.io/sig-release-1.22-blocking#Summary +111,112c111,112 +< [exception requests]: hugo-url +< [release phases document]: https://github.com/kubernetes/sig-release/blob/master/release-1.22/release_phases.md +--- +> [exception requests]: https://github.com/kubernetes/sig-release/blob/master/releases/EXCEPTIONS.md +> [release phases document]: https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md +diff -r ./content/resources/rename.md ../../contentCorrect/en/resources/rename.md +149,161c149,161 +< [kubernetes/org]: hugo-url +< [@kubernetes/owners]: hugo-url +< [#github-management]: hugo-url +< [kubernetes/test-infra#20665]: hugo-url +< [kubernetes/test-infra#20667]: hugo-url +< [kubernetes/test-infra#20669]: hugo-url +< [kubernetes/test-infra#20672]: hugo-url +< [kubernetes/test-infra#20675]: hugo-url +< [`status-reconciler`]: hugo-url +< [`branch_protection`]: hugo-url +< [`milestone_applier`]: hugo-url +< [official instructions]: hugo-url +< [GitHub instructions to rename your local branch]: hugo-url +--- +> [kubernetes/org]: https://github.com/kubernetes/org/issues +> [@kubernetes/owners]: https://github.com/orgs/kubernetes/teams/owners +> [#github-management]: https://kubernetes.slack.com/messages/github-management +> [kubernetes/test-infra#20665]: https://github.com/kubernetes/test-infra/pull/20665 +> [kubernetes/test-infra#20667]: https://github.com/kubernetes/test-infra/issues/20667 +> [kubernetes/test-infra#20669]: https://github.com/kubernetes/test-infra/pull/20669 +> [kubernetes/test-infra#20672]: https://github.com/kubernetes/test-infra/issues/20672 +> [kubernetes/test-infra#20675]: https://github.com/kubernetes/test-infra/pull/20675 +> [`status-reconciler`]: https://github.com/kubernetes/test-infra/tree/master/prow/cmd/status-reconciler +> [`branch_protection`]: https://github.com/kubernetes/test-infra/blob/ca6273046b355d38eade4c4bd435bd13fbb55043/config/prow/config.yaml#L131 +> [`milestone_applier`]: https://github.com/kubernetes/test-infra/blob/ca6273046b355d38eade4c4bd435bd13fbb55043/config/prow/plugins.yaml#L324 +> [official instructions]: https://github.com/github/renaming#renaming-existing-branches +> [GitHub instructions to rename your local branch]: https://docs.github.com/en/github/administering-a-repository/renaming-a-branch#updating-a-local-clone-after-a-branch-name-changes diff --git a/hack/gen_content.go b/hack/gen_content.go index 11f42635a..2168d02f9 100644 --- a/hack/gen_content.go +++ b/hack/gen_content.go @@ -230,9 +230,29 @@ func GenLink(replacementLink string, entries []entry, src string) string { // fmt.Println("repo", repo) for _, entry := range entries { // fmt.Println("entry.repo", entry.repo) + // fmt.Println("repo", repo) if entry.repo == repo { // TODO: add blob/master also -> done - return "https://github.com/" + entry.org + "/" + entry.repo + "/blob/master" + replacementLink + fmt.Println("entry.dest", entry.dest) + fmt.Println("repLink", replacementLink) + fmt.Println("src", src) + if strings.Contains(src, entry.src) { + stuff := strings.Split(entry.src, "/") + fmt.Println(stuff) + if len(stuff) == 1 { + return "https://github.com/" + entry.org + "/" + entry.repo + "/blob/master" + replacementLink + } else { + extra := "/" + for k, v := range stuff { + if k == (len(stuff) - 1) { + continue + } + extra += v + } + + return "https://github.com/" + entry.org + "/" + entry.repo + "/blob/master" + extra + replacementLink + } + } } } // fmt.Println("OVER $$$$$") diff --git a/hack/gen_content_test.go b/hack/gen_content_test.go new file mode 100644 index 000000000..05b0d996e --- /dev/null +++ b/hack/gen_content_test.go @@ -0,0 +1,18 @@ +package main + +import ( + "fmt" + "testing" +) + +func Test_Expand_Path(t *testing.T) { + fmt.Println(ExpandPath("election.md", "_tmp/community/committee-code-of-conduct/incident-process.md")) + t.Fail() +} + +func Test_Gen_Link(t *testing.T) { + entries := make([]entry, 2) + entries = append(entries, entry{org: "kubernetes", repo: "community", src: "/committee-code-of-conduct/incident-process.md", dest: "/community/code-of-conduct-incident-process.md"}) + fmt.Println("this", GenLink("/election.md", entries, "./_tmp/community/committee-code-of-conduct/incident-process.md")) + t.Fail() +} diff --git a/hack/output.txt b/hack/output.txt new file mode 100644 index 000000000..8379fd0bc --- /dev/null +++ b/hack/output.txt @@ -0,0 +1,3 @@ +$$$ +[{kubernetes community /contributors/guide/README.md /docs/guide/_index.md} {kubernetes community /contributors/guide/coding-conventions.md /docs/guide/coding-convention.md} {kubernetes community /contributors/guide/collab.md /docs/guide/collab.md} {kubernetes community /contributors/guide/contributing.md /docs/guide/contributing.md} {kubernetes community /contributors/guide/expectations.md /docs/guide/expectations.md} {kubernetes community /contributors/guide/first-contribution.md /docs/guide/first-contribution.md} {kubernetes community /contributors/guide/getting-started.md /docs/guide/getting-started.md} {kubernetes community /contributors/guide/github-workflow.md /docs/guide/github-workflow.md} {kubernetes community /contributors/guide/help-wanted.md /docs/guide/help-wanted.md} {kubernetes community /contributors/guide/issue-triage.md /docs/guide/issue-triage.md} {kubernetes community /contributors/guide/non-code-contributions.md /docs/guide/non-code-contributions.md} {kubernetes community /contributors/guide/owners.md /docs/guide/owners.md} {kubernetes community /contributors/guide/pull-requests.md /docs/guide/pull-requests.md} {kubernetes community /contributors/guide/release-notes.md /docs/guide/release-notes.md} {kubernetes community /contributors/guide/git_workflow.png /docs/guide/git_workflow.png} {kubernetes community /contributors/guide/contributor-cheatsheet/README.md /docs/contributor-cheatsheet.md} {kubernetes community /events/community-meeting.md /events/community-meeting.md} {kubernetes community /events/office-hours.md /events/office-hours.md} {kubernetes community /mentoring/programs/meet-our-contributors.md /events/meet-our-contributors.md} {kubernetes community /sig-list.md /community/community-groups.md} {kubernetes community /mentoring/README.md /community/mentoring.md} {kubernetes community /values.md /community/values.md} {kubernetes community /communication/best-practices.md /docs/comms/notifications.md} {kubernetes community /communication/calendar-guidelines.md /docs/comms/calendars.md} {kubernetes community /communication/discuss-guidelines.md /docs/comms/discuss.md} {kubernetes community /communication/mailing-list-guidelines.md /docs/comms/mailing-lists.md} {kubernetes community /communication/moderation.md /docs/comms/moderation.md} {kubernetes community /communication/moderators.md /docs/comms/moderators.md} {kubernetes community /communication/requesting-survey.md /docs/comms/surveys.md} {kubernetes community /communication/slack-guidelines.md /docs/comms/slack.md} {kubernetes community /communication/zoom-guidelines.md /docs/comms/zoom.md} {kubernetes community /communication/youtube/youtube-guidelines.md /docs/comms/youtube.md} {kubernetes community /github-management/default-branch-migration.md /resources/rename.md} {kubernetes community /committee-code-of-conduct/incident-process.md /community/code-of-conduct-incident-process.md} {kubernetes sig-release /releases/release-1.22/README.md /resources/release/index.md}] +$$$ From f0246b2a968542cebd839fdd0bdc2f9b2943358f Mon Sep 17 00:00:00 2001 From: RinkiyaKeDad Date: Wed, 25 Aug 2021 14:01:08 +0530 Subject: [PATCH 15/16] added logic for reference style links Signed-off-by: RinkiyaKeDad --- hack/gen_content.go | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/hack/gen_content.go b/hack/gen_content.go index 2168d02f9..a37eb04d5 100644 --- a/hack/gen_content.go +++ b/hack/gen_content.go @@ -180,7 +180,26 @@ func GetAllLinks(markdown string, src string, entries []entry) string { } if matches2 != nil { if !strings.HasPrefix(matches2[0][1], "#") { - markdown = strings.Replace(markdown, matches2[0][1], "hugo-url", -1) + foundLink := matches2[0][1] + var replacementLink string + if strings.HasPrefix(foundLink, "http") { + replacementLink = foundLink + } else { + replacementLink = ExpandPath(foundLink, src) + } + fmt.Println("EXPANDED PATH", replacementLink) + replacementLink = GenLink(replacementLink, entries, src) + if foundLink != replacementLink { + if !strings.HasPrefix(replacementLink, "http") { + // TODO: remove md here and keep # in mind -> done + replacementLink = strings.ReplaceAll(replacementLink, ".md", "") + // TODO: if it's _index or index then remove the last part -> done + replacementLink = strings.ReplaceAll(replacementLink, "_index", "") + replacementLink = strings.ReplaceAll(replacementLink, "index", "") + } + fmt.Println("Replacing", foundLink, "with", replacementLink, "in", src) + markdown = strings.Replace(markdown, matches2[0][1], replacementLink, -1) + } } } } From b1d07e482fc0b48bd039045cdb6f7da267131ac1 Mon Sep 17 00:00:00 2001 From: RinkiyaKeDad Date: Wed, 25 Aug 2021 14:40:14 +0530 Subject: [PATCH 16/16] im totally lost at this point Signed-off-by: RinkiyaKeDad --- hack/gen_content.go | 107 +++++++++++++++------------------------ hack/gen_content_test.go | 14 ++++- 2 files changed, 53 insertions(+), 68 deletions(-) diff --git a/hack/gen_content.go b/hack/gen_content.go index a37eb04d5..f3c5ed0a7 100644 --- a/hack/gen_content.go +++ b/hack/gen_content.go @@ -48,32 +48,23 @@ func main() { var entries []entry for _, source := range info.Sources { - // TODO: add logic to handle more orgs -> DONE - orgName := strings.SplitAfter(source.Repo, "/")[3] - orgName = strings.ReplaceAll(orgName, "/", "") + orgName := strings.Split(source.Repo, "/")[3] repoName := strings.SplitAfter(source.Repo, "/")[4] repoName = strings.ReplaceAll(repoName, ".git", "") - // repoName, _ := GetStringInBetweenTwoString(source.Repo, "https://github.com/kubernetes/", ".git") - // orgName := "kubernetes" for _, file := range source.Files { entries = append(entries, entry{orgName, repoName, file.Src, file.Dest}) } } - fmt.Println("$$$") + fmt.Println("ENTRIES START") fmt.Println(entries) - fmt.Println("$$$") + fmt.Println("ENTRIES END") err = os.Mkdir("./_tmp", 0755) if err != nil { log.Fatal(err) } - // err = os.Mkdir("./content", 0755) - // if err != nil { - // log.Fatal(err) - // } - // not iterating through "entries" so that we don't have to do multiple git clones for _, source := range info.Sources { repo := source.Repo @@ -87,16 +78,15 @@ func main() { } for _, file := range source.Files { - copyFrom := concatenatedPath + file.Src copyTo := "./content" + file.Dest - Copy(copyFrom, copyTo, entries) + Copy(concatenatedPath, file.Src, copyTo, entries) } } } -func Copy(src, dst string, entries []entry) error { - input, err := ioutil.ReadFile(src) +func Copy(concatenatedPath, src, dst string, entries []entry) error { + input, err := ioutil.ReadFile(concatenatedPath + src) if err != nil { fmt.Println(err) return err @@ -111,13 +101,8 @@ func Copy(src, dst string, entries []entry) error { if err != nil { log.Fatal(err) } - } else { - fmt.Println("File Exists") } - // err = os.MkdirAll(dir, os.ModePerm) - // if err != nil { - // log.Fatal(err) - // } + _, err = os.Create(dst) if err != nil { log.Fatal(err) @@ -131,7 +116,7 @@ func Copy(src, dst string, entries []entry) error { return nil } -// src is something like "./_tmp/community/contributors/guide/README.md" +// src is what is in the YAML under files, something like "/contributors/guide/README.md" func GetAllLinks(markdown string, src string, entries []entry) string { // Regex to extract link for [text](./something.md) @@ -211,12 +196,10 @@ func GenLink(replacementLink string, entries []entry, src string) string { // if it is a web link if strings.HasPrefix(replacementLink, "http") { // if it belongs to one of the k8s urls, replace if it will be present on the hugo site - // TODO: add more checks here for now let's just work with "http://github.com/kubernetes" // for example replacementLink = https://github.com/kubernetes/community/blob/master/mentoring/programs/meet-our-contributors.md if strings.Contains(replacementLink, "github.com/kubernetes") || strings.Contains(replacementLink, "github.com/kubernetes-sigs") || strings.Contains(replacementLink, "github.com/kubernetes-csi") || strings.Contains(replacementLink, "github.com/kubernetes-client") || strings.Contains(replacementLink, "git.k8s.io") || strings.Contains(replacementLink, "sigs.k8s.io") { for _, entry := range entries { // one entry would be "/mentoring/programs/meet-our-contributors.md" - // ?? TODO: remove blob tree master from the replacementLink else Contains won't work if strings.Contains(replacementLink, entry.src) { // return "/events/meet-our-contributors.md" return entry.dest @@ -224,7 +207,7 @@ func GenLink(replacementLink string, entries []entry, src string) string { } } - // if it's not one of the k8s urls just let it be + // if it's not one of the k8s urls, let it be } else { // if its not an external url check if it's present on hugo site @@ -238,83 +221,75 @@ func GenLink(replacementLink string, entries []entry, src string) string { } // else generate an external url // for example replacement link "/mentoring/programs/shadow-roles.md" - // src is something like "./_tmp/community/contributors/guide/README.md" - fmt.Println("IT WENT HERE") + // src is something like "/contributors/guide/README.md" fmt.Println("src", src) fmt.Println("replacementLink", replacementLink) - // if replacementLink == "/contributors/devel/sig-architecture/api-conventions.md" { - repo := strings.SplitAfter(src, "/")[2] - repo = strings.ReplaceAll(repo, "/", "") - // fmt.Println("repo", repo) for _, entry := range entries { - // fmt.Println("entry.repo", entry.repo) - // fmt.Println("repo", repo) - if entry.repo == repo { - // TODO: add blob/master also -> done + if entry.src == src { fmt.Println("entry.dest", entry.dest) fmt.Println("repLink", replacementLink) fmt.Println("src", src) - if strings.Contains(src, entry.src) { - stuff := strings.Split(entry.src, "/") - fmt.Println(stuff) - if len(stuff) == 1 { - return "https://github.com/" + entry.org + "/" + entry.repo + "/blob/master" + replacementLink - } else { - extra := "/" - for k, v := range stuff { - if k == (len(stuff) - 1) { - continue - } - extra += v - } - - return "https://github.com/" + entry.org + "/" + entry.repo + "/blob/master" + extra + replacementLink - } - } + return "https://github.com/" + entry.org + "/" + entry.repo + "/blob/master" + replacementLink + + // if strings.Contains(src, entry.src) { + // stuff := strings.Split(entry.src, "/") + // fmt.Println(stuff) + // if len(stuff) == 1 { + // return "https://github.com/" + entry.org + "/" + entry.repo + "/blob/master" + replacementLink + // } else { + // extra := "/" + // for k, v := range stuff { + // if k == (len(stuff) - 1) { + // continue + // } + // extra += v + // } + + // return "https://github.com/" + entry.org + "/" + entry.repo + "/blob/master" + extra + replacementLink + // } + // } } } - // fmt.Println("OVER $$$$$") - // } - } return replacementLink } // foundLink is something like ../../abc.md -// src is something like "./_tmp/community/contributors/guide/README.md" +// src is something like "/contributors/guide/README.md" // expandPath will return "/contributors/guide/abc.md" func ExpandPath(foundLink string, src string) string { // if ./a.md or /a.md or a.md then it's in same dir as src if filepath.Dir(foundLink) == "." || filepath.Dir(foundLink) == "/" { - // fullFilePath is "./_tmp/community/contributors/guide" + "/" +"abc.md" + // fullFilePath is "/contributors/guide" + "/" +"abc.md" fullFilePath := filepath.Dir(src) + "/" + filepath.Base(foundLink) - // we want to return "/" + "contributors/guide/abc.md" - return "/" + strings.Join(strings.Split(fullFilePath, "/")[3:], "/") + return fullFilePath } // for cases where // foundLink is /contributors/devel/sig-architecture/api_changes.md - // src is ./_tmp/community/contributors/guide/coding-conventions.md + // src is /contributors/guide/coding-conventions.md if !strings.Contains(foundLink, "..") { return foundLink } - // if foundLink was ../../abc.md and src was ./_tmp/community/contributors/guide/README.md + // RELATIVE PATH LOGIC NEEDS TO BE WORKED ON BASED ON EXAMPLES (the code below this line) + + // if foundLink was ../../abc.md and src was /contributors/guide/README.md src = filepath.Dir(src) fileName := filepath.Base(foundLink) foundLink = filepath.Dir(foundLink) - // src is now "./_tmp/community/contributors/guide" + // src is now "/contributors/guide" // fileName is now abc.md // foundLink is now ../.. - linkSliceLen := len(strings.SplitAfter(foundLink, "/")) - srcSlice := strings.SplitAfter(src, "/") + linkSliceLen := len(strings.Split(foundLink, "/")) + srcSlice := strings.Split(src, "/") // linkSliceLen is now 2 - // srcSlice is now [., _tmp, community, contributors, guide] + // srcSlice is now [contributors, guide] // we want to get the last 2 elements of srcSlice now srcSlice = srcSlice[len(srcSlice)-linkSliceLen:] diff --git a/hack/gen_content_test.go b/hack/gen_content_test.go index 05b0d996e..c02365a40 100644 --- a/hack/gen_content_test.go +++ b/hack/gen_content_test.go @@ -5,8 +5,18 @@ import ( "testing" ) -func Test_Expand_Path(t *testing.T) { - fmt.Println(ExpandPath("election.md", "_tmp/community/committee-code-of-conduct/incident-process.md")) +func Test_Expand_Path_Same_Dir(t *testing.T) { + fmt.Println(ExpandPath("election.md", "/contributors/guide/README.md")) + t.Fail() +} + +func Test_Expand_Path_No_Replace_Needed(t *testing.T) { + fmt.Println(ExpandPath("/contributors/devel/sig-architecture/api_changes.md", "/contributors/guide/README.md")) + t.Fail() +} + +func Test_Expand_Path_Replace_Needed(t *testing.T) { + fmt.Println(ExpandPath("../help/api_changes.md", "/contributors/guide/README.md")) t.Fail() }