Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
Problem/Motivation
update_fix_compatibility() was deprecated in Drupal 8.8.4 and scheduled for removal in Drupal 9. Also, it is dangerous as calling it can break sites - see #2917600: update_fix_compatibility() puts sites into unrecoverable state
Proposed resolution
Remove the function.
Remaining tasks
Remove the function.
User interface changes
None
API changes
update_fix_compatibility() no longer exists.
Data model changes
None
Release notes snippet
The update_fix_compatibility() function has been removed, as it is no longer useful in Drupal 9 and can cause data corruption. Any calls to update_fix_compatibility() should be removed. See the change record for more information.
Comment | File | Size | Author |
---|---|---|---|
#12 | 3123376-12.patch | 3.75 KB | johnwebdev |
#4 | interdiff_2-4.txt | 685 bytes | swatichouhan012 |
#4 | 3123376-4.patch | 3.75 KB | swatichouhan012 |
#2 | 3123376-2.patch | 3.4 KB | swatichouhan012 |
Comments
Comment #2
swatichouhan012 CreditAttribution: swatichouhan012 at Valuebound for Valuebound commentedKindly review patch
Comment #4
swatichouhan012 CreditAttribution: swatichouhan012 at Valuebound for Valuebound commentedremove CompatibilityFixTest
Comment #5
dwwThis isn't about the Update Status / Manager (update.module) but is about the DB update system and update.php (database update system). Moving to the right component.
Meanwhile, not sure this is still allowed in beta. This might need to be moved to 9.1.x at this point.
Comment #6
longwaveI think this is OK for 9.0.x as we did a proper deprecation and warned that it would be removed.
Comment #7
xjmThanks for working on this.
So, normally we would require this to be a 10.0.0 deprecation at this point, since the beta1 deadline is a pretty strict deadline for any BC break in Drupal 9. The deprecation itself also was given an exception to the policy where it would otherwise have been required by 8.8.0-beta1 back in November (which is how we ended up missing it).
In the case of this particular issue, @catch and I discussed it and agreed to go ahead, because this function isn't just deprecated -- it's dangerous. So, I'm signing off on this issue being a beta target (which means, committable and a priority during the beta phase).
As a beta target and a BC break outside standard policy, it will need a release note. We can start from the release note from #2917600: update_fix_compatibility() puts sites into unrecoverable state (edit: fixed link) and link that issue's change record, with an explanation of why we're making this BC break outside policy.
Meanwhile, for any other case where there's a leftover deprecation in the codebase that refers to 9.0.0, we should instead patch it so that the deprecation references 10.0.0.
Thanks!
Comment #8
xjmAlso using that issue's title since it explains why we're making the BC break (credit: @catch).
Comment #9
longwaveThe "not" in the title didn't make sense to me, so I reworded it,
Added a release note snippet.
Comment #10
longwaveIn fact the patch was RTBC before and a release manager can review the release note snippet I think?
Comment #11
catchLooks great to me but needs a re-roll.
Comment #12
johnwebdev CreditAttribution: johnwebdev commentedComment #13
catchRe-roll looks good, back to RTBC, pending the bot.
Comment #14
catchCommitted 668f597 and pushed to 9.1.x, cherry-picked to 9.0.x. Thanks!
Comment #15
catch