Recent
Developments With
ZopeSkel
Chris Calloway
University of North Carolina
Department of Marine Sciences
October 29, 20...
Report Out




             2
October 2-5, 2009 in Chapel Hill, North Carolina




                                                   3
TriZPUG




          4
Josh Johnson (jjmojojjmojo)




                              5
ZopeSkel Archetypes How-To
      http://lionfacelemonface.wordpress.com/




                                             ...
DC Plone Conference 2008 ZopeSkel Sprint




                                           7
DC Plone Conference 2008 ZopeSkel Sprint

•jjmojojjmojo
•claytron
•markvl
•jraco
•esartor
•evilbungle
•edo102
•mbiggers
•m...
DC Plone Conference 2008 ZopeSkel Sprint




                                           9
ZopeSkel IRC Channel	




     #zopeskel on freenode.net



                                 10
Plone Symposium East ZopeSkel Presentation




                                             11
Plone Bootcamps
           http://plonebootcamps.com




                                       12
Joel Burton




              13
Project Site
 http://www.coactivate.org/projects/zopeskel-bbq-sprint/




                                                ...
Cris Ewing




             15
Chris Rossi




              16
Sponsors

           Nate Aune               Karl Johan Kleist
           Justin Bennett          Stephen McMahon
        ...
Our Motivation: Users

•Thousands of people use ZopeSkel
•Use for buildouts, themes, content types, products
•Continually ...
Our Goals

•Better questions in templates
•Templates with verbose help
•Repeatable personals preferences
•Context sensitiv...
Wrap and Rename




                  20
Our Design

•Verbose description var in templates
•onchange hook called on var change
•$HOME/.zopeskel
•easy attribute on ...
Day One Accomplishment




                         22
Button Is Dead; Long Live Button




               bin/zopeskel



                                   23
bin/zopeskel
 $ bin/zopeskel


 Usage:


   zopeskel <template> <output-name> [var1=value] ... [varN=value]


   zopeskel ...
bin/zopeskel --help
 $ bin/zopeskel --help


 This script allows you to create basic skeletons for plone and zope
 product...
bin/zopeskel --list
 $ bin/zopeskel --list


 Plone Development
 -----------------


 archetype: A Plone project that uses...
Pre-run Template Help

  $ bin/zopeskel plone3_buildout

plone3_buildout: A buildout for Plone 3 installation­

This templ...
Template question help

    Enter project name: ?

***********************************************************************...
Template question help

   Expert Mode? (What question mode would you like? (easy/expert/all)?)
   ['easy']: ?

|  In easy...
Nested Package Names: Expert Mode

  This template expects a project name with 2 dots in it (a 'nested
namespace', like 'f...
Nested Package Names: Easy Mode

This template expects a project name with 2 dots in it (a 'nested
namespace', like 'foo.b...
ndot Attribute

  This template expects a project name with 2 dots in it (a 'nested
namespace', like 'foo.bar.baz').

Ente...
Post-run Template Help

    $ bin/zopeskel plone3_buildout sexy

plone3_buildout: A buildout for Plone 3 installation

Thi...
zopeskel.doctools.graph: ZopeSkel 2.13




                                         34
zopeskel.doctools.graph: ZopeSkel 2.14dev




                                            35
Command Line Answers

   $ bin/zopeskel plone3_buildout sexy expert_mode=expert
   plone_version=3.3.1 zope2_install=''
  ...
bin/zopeskel --make-config-file

    # This file can contain preferences for zopeskel.
# To do so, uncomment the lines that l...
bin/zopeskel --make-config-file > ~/.zopeskel

# This file can contain preferences for zopeskel.
# To do so, uncomment the li...
zopeskel.doctools.html_doc
         Plone Development
archetype

A Plone project that uses Archetypes content types

This ...
zopeskel.webgui




                  40
zopeskel.webgui




                  41
zopeskel.webgui




                  42
zopeskel.webgui




                  43
zopeskel.webgui




                  44
zopeskel.webgui




                  45
zopeskel.webgui




                  46
http://pasteweb.joelburton.com/




                                  47
Other Details

•title attribute
•All tests now run
•More tests




                     48
Road Ahead

•2.14 release
•Refactor templates into subpackages:
    ✴zopeskel.base
    ✴zopeskel.zope
    ✴zopeskel.plone
...
ZopeSkel Email List
      http://lists.plone.org/mailman/listinfo/zopeskel




                                           ...
Thanks


         nouri
         hannosch
         optilude
         davconvent
         wichert
         fschulze
       ...
Upcoming SlideShare
Loading in...5
×

Recent Developments With ZopeSkel

1,331

Published on

Plone Conference 2009, Budapest

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,331
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
21
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Recent Developments With ZopeSkel

  1. 1. Recent Developments With ZopeSkel Chris Calloway University of North Carolina Department of Marine Sciences October 29, 2009 1
  2. 2. Report Out 2
  3. 3. October 2-5, 2009 in Chapel Hill, North Carolina 3
  4. 4. TriZPUG 4
  5. 5. Josh Johnson (jjmojojjmojo) 5
  6. 6. ZopeSkel Archetypes How-To http://lionfacelemonface.wordpress.com/ 6
  7. 7. DC Plone Conference 2008 ZopeSkel Sprint 7
  8. 8. DC Plone Conference 2008 ZopeSkel Sprint •jjmojojjmojo •claytron •markvl •jraco •esartor •evilbungle •edo102 •mbiggers •mond21 •pareto 8
  9. 9. DC Plone Conference 2008 ZopeSkel Sprint 9
  10. 10. ZopeSkel IRC Channel #zopeskel on freenode.net 10
  11. 11. Plone Symposium East ZopeSkel Presentation 11
  12. 12. Plone Bootcamps http://plonebootcamps.com 12
  13. 13. Joel Burton 13
  14. 14. Project Site http://www.coactivate.org/projects/zopeskel-bbq-sprint/ 14
  15. 15. Cris Ewing 15
  16. 16. Chris Rossi 16
  17. 17. Sponsors Nate Aune Karl Johan Kleist Justin Bennett Stephen McMahon Matthew Bowen Andrzej Mleczko Joel Burton Clayton Parker Chris Calloway Fabian Reinhard Alex and Amy Clark Michael Revoir Stephen Compall Francis Ridder Jan-Jaap Driessen Don Ross Don Fick Jon Stahl Robert Gimlich Dorneles Treméa David Glick Aaron VanDerlip Calvin Hendryx-Parker Ken Wasetis 17
  18. 18. Our Motivation: Users •Thousands of people use ZopeSkel •Use for buildouts, themes, content types, products •Continually answer template questions incorrectly •ZopeSkel made by developers for developers •Themers and integrators are the actual users •Recognize this •Separate common usage from developer usage •Simplify the use of ZopeSkel 18
  19. 19. Our Goals •Better questions in templates •Templates with verbose help •Repeatable personals preferences •Context sensitive questions •Fewer questions •Remove diagnostics from standard output •Documentation on good template writing •Refactor tests •Wrap and rename 19
  20. 20. Wrap and Rename 20
  21. 21. Our Design •Verbose description var in templates •onchange hook called on var change •$HOME/.zopeskel •easy attribute on questions •pre( ) template warning •post( ) template instructions •promote consistency in template 21
  22. 22. Day One Accomplishment 22
  23. 23. Button Is Dead; Long Live Button bin/zopeskel 23
  24. 24. bin/zopeskel $ bin/zopeskel Usage: zopeskel <template> <output-name> [var1=value] ... [varN=value] zopeskel --help Full help zopeskel --list List template verbosely, with details zopeskel --make-config-file Output .zopeskel prefs file Plone Development | archetype: A Plone project that uses Archetypes content types | kss_plugin: A project for a KSS plugin | plone: A project for Plone products | plone2_theme: A theme for Plone 2.1 | plone3_portlet: A Plone 3 portlet 24
  25. 25. bin/zopeskel --help $ bin/zopeskel --help This script allows you to create basic skeletons for plone and zope products and buildouts based on best-practice templates. It is a wrapper around PasteScript ("paster"), providing an easier syntax for invoking and better help. Invoking this script -------------------- Basic usage:: zopeskel <template> (To get a list of the templates, run the script without any arguments; 25
  26. 26. bin/zopeskel --list $ bin/zopeskel --list Plone Development ----------------- archetype: A Plone project that uses Archetypes content types This creates a Plone project that uses Archetypes content types. It has local commands that will allow you to add content types and to add fields to your new content types. kss_plugin: A project for a KSS plugin This creates a project for a KSS plugins ('Kinetic Style Sheets', a Plone 3 framwork for JavaScript/AJAX). plone: A project for Plone products 26
  27. 27. Pre-run Template Help $ bin/zopeskel plone3_buildout plone3_buildout: A buildout for Plone 3 installation­ This template creates a Plone 3 buildout (for most users, a preferred way to get an installation of Plone 3 is to use the appropriate installer, as these are all buildout-based since Plone 3.1) If at any point, you need additional help for a question, you can enter '?' and press RETURN. Enter project name: 27
  28. 28. Template question help Enter project name: ? ************************************************************************** **   *** NOTE: You probably don't want to use this template! **  Since Plone 3.1, the preferred way to get a buildout-based setup **  for Plone is to use the standard installer for your operating **  system (the Windows installer, the Mac installer, or the Unified **  Installer for Linux/Unix/BSD). These give you a best-practice, **  widely-used setup with an isolated Python and a well-documented **  buildout. This template is here for older versions of Plone and **  for experts who explicitly want a raw, non-installer-based **  installation. **  (This message is particularly aimed at people following out-of- **  date books/documentation that suggest this is the right way to get **  a Plone-based buildout. This is no longer the case.) ************************************************************************** Enter project name: 28
  29. 29. Template question help Expert Mode? (What question mode would you like? (easy/expert/all)?) ['easy']: ? |  In easy mode, you will be asked fewer, more common questions. |  In expert mode, you will be asked to answer more advanced, |  technical questions. |  In all modes, no questions will be skipped--even things like |  author_email, which would normally be a default set in a |  $HOME/.zopeskel file. Expert Mode? (What question mode would you like? (easy/expert/all)?) ['easy']: 29
  30. 30. Nested Package Names: Expert Mode This template expects a project name with 2 dots in it (a 'nested namespace', like 'foo.bar.baz'). Enter project name: plone.app.example If at any point, you need additional help for a question, you can enter '?' and press RETURN. Expert Mode? (What question mode would you like? (easy/expert/all)?) ['easy']: expert Namespace Package Name (Name of outer namespace package) ['plone']: Namespace 2 Package Name (Name of inner namespace package) ['app']: Package Name (Name of the inner namespace package) ['example']: Version (Version number for project) ['1.0']: 30
  31. 31. Nested Package Names: Easy Mode This template expects a project name with 2 dots in it (a 'nested namespace', like 'foo.bar.baz'). Enter project name: plone.app.example If at any point, you need additional help for a question, you can enter '?' and press RETURN. Expert Mode? (What question mode would you like? (easy/expert/all)?) ['easy']: Version (Version number for project) ['1.0']: 31
  32. 32. ndot Attribute This template expects a project name with 2 dots in it (a 'nested namespace', like 'foo.bar.baz'). Enter project name: plone.app ERROR: Project name expected 2 dots, supplied 'plone.app' has 1 dots This template expects a project name with 2 dots in it (a 'nested namespace', like 'foo.bar.baz'). Enter project name: 32
  33. 33. Post-run Template Help $ bin/zopeskel plone3_buildout sexy plone3_buildout: A buildout for Plone 3 installation This template creates a Plone 3 buildout (for most users, a preferred [...snip...] Verbose Security? (Should verbose security be "on" or "off"?) ['off']: ************************************************************************** **   Generation finished. **  You probably want to run python bootstrap.py and then edit **  buildout.cfg before running bin/buildout -v". **  See README.txt for details. ************************************************************************** $ 33
  34. 34. zopeskel.doctools.graph: ZopeSkel 2.13 34
  35. 35. zopeskel.doctools.graph: ZopeSkel 2.14dev 35
  36. 36. Command Line Answers $ bin/zopeskel plone3_buildout sexy expert_mode=expert plone_version=3.3.1 zope2_install='' plone_products_install='' zope_user=admin zope_password=admin http_port=8080 debug_mode=on verbose_security=on plone3_buildout: A buildout for Plone 3 installation [..snip...] Creating directory ./sexy 36
  37. 37. bin/zopeskel --make-config-file # This file can contain preferences for zopeskel. # To do so, uncomment the lines that look like: # variable_name = Default Value [DEFAULT] [archetype] # Expert Mode? (What question mode would you like? (easy/expert/all)?) # expert_mode = easy # Project Title (Title of the project) # title = Example Name # Namespace Package Name (Name of outer namespace package) # namespace_package = plone 37
  38. 38. bin/zopeskel --make-config-file > ~/.zopeskel # This file can contain preferences for zopeskel. # To do so, uncomment the lines that look like: # variable_name = Default Value [DEFAULT] expert_mode = expert [archetype] # Expert Mode? (What question mode would you like? (easy/expert/all)?) # expert_mode = easy # Project Title (Title of the project) # title = Example Name # Namespace Package Name (Name of outer namespace package) # namespace_package = plone 38
  39. 39. zopeskel.doctools.html_doc Plone Development archetype A Plone project that uses Archetypes content types This creates a Plone project that uses Archetypes content types. It has local commands that will allow you to add content types and to add fields to your new content types. Fields: • Expert Mode? (What question mode would you like? (easy/expert/all)?) • Project Title (Title of the project) • Namespace Package Name (Name of outer namespace package) • Package Name (Name of the inner namespace package) • Version (Version number for project) • Description (One-line description of the project) • Long Description (Multi-line description (in ReST)) • Author (Name of author for project) • Author Email (Email of author for project) • Keywords (List of keywords, space-separated) • Project URL (URL of the homepage for this project) • Project License (Name of license for the project) • Zip-Safe? (Can this project be used as a zipped egg? (true/false)) • Zope2 Product? (Are you created a Zope2 product?) Local Commands: • i18nlocale (An i18n locale directory structure) Local Command Fields: ◦ language_code (The iso-code of the language) • contenttype (A content type skeleton) Local Command Fields: ◦ contenttype_name (Content type name ) ◦ contenttype_description (Content type description ) ◦ folderish (True/False: Content type is Folderish ) 39
  40. 40. zopeskel.webgui 40
  41. 41. zopeskel.webgui 41
  42. 42. zopeskel.webgui 42
  43. 43. zopeskel.webgui 43
  44. 44. zopeskel.webgui 44
  45. 45. zopeskel.webgui 45
  46. 46. zopeskel.webgui 46
  47. 47. http://pasteweb.joelburton.com/ 47
  48. 48. Other Details •title attribute •All tests now run •More tests 48
  49. 49. Road Ahead •2.14 release •Refactor templates into subpackages: ✴zopeskel.base ✴zopeskel.zope ✴zopeskel.plone ✴zopeskel.silva •Move out of Collective? •Release manager 49
  50. 50. ZopeSkel Email List http://lists.plone.org/mailman/listinfo/zopeskel 50
  51. 51. Thanks nouri hannosch optilude davconvent wichert fschulze mustap MatthewWilkes tarek 51
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×