SlideShare a Scribd company logo
Recent
Developments With
ZopeSkel
Chris Calloway
University of North Carolina
Department of Marine Sciences
October 29, 2009




                                1
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/




                                                6
DC Plone Conference 2008 ZopeSkel Sprint




                                           7
DC Plone Conference 2008 ZopeSkel Sprint

•jjmojojjmojo
•claytron
•markvl
•jraco
•esartor
•evilbungle
•edo102
•mbiggers
•mond21
•pareto


                                           8
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/




                                                           14
Cris Ewing




             15
Chris Rossi




              16
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
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
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
Wrap and Rename




                  20
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
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 --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
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
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
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
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
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
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
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
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
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
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=''
   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
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
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
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
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.silva
•Move out of Collective?
•Release manager



                                        49
ZopeSkel Email List
      http://lists.plone.org/mailman/listinfo/zopeskel




                                                         50
Thanks


         nouri
         hannosch
         optilude
         davconvent
         wichert
         fschulze
         mustap
         MatthewWilkes
         tarek



                         51

More Related Content

Similar to Recent Developments With ZopeSkel

Philipp Von Weitershausen Plone Age Mammoths, Sabers And Caveen Cant The...
Philipp Von Weitershausen   Plone Age  Mammoths, Sabers And Caveen   Cant The...Philipp Von Weitershausen   Plone Age  Mammoths, Sabers And Caveen   Cant The...
Philipp Von Weitershausen Plone Age Mammoths, Sabers And Caveen Cant The...
Vincenzo Barone
 
Simplifying your test runs with „Make“
Simplifying your test runs with „Make“Simplifying your test runs with „Make“
Simplifying your test runs with „Make“
Benjamin Bischoff
 
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
Docker, Inc.
 
Iz Pack
Iz PackIz Pack
Iz Pack
Inria
 
Dockercon EU 2014
Dockercon EU 2014Dockercon EU 2014
Dockercon EU 2014
Rafe Colton
 
Docker 102 - Immutable Infrastructure
Docker 102 - Immutable InfrastructureDocker 102 - Immutable Infrastructure
Docker 102 - Immutable Infrastructure
Adrian Otto
 
Splunk n-box-splunk conf-2017
Splunk n-box-splunk conf-2017Splunk n-box-splunk conf-2017
Splunk n-box-splunk conf-2017
Mohamad Hassan
 
IzPack at LyonJUG'11
IzPack at LyonJUG'11IzPack at LyonJUG'11
IzPack at LyonJUG'11
julien.ponge
 
Lessons learned maintaining Open Source ActionScript projects
Lessons learned maintaining Open Source ActionScript projectsLessons learned maintaining Open Source ActionScript projects
Lessons learned maintaining Open Source ActionScript projects
Zeh Fernando
 
Frequently asked questions answered frequently - but now for the last time
Frequently asked questions answered frequently - but now for the last timeFrequently asked questions answered frequently - but now for the last time
Frequently asked questions answered frequently - but now for the last time
Andreas Jung
 
Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3
Asher Martin
 
(Re)-Introduction to Maven
(Re)-Introduction to Maven(Re)-Introduction to Maven
(Re)-Introduction to Maven
Eric Wyles
 
Oenology
OenologyOenology
Yocto Project Dev Day Prague 2017 - Advanced class - Kernel modules with eSDK
Yocto Project Dev Day Prague 2017 - Advanced class - Kernel modules with eSDKYocto Project Dev Day Prague 2017 - Advanced class - Kernel modules with eSDK
Yocto Project Dev Day Prague 2017 - Advanced class - Kernel modules with eSDK
Marco Cavallini
 
Drupal Presentation for CapitalCamp 2011: Features Driven Development
Drupal Presentation for CapitalCamp 2011: Features Driven DevelopmentDrupal Presentation for CapitalCamp 2011: Features Driven Development
Drupal Presentation for CapitalCamp 2011: Features Driven Development
Mediacurrent
 
Composer JSON kills make files
Composer JSON kills make filesComposer JSON kills make files
Composer JSON kills make files
ropsu
 
PowerShell 8tips
PowerShell 8tipsPowerShell 8tips
PowerShell 8tips
Concentrated Technology
 
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily JobLuca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
linuxlab_conf
 
Lean Drupal Repositories with Composer and Drush
Lean Drupal Repositories with Composer and DrushLean Drupal Repositories with Composer and Drush
Lean Drupal Repositories with Composer and Drush
Pantheon
 
Ansible Project Deploy (phpbenelux 2015)
Ansible Project Deploy (phpbenelux 2015)Ansible Project Deploy (phpbenelux 2015)
Ansible Project Deploy (phpbenelux 2015)
Ramon de la Fuente
 

Similar to Recent Developments With ZopeSkel (20)

Philipp Von Weitershausen Plone Age Mammoths, Sabers And Caveen Cant The...
Philipp Von Weitershausen   Plone Age  Mammoths, Sabers And Caveen   Cant The...Philipp Von Weitershausen   Plone Age  Mammoths, Sabers And Caveen   Cant The...
Philipp Von Weitershausen Plone Age Mammoths, Sabers And Caveen Cant The...
 
Simplifying your test runs with „Make“
Simplifying your test runs with „Make“Simplifying your test runs with „Make“
Simplifying your test runs with „Make“
 
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
 
Iz Pack
Iz PackIz Pack
Iz Pack
 
Dockercon EU 2014
Dockercon EU 2014Dockercon EU 2014
Dockercon EU 2014
 
Docker 102 - Immutable Infrastructure
Docker 102 - Immutable InfrastructureDocker 102 - Immutable Infrastructure
Docker 102 - Immutable Infrastructure
 
Splunk n-box-splunk conf-2017
Splunk n-box-splunk conf-2017Splunk n-box-splunk conf-2017
Splunk n-box-splunk conf-2017
 
IzPack at LyonJUG'11
IzPack at LyonJUG'11IzPack at LyonJUG'11
IzPack at LyonJUG'11
 
Lessons learned maintaining Open Source ActionScript projects
Lessons learned maintaining Open Source ActionScript projectsLessons learned maintaining Open Source ActionScript projects
Lessons learned maintaining Open Source ActionScript projects
 
Frequently asked questions answered frequently - but now for the last time
Frequently asked questions answered frequently - but now for the last timeFrequently asked questions answered frequently - but now for the last time
Frequently asked questions answered frequently - but now for the last time
 
Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3
 
(Re)-Introduction to Maven
(Re)-Introduction to Maven(Re)-Introduction to Maven
(Re)-Introduction to Maven
 
Oenology
OenologyOenology
Oenology
 
Yocto Project Dev Day Prague 2017 - Advanced class - Kernel modules with eSDK
Yocto Project Dev Day Prague 2017 - Advanced class - Kernel modules with eSDKYocto Project Dev Day Prague 2017 - Advanced class - Kernel modules with eSDK
Yocto Project Dev Day Prague 2017 - Advanced class - Kernel modules with eSDK
 
Drupal Presentation for CapitalCamp 2011: Features Driven Development
Drupal Presentation for CapitalCamp 2011: Features Driven DevelopmentDrupal Presentation for CapitalCamp 2011: Features Driven Development
Drupal Presentation for CapitalCamp 2011: Features Driven Development
 
Composer JSON kills make files
Composer JSON kills make filesComposer JSON kills make files
Composer JSON kills make files
 
PowerShell 8tips
PowerShell 8tipsPowerShell 8tips
PowerShell 8tips
 
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily JobLuca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
 
Lean Drupal Repositories with Composer and Drush
Lean Drupal Repositories with Composer and DrushLean Drupal Repositories with Composer and Drush
Lean Drupal Repositories with Composer and Drush
 
Ansible Project Deploy (phpbenelux 2015)
Ansible Project Deploy (phpbenelux 2015)Ansible Project Deploy (phpbenelux 2015)
Ansible Project Deploy (phpbenelux 2015)
 

Recently uploaded

TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 

Recently uploaded (20)

TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 

Recent Developments With ZopeSkel

  • 1. Recent Developments With ZopeSkel Chris Calloway University of North Carolina Department of Marine Sciences October 29, 2009 1
  • 3. October 2-5, 2009 in Chapel Hill, North Carolina 3
  • 6. ZopeSkel Archetypes How-To http://lionfacelemonface.wordpress.com/ 6
  • 7. DC Plone Conference 2008 ZopeSkel Sprint 7
  • 8. DC Plone Conference 2008 ZopeSkel Sprint •jjmojojjmojo •claytron •markvl •jraco •esartor •evilbungle •edo102 •mbiggers •mond21 •pareto 8
  • 9. DC Plone Conference 2008 ZopeSkel Sprint 9
  • 10. ZopeSkel IRC Channel #zopeskel on freenode.net 10
  • 11. Plone Symposium East ZopeSkel Presentation 11
  • 12. Plone Bootcamps http://plonebootcamps.com 12
  • 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. 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. 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
  • 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
  • 23. Button Is Dead; Long Live Button bin/zopeskel 23
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  • 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. 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. 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. 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
  • 48. Other Details •title attribute •All tests now run •More tests 48
  • 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. ZopeSkel Email List http://lists.plone.org/mailman/listinfo/zopeskel 50
  • 51. Thanks nouri hannosch optilude davconvent wichert fschulze mustap MatthewWilkes tarek 51