Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Graduation criteria for Tekton #157

Closed
afrittoli opened this issue Aug 19, 2022 · 6 comments
Closed

Graduation criteria for Tekton #157

afrittoli opened this issue Aug 19, 2022 · 6 comments
Assignees

Comments

@afrittoli
Copy link
Member

afrittoli commented Aug 19, 2022

Dear TOC,

This issue is about clarifying the graduation criteria for the Tekton project.

The Tekton project has matured significantly over the years, and now has a good number of adopters, including high-profile cloud vendors. As discussed in the latest Tekton Governance and Community meeting on Aug 16, 2022, the Tekton project would like agree with the TOC on the exact criteria for project graduation, so that we may focus our efforts to reach that target.

Introduction

The graduated stage documentation leaves some room for project specific criteria to be defined. On top of that, we would like to clarify how some of the criteria apply to the Tekton project: Tekton is composed of a group of projects and some of the most recent projects have a different level of maturity.

Tekton Projects and their relevance for graduation

This table is work in progress, but I include it here to get an idea of the number of projects in Tekton and which we would indicatively consider relevant for graduation.

Project Name Description Group Relevant for OpenSSF badge and other criteria Comments
pipeline A cloud-native Pipeline resource. Released software Yes The initial and core Tekton project
triggers Event triggering with Tekton! Released software Yes
cli A CLI for interacting with Tekton! Released software Yes User interface
dashboard A dashboard for Tekton! Released software Yes User interface
operator Kubernetes operator to manage installation, update and uninstallation of Tekton projects (pipeline, …) Released software Yes
chains Supply Chain Security in Tekton Pipelines Released add-on software Maybe Yes
catalog Catalog of shared Tasks and Pipelines. Released Resources Yes No
results Long term storage of execution results. Released add-on software No Relatively new component, under development
hub The tekton hub, official Released add-on software and Running Service Published content only https://hub.tekton.dev
resolution Remote resolution of Tekton resources Released add-on software No New experimental project
experimental Experimental Tekton Components Unreleased software No A set of experimental projects, not part of any release
website Tekton Website Published content Published content only Not applicable for OpenSFF badge
community Community documentation for the Tekton project Published content Published content only Not applicable for OpenSFF badge
friends A collection of information from people working on and with Tekton. Published content only Not applicable for OpenSFF badge
plumbing This repo holds configuration for infrastructure used across the tektoncd org 🏗️ Infra No Not part of any release
catlin Catlin is a command-line tool that Lints Tekton Resources and Catalogs. Infra No Used for catalog testing
ahmetb-gen-crd-api-reference-docs API Reference Docs generator for Kubernetes CRDs (used by Knative, Kubeflow and others) Infra No Used to generate API docs
homebrew-tools Homebrew repo for the Tektoncd Infra No Used to generate CLI releases
.github Infra No Pull request templates

Standard acceptance criteria

Have a defined governing body which consists of members from at least 2 different companies.

This is satisfied today, and should not require any further clarification.

Have a documented and publicly accessible description of the project's governance, decision-making, and release processes.

The project governance is documented and publicly accessible.
The decision-making process of the governing board is documented, as well as the community process to decide on new features, known as Tekton Enhancement Proposal or TEP.

The release process documentation needs some refinement.

Have a healthy number of committers from at least two organizations. A committer is defined as someone with the commit bit; i.e., someone who can accept contributions to some or all of the project.

This requirement is clear and met

Explicitly define a project governance and committer process. This is preferably laid out in a GOVERNANCE.md file and references a CONTRIBUTING.md and OWNERS.md file showing the current and emeritus committers.

We have a community wide CONTRIBUTING.md and most projects define their own mode specific version.
We document community processes and contribution ladder.

We have GitHub teams defined as code and OWNERs files for each repo.

Have a public list of project adopters for at least the primary repo (e.g., ADOPTERS.md or logos on the project website).

We have today the Tekton Friends repo, and we are working on a list of adopters and logos for the website.

Note The list of Tekton components used by each adopter may vary, for instance some users may rely on the operator and other may not.

Have achieved and maintained a Core Infrastructure Initiative Best Practices Badge.

Only a subset of Tekton repositories are applicable for the badge.

Other metrics as defined by the applying Project during the application process in cooperation with the TOC.

Examples of project specific metrics from the TOC document are:

Projects that have publicly documented release cycles and plans for Long Term Support ("LTS").

This requirement could be used for Tekton.

Documented release cycles would apply only to a subset of the repos (see table above).
Tekton relies on Kubernetes, and while we have a more frequent release schedule, we depend on Kubernetes decision in terms of LTS. A dedicated working group was formed in the past in the Kubernetes community to discuss LTS, and the final outcome was what is documented today on the top of kubernetes release pages.

Our proposal for Tekton to meet this requirement is to create a similar releases page (one for each relevant project) where we document, for each release:

  • Latest release
  • End of life
  • Patch releases

We already have most of this information publicly available, we will need to decide and include information about "end of life".

Projects that have themselves become platforms for other projects.

This requirement could be used for Tekton.

Jenkins X and Openshift Pipelines are two open source projects that rely on Tekton.

Projects that are able to attract a healthy number of committers on the basis of its production usefulness (not simply 'developer popularity').

This requirement could be used for Tekton.
Several companies that run production services based on Tekton contribute to Tekton upstream.
This could be documented as part of the "adopters" file.

Projects that have several, high-profile or well known end-user implementations.

This requirement could be used for Tekton.
Again we could rely on data from the "adopters" documentation.

Receive a 2/3 supermajority vote from the TOC to move to Graduated stage.

Conclusion

The list of requirements above include all the acceptance criteria as well as all the proposed examples from the TOC graduation process. We would like to learn from the TOC whether this list would be satisfactory, when met, for graduation application for the Tekton project.

@afrittoli
Copy link
Member Author

Security audit: https://cd.foundation/blog/2022/08/26/tekton-security-review-completed/

@afrittoli
Copy link
Member Author

After further consideration, I propose to exclude Catalog from the list of projects that need to comply with the OpenSSF requirements.

The catalog is undergoing a significant restructuring. In a nutshell, we will have a new GitHub org (tektoncd-catalog) which will host individual or small group of tasks in dedicated repos, maintained by the Tekton maintainers - see TEP-0115 for details.

In the new organisation the Tekton community will take direct ownership of a few repos that host common tasks and work on achieving OpenSSF badge for each of them. Given the transition in progress I propose we do not hold the overall Tekton graduation on this, and instead provide regular project updates to the TOC about this work.

@afrittoli
Copy link
Member Author

I mapped the list of requirements to a GitHub project: https://github.com/orgs/tektoncd/projects/24/views/2

@oleg-nenashev
Copy link
Member

After further consideration, I propose to exclude Catalog from the list of projects that need to comply with the OpenSSF requirements. The catalog is undergoing a significant restructuring. In a nutshell, we will have a new GitHub org (tektoncd-catalog) which will host individual or small group of tasks in dedicated repos, maintained by the Tekton maintainers - see TEP-0115 for details.

AFAICT the Catalog is the Tekton infrastructure part and not a deliverable installed by users. I beloeve it is safe to exclude, +1 from me

@afrittoli
Copy link
Member Author

@oleg-nenashev OK to close this one as we agreed on the criteria?

@oleg-nenashev
Copy link
Member

Yes, closing it as discussed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants