Four fun and highly productive Plone sprints have taken place so far in 2013. If you missed participating, you still have plenty of opportunities to attend one. Better yet, make use of the available funding, and organize a sprint in your local community.
“We still have room for four large strategic sprints at $3,000 each and three small strategic sprints at $1,500 each.” says Plone Board Member Elizabeth Leddy. “Plus, we have an unlimited community sprint budget. We want to spend all of this sprint money in 2013. So people, organize small local events!”
Need some sprinting ideas? Here are the events that have taken place so far this year:
This joint strategic sprint between South Africa and Germany involved about 30 developers. It was South Africa's first core Plone sprint.
“Connecting with sprinters on another continent brought home the point that we are a global community and that no core Plone work is done in isolation,” says Plone developer JC Brand, in Western Cape, South Africa. “South Africa is geographically isolated from the places where most Plone development takes place, so the local Plone community doesn’t get as much exposure to sprints and other events. The goal of this sprint was to help change that.”
Participants worked on the following:
- Porting CMFPlone tests from Products.PloneTestCase to plone.app.testing
- Tackling TinyMCE bugs
- Removing portal_skins from Products.CMFPlone (PLIP 13260)
- Developing tutorials
- Proofreading documentation
Read more about the Beer and Wine Sprint: opkode.com/media/blog/report-on-the-cape-town-leg-of-the-beer-wine-sprint
Participants in this strategic sprint worked on improving Dexterity. Their mission was to tackle improvements of the through-the-web content type editor as well as the capabilities of the tool for developers. Work on UI improvements included usability testing.
“It was enlightening to see people encounter the UI for the first time and try to figure it out while explaining their thoughts,” says core Plone developer David Glick. “One of the biggest take-aways for me is that while the concept of ‘behaviors’ may make sense to developers, it’s quite difficult for users to understand. We need to do more to present them in ways that make it clear what functionality they enable.”
Emerald sprinters worked on the following:
- Adjustments to the type editor based usability test findings
- Changes to make it easier to customize attributes of widgets for fields in a Dexterity schema
- A new interface for exporting content types, including a preview of the XML definition of the type’s schema -- as well as the ability to export a fully installable Python egg rather than just a GenericSetup profile
- Making it so that a new Dexterity item gets a value for its language field assigned based on the language of its container
- Adding URL and E-mail field types with built-in validation and display widgets that render links
- Migrating code from collective.dexteritytextindexer into Dexterity core. This will add a ’searchable’ toggle for each field to include it in the full text index
- A new view that can be used to export a Dexterity item represented as JSON
- Improvements to the documentation for Dexterity
- A widget for choice fields that can switch between radio buttons or a drop down depending on how many items are in the vocabulary (similar to Archetypes)
- A setting to the Overview tab for a type to configure the allowed types that may be contained within the type
- Support for changing the type restrictions for particular containers (as was already supported for Archetypes)
- Merging code to make it easier to enable versioning for Dexterity content
- Architectural changes needed to support repositioning fields that came from a behavior and moving fields to different fieldsets
- Moving all the Dexterity issues from the old Google Code tracker to issue trackers on github. New Dexterity issues should be submitted on github.
More about the Emerald Sprint:
This strategic sprint focused on improving Plone's testing.
Sprinters improved the Jenkins setup so that a commit or pull request that breaks the build triggers a notification to the author. This new notification goes by the name of mr.roboto.
“Our coredev test results will finally be linked back to the commits that initiated them,” says release manager Eric Steele. “But the best part is, it will help make sure that our contribution story has a low barrier to entry for potential contributors. It also allows the community to make quick, informed decisions about merging new code. And it does so in a way that won’t sacrifice build quality.”
The sprinters also wrote documentation to accompany RF tests and modified the template for creating new Plone products so that the boilerplate is already present.
More about the Barcelona Sprint:
This community sprint was open to anyone interested in collaborating on Zope, Plone, Python, or related projects. Sprinters were invited to propose and organize around their own topics, so it was quite an interesting mix.
Participants worked on the following:
- plone.app.event, a calendaring implementation for Plone
- plone.app.toolbar, which generates a toolbar at the top of each content item view, and plone.app.deco, a drag-and-drop layout composition system for Plone
- Writing AGX code generators for Pyramid, Cornice, and YAFOWIL, including tests and GoParser integration. AGX is a code-generation framework used for transforming UML models into Python code (although it is the successor of ArchGenXML, it bears little resemblance). See this YouTube demo of AGX generating a self-contained buildout with Plone Dexterity content types.
- Extending the Pyramid Google App Engine tutorial at https://github.com/jensens/pyramid-gae-tutorial
More about the ArtSPrinT: