Chris,<br><br>Sounds interesting. Question: Does it support some
<br> kind of module/plugin architecture that will allow me to develop "plug-
<br> in" functionality across projects? What would be called in
<br> Django an "app".
<br><p>For example, I would like to have a "news", "blog", and "calendar"
<br> module that I can plug into different applications. The goal is to
<br> have everything for the module contained in one subdirectory or package including
<br> any configuration, routing, templates, controllers, model, etc. So,
<br> something like this:
<br> </p><p>/modules/news/...
<br> /modules/calendar/...
<br> /modules/blog/... <br></p><p>Or:</p><p>packages/<br> MyProj<br> NewsComponent<br> CalendarComponent<br> BlogComponent</p><p>I ended up writing my own framework because I needed this and didn't want to go with Django and Pylons didn't support it: <br>
<br><a href="http://groups.google.com/group/pylons-discuss/browse_thread/thread/14aef22ddb90347f" target="_blank">http://groups.google.com/group/pylons-discuss/browse_thread/thread/14aef22ddb90347f</a></p><p>But would love to be able to use something else that was more of a community effort.<br>
</p>Thanks.
<br clear="all">--<br>--------------------------------------<br>Randy Syring<br>RCS Computers & Web Solutions<br>502-644-4776<br><a href="http://www.rcs-comp.com">http://www.rcs-comp.com</a><br><br>"Whether, then, you eat or drink or whatever you do, do all to the glory of God." 1 Cor 10:31 <br>
<br><br><div class="gmail_quote">On Sun, Jul 5, 2009 at 8:47 PM, Chris McDonough <span dir="ltr"><<a href="mailto:chrism@plope.com">chrism@plope.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Summary<br>
-------<br>
<br>
The first major release of the BFG web framework (aka "repoze.bfg"),<br>
version 1.0, is available. See <a href="http://bfg.repoze.org/" target="_blank">http://bfg.repoze.org/</a> for general<br>
information about repoze.bfg.<br>
<br>
Details<br>
-------<br>
<br>
BFG is a Python web framework based on WSGI. It is inspired by Zope,<br>
Pylons, and Django. It makes use of a number of Zope technologies<br>
under the hood.<br>
<br>
BFG is developed as part of the more general Repoze project<br>
(<a href="http://repoze.org" target="_blank">http://repoze.org</a>). It is released under the BSD-like license<br>
available from <a href="http://repoze.org/license.html" target="_blank">http://repoze.org/license.html</a> .<br>
<br>
BFG version 1.0 represents one year of development effort. The first<br>
release of BFG, version 0.1, was made in July of 2008. Since then,<br>
roughly 80 pre-1.0 releases have been made. None of these pre-1.0<br>
releases explicitly promised any backwards compatibility with any<br>
earlier release.<br>
<br>
Version 1.0, however, marks the first point at which the repoze.bfg<br>
API has been "frozen". Future releases in the 1.X line guarantee<br>
API-level backward compatibility with 1.0. A backwards<br>
incompatibility with 1.0 at the API level in any future 1.X version<br>
will be considered a bug.<br>
<br>
More Details<br>
------------<br>
<br>
BFG contains moderate, incremental improvements to patterns found in<br>
earlier-generation web frameworks. It tries to make real-world web<br>
application development and deployment more fun, more predictable, and<br>
more productive. To this end, BFG has the the following features:<br>
<br>
- WSGI-based deployment: PasteDeploy and mod_wsgi compatible.<br>
<br>
- Runs under Python 2.4, 2.5, and 2.6.<br>
<br>
- Runs on UNIX, Windows, and Google App Engine.<br>
<br>
- Full documentation coverage: no feature or API is undocumented.<br>
<br>
- A comprehensive set of unit tests. The repoze.bfg package contains<br>
11K lines of Python code. 8000 lines of that total line count is<br>
unit test code that tests the remaining 3000 lines.<br>
<br>
- Sparse resource utilization: BFG has a small memory footprint and<br>
doesn't waste any CPU cycles.<br>
<br>
- Doesn't have an unreasonable set of dependencies: "easy_install"<br>
-ing repoze.bfg over broadband takes less than a minute.<br>
<br>
- Quick startup: a typical BFG application starts up in about a<br>
second.<br>
<br>
- Offers extremely fast XML/HTML and text templating via Chameleon<br>
(<a href="http://chameleon.repoze.org/" target="_blank">http://chameleon.repoze.org/</a>).<br>
<br>
- Persistence-agnostic: use SQLAlchemy, "raw" SQL, ZODB, CouchDB,<br>
filesystem files, LDAP, or anything else which suits a particular<br>
application's needs.<br>
<br>
- Provides a variety of starter project templates. Each template<br>
makes it possible to quickly start developing a BFG application<br>
using a particular application stack.<br>
<br>
- Offers URL-to-code mapping like Django or Pylons' *URL routing* or<br>
like Zope's *graph traversal*, or allows a combination of both<br>
routing and traversal. This helps make it feel familiar to both<br>
Zope and Pylons developers.<br>
<br>
- Offers debugging modes for common development error conditions (for<br>
example, when a view cannot be found, or when authorization is being<br>
inappropriately granted or denied).<br>
<br>
- Allows developers to organize their code however they see fit; the<br>
framework is not opinionated about code structure.<br>
<br>
- Allows developers to write code that is easily unit-testable.<br>
Avoids using thread local data structures which hamper testability.<br>
Provides helper APIs which make it easy to mock framework components<br>
such as templates and views.<br>
<br>
- Provides an optional declarative context-sensitive authorization<br>
system. This system prevents or allows the execution of code based<br>
on a comparison of credentials possessed by the requestor against<br>
ACL information stored by a BFG application.<br>
<br>
- Behavior of an an application built using BFG can be extended or<br>
overridden arbitrarily by a third-party developer without any<br>
modification to the original application's source code. This makes<br>
BFG a good choice for building frameworks and other "extensible<br>
applications".<br>
<br>
- Zope and Plone developers will be comfortable with the terminology<br>
and concepts used by BFG; they are almost all Zope-derived.<br>
<br>
Excruciating Details<br>
--------------------<br>
<br>
Quick installation:<br>
<br>
easy_install -i <a href="http://dist.repoze.org/bfg/current" target="_blank">http://dist.repoze.org/bfg/current</a> repoze.bfg<br>
<br>
General support and information:<br>
<br>
<a href="http://bfg.repoze.org" target="_blank">http://bfg.repoze.org</a><br>
<br>
Tutorials<br>
<br>
<a href="http://docs.repoze.org/bfg/current/#tutorials" target="_blank">http://docs.repoze.org/bfg/current/#tutorials</a><br>
<br>
Sample Applications<br>
<br>
<a href="http://docs.repoze.org/bfg/current/#sample-applications" target="_blank">http://docs.repoze.org/bfg/current/#sample-applications</a><br>
<br>
Detailed narrative and API documentation:<br>
<br>
<a href="http://docs.repoze.org/bfg/current" target="_blank">http://docs.repoze.org/bfg/current</a><br>
<br>
Bug tracker:<br>
<br>
<a href="http://bfg.repoze.org/trac" target="_blank">http://bfg.repoze.org/trac</a><br>
<br>
Maillist:<br>
<br>
<a href="http://lists.repoze.org/listinfo/repoze-dev" target="_blank">http://lists.repoze.org/listinfo/repoze-dev</a><br>
<br>
IRC support:<br>
<br>
irc://<a href="http://irc.freenode.net#repoze" target="_blank">irc.freenode.net#repoze</a><br>
<br>
repoze.bfg is developed primarily by Agendaless Consulting<br>
(<a href="http://agendaless.com" target="_blank">http://agendaless.com</a>) and a team of contributors.<br>
<br>
Special thanks to these people, without whom this release would not<br>
have been possible:<br>
<br>
Malthe Borch, Carlos de la Guardia, Chris Rossi, Shane Hathaway, Tom<br>
Moroz, Yalan Teng, Jason Lantz, Todd Koym, Jessica Geist, Hanno<br>
Schlichting, Reed O'Brien, Sebastien Douche, Ian Bicking, Jim Fulton,<br>
Martijn Faassen, Ben Bangert, Fernando Correa Neto, YoungKing, Rob<br>
Miller, Wichert Akkermann, David Pratt, Mark Ramm, and Chris Perkins.<br>
_______________________________________________<br>
Web-SIG mailing list<br>
<a href="mailto:Web-SIG@python.org" target="_blank">Web-SIG@python.org</a><br>
Web SIG: <a href="http://www.python.org/sigs/web-sig" target="_blank">http://www.python.org/sigs/web-sig</a><br>
Unsubscribe: <a href="http://mail.python.org/mailman/options/web-sig/randy%40rcs-comp.com" target="_blank">http://mail.python.org/mailman/options/web-sig/randy%40rcs-comp.com</a><br>
</blockquote></div><br>