Daily scrubs for 4.0

Let’s do daily scrubs / ticketticket Created for both bug reports and feature development on the bug tracker. triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. for the duration of the 4.0 release cycle at 15:00 UTC in #wordpress-dev. Fellow committers and component maintainers, please comment below if you can pledge to be there at least once or twice a week, and potentially help drive that particular scrub.

For those who aren’t as familiar with scrubs / scheduled ticket triage sessions, they aim to provide some structure and a known time to focus on existing TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets. At least one committercommitter A developer with commit access. WordPress has five lead developers and four permanent core developers with commit access. Additionally, the project usually has a few guest or component committers - a developer receiving commit access, generally for a single release cycle (sometimes renewed) and/or for a specific component. should be around for each one for rapid feedback. If you are unable to make the time, that’s okay – there are often contributors at various hours in the #wordpress-dev IRCIRC Internet Relay Chat, a network where users can have conversations online. IRC channels are used widely by open source projects, and by WordPress. The primary WordPress channels are #wordpress and #wordpress-dev, on irc.freenode.net. channel who can give feedback and look at tickets, and ad hoc scrubs are very much encouraged. Those who are interested in reviewing patches and triaging tickets are especially welcome, and anybody is welcome to bring a ticket for eyes. If no specific tickets come up, we’ll move to reports, such as that for the next major release or ancient tickets.

#4-0, #bug-scrub

Agenda for today’s dev chat Beta timing on…

Agenda for today’s dev chat:

  • BetaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. timing – on schedule for next week, 7/2.
  • Organize and rally around pushes on features: oEmbed, i18ni18n 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., pluginPlugin 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 install experience, media grid.
  • #22023: Remove UNIQUE for slug in wp_terms.
  • Texturize/formatting.

Please propose other items in the comments below.

#4-0, #agenda

Summary of 6 18 dev chat IRC log…

Summary of 6/18 dev chat (IRC log):

  • i18ni18n 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.: First run for installation is in, including .org APIAPI 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.; @nacin has posted next steps. Related: #28571
  • CustomizerCustomizer Tool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings.: Appearance component renamed to Customize in TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress.. Office hours scheduled for Fridays at 19:00 UTC (listed in the sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. here). Particularly active contributors include @westonruter, @celloexpressions, and @ocean90.
  • Editor Experience: Focus on the scrolling piece first and work to get that in this week. Discovered that the Gmail inline reply experience very closely matches the desired effect.
  • PluginPlugin 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 Install Experience: @melchoyce posted a quick wireframe and a prompt for UI/UX thoughts, particularly on workflow. Also called for screenshots of web store experiences to look at comparable art and make more informed decisions about info/metrics displayed, such as ratings, download counts, descriptions, etc. @stephdau and @tellyworth are working on initial patches to align the install screen with the theme browser. Tickets: #27440, #22599, #19784.
  • Schema Changes: @nacin is planning on going over indexes with @pento, @batmoo, and @bazza
  • TaxonomyTaxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies./Schema: #22023: we need to evaluate how terms are inserted and whether a race is possible (@nacin).

Thanks to @designsimply for her help with notes and summaries this release!

#4-0, #summary

like_escape() is Deprecated in WordPress 4.0

@miqrogroove has written a blog post on his personal blogblog (versus network, site) explaining why like_escape() has been deprecated in WordPress 4.0. It has been reposted below.

PluginPlugin 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 authors and website developers who work with WordPress database queries should notice an important change coming in WordPress 4.0.

The function like_escape() is no longer used in WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. code. It is still available as a deprecated function, so it still works in any existing plugins that rely on it. However, a new and different function is available that should be used in all new code.

Deprecated means that anyone using code that calls like_escape() with WP_DEBUG enabled will see an error message. If WP_DEBUG_LOG is also enabled, the error message will appear in the /wp-content/debug.log file.

Let’s look at an example of core code where I removed like_escape() and implemented the new function $wpdb->esc_like().

3.9 Old Style

$search_orderby_s = like_escape( esc_sql( $q['s'] ) );
$search_orderby .= "WHEN $wpdb->posts.post_title LIKE '%{$search_orderby_s}%' THEN 1 ";

What did this do? It was an old snippet from /wp-includes/query.php that set up a search for post titles. The input $q['s'] was escaped using two functions before it was added to the post_title LIKE expression. Now let’s see how I replaced that snippet in the next version.

4.0 New Style

$like = '%' . $wpdb->esc_like( $q['s'] ) . '%';
$search_orderby .= $wpdb->prepare( "WHEN $wpdb->posts.post_title LIKE %s THEN 1 ", $like );

There are two important differences to notice.

  • I changed the like_escape() call to $wpdb->esc_like().
  • I changed the esc_sql() call to $wpdb->prepare().

The second change is important because esc_sql() is not secure if it is called before, or inside, the call to the new function $wpdb->esc_like(). By relying on the preferred style of the function prepare(), I can easily see that each instance of $wpdb->esc_like() will run first instead of last.

4.0 Alternative Style

Here is something that still works, but I avoided using it. Notice the old query is unchanged. It is critically important to call the two escaping functions in the correct order when using $wpdb->esc_like().

$search_orderby_s = esc_sql( $wpdb->esc_like( $q['s'] ) ); // This is the correct order.
$search_orderby .= "WHEN $wpdb->posts.post_title LIKE '%{$search_orderby_s}%' THEN 1 ";

How Should I Get My Code Ready for 4.0?

The nice thing about deprecated functions is that you can still use them and they don’t change. Your existing code should work fine.

When you write new code, remember that using $wpdb->esc_like() is not compatible with WordPress 3.9. This should be avoided if you need compatibility with old versions. When you are ready to adopt 4.0 as your minimum version, consider using the new function.

If you have a specific need for the new function in old versions of WordPress, I suggest copying the new function into your plugin under a different name. This would be the simplest solution, but rarely necessary.

Why Did like_escape() Change to $wpdb->esc_like()?

There were several problems with the old function that could not be fixed.

  • Documentation said the function’s output was safe to use in SQL queries. That was not correct.
  • The function’s output was not fully compatible with LIKE expressions in MySQLMySQL MySQL is a relational database management system. A database is a structured collection of data where content, configuration and other options are stored. https://www.mysql.com/..
  • The function had been used many different ways in core code, some of which were incompatible with the desired output.
  • Changing the old function instead of creating a new one would have caused many security problems in plugins.
  • The function was related to $wpdb because of its MySQL syntax, which does not work on other databases.

Is There a Security Problem with like_escape()?

The old function like_escape() was not intended to be used in any security sensitive context. There are no security problems when it is used correctly.

With that said, I am concerned that plugin authors frequently confused the old function like_escape() with esc_sql(), which was used for security. The documentation for like_escape() was misleading and very confusing about this point.

Just remember, like_escape() does not provide any security for your database!

So What Does $wpdb->esc_like() Do Anyway?

Whenever user input or other raw data are copied into a WordPress query, the data must be escaped using $wpdb->prepare() or esc_sql(). This prevents certain characters, such as quotes, from getting confused with SQL commands.

In a LIKE expression, there are additional special characters that are used as wildcards to search for partial matches in the database. Those wildcard characters have to be escaped from the user input so that they are not confused with the wildcards added by the programmer.

Before adding user input to this type of search query, $wpdb->esc_like() should be called for compatibility, and then $wpdb->prepare() must be called for security, in that order.

How to Use $wpdb in Functions

It is very rare to use $wpdb->esc_like() without also running a query. But just in case you want to …

function my_search( $input ) {
    global $wpdb;
    $escaped = $wpdb->esc_like( $input );
    ...
}

… remember to reference $wpdb as a global variable.

#4-0, #database, #dev-notes, #query, #security

Last Week(s) in WordPress Core

Hi Everyone! It’s time for another update. This edition covers through Sunday, June 15th, and has taken a while due to travel, but @swissspidy & @designsimply have joined the team, helping to gather the information to bring us up to date. Hopefully this will help these updates be a bit more sustainable over time. If you’re interested in pitching in with these updates as well, please let me know in the comments below!

Especially of note are the first pass of the grid view for the media library, several SSLSSL Secure Sockets Layer. Provides a secure means of sending data over the internet. Used for authenticated and private actions. and oEmbed updates, and a new ‘BetaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. Testing’ tab on the Plugins screen.

Adminadmin (and super admin)

  • Plugins Screen: Add a new ‘Beta Testing’ tab on the pluginPlugin 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 installation screen, for features as plugins such as Press This. [28749] #28513
  • Media Library: Grid view for the media library, first pass. This is alpha; expect imperfection to start. [28682] #24716

SSL

  • Forcing SSL logins now forces SSL for the entire admin. [28609] #10267
  • Force SSL on the frontend when the home URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org uses HTTPSHTTPS HTTPS is an acronym for Hyper Text Transfer Protocol Secure. HTTPS is the secure version of HTTP, the protocol over which data is sent between your browser and the website that you are connected to. The 'S' at the end of HTTPS stands for 'Secure'. It means all communications between your browser and the website are encrypted. This is especially helpful for protecting sensitive data like banking information.. [28610] #27954
  • Force SSL admin when siteurl is explicitly configured with HTTPS. [28674] #27954
  • Use a secure logged_in_cookie when the home URL is forced HTTPS. [28627] #15330
  • Deprecate url_is_accessable_via_ssl(). [28709] #19555

Embeds

  • Read src attribute for the [embed] shortcodeShortcode A shortcode is a placeholder used within a WordPress post, page, or widget to insert a form or function generated by a plugin in a specific location on your site. if the shortcode body is empty. [28559] #24456
  • Add “edit” mode for [embed] and URL media previews. [28752] #28532
  • New wp_embed_register_handler to catch bad YouTube URLs and try correct them. [28652] #24660
  • Add oEmbed support for:
  • Update SlideShare oEmbed regex. [28597] #28380
  • Remove Viddler oEmbed support. [28596] #28379
  • Make it simpler for plugins to register MCE views. [28680] #28458
  • Set shortcode equal to the passed type from default args when calling wp.mce.views.register(). [28689] #28458
  • Improve handling of embed errors/error messages. [28754] #28195

Themes and Templates

  • Add a filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. to human_time_diff() to allow more detailed depictions of time differences. [28670] #27271
  • Allow simple modification of sections of the title by adding a wp_title_parts filter to wp_title(). [28669] #17877
  • Add CSSCSS Cascading Style Sheets. rules to ensure that videos will be responsive, regardless of theme. [28650] #28414
  • Replace TEMPLATEPATH and STYLESHEETPATH with get_template_directory() and get_stylesheet_directory(). These constants are now deprecated [28563] #18298
  • Update Twenty Thirteen and Twenty Fourteen to Genericons 3.0.3. [28692] [28693]

AccessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility)

  • Improve keyboard accessibility for the media modal. [28607] #23560
  • Add screen reader labels to the date inputs on the post editing screen. [28730] #25461

WP_Query

  • When parsing the main query, if s is set to empty: ?s= and $this->is_main_query() && array_key_exists( 's', $this->query ) – kill the query instead of loading the homepage. This will load the search page with no results. [28612] #11330
  • Kill queries that explicitly pass empty arrays to category__in, tag__in, tag_slug__in, and author__in to WP_Query. [28664] #28099
  • Fix SQL generation when meta_query has an 'relation' => 'OR' for its queries and wants to 'orderby' => 'meta_value'. [28659] #25538
  • Allow users to sort posts by type in WP_Query. [28605] #28214
  • Add access modifiers to WP_User_Query Add magic methods for BC: get(), set(), isset(), unset(), and call(). [28528] #27881, #22234

Internals

  • Wide-reaching changes to do away with many instances of variable-variables. See #27881 for full list of changes.
  • Eliminate use of extract() within WordPress. #22400
  • Fix curly quotes around numbers when applicable. [28721] #8775
  • Only include relevant post authors in WXR exports. [28731] #20206
  • Append the date to $wp_version in the build output, for nightly packages. [28611] #26751.
  • Update wp_insert_comment() and wp_new_comment() with a check for successful database insert. [28672] #28254
  • Use get_pages() instead of a raw SQL query in get_body_class(). [28696] #28159
  • Pre-populate the selected URL or mailto:<email-address> when “Insert/edit link” is clicked. [28705] #19992
  • Live update the menu item title when the user is editing the “Navigation Label” field. [28707] #23076
  • Deprecate get_all_category_ids(). Suggest get_terms() as a replacement. [28679] #21200
  • Deprecate like_escape() and replace with $wpdb->esc_like(). [28711] #10041
  • Redirect edit.php?post_type=attachment to upload.php to avoid an empty list table. [28729] #27951

Formatting

  • Add new function wp_spaces_regexp() to filter for common whitespace characters. [28708] #27588
  • Treat &nbsp; like whitespace by using wp_spaces_regexp() instead of raw regex. [28716] #27588, [28717] #27587, [28718] #23185
  • In wptexturize(), ensure that texturization does not corrupt contents of HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. elements, HTML comments, and smartcode attributes. Adds a variety of unit tests/assertions. [28727] #27602, #12690, #8912
  • Various updates to wptexturize() in [28719] #19308, [28725] #22823, [28726] #20342
  • Allow user to disable texturization. [28715] #19550

TinyMCE:

  • Update TinyMCE to 4.0.28. [28606] #28391, #27941
  • In iOSiOS The operating system used on iPhones and iPads., fix placing the caret at the bottom of longer posts when the keyboard is open and disable resizing on switching editors and on show/hide of the kitchen sinkKitchen Sink When using the WYSIWYG (What You See Is What You Get) editor in WordPress, you can expand the capabilities to allow more options. This expanded area is called the "Kitchen Sink." row. [28626] #28242
  • Fix problems with undo/redo after resizing an image several times. [28614] #28389
  • Fix saving the editor content on switching from Visual to Text. [28576] #28353

Thanks to @aaroncampbell, @adamsilverstein, @alexander.rohmann, @aliso, @atimmer, @avryl, @azaozz, @boonebgorges, @bramd, @celloexpressions, @clifgriffin, @coffee2code, @danielhuesken, @DavidTheMachine, @DeBAAT, @donncha, @DrewAPicture, @eddiemoya, @edwin-at-studiojoyo.com, @ericlewis, @filosofo, @frank-klein, @Funkatronic, @garhdez, @gauravmittal1995, @gcorne, @georgestephanis, @ghost1227, @grahamarmfield, @harrym, @helen, @iamtakashi, @iljoja, @issuu, @ixkaito, @jackreichert, @JanHenkG, @Jayjdk, @jdgrimes, @jeffstieler, @jeremyfelt, @jesin, @jgadbois, @jjeaton, @jkudish, @joedolson, @johnbillion, @johnjamesjacoby, @johnzanussi, @jtsternberg, @kitchin, @knutsp, @kovshenin, @kpdesign, @kraftbj, @kurtpayne, @kwight, @lancewillett, @lessbloat, @markoheijnen, @mdbitz, @MikeHansenMe, @mikemanger, @miqrogroove, @mrmist, @MuViMoTV, @nabil_kadimi, @nacin, @nd987, @Nessworthy, @netweb, @niallkennedy, @ocean90, @obenland, @pdclark, @pento, @purzlbaum, @rclations, @redsweater, @ruudjoyo, @schoenwaldnils, @scribu, @senlin, @SergeyBiryukov, @sharonaustin, @shaunandrews, @simonwheatley, @sixhours, @slimndap, @solarissmoke, @tar.gz, @tillkruess, @topher1kenobe, @torresga, @UmeshSingla, @winterDev, @wonderboymusic, @wpsmith, @zamfeer, and @duck_ for their coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. contributions!

Thanks to @swissspidy & @designsimply for their help with compiling this post.
RevisionsRevisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision. covered: [28528] to [28757]. For the complete list of commits to trunktrunk A directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision., check out the log on Trac.

Interested in joining in? Write or test a patch for 4.0.

#4-0, #week-in-core

In yesterday’s Weekly Developer Chat various minor schema change…

In yesterday’s Weekly Developer Chat, various minor schema change tickets were discussed. We would want to address any changes in as efficient a fashion as possible, and have discussed using the pre_schema_upgrade() function rather than dbDelta(), so we can control the queries more precisely.

Below is a list of the tickets discussed yesterday, along with which tables they affect. Please add any questions, concerns, additional tickets, or +1’s for this work in the comments.

wp_comments

  • comment_author_email#21435 – “wp-includes/comment.php line85 causes slow query due to the non-indexed column” raised by @matsubobo (proposes adding an index to comment_author_email)
  • multiple-column indexes#15499 – “Add an index for get_lastpostmodified query” raised by @simonwheatley (proposes adding an index on post_type, post_status, post_date_gmt and another on post_type, post_status, post_modified_gmt)

wp_options

  • option_name#13310 – “Extend option_name to varchar(255)” raised by @scribu

wp_posts

  • post_name#10483 – Increase field length from 200 to 400. #21212 – Reduce index length to 191 for InnoDB.
  • guid#18315 – “Add an index to the GUID column in the posts table” raised by @alexkingorg
  • post_password – #881 – “Lengthen password field for protected posts” raised by @ScytheBlade1

wp_terms

  • slug#22023 – “Remove UNIQUE for slug in wp_terms” raised by @nacin (related). #16230 – Increase field length from 200 to 400. #21212 – Reduce index length to 191 for InnoDB

wp_term_taxonomy

  • modify existing index#5034 – “Impossible to have duplicate categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. slugs with different parents” raised by @snakefoot (proposes adding an index on term_id, taxonomy, parent)

#4-0, #database

For today’s dev chat starting shortly let’s Do…

For today’s dev chat starting shortly, let’s:

  • Do a quick check on any of the bigger features for resource needs or sticking points (media grid, i18ni18n 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., plugins page, oEmbed).
  • Talk about shared terms.
  • like_escape(): #10041.
  • Do an open-ended bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. scrub, building on the momentum @wonderboymusic kicked off with commits and this post. Will guide these with specific reports to be linked in dev chat.

Other proposed items:

  • 3.9.2 status.

Add yours here below.

#4-0, #agenda

Proposed agenda items for today’s meeting State of…

Proposed agenda items for today’s meeting:

  • State of .org APIs for plugins and i18ni18n 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. (@tellyworth and @nacin), where people can help with tickets, storyboarding, or otherwise.
  • TaxonomyTaxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies. roadmap: #17689 needs active discussion, please.
  • Media grid: #24716
  • oEmbed sandboxing: #28249

Add anything in comments below.

#4-0, #agenda

Summary of 5 28 dev chat IRC logs…

Summary of 5/28 dev chat (IRC log):

  • @nacin and @tellyworth have been working on the .org APIAPI 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. side for i18n and plugins page improvements respectively and should be ready for work on the coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. side soon. Be on the lookout for tickets and discussions.
  • @ericlewis has been working through the Media component in TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. and will be holding weekly scrub in #wordpress-dev alongside media grid chats, Fridays at 17:00 UTC.
  • @wonderboymusic has been evaluating various oEmbed endpoints as we add and remove them. Some services need some more evaluation: #28379.
  • Embed representations in wpview need an iframeiframe iFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser. sandboxing solution investigated to avoid script conflicts inside TinyMCE and the adminadmin (and super admin): #28249
  • The JSON REST API came a long way in the past week, especially on the documentation front, and is being placed onto the roadmap for the 4.1 release. From @nacin:

1.0 is a great step in the right direction; let’s push it hard; let’s put it squarely, loudly, and officially on the 4.1 roadmap (I’m comfortable doing that); let’s get a lot of core contributorsCore Contributors Core contributors are those who have worked on a release of WordPress, by creating the functions or finding and patching bugs. These contributions are done through Trac. https://core.trac.wordpress.org. focusing on it for the final mile, especially when it comes to internals

let’s get a lot of people to build things on it, including inside automattic, mobile apps, even wordpress.orgWordPress.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/ stuff; let’s branchbranch A directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a "branch", such as "the 4.0 branch". off 1.0 so we can decide paint and carpet colors on the master branch

  •  And finally, several people were added to various Trac components as component maintainers. You can be added at any time, or get on the road to becoming one by signing up for granular notifications on the components page.

#4-0, #dev-chat

Summary for 5/21, Agenda for 5/28

Summary of 5/21 dev chat (IRC log):

General

  • Posts like the i18n goals one serve as a great model for anybody who has ideas for a feature or component roadmap, whether that’s within one cycle or longer term: a list of concrete goals that can be divided up into specific tasks.
  • The make/* blogs should be used as much as possible for discussions and progress updates. Teams that have been using separate P2s but should consider using the make.wordpress.orgWordPress.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/ instead for wider reach and more active participation from the community.
  • Keep in mind that plugins are supposed to encourage rapid and possibly wild experimentation – please do not discourage that.
  • Think of meetings as blocked out times where you can more reliably get a group together and get unstuck as needed, but we should take advantage of async (TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress., P2P2 A free theme for WordPress, known for front-end posting, used by WordPress for development updates and project management. See our main development blog and other workgroup blogs.) and adhoc (IRCIRC Internet Relay Chat, a network where users can have conversations online. IRC channels are used widely by open source projects, and by WordPress. The primary WordPress channels are #wordpress and #wordpress-dev, on irc.freenode.net. outside of meeting) discussion as much as possible.

Team Updates

  • i18n goals for 4.0 have been posted, @nacin is seeking people to help with a lot of it. @yoavf, @kovshenin, @iandunn, @coffee2code, and @otto42 have done or will do some of the i18ni18n 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. tasks.
  • JSONJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/. was given another week to collate a detailed compare-and-contrast with the other available APIs, including the JSON APIAPI 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. pluginPlugin 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 and Jetpack/.com’s API, and proven client implementations.
  • Media Grid has a narrowed scope for 4.0 inclusion: something more visually driven than the standard list table, much like theme browser brought to themes and is being investigated for plugins in 4.0. Will also fix some long-standing issues that were brought in with 3.5.
  • Editor improvement ideas: @markjaquith and @avryl have put together a proof-of-concept plugin that we should smooth out and make a decision on.

Agenda for 5/28:

  • Make final decision on JSON REST API.
  • One sentence updates from various groups – i18n, media grid, plugins, oEmbed, etc. Come prepared.

Please propose any other agenda items in the comments below.

#4-0, #agenda, #dev-chat