Skip to content

API breaking changes management and feature freeze#20479

Open
seanbudd wants to merge 6 commits into
masterfrom
APIbreakFeatureFreeze
Open

API breaking changes management and feature freeze#20479
seanbudd wants to merge 6 commits into
masterfrom
APIbreakFeatureFreeze

Conversation

@seanbudd

@seanbudd seanbudd commented Jul 10, 2026

Copy link
Copy Markdown
Member

Link to issue number:

Circulated to email list

Summary of the issue:

API breaking releases are slow and slow down the entire release process for the rest of the year.
To push API breaking releases out faster, and thus the rest of our yearly releases, we must cut the scope of them significantly.

This proposes:

  • a feature / major changes freeze during API breaking releases, to focus on API breaking changes
  • requiring all API breaking changes to be pre-scheduled
  • allowing the minimal set of feature changes in an API breaking release, for accompanied unavoidable prescheduled API breaking changes

Description of developer facing changes:

Developers must pre-schedule API breaking changes.
NVDA development goes into a feature freeze from when the first 20XX.1 alpha is released until the first 20XX.2 alpha is release. This would be roughly a 2-3 month period at the end of the year.

Downside / cons

No features means less incentive for users to try the new release. the API breaking release basically cements itself as a "soft beta" release, really only used by early adopters. This is somewhat the case already, but this change leans into that further. Most people won't upgrade until features come out in 20XX.2

Copilot AI review requested due to automatic review settings July 10, 2026 04:47
@seanbudd seanbudd requested a review from a team as a code owner July 10, 2026 04:47

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates contributor documentation to better manage scope during API-breaking release cycles, aiming to reduce risk and keep annual API-breaking releases moving faster.

Changes:

  • Adds guidance for when new feature work is acceptable (alpha-only) and when features may be reverted/removed.
  • Introduces policy text for API-breaking releases, including advance acceptance of breaking changes and limiting scope during those releases.

Comment thread projectDocs/dev/contributing.md
Comment thread projectDocs/dev/contributing.md Outdated
Comment thread projectDocs/dev/contributing.md Outdated
Comment thread projectDocs/dev/contributing.md Outdated
Comment thread projectDocs/dev/contributing.md Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Sean Budd <seanbudd123@gmail.com>
@LeonarddeR

Copy link
Copy Markdown
Collaborator

Interesting approach, I like it.
Could you also elaborate on how the scheduling is done? Will there be a project board, a label?

@seanbudd

Copy link
Copy Markdown
Member Author

@LeonarddeR - pre-scheduled would just mean a triaged issue (+ approved ADR if relevant) on the 20XX.1 milestone before 20XX.1 alpha goes out.
If it's not on the 2027.1 milestone before we get to alpha, we won't accept it.

Comment thread projectDocs/dev/contributing.md
Comment thread projectDocs/dev/contributing.md Outdated
Comment thread projectDocs/dev/contributing.md Outdated
@bramd

bramd commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

I like this plan. It might also be good for add-on devs to have a release to make their changes without it introducing much new features/behavior.

However, and this may sound silly, some NVDA users may look at the version numbering and think that 20xx.1 must be something major since we bumped the major version component. Especially in company wide deployments where the IT staff rolling this out is not really interested in the features, only in updates and determining if they should apply them or not. If they prioritize the .1 because they see it as a major one, they may lag or never get to a .2 release. This would mean that all users in such organizations might sit on .1 quite long without many new features. Basically, we communicate with our major/minor versions to developers, not end-users. The major version bump becomes an API breaking signal, not a heads up for end-users that nice new stuff is there. I don't know how big this problem may be, but NVAccess might be able to determine this based on past usage statistics data? E.g. how many people stay on a .1 release longer then would make sense?

I don't have a good solution without making it confusing, but just something to keep in mind.


### API breaking releases

* API breaking changes must be proposed and accepted before the first 20XX.1 alpha is released.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The first 20XX.1 alpha is released when 20(XX-1).3/4 is branched to beta.
This gives a timing constraint between 2 separate events which may have teir own constraint. Could you rather announce a feature freeze with a specific date, as you already do for translation freeze?

@CyrilleB79

Copy link
Copy Markdown
Contributor

Globally, I understand the rationale behind this.
Though, I'm afraid it may make the process more heavy or penalize the development of API-breaking features. We have seen in the past that API-breaking changes have been decided after an issue has been found while testing a new feature's PR, an alpha release or even a beta one.

If we stick with this approach, the deadline for API-breaking feature freeze should be announced clearly and without any ambiguity long before anyway.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants