Warning: Can't synchronize with repository "(default)" (Unsupported version control system "svn": No module named svn). Look in the Trac log for more information.

TurboGears 2.0.1

This is a pure bugfix release. We fixed a major issue with allow_only security restrictions not working on crud controllers (and subclasses). If you use the CrudRestController? or the CrudController? you will want to upgrade immediately.

Other fixes worth mentioning:

  • incompatibility of DecoratedController? and custom routes has been removed
  • content_type support improved (now it's not ugly)
  • Jinja2 support is fixed
  • ToscaWidgets? now can be removed when use_toscawidgets is set to false
  • i18n logging now set to a sane default
  • and other minor fixed as explained in wiki/changelog

TurboGears 2.0 final

The long wait is finally over!

I am happy to announce the release of TurboGears 2.0 final. This release is the product of a lot of work by the whole TurboGears team, and we're very happy to have a final stable release. TurboGears 2.0 final includes all kinds of goodies for those making web applications, from one of the most powerful and flexible Object Relational Mappers available in any language, to a powerful and flexible template system. But just as important as the quality of the parts, is the out-of-the-box integration to help get you started quickly:

  • We have quickstart template that helps get you going quickly with everything you need: from sample templates, to sample controllers and tests.
  • We have an extensible user/groups/permission system that you can easily configure into your app when quickstarting a project.
  • We have zero config needed support for development database backed by SQLite
  • We have a working admin system for editing your database while your app is in development
  • Our admin system is extensible and reusable as a component of your application

There's lots more. But equally important, we don't think that out of the box defaults should be constraints on our users. So, a trivial configuration change lets you use DB2, or Oracle, or SQLServer, and everything we've wired up for you is easy enough to customize or replace. For example, we support configs for three major python template engines out of the box, and you can easily make your own render function to handle anything else you want.

One of the goals of TurboGears 2 is to use standard python components, that are valuable in all kinds of other contexts, so you are not tied into one monolythic system. Learning SQLAlchemy can help you write command line tools, GUI apps, web-services that don't use a framework; Genshi is valuable when generating all kinds of xml data for interchange between systems; the beaker is a great caching system that's valuable in all kind of web contexts, etc.

TurboGears 2 final is just now comming out, but it's already in production use at places like ShootQ, RedHat? (for a large set of Fedora infrastructure projects) and many other places. And we're already looking forward to a few more high profile TG2 deployments in the next few weeks.

Release Candidate 1

Just in time for PyCon? the TurboGears Development team is proud to announce TG2 Release Candidate 1.

I'm personally very happy to see this release, as it's the culmination of a long process. I think TG 2 scales up to solve complex enterprise problems with multiple legacy databases, and down to creating simple projects and rapid prototypes, and is going to provide a great platform for the future of the TurboGears project. We've managed to add major features like a full featured session manager, a solid transaction management system, and much more -- all while reducing the total number of lines of code in the project, and creating reusable components that are now a shared part of the python WSGI Web ecosystem.

Thanks everybody who contributed! I'm also very happy to see that some very good work is already going into creating add on components (like a lightweight cms) for TG2 and work has already started on making this even easier in tg To download 2.0 RC 1, simply follow the instructions here:

There are just two small bugfixes in RC1, but you're interested in the details, take a look at the changelog:

Beta 7

TurboGears beta 7 is an urgent security update for Beta 5 and Beta 6 users. The check for controller wide security did not appropriately call abort() and was therefore not enforcing controller level security restrictions. Users with production b5 or b6 applications should upgrade immediately. Fortunately the upgrade should have no backwards incompatible changes, and should require no changes to your project.

But we take this very seriously even though it happened in a beta, and we are taking steps to assure that it won't happen again. It turns out that we moved some tests that would have prevented this into another package, and that left one small thing in TG which was no longer tested, and of course that's where our problem was. We've added several tests to make sure this can't happen again.

In order to make sure that the rapid development of our security stuff has not created any other issues, we'll be holding a security sprint this weekend. We will be adding additional integration tests, and doing a full audit of all security related packages on Sunday.

There was also another issue that kept the __before__ method used by our controller security system from running properly. Special thanks goes out to Alberto Valverde for contributing fixes to both these critical issues.

Beyond those two changes, Other than that we've added some more tests to the quickstart. In particular there are tests for the security system built right into the quickstarted project so users can easily see how to assure that their security measures are working the way they expect.

Beta 6

TurboGears 2.0 beta 6 comes with lots of fixes, and a total feature freeze in preparation for the first Release Candidate. From here on out to 2.0, we'll only be doing bugfixes and improving our Docs. Speaking of Docs, Beta 6 comes on the heals of this last weekend's doc sprint, so it already comes with new and improved documentation.

One thing which you should be aware of in Beta 6 is that after you install tg.devtools and quickstart a new application you have to do python develop on your quickstarted app because some of the dependencies for the app are not installed until that time. This allows you to remove optional dependencies from your application if you're not using them.

Jorge Vargas has completely rewritten the Install doc:

Anita has done great work on the Wiki 20 doc, which is providing an every improved introduction to TG2:

Christoph Zwerschke has update the ToscaWidgets? forms doc:

Chris Perkins has documented the new RestController? stuff which simplifies common Create, Read, Update, Delete operations:

Mark Ramm has created an overview of the TurboGears 2 stack:

There are also new docs on the alternative template engines:

And many, many smaller updates spread across the TG2 docs.

Beta 4

We're doing a beta 4 release a bit ahead of schedule because there are a couple of important bugs that were found in b3, and which have already been fixed. The most important of which was a thread-safety issue in repoze.what which could result in the wrong user getting an authentication denial message if two users were denied at the same time. This has the potential to leak information to untrusted users, so it's a potential security risk, though the impact is fairly limited.

Special thanks goes out this week to Alberto Valverde, who found and submitted patches for the threadsafety issue in repoze.what, and who helped with fixes to repoze.who and the turbogears middleware stack to solve a couple of other issues.

Catwalk, tgext.admin, and the TurboGears mimetype system also have fixes to correct various smaller issues, thanks to Chris Perkins.

Other than that, there are some updates to the docs, and there's a new docs frontpage. We're still working on the TG2 documentation and most of the doc updates will be coming in b5 and the first couple of release candidates.

To download 2.0 beta 4, simply follow the instructions here:

If you're interested in the details of what's changed in this release, take a look at the changelog:

Beta 3

I'm very excited to announce the next TG2 beta release. And yes, it is a beta.

In light of all the fantastic new stuff that got added in our last sprint, we've decided to release this version as beta 3.

Next week we will have beta 4 because I expect there may be some remaining kinks to be ironed out in this release, depending on how some of these new features are received.

New in this release:

  • Brand new "mimetype" style system for requesting a particular response type. Now you can have links to index.html (for html) and index.pdf (for pdf), etc.
  • Brand new REST style controller that makes dispatching on GET, POST, etc much easier.
  • Brand new tgext.crud app to help with making restful crud interfaces easier
  • Brand new WSGIAppController to make mounting WSGI apps inside TG even easier.
  • Creation of a sister package tgext.wsgiapps <link> who's goal is to provide "one liners for all mayor wsgi apps" <link to wsgiapp announcement>
  • Updated wiki 20 doc to improve some recent issues, typos and more.
  • Updated url function to more natively handle unicode parameters
  • Updated beaker to work on python 2.4

To download 2.0 beta 3, simply follow the instructions here:

If you're interested in the details of what's changed in this release, take a look at the changelog: