Celebration: Zope 4 final release

TL;DR: Zope 4 beta phase ended, final version released!

After hard, long years of preparation Earl Zope now finally made it to get a permanent license for the Python 3 wonderland: In September 2016 almost 20 people started with the reanimation of Zope at the Zope Resurrection sprint. This marked the beginning of a wonderful journey for Earl Zope himself for the people who helped him. In August 2017 Earl Zope became aware that his Python 2 country will irreversibly be destroyed by 2020. Earl Zope was successfully applying for for a beta permission for the Python 3 wonderland in September 2017. This beta permission has been extended 9 times to give Earl Zope time to become a good citizen in his new home country.

Earl Zope says a big thank you to all who:

  • contributed to the Python 3 migration even before the resurrection sprint
  • wrote bug reports
  • fixed bugs
  • contributed time and/or money for the migration process
  • encouraged the developers
  • tested beta versions or even used them in production

To be welcome in the Python 3 wonderland many nuts had to be cracked:

  • porting of the code of Zope and its dependencies to Python 3
  • rewrite of RestrictedPython from scratch
  • develop a migration strategy for the ZODB contents aka Data.fs
  • polish the user interface of the Zope management interface (ZMI)
  • and many more…

Earl Zope is looking forward to a happy future in the Python 3 wonderland. Currently he did not yet give up his settling in the Python 2 land. This is planned to happen shortly before or after the Python 2 sunset in the beginning of 2020 when the son of Earl Zope IV becomes the new Earl Zope V. See the roadmap for details.

See the documentation how to install Zope. It also documents the migrations steps.

Zope roadmap

Zope 4 is the successor of Zope 2.13 supporting both Python 2.7 and Python 3. After the release of its final version 4.0:

  • Zope 2.13 will drop into “security fixes only” mode. It will stay in this mode as long as there is a supported Plone version using Zope 2.13: The last Plone version using Zope 2.13 is Plone 5.1. Currently the last two major releases of Plone are officially supported. So with the final release of Plone 7 there will be no supported Plone version running on Zope 2.13. (Plone 5.2 will have a final release soon after the Zope 4 final release.)
  • Zope 4 will only be a short-term supported release. It is an intermediate step to ease the transition to Python 3. There will be only a few bugfix releases until Zope 5 is ready. After 4.0.1 is released the work on Zope 5 will start.
  • Zope 5 will only drop support for Python 2 and for APIs and imports which were already marked as deprecated in Zope 4 or even in Zope 2.13. So software which runs on Zope 4 using Python 3 without DeprecationWarnings should run fine on Zope 5, too. A first beta version of Zope 5 could be released by the end of 2019. With the final release of Zope 5, Zope 4 will drop into “security fixes only” mode.

If you have software running on Zope 2.13 with current Python 2.7, the migration plan looks like the following:

  1. Upgrade to Zope 4 on Python 2.7.
  2. Rollout your software on Zope 4 with Python 2.7 to prove your changes in a live environment.
  3. Upgrade the code of your software to Python 3.
  4. Migrate the ZODB to Python 3.
  5. Rollout your software using Zope 4 on Python 3 to prove it in a live environment.
  6. Drop the Python 2 support in your software.
  7. Upgrade to Zope 5 once it is released.

See the documentation how to install Zope. It also documents the migrations steps.

Zope Spring Cleaning: Last minute information

As the beta permission of Earl Zope in Python 3 wonderland was extended in October 2018, gocept invites Zope developers to the upcoming sprint from 08.05. till 10.05.2019 in Halle (Saale), Germany, to continue together on the work, which is still left.

We aim to polish the last dusty spots on Earl Zope for the final permission to Python 3 wonderland aka the final 4.0 release. As Plone and other applications based on Zope have finally found a way to migrate a ZODB Data.fs created with Python 2 to Python 3, the obstacles for this final permit are almost gone.

So if you have questions concerning migrating databases, it is a good time to join or open an issue on GitHub. As many people are working on Zope during these days, the probability of a quick answer is high.

As organizational tool to coordinate the work, we use GitHub projects again, as it allows cross-repository tracking of issues.

Our current schedule:

  • Wednesday
    • 8:15 Breakfast at gocept kitchen
    • 9:00 Welcome at gocept office and start sprinting afterwards
    • 12:30 Lunch
    • 13:30 Happy sprinting
    • between 15:00 and 16:00 coffee break
    • 18:00 Lights out
    • Going to a local pub
  • Thursday:
    • 8:15 Breakfast
    • 9:00 Standup
    • 12:30 Lunch
    • 13:30 Happy sprinting
    • between 15:00 and 16:00 coffee break
    • 17:00 A game of boules if the weather permits it
    • Going to a local pub
  • Friday:
    • 8:15 Breakfast
    • 9:00 Standup
    • 12:30 Lunch
    • 13:30 Happy sprinting
    • 15:00 Closing meeting
    • 16:00 Lights out

Parking: As Saltlabs in located in a pedestrian zone, the availability of parking spots is rather low. Please use one of the parking decks nearby.

One last hint: The location of the sprint is Leipziger Str. 70, Halle (Saale), Germany.