[wp-meta] [Making WordPress.org] #6921: Prepare for Plugin Dependencies

Making WordPress.org noreply at wordpress.org
Tue Apr 11 02:23:31 UTC 2023


#6921: Prepare for Plugin Dependencies
------------------------------+---------------------
 Reporter:  dd32              |       Owner:  (none)
     Type:  defect (bug)      |      Status:  new
 Priority:  normal            |   Milestone:
Component:  Plugin Directory  |  Resolution:
 Keywords:  needs-patch       |
------------------------------+---------------------

Comment (by dd32):

 I think there's a potential disconnect between what the header means (Both
 to the team implementing it, what others think the team is building, and
 what I think the header means), what the WordPress.org plugin directory
 is, and what should be acceptable for a hosted WordPress.org plugin.


 > > - Block plugin submissions and updates which reference dependencies
 which are not valid
 >
 > I think we need to discuss what it means to have a valid dependency.

 I agree.

 > My opinion is that if the dependency exists somewhere that the user can
 install it, it is valid. It may take the user purchasing and installing a
 premium plugin but this is no different for add-ons for Gravity Forms or
 WPML that currently exist.

 I agree. That's a valid use of the header.
 However. That doesn't answer the question of "Is this a plugin that should
 be hosted by WordPress.org"; Just because we can, doesn't always mean we
 should.

 Obviously though, this is a valid use-case where a WordPress.org-hosted
 free plugin extends a non-WordPress.org-hosted non-free plugin.

 That however, doesn't necessarily mean it's something that we directly
 need support. If the not-WordPress.org-hosted plugin is either a) not-
 necessary for it to work or b) is not GPL-compliant, then that free
 extension should arguably not be hosted by WordPress.org.

 This is a situation where we'd likely have to have some manual process in
 place, or more likely probably through a whitelisted set of dependencies
 that plugins are allowed to use. I don't see any alternative here.

 But there's another angle; A WordPress.org-hosted free plugin that
 requires a non-WordPress.org-hosted free plugin/library. This isn't
 something that we'd likely want to support **at all**, while technically
 the end-user can resolve this themselves, that doesn't mean this is a
 plugin we should want to offer to others to install through the plugin
 directory.

 Basically; Use of the dependencies feature **should not** be possible to
 be used to bypass [https://developer.wordpress.org/plugins/wordpress-org
 /detailed-plugin-guidelines/#8-plugins-may-not-send-executable-code-via-
 third-party-systems plugin guideline 8 - cannot install code from 3rd
 parties].

 > > - Block plugin submissions which use the Dependencies feature but are
 not Requires WP >= 6.3
 >
 > Plugins can still use the Plugin Dependencies feature plugin for
 compatibility. But certainly a response from the plugin review team
 indicating this would be in order with a recommendation to update to
 `Requires at least: 6.3`.

 Again, plugin directory guidelines can (and are) more strict than 'what is
 possible' often. This is to prevent issues where plugin authors just 'do
 things wrong' which happens far more often than you'd think.

 If anything, the 6.3+ remark is to ensure that someone who is using it
 actually understands the purpose of the header.

 If you take your previous example of a free plugin extending a premium
 plugin, a plugin by adding the dependencies header and increasing the
 requires-at-least header ''would prevent updates being sent to WordPress <
 6.3 sites''. That is problematic, but not unheard of.

 > > - Potentially delist existing plugins when the dependencies become
 unavailable (ie. Required plugin is removed from the directory, a plugin
 which requires that plugin should not be installable)
 >
 > I don't think a plugin should be delisted. If a plugin dependency is not
 available and not installed/active, the dependent plugin will
 automatically be deactivated and will not be able to be activated until
 the dependency is met.

 This goes back to the first point of this comment; "what is the feature",
 and I think there's a disagreement of what it is.
 If plugin B on WordPress.org depends on plugin A, and plugin A is removed,
 we shouldn't offer sites to install plugin B. Simple as that. If plugin A
 can still be found via GitHub, that's irrelevant for the directory, we
 don't want end-users having to hunt around for the dependency to fix that.
 Either the plugin works, or it doesn't.


 ----


 Based on the discussion on this ticket, initially, I expect the
 implementation is going to have to err on the side of limited support,
 possibly seeing how it ends up being used, and going from there.

 It's likely we'll have to explicitly block any not-WordPress.org items,
 followed by allowing whitelited non-wporg items, and finally resolving the
 issue of what happens when a dotorg-hosted plugin is removed from the
 directory.


 ----

 The core feature can be as expansive as the core team decides to accept, I
 personally feel it's too permissive at present ''(and likely is not in the
 best interests of WordPress end-users, but that's personal opinion and
 doesn't sway my opinion on what is needed for WordPress.org)'', but the
 WordPress.org plugin directory will ultimately always only support a
 subset of it's functionality, as part of the philosophy of WordPress.org
 and the plugin directory aims of providing the best user experience.

-- 
Ticket URL: <https://meta.trac.wordpress.org/ticket/6921#comment:19>
Making WordPress.org <https://meta.trac.wordpress.org/>
Making WordPress.org


More information about the wp-meta mailing list