Have a topic for discussion for the next meeting? Leave a suggested edit on next week’s agenda.
Node LTS 10.13.0
With the tagging of a new Node LTS 10.13.0 last week (from 8.x), both 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/ and Core Core is the set of software required to run WordPress. The Core Development Team builds WordPress. builds are now running the latest version.
Data Module Generic Store 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.
A refactoring of the data module has been merged, and it now exposes a new optional lower-level API for non-Redux stores, or more personalized instances of a Redux store.
Refer to the documentation for more information.
Discussion: How can WordPress continue its commitment to backwards-compatibility while also not perpetually lagging behind the current version of dependencies (specifically, but not exclusively React).
- Explore what it could look like to version WordPress scripts
- Targeting the abstraction (
wp.element) an intentional point in ensuring consistent version use.
- Provide and/or surface codemods if it comes to the point of being forced to introduce a breaking change (Facebook does similarly with React)
- Gutenberg’s deprecation pattern is not something which would necessarily continue post-5.0, but could serve as precedent for a future deprecation model
- Compile a document which outlines expectations for a 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 author to anticipate and account for future compatibility, how and when a breaking change would be introduced
Implementing End-to-End Tests in Core
Continuation of discussion from last week.
Problem: How can Gutenberg’s end-to-end test suite be brought into the core development workflow?
- Not blocking for a 5.0 release
- Tracked at #45165
- Having an end-to-end testing solution is useful for more than just the editor, and useful for more than just core development
Make some core part of the end-to-end solution available in
i18n Internationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill. Core Merge Update
@omarreiss shared the following update:
WP-CLI WP-CLI is the Command Line Interface for WordPress, used to do administrative and development tasks in a programmatic way. The project page is http://wp-cli.org/ https://make.wordpress.org/cli/: Make sure
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.: generate translations on translate.wordpress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ for core, themes and plugins. [MVP "A minimum viable product (MVP) is a product with just enough features to satisfy early customers, and to provide feedback for future product development." - WikiPedia Done] Ticket Created for both bug reports and feature development on the bug tracker.: https://meta.trac.wordpress.org/ticket/3748
Core: Logic to load JS translations. [Done] Ticket: https://core.trac.wordpress.org/ticket/45103
Core: API to register JS translations for a script. Needs meta side of things to be finished. [Has patch] Ticket: https://core.trac.wordpress.org/ticket/45161
Make: Publish an update and a devnote Each important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include a description of the change, the decision that led to this change, and a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase. on how the JS translations work. [todo @omarreiss / @herregroen]
@herregroen shares that for most plugin authors who host their plugins through the plugin repository, the change in workflow should be a matter of using
wp_set_script_translations in place of where traditionally one would use
Prompt: As a retrospective of how
wp.hooks has been used in the development of core, what feedback do developers have to share?
- @omarreiss : “I think it might also not be the pattern we want to teach the WP community.”
- @herregroen : “I would give some thought to deprecating before release to send a clear message going forward. I think it would be confusing to have this familiar API and then never expand it and soon after start deprecating it.”
- @aduth : “My general experience with them is that they’re not completely avoidable, but in the majority of cases I’ve seen them proposed, it’s been the wrong way to go about a problem with some serious non-obvious consequences and I’ve thus looked to them as a “footgun” (a tempting tool too easy to use wrongly)”
- @adamsilverstein : “i’ve mainly tried using the withFilters HOC which seemed to work well, i’m not really sure where else hooks have been used in Gutenberg. I agree they can easily be misused and better approaches are often available.”
- @schlessera : “It’s a procedural pattern that quickly breaks down once you go past procedural code, even in PHP.”
Consider a communication plan for the role of hooks (future agenda item).