Emerald Sprint Report Out
Thanks to the fabulous Seattle Plone folk, we had another west coast sprint, the Emerald Sprint, on lovely Camano Island. The focus was polishing Dexterity, it was a gorgeous location, a very productive sprint, and I very much hope we can make it an annual thing. We might have a better chance at that if we choose a topic next year such that David can just be another sprinter for once. :-)
Firstly, I have to give a huge shout out to our Maven of Fine Dining, Sally, and to Alice for yet more above-and-beyond contributions to the culinary experience of this sprint. The food was simply incredible and I have to say I love a sprint that has that element. I was spoiled before by the cooking at the Cioppino Sprint and the Sea Sprint and the food at this sprint may have out done them!
The sprint location was an excellent choice and everything was very well organized by Cris, Luke, Fulvio and David. I was very sad to learn that Cris wasn't going to be able to stay for the sprint and wish him the best. Thanks also to Ian Anderson and Andy Leeb for treating us to a delicious dinner out on our first night.
We did a brainstorming session where we all voted for what we found to be the most important. Then David and Matthew marked the items that they thought were clear low-hanging fruit that didn't require a lot of design or other discussion. After seeing what the other sprinters chose for I opted for tackling some of the remaining low-hanging fruit. That ended up being two tasks both of which involved merging work done by others previously in add-ons or other packages not in Dexterity core where they belong: versioning and constrained types.
Working on versioning involved merging two add-on packages into Dexterity core. The collective.cmfeditionsdexteritycompat add-on makes it possible to use the history view on Dexterity content and I merged it into plone.app.versioningbehavior. The collective.dexteritydiff add-on brings parity with Archetypes when viewing diffs between versions and I merged it into Products.CMFDiffTool. Both packages were done by Rafael Oliveira and worked perfectly, my only job was doing the merge and reconciling the tests. Fortunately, Rafael had written tests and had done so using plone.app.testing. Unfortunately, Products.CMFEditions does not use plone.app.testing and since such tests can not run in the same test run as ZopeTestCase tests are run, that meant I had to back-port the tests Rafael wrote off of plone.app.testing back to ZopeTestCase. I hate going backwards but enough things build on the Products.CMFEditions tests that I guessed it would take too long and be to disruptive to convert all those tests. After that, I spent the rest of the sprint trying to complete my plone.app.testing.api branch which is intended to make such conversions easier.
I also had the opportunity to bring Gin Apocrypha with me and bar tend for the event. It was my first time trying to check enough items on the plane to be able to mix my whole menu and it actually worked out very well. So I think I may be willing to check a bag in the future to be able to bring Gin Apocrypha to events I don't drive to in the future!
It was a great sprint and I love the Seattle area so I really hope this happens again. This sprint being focused on Dexterity and David being Dexterity's maintainer and fearless leader, I know I pestered him a lot as I needed to ask questions and get perspective, but he did a great job facilitating everything. For that reason if no other, I hope the next Emerald Sprint can be on a topic such that David can get back to basics and enjoy being just another sprinter again. :-)