ZopeSkel is used to create empty projects for Zope and Plone. A number of templates are
included with ZopeSkel:

basic_namespace

nested_namespace

basic_buildout

recipe

zope2_basic

zope2_nested

plone_basic

plone_nested

archetype

The most basic template for Plone is plone_basic, which creates an
empty Plone add-on. Optionally you may add a GenericSetup profile to make your
add-on appear in the list of available add-ons in Plone’s Site Setup. In
this case a profiles/default directory will be created in your new add-on.

For example:

$ ./bin/zopeskel plone_basic my.example

This template asks you a series of questions and creates a new add-on
package from your answers. When prompted to choose a mode, unless you
know what you are doing, select easy mode (it is the default). You will see
output like the following:

plone_basic: A package for Plone add-ons
This template creates a package for a basic Plone add-on project with
a single namespace (like Products.PloneFormGen).
To create a Plone project with a name like 'collective.geo.bundle'
(2 dots, a 'nested namespace'), use the 'plone_nested' template.
This template supports local commands. These commands allow you to
add Plone features to your new package.
If you are trying to create a Plone *site* then the best place to
start is with one of the Plone installers. If you want to build
your own Plone buildout, use one of the plone'N'_buildout templates
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']: easy
Version (Version number for project) ['1.0']: 1.0
Description (One-line description of the project) ['']: This is an example product built with ZopeSkel
Register Profile (Should this package register a GS Profile) [False]: True
Creating directory ./my.example
Replace 1079 bytes with 1273 bytes (1/43 lines changed; 5 lines added)
Replace 42 bytes with 119 bytes (1/1 lines changed; 4 lines added)
------------------------------------------------------------------------------
The project you just created has local commands. These can be used from within
the product.
usage: paster COMMAND
Commands:
add Allows the addition of further templates to an existing package
For more information: paster help COMMAND
------------------------------------------------------------------------------
**************************************************************************
** Your new package supports local commands. To access them, change
** directories into the 'src' directory inside your new package.
** From there, you will be able to run the command `paster add
** --list` to see the local commands available for this package.
**************************************************************************

Once complete you will have a brand new Plone package waiting for customization!

Implementation details of local commands mean that any package which supports
them will have a direct dependency on Paste, PasteScript and PasteDeploy.
As a result, when you first create a package with available local commands,
you will find that these three packages have automatically been installed
inside your package structure:

Local commands are useful for extending a package skeleton when you are first
setting up a new project. Once you’ve completed setup, however, it is a good
idea to disable local commands so that you will no longer be bothered by the
presence of extra package eggs in your source code tree.

To disable local commands, and stop Paste, PasteScript and PasteDeploy from
appearing when you work with your egg, you can edit the source code generated
by ZopeSkel. First, you will want to find and remove the following lines
from your package setup.py file:

Additionally, you may remove the following from setup.cfg in your package
root directory:

[templer.local]template=plone_basic# note that the name found here may differ

After removing these lines, your package will no longer have local commands
available. Furthermore, when you check it out of source control and include
it in a buildout, you will no longer find Paste, PasteScript or PasteDeploy in
your package source tree.