-
Notifications
You must be signed in to change notification settings - Fork 4.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Review formally stable APIs scheduled for hard deprecation. #41265
Comments
You've done quite some work to gather all this data, thank you! I'm torn here. I see your point, and yet removing these deprecation would de-facto change Gutenberg's policy without actually building a consensus and that could hurt the debate.
Do you mean converging on a new policy in #40316? Because it seems like right now there's a tie right between WordPress's Backwards Compatibility commitment and the exploratory nature of Gutenberg. I can only see three ways out of that:
I'd love to make 2 happen. There's still a few months until WordPress 6.1 is released and these hard deprecations are in effect. In my perfect world we'd find a way to fulfill everyone's goals until then. |
Oh and just to add to that. I'm less worried about the existing deprecated APIs and more worried about the way of handling the new experimental APIs. A move like this one would take away a lot of confidence, as in "wait, I need an experimental thing but with this hard deprecations freeze I have no idea what to do". |
In part. I separated this discussion out because I think there is potential for different decisions for experimental APIs (REST and developer) and stable APIs. I was trying to keep #40316 focused on the experimental APIs but I think I failed, sorry.
My order of concern differs:
If the hard deprecations scheduled for 6.2 take place then I think it's fair to say WP no longer strives to maintain backward compatibility forever(tm). I don't necessarily think this is a bad thing. It's difficult to do a comprehensive search due to script minimization but I think it will break a lot of code.
This is potentially exactly what is needed from project leadership to get everyone on the same policy. 🤷 There is potential to meet in the middle. I think deciding on the stable APIs that are about to be pulled out is probably the easier decision. |
Oh in terms of time-pressing priorities I agree. I should have clarified: I don't want to break the internet either. I was specifically referring to things I feel worried about. I'm somewhat at peace when thinking about the existing APIs because I have a hunch we'll end up keeping them in. I'm concerned about the new APIs and general policy because I don't see a clear way forward and it's a decision with major impact on the way Gutenberg is approached and developed.
💯 |
I've proposed a topic for the community summit to discuss the WP backward compatibility policy with the goal of coming up with a consistent approach across this and the wordpress-develop repos. In other long threads, the performance impact of maintaining backward compatibility -- especially in JavaScript -- has been raised so I think that would be a helpful thing for contributors to discuss in person. cc @adamziel @youknowriad @azaozz @noisysocks @mtias @josephahaden |
@peterwilsoncc Do you happen to know if there has been any movement on a more formalized approach for this going forward? There still is a growing list of |
@fabiankaegy I don't think there has been any progress on how to handle these issues, I'm afraid. There was discussion about aligning processes between the Gutenberg and WordPress Develop repos at the community summit but it needs a little follow up. Removing the experimental public APIs is difficult enough, so I don't think it's possible to remove stable public APIs as developers have been advised to use them and, by implication, that they will have ongoing support. |
Question then, Looking at the codebase currently there are ~74 instances where the Without a strategy for actually removing these in core currently, this feels disingenuous. Should we remove the We will retain the historical knowledge how long something has been marked as deprecated for through the If we think this makes sense I created a draft PR here: #56432 |
I had wished that by this time, we'd come to an agreement on how to move forward with the backward compatibility strategy for JS APIs. It is clear to me (and others, you can ask any regular contributor) that not removing anything is not sustainable in a lot of ways. Bundle size is one reason, mental overhead is another. We can continue moving forward with the project without a clear path here. If the summit was not sufficient to clarify this, how can we move forward responsibly? Continuously delaying this is not good enough. |
@youknowriad I couldn't agree more that it isn't sustainable and at least for a good chunk of new APIs the My point here primarily is that I don't think it currently makes sense to log console messages stating an exact core version for when something will be removed when those version numbers aren't correct because we have not come to a solution. Which is why I think removing the version till we have a formal solution for these old APIs may be a way to remove some of the confusion. |
I have two half thoughts (they are 100% not considered architectural proposals)
As I say, half thoughts. |
What problem does this address?
This is a sister issue to #40316 to discuss soft deprecated stable APIs.
The WordPress handbook lists backward compatibility as one of it's most important philosophies:
-- My emphasis, source
During the early, pre-merge, phase of Gutenberg development a decision was made to move away from that philosophy for the bleeding edge product.
This was a very sensible decision for the time as one of the purposes of a feature project is to trial various approaches and back them out before they make it to the stable product. Unfortunately the approach was not reviewed once Gutenberg became the block-editor, a feature of WordPress Core.
What is your proposed solution?
According to the
version
setting in calls to@wordpress/deprecated
, the following formally stable APIs are scheduled for hard deprecation in the following versions. This will break backward compatibility.Until a decision is made on the new backward compatibility policy is made by project leadership that applies to both the block editor and WordPress generally (ie, the code managed on trac) I think it would be best to remove the hard deprecation warning from core.
Such a discussion will need to be had in the wider dev chat in the #core slack channel to enable as much participation as possible.
Hard deprecated in 6.0
Sourced from the editor miscellaneous dev notes post for 6.0
getReferenceByDistinctEdits
selector.PreserveScrollInReorder
component.dropZoneUIOnly
prop in the MediaPlaceholder component.isDismissable
prop in the Modal component.wp.data.plugins.control
data module.Each of these were soft deprecated in 5.4
Scheduled for hard deprecation in 6.1
This is from the make post linked above
Scheduled for hard deprecation in 6.2
Scheduled for removal in 6.3
Scheduled for removal in 6.4
Scheduled for removal in 6.5
The text was updated successfully, but these errors were encountered: