Have a topic for discussion for the next meeting? Leave a suggested edit on next week’s agenda.
Automating Publishing to npm
Problem: Publishing modules to npm can be difficult because it is not always clear at the time of publishing to what version the package should be updated. The individual performing the publish is not always the same as the contributors who had proposed changes to the package.
- Adopt conventional commits to enable automatic versioning (pull request)
- Issue: This is hard to enforce
- Encourage developers to introduce relevant changelog entries as part of proposed changes. The type of change should indicate versioning requirements.
- Issue: Not every version bump is caused by directly by new changes, sometimes indirectly by updated dependencies.
- Issue: Prone to frequent merge conflicts with many developers adding entries to the same text file.
Decision: Encourage developers to introduce changelog entries and evaluate success in a future meeting.
Package Deprecations Versioning
Problem: When deprecating a feature in Gutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/, we add logging to highlight the deprecation, and allow for two minor releases of the plugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party before removing the functionality. With this in mind, how do we handle versioning of modules? Following SemVer, the major version should be bumped on backwards-incompatible changes. If the deprecation is not entirely faithful and therefore introduces a breaking change, it results in the need for two separate major version bumps by the removal of a single feature.
- Is this really a common use case?
- Could it be considered a good thing to promote the idea that deprecation “shims” should be fully compatible?
- How does SemVer consider deprecations?
- Very specifically: “Minor version Y (x.Y.z | x > 0) MUST be incremented if new, backwards compatible functionality is introduced to the public API An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.. It MUST be incremented if any public API functionality is marked as deprecated.”
Decision: The major version should be bumped on any backwards-incompatible change. This will usually occur at the final removal of the feature. The deprecation should be fully backwards-compatible and, if it is not, it should warrant a separate major version bump.
URL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org
Problem: There are several inconsistencies between the WordPress PHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher implementation of
add_query_arg and the parallel
addQueryArgs from the
Arguments: url, param (JS) vs. param, url (PHP)
Usage: Object only (JS) vs. object or key+value pair (PHP)
- Consistency vs. improvements
- In general, we should seek to avoid confusion in appearing similar if in-fact the behaviors are not the same.
Decision: There will be no changes to the name or argument order of the
addQueryArgs function. Supporting
value arguments may be a separate enhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. to consider.
Data Plugins API
@wordpress/data module now supports a plugin API. Persistence behaviors, which were previously baked in, are now extracted out to an opt-in plugin. This should help improve isolation of specific behaviors, and allow external consumers to use only specific features relevant for their products.
A new pattern for asynchronous state behaviors has been implemented, distributed as the
@wordpress/redux-routine package and integrated with the
@wordpress/data module via a new
Announcement: A fix has been backported from the Meta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. team into the
@wordpress/dom-ready package, addressing an issue where callbacks may not be called reliably if the document was in specific states. This was the cause of intermittent white-screen issues on the Gutenberg marketing page.
Question: Do we still use
Answer: Only in the (now-deprecated)
withAPIData higher-order component. Once this deprecation is complete, there will be no more usage of
wp.api and it can be safely removed.