-
Notifications
You must be signed in to change notification settings - Fork 39
Proposal to change release feature planning #81
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
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
# Improving the Dapr Feature Planning | ||
|
||
* Author(s): Whit Waldo (@whitwaldo) | ||
* State: Proposed | ||
* Date: 4/12/2025 | ||
|
||
## Overview | ||
This proposal aims to formalize a new approach to planning releases, enhancing feature eligibility criteria, and | ||
bringing transparency, clarity and definitiveness to the current process. | ||
|
||
### Current Process | ||
After releasing a new Dapr version, maintainers and contributors meet weekly to discuss high-level goals for the | ||
next release. We review what happened in the previous release interval, identify improvement opportunities (process, | ||
tooling, new capabilities) and draft proposals reflecting these discussions over the following weeks. | ||
|
||
These proposals are debated and iterated upon until consensus is reached. Developers and assigned tasks, | ||
POCs are built, tests are added, documentation is produced, SDKs are updated, and features may be highlighted in a | ||
community call before being released. | ||
|
||
### Shortcomings | ||
The current process has several shortcomings: | ||
- **Pending Proposals:** Many proposals in dapr/proposals have been iterated on for months or years by numerous | ||
contributors but remain inactive due to lack of advocacy. Despite broad community interest across a long period, these | ||
proposals are often overlooked. | ||
- **New Proposals:** In contrast, new proposals benefit from only a week of feedback from a limited number | ||
of contributors. This rushed process often results in features that may not align with larger project goals or | ||
provide lasting positive impact. | ||
- **Artificial Urgency:** Setting tentative release dates upfront and selecting priorities before designing them creates | ||
unnecessary urgency. This rush to consensus risks half-baked ideas being implemented and potentially impact | ||
credibility around release timelines as issues that might have been caught during the design process are identified | ||
and iterated on on-the-fly in a rush to get the feature completed. | ||
|
||
The current release cycle structure is ineffective as it forces us to race potentially incomplete ideas out the door. | ||
|
||
## Proposal | ||
I would like to propose several changes to our release process starting immediately. | ||
|
||
### Develop Proposals Between Releases | ||
We launched v1.15 on February 26th. Each of the current goals of this release span proposals introduced largely around | ||
and since then: | ||
|
||
| Proposal | Introduced At | Proposed By | | ||
| -- |---------------------------------------------------| -- | | ||
|Actors: Bi-directional streaming | February 17 | Josh van Leeuwen | | ||
| Actors: PubSub | February 26, alternative proposal raised March 25 | Josh van Leeuwen, alternative by Whit Waldo | | ||
| Multi-App Workflows | March 24 | Josh van Leeuwen | | ||
| Event Streaming | March 24 | Cassie Coyle | | ||
| Workflow Re-runs | March 25, alternative proposal raised April 6 | Whit Waldo, alternative by Josh van Leeuwen | | ||
|
||
Despite being raised no more than a couple of weeks ago, many of these proposals have already gained significant traction. | ||
However, implementing well-designed flagship features based on a three-week ideation and design timeline is unrealistic | ||
and isn't the process taken with larger software groups. It shouldn't be done here either. Furthermost, most of these | ||
issues have minimal community presence outside of the most-active contributors themselves. | ||
|
||
#### Proposed Changes | ||
Now is the time for brainstorming big-picture ideas when contributors take breaks from coding or casual discussions | ||
spark new inspiration. | ||
|
||
Discord frequently features requests for smaller features that could collectively form larger improvements both in terms | ||
of quality of life and feature additions. Even if these authors don't write original proposals themselves, we should document | ||
these ideas (in a place the stalebot won't hide them) and solicit community feedback to gauge traction. Regular community | ||
and meteor calls should highlight these new ideas with balanced commentary from hosts and direct viewers to relevant | ||
issues so they can chime in themselves. | ||
|
||
Designing large-scale features without time pressure soliciting feedback from less-invested contributors can help ensure | ||
that new capabilities are well-thought-out and either fit into our larger vision or require further refinement. | ||
|
||
### Release Prioritization | ||
Currently, we ideate high-level goals on maintainer and design calls following a release and wait for proposals to be | ||
submitted, and then largely just move forward with them. | ||
|
||
#### Proposed Changes | ||
I propose a substantial change to our process. Barring hotfixes for intermediate patch releases, only ideas backed by an | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I like this idea, just feeling that the "two months" period should have some level of justification for being that amount of time and not another There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. While we aim for four releases a year, we've been hitting three releases a year, meaning each release is taking on average 4 months or so to complete. So I just picked 2 months as that's half of a 4-month release cycle and feels like a sufficiently long enough period for a "last-minute" idea to start baking and getting public feedback, project alignment, design iteration, etc. |
||
existing proposal (at least two months old) should be considered for a new release. | ||
|
||
We aim for four major releases a year, though we're more on track for three (one release every four months). By | ||
requiring proposals to exist for at least two months, they will have been considered for at least half of the previous | ||
release cycle, especially during the final stages of the release when unexpected issues tend to crop up while trying | ||
to get the release completed. | ||
|
||
This longer proposal period means release prioritization meetings can focus on highlighting eligible proposals and | ||
providing a call-to-action for final comments and votes on the PRs. If there are too many accepted proposals, | ||
prioritization can narrowed to those proposals where contributors wish to be assigned and developers can | ||
immediately move forward with the implementation instead of only then thinking about the design. | ||
|
||
## Conclusion | ||
The proposed changes to the Dapr feature planning process aim to spend more time considering and reasoning about new | ||
features in advance of committing to new releases instead of during. This will also maintainers and contributors to | ||
focus on building out concepts that have already spent being vetted and refined, reducing the risk of rushed, incomplete | ||
implementations that may deviate substantially from the original concept at release. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we can all agree it's important that we encourage end-users to self-report issues as GitHub issues where they don't already exist as GitHub Issues. If those issues do already exist, it is important that we encourage users to add their feedback and votes of support to those issues.
Discord is a fine place to have conversations and explore issues, but it must result in an output into GitHub Issues/proposals to be super effective as a means for building evidence and datapoints for future considerations.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agree