toc icon indicating copy to clipboard operation
toc copied to clipboard

[Initiative]: CNCF Project Release Guidelines

Open halcyondude opened this issue 3 months ago • 25 comments

Name

CNCF Project Release Guidelines

Short description

Create guidelines, patterns, and reference implementations to help CNCF projects establish robust, secure, and repeatable release workflows.

Responsible group

TAG Operational Resilience

Does the initiative belong to a subproject?

No

Subproject name

No response

Primary contact

Jeremy Rickard

Additional contacts

Matt Young

Initiative description

This initiative is out for community feedback until Friday Sept 12th doc for review

This initiative will create a comprehensive set of guidelines, patterns, and reference implementations to help CNCF projects establish robust, secure, and repeatable release workflows. This provides a practical framework for projects to align with the CNCF's obligations under regulations like the EU's Cyber Resiliency Act (CRA).

The need for this guidance was first proposed by Karena Angell during the public TOC meeting on August 19th, 2025, in response to recurring needs identified during project due diligence. The outcome will be a valuable toolkit that empowers project maintainers to enhance security, improve transparency, and deliver software to their communities with greater confidence and predictability.

Related Initiatives

Scope and Goals

The scope of this initiative is to research and document guidelines covering the following topics:

  • Versioning and Branching: Establish clear recommendations for versioning schemes (e.g., Semantic Versioning) and sustainable git branching strategies for release management (e.g., release branches, hotfixes).
  • Release Planning and Cadence: Provide patterns for transparent release planning, public roadmapping, and establishing a predictable release cadence that is appropriate for the project and that builds Adopter trust.
  • Changelogs and Release Notes: Document good practices for maintaining clear, human-readable changelogs and generating informative release notes, including the use of automation via standards like Conventional Commits.
  • Automation and Tooling: Identify and provide reference examples for tooling and CI/CD pipelines (e.g., GitHub Actions, GoReleaser) to create automated, repeatable, and reliable release workflows.
  • Security Artifact Integration: This initiative will coordinate with TAG Security to consume the deliverables from a to-be-created, dedicated initiative within TAG Security. That initiative will provide the formal guidance on the generation, signing, and distribution of essential security artifacts (e.g., SBOMs, VEX documents, SLSA attestations, and digital signatures), which will be integrated as a standard part of these release guidelines.

Non-Goals

  • This initiative will not mandate a specific release cadence or frequency for projects.
  • It will not enforce the use of any single, specific tool, instead offering a range of well-documented options.
  • It will not create a strict, pass/fail compliance regime; the goal is to provide a clear framework and path to improvement, not to create a barrier.

Deliverable(s) or exit criteria

The initiative will produce a multi-faceted set of deliverables designed for practical adoption:

  • A published guide on the CNCF website covering the patterns and practices for all topics defined in the Goals section.
  • A collection of templates and reference implementations that projects can directly adopt or adapt to streamline their release workflows. Examples include reusable GitHub Actions and Checklists.
  • A proposal for a Rubric that can be used by the [Initiative]: CNCF Project Capabilities Badging Framework · Issue #1711 for potential future "Release Practices" badge(s).

The initiative will be considered complete when these three deliverables are published and handed off to the relevant groups for maintenance.

Tracking document for meeting and progress

https://notes.cncf.io/lRijaAgCTH6d4aH26RcANA

halcyondude avatar Sep 02 '25 15:09 halcyondude

+1.

With recent focus on the supply chain security, it is often the release process and repeatable release artifacts proving to be hurdle for many projects, in addition to release processes being tied to certain access level, limiting it to only few people, and making them a bottleneck, and causing massive delays propagating the fixes downstream. While it is a non-goal to meddle with release cadence, removing obstacles for releasing fast when needed is crucial, especially with release branches and hotfixes.

For the security artifacts, there is also similar boom in tooling, ways of working and varied expectations what should be available, guidance documentation would be very welcomed to act as an goal to strive for. For example, Metal3.io wants to improve (cough, have some) its security artifact, but each time we go to conference, there is X new tools to do SLSA attestations, SBOM generation etc. CNCF doesn't make kings, but some recommendations would go long way :)

tuminoid avatar Sep 03 '25 07:09 tuminoid

From the TAG OR call today -

  • make sure this initiative and draft is circulated for feedback with CNCF projects at all three maturity levels.
  • make sure the guidelines cover the Due Diligence criteria for high quality releases, i.e. conformance with specification, expectations for contributed sub-projects to a minimum bar for release, regression testing, avoiding bugs.

TheFoxAtWork avatar Sep 03 '25 16:09 TheFoxAtWork

Added a few comments to the doc 🙌

leonardpahlke avatar Sep 03 '25 17:09 leonardpahlke

I added this comment to the doc:

general wondering...:

I am wondering if there are cases where we see a obvious lack in projects that is caused by release management. or in other words.. is this really an issue?

do maintainers need this guidance? do people ask for this? or is this more compliance EU CRA etc.

or do we "just" get to this now

it might be good to do a number of "interviews" with some projects of each level to see how releases are done? Get more context of current state and all..

leonardpahlke avatar Sep 03 '25 18:09 leonardpahlke

/vote

riaankleinhans avatar Sep 04 '25 15:09 riaankleinhans

Vote created

@riaankleinhans has called for a vote on [Initiative]: CNCF Project Release Guidelines (#1849).

The members of the following teams have binding votes:

Team
@cncf/cncf-toc-voters

Non-binding votes are also appreciated as a sign of support!

How to vote

You can cast your vote by reacting to this comment. The following reactions are supported:

In favor Against Abstain
👍 👎 👀

Please note that voting for multiple options is not allowed and those votes won't be counted.

The vote will be open for 5months 29days 19h 12m. It will pass if at least 66% of the users with binding votes vote In favor 👍. Once it's closed, results will be published here as a new comment.

git-vote[bot] avatar Sep 04 '25 15:09 git-vote[bot]

Vote status

So far 9.09% of the users with binding vote are in favor and 0.00% are against (passing threshold: 66%).

Summary

In favor Against Abstain Not voted
1 0 0 10

Binding votes (1)

User Vote Timestamp
TheFoxAtWork In favor 2025-09-04 20:29:09.0 +00:00:00
@dims Pending
@rochaporto Pending
@angellk Pending
@linsun Pending
@chadbeaudin Pending
@kevin-wangzefeng Pending
@chira001 Pending
@kfaseela Pending
@jeremyrickard Pending
@kgamanji Pending

Non-binding votes (1)

User Vote Timestamp
tuminoid In favor 2025-09-04 17:26:23.0 +00:00:00

git-vote[bot] avatar Sep 05 '25 15:09 git-vote[bot]

Vote status

So far 9.09% of the users with binding vote are in favor and 0.00% are against (passing threshold: 66%).

Summary

In favor Against Abstain Not voted
1 0 0 10

Binding votes (1)

User Vote Timestamp
TheFoxAtWork In favor 2025-09-04 20:29:09.0 +00:00:00
@dims Pending
@rochaporto Pending
@angellk Pending
@linsun Pending
@chadbeaudin Pending
@kevin-wangzefeng Pending
@chira001 Pending
@kfaseela Pending
@jeremyrickard Pending
@kgamanji Pending

Non-binding votes (2)

User Vote Timestamp
tuminoid In favor 2025-09-04 17:26:23.0 +00:00:00
manzil-infinity180 In favor 2025-09-05 18:32:07.0 +00:00:00

git-vote[bot] avatar Sep 06 '25 15:09 git-vote[bot]

Vote status

So far 18.18% of the users with binding vote are in favor and 0.00% are against (passing threshold: 66%).

Summary

In favor Against Abstain Not voted
2 0 0 9

Binding votes (2)

User Vote Timestamp
TheFoxAtWork In favor 2025-09-04 20:29:09.0 +00:00:00
kfaseela In favor 2025-09-06 15:30:52.0 +00:00:00
@dims Pending
@rochaporto Pending
@angellk Pending
@linsun Pending
@chadbeaudin Pending
@kevin-wangzefeng Pending
@chira001 Pending
@jeremyrickard Pending
@kgamanji Pending

Non-binding votes (2)

User Vote Timestamp
tuminoid In favor 2025-09-04 17:26:23.0 +00:00:00
manzil-infinity180 In favor 2025-09-05 18:32:07.0 +00:00:00

git-vote[bot] avatar Sep 07 '25 15:09 git-vote[bot]

Vote status

So far 27.27% of the users with binding vote are in favor and 0.00% are against (passing threshold: 66%).

Summary

In favor Against Abstain Not voted
3 0 0 8

Binding votes (3)

User Vote Timestamp
TheFoxAtWork In favor 2025-09-04 20:29:09.0 +00:00:00
dims In favor 2025-09-07 16:08:25.0 +00:00:00
kfaseela In favor 2025-09-06 15:30:52.0 +00:00:00
@rochaporto Pending
@angellk Pending
@linsun Pending
@chadbeaudin Pending
@kevin-wangzefeng Pending
@chira001 Pending
@jeremyrickard Pending
@kgamanji Pending

Non-binding votes (2)

User Vote Timestamp
tuminoid In favor 2025-09-04 17:26:23.0 +00:00:00
manzil-infinity180 In favor 2025-09-05 18:32:07.0 +00:00:00

git-vote[bot] avatar Sep 08 '25 15:09 git-vote[bot]

/check-vote

angellk avatar Sep 09 '25 15:09 angellk

Votes can only be checked once a day.

git-vote[bot] avatar Sep 09 '25 15:09 git-vote[bot]

Vote status

So far 45.45% of the users with binding vote are in favor and 0.00% are against (passing threshold: 66%).

Summary

In favor Against Abstain Not voted
5 0 0 6

Binding votes (5)

User Vote Timestamp
TheFoxAtWork In favor 2025-09-04 20:29:09.0 +00:00:00
angellk In favor 2025-09-08 17:37:28.0 +00:00:00
dims In favor 2025-09-07 16:08:25.0 +00:00:00
jeremyrickard In favor 2025-09-09 15:50:12.0 +00:00:00
kfaseela In favor 2025-09-06 15:30:52.0 +00:00:00
@rochaporto Pending
@linsun Pending
@chadbeaudin Pending
@kevin-wangzefeng Pending
@chira001 Pending
@kgamanji Pending

Non-binding votes (2)

User Vote Timestamp
tuminoid In favor 2025-09-04 17:26:23.0 +00:00:00
manzil-infinity180 In favor 2025-09-05 18:32:07.0 +00:00:00

git-vote[bot] avatar Sep 09 '25 16:09 git-vote[bot]

Vote status

So far 45.45% of the users with binding vote are in favor and 0.00% are against (passing threshold: 66%).

Summary

In favor Against Abstain Not voted
5 0 0 6

Binding votes (5)

User Vote Timestamp
TheFoxAtWork In favor 2025-09-04 20:29:09.0 +00:00:00
angellk In favor 2025-09-08 17:37:28.0 +00:00:00
dims In favor 2025-09-07 16:08:25.0 +00:00:00
jeremyrickard In favor 2025-09-09 15:50:12.0 +00:00:00
kfaseela In favor 2025-09-06 15:30:52.0 +00:00:00
@rochaporto Pending
@linsun Pending
@chadbeaudin Pending
@kevin-wangzefeng Pending
@chira001 Pending
@kgamanji Pending

Non-binding votes (2)

User Vote Timestamp
tuminoid In favor 2025-09-04 17:26:23.0 +00:00:00
manzil-infinity180 In favor 2025-09-05 18:32:07.0 +00:00:00

git-vote[bot] avatar Sep 10 '25 16:09 git-vote[bot]

Vote status

So far 45.45% of the users with binding vote are in favor and 0.00% are against (passing threshold: 66%).

Summary

In favor Against Abstain Not voted
5 0 0 6

Binding votes (5)

User Vote Timestamp
TheFoxAtWork In favor 2025-09-04 20:29:09.0 +00:00:00
angellk In favor 2025-09-08 17:37:28.0 +00:00:00
dims In favor 2025-09-07 16:08:25.0 +00:00:00
jeremyrickard In favor 2025-09-09 15:50:12.0 +00:00:00
kfaseela In favor 2025-09-06 15:30:52.0 +00:00:00
@rochaporto Pending
@linsun Pending
@chadbeaudin Pending
@kevin-wangzefeng Pending
@chira001 Pending
@kgamanji Pending

Non-binding votes (2)

User Vote Timestamp
tuminoid In favor 2025-09-04 17:26:23.0 +00:00:00
manzil-infinity180 In favor 2025-09-05 18:32:07.0 +00:00:00

git-vote[bot] avatar Sep 11 '25 16:09 git-vote[bot]

Vote status

So far 54.55% of the users with binding vote are in favor and 0.00% are against (passing threshold: 66%).

Summary

In favor Against Abstain Not voted
6 0 0 5

Binding votes (6)

User Vote Timestamp
TheFoxAtWork In favor 2025-09-04 20:29:09.0 +00:00:00
angellk In favor 2025-09-08 17:37:28.0 +00:00:00
chadbeaudin In favor 2025-09-11 18:48:12.0 +00:00:00
dims In favor 2025-09-07 16:08:25.0 +00:00:00
jeremyrickard In favor 2025-09-09 15:50:12.0 +00:00:00
kfaseela In favor 2025-09-06 15:30:52.0 +00:00:00
@rochaporto Pending
@linsun Pending
@kevin-wangzefeng Pending
@chira001 Pending
@kgamanji Pending

Non-binding votes (2)

User Vote Timestamp
tuminoid In favor 2025-09-04 17:26:23.0 +00:00:00
manzil-infinity180 In favor 2025-09-05 18:32:07.0 +00:00:00

git-vote[bot] avatar Sep 12 '25 16:09 git-vote[bot]

Vote status

So far 54.55% of the users with binding vote are in favor and 0.00% are against (passing threshold: 66%).

Summary

In favor Against Abstain Not voted
6 0 0 5

Binding votes (6)

User Vote Timestamp
TheFoxAtWork In favor 2025-09-04 20:29:09.0 +00:00:00
angellk In favor 2025-09-08 17:37:28.0 +00:00:00
chadbeaudin In favor 2025-09-11 18:48:12.0 +00:00:00
dims In favor 2025-09-07 16:08:25.0 +00:00:00
jeremyrickard In favor 2025-09-09 15:50:12.0 +00:00:00
kfaseela In favor 2025-09-06 15:30:52.0 +00:00:00
@rochaporto Pending
@linsun Pending
@kevin-wangzefeng Pending
@chira001 Pending
@kgamanji Pending

Non-binding votes (2)

User Vote Timestamp
tuminoid In favor 2025-09-04 17:26:23.0 +00:00:00
manzil-infinity180 In favor 2025-09-05 18:32:07.0 +00:00:00

git-vote[bot] avatar Sep 13 '25 17:09 git-vote[bot]

Vote status

So far 54.55% of the users with binding vote are in favor and 0.00% are against (passing threshold: 66%).

Summary

In favor Against Abstain Not voted
6 0 0 5

Binding votes (6)

User Vote Timestamp
TheFoxAtWork In favor 2025-09-04 20:29:09.0 +00:00:00
angellk In favor 2025-09-08 17:37:28.0 +00:00:00
chadbeaudin In favor 2025-09-11 18:48:12.0 +00:00:00
dims In favor 2025-09-07 16:08:25.0 +00:00:00
jeremyrickard In favor 2025-09-09 15:50:12.0 +00:00:00
kfaseela In favor 2025-09-06 15:30:52.0 +00:00:00
@rochaporto Pending
@linsun Pending
@kevin-wangzefeng Pending
@chira001 Pending
@kgamanji Pending

Non-binding votes (2)

User Vote Timestamp
tuminoid In favor 2025-09-04 17:26:23.0 +00:00:00
manzil-infinity180 In favor 2025-09-05 18:32:07.0 +00:00:00

git-vote[bot] avatar Sep 14 '25 17:09 git-vote[bot]

Vote status

So far 63.64% of the users with binding vote are in favor and 0.00% are against (passing threshold: 66%).

Summary

In favor Against Abstain Not voted
7 0 0 4

Binding votes (7)

User Vote Timestamp
TheFoxAtWork In favor 2025-09-04 20:29:09.0 +00:00:00
angellk In favor 2025-09-08 17:37:28.0 +00:00:00
chadbeaudin In favor 2025-09-11 18:48:12.0 +00:00:00
chira001 In favor 2025-09-15 15:24:58.0 +00:00:00
dims In favor 2025-09-07 16:08:25.0 +00:00:00
jeremyrickard In favor 2025-09-09 15:50:12.0 +00:00:00
kfaseela In favor 2025-09-06 15:30:52.0 +00:00:00
@rochaporto Pending
@linsun Pending
@kevin-wangzefeng Pending
@kgamanji Pending

Non-binding votes (2)

User Vote Timestamp
tuminoid In favor 2025-09-04 17:26:23.0 +00:00:00
manzil-infinity180 In favor 2025-09-05 18:32:07.0 +00:00:00

git-vote[bot] avatar Sep 15 '25 17:09 git-vote[bot]

Vote status

So far 81.82% of the users with binding vote are in favor and 0.00% are against (passing threshold: 66%).

Summary

In favor Against Abstain Not voted
9 0 0 2

Binding votes (9)

User Vote Timestamp
TheFoxAtWork In favor 2025-09-04 20:29:09.0 +00:00:00
angellk In favor 2025-09-08 17:37:28.0 +00:00:00
chadbeaudin In favor 2025-09-11 18:48:12.0 +00:00:00
chira001 In favor 2025-09-15 15:24:58.0 +00:00:00
dims In favor 2025-09-07 16:08:25.0 +00:00:00
jeremyrickard In favor 2025-09-09 15:50:12.0 +00:00:00
kevin-wangzefeng In favor 2025-09-16 16:00:47.0 +00:00:00
kfaseela In favor 2025-09-06 15:30:52.0 +00:00:00
kgamanji In favor 2025-09-16 15:09:31.0 +00:00:00
@rochaporto Pending
@linsun Pending

Non-binding votes (2)

User Vote Timestamp
tuminoid In favor 2025-09-04 17:26:23.0 +00:00:00
manzil-infinity180 In favor 2025-09-05 18:32:07.0 +00:00:00

git-vote[bot] avatar Sep 16 '25 17:09 git-vote[bot]

/check-vote

riaankleinhans avatar Sep 16 '25 18:09 riaankleinhans

Votes can only be checked once a day.

git-vote[bot] avatar Sep 16 '25 18:09 git-vote[bot]

Vote passed, initiative approved @halcyondude

riaankleinhans avatar Sep 16 '25 19:09 riaankleinhans

Vote closed

The vote passed! 🎉

90.91% of the users with binding vote were in favor and 0.00% were against (passing threshold: 66%).

Summary

In favor Against Abstain Not voted
10 0 0 1

Binding votes (10)

User Vote Timestamp
@TheFoxAtWork In favor 2025-09-04 20:29:09.0 +00:00:00
@angellk In favor 2025-09-08 17:37:28.0 +00:00:00
@chadbeaudin In favor 2025-09-11 18:48:12.0 +00:00:00
@chira001 In favor 2025-09-15 15:24:58.0 +00:00:00
@dims In favor 2025-09-07 16:08:25.0 +00:00:00
@jeremyrickard In favor 2025-09-09 15:50:12.0 +00:00:00
@kevin-wangzefeng In favor 2025-09-16 16:00:47.0 +00:00:00
@kfaseela In favor 2025-09-06 15:30:52.0 +00:00:00
@kgamanji In favor 2025-09-16 15:09:31.0 +00:00:00
@rochaporto In favor 2025-09-16 17:56:20.0 +00:00:00

Non-binding votes (2)

User Vote Timestamp
@tuminoid In favor 2025-09-04 17:26:23.0 +00:00:00
@manzil-infinity180 In favor 2025-09-05 18:32:07.0 +00:00:00

git-vote[bot] avatar Sep 17 '25 08:09 git-vote[bot]

/assign @krol3 /assign @palnabarun

mfahlandt avatar Nov 06 '25 20:11 mfahlandt