ootb presentation
DESCRIPTION
Slides from the 2008 Plone conference, detailing the process of running the OOTB project and lessons learned.TRANSCRIPT
OOTB Theming Project
Cat-herding for Plone:Organizing and Executing a Successful Remote Sprint
• Plone Skinner for ONE/Northwest
• 2 1/2 years of experience in Plone
• I have implemented more than 40+ Plone themes
• Plone skinning training - Naples ’07
• Active in making UI improvements to plone.org, etc.
Veda Williams
Plone Strategic Planning Summit
February 2008
• Goal: to produce a plan for the strategic future of Plone
• Result: ~50 “champion topics” chosen and assigned to owners
The directive:Ship with more themes OOTB
• Possibly organize theme sprints if/when Deliverance is delivered ;)*
• Suggested champion: Veda Williams
*Smiley face guilt trip from Alexander Limi
Cat-herding: What it means to be a champion
• A champion is the person responsible for moving a focus area forward, and reporting progress.
• Being a champion does *not* imply that he/she is going to do the actual work — it's about being the responsible person for that focus area. Of course, there are cases where the champion is in fact the person that implements the solution too.
Why Me?Someone apparently thought I knew how to herd cats
“The cat needs a job”
And apparently someone thought I had free time on my hands
What was the *real* objective here?
•“Shipping” themes with Plone implied additional functionality to be added to the installer
•Deliverance was in a fairly raw state
What About Deliverance?People were talking about it like it was the next big thing
When in reality, it looked something like this...
The real problem in asking me to lead the charge?
I had never skinned a 3.0 site.
What was really going on out in the theming community?
The Theming Story(February 2008)
• Bar to entry: HIGH
• Documentation: LOW or NONEXISTENT
• Number of active themers: UNKNOWN
• Deliverance: SCARY
The Revised Challenge
• Create more 3.0 themes
• Alleviate the day to day pain for themers
But what did this look like in practice?
Generate more themes for 3.0
Identify best practices
Identify gaps in knowledge
Use the collected information to lower the
bar of difficulty
Improve the UI on plone.org to make the themes more findable
...and ultimately?
Figure out how to let skinners sleep peacefully through the night
Starting a Rolling Sprint
• http://www.openplans.org/projects/ootb-plone-themes/
• Recruiting was understated -- 2 or 3 emails to the plone users or UI lists
• Recruiting was mostly viral
OpenPlans planning site (still open for business)
Project Structure• Milestone-based
• Assignment of themes
• QA phase
• Rework
• Deployment on plone.org & pypi
• Scattershot approach
• Throw the project out there and hope people will contribute
The Scattershot Approach
World of Warcraft:
“A short range shot that deals 50% weapon damage and disorients the target for 4 seconds.”
Which amounts to something like this...
• No one dies.
• Sometimes you hit your target.
“Hard” Metrics for Gauging Success
• # of participants
• # of themes
• Email traffic
• Installer improvements
• UI changes to Plone.org
Number of Participants• 49 members
• 10 active contributors of themes
• ~25 contributors to the discussion
• New members rolling in every week
• The project took on a life of its own
“We even got our own secret handshake”
Contribution rate
• 20% contribution level to themes
• 50% contribution level to the discussion
Number of Themes
• 66 total Plone themes listed on plone.org as of September 30, 2008
• 10 themes from the OOTB project made available on plone.org
• 5 themes available for download from PyPi or the Collective
• 1 theme used for the new TTW book
You do the math.
~25% of the 3.0 themes on Plone.org are from the OOTB project or have been used for Plone training
Email Traffic
• 65 unique threads
• 300+ emails exchanged in a 10 month period
Email trends
• Marked drop in participation after the first milestone sprint
• Lower response rates to emails
• Feedback from the group at the end?
Thoughts on Email Exchange
• Initial questions were satisfactorily answered early on through email exchange
• Many of the conversations happening on the OOTB list belonged on the UI list for Plone
• To compensate for not exposing these conversations to the world at large, lessons learned need to get translated back to plone.org/documentation
Installer Improvements
• Kudos to Steve McMahon
• As of Plone 3.1.4, all* dependencies are satisfied by simply installing Plone.
• Not sure what the status is of Windows installers.
*almost all
UI Changes to Plone.org
• Design revisions have been approved by Alexander Limi
http://www.openplans.org/projects/ootb-plone-themes/round-one
• Plone.org 3.0 migration is not yet complete, but we have a test bed
• Steve McMahon will implement the changes
• Designer of new plone.org UI is working these changes into the new design
Knowledge Transfer
Key Email Threads
(Future discussions of this nature should be taken into the UI list at large;
OOTB list will be specific to OOTB theming process only.)
What’s the best way tooverride a stylesheet?
• Paster recipe does this via empty stylesheets
• Initial conversations on the OOTB list indicated that overriding should be done via cssregistry.xml
• Further off-line discussions indicated that using empty stylesheets allows more than one Plone theme to be applied; cssregistry.xml is Zope-wide
When and how do we use the browser/ folder?
• Most themers supported using the skins directory, and leaving the browser folder images and stylesheets options available “in case” they are ever needed
• OOTB recipe was created by Trey Beck to use only the skins directory for images and stylesheets, but not widely distributed. (I use this.)
“My dream would be to have ZopeSkel generate an empty plone product (nested python namespace, with basic zcml and __init__.py only, just like the 'plone' ZopeSkel template), and then to be able to inject the code needed for creating a skin directory (registered with portal_skins), or a zope 3 resource style image declaration, or a zope 3 skin layer, or the base code for a viewlet.”
-- David Convent
“... why not to add one more question to theme's generation process like "Generate stylesheets and images as browser resources?". This would let people like me who want to use DTML in stylesheets and store all the theme's mess ;) in skins/ without need of removing browser resources. If people answer [Yes] - we generate the skeleton as it is right now. If we one answers [No] we generate main.css in skins/SUBFOLDER and do not generate browser resources.”
-- Denys Mishunov
“This also highlights the urgency (expressed many times already) of unifying the two approaches to visual customisation and scoping out the role of Deliverance in lifting aspects of theming out of this murky world and into something with a much shorter tool chain.”
-- Martin Aspeli
Can we integrate the Sub-skins product with
CSS Manager tool?
• Reminded us of the frequently requested “subsite” feature
• Highlighted the push towards tool integration (paster + subskins + CSS Manager + gloworm = Deliverance??)
What about DTML Support?
• Stylesheets generated in a theme product should support DTML by default
• Currently no stylesheets are added to the skins/stylesheets folder, and new users may not know how to use DTML
Is it ok to modifymain_template?
• Use viewlets if at all possible, but yes, you can still do this.
• I do this, and Limi probably still does. :)
• For the purpose of OOTB themes, keep these changes to a minimum and comment your changes
How do we publish a product on plone.org?
• Some themes were added to PyPi but never made it back to plone.org
• Highlighted the need to document this on plone.org in the “contribution” section
What documentation does an OOTB theme
product need?
• Readme.txt / Install.txt need to cover dependencies, how to install
• Install.txt not currently generated by paster recipe, but should be
• Themes by Denys Mishunov contain great examples of what these could look like; also documented on the OOTB site
Was OOTB a success?
• Creation of 16 themes, or 25% of the existing 3.0 themes on plone.org
• Significant participation and active email exchange
• Installer improvements by SteveM
• Plone.org UI changes coming soon!
• Clarity in terms of next steps
Side Effects• Completed theming manual by Anne
Bowtell
• Completed theming chapter with David Convent for the new TTW book
• I accepted nomination to be editor for the theming section of Plone.org/documentation
• Energy is finite
• Shorter sprints may work better than a rolling sprint
• Email exchange needs to be exposed to the broader community
• Interest in the project continues
• The champion is not a bystander in the process. :)
General Observations
Where are we going from here?
• UI improvements to plone.org to highlight themes are forthcoming
• Documentation gaps have been identified and will be assigned
• Deliverance work / tool integration work is happening
• The OOTB project will continue, sans milestones and with more personal initiative
New Plone Theming Book(due out in early 2009)
Theming Sprint• October 11 & 12
• Varied topics
• Sprinters welcome!
Themes Available for Selection on plone.org
“Pick me! Pick me!”
Simplicity by David Little, 3.0
Nonzero by duffyd
Intense Simplicity by pigeonflight
Busy City by pigeonflight
Lazy Days by pigeonflight
Bitter Sweet by Volodomyr Rudnytskyy
iCompany theme by Denys Mishunov
Hosting theme by Denys Mishunov
Andreas01 by Speedbreeze
Python by Speedbreeze
Relic by Speedbreeze
Green Community
HedDex Greenfield Theme by Michael Krishtopa
Andreas09 by David Convent & Veda Williams
CHZenLike by Christoph Handl
Hamnavoe by David LLittle
Image Credits
• explodingdog.com drawings
• Texas Monthly and Dick Cheney
• Serta Mattresses
• Southern Culture on the Skids
• http://www.monsterevo.co.uk (tumbleweed)
• Tiger Temple Thailand
Let’s Celebrate!“I think your cat is drunk.”