Three Days, Lots of Progress, the "Not an Alpine City Sprint" Sprint

Wednesday the 10th to Friday the 12th of February 2021, twelve Plonistas met online to sprint on Plone 6

It was the time of the year for an Alpine City Strategic Sprint, but you know, COVID19. Because of the special spirit of this Sprint, it is not possible to just go online and proceed. On the other hand some people out of our Plone community asked me to organize something: there is work to be done. We decided to sprint online for three days, at a Not-an-Alpine-City-Sprint Sprint. 

This happened from Wednesday 10th to Friday 12th of February.

We had twelve participants covering seven topics. Using Jitsi, Discord and Github with its issues and project boards the remote coordination worked very well. We had two “standup” meetings over Jitsi each day, with reports, planning and overall coordination of the tasks.

It was great to meet online at least, but we are all looking forward to meet in person as soon as all are vaccinated and it’s safe again!

The tasks we worked on with people and outcomes:

  • Plone Classic: Update Barceloneta to Bootstrap 5, including cleanup.
    Work done by Peter Holzer, Peter Mathis, Jens Klein, Stefan Antonelli, Robert Kuzma.
    Progress: Lots of tests fixed, all are green now. Many UI details were fixed. All branches are merged to master now.
  • Mockup: Update to ES6.
    Work done by Maik Derstappen, Johannes Raggam
    Outcome: Prototypical integration of ES6 Mockup/Patternslib in Plone 6 done, see PLIP-3211. Removed RequireJS from the resource registry in CMFPlone. Integrated new Mockup in plone.staticresources and clean up (removed resources.xml registry entries, stripped down bundles.xml, removed components subdirectory. Upgrade steps are not done yet!). TinyMCE update to version 5 and pattern migration to ES6, 90% done. Working on ES6 Pattern integration to make more of them work in Plone 6. Webpack build optimizations. Toolbar pattern is functional. Structure pattern is almost functional. Tooltip pattern from Mockup replaced with the one from Patternslib. Allow to customize pattern options from Patternslib in Mockup. E.g. the tooltip pattern default value for the trigger option was changed from click to hover. Created as replacement for pat-texteditor. Created as replacement for Mockup’s pat-tinymce. Experiments with replacing Mockup’s pat-inline-validation with pat-validation from Patternslib.
  • Plone Installer: Fix the old one and plan a new installation story for Plone 6.
    Work on the old installer done by Jens Klein, Allessandro Pisa, Fred van Dijk.
    Outcome: Old installer works again on Linux and MacOS; Windows works but tests are failing. We had a Zoom discussion with a broader circle of persons about a new installer for Plone 6. We discussed the production and development requirements for the back end (Python) and front end (JS). There will be a separate announcement about the outcome soon.
  • Using Dexterity for Plone Site Root
    Work done by Alessandro Pisa.
    Outcome: Code cleanup, some hacks were removed, and for this reason we have less packages checked out. Restored the ZMI for the Plone site root, added an upgrade step to make a Plone site DX ready. For real world testing some databases with simple add-ons were successfully migrated. During the sprint Plone was upgraded to use the latest Zope 5.1.
  • Relations: Add a control panel and helpers for management.
    Work done by Philip Bauer.
    Outcome: Continued work on relation control panels in CMFPlone and wrote some tests for it. Added support for broken relations in and a new control panel; released collective.relationhelpers 1.3.
    Work will continue at the relations sprint sequel on February 27th.
  • plone.autoinclude: A full pip compatible modern rewrite of z3c.autoinclude.
    Work done by Maurits van Rees, Thomas Schorr.
    Outcome: Added lots of tests and a setup with tox; this now runs with GitHub Actions. Test coverage over 90%. Worked on integration tests: the repo contains several test packages with zcml and entry points, and two integration packages that mimic how Products.CMFPlone would use this. Worked on unit tests and a wrapper to install the test packages in the working set when needed. See PR 1. Added a “plone.autoinclude.plugin” entry point for when we cannot handle a  “z3c.autoinclude.plugin” entry point. This is the case when the project name ( differs from the Python module name. We load both entry points. Apart from the new entry point, the original code was hardly touched: it is holding up quite well under all the new tests. 
  • eea.facetednavigation: A feature to add custom CSS per widget.
    Work done by Robert Kuzma
    Outcome: Add custom_css field, branch Update tests. Check in with Alin Voinea about the PR and release