JSON REST API

Hi everybody! Some of you may know me from various patches or WP-related endeavours: I’m Ryan McCue, developer of the SimplePie library used in core, along with a HTTP library called Requests, and long-time core hacker. I’ve been working with WordPress for quite a while now, both on open source and professional work with clients. What you may not know is that I’m also studying Electrical Engineering and Maths at UQ in Australia, and I’m here to give you a heads up on my Summer of Code project over the coming months.

For those who missed the discussion on wp-hackers about my proposal, I’m working on a JSON-based REST API for core. I started on this with an initial proof-of-concept back at the end of last year, and I’m now working on expanding this out into a larger project. The code is being written as a plugin for testing, with the goal of having it integrated into core in some form post-GSOC.

I’m planning on following a release strategy similar to MP6, with a weekly release along with the updates included in the release. At the moment, I’m working on completing the basic reading and writing of post data having just completed the major design documents, and I’m hoping to get the first weekly release out next week. I have a more detailed timeline which you can check out in my announcement post on my blog.

(You’ll notice I’m currently about a week behind on my schedule, which I suspected may happen, as I’m in the midst of my final exams here. I’ve allocated an extra week just before the midsemester review for catching up if I don’t do so before then.)

As it is, the plugin is in a usable format, and you can grab it from either GitHub or Subversion. I’d also recommend checking out the GSOC Trac issues if you’d like to keep track of the status. I’d love to have your feedback (especially on the design documents) as I move forward.

Cheers, and I look forward to working with you all in the coming months!

#gsoc, #gsoc2013, #json-api, #rest-api

Hello everyone Applications for Google Summer of Code…

Hello everyone! Applications for Google Summer of Code are due in just 13 hours! (1900 UTC)

I’ve been reviewing a lot of proposals and ideas. But if you’re waiting until the last minute (like I’m doing with this post), here are some random nuggets:

  • Original ideas are encouraged! We have a great ideas page but we’re not going to complain if you submit something else.
  • You don’t need to be a computer science student! We’ve had liberal arts majors and things turned out just fine.
  • Please demonstrate your abilities by making an attempt to contribute to WordPress core or by writing a plugin. Even though this may happen after applications have closed, it could help.
  • You can submit more than one proposal. This is good because we won’t accept two students for the same proposal. And because you might have two great ideas but aren’t sure which one aligns better with our interests. That’s okay — submit them!

Finally, here are four more ideas in case nothing else appeals to you. (I’ll make sure these make it onto the ideas page next year.) If you’re still hunting, see if any of these set off bells in your head: (yes, there are WordPress plugins for everything, but innovation and new approaches are good things)

  • Activity. Activity streams, action history, notifications. Imagine what a dashboard could look like for a busy, multi-author site, and how helpful it could be to see what’s truly going on “right now” — as well as what you missed.
  • Meetups. Local WordPress communities organize a lot of meetups. A set of tools for organizers and the local community could be really helpful. (These tools could include integration with meetup.com and wordpress.org profiles.)
  • Dependencies. Allow plugins and themes to be dependent of one another. A theme could require a plugin or example, and WordPress would handle installing that plugin when you install that theme. Similar idea: Compatibility metrics. (Or: Can we be sure it is safe to upgrade everything?)
  • Bug tracker. WordPress can be a great platform for developer tools. Why not a bug tracker? (Read the 2010 ideas page for more.)

Of course, there’s a lot of other great ideas on the 2013 page. If you haven’t looked recently, I added a few at the start of the application period, including some JavaScript-heavy stuff (editor modes, HTML5 application cache, TinyMCE views). Good luck!

#gsoc

GSoC Chat

Mentors: GSoC chat in #wordpress-gsoc in about an hour if you’re available.

#gsoc

GSoC 2013 Update

We have been accepted as a mentoring organization for GSoC 2013. I’m already being bombarded by overenthusiastic students with questions, so we need to get our act in gear re mentor list and project list more or less now. Definitely by tomorrow.

IF you have worked on an assigned feature team in one of the last few releases, you can be a mentor, yay!
IF you haven’t worked on an assigned feature team but you’ve had multiple patches accepted in one of the last few releases, you can be a mentor, yay!
IF you have themes/plugins in the .org repo and the lead devs say your code is good, you can be a mentor, yay!
IF you don’t meet either of these criteria but think you’re skilled enough and want to contribute, I need to have your code vetted by the lead devs.

If you are in one of the “yay” categories, please add yourself to the mentor list at https://codex.wordpress.org/GSoC2013 and leave a comment here saying you did so. Then, go to http://www.google-melange.com/gsoc/org/google/gsoc2013/wordpress, scroll down, and follow the process to apply to be a mentor in the gsoc system. Note that it’s a little bit busted right now, so you might not get a confirmation back from me until they fix the existing bug there.

If you are in the maybe category, you can ping me in irc, comment here, or email ([my username/irc nick]@wordpress.org) me to get on the list of potential mentors that will have code reviewed by the leads.

Also, project ideas can be added to the wiki page as well IF you fall into the pre-approved to mentor category. Worth running ideas past the leads in irc for a gut-check first. Other ideas can be posted here for review.

Thanks!

#gsoc

GSoC 2013

It’s time for us to apply for GSoC 2013 if we want to participate. I can take care of the application, but will need everyone’s help in producing the project ideas and mentor sections.

“Why didn’t we get accepted last year?”

We didn’t get accepted last year because our Ideas page wasn’t as good as it had been in past years, and they wanted to make room for some new orgs, so we got cut. Our ideas page wasn’t great because we were planning to embed students in regular cycle feature teams, but we didn’t write up all the potential features this might have included. This year we need to write out all the possible features.

PROJECT IDEAS:

The more project ideas the better, so things that aren’t targeted for the next cycle but that we might want to do as a plugin to get some traction for inclusion in a later release would be great projects, too. Project ideas can include core features, plugins, themes, unit tests, etc. This includes work on .org site things like the plugin used to power WordCamp sites. The projects must be code, though, not design, documentation, etc. List your project ideas in a comment on this post. Please give it a title, and a short one-paragraph description. If there’s a ticket or relevant thread somewhere, link to it.

POTENTIAL MENTORS:

Want to volunteer to be a mentor? You need to be good enough with wp coding that you currently don’t need oversight to generally get it right (though obviously we all can get better with more eyes on code), and have enough time to be available to your student for feedback and code review (at least once per week, though more often is better). The time commitment can be anywhere from one hour to ten hours per week, depending on how far along your student’s project is, and what there is for you to review (an hour or two a week is typical). You get a GSoC tshirt at the end. Want to be a mentor? Leave a comment on this post with a short/one-paragraph little bio about yourself, what kinds of projects you are interested in/qualified to mentor, and links to your website, wordpress.org profile, and twitter account.

LEAD DEVELOPERS:

I know you are right smack dab in trying to get this release out, which is why I’ll take care of the application and associated materials. That said, I’m a bit out of the loop with core plans, so coming up with the potential projects list on my own would mean they might not mesh with the actual goals/plans of core team very well. I’ll be looking to you guys to give me a sense of priority/possible plans for the next dev cycle, and to tell me who is qualified to mentor a project from the final list of volunteers. Will ping you offline for this.

Not sure how to write up a project idea or your short mentor bio? Take a look at the ideas page from 2011 for a guide.

Note 1: This year BuddyPress will be applying as a standalone organization with WP as the vouching organization. I’ll be helping Paul Gibbs get their application going.

Note 2: I haven’t announced it yet since it just happened, but we’ve been accepted as a mentoring organization for the Gnome Outreach Program for Women for the summer session. Unlike GSoC, where Google foots the bill, we’ll have to raise the money to cover our interns for the Gnome program, so I’ll announce it along with a fundraising drive. The Gnome program is a little broader than GSoC, and does allow non-code projects, so things like design, ux, documentation, translation, community management, etc would all be possibilities there.

#gsoc, #gsoc2013

Will need two volunteers to be the admins…

Will need two volunteers to be the admins for GSoC, overseeing our application, mentor wrangling, and if we get selected, student wrangling. Good project management skills required, familiarity with core contributors a plus. Note: though most mentors will likely come from this group, it’s not my intent to pull devs away from development to be admins. Just posting here bc I know a number of project managers follow this blog. The admin volunteers would be coordinated via the community group and would work with devs across core, themes, and plugins as needed. If interested in volunteering as an admin, ping me. Thanks.

#gsoc

No GSoC 2012

WordPress was rejected as a mentoring organization from GSoC for this summer. This is unexpected, as I spent some time during the application period talking with Carol (Smith, the GSoC administrator) about our proposed approach of building a release cycle around GSoC and making it a mentorship-focused release and she seemed to approve the idea.

We can still do a summer mentorship-focused release for 3.5 if we want to, though. We could pimp it as independent study for credit for college students and put more focus on non-student potential contributors, such as from the plugin/theme ranks. If nothing else, it would avoid the inevitable couple of students who are only in it for the $$. We’ll need to decide if we still want to do something along these lines, or if we don’t.

Why did we get rejected? We don’t know yet. I used last year’s successful application as a template. There will be a feedback meeting in a week or so, and Carol says to attend that when it is announced and we can find out why during that meeting.

#gsoc

GSoC/Summer/3.5

Normally we don’t start talking about the next release until the current one is out the door, or at least in beta/RC, so this post jumps the gun a bit, but for a good reason: the GSoC deadline. There are two approaches we could take toward our participation in GSoC this year, and one of them is tied closely to 3.5.

Historically

  • Good GSoC mentoring takes time. Time is hard to come by at the best of times, even harder for many during the summer.
  • Many of our previous GSoC mentors have held the position for several years and could use a break from trying to mentor while simultaneously working on features for a regular release.
  • Almost none of our GSoC projects have actually made it into core. A few because they were plugins, but most because once GSoC is over there hasn’t been a concerted effort to follow up on these projects.
  • We often run late on dev cycles.

Since 3.4

  • We have ramped up several core contributors to more responsible/trusted roles as a result of the 3.4 process experiment (teams, cycles, updates, etc). This could mean more mentors.
  • We are running late in our dev cycle, and with SXSW about to eat a week, I’m thinking we’re about to get even more behind. My guess is we’re looking at a May launch, not April.
  • The stated intention of having all feature dev for the cycle tied to a central goal of making it easier to customize your site didn’t really happen. There were at least 3 teams working on features that had nothing to do with this, and another couple that were related, but not smack in the middle of it. Good features all, but we failed in sticking to that goal as a unifying concept.

Proposal

What if for 3.5, instead of it being a “regular” cycle, we made it a mentoring cycle tied to the GSoC schedule (shorter than normal)? If we assume 3.4 will launch sometime at the end of April or early May (and if it does happen earlier, awesome), that would put us in a position to start working on 3.5 right when the GSoC accepted students are announced.

If we chose a “release concept” (like customizing your theme, but something different) and outlined every feature/enhancement/bug that’s related, we could make those things be the potential GSoC projects. We could work in teams like in 3.4, but in this case each team would have a student or two working on things with them closely. Since these would be the only features being worked on (additional bug-fixing always ongoing, obviously),

  • Students would be guaranteed mentor attention and working with core
  • We would be more likely to do the work necessary to get student work to commit-worthy status
  • We would target a launch for late August to coincide with the end of GSoC (so we could do one more small release before end of year)
  • We could do additional outreach to include new contributors who do not qualify for GSoC (too young, too old, not in college, etc), improve our mentoring skills and processes
  • At the end of this mentorship-focused summer, we would not only have the features developed by mentees, but we would have an ideal pool of people to help us create documentation to help new contributors.

I’m thinking that what might make sense would be for there to be a team or two that doesn’t mentor or work on a feature for 3.5, but begins working on one of the more complex things we keep putting off, so that it could be the first thing into 3.6 (like gallery management or something similar).

Deciding on a release concept that could be done in a 2.5-3 month cycle would be important. I’m thinking maybe it could be the feedback loop — improving comments and communication with readers via html emails, forms, etc on the front end and a UI facelift of the comments/related screens on the back end, putting something cool into Twenty Twelve around this (or just support for something in core related to same), etc. There are a number of projects around this that have been done in the past that could be looked to for inspiration and/or what not to do, it’s needed attention for some time, and it’s not as complicated as something like media or multisite.

Thoughts? Specifically, thoughts on:

  • Doing a mentorship-focused release timed to GSoC
  • Potential areas of focus for 3.5 if we were to do this
  • Mentoring in teams like 3.4
  • Wanting to mentor in this case
  • How many students you think we could take on if we used teams like in 3.4

Comment here today, and tomorrow I’l round up the core team to see what people think based on the conversation so we can make a decision and I can update our application before the application deadline if needed. If we don’t do something like this, then I’m planning on reducing our GSoC student allotment to 5-6 students (we’ve asked for up to 15 in the past) to ensure enough mentors and adequate attention/follow-up on projects.

Thanks for your input!

#3-4, #3-5, #gsoc, #mentorship

In addition to the usual program of check…

In addition to the usual program of check-ins, questions, and strategy in today’s dev chat, I’d like to carve out a few minutes at the end to talk GSoC. I’ll probably start putting together our application this weekend to be a mentoring organization, and will need to know who we’ve got on tap for mentoring teams.

#gsoc

GSoC time Google announced GSoC and I’m guessing…

GSoC time! Google announced GSoC and I’m guessing we’ll do it again, so roll call: who wants to be a GSoC mentor this year? Second: who wants to be the administrator? I’d like to get it off my plate if possible. Candidate should be able to keep track of dates, have good writing skills, be willing to nag (even people you respect), and be able to prioritize GSoC communications.

#gsoc