Worked On Migration Of Plone Addons To Python 3

I created a new clean buildout from the Plone coredev Github repository using a checkout of the 5.2 branch. I added a local.cfg file to my local repo and added some packages to this file. This packages were checked out within the next run of buildout using the new local.cfg buildout file, extending buildout.cfg.

I created the local.cfg using the pointer from this webpage:
https://github.com/plone/Products.CMFPlone/issues/2184#issuecomment-359445243

I added a further section to the local.cfg for ‘mr.bob’. Thus my local.cfg looks like this:

[buildout]
extends = buildout.cfg

parts += mrbob

always-checkout = true

custom-eggs +=
        collective.dexteritytextindexer
        bobtemplates.plone

        
test-eggs +=
        collective.dexteritytextindexer [test]
        
        
auto-checkout +=
        collective.dexteritytextindexer
        bobtemplates.plone
        
[mrbob]
recipe = zc.recipe.egg
eggs =
    mr.bob
    bobtemplates.plone
        
        
[sources]
collective.dexteritytextindexer = git git://github.com/andreasma/collective.dexteritytextindexer
bobtemplates.plone = git git://github.com/plone/bobtemplates.plone.git

I created a new branch inside the collective.dexterity local repository with ‘git checkout -b python3’ and did on this branch the steps that are described on this website:
https://github.com/plone/Products.CMFPlone/issues/2184

I run sixer and python-modernize on the package and was able to get it running with Plone 5.2 on Python 3.6. I already created a new Plone site from scratch for this.

Then I created a new Plone add-on package using mr.bob and run sixer and python-modernize against the new package. Once this was finished I added the package to the local.cfg buildout script and run buildout again. I was able to start the Plone site with ‘./bin/instance fg’ without issues again. I installed the new addon within the ‘Site Setup’ page of Plone. The new addon had no real content at that time (only the necessary boilerplate / template).

This created the environment to migrate the current state of my Plone addons to the new Plone 5.2 version and Python 3. This migration is necessary because the support for  Python 2, currently used by Plone, ends within a year.