Google Summer of Code: status update
With just three weeks to go in the Google Summer of Code project, it's time to look at what our student stipend recipients have done so far, and what we as a community can do to help them down the final stretch. I sent a mail to everyone involved asking for a status report, and also for some feedback on how the project has been going so far in general. The responses have been summarized below.
What have been the challenges so far?
Even though I thought I knew alot about Drupal internals I had to learn more of the internals of especially the user and node modules.
I have had very little exposure to version control systems prior to this project, so learning how to use CVS properly also presented another challenge (though a fairly small one--there's not much to CVS, it seems).
As most of the things I'm making are brand-new for Drupal, I have to spend a lot of time trying out various approaches.
The Google paperwork.
Sometimes it was actually finding the time to work on SoC.
Mentor communication.
Here is a list of the various projects and the responses I've gotten so far. I'll update the list as more students reply to the questions.
Project: Testing framework
Student: Thomas Ilsche
What is the state of your project?
Currently my part involves tests in two different groups:
The user registration test registers a user by browser interaction, asserts all fields in the database are correct tries to login by the one-time login, changes password, asserts changes saved. Logout and login again. Also a Login with a wrong password is tried.
The test also cares about the access settings for registering users, if necesary it changes and restores them afterwards. This test is quite ready and stable. Maybe If I get some more Ideas for it I will add them but for now I would consider it ready.
The node access test creates a node with an especially created user/role/permission combination. Asserts the node is correctly found in db and can be accessed in the page. This one is not ready yet and will be extended to test node creation/access with insufficient rights.
Where can the current code be seen?
http://cvs.drupal.org/viewcvs/drupal/contributions/sandbox/moshe/simplet...
How close are you to completion (in %)?
According to my application I would guess about 70%, but I am willing to go beyond this specification.
What kind of support do you need in order to get done on time?
I am looking forward to support from anone testing the testsuite by running it.
Project: Google Sitemap module
Student: Matthew Loar
What is the state of your project?
My project is stable and implements almost all of the functionality I originally proposed. It keeps a revision and comment history for each node and uses this to make a good estimate of the change frequency. It can weigh the priority based on node type, number of comments, and promotion. It can automatically submit/resubmit a sitemap to Google. Users can optionally override the priority on individual nodes.
Where can the current code be seen?
http://cvs.drupal.org/viewcvs/drupal/contributions/modules/gsitemap/
How close are you to completion (in %)?
I would say about 90%. I'm considering adding the ability to change priority based on level within a book, or by taxonomy terms. I have one outstanding bug report, but I am not sure if it is a bug with my module or with pathauto. The submitter has not gotten back to me with more information.
What kind of support do you need in order to get done on time?
If anyone has a working pathauto installation, it would be great if they could determine whether this causes duplication of URLs in the sitemap. I tried to install pathauto, but it caused severe problems.
Project: Quiz module
Student: Angie Byron
What is the state of your project?
A: I would say the project is not quite as far along as I'd hoped it would be by now, but I feel I have a good grasp on what's left to be done, and I'm pretty confident that most of my major learning hurdles which caused me to initially start slowly will no longer be an issue during the second half of the program.
The administration side of things is getting pretty near completion (though I'm planning to add some more "polish" on things after SoC). Some more work is still required on the quiz-taking side of things, however. Several key components are missing, such as the feedback mechanism which is missing, and score calculation which still contains some bugs. After cleaning up a bit in this area, my next big undertaking will likely be the storage and retrieval of quiz results, after which time I'd like to release a "beta" version to the Drupal community in order to get their feedback directly (I'd ideally have liked to have done this sooner, but until at least the basics are working, it seems a premature "release" might hurt the module more than help it). Finally, time permitting, I'd like to attempt to tackle the question moderation and revision system, and add the matching question type, though I may only be able to finish these after SoC.
Where can the current code be seen?
http://drupal.org/project/quiz
How close are you to completion (in %)?
I would estimate completion at about 60%. There are quite a few features still to be added, but now that I've tackled some of the earlier ones these should come with greater ease (or that's the theory ;)).
What kind of support do you need in order to get done on time?
Everyone's been very great about answering any questions that I come up with, so no complaints there. I think Khalid's code review will be a very welcome addition, so that I can ensure the code I've written so far is not completely off-base (or if it is, at least I still have some time to fix it). Once I have a release-ready (ish) copy of the module, having others in the Drupal community help track down bugs will save lots of time as well.
Project: Added AJAX functionality
Student: Steven Wittens
What is the state of your project?
I've finished a patch of a first important JS/Ajax feature: inline file uploading. It dramatically increases the usability of attaching files to nodes, yet degrades cleanly too. This patch also includes an Ajax progressbar widget which can monitor an URL.
Where can the current code be seen?
A: http://drupal.org/node/28483
What kind of support do you need in order to get done on time?
A: Help with reviewing and testing.
Project: Subscription module
Student: Elek Márton
What is the state of your project?
A: I implemented the old notify and subscriptions module functionality. I would like to write some advanced feature, and extending capability.
Where can the current code be seen?
A: http://cvs.drupal.org/viewcvs/drupal/contributions/sandbox/ee/
How close are you to completion (in %)?
A: About 70%. Not finished yet with the mailer function and some admin pages. And the 'channel' hooks.
What kind of support do you need in order to get done on time?
A: Criticism. Károly Négyesi promised that he writes his opinions. After that I correct the module, than I upload to the CVS and wait other comments.
Upcoming.org API
Student: Stephan Jaensch
What is the state of your project?
I'd say I'm behind schedule since I'm redoing stuff I already did. But I have a much better understanding of the inner workings of Drupal now and can actually code without having to look up something every two lines of code (I talked to webchick about this and she feels the same way :) ). That and because I have the whole August nothing else to do makes me quite confident that I will be able to meet all my deliverables by the end of August.
Where can the current code be seen?
http://drupal.org/node/27953 but that is a older snapshot. I intend to commit as soon as I'm done with my reimplementation.
How close are you to completion (in %)?
I'd say 30%. That sounds low but I think it's correct in terms of code amount. It doesn't factor in the time spent on learning Drupal though which means I can write code much faster now.
What kind of support do you need in order to get done on time?
[RD: he says code review and mentor support will be vital]
Project: Test suite
Student: Kuba Zygmunt
What is the state of your project?
I made user uploading test, which needs some polishing (but I won't touch the core of the tests). Now I'm finishing of testing taxonomies including operation on terms & vocabularies (save/edit/delete) from the browser's view, taxonomy node api.
Where can the current code be seen?
http://cvs.drupal.org/viewcvs/drupal/contributions/sandbox/moshe/simplet...
How close are you to completion (in %)?
I think that my job was to do tests on distributed authentication, taxonomy module, uploading (based on pictures in user profile). Taxonomy module is completed in 95%, DA will take 1 or 2 days, and if Moshe would like me to extend uploading tests I will write another one or two. So in my opinion, I have 15% to finish it off. I would like to write a little documentation of my work for further future,but I will do it in the last week of August.
Project: NetNews (NNTP) Integration
Student: Jan Blom
Where can the current code be seen?
http://cvs.drupal.org/viewcvs/drupal/contributions/modules/netnews/
Todo list
- finish the admin interface
- enable forum-netnews links through the taxonomy (containers)
- implement news server -> Drupal synchronization (triggered through netnews_cron)
- move the actual Drupal -> news server synch to netnews_exit (little work)
- deal with various user-related issues:
- hiding Drupal users email addresses (configurable)
- create anon users for messages that originate on netnews server
Project: WebDAV interface to Drupal
Student: Fabiano Parolin Sant'Ana
Where can the current code be seen?
http://cvs.drupal.org/viewcvs/drupal/contributions/sandbox/wundo/SoC/
Project: TODO module
Student: Michael S. Bryant
Status: TODO.
Project: Quiz module
Student: Robert Shedd
Status: http://www.robertshedd.com/summerofcode/node/25
Any help that these students can get with code reviews etc. will be well appreciated! Thanks!

ad. google sitemap module
It DOES cause duplication, I just checked it with pathauto - otherwise really good work!
Best regards,
Lennart
shame...
That's really shame because pathauto is one of very important modules, specially from crawler perspective. One who needs google site map, is probably also using pathauto too.
And its one of few missing features, that default install of EZ (ez.no) have and drupal don't.
I will test it when patch will be available (i don't know how to program).
Cheers, thanx for your code!
Regarding subscriptions and SoC
Hi,
Does subscription module will take some features request in the pending list from the current subscription module ?
Once every student will have ended his code, can a project page be available for us to test and transmit issues ? Because right now, apart this post and manually looking through CVS it's hard to get some feedback.
Then, I suppose there would have some times for testing (I hope with the project page help), and then... What will happen ? Each student will take care of its module ? (I hope so)
Good luck
Project pages and beyond
Some of the projects already have project pages and you can test and submit issues against them. For the moment, if there is a project (like subscriptions) that you'd like to test, you can get the code by referring to this page and anything that you'd like to communicate (bugs, feature requests, suggestions etc.) can be sent either to the student, their mentor, or to me.
Many of the students have expressed interest in staying involved with Drupal after the project (in fact, more than a couple of them wanted to do their projects before Google announced SoC), so at least some of the projects will be maintained by their authors. As for the others, we'll have to decide what to do with them.
- Robert Douglass
-----
Rate the value of this post: http://rate.affero.net/robertDouglass/
I recommend CivicSpace: www.civicspacelabs.org
My sites: www.hornroller.com, www.robshouse.net
Subscription quick review
Hi Robert ans Elek,
I saw that subscription module has just been turned from your sandbox to modules contributions so that's why project page may last a little more to appear.
Btw I went quickly through the module and get some few (maybe dumb) questions about it.
First, there's a little typo error on line 608 in
subscription_settings: form_input function doesn't exists in core, I think you meant form_select.Then I try to catch the functionalities of subscription and I found it a little difficult to understand the underlying concepts.
Channels
When reading the README.txt, just at the begining, you tell us "(optional) Create other channels from admin/subscription."
Hum... If I stay here for a basic user point of view (below, you begin by contribute, so I think it's not "standart user" oriented), I stay and wonder, what is it the channel stuff...
Then looking in my administer/subscription (if I get the correct add channel perm) I get some default channels (debug and simple mailer) but still no clue about what is this supposed to do... Well I saw (and understood ;) ) a little more with the next select lists :
- debug / simple mailer. Is it a way to get the subscriptions ? Debug : in a page somewhere in my account for example ? And Simple mailer : by receiving a mail ?
- daily / instant : maybe it should be named frequency ? so is it to receive a notification (or add a line in my debug control screen) each time new content get created : a daily digest or a notification for each new content.
So I can add channel, but then how do my subscriptions fit into these channels ?
This leads me to my next point.
Subscriptions
- Ok so I get some channels created and now I wanted to subscribe to content... So I saw that under some nodes, I got the subscribe link then when I click it, I get added to one of my channels. In fact I can't select a channel, it's surely a missing feature for the moment ?
- Looking at my subscription panel, I get a merge option, I guess this is to merge two channel into one, it should be usefull I guess if you're subscribing various node and then you want to get only one notification for all these nodes. Hum... I tested it and I was wrong, because merging gives you a "AND" condition for the channel...
- I can't edit a subscription to change channel or condition (missing feature ?) so all gets to debug.
- All node type doesn't give you the subscribe link. I use flexinode and subscriptions module and it works just fine, I get a subscribe link under each kind of content-type. I understood that this is something people should contribute as you say in README, but I think this is an important missing feature. Everybody won't have to modify your module to provide this link... Isn't there an easy way to do this ?
looking at the code, I think this is the same way for blog. Also taxonomy receive a link only if content type is node.
PS : I tested creating new flexinode content and I manage to get the link (subscribe flexinode-4s ? I think it doesn't take the content-type name) but under certain old node of the same type I don't get the link. I didn't review the code, but there's something strange here.
- debug channel : when created a comment to a node I previously subscribed, I get an error in watchdog regarding the debug folder, I think (as mentioned in comment) that it's still a missing feature. Can you put the folder beyond "files" folder ?
I didn't found a way to consult this channel and the created text file (missing feature ?).
- I think that subscription link should be displayed regarding if the user isn't anonymous ;)
Permissions
I think it lacks a permissions for user to acces "my subscriptions" : line 21 : because user can see this panel without getting the perm "maintain subscriptions" (take care this is the same perm for subscriptions module...) so if you click on "Subscribe to all comment" you get an "Access denied", so add
'access' => user_access('maintain subscriptions'),there.For the review part, I think this should be all for the moment, let's see my features wanted ;)
It's a long time that I requested a feature for subscriptions : Admin can subscribe users regarding of their groups do you plan to release such function ? I posted a rough patch to release what I meant and it works for me, but having something with a little more thought and better design should be usefull don't you think.
Good luck for this module, and thanks for your efforts.
Thanks for your good
Thanks for your good review. I fixed most of your observation.
Some quick answers:
May be it isn't a good place, but you can select your default channel from my account > edit. I wrote it to the README.txt.
The debug channel is useful only for testing purposes. You should create a debug folder if you would like to use it. Debug channel creates files to debug folder (if exists).
I removed the debug channel from the subscription.mysql. So the default channel is the simple mailer.
I think it would be really useful to display some lines about channels via hook, but i am still thinking about the good GUI.
Yes, you can't edit conditions. You should delete it, change the default channel, and subscribe again.
I think only if users have "manage subscription" perm.
Admin can subscribe users regarding of their groups seems to be a good idea. I will read the post.
How one installs the AJAX
WOW! Thanks for the update. These are very exciting projects. Good work guys!
How one installs the AJAX upload patch? Is it an addition to the existing 4.6.2 installation?
---
http://creativebits.org
HEAD only
The Ajax features are being developed as core patches for Drupal HEAD. They will not work on 4.6.
--
If you have a problem, please search before posting a question.
Ok.
Ok. Thanks!
---
http://creativebits.org
AJAX works for me on 4.6
While the particular upload.module patch might only work on HEAD
much of the other AJAX functionality eg. Thox spellchecker and his chat works fine in 4.6.3
I have ajax.module + spellchecker modified to danish from thox's sandbox working at
www.forsker.net
It works like a charm in 4.6.3
Best regards,
Lennart
Subscription module project page
If you have ideas, bug reports, etc:
http://drupal.org/node/29868
Thanks for the cvs
Should I repost my points there ?
anyone using the netnews
anyone using the netnews module ?
what your experience with it ?
marcel
MxCounters.com - website counter
The author is using it
He uses it in a university environment (and is still developing it). It is definitely functional.
- Robert Douglass
-----
My sites: HornRoller.com, RobsHouse.net