-
Notifications
You must be signed in to change notification settings - Fork 93
add lifecycle doc #208
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
Merged
Merged
add lifecycle doc #208
Changes from all commits
Commits
Show all changes
19 commits
Select commit
Hold shift + click to select a range
25a0717
add lifecycle doc
kim-tsao e180583
Update LIFECYCLE.md
thepetk 6902321
Update LIFECYCLE.md
thepetk 608b7fa
Update CONTRIBUTING.md
thepetk e56012f
Update LIFECYCLE.md
thepetk fc56e4c
Update LIFECYCLE.md
thepetk 78a4ab0
Update LIFECYCLE.md
thepetk 7346663
Update LIFECYCLE.md
thepetk 55f96eb
Update LIFECYCLE.md
thepetk 78a3b59
Update LIFECYCLE.md
thepetk 7953385
Update LIFECYCLE.md
thepetk a5b579c
Update LIFECYCLE.md
thepetk 73ef929
Update LIFECYCLE.md
thepetk 7fe044c
Update LIFECYCLE.md
thepetk 841c316
Update maintenance examples
thepetk 2464420
Add section for ownership transfers
thepetk 2e652d8
Fix text format
thepetk 0e1bb3a
Add more info for ownership transfers
thepetk 7463934
Update LIFECYCLE.md
thepetk File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
# Lifecycle Maintenance of Devfile Registry Stacks | ||
|
||
The purpose of this document is to clarify the roles and responsibilities for maintaining the devfile stacks and samples present in the [devfile Community registry](https://github.com/devfile/registry). | ||
Devfiles are intended to be used by developers to build their applications with tooling clients that support the devfile spec. As a result, it’s important that stack providers avoid introducing breaking changes or allowing security vulnerabilities to go unremediated which would result in a degradation of our end users applications. In short, we need to ensure our devfiles are trusted enough to be used. In order to achieve this, there is a level of shared responsibility in all of the roles defined below. | ||
|
||
|
||
| Role | Description | | ||
|:------------------------|:----------------------------------------------------------------------------------------------------------------------------------------| | ||
| `Devfile Team` | The team that is responsible for onboarding vendor devfiles for the community registry. | | ||
| `Stack/Sample Provider` | The person or team that is responsible for developing the devfile stack or sample that is available for sharing on our devfile registry. | | ||
| `Tooling Clients` | These are the tools that use devfiles | | ||
| `End Users` | Application developers that consume devfiles for the purpose of building their own custom applications | | ||
|
||
The following sections describe the steps that can happen in the lifecycle of a devfile. | ||
|
||
## [Onboarding](CONTRIBUTING.md) | ||
When a `Stack Provider` is ready to share their devfile to the public registry, they must follow the steps in the [contributing guide](CONTRIBUTING.md) to ensure there’s basic information that identifies the version, owner, description, etc. of the stack or sample. They must also ensure the stack or sample meets minimal testing requirements against the supported clients. | ||
|
||
| Role | Responsibilities | | ||
|:-----------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ||
| `Stack Provider` | <ul>Follow the [contributing guide](CONTRIBUTING.md) and ensure stack or sample is tested against the supported clients </ul> | | ||
| `Devfile Team` | <ul><li>Review the PR</li><li>Work with `Tooling Clients` to ensure there is sufficient testing</li><li>Ensure the stack has the right contact information, any 2.2.x and above versions contain the support link</li><li>Responsible for giving the stack owner repo permissions to modify the stacks they own</li></ul> | | ||
|
||
|
||
## Maintenance | ||
During the course of its lifecycle, a stack or sample may need to be updated by the `Stack Provider`. Types of updates can include: | ||
|
||
* Changing the devfile content itself where components, commands, resources are modified | ||
* Using a more secure container image(s) | ||
* Implementing a new devfile spec version of the existing devfile e.g. multiple versions of devfiles exist for the same runtime supporting different versions of devtools. | ||
* Implementing new additional devfile to the current stack or sample e.g. two devfiles, devfile.yaml and prod.devfile.yaml, exist for the same runtime supporting both inner and outer loop scenarios. | ||
* Implementing a variation of an existing devfile using a different runtime version e.g. Devfile support for both NodeJS v16 and v18 | ||
|
||
|
||
| Role | Responsibilities | | ||
|:-----------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ||
| `Stack Provider` | <ul><li>Ensure stacks and samples are kept up to date by monitoring the health of their code and container images</li><li>Follow the [Update](https://github.com/devfile/registry/blob/main/CONTRIBUTING.md#updating) instructions </li></ul> | | ||
| `Devfile Team` | <ul><li>Conduct reviews of devfiles in the registries to ensure updates are happening on a regular basis</li><li>Communicate to `Stack Providers` any actions that need to be taken</li></ul> | | ||
| `End User` | <ul>[Report any issues](https://github.com/devfile/registry#reporting-any-issue) with the stacks and samples</ul> | | ||
|
||
|
||
## Deprecation | ||
|
||
When a stack or sample is no longer maintained due to inactivity, lack of timely updates, dependency on end-of-life (EOL) base images, etc it will be marked deprecated. The `Devfile Team` will reach out to the `Stack Provider` and get agreement before proceeding, but if there is no response within a 3-month timeframe, the `Devfile Team` will take action and mark the devfile deprecated. | ||
|
||
* Deprecated devfiles will remain in the community registry for 1 year before it’s removed. | ||
|
||
|
||
| Role | Responsibilities | | ||
|:------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ||
| `Devfile Team` | <ul><li>Communicate with the `Stack Providers` to advise them of the impending deprecation notice if devfile is deemed inactive </li> <li>Label the stack or sample as deprecated</li></ul> | | ||
| `Stack Provider` | <ul>Communicate with the `Devfile Team` and agree to have the deprecation notice set up</ul> | | ||
| `End User`| <ul>Take note of the deprecation notice and do not use the devfile for production</ul> | | ||
|
||
### Ownership Transfers | ||
|
||
When a stack provider is no longer able to maintain their stacks, an ownership transfer should take place. The stack provider is responsible to find their replacement. As it is described in the deprecation rules, if a stack is inactive for a long time - because of a failed ownership transfer - it will be marked deprecated. | ||
|
||
In case someone is interested in adopting a stack which is currently deprecated, they should open an issue [here](https://github.com/devfile/api/issues/new/choose). |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.