{"id":2789,"date":"2017-10-25T17:32:41","date_gmt":"2017-10-25T15:32:41","guid":{"rendered":"http:\/\/blog.gocept.com\/?p=2789"},"modified":"2017-10-25T17:34:54","modified_gmt":"2017-10-25T15:34:54","slug":"testing-zope-4beta2","status":"publish","type":"post","link":"https:\/\/blog.gocept.com\/2017\/10\/25\/testing-zope-4beta2\/","title":{"rendered":"Migrating from Zope 2.13 to 4.0b2"},"content":{"rendered":"

TL;DR: <\/strong>There are some rough edges when migrating an existing Data.fs and needed Python code from Zope 2.13 to Zope 4 but there is nothing what cannot be solved.<\/p>\n

The story<\/h2>\n

The German company PerFact Innovation\u00a0(www.perfact-innovation.de<\/a>) has a customer product built on Zope 2.13. The code needed for the customisation to different customers is stored in the ZODB. They invited me to a workshop where we looked into the migration story to Zope 4. We used the just released Zope 4.0b2.<\/p>\n

After half a day the core functions of the customer product where working including the switch from ZServer to WSGI. There were some rough edges we had to come around. I list them here as a reference for other people who start migrating their code to Zope 4.<\/p>\n

We also poke around with a fresh Zope 4 installation on Python 3 to see what this will bring. It was nice to see that a\u00a0DTMLMethod<\/code>\u00a0calling another one while mixing bytes<\/code> and unicode<\/code>\u00a0 no longer leads to strange encoding problems but keeps bytes<\/code>\u00a0 as bytes<\/code>.<\/p>\n

Expect most of the bugs and some of the uglinesses listed below to be fixed in Zope 4.0b3.<\/p>\n

Bugs<\/h2>\n

There are some bugs we could easily hack around in the workshop. Most of them are even fixed by now:<\/p>\n