WordPress 3.6 Cycle

I’m going to be leading the WordPress 3.6 cycle. I’d personally like the focus of the release to be about content editing (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., autosave, workflow, editing modes, etc), but of couse that won’t be locked down until we have our 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. planning meeting in early January.

What I need in the meantime is to pick a backup lead. Someone who will help me with the planning, execution, and delivery of the release, as well as be able to step in if for some reason I am unable to finish. If you think you’d be a good person for that job:

Apply to be the WordPress 3.6 Backup Lead

#3-6, #release-lead

How to Develop for HiDPI (“Retina”) without a Retina MacBook Pro

How to Develop for HiDPI (“Retina”) without a Retina MacBook Pro

#hidpi, #retina

Recognition, and news about the 3.5 cycle

Before we kick off 3.5 development tomorrow with the scope session, there are a few quick announcements!

Andrew Nacin’s prolific contributions, encyclopedic knowledge of the codebase, and his increasing development leadership have undoubtedly been known to you all. We’re now recognizing that leadership by promoting Nacin to a Lead Developer!

Daryl Koopersmith has had temporary commit for the past few release cycles, and should be known to you for his work on nifty features such as the theme 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., distraction-free writing, and our fast-fast-fast linking dialog. We want him to keep bringing it for many releases to come, so we’re dropping the “temporary” bit and letting him keep ongoing commit access.

Next, Jon Cave (“duck_”) is having his temporary commit extended once again for the 3.5 cycle. Jon’s keen eye has been quite helpful, especially when it comes to improving WordPress security.

Finally, we’re trying something a little bit different for the 3.5 cycle. We’re going to have a specific release leader — someone who has both primary authority and primary responsibility for the release. They’ll lead the scope discussion, they’ll coördinate the development process, they’ll crack the whip when people aren’t delivering on things they promised, and they’ll make the hard decisions about whether features stick or get punted. If this works, we can make this a rotating gig.

For the 3.5 cycle, Andrew Nacin will take the lead, and Daryl Koopersmith will be his second-in-command. These are your point people for this release. I, for one, am excited to see what they (and you) can accomplish!

#3-5, #release-lead

Canonical redirects and IIS

Canonical redirects, which were disabled on IIS several releases ago, have ben reënabled for IIS. I’d like any issues with IIS redirects to get worked out in this cycle, and would appreciate thorough testing by everyone with access to various IIS environments. File new tickets for any issues you encounter.

Team Update: Multisite (Wednesday)

I worked some more on the patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. we had for #19810. The original patch had features that exceeded our original scope (namely: the ability to bulk-add users). I removed that, cleaned up the JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. a bit, and we now have a patch that can probably go in and be iterated.

https://core.trac.wordpress.org/attachment/ticket/19810/19810.5.patch

Next up is making it work in the add-user-to-blogblog (versus network, site) interface in the Networknetwork (versus site, blog) Adminadmin (and super admin).

#multisite, #team-update

As the WordPress core team is in the…

As the WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. team is in the middle of an in-person meetup, we’ll be skipping the 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. dev chat this week. We’ll be collecting our notes throughout each day of the meetupMeetup All local/regional gatherings that are officially a part of the WordPress world but are not WordCamps are organized through https://www.meetup.com/. A meetup is typically a chance for local WordPress users to get together and share new ideas and seek help from one another. Searching for ‘WordPress’ on meetup.com will help you find options in your area. and posting a summary the following day.

#irc, #meetup

WordPress 3.2, the plan: faster, lighter

Timelines and assignments will be decided next week, but in the meantime, here’s what WordPress 3.2 is looking like:

  • Faster release cycle than 3.1 — more focused release. I’ll be taking point on this release, making sure people stay on target and making sure we don’t try to slip “one more thing” in. Don’t make me get mean. 🙂
  • The theme is “faster, lighter.” We’re dropping support for outdated technologies. We’re looking at making things faster, and we’re looking at making the writing experience more lightweight and calming.
  • List Tables 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. improvements (Westi and Koop) — finalize the API for third party use and more flexibility.
  • List Table XHR loading — to be investigated only after List Table API has stabilized. Make sure it’s worth it before we burn time on it.
  • PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 5.2 (5.2.4, specifically) to be required. Drop compat. But don’t go adding a bunch of PHP5 stuff. This release is about dropping the old, not adding the new. More red than green.
  • 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/. 5 to be required. This quite literally involves no work beyond changing the requirements. Do not change queries.
  • IE6 EOL for the adminadmin (and super admin). If BrowseHappy is updated in time, we can consider adding a “use a real browser” nag for IE6 users. We probably can’t drop much CSSCSS Cascading Style Sheets., as IE7 shares a lot of the issues. This is mostly symbolic, and reduces the platform combos we need to test. This also means any security issues that are shown to only affect IE6 only can be lowered in priority.
  • Distraction Free Writing. This is our headline “ooh, shiny” user feature. Replace our current fullscreen implementation with something more beautiful, more useful (in terms of line-length and font size), and simpler (only limited RTE functionality). Look at WriteRoom, OmmWriter, http://www.quietwrite.com/ for inspiration. Koop is investigating this, and may crank out a quick plugin to jump-start development efforts
  • Upgrade improvements. Changed-files-only upgrades can be done with zero changes to coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. For the first effort, let’s just do updates to the latest point-point from within the same major version. So, 3.2 to 3.2.2 and 3.2.1 to 3.2.2. Optionally consider scanning for changed core files and offering them a full upgrade to overwrite those changed files. Skip the wp-contents directory when upgrading (no more upgrading the default theme or bundled plugins).
  • Speed improvements. There are a bunch of little things we can do to make WordPress load or at least “feel” faster. Nacin is looking at PHP lazy loading. He also is working on a patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. to make the admin menu load faster by doing the expansion in PHP. We can make the dashboard faster by not doing async requests for panes if the cache is hot. Dion has some FTPFTP FTP is an acronym for File Transfer Protocol which is a way of moving computer files from one computer to another via the Internet. You can use software, known as a FTP client, to upload files to a server for a WordPress website. https://codex.wordpress.org/FTP_Clients. improvements that should make upgrades a lot faster for people using a certain FTP server. Everyone can get involved here. Pick sometime small and manageable that will make WordPress a little faster. Together, they’ll add up to a bullet point in the release post.

#3-2

Hotfix

We done goofed. One of the security fixes for WordPress 3.0.5 was overzealous. It fixed the issue, but it also stripped advanced HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. (on display, not save, thankfully) from comments by people with the unfiltered_html capability. It’s sort of a rare 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. — doesn’t apply to multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site installs, and not many people know that Editors and Administrators on single WP installs can use images etc in comments, so we don’t think it warrants another release. People have WordPress 3.0 fatigue already. And 3.1 is so close I can taste it (takes like pork BBQ, natch). But it is still annoying.

As Nacin mentioned, a hotfix for this issue went into Akismet 2.5.3. Akismet is very popular, and just happened to be planning an update today. We figured that would be an easy way to fix the issue for some WordPress users today. The Akismet team at Automattic was kind enough to oblige.

But this wasn’t the first non-critical-but-sort-of-annoying bug in WordPress, and it won’t be the last. So I created a 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: Hotfix. It fixes the 3.0.5 bug, but I intend for it to fix selected future bugs as well. If we can get this installed on a bunch of sites, it could be a very handy way to push fixes out to people faster than we can with WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. releases.

We spun WordPress 3.1 off into a branch….

We spun WordPress 3.1 off into a 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".. Several of us are at the WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. Phoenix coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. development workshop, and wanted to be able to tackle some minor enhancements or bugs so that we can get “buy in” by the participants and get them their first props.

Subversion switch your test installs to branches/3.1. Except for today at the workshop, we’re not going to be doing any 3.2 stuff. Don’t get distracted! We still need you to test the heck out of 3.1, and are hopeful that we can release soon.

Update: I created a “wcphx” milestone, against which we can close any tickets we do today. That will become the 3.2 milestone after 3.1 is released, so we have the historical record that the tickets were closed against 3.2. I just don’t want to call it 3.2 now or people will start putting tickets in that milestone. 🙂

Update 2: We sort of ran out of time before we got to committing stuff. Got a lot of people hooked up with local dev environments (or better local dev environments). and spent a lot of time getting them up to speed on TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress.. And of course spreading the gospel of debug bar. Going to just leave the 3.1 branch. We’d have to create it in a few days anyway. So until 3.1 launches, 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. and branches/3.1 should remain identical.

Clarification in Licensing Language

WordPress has always stated that its license was the GNU GPLGPL GNU General Public License. Also see copyright license., and has bundled version 2 of the license, even though no GPL version was specified. The text of version 2 (as well as 1 and 3) says that if no version is specified, the software can be redistributed under the terms of any version of the GPL published by the FSF.

However, WordPress contains libraries which are licensed under the GPL “version 2 or any later version,” which obviously excludes version 1 of the GPL. Here is the reality: the GPL version 1 is effectively irrelevant. It hasn’t been a commonly used license since before Matt Mullenweg was in third grade! Clarifying WordPress as being licensed under the GPL “version 2 or later” resolves these niggling library licensing concerns or ambiguities, and clarifies where WordPress stands.

It was the intention of the WordPress founders and developers to be GPL version 2 or later from the beginning, and we have now made that license properly explicit.

#gpl