A brief status update and call for participation for WSCCI!
There are a couple of lines of work we're working on right now. Most could use additional hands.
The kernel patch
This is the patch that blocks almost everything in both WSCCI and the Layout initiative, so let's get 'er done. :-) Right now, the focus is on getting the patch to pass testbot. We're getting surprisingly close, but it still needs work.
You can see a list of what is still failing as of when I write this here.
If you want to help move this forward, here's what we need you to do.
- Get access to the WSCCI sandbox. If you don't have it, grab Crell in IRC. He's around a lot in #drupal-wscci.
- Pick a section of failing tests you want to work on. (See link above.)
- Create a new issue in the WSCCI sandbox describing what section you're working on.
- Make a new branch off of the kernel branch, named $issueid-$description. (Eg, 1234-path-tests)
- Bang on that branch until the tests pass. :-)
- Keep the issue up to date with your progress and set it to needs review when the tests are passing.
- Crell or someone will try to review it ASAP. As soon as it's ready, it will be merged back to the kernel branch.
For how to make tests pass, I suspect in most cases it is a matter of some code that messes with $_GET['q'], relies on the q parameter (which is already a bug in D7, but is going away in D8), or some other reliance on globals that it shouldn't. In many cases the test itself will just need to be updated. If you are unsure, or if it looks like it's something that needs to change in the new code, stop by #drupal-wscci and our technical support representatives will be with you shortly. (Especially during office hours, 1pm-3pm US Eastern Time, Sundays.)
If debugging tests is not your strong suit, the patch itself still needs reviews! There's a lot going on, and we need architectural feedback sooner rather than later. Don't wait for the patch to pass, because by then it will be too late! Please remember to read the summary and linked references first, as well as the comments in the thread.
The following people are already working on this front, but we definitely could use more hands:
- Rob Loach (who got drafted)
Content negotiation library
As noted in The Denver Routing report, we want to create a new content negotiation library to handle sorting out "the client asked one of these 5 mime types, we can offer these 3, so what do we use?" Essentially, we want to port Apache's mod_negotiation library to PHP. wamilton has started on such a library, but needs help. It's available on GitHub, and there's also some background in this thread. The intent is to build not a Drupal module but a general PHP library that can be incorporated into Drupal, Symfony, or other projects.
wamilton, socketwench, lsmith, and ygerasimov have all expressed interest in working on this library, but could definitely use help and feedback, especially from people who are versed in HTTP and Apache. Contact wamilton or lsmith in #drupal-wscci if you're interested, or just start filing Pull Requests on GitHub.
Although not directly related to WSCCI, there is ongoing work to replace Drupal's one-off session handling with Symfony's more flexible session handling backend. This has a number of advantages, including using code that we already have in core in HttpFoundation as well as in-core support for non-SQL-based sesssions. That's huge, because it will make it possible to refactor the installer, cron.php, update.php, and so forth to be far more stable and less fugly. pounard is taking point on this issue (skip toward the end, there's a lot of no-longer-relevant discussion early on), but really really needs reviewers. Contact him for details.
I recently started some skunkwork on rewriting the installer using an installer-specific kernel, a hard-coded router list, and a PHP-native session backend. The potential here for simplifying the grotesqueness that is install.php is tremendous. I don't have time to focus on it right now, but we need to do it sooner or later and it is largely independent of the main kernel work. This is a great place to get some good practice with Symfony and the kernel architecture, as well as earn some serious brownie points by being the person to make the installer not suck. :-)
If you're interested in working on this, have a look at the kernel-installer branch in the WSCCI sandbox and contact Crell in IRC. (That's right, in #drupal-wscci.)
We've got our game plan for the next two weeks. Let's snap to it! We don't have much time.