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:
- Unit Testing
- Confirmations
- Filtering Spam
- Bounce Detection
- HTML Email Generation
- Unicode Encoding/Decoding
- Hooking Into Django
- Tons more…
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.