What's an API change?
As a general rule, an API change means anything that would cause a module or theme developer, or someone writing documentation about the next version of Drupal, to have to redo work. Changing function or hook signatures, adding/removing API functions and hooks, adding/removing/changing theme functions, adding/removing/changing template files or template variables, and so on.
Once we hit API freeze, we only allow API changes if they go towards fixing critical bugs. If there's a way to fix a "major" or "normal" bug without changing the API, we go with that, same as we do in stable releases.
What's a critical bug?
A critical bug is something that breaks Drupal so horribly in a way that affects so many users that we can't possibly release without it being fixed. Priority levels of issues has a good breakdown of the differences in priority levels.
As a general rule, these include:
- Upgrade path-related bugs
- Bugs that cause data loss
- Bugs that create security vulnerabilities
- Serious regressions from behaviour that worked in previous releases
- Bugs that cause testbot to fail
The ultimate call on what is critical or not is with the core maintainers.