Worked Through The Plone Volto Training Documentation

I worked with the training documentation for the Plone Volto framework and played a bit with the different components. This helps to get some entry level knowledge of the framework that is based on the JavaScript React framework.

I expanded the buildout from the Volto Github repository with one of my former Plone addons: tdf.extensionuploadcenter and added a new default view for it inside my own Volto app. I use this new view to improve my knowledge on Volto.

Playing With New Plone UI Volto

I read about a new Plone UI named ‘Volto’ and created a new instance from the Github repository: https://github.com/plone/volto

I had to install node.js and yarn on my notebook. I created a new volto package with ‘create-volto-app my-volto-app’.  I could build my volto app with the command ‘npm start’. This build everything and the instance is available at port 3000 of your URL, e.g. ‘http://localhost:3000’. But you need to fire up the Plone instance too with e.g. ‘bin/instance fg’ too (otherwise you will get error messages).

Plone Volto in mobile resolution

The screenshot above shows the Plone site within a resolution for mobile devices. The Volto app uses the Pastanaga theme and is ‘mobile first’.

FOSDEM And A1 Form?

In about two weeks many free software developers and enthusiast meet at the FOSDEM in Brussels for at least two days. They are traveling from other countries inside the European Union as well as from countries around the world to Brussels. Many developers (and some open source supporters too), which attend the event are  employed by open source companies, they are traveling to Brussels within the scope of their payed job (for different reasons) and give talks on topics around their dayly work.

If there is a connection between the the payed job of an attendee and the participation at the FOSDEM, people from inside the European Union that travel (in this case) to Belgium, Brussels need a form A1. If they didn’t own such a certificate their work runs under the rules of the Belgium social security. I explained the features of the A1 form already some weeks ago on my blog here. A connection to the daily could be e.g. a presentation with the branding of the employer or even the statement of a business trip at the hotel reception.

Worked On The Migration Of A Second Plone Addon

I finished my migration of a first Plone addon some a week ago sucessfully and started with migration of a further addon, collective.dexteritytextindexer to Python 3 compatibility. I was able to migrate the source code of the addon itself, but run into issues with the behaviors test script. The tests ran successful on Plone 4.3 to 5.2 and Python 2.7, but failed on Plone 5.2 on Python 3.

First Quarter Without Work For TDF

I did pour volunteer work for LibreOffice and its antecessor for about sixteen years. I worked in different roles for the open source project during this long periode.  The project consumed a lot of my spare time. But then I experienced a ‘nice’ communication experience inside the community (from some ‘core’-members), that showed me a lack of respect for my project work, its value and also for my person. Thus I decided to completely stop my pour volunteer work within the project three month ago. The LibreOffice extensions and templates website (extensions.libreoffice.org) lost its maintainer and project reviewer since that time.

I used my free cycles to improve my fitness. And I was able to do this way something in balance to my day by day payed office work. Seemed it was a smart decision 😉

Finished My First Migration Of A Plone Addon To Python 3

I worked on my first migration oft a Plone addon to Python 3 during the last days. There were some instructions available on Github how to procide and I followed them. I was able to run the addon inside my local environment, but I got some issues with the continous integration test on Travis-CI, once I submitted a pull request. I had to fix the scripts inside the addon for building and testing on Travis-CI and was successful with the great support from a member of the Plone community. He merged my pull request and released a new version of the addon cioppino.twothumbs today: https://pypi.org/project/cioppino.twothumbs

Plone 5.2 From Coredev And PrintingMailHost

I usually don’t configure a mailhost for my local development environment. Thus I use the Products.PrintingMailHost to stop Plone from sending out emails and print into the shell instead.

I read about the porting work of this product/tool to Python 3 on:
https://www.starzel.de/blog/python-3-and-more and wanted to try this version out. I added the product to my buildout script ‘local.cfg’ but without success. Buildout fetched the product and I could change its branch to ‘python3’ but it had didn’t work. Its patch wasn’t applied to the Plone mailhost.

I solved this issue by adding ‘ENABLE_PRINTING_MAILHOST   True’ to the ‘environment-vars =’ entry of the ‘[instance]’ of ‘core.cfg’.

It looks as follows yet:

environment-vars =
        zope_i18n_compile_mo_files true
        ENABLE_PRINTING_MAILHOST True

The printing mailhost is working as expected yet.

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.

Working In A Calm Environment

It’s interesting how much spare you gain once you withdraw from a busy message environment. This helps to invest more time into more healthy acitivities (like outdoor runners training). It makes it also possible for me to concentrate more on improving my skills on Plone and Python and work on the migration of Plone addons to the next Plone main release, 5.2, running on Python 3.

And it is also interesting to notice the difference between the official speach of people about the volunteer work you have done and the real rating of that work. That helps to reclassify things and justify my direction.