Jun 01, 2010
Sorrento Sprint Summary - collective.amberjack progress report
RedTurtle is participating each year in Sorrento's Plone sprints. We were there also last week. It was an amazing time of brainstorming and coding. I will try to make a summary of what we have archived.
Symposium
We have started collective.amberjack presence in Sorrento with Massimo's presentation at the European Plone Symposium.
Sprint
Then we had two sprinting days. We have started day one with brainstorming. We had three objectives/questions:
- collective.amberjack sandbox
- refactoring the code - how to simplify collective.amberjack tour definition and registration
- translations - how to manage tour/steps translations
thanks to a fruitful discussion (garbas, dukebody, gborelli, miziodel, shywolf9982, sorry if I forgot your name ;-) we have right now answers to all of our dilemmas.
SanDbox
First idea of having a sandbox for collective.amberjack came up at last Plone Conference in Budapest. We have collected a lot of ideas for different use cases. We have had also some internal brainstorms in RedTurtle about it. Finally after confronting all the concepts - during Sorrento brainstorming - we will have a simple solution which should satisfy most of the users:
- simple Plone site deployment (like demo.plone.org)
- open registration for all users
- collective.amberjack preinstalled and ready to use
- user will try-out Plone using amberjack in his member folder
- nightly restart with fresh Data.fs
Code refactoring
We have started refactoring collective.amberjack. There are 3 areas of interests: javascript, tour definition and tour registration. Luca was doing a great job trying to simplify javascript part. He also prepare a good startup for future enhancements. I was refactoring tour part. We have decided to use a
configuration baseD tour definition,
which looks like that:
[amberjack] steps = 0_create-a-new-folder 1_fill-out-the-fields 2_publish-the-folder 3_all-done title = Add and publish a Folder [0_create-a-new-folder] blueprint = collective.amberjack.blueprints.step title = Create a new folder url = / text = Folders are one of .... validators = python: isManager python: isNotFolderCreated microsteps = 0_0_microstep 0_1_microstep 0_2_microstep [0_0_microstep] blueprint = collective.amberjack.blueprints.microstep description = If you don't want to perform the ... automatically done by your browser. [0_1_microstep] blueprint = collective.amberjack.blueprints.microstep idstep = menu_add-new description = Click the [Add new...] drop-down menu. [0_2_microstep] blueprint = collective.amberjack.blueprints.microstep idstep = new_folder description = Select [Folder] from the menu.
This concept is well known across the community. I hope it will be also more human readable comparing to python dictionary ;-). We have a working version in the trunk. For new tours we have also
new tour registration
- comparing to old approach (registration only using ZCML) you can now use also TTW registration. Other important change is that tour doesn't need to be a python package any more. Because it's a simple .cfg file right now you can simply zip it into an archive (zip, tar) and register it. We have a working implementation for web source and local file system registration (which you can find in the trunk). Archive file can be shipped with multiple tours and with
translationS
which right now are still just a concept that need to be implemented. We would like to make a use of i18ndude tool but because it was designed for ZPT this could be a wrong approach. Overall idea is to keep all the files (tour and the translations) together, something like:
- mytours.zip |- tour1.cfg |- tour1_en.po |- tour1_it.po |- tour1.pot |- tour2.cfg |- tour2_en.po ...
Fixing bugs
Mirco and Federica were working together and did an enormous job fixing most of the 1.1a release bugs. Thanks to Rob we have solved also some TinyMCE problems that we have had. We have still some open issues, like 'new portlet creation' tour that need some attention so we still need your help!
What's next?
The current development focus is on 1.1 release, which includes:
- new tour definition (python dictionary based tour will still work until 1.2)
- new tour registration (old registration will still work until 1.2)
- finish translation implementation
- fix last bugs
- deploy sandbox probably on demo.plone.org
- collective.amberjack.windmill - which should become default interface for creating and editing tours; we have right now something more then just proof of concept: