docs/contributing/REPOSITORY-GUIDELINES.md

78 lines
3.3 KiB
Markdown

# Knative Repository Guidelines
This document outlines a structure for creating and associating code
repositories with the Knative project. It also describes how and when
repositories are removed.
## Core Repositories
Core repositories are considered core components of Knative. They are utilities,
tools, applications, or libraries that form or support the foundation of the
project.
Core repositories are all those located under the
[github.com/knative organization](https://github.com/knative).
### Core Repository Requirements
- Repository must live under github.com/knative/project-name
- Must adopt the Knative Code of Conduct
- All code projects must use the Apache License version 2.0.
- Documentation repositories must use Creative Commons License version 4.0.
- All OWNERS must be members of the Knative community.
- Repository creation must be approved by the Technical Oversight Committee.
## Removing Repositories
As important as it is to add new repositories, it is equally important to prune
repositories when necessary. See [Grounds for removal](#grounds-for-removal).
It is important to the success of Knative that all Knative repositories stay
active, healthy, and aligned with the scope and mission of project.
### Grounds for removal
Core repositories may be removed from the project if they are deemed _inactive_.
Inactive repositories are those that meet any of the following criteria:
- There are no longer any active maintainers for the project, and no
replacements can be found.
- All PRs and issues have gone un-addressed for longer than six months.
- There have been no new commits or other changes in more than a year.
- The contents have been folded into another actively maintained project.
### Procedure for removal
When a repository has been deemed eligible for removal, we take the following
steps:
- A proposal to remove the repository is brought to the attention of the
Technical Oversight Committee through a GitHub issue posted in the
[docs](https://github.com/knative/docs) repo.
- Feedback is encouraged during a Technical Oversight Committee meeting before
any action is taken.
- Once the TOC has approved of the removal, if the repo is not moving to another
actively maintained project:
- The repo description is edited to start with the phrase "[EOL]"
- All open issues and PRs are closed
- All external collaborates 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
- The removal is announced on the knative-dev mailing list
This procedure maintains the complete record of issues, PRs, and other
contributions. It leaves the repository read-only and makes it clear that the
repository is retired and no longer maintained.
---
Contents of this page are adopted from the
[Kubernetes repository guidelines](https://github.com/kubernetes/community/blob/master/github-management/kubernetes-repositories.md),
which is licensed under Apache License 2.0.
Except as otherwise noted, the content of this page is licensed under the
[Creative Commons Attribution 4.0 License](https://creativecommons.org/licenses/by/4.0/),
and code samples are licensed under the
[Apache 2.0 License](https://www.apache.org/licenses/LICENSE-2.0).