Archive for July, 2007

TG 1.0.3 is out!

Catch the announcement here:

http://groups.google.com/group/turbogears/browse_frm/thread/4cb139487889083b

Florent and Christopher Arent spent more than one late night getting this thing prepped and ready to go, so they deserve some extra beer from all of us TurboGears users when we see them next. These guys are amazing!

Also, special thanks goes out to Christoph Zwerschke, who stepped up and helped out with lots of stuff yesterday.

Python at OSCON

I’m hoping to do a few interviews of some Python folks while at OSCON, so that I can get a Python themed Podcast started. If you’ve done something interesting in Python, and you’ll be at OSCON, please drop me a note at mark.ramm(at)gmail(dot)com.

TG Status update

TurboGears 2.0 development is moving forward at a good pace, and I’m really looking forward to all the good things it will bring. A week ago I ported the 20 min wiki to TG2 in just a few minutes, and all the template and model code survived 100% intact, with just a couple of import changes in the model.

There were a few more changes to the controller code, but even those amounted to just a very small handful of changed lines, (basically just replacing raise redirect with the new redirect_to() function, a few changed imports, and a new base class for the root controller) so it looks like the transition shouldn’t be hard.

Of course there’s quite a few TurboGears features that the 20 min Wiki doesn’t use, so there’s bound to be more work to do. But, we really want to provide a nice smooth upgrade path and we’re definitely moving in the right direction.

Teamwork
And for those worried that TG2 development will be taking all our energy away from maintenance and development on the 1.x line, I think the last couple of weeks prove that the tg1.x line is doing better than ever. Since his appointment as the maintainer of the 1.x line Florent Aide, has been polishing up the 1.0.3 release with a huge number of bugfixes and small enhancements. And some good work has already gone into the 1.1 branch, which will by default use Genshi (which provides a remarkably Kid like syntax) and SQLAlchemy, which provides a much more flexible Object Relational Mapping layer. Kid and SQLObject will continue to be supported, but this release will push the next generation of components.

I’m very excited to see the renewed effort being provided to support of the 1.x line — it provides a great development environment now, and we are commited to continuing to maintain and extend it in the future.

At the same time, I’m loving some of the contributions that Fred and others have been providing to the TG2 codebase, which provides great preview of where we’re headed.

TurboGears 2 and CherryPy

Some people have been asking me why we decided to go with Paste over CherryPy 3 for the foundation of TurboGears 2.

Unfortunately I don’t think we actually made a choice between CherryPy 3 and Paste, certainly not one based on a detailed technical analysis. There are a lot of things to like about both frameworks: CherryPy has a clean API and well integrated components with a unified OO approach, and clearly Robert Brewer put a lot of work into improved stability and performance; Paste is more of a loosely coupled set of WSGI tools that could be used to build a framework than it is a framework itself. So, both are strong candidates for inclusion in a best-of-breed, full-stack, web framework.

But the choice wasn’t between CherryPy and Paste, it was also between working with Ben Bangert and the pylons team, or duplicating some of their efforts. For example, we found out that Ben was building a next generation Authentication/Authorization library which was highly influenced by the Identity API. Working directly with Paste and Pylons meant that we could gain the benifits of that work for free. The same thing happened with Internationalization when Babel came out, either TG and Pylons would have to integrate Babel, or if we worked more closely together we could both do it at once.

So, ultimately the choice to do TG2 on top of Pylons,wasn’t a rejection of CherryPy, at all. It was an afirmation of the huge value of working closely together with the Pylons folks.