Lamson 1.0pre4 Out, Lots Of Docs Done, 100% Coverage

I happy to announce probably one of the last few releases before
I officially put the 1.0 stamp on Lamson. This last 1% of the things
I want to do takes a while, but it really puts a good shine on the
project.

What I’ve got in 1.0pre4 is tons of docs
and 100% test coverage. Most of the features that were added are
nice-to-haves that I’ve found useful while developing my various sites.

Getting The Release

As usual, sudo easy_install lamson is your friend. If you want
to use the HTML generation features, then you’ll want to also install:

BeautifulSoup
CleverCSS
markdown2

For completeness, here’s the remaining packages I have installed in most
of the virtualenvs for my applications:

ipython
mock
nose
Jinja2
lockfile
pydns
spambayes
chardet
lxml
python_daemon
pytyrant

You can also grab source releases and download instructions
from this site if PyPI is failing you.

100% Test Coverage

First, I’ve managed to get the test coverage for Lamson up to 100%:

Name                    Stmts   Exec  Cover   Missing
——————————————————————————-
lamson                      0      0   100%   
lamson.args               124    124   100%   
lamson.bounce              91     91   100%   
lamson.commands           176    176   100%   
lamson.confirm             57     57   100%   
lamson.encoding           238    238   100%   
lamson.handlers             0      0   100%   
lamson.handlers.log         4      4   100%   
lamson.handlers.queue       6      6   100%   
lamson.html                62     62   100%   
lamson.mail               140    140   100%   
lamson.queue               74     74   100%   
lamson.routing            218    218   100%   
lamson.server              80     80   100%   
lamson.spam                80     80   100%   
lamson.utils               56     56   100%   
lamson.version              1      1   100%   
lamson.view                22     22   100%   
——————————————————————————-
TOTAL                    1429   1429   100%   
——————————————————————————-
Ran 156 tests in 16.305s

It’s mostly a vanity thing, but doing this did uncover a couple of
minor little bugs here and there, and it makes people feel better
trusting Lamson.

Docs, Docs, Docs

I firmly believe that a good software project has both API
style documentation and guided documentation. That’s why I spent almost this whole
time working on documenting all the parts of Lamson people need and making sure the generated
docs were complete.

What I’ve done is reorganized the documentation section so that you can find
topic by their categories, and then documented most of the features people
need to use daily. Here’s some highlights:

I especially like how the HTML Email generation came out as a feature, but I really
like the Bounce Detection
documentation the most.

New Confirmation API

This release has a few little bug fixes, but mostly it has a solidified feature for
doing Confirmations easily.

HTML/Text Dual Email

Previously the HTML Email Generation
feature could only generate HTML email reliably, but I managed to track down
a bug that lets you now craft dual email. I even went a step further and made it easy
to simply use your markdown content templates as your text/plain alternative
when you send out HTML Email.

Multiple Recipient Routing

There was no way to avoid this, so I just implemented it. Now when a message is for
multiple recipients (in the envelope) Lamson will route the message to each
address. That means if it is destined for multiple people, then Lamson will
effectively try to match each of those people and run them through your handlers
separately.

I was worried this would cause problems, but so far it’s working fine. If you see
that it can be used as a DOS attack, then I’ll work on a way to limit the number
of recipients that Lamson will allow (similar to how you can restrict the size
of messages off a Queue).

Test And Report

As usual, please test this out, review the documentation, and report back to me
any problems you find.

I’ll be in #lamson on irc.freenode.org more, and will probably install a IRC
bot to notify when I post new code to the repository.