Skip to content
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

Create a "Deprecation notice/warning" banner/modal/etc. for (some) deprecated API calls #10212

Closed
tofumatt opened this issue Sep 27, 2018 · 8 comments
Labels
[Feature] Extensibility The ability to extend blocks or the editing experience Framework Issues related to broader framework topics, especially as it relates to javascript Needs Design Needs design efforts. [Type] Code Quality Issues or PRs that relate to code quality [Type] Plugin Interoperability Incompatibilities between a specific plugin and the block editor. Close with workaround notes.
Milestone

Comments

@tofumatt
Copy link
Member

Right now we deprecate APIs in two releases, but we don't really alert users to what plugins are making deprecated APIs calls. We also always deprecate in two major versions, but it's possible in the future we want to deprecate in more than two versions.

If a plugin doesn't pay attention, eventually a user's editor will break and it will seem like it happened "unexpectedly".

Once a deprecation is imminent (1-2 versions away), we should show a modal/banner/etc. when a deprecated API is called and, if possible, flag the plugin that made the call. This will alert the user:

  1. that they should contact their plugin author if the author themselves isn't aware of the deprecation
  2. inform the user we aren't at fault for their editor's imminent breakage
@tofumatt tofumatt added Framework Issues related to broader framework topics, especially as it relates to javascript [Feature] Extensibility The ability to extend blocks or the editing experience Needs Design Needs design efforts. [Type] Plugin Interoperability Incompatibilities between a specific plugin and the block editor. Close with workaround notes. [Type] Code Quality Issues or PRs that relate to code quality labels Sep 27, 2018
@tofumatt
Copy link
Member Author

iOS and MacOS do a great job of warning users that in future versions an app they use will no longer work:

ios-11-32-bit-apps

@karmatosed karmatosed added this to the WordPress 5.0.1 milestone Nov 22, 2018
@mtias mtias modified the milestones: WordPress 5.0.1, Future: 5.1 Nov 30, 2018
@sarahmonster
Copy link
Member

This sounds like a similar issue to #15206 and could probably be handled in tandem to ensure these notices are as user-friendly as possible whilst providing helpful prompts to developers.

@anyssa
Copy link

anyssa commented Jun 20, 2019

I am working on a mockup for this. I have two questions about this issue:

  • What would be a good copywriting for this type of warning?
  • What type of UI component would be best, consistency-wise? Modal, banner, alert?

@sarahmonster
Copy link
Member

@anyssa thanks for looking into this!

  1. In terms of copywriting, since it will be user-facing, I'd suggest to keep the copy as simple, friendly, and jargon-free as possible. If you aren't sure, it can be helpful to suggest a few variations, and we can provide you with feedback. We also have some copy guidelines specific to error messaging that you may find helpful.

  2. In terms of which UI component to use, we have three options here in our existing component library. In decending order of hierarchy, these are: Modal (dialog), Notice (banner), and Snackbar. The design guidelines should help you choose which component would be best suited for this use case, but if they aren't clear, that's a good opportunity to revise those guidelines for improved clarity! 😉

@noisysocks
Copy link
Member

I'm not sure that this is worth doing now that our API is more stable. We use deprecated() a lot less than we used to, and, when we do, it's rare that we specify a version where the API will be removed.

@youknowriad @aduth: What do you think?

@youknowriad
Copy link
Contributor

I agree for the moment but I think at some point we need to discuss the deprecation strategy for Core in general. and having more prominent notices depending on the "stage" of the deprecation could be good.

I think we can close for the moment though.

@aduth
Copy link
Member

aduth commented Jul 10, 2019

I'll second @youknowriad on this. I think we'd need to revisit this if we do ever decide to schedule deprecations for removal. The main idea behind the plugin's deprecation policy (notably its two-release scheduling) was that deprecations could be made to be less impactful if they were both predictable and well-communicated. The two-version policy satisfies the first of these goals, but our communication (outside of this handbook page) has been lackluster, which this issue would aim to improve.

@noisysocks
Copy link
Member

Closing this for now. Agree we will need to eventually think about deprecation more holistically. (Perhaps the next time we need to remove something major.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Feature] Extensibility The ability to extend blocks or the editing experience Framework Issues related to broader framework topics, especially as it relates to javascript Needs Design Needs design efforts. [Type] Code Quality Issues or PRs that relate to code quality [Type] Plugin Interoperability Incompatibilities between a specific plugin and the block editor. Close with workaround notes.
Projects
None yet
Development

No branches or pull requests

8 participants