A Tekton Enhancement Proposal (TEP) is a way to propose, communicate and coordinate on new efforts for the Tekton project. You can read the full details of the project in TEP-1.
A standardized development process for Tekton is proposed in order to
- provide a common structure and clear checkpoints for proposing changes to Tekton
- ensure that the motivation for a change is clear
- allow for the enumeration stability milestones and stability graduation criteria
- persist project information in a Version Control System (VCS) for future Tekton users and contributors
- support the creation of high value user facing information such
as:
- an overall project development roadmap
- motivation for impactful user facing changes
- ensure community participants are successfully able to drive changes to completion across one or more releases while stakeholders are adequately represented throughout the process
This process is supported by a unit of work called a Tekton Enhancement Proposal (TEP). A TEP attempts to combine aspects of the following:
- feature, and effort tracking document
- a product requirements document
- design document
into one file which is created incrementally in collaboration with one or more Working Groups (WGs).
This process does not block authors from doing early design docs using any means. It does not block authors from sharing those design docs with the community (during Working groups, on Slack, GitHub, ….
This process acts as a requirement when a design docs is ready to be
implemented or integrated in the tektoncd
projects. In other words,
a change that impact other tektoncd
projects or users cannot be
merged if there is no TEP
associated with it.
This TEP process is related to
- the generation of an architectural roadmap
- the fact that the what constitutes a feature is still undefined
- issue management
- the difference between an accepted design and a proposal
- the organization of design proposals
This proposal attempts to place these concerns within a general framework.
See TEP-1 for more details.
The TEP OWNERS
are the main owners of the following projects:
To create a new TEP, use the teps script:
$ ./teps/tools/teps.py new --title "The title of the TEP" --author nick1 --author nick2
The script will allocate a new valid TEP number, set the status to "proposed" and set the start and last updated dates.
Note that the picked number is not "locked" until a PR is created.
The PR title shall be in the format TEP-XXXX: <tep-title>
.
The initial content of the TEP should include the high level description and use cases, but no design. This helps for the TEP to be approved quickly.
TEP should be merged as soon as possible in the proposed
state. As
soon as a general consensus is reached that the TEP, as described
make sense to pursue, the TEP can be merged.
The authors can then add the design and update the missing part in follow-up pull requests which moves the TEP to implementable
.
TEP should be approved by at least two owners from different company. This should prevent a company to force push a TEP (and thus a feature) in the tektoncd projects.
- After a TEP PR has been created, in
the next API working group meeting,
we will try to find 2 qualified assignees to review (from 2 different companies as described above) and will
assign
them to the PR.
- If we cannot find 2 reviewers in the meeting, someone in the meeting will be take the action to find reviewers offline (e.g. over slack or tekton-dev).
- Once reviewers have been assigned, they should give initial feedback on the PR by the next API working group meeting at the latest.
Why don't we use GitHub reviewers instead of assignees? If we want to do that we need to turn off Prow's auto assignment of reviewers; there is no guarantee the auto assigned reviewers are the appropriate reviewers. See discussion.
The TEP PR might fail CI if a TEP number conflict is detected, or if
there is a merge conflict in the TEP table. In case that happens, use
the teps.py renumber
command to refresh your PR:
./teps.py renumber --update-table <path-to-tep-file>
The command will update the TEP in the file name and content with a new available TEP number, it will refresh the TEPs table and it will present a list of git commands that can be used to update the commit.
This is the complete list of Tekton teps:
TEP | Title | Status | Last Updated |
---|---|---|---|
TEP-0001 | Tekton Enhancement Proposal Process | implemented | 2020-06-11 |
TEP-0002 | Custom Tasks | implementable | 2020-07-07 |
TEP-0003 | Tekton Catalog Organization | implemented | 2021-02-09 |
TEP-0004 | Task Results in Final Tasks | implementable | 2020-11-10 |
TEP-0005 | Tekton OCI Bundles | implementable | 2020-08-13 |
TEP-0006 | Tekton Metrics | proposed | 2020-07-13 |
TEP-0007 | Conditions Beta | implementable | 2020-11-02 |
TEP-0008 | Support Knative Service for Triggers EventListener Pod | implementable | 2020-08-25 |
TEP-0009 | Trigger CRD | implementable | 2020-09-08 |
TEP-0010 | Optional Workspaces | implemented | 2020-10-15 |
TEP-0011 | redirecting-step-output-streams | implementable | 2020-11-02 |
TEP-0012 | API Specification | implementable | 2020-08-10 |
TEP-0014 | Step Timeout | implementable | 2020-09-10 |
TEP-0015 | pending-pipeline-run | implementable | 2020-09-10 |
TEP-0016 | Concise Embedded TriggerBindings | implemented | 2020-09-15 |
TEP-0019 | Other Arch Support | proposed | 2020-09-30 |
TEP-0020 | s390x Support | proposed | 2020-09-21 |
TEP-0021 | Tekton Results API | implementable | 2020-10-26 |
TEP-0022 | Triggers - Immutable Input Events | implementable | 2020-09-29 |
TEP-0024 | Embedded TriggerTemplates | implemented | 2020-10-01 |
TEP-0025 | Hermetic Builds | implementable | 2020-09-11 |
TEP-0026 | interceptor-plugins | implementable | 2020-10-08 |
TEP-0027 | HTTPS Connection to Triggers EventListener | implementable | 2020-11-01 |
TEP-0028 | task-exec-status-at-runtime | implementable | 2020-11-02 |
TEP-0029 | step-and-sidecar-workspaces | implementable | 2020-10-02 |
TEP-0030 | workspace-paths | proposed | 2020-10-18 |
TEP-0031 | tekton-bundles-cli | implemented | 2021-03-26 |
TEP-0032 | Tekton Notifications | proposed | 2020-11-18 |
TEP-0033 | Tekton Feature Gates | implementable | 2021-03-23 |
TEP-0035 | document-tekton-position-around-policy-authentication-authorization | implementable | 2020-12-09 |
TEP-0036 | Start Measuring Tekton Pipelines Performance | proposed | 2020-11-20 |
TEP-0037 | Remove gcs-fetcher image |
implementing | 2021-01-27 |
TEP-0038 | Generic Workspaces | proposed | 2020-12-11 |
TEP-0039 | Add Variable retries and retry-count |
proposed | 2021-01-31 |
TEP-0040 | Ignore Step Errors | proposed | 2021-02-04 |
TEP-0041 | Tekton Component Versioning | implementable | 2021-04-26 |
TEP-0042 | taskrun-breakpoint-on-failure | proposed | 2021-03-21 |
TEP-0044 | Decouple Task Composition from Scheduling | proposed | 2021-03-10 |
TEP-0045 | WhenExpressions in Finally Tasks | implementable | 2021-01-28 |
TEP-0046 | Finally tasks execution post pipelinerun timeout | implementable | 2021-04-14 |
TEP-0047 | Pipeline Task Display Name | proposed | 2021-02-10 |
TEP-0049 | Aggregate Status of DAG Tasks | implementable | 2021-04-23 |
TEP-0050 | Ignore Task Failures | proposed | 2021-02-19 |
TEP-0051 | ppc64le Support | proposed | 2021-01-28 |
TEP-0052 | Tekton Results: Automated Run Resource Cleanup | implementable | 2021-03-22 |
TEP-0053 | Nested Triggers | implementable | 2021-04-15 |
TEP-0056 | Pipelines in Pipelines | proposed | 2021-03-08 |
TEP-0057 | Windows support | proposed | 2021-03-18 |
TEP-0058 | Graceful Pipeline Run Termination | implementable | 2021-04-27 |
TEP-0059 | Skipping Strategies | implementable | 2021-05-06 |
TEP-0060 | Remote Resource Resolution | proposed | 2021-05-17 |
TEP-0061 | Allow custom task to be embedded in pipeline | implementable | 2021-04-28 |
TEP-0062 | Catalog Tags and Hub Categories Management | proposed | 2021-03-30 |
TEP-0063 | Workspace Dependencies | proposed | 2021-04-23 |