Summer of DrProject
April 17, 2007 – 3:42 pmAs noted previously, we have quite a team working for us this summer, four of whom are full-time on DrProject. Two of the students (Jeff Balogh and David Cooper) will be rebuilding the ticketing system, but we still have to figure out what Alex Krizhevsky and David Wolever should do. Options include:
- General bug fixes. and small extensions (no shortage of work here). Useful, but not particularly exciting for the students.
- Integrate the dashboard display that Ali and Adam built this term to show stats on project size, tickets filed/closed over time, etc. This is a must-have, but it’s not a full summer.
- Add a continuous integration (build ‘n’ smoke) subsystem (using Xen, Qemu, or some other virtualization layer for security) — would be a *very* nice feature to have, but it’s not 100% essential.
- Add continuous documentation (i.e., rebuild a project’s JavaDoc/PyDoc/whatever every time there’s a check-in, and integrate the results seamlessly into the project’s wiki). Again, it’d be nice to have, but continuous integration is more important.
- Add a chat relay that understands wiki syntax, and archives all conversations for later searching. There’s genuine novelty here, and I’ve been convinced by students that at least some of them would use it, but I have no idea how challenging it is.
- Sort out authentication — we want self-registration and admin-approved registration; problem is, we need to make sure that Subversion is authenticating against exactly the same identities, and when we tried it last summer, it proved much harder than we’d expected.
- Internationalization, so that someone can easily produce a French language version (federal funding agencies would smile upon us more readily). The long-overdue Unicode audit would be a first step.
- Wiki extensions, including hierarchical page names and “personal” pages that aren’t associated with particular projects.
- Make DrProject a lot easier to install — very useful, but this one is probably best left to the folks at Engenuity.
- Convert to TurboGears, Pylons, or one of the other standard frameworks — tempting in theory, but I’m not sure how much value there would be in practice, and again, I’m not sure that undergrads have enough background to take it on.
Votes? Others?
Later: some others have been suggested.
- Modify a WYSIWYG in-browser HTML editor to generate wiki syntax to make it easier for people to enter wiki pages. It would have to generate wiki text (rather than HTML) in the background so that people could still use wiki syntax in check-in comments, email, etc.
- Integrate with Eclipse, so that users can edit wiki pages, view and modify tickets, etc., without leaving their IDE. As noted previously, Xiaoyang Guan is going to be working toward this; it’s a big job, but will be made simpler if we—
- —create a web services API for DrProject to support remote scripting. We thought about doing this two years ago, instead of a Python library-style API; I can now see that both would be useful.
- Create a human-content blog for each project. Right now, each project’s blog only contains automatically-generated listings of check-in comments, ticket changes, wiki edits, and so on; there’s no way for a human being to write something (such as a release announcement, or a description of how a particularly nasty bug was fixed). Human-content blog entries should show up as wiki pages as well, as in Martin Fowler’s “bliki“. However, all of this will only be useful if we can—
- —sort out the authentication problems for blogs. As noted before, we can’t allow student teams to read each other’s event blogs, but there’s no standard for storing and forwarding credentials in the blogging world. We have therefore disabled RSS feeds for most course projects, which I think is a big loss. OpenID seems to be gathering strength—maybe this summer we’ll be able to fix this one. (And yes, this does tie in to #6 above; I’m just not sure how.)
Others?
7 Responses to “Summer of DrProject”
I think 1, 2, 5, and 7 would make good projects.
I think 1 because DrProject traces appeared a few times when we were using it for 488 this term and it’d be nice to make those bugs to go away for good.
Well, I am slightly prejudiced towards 2 since it was my old project, I think it would be a great addition to DrProject.
I think 5 would be interesting too. Even if many conversations will remain private, I think there will be enough interest in the feature and I think for groups where individuals are not friends with each other it might end up very useful. It also sounds a lot more fun to do than some of the other projects.
Finally, 7 sounds interesting because it would open up DrProject to many other communities. It might be very interesting to have several translations of the project.
Just my 2c.
By Maria on Apr 17, 2007
I personally prefer #9. I wanted to use some kind of ticketing system with David Chen when we were working on our 418 project and DrProj was the first one that came too my mind. But then I realized that it takes about a *day* to get it up and running so that turned me off. I would love to get it set up on my own personal webhost to use it for personal projects however.
By Thuan Ta on Apr 17, 2007
The two features we most wish we had with trac is #3 and #4. We are currently using Xen with Buildbot for the MussaGL project. I eventually plan to create a trac plugin showing the status of the latest Buildbot build. Regardless, it would be nice to see something like #3 developed for DrProject.
Also having #4 is really convenient since many projects don’t bother to generate API docs regularly. This would be an incentive to do just that.
Actually, I guess it depends on if you intend DrProject to be CS training tool at Universities or actually adopted by other projects as an alternative to trac?
There have been may times where having Buildbot allowed us to figure out that a build that worked one platform (Windows. Linux, OS X, etc.), didn’t build properly on another platform… Or even the same platform but with different versions of libraries installed. Continuous integration in enormously useful. So, I would vote for this feature as my first choice.
By Brandon King on Apr 17, 2007
While it may not be as exciting to work on smaller improvements I think some work over the summer on things like 1, 6, 7 and 9 would be very beneficial to the project.
After using DrProject in 408 and 488 this year I really don’t think that lots of new and ambitious features are needed in the short-term.
However, there is a lot of potential improvements in the bugs and feature requests currently in DrProject’s ticketing system.
Getting improved installation, i18n and user authentication would make it much easier for other departments/organizations to adopt DrProject and perhaps start to contribute new modules.
I also think that a really good case needs to be made for a new feature (like IM archives or continuous documentation) to be added into the core DrProject. I think all of these should be developed as extensions and turned on and off by each individual administrator.
By GregL on Apr 17, 2007
You will gain an immense amount of productivity out of
a) building useful tests
b) running them all the time
so my vote is to canonicalize the testing framework(s) you’re using (by ripping out homegrown cruft where possible) and then follow up by putting it under continuous integration.
–titus
By Titus Brown on Apr 17, 2007
3 - CI is part of modern development practices and would be something that it can put on a resume
7 - ummm, not everyone is English. Oh, and the whole grant thing would likely be nice too.
By adam on Apr 17, 2007
How about re-writing the wiki parser? Third time’s a charm.
By Blake on Apr 20, 2007