-
Notifications
You must be signed in to change notification settings - Fork 240
Plugin support, 4.0-alpha1 version #1036
Description
Support for 3rd party plugins (and themes, to a lesser degree) is a major theme of v4.0. VersionPress needs to understand plugins' data and actions in order to provide version control for them.
Previous releases introduced things like ChangeInfo objects, schema format (readme) etc. which we're going to build upon and make more extensible. There will probably be many smaller, concrete tickets but in general, we should:
- Support loading DbSchemaInfo from multiple schema-files. For example, a WooCommerce site would load
wordpress-schema.ymlandwoocommerce-schema.yml.- Similarly with ShortcodesInfo and
-shortcodes.ymlfiles.
- Similarly with ShortcodesInfo and
- Develop a discovery mechanism for schema-files. The idea is to look in three locations: VersionPress itself, plugin's source code (over time, schemata will hopefully ship with plugins if VersionPress becomes popular enough) or a central repository, possibly backed by a GitHub repo so that everyone can send a pull request.
- Reconsider ChangeInfo objects structure and possibly simplify it (Reconsider ChangeInfo hierarchy #1034). ChangeInfos (or equivalent) should also be shipped similarly to schema-files.
- Work out a way to describe actions. We don't have a great abstraction for this yet, for example, actions are currently only described in PhpDoc sections of ChangeInfo files, cannot be processed automatically, etc. We already have technical tickets like List supported entities, their actions and VP tags #804 to improve this.
🚢 Shipped in 4.0-alpha1. For technical implementation, see PR #1075.
- Description at the state of the PR: Plugin-Support.md @ 0a29069
- Up to date state: Plugin-Support.md @ master
☝️ This ticket is a good place to solicit feedback from plugin authors. If you're one of them and would be interested in integrating with VersionPress, please let us know in the comments below. So far, we've heard interest from these plugins / folks:
Preliminary list of things we'll likely need to improve in VersionPress to support certain plugins:
- Dynamic table schemas – Plugin support, 4.0-alpha1 version #1036 (comment)
- Dynamic targets for standard references – Plugin support, 4.0-alpha1 version #1036 (comment)
- Ability to specify paths to ignore – Plugin support, 4.0-alpha1 version #1036 (comment)