Berlin 2016 sprint update

This week some Plonistas, unfortunately fewer than expected, meet at IN-Berlin to work towards a brighter future for Plone.

Some of us resumed our work already started in Innsbruck sprint early this year while some other topics grew out of discussions and trying things out.

I will never get to write as good as Paul reporting on Barcelona’s sprint, but hey, I will do my best:

In no special order:

Just by trying out the newly shiny plone.org website (congrats plone.org team!!), some bugs where discovered and reported, work done by Stephan Klinger.

The PLIP about assimilating collective.indexing to Plone core finally got all its tests green and is about to be ready for review, work done by Maik Derstappen and Gil Forcada.

Python 3 support was a hot topic during the sprint, so with that in mind Florian Pilz and Michael Howitz created a new tool, zodb.py3migrate, that allows you to convert existing ZODB databases to python 3! Best of all, its great documentation! Be aware that the migration is done in place!

Our Jens2 team was not quadratic this time around, but Jens Vagelpohl continued trying to tame Pluggable Authentication Service (aka PAS).

Did I say that Python 3 was a hot topic? Thomas Lotze with googling support from Gil Forcada took the problem head on and decided that, as Thomas had not that much time (unfortunately he was around only 3 days), work on cracking hard nuts: C extensions. And indeed he did! AccessControl and DocumentTemplate at least compile on python 3.5 (throwing quite some warnings, but hey, have you ever seen Archetypes being installed?). Best of all is that Python 2.6 and 2.7 already have quite some macros for forward compatibility, so the bits that are compatible were pull requested and they are already merged!

Unfortunately that work, C extensions, came to a halt as we hit with RestrictedPython. After long discussions between Thomas, Gil and Maik we decided to make a video conference with the Barcelona sprint, Eric Bréhault, as well as Alexander Loechel, who couldn’t join is in Berlin, but that he already had worked on the topic while in Insbruck early this year (read about his findings). The discussion went really well and Alexander offered himself to continue working on it, stay tuned!

Maik and Stephan meanwhile where not happy with the constellation of form packages that we currently have (z3c.form, plone.autoform, plone.supermodel, plone.z3cform, plone.app.z3cform…) and made yet another package1… just kidding! No, instead they worked on improving the forms related documentation: getting rid of grok2 and making sure that the documentation is consistent3. For that Stephan created the linked above package and Maik was working on moving the remaining useful bits of plone.directives.form to plone.autoform. Stephan started a discussion on the topic on community.plone.org.

Lastly, I put my jenkins/mr.roboto hat on and added some more functionality to mr.roboto: warn which pull request jenkins jobs need to ran to know if a pull request can be safely merged and auto update buildout.coredev’s checkouts.cfg whenever a pull request gets merged. The logic is fairly trivial, but gathering all the pieces together to drive the control is far from it, and testing is yet a complete other matter (thanks mock!!).

All in all we had fun, lots of things got done or discussed and, as with every sprint, everyone is looking for the next one!

Happy hacking!

 

  1. will be soon moved to collective []
  2. and hidden grok dependencies lying in plone.directives.form and plone.directives.dexterity []
  3. at the beginning there are some fields, and two pages later, magically, fields are different! []

Python 2.4 i 2.6 al mateix temps

Degut a la feina haig de fer servir un programa1 que necessita la versió 2.4 de Python i diverses biblioteques (la PIL per exemple).

El problema està en que per defecte Gentoo compila els paquets de Python per a la versió de Python activa del sistema. Com que el sistema de paquets de Gentoo depèn de la versió 2.5 de python tenim un problema: no puc compilar per a la versió 2.4 ja que el programa que s’utilitza per a gestionar els paquets no es pot executar amb aquesta versió!

Si compilo els paquets per a la versió 2.4 de Python llavors no em funcionen per a la versió 2.6, o el que és pitjor (i que em va passar ahir mateix) que si per descuit actualitzes algun paquet de python te’l compila per a 2.6 i t’esborra la versió de 2.4.

Per sort hi ha una solució molt fàcil: al fitxer de configuració de l’emerge (el famós /etc/make.conf) hi pots establir una variable nova:

USE_PYTHON=”2.4 2.6″

Amb aquesta única línia ja li estàs dient a l’emerge que cada vegada que instal·li un programa de python el compili tant per a la versió 2.4 i la 2.6 :)

  1. El Zope, que és el servidor d’aplicacions que fa servir el Plone []