Will's blog

purpose: Will Kahn-Greene's blog of Python, Linux, random content, PyBlosxom, Miro, and other projects mixed in there ad hoc, half-baked, and with a twist of lemon

Tue, 06 Dec 2005

PyBlosxom status: 12/06/2005

I've been running my blog on the latest code and keeping track of all exceptions that get thrown and any other odd issues and things seem to be going well. As such, I'll be preparing to do a release candidate soon and then start the mildly painful process of re-writing the appropriate sections of the PyBlosxom manual.

I'm also taking some time to run Cheesecake against the codebase. The results so far are somewhat of a bummer:

[cheesecake:console] Detailed info available in log file /tmp/cheesecake_sandbox 
/pyblosxom-1.3.tar.gz.log
[cheesecake:console] A given package can currently reach a MAXIMUM number of 560 points
[cheesecake:console] Starting computation of Cheesecake index for package 
'pyblosxom-1.3.tar.gz'
index_unpack ..................  25 (package untar-ed successfully)
index_unpack_dir ..............  15 (unpack directory is pyblosxom-1.3 as expected)
index_install .................   0 (could not install package in 
/tmp/cheesecake_sandbox/tmp_install_pyblosxom-1.3)
index_file_announce ...........   0 (file not found)
index_file_changelog ..........  10 (file found)
index_file_ez_setup.py ........   0 (file not found)
index_file_faq ................   0 (file not found)
index_file_install ............  10 (file found)
index_file_license ............  10 (file found)
index_file_news ...............   0 (file not found)
index_file_pkg-info ...........  10 (file found)
index_file_readme .............  15 (critical file found)
index_file_setup.py ...........  15 (critical file found)
index_file_thanks .............   0 (file not found)
index_file_todo ...............   0 (file not found)
index_dir_demo ................   0 (directory not found)
index_dir_doc .................  25 (critical directory found)
index_dir_example .............   0 (directory not found)
index_dir_test ................   0 (directory not found)
index_docstrings ..............  70 (found 264/382=69.11% modules/classes/methods/functions 
with docstrings)
index_pylint ..................  68 (average score is 6.77 out of 10)
===================================
ABSOLUTE CHEESECAKE INDEX ..... 273
RELATIVE CHEESECAKE INDEX .....  48 (273 out of a maximum of 560 points is 48%)

So, 273 out of 560... Could be worse, but should be a lot better.

Posted by Phillip J. Eby on Tue Dec 6 13:24:01 2005
I wouldn't take the Cheesecake metrics too seriously at this point; there are too many oddly-biased measurements in there.  For example, to score all the points for documentation, you'd have to include  both a News and a Changelog, as well as a FAQ, Announce, and a Thanks - to name just a few.  Including that many files for anything but a huge project seems counterproductive.  PyLint is also incredibly picky by default about things that really don't matter, and you're also being penalized for not including ez_setup.py even though you're not using setuptools.  (On the flip side, you're given 10 points free for having PKG-INFO, which the distutils automatically generates...)

The Cheesecake metrics would be more meaningful if they were split out into at least 3 separate ratings for installability, documentation, and code quality, and the documentation rating(s) didn't implicitly encourage having lots of redundant files.  In effect, you should probably consider the metrics more as a "list of things that some people have in their packages", and then pay attention to only the ones you actually care to have.


Posted by will on Tue Dec 6 13:48:20 2005
I'm not taking them deadly seriously, but I am taking them somewhat seriously.  I think it's a decent gross metric for showing improvement in
the readability of the code and the ease of use given where PyBlosxom is right now.  Doing a pass with cheesecake and pylint and improving things
will help immensely.  If we had better coding standards and better infrastructure from the beginning, cheesecake and pylint probably
wouldn't be as useful.

It's hard to tell that from the output I posted on my blog, but I've already used the pylint output to catch a few cases where the code is wrong.  Since we don't have unit tests and such, there's no way we'd know.

To sum up, I think Cheesecake is useful at this point because PyBlosxom is still a disorganized mess even though Cheesecake itself is very young as a project and they're still working out what sorts of things indicate high "kwalitee".  It's sort of a "anything more intensive than occasionally thinking about our belly buttons will have a high possibility of helping" situation.

It's just a guess though--I'll know more after I start reading through more of the problems cheesecake and pylint are pointing out and triaging them.

Thank you for your thoughts--I really appreciate them.

/will


Posted by Grig Gheorghiu on Tue Dec 6 17:20:41 2005
Will,

Good to see you're actually using Cheesecake, I think you're breaking new ground by being the first person besides me to use these metrics :-) As Phillip puts it, Cheesecake can appear to be "oddly-biased", but unless I get feedback on it, it's hard to improve. His comments are very good and I'll try incorporating them.

As for your own comments, I'm glad you find this stuff useful at all. It motivates me to keep working on it, that's for sure.


Please keep comments appropriate. I reserve the right to remove anonymous comments, flames, spammy, inappropriate, and other comments that I deem to be worth removing.

Note: New comments get placed in a "draft" status and will NOT show up on the site until I explicitly approve it. Usually that happens within 24 hours, but sometimes I go away and it takes a day or two.

Note 2: There is now a preview button for those of you who want to see a preview! However, it doesn't quite work the way you'd think it should work. I'll look into adjusting it some day.

Note 3: If you can't for some reason post a comment, send me an email: willg at bluesock dot org.

Your name:


Your e-mail address (this doesn't get displayed to anyone--I use it to contact you if there are issues):


URL of your website (optional):


Comment:


Yes, I am a human!

pyblosxom::2.0 dev

All contents Copyright 1996 to 2008 Will Guaraldi.
Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License.