[ccan] What do we mean by "judging code"
Adam Kennedy
adamkennedybackup at gmail.com
Thu Mar 20 11:46:32 EST 2008
I thought I should clear up just exactly what is meant by "judging code".
One of the principles from the CPAN that has been extremely positive is
the idea of a low barrier to entry.
That is, people should be free to upload anything they like, and we
should make it as easy as possible for them.
This has a downside of course, much of what gets uploaded to CPAN is
shit, even from big companies.
The first upload of the official eBay Perl API by the eBay internal
development group exploded horribly, and they had to do a second release
immediately to upload one that worked.
However, acceptance of shit is ultimately positive, as it gets those
modules "into the community" quickly. Those initially crap modules get
processed by various bits of the CPAN "cloud". They get build and tested
on multiple environments, they get torn apart by the "Kwalitee" system
and scanned for positive and negative flags, they get their bug tracking
queues and "One to five stars" review site entries created, and so on.
A good number of the initially crap uploads get hammered into shape
AFTER the intial uploads into something positive. Sometimes it takes the
original author "dissapearing" and a new author taking over to achieve this.
So INITIALLY I think we should be as permissive as possible when people
are uploading files.
The difference then is what happens after the upload.
There needs to be a clear boundary between what gets initially uploaded
to CCAN and what actually appears in the CCAN index.
So if someone says "install rusty:some_module" it WON'T get resolved to
the http://mirrorname.com/ccan/authors/R/RUSTY/some_module-1.23.tgz
unless that module meets appropriate criteria, and "install some_module"
won't get resolved to "install rusty:some_module" unless the module has
both passed the automated criteria, AND has potentially passed through a
human review process of some sort.
For an idea of what this process can look like, here's a link to my
author page in the CPAN Kwalitee ( "Kwalitee is not Quality, but it's
similar" ).
http://cpants.perl.org/author/ADAMK
That page also shows the pitfall of judging systems, which is that they
fall prey to the preferences of the person writing the judging system.
For example, that big vertical red bar is a judgement test for
documentation coverage. I strongly oppose that test because of both the
way it is implemented, and the process it wants you to use to test for
coverage, which I consider a security flaw.
So it's important that in judging code we be extremely careful about
WHAT we judge, as we throw up potentially aggressive and devisive barriers.
But the basics like "Is it a tarball, does it have an _info.c file, etc"
I would certainly consider to be a reasonable minimum threshold to
uploading at all.
Adam K
Nicolas Greffard wrote:
> Hi folks,
> I am a French student studying in Scotland and I am really interested
> by one of the project ideas you proposed for the google summer of
> code. I am currently doing my Bsc honors in computer science at
> HeriotWatt University.
> The project I am talking about is the "judging code" one. I have some
> ideas about how I would deal with this project but I need to clear
> them up. I am going to go through the different modules the repository
> contains so that I can identify the patterns describing what the code
> should look like.
> Anyway if some documentation exists about these patterns, I would be
> really pleased if one of you guys could send it to me.
>
> Faithfully,
>
> Nicolas Greffard aka "Ngreff" on IRC
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> ccan mailing list
> ccan at ozlabs.org
> https://ozlabs.org/mailman/listinfo/ccan
>
More information about the ccan
mailing list