Plone Midsummer Sprint was held at Jyväskylä, Finland, on 3rd–7th of July 2017. The main goal for the sprint was to polish content editors’ user experience on the current Plone CMS release. While a lot was accomplished for that original goal, the final sprint topics adapted to follow the interests of its volunteering participants.

The sprint was sponsored by the University of Jyväskylä. In addition, the sprint was accepted to receive strategic funding from Plone Foundation to cover the possible travel and accommodation costs of Albert Casado, the designer of Plone 5 user interface.

This is the final report of Midsummer Sprint.

https://1.bp.blogspot.com/-ms-Qx12buNU/WWaEjNBBpTI/AAAAAAAABIM/YQx3gplenJM0bW-_UAAYvAS7ObbS4HRLQCKgBGAs/s1600/IMG_4317.JPG

Participants

There was 18 participants at Midsummer Sprint in total. The participants included, of course, our organisers, our local development team for Plone based and related services, a GSOC student working on a Plone Foundation mentored topic, a professional UX designer and many well known names from Plone community.

Our sprint organisers:

  • Asko Soukka, University of Jyväskylä
  • Rikupekka Oksanen, University of Jyväskylä

Our local development team:

  • Jussi Rajala, University of Jyväskylä
  • Jussi Talaskivi, University of Jyväskylä
  • Matti Pohjanvirta, University of Jyväskylä
  • Valtteri Karppinen, University of Jyväskylä

Google Summer of Code student:

  • Mikko Hursti, University of Jyväskylä

Plone community participants:

  • Albert Casado, Hewlett Packard
  • Alexander Loechel, Ludwig-Maximilians-Universität München
  • Eric Steele
  • Maik Derstappen, Derico
  • Paul Roeland, Clean Clothes Campaign
  • Peter Holzer, agitator Weblösungen
  • Philip Bauer, Starzel.de
  • Stephan Klinger, der Freitag
  • Sven Strack
  • Timo Stollenwerk, kitconcept GmbH
  • Victor Fernández de Alba, kitconcept GmbH

Thank you for all the participants! Many of you came to Jyväskylä with members of your family, and it was our pleasure to host every one of you!

https://4.bp.blogspot.com/-2CmJ8Dcnb6o/WWaAQ-8YzgI/AAAAAAAABHY/kQ_2dOg-bwoU6EkJzC8m-RLQl7yixpHywCKgBGAs/s1600/IMG_4683.JPG

Results

According to the feedback that we got from our participants, the sprint was considered a very successful one. Maybe the sprint was unable to fix as many content editing related issues as we were hoping for, but it definitely managed to get the best out of its participants:

At first, thanks to this sprint, all members of our local Plone development team at IT Services of University of Jyväskylä got to learn how Plone is being developed. They got their contributor agreements submitted to be able to push their patches to upstream, they learned how those patches were made, tested and reviewed in practice, and they got to know many experienced Plone developers in person. Of course, they also got to feel the spirit of an international open source development sprint, from the community with probably the longest continuing tradition on it.

The same was true for Mikko Hursti, a local student attending the sprint while working on a Google Summer of Code project for Plone Foundation. This year only four students from Finland were accepted for Google Summer of Code program. Mikko’s project is about implementing a drag and drop user interface for customising content listings on Plone.

During the sprint, our local development team mainly focused on confirming and fixing the issues reported for PloneFormGen on Plone 5. PloneFormGen is the most famous form builder for Plone, used by most of the content editors at our university. Also, its unrivalled flexibility really showcases many of the unique features of Plone CMS. Before the end of the sprint, Jussi Rajala and Valtteri Karppinen submitted at least four related pull requests for it and got very familiar with the large code base in question. Not bad at all for their first sprint.

Security is one of the most advertised features of Plone CMS. What makes it particularly great feature is that content editors don’t really need to know or think about it. It just works. Maik Derstappen made spectacular work at the sprint by cleaning up and fixing the code base for a major security feature of Plone called safe HTML transform. It’s a configurable HTML filter, which prevents content editors from accidentally (or with malicious objectives) introducing security issues in their edits. Maik’s work guarantees that the feature really works as advertised also on Plone 5. With the new synchronised configuration, it also works better than ever with TinyMCE, the WYSIWYG HTML editor used on Plone.

The latest major Plone release, Plone 5, introduced a completely redesigned content management toolbar for all logged-in users. But not all logged-in Plone users are content editors, and when they are not, the new toolbar could a distraction. At the sprint, Peter Holzer continued on earlier work by Jens Klein and introduced Show Toolbar -permission to control when the full toolbar is shown, and an alternative member tools -dropdown menu to show a minimal set of required actions (including logout) for logged-in users when the real toolbar is not shown. The default behaviour, of course, remains unchanged.

Plone 5 was also the first Plone CMS release to ship with a complete multilingual content support. With the bundled Multilingual Support -add-on enabled, Plone supports easy-to-use one-to-one translation of each content page for any language. In addition to fixing some reported issues in it, Peter Holzer and Asko Soukka redesigned its key user interface element, Translate-menu on the toolbar, to be much simpler and more consistent with the other menus in Plone’s editing toolbar. With the redesigned Translate-menu soon in place, we really expect to see a good drop in translation related support requests that we currently receive from our content editors.

Plone provides, and has always provided, readable and meaningful web addresses for any content stored on it. Even better, it’s really easy to content around on Plone. But what happens to those old web addresses when content gets moved? Correct. Of course Plone keeps track of moved content and maintains a redirection table for them. Unfortunately, until now, the redirection table has been invisible for Plone web masters. Luckily, Stephan Klinger championed to implement the PLIP for adding the missing redirection management UI for Plone, based on the existing (but lacking) RedirectionTool add-on. While Stephan made the most of the work, Asko helped him by implementing paging and filtering for the new redirection management control panel.

https://2.bp.blogspot.com/-mfWE2YwfOCw/WWaAQ45EEgI/AAAAAAAABHY/BhY7E58nGsoYH958xEIZs2xvEoW6XlU5ACKgBGAs/s1600/plone-sprintti005.JPG

Our farthest participant was Eric Steel, the Plone release manager, who came to the sprint all the way from the United States. Eric started his sprint by releasing the latest beta of Plone 5.1 for developers, but then, together with Philip Bauer, completed the long-awaited refactoring of Plone login forms. The current login forms used in Plone 5 are relying on a form framework, which is no longer used anywhere else in Plone. Upgrading Plone login forms to use the current form frameworks in Plone has been one of many prerequisites for upgrading Plone to Python 3. It’s just awesome that this has finally been done, and we cannot wait for being able to customise Plone login forms in a more sustainable way now. In addition, Philip did also fix a few known issues in the in-place content migration from Plone 4 to Plone 5.

A lots and lots of work was also done to enhance the official Plone documentation at the sprint. To really get an idea, how Plone documentation applies traditional CI practices to ensure high quality documentation, we really recommend watching the presentation that Sven Strack gave us at the sprint. Sven Strack, Paul Roeland and Alexander Loechel worked at least for better tools for building and testing the documentation, better theme for the upcoming Plone 5.1 documentation, better readability of the docs on mobile devices, refactoring robot generated screenshots (helped also by Asko), documentation on developing better documentation for contributing the docs itself and probably much more. In addition, Paul also fixed a few reported accessibility issues on Plone 5 and tested Asko’s approach for building Plone themes with Webpack. Alexander used some of his sprint time to mentor his GSOC student Pavithira KC on implementing new add-ons listing for plone.org.

Other interesting developments at the sprint included Maik implementing sub-templates into bobtemplates.plone, Alexander adding tox based test setup into bobtemplates.plone and Jussi Talaskivi enhancing plone.docker. Once Maik’s enhancements for Plone add-on templates at bobtemplates.plone are available, they will allow to make significantly cleaner initial templates and provide sub-template based scaffolding throughout the add-on lifetime. Alexander’s examples for tox based test setups pave the way for testing add-ons easily on both Python 2 and Python 3. Jussi clarified documentation on using Plone Docker images (also as a cluster), investigated into slimming Plone Docker images and then researched the remaining issues in installing Plone with pip, the official Python package installer.

Finally, there was the dream team of Albert Casado, Victor Fernández de Alba and Timo Stollenwerk working on a new CMS user interface and user experience concept called Pastanaga UI. If something makes this project special, it’s the team. Timo is expert on test driven development, and experienced Plone entrepreneur, who really knows the challenges on the current CMS market. Victor is expert on Plone as enterprise CMS. He has authored a book on using Plone for intranets, and has managed many hundreds of Plone sites during his prior position at Universitat Politècnica de Cataluny. Albert, of course, is best known for his design of the current Plone 5 default theme called Barceloneta. And the best part: they all have successfully worked together before.

At the sprint, Albert completed many of his earlier designs for Pastanaga UI components and composed a visual style guide to help with the reference implementation and later adaptations. Thanks for Alberts prior experience on Plone, Pastanaga UI simplifies many Plone key features to be easier to use than ever, especially on mobile. All this his available on request until the reference implementation has been completed. Victor and Timo supplemented Albert’s work by bootstrapping a ReactJS based reference implementation of the design. Their goal is to complete Plone REST API compatible minimal viable product with the new UI soon, and attract resources for a more complete implementation later. Since the first implementations will be fully JavaScript based, it not yet sure, if Pastanaga UI would be adaptable for the current Plone UI.

Many of our sprint days started with a presentation on some of the sprinted or otherwise current topics, including a presentation on Pastanaga UI by Timo and Albert. Recordings of those presentations are now publicly available on our Plone based video publishing platform Moniviestin.

https://4.bp.blogspot.com/-q5N8_SR3puo/WWaAQ_eOPzI/AAAAAAAABHY/HTJ4hp1Sn5QQZWdDRenxN0CcxTTks7JoQCKgBGAs/s1600/IMG_4619.JPG

Program

While the code is important, Plone sprints are also about the people, who participate them. Plone community has a long tradition for dining or just hanging around together after those very intensive work days, and Midsummer Sprint did not make an exception. We also tried our best to take account that many of the participants travelled with their families.

Most of us dined together every day from Sunday evening to Friday evening. While many of the participants were still arriving on Sunday, we dined at Restaurant Shalimar inside the train station, to be able to welcome travelling participants and their families as they arrived.

In the Monday evening we dined at Restaurant Sohwi, which has always been popular place among the students and staff of our university due to its close proximity to our main campus areas.

On Tuesday, we wrapped up the day a bit earlier than usual and took a guided tour at Alvar Aalto museum (tour being sponsored by the university) to learn and get inspired by Aalto’s design. In the evening, we walked a short forest trail at Haukanniemi together, and experienced a beautiful and warm sunset while enjoying a traditional Finnish camp fire with Finnish sausages (and surprisingly without mosquitoes).

https://3.bp.blogspot.com/-Z77fou8gNmA/WWaAQ-LfTEI/AAAAAAAABHY/9SVGOM6cvPQE1h2lSmvYoUq6vk7p-PMUgCKgBGAs/s1600/IMG_4591.JPG

In the Wednesday evening we dined together at viking restaurant Harald, where it was possible to enjoy many Finnish delicacies including reindeer, gravlax, Scandinavian rye and malt bread, lingonberries and cheese bread with cloudberries. We were lucky enough to catch the summer discount of the restaurant to make that evening a bit more affordable.

https://3.bp.blogspot.com/-iGXt8ZwRQ5w/WWaAQ6ec7yI/AAAAAAAABHY/XFlT3b5Bt-QuR_JuuT0WbtAlkqqCQFwNgCKgBGAs/s1600/IMG_4628.JPG

On Thursday, we organised a traditional Finnish sauna evening with street food at Opinkivi Sauna, a private sauna apartment owned by The Student Union of the University of Jyväskylä. Two separate dressing rooms and saunas at Opinkivi Sauna ensured that everyone was able to enjoy Finnish sauna in comfort.

https://3.bp.blogspot.com/-_iGj4mYw5n0/WWaAQ2fh1fI/AAAAAAAABHY/icS-SIeIlx04OJJQQe13PejSEtDgQT-NACKgBGAs/s1600/IMG_4655.JPG

And finally, in the Friday evening, we ended the sprint with the remaining participants by dining together at restaurant Trattoria Aukio, near the harbour of Jyväskylä, and then, said the goodbyes.

Thank you all, and see you soon!

https://4.bp.blogspot.com/-AeRVBR7_aL4/WWaAQ7G0QDI/AAAAAAAABHY/HFKcPSnkAsYkIbNX-mufwu2ri-jLFTP1wCKgBGAs/s1600/plone-sprintti013.JPG
Filed July 12th, 2017 under Uncategorized

The fifth and last day of Plone Midsummersprint started with the Sun shining again. We didn’t have any presentations for this morning, so it was all development from the beginning.

At 11.30 Timo organized a round table discussion on Pastanaga UI.

pastanaga discussion

 

Sprinting

The aim was to “finish what you started” - here’s something that was going on (more throrough report coming later)

  • Redirect fixes. Plip all parts are basically there. Not finished but parts are there, should be easy to finish. 
  • Docs.theme, css, colors, warnings. RST-styleguide improved. Started to clean Papyrus 5.1, update docs for papyrus. TOX.
  • UI mockups on Mosaic rich text tiles, plan on doing maintenance.
  • Pastanaga UI continued.
  • Finnish wrap up on this sprint, Feedback form, form creation screencast.
  • Login styling. Pet project also.
  • Plone.login continued, removed lots of code. Almost ready
  • FormGen fixes continued
  • Learning by reading
  • Plone docker speed experimentations
  • Redirection tool
  • Lots of other different stuff.

 

We had early lunch, said goodbyes to Philip and Alexander after that and continued to work until 17.45. Then we cleaned the room up and headed for a final dinner together.

sun sets over midsummersprint

 

Thank you all for making this sprint such a delightful and productive event!

Filed July 8th, 2017 under Uncategorized

Sven Strack - Improving Plone Documentation

Fouth day started by Sven talking about how to improve Plone documentation process and tools.

The whole presentation is available as a video in Moniviestin.

Sven

Sprinting

Everyone continued to work they had already started, aiming to get things done before sprint ends. Here is a wrapup:

Asko:

  • Fixed documentation screenshot robot tests to be runnable from CMFPlone

    repository instead of documentation repository; Paul will continue

    from there
  • Finished new translate menu contents with Peter

Alexander:

  • GSOC plone.org project documentation
  • TOX testing for bobtemplates.plone

Valtteri:

  • PFG fixes for text max length continued

Albert:

  • Visual style guide for Pastanaga UI components

Victor:

  • Login implementation for Pastanaga UI MVP

Timo:

  • Worked on publishing the Pastanaga UI style guide

Mikko:

  • Progress on repeating Mosaic tile for customizable folder listings

Stephan:

  • Redirection Tool control panel implemeted in CMFPlone

Maik:

  • safe/html transform upgrade almost complete; configuration synchronizes

    with TinyMCE configuration

Philip & Eric:

  • plone.login works and is getting ready to be PLIP’d

Jussi T:

  • Optimization for plone.docker images with Sven
  • Progress on installing Plone with pip (z3c.autoinclude still needs fixing)

Paul:

  • Plone 5.1 documentation theme fixed to work on mobilw

Sven:

  • Documentation theme updates
  • TOX integrated for docs build
  • About pages of docs updated

Peter:

  • Renamed multilingual’s shared “media” folder to “assets” by default and Asko made the name i18n aware
  • Tested Pastanaga UI MVP

Jussi R:

  • Progress on PFG bug fixes

Rikupekka:

  • Organizing and reporting

 

plone-sprintti005-small.JPG

 

Sauna evening

What would be an event in Finland without a sauna? On thursday evening we went to Opinkivi Sauna, continued to work there, had some dinner and finally got some warmth after a freezing(!) summer day. In fact this day marked a record in amount of snow this time a year!

lunta.jpg

Although it didn’t snow in Jyväskylä, luckily.

Later in the evening a Plone training teem meeting was held remotely.

Filed July 7th, 2017 under Uncategorized

Third day of the sprint was all business - everyone had a clearer path to tread along from the beginning. Last evening’s nice weather was replaced by rain and cloudy sky - a perfect reason to keep inside and huddle over your (or someone else’s) laptop. As before, the day started with a presentation. 

Timo, Albert, Victor - Pastanaga UI

A presentation about Pastanaga UI - a new proposal for a modern, usable, clean Plone user interface for content editors.

You can see the whole presentation video at Moniviestin.

The presentation and the work behind Pastanaga UI activated lots of good discussion.

pastanaga-ui-presentation.png

 

 

Mikko Hursti: Improved listing customization using Plone Mosaic

Mikko gave a demo on what he’s been working on his Google Summer of Code project.

See the whole video on Moniviestin.

 


Sprinting

 Here’s the wrap up on what everybody was doing today:

  • Jussi, Sven: plone.docker image smaller. Other documentation
  • Rikupekka: first commit ever to GitHub (plone documentation). Videos, blogpost 
  • Stefan: Redirection tool control panel in plone core
  • Mikko: Inline tiles lists UI mockups for Dylan. Read about querying. Mikko had a presentation
  • Philip: plone.login is harder than it seems at first.
  • Eric: removed some half-finished features from plone -login.
  • Paul: Bits here and there, theme, documentation, ideas about docs on mobile
  • Victor, Albert, Timo: MVP pastanaga react. Building blocks start to be in place. Styleguide. Actual component started. Checking states and elements in the design. Checking HTML is correct before adding the styles. Zeplin skecthapp plugin. https://www.sketchapp.com/ and https://zeplin.io/
  • Asko: plone.app.multilingual translate-menu improvements and fixes
  • Peter: plone.app.multilingual with Asko. Also fixed easynewsletter footer bug
  • Maik: Also fixed easynewsletter footer bug. Worked on portal transforms. Safety improvements. Timo could check stuff.
  • Alexander: Discussions on GSoC and documentation. Plone version check concepts. Plone vulnerability check ideas. More work on the tox.
  • Sven: Documentations. Merging. New developer guide improved. Work on plone.docker and secret experimental stuff. Need for volunteer: 5.0 to 5.1 migration improvements. Plone 3 docs improvements.
  • Jussi: made some pull requests. Rich text field fix for PFG.
  • Valtteri: PFG fixes

 

So that’s day 3! More to come, stay tuned :)

 


Filed July 5th, 2017 under Uncategorized

 Asko Soukka and Plone Webpack Theme

The second day of Plone Midsummer Sprint started with Asko Soukka discussing about using Webpack themes with Plone. His message was “Bundle all the things!”.

The need arises for real use cases. Customer gets a shiny new theme design from an advertising company. But the “theme” layout is actually filled with feature requirements, such as carousels, blog posts, customized news listings and fancy effects. Using bundled Webpack themes everything can be bundled on a neat, through the web installable zip packet. At University of Jyväskylä Asko has used this approach successfully in production.

You can see Asko’s full presentation in Monviestin:

https://moniviestin.jyu.fi/ohjelmat/erillis/thk/thkplone/midsummer-sprint-2017/asko-soukka-webpack-theme-with-plone?set_language=en&cl=en

coffee.0.jpg

 

Sprinting

The second day was special and shorter than the first one, but here’s what everyone worked on: 

  • Jussi R ja Valtteri: PloneFormGenin bugfixes (character calculator) and RichText-field fix - Also Valtteris first commit to Plone, great!
  • Eric ja Philip: plone.login
  • Philip: Plone 5 migration fixes
  • Philip, Stephan: RedirectionTool design for Plone core and starting coding on that
  • Peter ja Maik: support for subtemplates in bobtemplates.plone (adaptable also for other bob templates)
  • Maik: safe html transform -fixes continues, e.g. safe html:n control panel -fixes
  • Jussi T: docker swarm documentation to docker.plone:een.
  • sven: work on publishing Plone 5.1:n documentation
  • Paul: testing webpach theme, improving plone documentation search, automatic screen capture transfer to acceptance tests on Plone core (partially done)
  • Mikko: learning Jest-javascript-testing tool
  • Alexander: Instructions on how to use TOX tool in Plone projects
  • Albert, Victor, Timo: Pastanaga UI: styles for forms and add-on management, continued work on demoapplication/template
  • Riksa: Mosaic demovideo
  • Asko: Multilingual UI fixes

 

Alvar Aalto

After lunch we went to Alvar Aalto museum. Alvar Aalto was the most famous Finnish architect, who has designed for example University of Jyväskylä main building (and many others). Aalto’s view on architecture takes into account everything, not just a building. He designed whole building complexes, furniture and even lamps and other items. He wanted the buildings to be beautiful, but usable. Just like Plone :)

Aalto museum

 

Field Trip to Haukanniemi

In the evening we went on a field trip to Haukanniemi. Constantly changing Finnish summer weather absolutely embraced our presence, since the evening was warm, sunny and beautiful.

One really important aspect of open source development is the community itself doing the work. When you develop something together, you are part of something bigger than yourself and can accomplish bigger things. It was also nice to see family members join this campfire moment on a clear summer evening. 

Field trip to Haukanniemi

Filed July 5th, 2017 under Uncategorized

The first sprint day is now behind, with four more days left. As usual, the first day of the sprint is about building teams, selecting issues, setting up development environments and, of course, also closing the first issues. And I’m happy to report that we achieve all that.

I was expecting that wide range of available topics would become an issue, but that didn’t happen, thanks to our many very experienced participants. Even it looked like we had way too many topics with only a single person in lead, it was not the full truth, because everybody was willing to help each other, when ever their help was needed. 

So, now that all the participants have arrived and found their topics, I can confirm, that we are working at least on the following topics:

  • Plone UX: Stephan, Peter, Rikupekka
  • Accessibility: Paul
  • PloneFormGen: Jussi R, Valtteri
  • Documentation: Sven, Jussi T, Paul, Philip, Alexander, Asko
  • Safe HTML transform: Maik, Timo
  • Add-on templates (mr.bob): Maik
  • Multilingual support: Asko, Peter, Philip
  • Login: Eric
  • RedirectionTool: Stephan, Asko
  • Pastanaga UI: Albert, Victor, Timo
  • Mosaic inline tile support (GSOC): Mikko

During the first sprint day we already closed our first tickets at least on accessibility, Plone user interface and multilingual support. Many other issues were confirmed or investigated in more depth. There was progress on documentation (e.g. on plone-docker, documentation tool chain and sphinx theme). A new “member tools” drop down menu was implemented as a role based alternative for the current full Plone toolbar. A significant progress on fixing and cleaning up old safe HTML transform was done. Finally, Alexander presented us the current GSOC project on Plone.org add-on listing, a “soft-release” of Plone 5.1b4 was completed, and four new Plone contributor’s agreement were signed to ensure that everyone in our local team submit fixes into Plone ore in the future.

Really looking forward for the rest of the week. Working on this large amount of different topics will remain challenging, but luckily our sprinters don’t seem to let that be on their way.

Filed July 3rd, 2017 under Uncategorized

Hello world, and welcome to Jyväskylä!

Next week we will be coding some Plone at sunny Jyväskylä!  Although Finnish weather is like a box of chocolates, we should be having some sunshine and warmth to comfort our air-conditioned bodies after some 10 hours of programming every day.

Here’s a forecast for the next 10 days:

http://www.foreca.com/Finland/Jyvaskyla?tenday

And here’s Finland’s most well known weatherman Pekka Pouta talking about next weekend:

 

coffee.0.jpgWeather aside, our sprint arrangements are well on the way. There will be some light non-programming action and get-togethers planned, we will be having probably the best room(s) of the Agora building for our use during the sprint and there will be lots of coffee and sugar to keep us awake and productive during days.

As mentioned earlier, you may dip into the lake Jyväsjärvi next to our campus, or hang around outside if your laptop screen is bright enough (or water resistant enough). Remember to bring your bathing suit (although Borat-style is out of style these days)!

You may discuss about who brings a beach volley ball at Gitter room for the participants. Other topics allowed too.

 

Can We Fix It? Yes We Can!

No one said Plone 5 or Plone 5.1 is broken, but even diamonds need polishing time to time. This sprint will focus on enhancing content editor user experience throught the current Plone UI. Bring your favourite Plone UX issues with you! There will be a sprint Kanban board at Github for sprint tickets.

Filed June 28th, 2017 under Uncategorized

Categories

Archives