With ZopeSkel you can easily generate a setuptools-ready skeleton for your plone product. To install it:
$ easy_install \
http://svn.plone.org/svn/collective/ZopeSkel/trunk#egg=ZopeSkel-dev
Tip1:

I faced a problem after generating my skeleton with:
$ paster create -t plone_app myploneapp
After I added some python files to the product, I run the following command to see how the package will be built:
$ python setup.py build
I checked the 'build' folder. All the files I added are not there :( !!!. Setuptools didn't pick my files.
To get all files in the built, you have to do one of these:

  • edit the SOURCES.txt file in the egg-info folder and add the full path to the files you added.

  • setuptools is an SVN friendly tool. Put your package in an svn repository and check it out. Your working copy will be setuptools-friendly. When you add some files to your package, run:
$ svn add path_to_your_files/
and then:
$ python setup.py build
look in the 'build' folder. You have a complete package without missing files and the SOURCES.txt file is updated.

Tip2:

When generating a plone product skeleton with paster you can tell it to create an svn repository with the standard trunk/ tags/ branches/ hierarchy.
$ paster create -t plone_app myploneapp \
--svn-repository=http://your.svn.server.org/path/to/your/project
This will create:

  • The 'myploneapp' product in the current folder

  • myploneapp/trunk, myploneapp/tags and myploneapp/branches under http://your.svn.server.org/path/to/your/project repository


if you get "No egg-info directory found" error, just update your setuptools to the latest version. This is a known bug in versions prior to 0.6c7. If you cannot or you don't want to update setuptools for some reasons, do:
myploneapp$ svn ci -m 'I have to check in' 
and then
myploneapp$ python setup.py egg_info
this should fix the problem.

Your friends can install your product by running:
$ easy_install \ 
http://your.svn.server.org/path/to/your/project/myploneapp/trunk

Tip3:

Vidar wrote a very good tool to generate plone3 product skeleton from wsl files. To install it:
$  easy_install \
http://svn.plone.org/svn/collective/genesis.wsl/trunk
You will get a new paster template named wsl_plone. Take the Vidar's example from his page and save it as myploneapp.wsl and run:
$ paster create -t wsl_plone myploneapp wsl=myploneapp.wsl \
--svn-repository=http://your.svn.server/your_path/
$ svn ci myploneapp/
to get an svn working copy of your plone3 product.