Release of Colibri 1.0-beta2
Time flies, and I haven’t made any release of Colibri for a long time, despite it being used in production and bug being fixed as they are found. So here it is. No shiny new feature there, it’s mostly about bug fixing, code cleaning and updating the code. More importantly:
- Colibri now requires Django 1.6, about to be released in a few days. Chances are that it is released already if you reach this page.
- Superusers (as in Django) now have access to all lists configuration pages and archives on the public site. They can access everything from the admin/ anyway, and it helps debugging.
- Several encoding bugs were fixed, most notably related to utf-8 and “Subject” headers.
- Thanks to Django-1.5 new configurable User model, we now have a clean User, relying only on the email, without any username, faked or not.
- Don’t trust the automatic changelog, lot of things have happened under the hood and more bugs have been fixed that those cited there.
If you update from 1.0-beta1 or previous, you will need to migrate the database. Here is what need to be done
- rename the table colibri.auth_user to colibri.emailonlyauth_user
- delete the field username in colibri.emailonlyauth_user
- rename the table colibri.auth_user_groups to colibri.emailonlyauth_user_groups
- rename the table colibri.auth_user_user_permissions to colibri.emailonlyauth_user_user_permissions
- don’t forget to run ./manage.py syncdb
Yes, I know about south or other Django migration tools. I do even use south on other Django projects. But I didn’t feel like it was necessary to add the dependency just for this.
As usual, you can get the code from the mercurial repository or from the File tab in the labs.
Hi, Thomas. I have a question about Colibri.
I am looking at the colibrid.py source, and see that sending email is done through connection.sendmail() — but I can’t find this method in django.core.mail anywhere. How does this work?
Indeed, this is an undocumented internal function from Django. This is needed because all ‘official’ Django mail-related functions require the use of a Message object.
The Django SMTP mail backend has a “connection” attribute, which is actually created by python smtplib, and we use it directly. This is not available with other backends (file, console..).
(better use the ‘contact’ form on this website to ask me this kind of question, though).
You can check
django/core/mail/backends/smtp.py
, methodEmailBackend.open()
to see where connection.connection is created, and then refer to the python documentation.[…] Original Source […]
I would very much like to test Colibrì, reminding me of an instrumental powerful song by Incognito, but I don’t know where to start after unzipping it: I sse there are no *.exe files nor a setup one. Thank you Mr Thomas if you could give me the opportunity to test it, and if it is freeware: willing to donate. Thank you, Marco