Problem/Motivation

https://www.drupal.org/core/d8-bc-policy talks almost exclusively about PHP, we should try to define what can and can't be changed with and without bc layers for JavaScript in Drupal 8 minor releases.

Proposed resolution

Remaining tasks

User interface changes

API changes

Data model changes

Comments

catch created an issue. See original summary.

mpdonadio’s picture

deviantintegral’s picture

The jQuery 3 upgrade in Drupal 8.4 was mentioned in the release notes, but it was easy to miss. It's certainly a roadblock for sites to upgrade to Drupal 8.4, which is concerning given that 8.3 no longer has security support. Whatever policy there is should cover both external dependencies and Drupal specific code.

For our clients, it certainly would have been more straightforward to have a Drupal 9 release that was nothing but Drupal 8.3 + the Symfony and jQuery upgrades.

xjm’s picture

Thanks @deviantintegral. I was extremely reluctant to allow major version updates of dependencies in minor releases, but I was in the minority among the committers for that. It did become clear that there is also a lot of risk in not updating the libraries. (For Symfony, we announced before 8.0.0 was even released that we would upgrade to ~3.x during the 8.x cycle, and any dropped features would already have been deprecated before release. jQuery was trickier, but also higher risk to leave on an old version given that there are already disclosed security issues against older versions of jQuery and jQuery UI.)

It would be more semantic and safer to increment the major version when we have to make such major dependency updates. @catch, @larowlan, and I were discussing the above comment, and we agreed that we would probably increment the major version in that way when we have major dependency updates after 9.0.0.

However, at present, we really were not prepared to increment the major version number. Not only is all of our documentation, infrastructure, code, etc. still built around the expectation that there's D7 and D8, but the major version is also still very tied to "massive BC breaks and difficult upgrades" and "dropped support for Drupal N-2" in perceptions of Drupal generally. With 9/10ths of Drupal sites still on D7, I don't think we could really increment the major version without causing mass panic far more disruptive than the library updates themselves.

I think we'll take all this into account if we have to make a major version change for a major library in the future, and do what we can to make it less of a surprise, like announcing it a minor release ahead of time (which we did for the browser compatibility change).

All this isn't really what this issue is about -- it's about defining core's own JS APIs -- but I wanted to respond here since this is where the question was asked and it probably would come up again in discussion here.

Version: 8.5.x-dev » 8.6.x-dev

Drupal 8.5.0-alpha1 will be released the week of January 17, 2018, which means new developments and disruptive changes should now be targeted against the 8.6.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.6.x-dev » 8.7.x-dev

Drupal 8.6.0-alpha1 will be released the week of July 16, 2018, which means new developments and disruptive changes should now be targeted against the 8.7.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.7.x-dev » 8.8.x-dev

Drupal 8.7.0-alpha1 will be released the week of March 11, 2019, which means new developments and disruptive changes should now be targeted against the 8.8.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.0-alpha1 will be released the week of October 14th, 2019, which means new developments and disruptive changes should now be targeted against the 8.9.x-dev branch. (Any changes to 8.9.x will also be committed to 9.0.x in preparation for Drupal 9’s release, but some changes like significant feature additions will be deferred to 9.1.x.). For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.9.x-dev » 9.1.x-dev

Drupal 8.9.0-beta1 was released on March 20, 2020. 8.9.x is the final, long-term support (LTS) minor release of Drupal 8, which means new developments and disruptive changes should now be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 9.1.x-dev » 9.2.x-dev

Drupal 9.1.0-alpha1 will be released the week of October 19, 2020, which means new developments and disruptive changes should now be targeted for the 9.2.x-dev branch. For more information see the Drupal 9 minor version schedule and the Allowed changes during the Drupal 9 release cycle.

Version: 9.2.x-dev » 9.3.x-dev

Drupal 9.2.0-alpha1 will be released the week of May 3, 2021, which means new developments and disruptive changes should now be targeted for the 9.3.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.3.x-dev » 9.4.x-dev

Drupal 9.3.0-rc1 was released on November 26, 2021, which means new developments and disruptive changes should now be targeted for the 9.4.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.4.x-dev » 9.5.x-dev

Drupal 9.4.0-alpha1 was released on May 6, 2022, which means new developments and disruptive changes should now be targeted for the 9.5.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.5.x-dev » 10.1.x-dev

Drupal 9.5.0-beta2 and Drupal 10.0.0-beta2 were released on September 29, 2022, which means new developments and disruptive changes should now be targeted for the 10.1.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 10.1.x-dev » 11.x-dev

Drupal core is moving towards using a “main” branch. As an interim step, a new 11.x branch has been opened, as Drupal.org infrastructure cannot currently fully support a branch named main. New developments and disruptive changes should now be targeted for the 11.x branch, which currently accepts only minor-version allowed changes. For more information, see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.