From a2082885979a8990dbbf896ad38d8f19b4e1fe24 Mon Sep 17 00:00:00 2001 From: Nikhita Raghunath Date: Tue, 4 Jun 2019 09:04:25 +0530 Subject: Update who must approve repo creation requests Current state of docs: - https://github.com/kubernetes/community/blob/master/committee-steering/governance/sig-governance.md#subproject-creation mentions that repos _may_ be created under k-sigs by a lazy consensus of subproject owners. - Some charters like https://github.com/kubernetes/community/blob/master/sig-api-machinery/charter.md#deviations-from-sig-governance have explicit processes setup for who can approve repo creation requests. - https://github.com/kubernetes/community/blob/master/github-management/kubernetes-repositories.md#rules-for-new-repositories says that repo creation requests must be approved by lazy consensus of SIG membership. Current state of how we do things: - We create repos if the SIG leads have approved the repo creation request. - We don't require a lazy consensus thread on the mailing list, just a publicly linkable written decision. This commit reconciles the docs with the current state of how we do this. Note that the wording says "process spelled out in the SIG charter" because SIG charters _may_ also define a complete process on how they'd like to handle this, not just the list of people who can approve repo creation requests. --- github-management/kubernetes-repositories.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'github-management') diff --git a/github-management/kubernetes-repositories.md b/github-management/kubernetes-repositories.md index 803d9b1c..99dae455 100644 --- a/github-management/kubernetes-repositories.md +++ b/github-management/kubernetes-repositories.md @@ -77,7 +77,8 @@ repo page.) repositories must use the Creative Commons License version 4.0. * Must adopt the CNCF CLA bot, merge bot and Kubernetes PR commands/bots. * All OWNERS of the project must also be active SIG members. - * SIG membership must vote using lazy consensus to create a new repository + * Must be approved by the process spelled out in the SIG's charter and a + publicly linkable written decision should be available for the same. * SIG must already have identified all of their existing subprojects and code, with valid OWNERS files, in [`sigs.yaml`](https://github.com/kubernetes/community/blob/master/sigs.yaml) -- cgit v1.2.3 From 61fb3d431d87ec38ca47842293e92770df374000 Mon Sep 17 00:00:00 2001 From: Nikhita Raghunath Date: Fri, 7 Jun 2019 15:04:11 +0530 Subject: Move process for creating/removing repos to org owners guide The process is only meant for org admins so move to that doc and decouple the process from the rules and guidelines for repos, which are meant for everyone. --- github-management/kubernetes-repositories.md | 98 ---------------------------- github-management/org-owners-guide.md | 92 ++++++++++++++++++++++++++ 2 files changed, 92 insertions(+), 98 deletions(-) (limited to 'github-management') diff --git a/github-management/kubernetes-repositories.md b/github-management/kubernetes-repositories.md index 803d9b1c..30e2ca5a 100644 --- a/github-management/kubernetes-repositories.md +++ b/github-management/kubernetes-repositories.md @@ -22,12 +22,8 @@ against the kubernetes/org repo. - [Core Repositories](#core-repositories) * [Goals](#goals-2) * [Rules](#rules-1) -- [Creating Repositories](#creating-repositories) - * [Non-staging repositories](#non-staging-repositories) - * [Staging repositories](#staging-repositories) - [Removing Repositories](#removing-repositories) * [Grounds for removal](#grounds-for-removal) - * [Procedure for removal](#procedure-for-removal) - [FAQ](#faq) ## Associated Repositories @@ -137,64 +133,6 @@ ecosystem. Carries the endorsement of the Kubernetes community. Kubernetes steering committee elections. in the Kubernetes community * Repository must be approved by SIG-Architecture -## Creating Repositories - -### Non-staging repositories - -For non-staging repositories, suggestions on how to create -a new repository are described below. - - * Ensure that the repo creation request has appropriate approvals - as per the rules mentioned above. - * Using the organization and repository name mentioned in the repo creation - request, create a new repo with default GitHub settings. - * Set the description as per the repo creation request. - * Clone the newly created repo locally. - * Copy the latest contents of [kubernetes-template-project] and create an - initial commit with the message *Initial commit from the - kubernetes-template-project*. - * Make the following changes in the next commit: - * If the request references a GitHub team to be listed in the `OWNERS` - file, update the `OWNERS_ALIASES` file to remove the steering-committee - alias and add a new alias for the team with members populated as per the - GitHub team. If the request does not reference a GitHub team, remove the - `OWNERS_ALIASES` file. - * Update the OWNERS file as per the request. If the repo is a - [SIG Repository], add a labels entry for the SIG that the repo belongs to. - * Update the `SECURITY_CONTACTS` file as per the request. Note that aliases - cannot be used in this case so expand the GitHub team, if specified. - * Create a new commit with the message *Update OWNERS, OWNERS_ALIASES and - SECURITY_CONTACTS*. - * Push the new commits directly to the master branch. - * If the repo is a [SIG Repository], add a new topic of the form - `k8s-sig-` using the *Manage Topics* option. - * Create a PR against [kubernetes/org] to add teams as per the [team guidance] - for alloting repo admin and write access. - * Once the above PR is merged and the postsubmit has run, the new GitHub teams - will be created. In the *Collaborators and Teams* section in Settings, - assign the new teams appropriate access to the repo. - * Ask the author of the repo creation request to add the repo - as a part of a subproject in [`sigs.yaml`](/sigs.yaml). - -### Staging Repositories - -If the repository is a staging repository, there are some deviations -from the above procedure: - - * The repository **must** have an initial empty commit. The contents of the - repo will be populated from staging by the [publishing-bot]. - * Grant the [@kubernetes/stage-bots] team admin access to the repo. - * Setup branch protection and enable access to the - `stage-bots` team by adding the repo in - [`prow/config.yaml`](https://git.k8s.io/test-infra/prow/config.yaml). See - [kubernetes/test-infra#9292](https://github.com/kubernetes/test-infra/pull/9292) - for an example. - * Once the repo has been created, add the repo to - [`hack/fetch-all-latest-and-push.sh`](https://git.k8s.io/publishing-bot/hack/fetch-all-latest-and-push.sh) - in the [publishing-bot] repo. - - - ## Removing Repositories As important as it is to add new repositories, it is equally important to prune @@ -223,31 +161,6 @@ Associated repositories are much more loosely associated with the Kubernetes project and are generally not subject to removal, except under exceptional circumstances (e.g. a code of conduct violation). -### Procedure for removal - -When a repository has been deemed eligible for removal, we take the following -steps: - - * Ownership of the repo is transferred to the [kubernetes-retired] GitHub - organization - * The repo description is edited to start with the phrase "[EOL]" - * All open issues and PRs are closed - * All external collaborators are removed - * All webhooks, apps, integrations or services are removed - * GitHub Pages are disabled - * The repo is marked as archived using [GitHub's archive feature] - * Remove all teams associated with the repo - * Remove the repo from [sigs.yaml] - * The removal is announced on the kubernetes-dev mailing list and community - meeting - -This maintains the complete record of issues, PRs and other contributions, -leaves the repository read-only, and makes it clear that the repository should -be considered retired and unmaintained. - -In case a repository has only the initial commits adding template files -and no additional activity, it can be completely deleted. - ## FAQ **My project is currently in kubernetes-incubator, what is going to happen to @@ -306,14 +219,3 @@ owned by the authors of Kubernetes. Note that you should _never_ modify or remove a third party's copyright notice if you are not authorized by them to do so. - -[GitHub's archive feature]: -https://help.github.com/articles/archiving-a-github-repository/ -[kubernetes-retired]: https://github.com/kubernetes-retired -[kubernetes-template-project]: https://github.com/kubernetes/kubernetes-template-project -[kubernetes/org]: https://github.com/kubernetes/org -[team guidance]: /github-management/org-owners-guide.md#team-guidance -[SIG Repository]: #sig-repositories -[publishing-bot]: https://github.com/kubernetes/publishing-bot -[@kubernetes/stage-bots]: https://github.com/orgs/kubernetes/teams/stage-bots -[sigs.yaml]: /sigs.yaml diff --git a/github-management/org-owners-guide.md b/github-management/org-owners-guide.md index 476c71f5..adc8f57c 100644 --- a/github-management/org-owners-guide.md +++ b/github-management/org-owners-guide.md @@ -137,7 +137,99 @@ checking on all contributions. For more details on those please see the Project](https://github.com/kubernetes/kubernetes-template-project), and the [Repository Guidelines](kubernetes-repositories.md) +The process for creating and removing new repositories is detailed below. + +### Creating Repositories + +#### Non-staging repositories + +For non-staging repositories, suggestions on how to create +a new repository are described below. + + * Ensure that the repo creation request has appropriate approvals + as per the rules mentioned above. + * Using the organization and repository name mentioned in the repo creation + request, create a new repo with default GitHub settings. + * Set the description as per the repo creation request. + * Clone the newly created repo locally. + * Copy the latest contents of [kubernetes-template-project] and create an + initial commit with the message *Initial commit from the + kubernetes-template-project*. + * Make the following changes in the next commit: + * If the request references a GitHub team to be listed in the `OWNERS` + file, update the `OWNERS_ALIASES` file to remove the steering-committee + alias and add a new alias for the team with members populated as per the + GitHub team. If the request does not reference a GitHub team, remove the + `OWNERS_ALIASES` file. + * Update the OWNERS file as per the request. If the repo is a + [SIG Repository], add a labels entry for the SIG that the repo belongs to. + * Update the `SECURITY_CONTACTS` file as per the request. Note that aliases + cannot be used in this case so expand the GitHub team, if specified. + * Create a new commit with the message *Update OWNERS, OWNERS_ALIASES and + SECURITY_CONTACTS*. + * Push the new commits directly to the master branch. + * If the repo is a [SIG Repository], add a new topic of the form + `k8s-sig-` using the *Manage Topics* option. + * Create a PR against [kubernetes/org] to add teams as per the [team guidance](#team-guidance) + for alloting repo admin and write access. + * Once the above PR is merged and the postsubmit has run, the new GitHub teams + will be created. In the *Collaborators and Teams* section in Settings, + assign the new teams appropriate access to the repo. + * Ask the author of the repo creation request to add the repo + as a part of a subproject in [`sigs.yaml`](/sigs.yaml). + +#### Staging Repositories + +If the repository is a staging repository, there are some deviations +from the above procedure: + + * The repository **must** have an initial empty commit. The contents of the + repo will be populated from staging by the [publishing-bot]. + * Grant the [@kubernetes/stage-bots] team admin access to the repo. + * Setup branch protection and enable access to the + `stage-bots` team by adding the repo in + [`prow/config.yaml`](https://git.k8s.io/test-infra/prow/config.yaml). See + [kubernetes/test-infra#9292](https://github.com/kubernetes/test-infra/pull/9292) + for an example. + * Once the repo has been created, add the repo to + [`hack/fetch-all-latest-and-push.sh`](https://git.k8s.io/publishing-bot/hack/fetch-all-latest-and-push.sh) + in the [publishing-bot] repo. + + + +### Removing Repositories + +When a repository has been deemed eligible for removal, we take the following +steps: + + * Ownership of the repo is transferred to the [kubernetes-retired] GitHub + organization + * The repo description is edited to start with the phrase "[EOL]" + * All open issues and PRs are closed + * All external collaborators are removed + * All webhooks, apps, integrations or services are removed + * GitHub Pages are disabled + * The repo is marked as archived using [GitHub's archive feature] + * Remove all teams associated with the repo + * Remove the repo from [sigs.yaml] + * The removal is announced on the kubernetes-dev mailing list and community + meeting + +This maintains the complete record of issues, PRs and other contributions, +leaves the repository read-only, and makes it clear that the repository should +be considered retired and unmaintained. + +In case a repository has only the initial commits adding template files +and no additional activity, it can be completely deleted. + [GitHub Administration Team]: /github-management/README.md#github-administration-team +[GitHub's archive feature]: +https://help.github.com/articles/archiving-a-github-repository/ [@kubernetes/owners]: https://github.com/orgs/kubernetes/teams/owners [kubernetes/org]: https://github.com/kubernetes/org +[publishing-bot]: https://github.com/kubernetes/publishing-bot +[@kubernetes/stage-bots]: https://github.com/orgs/kubernetes/teams/stage-bots +[kubernetes-retired]: https://github.com/kubernetes-retired +[kubernetes-template-project]: https://github.com/kubernetes/kubernetes-template-project +[SIG Repository]: #sig-repositories -- cgit v1.2.3 From 3ddc903f53127ebc85d8c738f52326e7066ceb0f Mon Sep 17 00:00:00 2001 From: Nikhita Raghunath Date: Fri, 7 Jun 2019 15:16:39 +0530 Subject: Update repo creation process to use GitHub repo templates Ref: https://github.blog/2019-06-06-generate-new-repositories-with-repository-templates/ --- github-management/org-owners-guide.md | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) (limited to 'github-management') diff --git a/github-management/org-owners-guide.md b/github-management/org-owners-guide.md index adc8f57c..eec4c38c 100644 --- a/github-management/org-owners-guide.md +++ b/github-management/org-owners-guide.md @@ -41,7 +41,8 @@ managed by the Kubernetes project or use a different name. Due to licensing and CLA issues, prior to transferring software into a Kubernetes managed organization there is some due diligence that needs to occur. -Please contact the steering committee and CNCF prior to moving any code in. +If needed, please contact the steering committee and CNCF prior to moving any +code in. It is easier to start new code in a Kubernetes organization than it is to transfer in existing code. @@ -149,25 +150,23 @@ a new repository are described below. * Ensure that the repo creation request has appropriate approvals as per the rules mentioned above. * Using the organization and repository name mentioned in the repo creation - request, create a new repo with default GitHub settings. - * Set the description as per the repo creation request. + request, create a new repo with: + * `Repository Template` as `kubernetes/kubernetes-template-project` + * `Description` as mentioned in the repo creation request * Clone the newly created repo locally. - * Copy the latest contents of [kubernetes-template-project] and create an - initial commit with the message *Initial commit from the - kubernetes-template-project*. - * Make the following changes in the next commit: - * If the request references a GitHub team to be listed in the `OWNERS` + * Make the following changes: + * If the request references a team to be listed in the `OWNERS` file, update the `OWNERS_ALIASES` file to remove the steering-committee alias and add a new alias for the team with members populated as per the - GitHub team. If the request does not reference a GitHub team, remove the + GitHub team. If the request does not reference a team, remove the `OWNERS_ALIASES` file. * Update the OWNERS file as per the request. If the repo is a [SIG Repository], add a labels entry for the SIG that the repo belongs to. * Update the `SECURITY_CONTACTS` file as per the request. Note that aliases - cannot be used in this case so expand the GitHub team, if specified. + cannot be used in this case so expand the team, if specified. * Create a new commit with the message *Update OWNERS, OWNERS_ALIASES and SECURITY_CONTACTS*. - * Push the new commits directly to the master branch. + * Push the new commit directly to the master branch. * If the repo is a [SIG Repository], add a new topic of the form `k8s-sig-` using the *Manage Topics* option. * Create a PR against [kubernetes/org] to add teams as per the [team guidance](#team-guidance) @@ -209,8 +208,8 @@ steps: * All external collaborators are removed * All webhooks, apps, integrations or services are removed * GitHub Pages are disabled - * The repo is marked as archived using [GitHub's archive feature] * Remove all teams associated with the repo + * The repo is marked as archived using [GitHub's archive feature] * Remove the repo from [sigs.yaml] * The removal is announced on the kubernetes-dev mailing list and community meeting @@ -232,4 +231,4 @@ https://help.github.com/articles/archiving-a-github-repository/ [@kubernetes/stage-bots]: https://github.com/orgs/kubernetes/teams/stage-bots [kubernetes-retired]: https://github.com/kubernetes-retired [kubernetes-template-project]: https://github.com/kubernetes/kubernetes-template-project -[SIG Repository]: #sig-repositories +[SIG Repository]: /github-management/kubernetes-repositories.md##sig-repositories -- cgit v1.2.3 From 032df08fc5fa25313ffe0f945566159a60d25315 Mon Sep 17 00:00:00 2001 From: Aaron Crickenberger Date: Mon, 10 Jun 2019 10:55:47 -0700 Subject: Add mrbobbytables to github admins team calebamiles has graciously agreed to step down to make room --- github-management/OWNERS | 1 - github-management/README.md | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) (limited to 'github-management') diff --git a/github-management/OWNERS b/github-management/OWNERS index a21d3f76..7bb5cee1 100644 --- a/github-management/OWNERS +++ b/github-management/OWNERS @@ -5,7 +5,6 @@ approvers: - spiffxp reviewers: - - calebamiles - fejta - idvoretskyi - justaugustus diff --git a/github-management/README.md b/github-management/README.md index 1f869162..7620b89b 100644 --- a/github-management/README.md +++ b/github-management/README.md @@ -28,7 +28,7 @@ various tasks. This team (**[@kubernetes/owners](https://github.com/orgs/kubernetes/teams/owners)**) is as follows: * Aaron Crickenberger (**[@spiffxp](https://github.com/spiffxp)**, US Pacific) -* Caleb Miles (**[@calebamiles](https://github.com/calebamiles)**, US Pacific) +* Bob Killen (**[@mrbobbytables](https://github.com/mrbobbytables)**, US Eastern) * Christoph Blecker (**[@cblecker](https://github.com/cblecker)**, CA Pacific) * Erick Fejta (**[@fejta](https://github.com/fejta)**, US Pacific) * Nikhita Raghunath (**[@nikhita](https://github.com/nikhita)**, Indian Standard Time) -- cgit v1.2.3 From 8c3e3bfa3a95eea50a107633b0d8b511ed8973d8 Mon Sep 17 00:00:00 2001 From: Bob Killen Date: Wed, 19 Jun 2019 20:42:06 -0400 Subject: Replace mrbobbytables with nzoueidi as New Membership Coordinator. --- github-management/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'github-management') diff --git a/github-management/README.md b/github-management/README.md index 7620b89b..1799bd82 100644 --- a/github-management/README.md +++ b/github-management/README.md @@ -54,7 +54,7 @@ community members, guiding them through the GitHub organization. Our current coordinators are: -* Bob Killen (**[@mrbobbytables](https://github.com/mrbobbytables)**, US Eastern) +* Naeil Ezzoueidi (**[@nzoueidi](https://github.com/nzoueidi)**, Central European) * Stephen Augustus (**[@justaugustus](https://github.com/justaugustus)**, US Eastern) ## Project Owned Organizations -- cgit v1.2.3 From 2c2ee365e86a0b6b0466d6266e3547cc2559c1da Mon Sep 17 00:00:00 2001 From: Nikhita Raghunath Date: Wed, 26 Jun 2019 17:36:32 +0530 Subject: github: update instructions for creating repos from template repo Using the current instructions, we can only create repos using the template repo if the template repo is in the same org as the new repo. If template repo is _not_ in the same org, we can still use it by visiting the template repo page and clicking on "Use this template". --- github-management/org-owners-guide.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'github-management') diff --git a/github-management/org-owners-guide.md b/github-management/org-owners-guide.md index eec4c38c..272c7cea 100644 --- a/github-management/org-owners-guide.md +++ b/github-management/org-owners-guide.md @@ -151,7 +151,7 @@ a new repository are described below. as per the rules mentioned above. * Using the organization and repository name mentioned in the repo creation request, create a new repo with: - * `Repository Template` as `kubernetes/kubernetes-template-project` + * The [kubernetes-template-project] repo as the [template repo] * `Description` as mentioned in the repo creation request * Clone the newly created repo locally. * Make the following changes: @@ -232,3 +232,4 @@ https://help.github.com/articles/archiving-a-github-repository/ [kubernetes-retired]: https://github.com/kubernetes-retired [kubernetes-template-project]: https://github.com/kubernetes/kubernetes-template-project [SIG Repository]: /github-management/kubernetes-repositories.md##sig-repositories +[template repo]: https://help.github.com/en/articles/creating-a-repository-from-a-template -- cgit v1.2.3 From 74373ba6b7db549ab472e31a7a4c2cd651656b82 Mon Sep 17 00:00:00 2001 From: Nikhita Raghunath Date: Fri, 26 Jul 2019 15:03:25 +0530 Subject: Document private mailing list for GitHub Admin team --- github-management/opening-a-request.md | 3 +++ 1 file changed, 3 insertions(+) (limited to 'github-management') diff --git a/github-management/opening-a-request.md b/github-management/opening-a-request.md index 90c136a9..3ad5ca15 100644 --- a/github-management/opening-a-request.md +++ b/github-management/opening-a-request.md @@ -31,6 +31,9 @@ Please open an issue against the [kubernetes/test-infra] repository describing your issue. If your request is urgent, please escalate to the [test-infra on-call] or reach out to `#testing-ops` on Slack. +## Sensitive issues + +To report any sensitive information, please email the private github@kubernetes.io list. [kubernetes/org]: https://github.com/kubernetes/org/issues [@kubernetes/owners]: https://github.com/orgs/kubernetes/teams/owners -- cgit v1.2.3