I'm releasing PyBlosxom 1.3 release candidate 1. w00t! A lot of work has gone into this and it's taken way way way too long to finally get it out. My apologies to everyone who's been waiting and such.
Changes between 1.2 and 1.3
Pertinent to users:
We added a "blog_rights" property. This holds a textual description of the rights you give to others who read your blog. Leaving this blank or not filling it in will affect the RSS 2.0 and ATOM 1.0 feeds.
If you set "flavourdir" in your config.py file, you have to put your flavour files in that directory tree. If you don't set "flavourdir", then PyBlosxom expects to find your flavour files in your "datadir".
The flavour overhaul is backwards compatible with previous PyBlosxom versions. So if you want to upgrade your blog, but don't want to move your flavour files to a new directory, DON'T set your "flavourdir" property.
Moved the content that was in README to CHANGELOG.
You can now organize the directory hierarchy of your blog by date. For example, you could create a category for each year and put posts for that year in that year (2003, 2004, 2005, ...). Previously URLs requesting "2003", "2004", ... would get parsed as dates and would pull blog entries by mtime and not by category.
Logging works now. The following configuration properties are useful for determining whether events in PyBlosxom are logged and what will get logged:
- "log_file" - the file that PyBlosxom events will be logged to--the web-server MUST be able to write to this file.
- "log_level" - the level of events to write to the log. options are "critical", "error", "warning", "info", and "debug"
- "log_filter" - the list of channels that should have messages logged. if you set the log_filter and omit "root", then app-level messages are not logged.
It's likely you'll want to set log_file and log_level and that's it. Omit log_file and logging will fall back to stderr which usually gets logged to your web-server's error log.
Pertinent to developers and plugin developers:
Nothing that I know of. Everything should work pretty much the same.
Download, comments, et al
Download it at http://www.bluesock.org/~willg/download/.
It's been locally tested (my blog has been running the version in CVS for over a month now), but not globally tested. While I'm pretty confident that it should be ok for most people, I'm sure there are some issues that have fallen through the cracks of our total lack of regression testing and unit testing environment.
As such, I heartily encourage anyone still using PyBlosxom to set it up locally and run it through the steps that your blog entails and let me know this week whether there are any issues.
If I don't hear from anyone by Saturday, I'll just release it at my leisure.
This is it for me. This release fixes a bunch of flavour issues that needed fixing. It also includes a much better version of the manual and some work has gone into making it more Python-standards compliant.
Over the last 9 months, the world of web-application development and Python web-application development has changed radically. I'm a little tempted to re-write PyBlosxom using Paste, but I don't think it really helps our "typical user" much and I'm not sure it makes sense given that there are a variety of other weblog applications out there that are well-established and have more momentum.
As such, I'll be helping with minor bug fixes and that's it.
Happy new year!
My blog has been going up and down a lot over the last few days as I'm getting the kinks out of some code I re-wrote in PyBlosxom and searching for other issues. I've successfully transitioned to the new included RSS 2.0 feed without disturbing any of the planets that I'm on. Things are looking good so far. Release soon!
I re-wrote blosxom_path_info_handler and cleaned it up a lot. The adjustments also allow people to create categories that look like dates (and previously would get interpreted as dates and screw things up).
I'm going through the documentation, the bug list, and a couple of other changes I want to make. I'll also tackle any low-hanging fruit that's on my todo list. Otherwise, I consider PyBlosxom 1.3 pretty complete. If all goes as I plan, it'll be out before Christmas in some form.
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.
The code seems to be working nicely so far. There's one piece I still want to code before a PyBlosxom 1.3 rc release. I still have to go through the manual, update the content, and do some more work on organization. It's likely I won't get to work on it until the end of the semester, so that puts the next release some time at the end of December.
I re-re-wrote the flavour template code for the upcoming PyBlosxom 1.3 release. It works like this now:
- Pulls flavour templates from taste.flav that comes with PyBlosxom if that flavour exists.
- In either $datadir OR $flavourdir:
- If there is a directory named taste.flav, then it will take the template files from there and override the ones it got from step 1.
- OTHERWISE, it will look for files ending in .taste and override the ones it got from step 1.
- If the request is for a non-root path, it'll look in all the directories between $datadir (OR $flavourdir) and $datadir/path_info/ (OR $flavourdir/path_info/) looking for taste.flav directories OR files ending in .taste.
This allows you to put all your flavour files in a flavour directory that you specify in your config.py file.This allows you to put all the flavour files in a taste.flav directory (for example, html.flav, happygoodness.flav, rss20.flav, atom10.flav, ...).
This allows you to override individual template files from the default flavours. For example, if you wanted to add RSS enclosures, you can put a story.rss file in your $datadir/, $flavourdir/, $datadir/rss.flav/, or $flavourdir/rss.flav/ directory (depending on how you set things up) with the enclosure markup in it and PyBlosxom will pull the default rss templates and use your story.rss template.
This allows you to override individual template files depending on what category the user is looking at.
This makes it easier to package and distribute flavour packs because they can all sit in a single directory all by themselves.
There should be no backwards-compatibility issues with the new code between PyBlosxom 1.2 and 1.3.
NOTE: The code needs to bake a bit. I tested a lot of combinations of things, but I'm still finding occasional issues. This blog is using the latest code, so if you find any issues, write a comment below (assuming that's not broken) and I'll fix the issue.
I have one more big thing on my list of things to do for PyBlosxom 1.3. After that I'll probably release an RC1. Depending on school work, that could happen in the next few weeks. If you want to see the code now, get it from CVS (instructions for CVS access here).
I was talking with Josh the other day and he told me that I should take the time to learn Subversion and switch over rather than investing more time to tame my projects with CVS and CVSTrac. So I spent a good portion of today moving my PyBlosxom plugins (the ones that I wrote and/or maintain on my own) to a Subversion repository and Trac.
There are a couple of things that will take getting used to, but overall I've been able to replicate everything I did with CVS in Subversion.
I'm still making modifications to the setup, but I'll be hosting all my PyBlosxom plugins work at http://www.bluesock.org/~willg/cgi-bin/pybltrac.cgi/. I've allowed anonymous ticket creation for feature requests, bug reports, and the like. If you're sitting on issues, patches, and things of that nature, feel free to submit them.
I've been following (very loosely) Ian Bicking's (ianbicking.org) paste progress and it's really amazing stuff. Today, I bumped into his screencast on Ajaxy exception catching. That was really cool and I could see how it could be immensely helpful with debugging/fixing PyBlosxom plugins.
I'm adding "investigate porting PyBlosxom to paste" to my todo list for winter break; paste looks seriously awesome.
I'm going to release the PyBlosxom contributed plugins pack 1.2.3 for PyBlosxom 1.2 in the next couple of days. So if anyone is sitting on any fixes that need to go on, let me know soon.
This has a few fixes here and there--some of which are cosmetic. It also has a behavior fix for the comments plugin so that comments are shown if you have ?showcomments=yes in the querystring as well as when the specific story is viewed.