dart-lang / sdk

The Dart SDK, including the VM, JS and Wasm compilers, analysis, core libraries, and more.
https://dart.dev
BSD 3-Clause "New" or "Revised" License
10.22k stars 1.57k forks source link

[Process] Reexamination of Dart SDK Breaking Change Process #55539

Open itsjustkevin opened 6 months ago

itsjustkevin commented 6 months ago

Reexamination of Dart SDK Breaking Change Process

Context

As we continue to evolve the Dart SDK, the philosophy and implementation of our breaking change process are critical to ensuring a smooth transition for developers and maintaining the robustness of the ecosystem. With the recent change in roles among our breaking change approvers, now is an opportune time to reassess our current procedures.

Current Process Overview

Our existing framework emphasizes compatibility and cautious evolution, with breaking changes considered under stringent conditions such as security improvements, specification updates, or significant bug fixes. The process is laid out in a multi-step approach involving:

  1. Announcement via issues and emails.
  2. Approval from designated approvers.
  3. Execution.
  4. Finalization with documentation updates and follow-up communications.

For more details, see the current process documentation.

Points for Reexamination

  1. Threshold for Justifying Changes: Review the criteria under which breaking changes are deemed necessary.

  2. Impact Analysis: Enhance our methods for assessing the potential impact on the community and downstream dependencies before approval.

  3. Communication Improvements: Streamline the notification process to ensure better reach and clarity for all stakeholders.

  4. Handling Exceptions and Rollbacks: Strengthen mechanisms for dealing with unintended consequences and facilitating smoother rollbacks when needed.

  5. Integration of Community Feedback: Increase community involvement in the decision-making process through more interactive platforms and feedback mechanisms.

matanlurey commented 6 months ago

I'm curious, are there specific examples of breaking changes we believe could be handled better (for example, something we wouldn't have approved or something we wish we approved but didn't)?