January 29, 2009 - The Zope 3 development team announces the Zope 3.4.0
release.
After 2 years of development, the Zope Foundation and the larger Zope
community is proud to announce the release of Zope 3.4.0.
The focus of the Zope 3.4 development effort has been the conversion from a
monolithic source tree, to a set of many small packages (eggs), that can be
used independently of each other. The core has been further stabilized through
numerous bug fixes, and many new add-on packages have been developed to
provide a richer development experience.
With this release also comes a renewed commitment to a short and reliable
release cycle of 6 months.
Packages and Eggs
-----------------
Zope 3 is now fully converted to an egg-based system. While some work still
remains, it integrates very well with the rest of the Python community. The
conversion to egg-based packaging also enables other Python developers to only
have to use small bits and pieces of the complete Zope software system. The
conversion means that Zope 3 developers do not use the classic Zope 3 tar-ball
release anymore. However, for your convenience, Zope 3 developers will provide
the classic Zope 3 tar ball releases for at least the 3.4 series and probably
for 3.5 as well.
So how are Zope 3 applications built using only eggs?
The Known Good Set (KGS)
~~~~~~~~~~~~~~~~~~~~~~~~
The known good set -- or in short KGS -- is a configuration of packages and
their versions that are known to work well together. The compatibility is
frequently verified by running over twelve thousand tests on a daily
basis [1]_. The KGS is tested against Python 2.4 and 2.5 on the 32- and 64-bit
platforms. The list of controlled packages and their versions for Zope 3.4 can
be found at the Zope 3 KGS site [2]_.
The KGS can be used in several ways [3]_. The most common way is to "nail" the
versions by downloading the version configuration file [4]_ and insert them as
follows in your buildout configuration::
[buildout]
versions = versions
...
[versions]
zope.interface = 3.4.0
...
``zopeproject`` Project Builder
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To start building a project using a common setup, a package called
`zopeproject` can be used to quickly setup the boilerplate for the
project. Ample documentation is provided at the `zopeproject` home page
[5]_. `zopeproject` uses Paste or ZDaemon to create a working server. The
following commands get you started::
$ easy_install zopeproject
$ zopeproject HelloWorld
$ cd HelloWorld
$ bin/helloworld-ctl foreground
Demo Packages
~~~~~~~~~~~~~
At this point, there is no demo package demonstrating a simple Zope 3
application setup. However, the ``z3c.formdemo`` package can be used as a
fairly minimal setup. To get started with it, enter the following::
$ svn co svn://svn.zope.org/repos/main/z3c.formdemo/tags/1.5.3 formdemo
$ cd formdemo
$ python bootstrap.py
$ ./bin/buildout -v
$ ./bin/demo fg
.. [1] http://zope3.pov.lt/buildbot
.. [2] http://download.zope.org/zope3.4/3.4.0/controlled-packages.cfg
.. [3] http://download.zope.org/zope3.4/intro.html
.. [4] http://download.zope.org/zope3.4/3.4.0/versions.cfg
.. [5] http://pypi.python.org/pypi/zopeproject
Downloads
---------
- Zope 3.4 KGS:
http://download.zope.org/zope3.4
- Zope 3.4 Controlled Packages:
http://download.zope.org/zope3.4/3.4.0/controlled-packages.cfg
- Zope 3.4 Versions:
http://download.zope.org/zope3.4/3.4.0/versions.cfg
- The classic Zope 3 source release can be downloaded from:
http://download.zope.org/zope3.4/3.4.0/Zope-3.4.0.tgz
Installation instructions for both Windows and Un*x/Linux are now available in
the top level `README.txt` file of the distribution. The binary installer is
recommended for Windows.
Zope 3.4 requires Python 2.4 or 3.5 to run. You must also have zlib installed
on your system.
Resources
---------
- Zope 3 Development Web Site:
http://wiki.zope.org/zope3
- Zope 3 Developers Mailing List:
http://mail.zope.org/mailman/listinfo/zope-dev
Retired: http://mail.zope.org/mailman/listinfo/zope3-dev
- Zope 3 Users Mailing List:
http://mail.zope.org/mailman/listinfo/zope-users
- Bug tracker at launchpad:
https://launchpad.net/zope3
- IRC Channel:
#zope3-dev at irc.freenode.net
About Zope 3
------------
Zope 3 is a web application server that continues to build on the heritage of
Zope. It was rewritten from scratch based on the latest software design
patterns and the experiences of Zope 2.
The component architecture is the very core of Zope 3 that allows developers
to
create flexible and powerful web applications.
Compatibility with Zope 2
~~~~~~~~~~~~~~~~~~~~~~~~~
Zope 3 is not upwards compatible with Zope 2. This means you cannot run Zope 2
applications in Zope 3.
We continue to work on the transition from Zope 2 to Zope 3 by making Zope 2
use more and more of the Zope 3 infrastructure. This means that new code
written in Zope 2 can benefit from Zope 3 technology. Also, with care, code
can be written that works in both Zope 3 and Zope 2. This allows a Zope 2
application to slowly evolve towards Zope 3. Unchanged Zope 2 applications
are never expected to work in Zope 3, however.
About the Zope Foundation
-------------------------
The Zope Foundation, based in Fredricksburg, Virginia, is a not-for-profit
organisation that provides support for the Zope community and the Zope
platform and its associated software. Its community includes the open source
community of contributers as well as the community of businesses and
organizations that use Zope.
The Grok team is happy to announce the release of Grok 1.0a1. This is
the first step on the way to the release of Grok 1.0! With Grok 1.0 we
will deliver a stable, powerful, featureful framework for Python-based
web development. Grok 1.0a1 is a preview of the 1.0 release and a
continuation of the developments in Grok 0.14.
Changes
======
Grok 1.0a1 has the following changes compared to Grok 0.14:
* Grok now uses WSGI and paster out of the box. To create a project that
uses paster, update grokproject (``easy_install -U prokproject``) first.
* Grok's REST support now works like layers have been for a while,
using a ``grok.restskin`` directive on an interface.
* A new ``grok.DirectoryResource`` component is available that can be
used to expose resources (CSS, Javascript, images) to the web the
Grok way, similar to the way the ZCML ``resourceDirectory``
directive can be used.
* We have split off a new package that Grok now depends on which
contains the viewlet support (``grokcore.viewlet``). The use of
viewlets with Grok remains unchanged, but this package can also be
used independently.
* Besides our existing documentation we have started to add docstrings
to the Grok source code to make it easier to understand.
This release also contains a number of bugfixes. We are continuing to
fix bugs on the way to Grok 1.0.
For installation instructions and much more on how to use Grok, see
the Grok tutorial: http://grok.zope.org/doc/current/tutorial.html
Upgrading
========
It should not be needed to change your code to upgrade an existing
project from 0.14 to 1.0a1, unless you use Grok's REST support.
For detailed upgrade notes on this, see
http://grok.zope.org/project/upgrade-notes
If you want to use the paster support, please examine a project
generated with the newest
version of grokproject and update your project's ``buildout.cfg``
accordingly (and help us write better instructions!).
We hope to hear from you!
If you enjoy Grok, please subscribe to the `grok-dev mailing list`_
and join us in the #grok channel on irc.freenode.net.
.. _`grok-dev mailing list`: http://grok.zope.org/community/grok-dev-mailinglist