PHP Meeting Recap – February 26th

This recap is a summary of our previous PHP meeting. It highlights the ideas and decisions which came up during that meeting, both as a means of documenting and to provide a quick overview for those who were unable to attend.

You can find this meetingā€™sĀ chat logĀ here.

Chat Summary

  • The agenda for the meeting was to discuss the API endpoint for which a first version was introduced the previous week.
  • It was ensured that the endpoint parses PHP versions correctly and allows for flexibility by parsing out the actual version number from strings which may contain additional environment-specific information.
  • Some concerns regarding the structure of the response were expressed, particularly related to redundancy, future maintainability and inconsistencies.
  • By the end of the meeting, it was agreed to go with the following response structure:
    • recommended_version ā€“ string ā€“Ā The PHP version recommended by WordPress
    • is_supported ā€“ boolean ā€“ Whether the PHP version is actively supported
    • is_secure ā€“ boolean ā€“ Whether the PHP version receives security updates
    • is_acceptable ā€“ boolean ā€“ Whether the PHP version is still acceptable for WordPress
  • It was also decided to remove all IP address-related functionality, as it is unlikely that those will be needed in the future. Detecting hosts by IP address and maintaining host-specific data via the API would be a huge maintenance burden, and additionally passing the IP address would overcomplicate the current efforts by having to deal with possible privacy concerns.

Call for Testing

Since the meeting, the API endpoint has been updated to use the aforementioned response data structure, and an updated patch for the PHP nag in core, implemented as a dashboard widget like previously decided, is ready to be applied.

Please thoroughly test the API endpoint and patch. The API is already live, and the current plan for the patch is to commit it to core next week.

  • The API endpoint is available atĀ https://api.wordpress.org/core/serve-happy/1.0/, and it requires a php_versionĀ query parameter to be passed.
  • The patch for the core nag is available atĀ https://core.trac.wordpress.org/attachment/ticket/41191/41191.6.diff, making use of the API endpoint. When applied and your installation is not on PHP 5.2, you can ā€œsimulateā€ the behavior by going into the src/wp-admin/includes/dashboard.php file, looking for the wp_check_php_version() function and temporarily hard-coding ā€˜5.2ā€™ in there instead of the actual PHP version. For the related ticket, see #41191.

Next weekā€™s meeting

  • Next meeting will take place onĀ Monday, March 5, 2018 at 16:00 UTC inĀ #core-php.
  • Agenda: Discuss the patch for the core nag.
  • If you have suggestions about this but cannot make the meeting, please leave a comment on this post so that we can take them into account.

#core-php, #php, #servehappy, #summary

What’s new in Gutenberg? 2nd March

This release includes significant progress in consolidating the codebase and refining aspects of the experience. Notably, it introduces APIs for extending Gutenberg beyond blocks, allowing plugins to register a full sidebar for their functionality. There are also expansions to the template support (now allows to declare nested structures), ability to duplicate blocks, various design adjustments, etc. Overall the tone has been fine tuning existing elements and simplifying implementations.

2.3 šŸ‡

HTML block, now with syntax highlighting.

Other Changes

High contrast mode in Windows.

Dev Chat Summary: February 28th (4.9.5 week 4)

This post summarizes the dev chat meeting from February 28th (agenda, Slack archive).

4.9.5 planning

Updates from focus leads and component maintainers

WCEU Contributor Day

  • @flixos90 looking for volunteers for the core team to lead WordCamp Europe contributor day.
  • @getsource will be there, but helping with Hosting Community
  • @kadamwhite will be there, but his experience from WCUS shows it may be better for REST API folks to embed with another team and support their efforts (e.g., the Editor team)
  • @antpb willing to talk on setting up a local for Gutenberg and Core development
  • @sergey will be there helping with Meta team, but open to helping with Core during afternoon
  • Also, please keep your eyes out on tickets that would be good to be tackled at WCEU contributor day
  • If youā€™re attending WCEU and interested in leading the core team or targeted sub-teams (JavaScript, REST API, etc.), then please reach out to @flixos90.

General announcements

  • Progress on implementing a way to catch the issue from the 4.9.3 release is being tracked in #43395
  • @mte90 looking for review on eight tickets:
    • #40810: patch has been refreshed including unit tests, needs review
    • #34706: needs review on whether work is required or not as the desired enhancement may already exist; @danieltj to take a look
    • #14148: needs review to see if a refresh is needed, otherwise needs testing
    • #17025: needs review before another likely refresh
    • #28112: needs review and docs; @audrasjb to test the patch
    • #36661: needs review
    • #15145: needs review
    • #17019: needs testing
  • @helgatheviking looking for review on #18584, but likely wait on this for now until Gutenberg lands as nav menus might get a bit of an overhaul

Next meeting

The next meeting will take place on March 7, 2018 at 21:00 UTC / March 7, 2018 at 21:00 UTC in the #core Slack channel. Please feel free to drop in with any updates or questions. If you have items to discuss but cannot make the meeting, please leave a comment on this post so that we can take them into account.

#4-9-5, #authentication, #contributor-day, #core, #core-php, #core-restapi, #dev-chat, #gdpr-compliance, #summary, #two-factor

Introducing the Gutenberg Plugin Compatibility Database

Ideally, the majority of WordPress users should be able to use Gutenberg on the day WordPress 5.0 is released. They'll hit "Update WordPress", navigate back to the editor, and continue publishing in Gutenberg with all of the functionality they expect in the Classic Editor.

But plugins! If any one of their active plugins are incompatible with Gutenberg, the WordPress user is likely to experience pain, misery, and bad fortune. Many WordPress installations have a dozen or more active plugins, so WordPress plugins are a significant risk vector for Gutenberg incompatibility.

Enter the Gutenberg Plugin Compatibility Database. The goal for this crowdsourcing tool is to identify whether or not WordPress.org plugins are compatible with Gutenberg. With this data set, we'll be able to:

  • Know the most likely causes of incompatibility.
  • Focus developer outreach on the highest impact problems.
  • Proactively educate WordPress users on whether or not their WordPress installation is ready for Gutenberg.

The only gotcha: we need lots and lots of person-hours for testing. If each plugin takes roughly 1 minute to test, we'll need ~75 person-hours to get through the remaining ~4500 plugins in the database.

Check out the project README.md for a more complete introduction to what's involved. This includes a definition for "Gutenberg-compatible", explanation for why only 5000 plugins are in the database, and other design decisions.

Do you or someone you know have access to lots of person-hours (e.g. WordCamp contributor day, hosting support team, etc.)? I'd love to chat! Feel free to leave a comment, ping me on WordPress.org Slack (I'm 'danielbachhuber'), or get in touch however most convenient.

GDPR Compliance Chat Agenda ā€“ February 28

Agenda proposal:

  • Information/documentation: Quick update
    • Useful links
    • Trac tickets
  • Roadmap: Finalized version, trac tickets
  • Allen's view and his development around privacy policy
  • Open discussion

Join us on slackĀ at 16:00 UTC.
#gdpr-compliance, #agenda

Dev Chat Agenda: February 28th (4.9.5 week 4)

This is the agenda for the weekly dev meeting on February 28, 2018 at 21:00 UTC / February 28, 2018 at 21:00 UTC:

  • 4.9.5 planning
  • Updates from focus leads and component maintainers
  • WCEU Contributor Day
  • GeneralĀ announcements

If you have anything to propose to add to the agenda or specific items related to the above, please leave a comment below. See you there!

#4-9-5, #agenda, #contributor-day, #core, #dev-chat

GDPR Compliance Chat Recap ā€“ February 21st

(full text on slack)

A centralised GitHub folder was created to gather all info (Roadmap, knowledge base, trac tickets list, etc) while waiting for a final location:Ā https://github.com/gdpr-compliance/info

@idea15 (webdevlaw on slack) indicated thatĀ a privacy centre to hold GDPR information for site users, for site administrators/owners, and developers is being build. To be checked how this will be split between wordpress.org and wordpress.com

How 'other systems' deal with the request to see personal data can be found onĀ https://github.com/gdpr-compliance/info/blob/master/KB.md#how-do-others-allow-users-to-download-their-own-data

A discussion was started if theĀ GDPRWP.com interface is way to go and/or if Core should provideĀ actions & filters to provide means to plugins to report their personal data.

@allendav was pointing toĀ https://github.com/allendav/wp-privacy-policy-shortcodesĀ for possible shortcodes to expose privacy policy statements in a consistent way.

@schlessera pointed out that localization might be difficult to handle, how to avoid a mix of languages?

Current global idea is that plugins submit the info using hooks/filters, the admin/controller needs to 'accept' them so that enduser can see the full list, all based on versioning per plugin.

Additional capabilities (like e.g. manage_compliance) could be needed.

#gdpr-compliance #summary

X-post: Two Factor Authentication on WP.org

X-post from +make.wordpress.org/meta: Two Factor Authentication on WP.org

PHP Meeting Recap – February 19th

This recap is a summary of our previous PHP meeting. It highlights the ideas and decisions which came up during that meeting, both as a means of documenting and to provide a quick overview for those who were unable to attend.

You can find this meetingā€™sĀ chat logĀ here.

Chat Summary

  • Main topic for this meeting was to discuss the two different implementations of the servehappyĀ notice we have so far:
    • an admin notice that appears at the top of all pages;
    • a dashboard widget that only appears on the dashboard.
  • @flixos90 quickly described the main benefits of the alternative dashboard widget approach:
    • it requires less logic;
    • it is harder to unintentionally hide;
    • it matches what the browsehappy project did.
  • We discussed how best to set the priority of the widget, so it wonā€™t be displayed below the fold. @clorith noted that adding it to dashboard.phpĀ would ensure it is always shown first, just like the browsehappyĀ one.
  • Those present during the meeting unanimously voted for the dashboard widget, instead of the admin notice. We thus decided to go with the alternative approach of the dashboard widget moving forward.
  • We decided to work on getting this into trunk for now, with the option of backporting it to the next minor release if thereā€™s consensus later on.
  • The reshowing of the widget should not be included in the code for now, but could be part of the ā€œdatabase migrationā€ code that gets run on updates. This lets us defer the decision of when to reshow.
  • The discussion then moved on to a ServeHappy API endpoint on wp.org that could be used to dynamically control the behavior of the dashboard widget.
  • @flixos90 has implemented a first version of the API endpoint following the details weā€™ve discussed, and it is already available right now:Ā https://api.wordpress.org/core/serve-happy/1.0/?php_version=5.2
  • The information that is sent to the ServeHappy API endpoint (PHP version + indirectly IP address through server access logs) might have implications on GDPR compliance. We should raise this concern in the #gdpr-compliance channel.
  • We discussed how to let hosts provide upgrade information. A mechanism using constants or filters would be preferable to providing this through the API endpoint, as weā€™d want to decentralize this information and not maintain it ourselves.

Next weekā€™s meeting

  • Next meeting will take place onĀ Monday, February 26, 2018 at 16:00 UTC inĀ #core-php.
  • Agenda: Discuss the new API endpoint.
  • If you have suggestions about this but cannot make the meeting, please leave a comment on this post so that we can take them into account.

#core-php, #php, #servehappy, #summary

Dev Chat Summary: February 21st (4.9.5 week 3)

This post summarizes the dev chat meeting from February 21st (agenda, Slack archive).

4.9.5 planning

  • @danieltj self-nominated to lead this minor release, but as a first time lead weā€™d like someone who already led one to be deputy. Please reach out to @jbpaul17 (@jeffpaulon Slack) or comment on this post with nominations.
  • @audrasjb able to assist with bug scrubs, testing, and triage
  • 4.9.5 timeline is still dependent on reducing the number of sites stuck on 4.9.3
  • Auto-update needs automated end to end tests, @jorbin to look into specifying whatā€™s needed and @joostdevalk on getting implementation assistance
  • @schlessera to investigate why the update via WP-CLI didnā€™t fatal whereas the cron update did

Updates from focus leads and component maintainers

General announcements

  • @iandunn ready to commit the following tickets, but would like a quick review from another committer first:
    • #41112 ā€“ Show WordCamps higher up in the News Dashboard widget ā€“ @sergey to review and mark for commit
    • #42282 ā€“ Provide means of executing PHPUnit continuously over watched files in local environments
    • #43101 ā€“ Test to ensure MediaElement SWFs arenā€™t accidentally added to build
  • @benoitchantre looking for review on four tickets:
    • #36455 ā€“ Call opcache_reset() after plug-in, theme or core update
    • #14877 ā€“ Ability to create exclusive custom taxonomies
    • #27111 ā€“ Turning off global comments should include existing content
    • #42645 ā€“ Support passing version number to add_editor_style() ā€“ @danieltj has a patch for this but it needs testing
  • @mte90 looking for review on four tickets:
    • #40810 ā€“ wp_mail fails to send email on WP auto update when wp-cron is called directly by php
    • #30991 ā€“ Post type object capability ā€˜delete_postsā€™ is referenced in the posts list table but does not exist unless ā€˜map_meta_capā€™ is set to true for post type
    • #20037 ā€“ Introduce ā€˜noindexā€™ filter for robots meta tag
    • #14148 ā€“ wp_get_attachment_url() is not url encoding

Next meeting

The next meeting will take place on February 28, 2018 at 21:00 UTC / February 28, 2018 at 21:00 UTC in the #core Slack channel. Please feel free to drop in with any updates or questions. If you have items to discuss but cannot make the meeting, please leave a comment on this post so that we can take them into account.

#4-9-5, #core, #core-editor, #core-media, #dev-chat, #gdpr-compliance, #gutenberg, #summary