Process and Scope for 3.1, Part I
Last night’s dev chat was the first of two planning meetings for 3.1. The intention of this meeting was to remind everyone of the goals for 3.1, identify features that the lead team has prioritized, get an early sense of who’s willing to work on what, and to talk about the timeline. Much of what is written here is what was posted in the dev chat last night, to retain consistency.
There were a lot of suggestions on the table. That said, quite a few suggestions fall outside the stated intentions of 3.1 (quick, fast dev cycle, no big huge projects). For anyone late to the party, here are the goals of 3.1: to have a very short dev cycle, a decent amount of testing time, and a release in mid-December. Low on new features, heavy on ui and code cleanup, and avoidance of schema changes. Save the big ideas for 3.2 where we’ll have the liberty to implement those ideas in PHP5. No schema changes and no big new APIs.
This means stuff that got worked on over the summer or can be taken more or less wholesale from a plugin or patch has a better chance of being allowed into 3.1 than a brand new idea that doesn’t already have code written. In cases where we can do something small in 3.1 to pave the way for something bigger in 3.2, that will be the approach.
To that end, the leads have identified some of the suggestions, both from the wpdevel and from other sources such as the ideas forum/WordCamp feedback/support forums, that would be appealing to include in 3.1. We’ve also identified some things that definitely do NOT fit into the scope of 3.1.
An example of something that doesn’t fit:
Media overhauls. We’re going to target 3.2 for a bunch of media fixes. The underlying code is too complex to do anything hardcore this fast. The only media things that would be acceptable in 3.1 would be small updates that don’t change the overall flow, such as the request to make the caption able to hold html to include links. If someone volunteered to code that, that addition would be acceptable in terms of scope. Other discrete things like this would work. Refactoring the way featured images work would be out of scope.
Another thing that doesn’t fit is per-post/page/category widget selection. There are plugins that do this, and the code is nuts underneath. We want to stick to easy wins for 3.1.
Now on to things that fit!
Features
Polishing features introduced in 3.0 can be one umbrella task. BUT — this means spit and polish ONLY, not adding features to features.
New feature: Mark Jaquith is committed to getting in some advanced taxonomy queries stuff, which already has some movement in trac via scribu.
Mark Jaquith also wanted to get down and dirty with roles/caps, but that’s just too big an undertaking for 3.1. Maybe in 3.1 we could do the get_users() and friends cleanup that scribu started on to pave the way for role cap cleanup next time around.
In short? Mark Jaquith and scribu will be joined at the hip this cycle.
New feature: Internal linking. This is my pet user feature for this release. It has been requested from users for years, got the most +1s on the wpdevel post last week, and is a missing piece of true CMS functionality. Since we likely won’t have Andrew Ozz for this release, Daryl Koopersmith is going to take a stab at this, with backup from Austin Matzko if needed.
New feature: The ajaxified admin screens that scribu did for GSoC, with some UI cleanup applied. There was also a GSoC project by Matt H on comment moderation that needs to be reviewed for inclusion.
New feature: Admin Bar. Connect the back end to the front end. Most useful for people on multisite installs, but still useful for single-site users in providing 1-click access to dashboard, new post form, etc. We’ll be looking at both the original Viper007Bond admin bar plugin and the wordpress.com revised admin bar recently done by Andy Peatling. Note: there was some resistance to this being in core rather than a plugin. A compromise of making it optional was discussed.
Cleanup: UX/UI cleanup across the application, including multisite. This could turn into a ton of new dev, so we need to restrain ourselves. The UI group will do a review and come up with a list. Jane Wells and John O’Nolan will manage UI contributions from the group so that approved UI makes it into tickets.
Ongoing maintenance: Bug fixes. Peter Westwood is all over bug fixes. Anyone and everyone invited to submit patches for known bugs.
New feature: Separate network dashboard from the site dashboards (in multisite). Ryan started on this over the summer, and all agreed it would be great. Needs some UI love. Ryan also looked at doing a personal dashboard to replace the wonky global dashboard you get in multisite when someone has an account but no site. This might be a better 3.2 candidate, but we’ll see if we can get it to a reasonable place in time for 3.1.
There are some small fixes to the custom post types API that ought to be made, while staying within the ‘no big API things’ guideline. Nacin is taking charge of this.
I’d like to swipe the wordpress.com UI for searching/browsing installed themes, as it’s better than what we have in core (especially useful for multisite and sites with lots of installed themes, like those on shared hosting). I helped on the UI when John Godley made it last year, so I’d be comfortable with almost a straight swipe.
New feature: Post templates/post styles. Ryan will be handling this one.
New feature: Making QuickPress a template tag, so it can be used for front-end posting. Aaron Jorbin will be handling this.
Other suggestions not on this list that fit into the 3.1 guidelines (no schema changes, no big new APIs, etc) will be considered until feature freeze if a well-tested patch has been posted by then. Well-tested means more than one person, so if you want your pet project to be considered for 3.1, publicize your patch and get people to test it and post their results to the trac ticket! If you do not take on this responsibility, please do not complain if your patch is not considered; tested patches will always get priority.
Schedule
We want to release mid-December, preferably no later than December 15, so that the holidays won’t interfere with the release. To that end, here is the current plan:
September 9 – Confirm planned scope.
October 15 – Feature freeze; no new features added after this point, so that testing can begin on a stable-ish product (including usabilty testing of new features).
November 1 – Primary code freeze; any last adjustments based on testing after feature freeze should be finished by now and the focus shifts to fixing bugs to get to a stable beta.
November 15 – Beta period beings; from this point on, no more enhancements, only bug fixes.
December 1 – String freeze; translators rejoice.
December 15 – Release WordPress 3.1
So that’s the current thinking. The leads will be reviewing existing tickets and patches this week and working out the feasibility of including all the items outlined above. Next dev chat should see a conclusion to 3.1 scope planning, with some firm decisions on in/out and dates.
Melvin Ram 4:19 pm on September 3, 2010 Permalink
I’d like to help with the UX/UI cleanup. Where will the UI group post this list once they do the review?
Jane Wells 4:52 pm on September 3, 2010 Permalink
You will want to follow the UI blog at http://make.wordpress.org/ui and/or join the weekly IRC meetings in #wordpress-ui at irc.freenode.net.
Ozh 6:22 pm on September 3, 2010 Permalink
Is anything planned regarding option pages? I find them quite dull and messy compared to other much more lively pages such as… all the others actually.
Jane Wells 6:47 pm on September 3, 2010 Permalink
Agreed, and they’ll be included in ux/ui review, but whether or not/to what degree they will be touched will depend on how many people volunteer to write the patches once we have approved wireframes.
Carl Hancock 4:19 pm on September 3, 2010 Permalink
“New feature: Post templates/post styles. Ryan will be handling this one.”
What is this? Can someone provide more information on this new feature as it was discussed?
sorich87 4:44 pm on September 3, 2010 Permalink
http://core.trac.wordpress.org/ticket/14746
Jane Wells 4:50 pm on September 3, 2010 Permalink
The full discussion is in the IRC log. Link is in the right hand sidebar.
Kim 4:32 pm on September 3, 2010 Permalink
“New feature: Admin Bar. Connect the back end to the front end. …. Note: there was some resistance to this being in core rather than a plugin. A compromise of making it optional was discussed.”
Of the 2 possibilities, I prefer the current wordpress.com admin bar.
Please make this optional, default is off. That way users that want it will have to enable it if they want it.
Mike Schinkel 5:27 pm on September 3, 2010 Permalink
> Please make this optional, default is off. That way users that want it will have to enable it if they want it.
+1
Scott Kingsley Clark 5:36 pm on September 3, 2010 Permalink
+1
Iva 8:25 pm on September 5, 2010 Permalink
+1
Alex M. 7:17 pm on September 3, 2010 Permalink
I don’t think there’s anyone arguing that it shouldn’t be optional (i.e. you can’t turn it off).
There might be some arguing that it should be on by default, but I personally think it should be off by default as well.
As for in core vs a core plugin, I haven’t made my mind up about that one.
Alex M. 7:18 pm on September 3, 2010 Permalink
Oh, and yes, I wouldn’t recommend using much of the code behind the scenes of my plugin. It’s rather dated and messy. It’d be much better to stick to stealing ideas and concepts from it rather than code implementations (giving it a code rewrite has been on my todo list for a while).
Mike Schinkel 8:39 pm on September 3, 2010 Permalink
It would be really nice if it could be the plugin that finally kicks off the concept for core plugins that we’ve been waiting for since announced.
Mark 5:10 pm on September 4, 2010 Permalink
I’m sure there was a lot of discussion around the whole idea and that if it’s made it in, it’s made it in. Nevertheless I think the logic escapes me (even after a brief review of the irc chat) why an admin bar would be more functional to CMS usability than something such as, say, the front end editor.
I’m sure I’m not an average test case but out of the last couple dozen WordPress powered sites I’ve set up, it has never once crossed my mind that a front end admin bar would be a snazzy addition. +1 to it being optional and turned off by default, +1 to it having an uninstall feature.
Matt 5:11 pm on September 4, 2010 Permalink
Admin bar is first step toward a front-end editor — think long term.
Voyagerfan5761 6:20 pm on September 4, 2010 Permalink
Front-end editor, did you say? It would be awesome to see functionality like this integrated into core at some time in the future. (Of course, it’s a scribu project.
Ryan McCue 1:07 am on September 4, 2010 Permalink
Agreed, the WP.com admin bar seems to be the way to go, considering it was only recently rewritten as well (apparently).
Definitely agreed on making it optional, and I think a core plugin is the best way to go on this.
For the record, the bug for tracking this is #14772
Ozh 5:14 pm on September 3, 2010 Permalink
What is the “internal linking” stuff about exactly?
Otto 5:22 pm on September 3, 2010 Permalink
https://irclogs.wordpress.org/chanlog.php?channel=wordpress-dev&day=2010-09-02#m176561 has a bit of an explanation. Apparently it’s similar to this: http://wordpress.org/extend/plugins/link-to-post/
Toru 5:22 pm on September 3, 2010 Permalink
I wanted ask the same question too.
Darfuria 5:26 pm on September 3, 2010 Permalink
Linking to another post/page/category from the WYSWIG without having to grab the URL from the public site.
Ozh 6:16 pm on September 3, 2010 Permalink
Thanks for the clarification
Toru 6:24 pm on September 3, 2010 Permalink
Thank you. Yes, that is a really needed, I agree.
Iva 8:27 pm on September 5, 2010 Permalink
Would this be problematic on sites and blogs with way too many posts and pages?
Andrew Nacin 3:29 am on September 7, 2010 Permalink
AJAX-based search, plus a list of recent posts. Similar to menus.
Jonathan Christopher 5:41 pm on September 3, 2010 Permalink
I could be wrong, but I thought it was going to be something like RB Internal Links http://wordpress.org/extend/plugins/rb-internal-links/ which has been more than useful on a number of occasions.
Jane Wells 6:10 pm on September 3, 2010 Permalink
It’s not going to be specifically like any of the existing plugins that do it. We’ll review existing plugins and put together an interaction model that works best and is in line with core. Whatever inspiration and/or code can be had is great, but none of the existing plugins are exactly what I want as a starting point for the UI.
Voyagerfan5761 6:28 pm on September 4, 2010 Permalink
Whoops, I posted about that plugin just now in #11420. Thanks for explaining the thinking behind how this will happen, Jane.
Mike Schinkel 5:27 pm on September 3, 2010 Permalink
Are there a trac tickets for “advanced taxonomy queries” and “small fixes to the custom post types API” that detail scope? Thanks in advance.
filosofo 5:58 pm on September 3, 2010 Permalink
Start here for taxonomy queries, and post types API.
David Cowgill 10:47 pm on September 3, 2010 Permalink
This is a great start! Would also love to see the sticky post option & custom permalink structures enabled for custom post types.
Another one is adding a simple post type drop-down on post edit write panels. Basically bring in this plugin. http://wordpress.org/extend/plugins/post-type-switcher/
Andrew Nacin 5:42 pm on September 4, 2010 Permalink
I’m going to be looking at the first two ideas for 3.1. But I don’t foresee a post type switcher ever making it into core. Not every post type is publicly consumable content that can easily be traded off. Some might rely on specific fields, values, meta, not to mention term/taxonomy relationships, and offering a UI for that can easily break things. Keep in mind there’s no UI for post types anywhere, nor are there any plans for that to occur. The UI (same goes for the user) makes no distinction among post, page, event, employee.
Mike Schinkel 6:57 pm on September 4, 2010 Permalink
@Andrew: Point of note, non publicly consumable content will have their public argument set to false so it would be easy to exclude them from content switcher so I wouldn’t see that as a viable concern. Even better, “allow_type_switch” could be added to “supports” enabling only explicitly approved content to be switched. Posts and Pages could be set as such and then developers could choose which custom post types they wanted to enable switching. Such an approach would assure pretty much no breakage. And let me go on record to say that the team will eventually add UI features for post types because 80% of users will demand it (just sayin…)
David Cowgill 7:31 pm on September 4, 2010 Permalink
@Andrew, great. Those features will be welcome additions. For the custom permalink structure I recommend it can either inherit the WP defined one or you can create a totally different structure.
I see what you mean about breaking things with a post type switcher. Even though it’s complicated, I have to agree with Mike that eventually people will request it. Guess it will have to wait until then.
Rich Pedley 6:19 pm on September 3, 2010 Permalink
No mention of the accessibility that jorbin mentioned?
Considering that Matt is a member of GAWDS (Guild of Accessible Web Designers) perhaps this should be a bit more prominent
I’m also surprised you haven’t contacted any of the GAWDS admins about accessibility, especially as one of the forum moderators, esmi, is a GAWDS admin….
But if jorbin is reading, feel free to drop me an email as I have experience in reviewing sites for accessibility and could help out as well. I’m just not that ofay with trac/patches etc, but would be willing to work with someone who is to get the ball moving.
Jane Wells 6:49 pm on September 3, 2010 Permalink
Accessibility isn’t a discrete new feature, which is why it isn’t called out separately but falls under the umbrella of ‘anything that can be written/tested/submitted before freeze.’ Accessibility patches will be reviewed and added anytime someone submits them (assuming they are up to par, of course). The problem is that very few people choose to submit accessibility patches. Accessibility patches welcome.
Rich Pedley 9:37 pm on September 3, 2010 Permalink
bleh, that means I’ll have to learn how to do patches correctly
– well when needed anyway, accessibility usually involves a lot of discussion.
As the accessibility list is dead I’ll ask here, which would you prefer I looked at first, the Twenty Ten theme, or just dive into the admin pages?
Andrew Nacin 11:50 pm on September 3, 2010 Permalink
Jorbin and I met the other day with an accessibility expert who is local and we agreed that we should definitely try to audit what we can. It’s a very intensive task but patches are *always* welcome except really late in the cycle.
I’d like to look at both. Having TT accessible will be nice, with the admin being higher priority (but more difficult).
Rich Pedley 7:34 am on September 4, 2010 Permalink
Well I’ll start with Twenty Ten then
That’s actually more static than the evolving admin backend anyway. So should be slightly easier to assess. Well hopefully.
I’d actually say the front end is more important than the back end, but with the number of different themes out there, it’s slightly skewed. It’s also a good way to test the water, see how changes are accepted etc.
Also it has to be realised that different people will pick up on different things, accessibility isn’t as always a clear cut case.
And yeah I saw that you’d had a meeting in the chat logs (see someone does read them).
But remember the best way for accessibility auditing, is to use pan disability testing. I do know of a few but obviously their services, in the main, are not free.
Rich Pedley 2:46 pm on September 4, 2010 Permalink
A big ‘doh’ from me re patches, let me never complain about them again.
Made a start with Twenty Ten, just concentrating on links ‘mainly’, adding other bits if I come across them. Will submit a patch for CSS only when done.
Jane Wells 1:40 pm on September 5, 2010 Permalink
@Rich: I would say look at the admin first, becaase Twenty Ten can be updated anytime, not tied to a release schedule. I will say that in previous releases we have had volunteer accessibility professionals review the admin through their systems once we get to the beta stage, and we fix anything they tell us is an issue. As you say though, different people will turn up different things.
arena 9:55 pm on September 3, 2010 Permalink
as far as i see new “The ajaxified admin screens” will break a lot of plugins admin pages ( #14651, #14776 )
Andrew Nacin 11:51 pm on September 3, 2010 Permalink
There should be no backwards compatibility issues when we are done. Any regressions are potential blockers. cc @scribu.
Scott 12:07 am on September 5, 2010 Permalink
Might be too late to suggest this, or maybe the wrong place now that the dev chat and discussion already occurred, but:
– Once that’s done, consider using the autocomplete that’s built into the latest version rather than suggest.js (http://core.trac.wordpress.org/ticket/12399)
Andrew Nacin 3:28 am on September 7, 2010 Permalink
We’ll be updating jQuery UI, but no plans to utilize autocomplete. We don’t use it anywhere in core, and suggest.js has served us well. Seems like an unnecessary refactoring.
Knut Sparhell 1:04 am on September 5, 2010 Permalink
No taxonomy meta table?
There are a lot of fine work going on out there among plugin authors, using custom post types with custom taxonomies. These are grets features that developed WordPress into a completely new dimension.
Bu we MUST have a way to store meta data about a taxonomy id, like contact info, price scheme, valid, periods of validity an so on foremver. Now every athors invents their own method of storiung this data.
Couldn’t WordPress core just define and create a tax_meta table for 3.1. I mean, without doing anything with it, Just lket it exist there for plugins, at least until 3.2?
Or could we have an “officially” proposed table name and layout for this, something that plugin authors could implement an create, if not already created?
Having ten plugins that all impelement their own prorietary metadata table is not a good situation, at least not the day WordPress core wants to implement one, too.
I would say tha ta taxonomy_meta has become a “core necessity” and it’s quite urgent.
Mike Schinkel 9:13 pm on September 6, 2010 Permalink
+1 on a revisiting the idea of a taxonomy meta table here. Lots of requests here and almost all of the code needed is already in 3.0 so scope is very small. Doesn’t need a UI yet, just needs to be there for plugin and theme devs.
Andrew Nacin 3:24 am on September 7, 2010 Permalink
Not for 3.1, but we’ve talked about publishing a “If we did it” post. So I’ll get going on that.
Justin Tadlock 12:28 pm on September 8, 2010 Permalink
That post definitely needs to be written, and it needs to be “official.” I’ve gotten multiple questions relating to this on a weekly basis for over a year now from users. The only reason I haven’t implemented it myself is because I don’t want to deal with upgrade issues if core goes in a different direction in the future.
Andrew Nacin 12:44 pm on September 8, 2010 Permalink
That’d be exactly the idea.
Mike Schinkel 6:26 pm on September 8, 2010 Permalink
Just curious. If you can write an article about how you’d do it, why not just do it? From what I understand 90% of the code is already in core, right? (This is an honest question; I’m just trying to understand the need for delaying until after 3.1?)
Simon Wheatley 2:39 pm on September 6, 2010 Permalink
Can I cheekily push forward this media suggestion (in the knowledge that full media overhauls are out of scope)… just *three* filters! http://core.trac.wordpress.org/ticket/13817
Mike Schinkel 9:14 pm on September 6, 2010 Permalink
+1 to this ticket. After all as Simon says, it’s only three *filters*.
Brian Richards 6:47 pm on September 6, 2010 Permalink
To clarify, is http://core.trac.wordpress.org/ticket/12877 making it into 3.1? (specifically, searching for page templates in sub-folders?
Paul Hastings 2:01 am on September 7, 2010 Permalink
It’d be awesome to swipe the wordpress.com method for searching already installed themes. I run a WPMS install and right now it’s a pain to manually dig through 60+ themes.
Tracey 10:49 pm on September 8, 2010 Permalink
Any chance of getting a simple ‘hide’ checkbox in the custom menu admin so that if you want to disable a menu item temporarily you don’t have to delete and add again. Reason I ask is that every time you do that it gives you a different css class which means, if you’re reliant on those classes for your styles you have to fix the css every time. Which also means that my clients are dependent on me to do this for them.
Jane Wells 2:56 pm on September 9, 2010 Permalink
Probably not in 3.1. We’re pretty resolved to not touch the menu system until 3.2. You’d probably be better off writing a plugin for this right now, and if it becomes popular, we can consider the functionality for core in the future.
Avi 8:27 am on October 5, 2010 Permalink
I am not clear with internal linking. What is it?
Gustavo S. Bordoni 3:55 am on November 4, 2010 Permalink
I was developing something that required the query for multiple Custom Fields, and when I was reading this I thought that Is a old request (http://bit.ly/cuujoQ). And there is any chance that will be coming any time soon?
Thanks alot,