Over the past weeks I've been working on extending the project module and CVS module. The former is responsible for managing projects on drupal.org while the latter lets us track development. As of a few minutes ago, the improvements went live so read on for an overview of what changed.

Integration of CVS accounts and user accounts

As of today, user accounts are linked to CVS accounts. This means it becomes easier to track Drupal development and that your contributions are automatically showcased. As shown on the screenshots below, your user profile lists the projects you are working on (example: Nedjo's profile) and the user tracker has a new 'track code' function (example: kbahey's profile).

Improved user profiles

Tracking code contributions

Furthermore, the commit messages on the CVS messages page link directly to users which makes it easy to contact developers using the personal contact forms. Reviewing changes and providing suggestions has never been easier.

An administration interface has been written to administer CVS accounts. Approving CVS accounts is now done from a web interface which should allow us to process new applications in a timely manner. After a testing period, and possibly more CVS module improvements, new people will be recruited to help with the day to day maintenance of the CVS repositories/accounts. A screenshot of the new administration interface is shown below.

CVS administration

Integration of CVS commit messages with projects

In addition to the integration of CVS accounts and user accounts, the CVS module now integrates with the project module. As a result, each project page features two new links: 'View CVS commit messages' and 'View developers'.

New links on project pages

The former lets you track development of a particular project (example: the image module's changes), the latter presents you an overview of those who contributed to a particular project (see screenshot of the the wiki module's developers). The combination of both should give you a pretty good idea about the current state of a project, or who to contact about it.

Overview of developers

Finally, two new blocks are available: 'Most active developers' and 'Most active projects'. They show the most active developers and the most active projects of the past week. I have enabled both on the CVS messages page so check it out.

Given these are significant changes, I'm sure there will be some quirks. For example, I manually imported the existing CVS accounts and linked them to the corresponding user accounts on drupal.org. Chances are I messed up so if anything is out of whack, let me know. Aside from the quirks there is certainly room for improvement (eg. the way the user profiles are layed out). Rest me to say that both the project and CVS module could use some love. If you want to help make drupal.org a better home, these modules would make a good starting point to get involved.

Comments

Rick Cogley’s picture

Dries - very nice work; quality reflected throughout drupal.org and Drupal itself. Kudos to you.

From my standpoint, I will be sure to point anything out I can.

Rick Cogley :: rick.cogley@esolia.co.jp
Tokyo, Japan

kbahey’s picture

This is great! If you keep on doing this Dries, then Drupal can power http://SourceForge.Net pretty soon!

Oh, and it is nice (and sort of scary too) to see my name as the first example screen up there :-)

--
Drupal performance tuning and optimization, hosting, development, and consulting: 2bits.com, Inc. and Twitter at: @2bits
Personal blog: Ba

kbahey’s picture

I noticed that the second module (sitemenu) does not get listed properly.

For example, in my code page http://drupal.org/user/4063/track/code, it says:

Feedback: /modules/feedback/feedback.module 1.29
/modules/sitemenu/sitemenu.module 1.4
Stock: /modules/stock/stock.module 1.6

Note that the second module does not have a name associated with it.

The same goes for my user account page http://drupal.org/user/4063:

Feedback (26 commits), Stock (11 commits)

So, it is incomplete for sure.

This is perhaps related to the fact that the project page for sitemenu has no alias for it, and is in node/nnnn format (http://drupal.org/node/16130)

I tried changing Site Menu to SiteMenu (no space), but it did not seem to add an alias for it.

--
Drupal performance tuning and optimization, hosting, development, and consulting: 2bits.com, Inc. and Twitter at: @2bits
Personal blog: Ba

Dries’s picture

Edit your project, and specify the proper CVS directory (near the bottom of the form). Let me know if that worked.

kbahey’s picture

Thanks Dries

It works now.

--
Drupal performance tuning and optimization, hosting, development, and consulting: 2bits.com, Inc. and Twitter at: @2bits
Personal blog: Ba

javanaut’s picture

I just noticed it on the track posts tab of my user info. That should definitely make group coordination much easier, as you won't have to grepping through the cvs logs to see who's done what to which files...just check here. It should also give some idea of who to contact about a project when the original owner is unavailable (or gone).

axel@drupal.ru’s picture

Very comfortable addition, thanx Dries! But my personal little trouble - I have two accounts on drupal.org, one old (http://drupal.org/user/3767 - 'Axel') and one new (http://drupal.org/user/7013 - 'axel@drupal.ru'). Mostly I use account #7013 which owns all my contributions to CVS and comments to forums. But now CVS integration binded to old account, because my CVS account is 'axel'. It very unconvinient. Can you help me to solve this trouble? May be rebind projects from new account to old or totally merge these accounts and delete one of them? And sorry for this enxiety.

And maybe it is sclerosis :) but I absolutely forget my participation in projects
Scripture Filter and Sidebar, but these projects appears in my profile. It is strange :\

--
Axel,
Russian Drupal Community

Dries’s picture

Fixed as of 2 minutes ago.

axel’s picture

Thanx very much!

--
Axel,
JabberID: laika@jabber.org
Drupal in Russia

gordon’s picture

This is a great enhancement, and really shows the extendability of drupal as a framework. It proves once again that you can do anything with drupal very easily.

One thing that I would like to see with this which I don't think is possible given cvs permissions is showing credit for core contributions much like the contributed commits but for core. This will also allow for accountibility and proof of where patches came from.

Again this is really great.
--
Gordon Heydon
Heydon Consulting

--
Gordon Heydon

Junyor’s picture

Very nice work. One question: I couldn't tell if patches made to Core not committed by the patch author are reflected on their "Track code" page. Is that possible?

Gábor Hojtsy’s picture

It would only be possible to do this with commit message parsing, if the commit message would always include the CVS username of the original submitter of the patch.

Some parsing is already done on the commit messages to link them to project module issues on the site, so "Patch #12345: fixed..." gets linked to that issue. I don't know if this was implemented earlier, or in this same update, but I bet it is new, and Dries forgot to mention it.

Steven’s picture

Parsing patch numbers was done a long time ago...

--
If you have a problem, please search before posting a question.

Gábor Hojtsy’s picture

Found the commit from summer 2004

Jose Reyero’s picture

Looks good, works fine.

Just one point: I think identifying 'developers' or 'contributors' with people doing CVS commits is, at least, misleading.

I mean, currently most of commits are made by module maintainers and anyway that's how it should be, I guess. With the new system I would feel obliged to have people committing patches themselves to modules I maintain, so their name gets listed. And I am also getting contributions from people who don't even know what CVS is - like graphic files or documentation improvements.

So I think that, while having such a list can be useful, there should be also a 'more open' contributors list where people can be added manually, and maybe this is the one that should be linked to the user's profile.

Dries’s picture

It does not list everyone who contributed to a project, but at least it shows who is responsible for a particular project. Maybe 'Developers' should be renamed to 'Maintainers', but that isn't accurate either.

kbahey’s picture

Is this new tracking code only for project that one owns? Or restricted only to modules?

The reason is that under http://drupal.org/user/4063 and here http://drupal.org/user/4063/track/code I don't see my commits for the SpreadFireFox theme despite me committing lots of stuff there.

Or is it the project setting itself?

--

Consulting: 2bits.com
Personal: Baheyeldin.com

--
Drupal performance tuning and optimization, hosting, development, and consulting: 2bits.com, Inc. and Twitter at: @2bits
Personal blog: Ba

ahwayakchih’s picture

Something went very wrong because now tracking my account (http://drupal.org/user/18629/track) shows last post dates like "39 years ago" for issues i posted, and that can't be true.

Boris Mann’s picture

Should be back to normal.

ahwayakchih’s picture

It works ok now :)