I'm happy to announce the release of Blogofile 0.8b1 and blogofile_blog 0.8b1.
Why a beta release?
It's been a long time since the last Blogofile release. I've moved the work that Ryan started forward to make the core static site builder "pluggable", and move an example blog engine into a plugin. There is certainly more work to do, but the codebase is stable, and in pretty good shape now. It builds the this site, my personal site (douglatornell.ca), and several other people's sites and blogs. So, a release is in order. Doing a beta release is an opportunity to make sure that the packaging is correct. There are still some minor issues to clean up (see the 0.8 milestone in the GitHub issue trackers). There is also lots of updating to do in the docs.
And, finally, there is the issue of migrating sites from 0.7.x to 0.8. Several people have offered to help figure out and document that process and I'm calling for that help now. At this point I honestly don't know what the best strategy for that migration is - a recipe in the docs, a helper script, ... If you are using Blogofile 0.7 or 0.7.1 please try out 0.8b1 and tell the community how you migrated your site. You can leave a comment on this post, the mailing list, or you can clone the GitHub repo, add to the Migrating Sites from 0.7.x to 0.8 section of the docs, or add a migration helper script to the converters/ directory, and send a pull request.
Blogofile is now the static site builder that has always been at the core of the Blogofile project. blogofile_blog is a Blogofile plugin that provides templates, controllers, and filters (and even some sample posts) to use Blogofile to create a simple HTML5Boilerplate based blog.
I realized in the run-up to this release that import dependencies between Blogofile and blogofile_blog make the installation steps less straight forward than I had hoped. For now:
pip install Blogofile pip install blogofile_blog
in that order (or your favourite easy_install or python setup.py incantations) are what's needed. I'm hoping that the installation story can be improved, perhaps with the help of the stevedore library, but I didn't want to delay this release any longer to explore that.
The documentation source files have been moved into the project repository. They are built and rendered at http://docs.blogofile.com/ thanks to the readthedocs.org service.
The init sub-command syntax and functionality have changed; see blogofile help init.
The configuration system has been refactored. The default configuration settings are now in the default_config.py module.
As a result of the refactoring of the initialization function, and the configuration system, the site_init directory has been eliminated.
There is improved Unicode handling in slugs, thanks to Wasil Sergejczyk. See https://github.com/EnigmaCurry/blogofile/issues/124
The codebase has been unified for Python 2.6, 2.7 and 3.2 (no 2to3 or 3to2 conversion required).
The command line completion feature has been removed so as to avoid maintaining a bundled version of the argparse library (included in the standard library for Python 2.7 and 3.2+). It will be installed by setup.py from PyPI for Python 2.6.
See CHANGES.txt in the repos for more details on bug fixes, etc.
If you've been using the Blogofile plugins branch and the blogofile_blog repo from GitHub but haven't updated in a while you should take note of the following:
- In the past the functions in blogofile.util were available in templates in both the bf.util and the bf.config.util namespaces. The latter no longer works. If you want to use a blogofile.util function in a template, use bf.util; e.g. bf.util.site_path_helper.
- The constructor argument for blogofile.plugin.PluginTools is now the plugin module, rather than its name. This change only affects people who have developed their own plugins. See blogofile_blog.__init__.py for an example of how blogofile.plugin.PluginTools is now instantiated.
Into the Future
I had a long list of hopes and goals when I became the maintainer of Blogofile a few months ago. I've accomplished some of them in this release, but there is more work I want to do, and more ideas I want to explore.
Part of that is the idea that there can be an ecosystem of plugins around the Blogofile core that allow users to add features, themes, etc. to their blogs, and allow Blogofile to be used to build other kinds of sites. In that context, blogofile_blog is the reference plugin implementation for developers. But for that to really work the plugin API needs to be well defined, and well documented. That's not the case now. The API is still definitely subject to change, and documentation of it has barely begun. Getting that all whipped into shape is one of the goals for the next release.
There are also feature suggestions, requests, and even some fully developed patches in the issue trackers on GitHub. For example:
- When using blogofile serve, add automatic site re-compilation when a source file changes instead of having to stop the server, build, and restart the server.
- Develop a better syntax highlighter for posts that use reStructuredText markup.
- Add more conversion scripts from other blog platforms.
I had to set those aside in order to get 0.8 to a release. I hope that some of those enhancements will mature and be released in the coming months.
I'd like to thank Ryan for creating blogofile, and for his support of my efforts to move blogofile forward. Thanks also to the many members of the community who have contributed bug reports, pull requests, and discussion and answers on the mailing list.
I've been bad about updating this blog, while most of the discussion is happening on the mailing list.
So, for anyone that has this blog in their feeds and was expecting timely updates.. sorry.
The Blogofile 0.7 series is fresh and feature-full. The documentation is up to date.
Blogofile 0.6 is released today. If you've been following along on github, you'll have noticed that there are more commits that have not made it into a release than otherwise. This is my own fault for not adhering to the Release Early, Release Often axiom. I apologize! I hope to be better about this in the future, in fact, 0.7 (and maybe even 1.0) should be right around the corner.
That said, 0.6 is a major milestone in Blogofile development and I'm happy to see the product mature as many people have helped out on the mailing list by giving great suggestions as well as patches.
Changelog (in rough chronological order):
- Posts can now have arbitrary user-defined fields.
- Added Controllers, which enables users to write their own extensions to Blogofile in userspace. Blogofile no longer has any intrinsic knowledge of what a 'blog' is, this is all controlled in userspace inside a new _controllers directory.
- Added Filters, which enables people to write their own text processors, for example: syntax highlighters.
- Easily debuggable in Winpdb by setting the BLOGOFILE_DEBUG=t environment variable. (this is equally usable by actual Blogofile core developers, or in your own user extensions).
- Non-broken unicode support throughout templates and blog posts.
- Lots of unit tests.
- reStructuredText support for blog posts.
Thanks again to the many supporters of Blogofile!
As far as the commit history goes, it's been way too long since a released version of Blogofile. There has been a flurry of things happening with Blogofile over the last month, numerous people having started testing Blogofile out, suggesting new features, and even sending patches.
I really like the current Blogofile. It's running both blogofile.com and enigmacurry.com (my personal blog) quite well. But we're not done yet. Blogofile started out as a personal project so that I could build my own sites the way I wanted to, and although that has been greatly expanded so that other's could start using the app too, there's still a bit left in Blogofile that is a bit, shall we say, hard coded for the way I like to build sites. Blogofile is soon going to get an overhaul that will allow it create a much more diverse range of types of Blogs, as well as other types of sites, while still trying to keep the simple sites simple. A fine, delicate, line to walk to be sure, but I think it'll make for a better Blogofile. I'm excited to get working on these enhancements, but before we get ahead of ourselves, and seeing as the master branch is looking pretty good the way it is, it's time for a new release of Blogofile.
New, for Blogofile 0.5 (roughly in commit order):
- Syntax highlighting of page templates.
- New Python _config.py file replaces config.conf. This change really appeals to me, we have something that resembles Emacs style configuration rather than a Windows INI file.
- init command that spits out a skeleton of a Blogofile site in the current directory, with multiple templates to choose from.
- Blogofile is now MIT licensed.
- Lots of new unit tests.
- Org-mode mark up for posts
- Automatic permalink generation if you don't explicitly set it in the post.
- Replaced OptParse with ArgParse for better command line UI.
- New documentation.
You can install the new version with a simple:
sudo easy_install -U blogofile
I've just released Blogofile 0.4.
Nothing terribly major, but it does represent a maturing product:
- Less buggy syntax highlighting now with a home-grown <pre> tag parser
- EnigmaCurry.com, my personal blog, is now powered by Blogofile. This shows that real blogs can and do run Blogofile.
Next Page »