Index: workshop2010/trunk/CHANGES.txt
===================================================================
--- workshop2010/trunk/CHANGES.txt	(revision 5538)
+++ workshop2010/trunk/CHANGES.txt	(revision 5538)
@@ -0,0 +1,8 @@
+CHANGES
+*******
+
+0.1 (yet unreleased)
+====================
+
+- Initial implementation.
+
Index: workshop2010/trunk/README.txt
===================================================================
--- workshop2010/trunk/README.txt	(revision 5538)
+++ workshop2010/trunk/README.txt	(revision 5538)
@@ -0,0 +1,17 @@
+grokworkshop
+************
+
+This is the grokworkshop package. It does not do much.
+
+A subheading
+============
+
+This is a subsection of the subheading.
+
+A list of things this package does:
+
+* nearly nothing
+
+* doesn't hurt.
+
+
Index: workshop2010/trunk/bootstrap.py
===================================================================
--- workshop2010/trunk/bootstrap.py	(revision 5538)
+++ workshop2010/trunk/bootstrap.py	(revision 5538)
@@ -0,0 +1,121 @@
+##############################################################################
+#
+# Copyright (c) 2006 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Bootstrap a buildout-based project
+
+Simply run this script in a directory containing a buildout.cfg.
+The script accepts buildout command-line options, so you can
+use the -c option to specify an alternate configuration file.
+
+$Id$
+"""
+
+import os, shutil, sys, tempfile, urllib2
+from optparse import OptionParser
+
+tmpeggs = tempfile.mkdtemp()
+
+is_jython = sys.platform.startswith('java')
+
+# parsing arguments
+parser = OptionParser()
+parser.add_option("-v", "--version", dest="version",
+                          help="use a specific zc.buildout version")
+parser.add_option("-d", "--distribute",
+                   action="store_true", dest="distribute", default=False,
+                   help="Use Distribute rather than Setuptools.")
+
+parser.add_option("-c", None, action="store", dest="config_file",
+                   help=("Specify the path to the buildout configuration "
+                         "file to be used."))
+
+options, args = parser.parse_args()
+
+# if -c was provided, we push it back into args for buildout' main function
+if options.config_file is not None:
+    args += ['-c', options.config_file]
+
+if options.version is not None:
+    VERSION = '==%s' % options.version
+else:
+    VERSION = ''
+
+USE_DISTRIBUTE = options.distribute
+args = args + ['bootstrap']
+
+to_reload = False
+try:
+    import pkg_resources
+    if not hasattr(pkg_resources, '_distribute'):
+        to_reload = True
+        raise ImportError
+except ImportError:
+    ez = {}
+    if USE_DISTRIBUTE:
+        exec urllib2.urlopen('http://python-distribute.org/distribute_setup.py'
+                         ).read() in ez
+        ez['use_setuptools'](to_dir=tmpeggs, download_delay=0, no_fake=True)
+    else:
+        exec urllib2.urlopen('http://peak.telecommunity.com/dist/ez_setup.py'
+                             ).read() in ez
+        ez['use_setuptools'](to_dir=tmpeggs, download_delay=0)
+
+    if to_reload:
+        reload(pkg_resources)
+    else:
+        import pkg_resources
+
+if sys.platform == 'win32':
+    def quote(c):
+        if ' ' in c:
+            return '"%s"' % c # work around spawn lamosity on windows
+        else:
+            return c
+else:
+    def quote (c):
+        return c
+
+cmd = 'from setuptools.command.easy_install import main; main()'
+ws  = pkg_resources.working_set
+
+if USE_DISTRIBUTE:
+    requirement = 'distribute'
+else:
+    requirement = 'setuptools'
+
+if is_jython:
+    import subprocess
+
+    assert subprocess.Popen([sys.executable] + ['-c', quote(cmd), '-mqNxd',
+           quote(tmpeggs), 'zc.buildout' + VERSION],
+           env=dict(os.environ,
+               PYTHONPATH=
+               ws.find(pkg_resources.Requirement.parse(requirement)).location
+               ),
+           ).wait() == 0
+
+else:
+    assert os.spawnle(
+        os.P_WAIT, sys.executable, quote (sys.executable),
+        '-c', quote (cmd), '-mqNxd', quote (tmpeggs), 'zc.buildout' + VERSION,
+        dict(os.environ,
+            PYTHONPATH=
+            ws.find(pkg_resources.Requirement.parse(requirement)).location
+            ),
+        ) == 0
+
+ws.add_entry(tmpeggs)
+ws.require('zc.buildout' + VERSION)
+import zc.buildout.buildout
+zc.buildout.buildout.main(args)
+shutil.rmtree(tmpeggs)
Index: workshop2010/trunk/buildout.cfg
===================================================================
--- workshop2010/trunk/buildout.cfg	(revision 5538)
+++ workshop2010/trunk/buildout.cfg	(revision 5538)
@@ -0,0 +1,11 @@
+[buildout]
+develop = .
+parts = test 
+
+# Comment for test section
+[test]
+recipe = zc.recipe.testrunner
+eggs = grokworkshop
+       grokworkshop[test]
+defaults = ['--tests-pattern', '^f?tests$', '-v']
+
Index: workshop2010/trunk/setup.py
===================================================================
--- workshop2010/trunk/setup.py	(revision 5538)
+++ workshop2010/trunk/setup.py	(revision 5538)
@@ -0,0 +1,64 @@
+import os
+from setuptools import setup, find_packages
+
+version = '0.1dev'
+
+install_requires =[
+    'setuptools',
+    ],
+
+tests_require = [
+    'zope.testing',
+    ]
+
+def read(*rnames):
+    return open(os.path.join(os.path.dirname(__file__), *rnames)).read()
+
+long_description = (
+    read('README.txt')
+    + '\n\n'
+    + read('CHANGES.txt')
+    + '\n\n'
+    + 'Download\n'
+    + '********\n'
+    )
+
+setup(name = 'grokworkshop',
+      version = version,
+      description = "A sample package from the Grok workshop",
+      long_description = long_description,
+      keywords = "portal waeup sirp student grok zope",
+      # Get strings from http://pypi.python.org/pypi?%3Aaction=list_classifiers
+      classifiers = [
+        'Development Status :: 3 - Alpha',
+        'Environment :: Web Environment',
+        'Intended Audience :: Education',
+        'License :: OSI Approved :: GNU General Public License (GPL)',
+        'Programming Language :: Python',
+        'Operating System :: POSIX',
+        'Operating System :: POSIX :: Linux',
+        'Framework :: Zope3',
+        'Topic :: Education',
+        'Topic :: Internet :: WWW/HTTP',
+        ],
+      author = "The WAeUP team.",
+      author_email = "contact at waeup dot org",
+      url = "http://www.waeup.org/",
+      license = "GPL",
+      package_dir = {'': 'src'},
+      packages= find_packages('src'),
+      # namespace_packages = ['waeup',],
+      include_package_data = True,
+      zip_safe = False,
+      install_requires = install_requires,
+      tests_require = tests_require,
+      extras_require = dict(
+        test = tests_require,
+        ),
+      entry_points="""
+      # Add entry points here
+      [console_scripts]
+      do_something = grokworkshop.samplemodule:do_something
+      """,
+      )
+
Index: workshop2010/trunk/src/grokworkshop/__init__.py
===================================================================
--- workshop2010/trunk/src/grokworkshop/__init__.py	(revision 5538)
+++ workshop2010/trunk/src/grokworkshop/__init__.py	(revision 5538)
@@ -0,0 +1,1 @@
+# Make this a package.
Index: workshop2010/trunk/src/grokworkshop/samplemodule.py
===================================================================
--- workshop2010/trunk/src/grokworkshop/samplemodule.py	(revision 5538)
+++ workshop2010/trunk/src/grokworkshop/samplemodule.py	(revision 5538)
@@ -0,0 +1,6 @@
+"""This sample module does silly things.
+"""
+def do_something(x):
+    print "Doing something: ", x
+    return
+
Index: workshop2010/trunk/src/grokworkshop/subpkg/__init__.py
===================================================================
--- workshop2010/trunk/src/grokworkshop/subpkg/__init__.py	(revision 5538)
+++ workshop2010/trunk/src/grokworkshop/subpkg/__init__.py	(revision 5538)
@@ -0,0 +1,2 @@
+# Make this a subpackage.
+
Index: workshop2010/trunk/src/grokworkshop/subpkg/othermodule.py
===================================================================
--- workshop2010/trunk/src/grokworkshop/subpkg/othermodule.py	(revision 5538)
+++ workshop2010/trunk/src/grokworkshop/subpkg/othermodule.py	(revision 5538)
@@ -0,0 +1,6 @@
+"""Another module that also contains no valuable code.
+"""
+def other_function(y):
+    print "do something else: ", y
+    return
+
