ZopeSkel: The past, present and future

  • 666 views
Uploaded on

ZopeSkel turned six this year, and many changes are underway. Learn where it came from, what is happening now, and where the system is headed.

ZopeSkel turned six this year, and many changes are underway. Learn where it came from, what is happening now, and where the system is headed.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
666
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
7
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Transcript

  • 1. ZopeSkelthe past, present and future Cris Ewing Cris Ewing, Developer LLC Plone Conference 2012 Arnhem, the Netherlands
  • 2. Overview• The beginning• The early years• The awkward adolescense• The No-Fun ZopeSkel BBQ Sprint• The transition to templer• The future
  • 3. In The BeginningPhoto by NASA Goddard Space Flight Center via Flickr(http://www.flickr.com/photos/gsfc/6143668219/) - CC-BY
  • 4. Products
  • 5. ArchGenXML
  • 6. Content Types Only
  • 7. Photo by JD Hancock via Flickr(http://www.flickr.com/photos/jdhancock/3440716774/) - CC-BY
  • 8. • Need to create egg packages• Need to create things other than ATCT• Need a tool to help
  • 9. 25/05/2006Image by heyitsopower via Flickr(http://www.flickr.com/photos/heyitsopower/4864376100/) - CC-BY
  • 10. First checkin:Daniel Nouri
  • 11. • basic_package (from PasteScript)• basic_namespacepackage• basic_zope
  • 12. • June, 2006 (0.2) • plone_core (hannosch)• July-August, 2006 (0.3) • plone2_theme (davconvent) • nested_namespace (hannosch) • plone_app (hannosch)
  • 13. • January-March, 2007 • plone3_buildout (optilude) • plone3_theme (justizin) • plone25_theme (davconvent)
  • 14. June, 2007• ZopeSkel is now 1 year old• Provides nine templates• Seven contributing authors • nouri, davconvent, hannosch, optilude, brcwhit, justizin, pelle• Version 1.0 tagged September, 2007
  • 15. Late 2007• Archetype template added (pjesi)• Recipe template for buildout recipes (tarek)• Hosting buildout template (wichert)• Version 1.3 in December, 2007
  • 16. and then....localcommands
  • 17. • Added December 12, 2007 (mustapha)• Enhance a package already created• Initial offerings include: • portlet • browser view • zcml meta directive • content type
  • 18. • Shortly after, ATSchema added • Iteratively build AT Content Type schema
  • 19. ...and there was much rejoicing
  • 20. Photo by Caylin via Flickr(http://www.flickr.com/photos/10279741@N00/3593353427/) CC-BY-NC-ND
  • 21. Too Many Questions
  • 22. archetype (from ZopeSkel#archetype)-----------------------------------title The title of the project default: Plone Examplenamespace_package Namespace package (like plone) default: plonepackage The package contained namespace package(like example) default: examplezope2product Are you creating a Zope 2 Product? default: Falseversion Version default: 0.1description One-line description of the package default: long_description Multi-line description (in reST) default: author Author name default: Plone Foundationauthor_email Author email default: plone-developers@lists.sourceforge.netkeywords Space-separated keywords/tags default: url URL of homepage default: http://svn.plone.org/svn/plone/plone.examplelicense_name License name default: GPLzip_safe True/False: if the package can bedistributed as a .zip file default: False
  • 23. WTF??!?zope2product: Are you creating a Zope 2 Product?
  • 24. Too Many Templates
  • 25. • archetype • plone3_portlet• basic_namespace • plone3_theme• basic_zope • plone_app• nested_namespace • plone_hosting• plone • plone_pas• plone2.5_buildout • recipe• plone2_theme • silva_buildout• plone3_buildout
  • 26. Photo by cwgoodroe via Flickr(http://www.flickr.com/photos/cwgoodroe/3009281516/) - CC-BY-NC-ND
  • 27. Too Much Codeespecially too much code repeated
  • 28. difficult to track drift
  • 29. Dependency Problems
  • 30. • Local commands need a package to be in the working set• This means that paster must ‘install’ your new package• Your package must also depend on PasteScript (which depends on PasteDeploy and Paste)
  • 31. local commands =>Heavy Paste Dependency
  • 32. two little linessetup_requires=["PasteScript"],paster_plugins=["zopeskel.localcommands"],
  • 33. Three Big Problems
  • 34. One Big Question
  • 35. who is ZopeSkel for?
  • 36. October 2-5, 2009
  • 37. Five Developers• Joel Burton• Chris Calloway• Josh Johnson• Chris Rossi• Cris Ewing
  • 38. Make ZopeSkel Easier
  • 39. Goals• Clean up templates• Improve questions• Wrap `paste create -t` to improve interactions
  • 40. Outcomes• bin/zopeskel script • hides `paste create -t` • provides inline validation of answers • provides inline help for questions • provides ‘classes’ of questions • gives good feedback, and provides hooks for feedback from new templates
  • 41. Outcomes• An official ‘maintainer’ for ZopeSkel
  • 42. Outcomes • A plan to break up ZopeSkelhttps://github.com/collective/ZopeSkel/blob/2.x-maintenance/SPLITTING-PROPOSAL.txt
  • 43. Anti-Outcomes• Failure to publicize the outcome sufficiently• Failure to fully document the plan• Failure to clean up existing docs still advising ‘the old way’ (paster create -t)
  • 44. ↓ blame this guy ↓
  • 45. Photo by Laura Molnar via Flickr(http://www.flickr.com/photos/moosepics621/2207683464/)CC-BY-NC-ND
  • 46. Enter “templer”
  • 47. • Goal to ‘break up’ monolithic ZopeSkel• Work starts in early 2010• Provide templates in packages of related functionality.• Keep it working ‘the same’ for newcomers
  • 48. Breaking Up
  • 49. templer.core• vars (questions)• base templates• control script (wrapper of `paster create`)• structures • ‘docs’ for eggs • licenses
  • 50. What are Structures?• paster templates that you don’t ‘run’ • shared filesystem layout • reduce repetition • allow injection of files and folders in response to questions
  • 51. templer.coretempler.buildout
  • 52. templer.buildout• Provides templates for: • basic buildout • zc.buildout recipes• Provides structures for: • bootstrap.py
  • 53. templer.coretempler.buildout templer.zope
  • 54. templer.zope• Provides templates for: • basic zope package (my.package) • nested zope package (my.nifty.package)
  • 55. templer.coretempler.buildout templer.zope templer.plone
  • 56. templer.plone• Provides templates for: • basic plone package (my.package) • nested plone package (my.nifty.package) • archetype-based add-on • plone tile• Provides structures for: • GenericSetup profile (basic and nested)
  • 57. templer.core templer.buildout templer.zope templer.plone✓archetype • plone3_portlet✓basic_namespace • plone3_theme✓basic_zope ✓plone_app✓nested_namespace • plone_hosting✓plone • plone_pas• plone2.5_buildout ✓recipe• plone2_theme • silva_buildout• plone3_buildout
  • 58. What about Local Commands?
  • 59. Photo by Matthew via Flickr(http://www.flickr.com/photos/purplemattfish/3918004964/) - CC-BY-NC-ND
  • 60. templer.localcommandstempler.plone.localcommandstempler.plone[localcommands]
  • 61. this is OPTIONAL
  • 62. Rebuilding
  • 63. ZopeSkel Should ‘just work’
  • 64. Paste
  • 65. templer Paste
  • 66. ZopeSkeltempler Paste
  • 67. ZopeSkel is atempler application
  • 68. easy_install zopeskel
  • 69. Templates✓archetype • plone3_portlet✓basic_namespace • plone3_theme✓basic_zope ✓plone_app✓nested_namespace • plone_hosting✓plone • plone_pas• plone2.5_buildout ✓recipe• plone2_theme • silva_buildout• plone3_buildout
  • 70. Local Commands• Plone • browserview • browserlayer • portlet• Archetypes • at_contenttype • at_schema_field
  • 71. What’s Next?
  • 72. Need Templates• dexterity (underway)• buildouts (unify with installers)• theme templates (diazo, traditional?)
  • 73. Local Commands• viewlet• utility• z3c form• dexterity schema builder• ???
  • 74. Shameless Plug
  • 75. and beyond that?
  • 76. Crushinator
  • 77. Crushinator• No PasteScript/PasteDeploy/Paster• No specific templating system • Cheetah • Jinja • python string formatting??• Questions and filesystem structures independent
  • 78. Questions?cris@crisewing.com cewing @crisewing