]> scripts.mit.edu Git - wizard.git/blobdiff - doc/create.rst
Typofix s/env/envvar/
[wizard.git] / doc / create.rst
index 84de71cf452c42ef298ade3e953d6d338ddc66e8..aaa88fc381e73abe156133f539a1d1440a077caf 100644 (file)
@@ -39,9 +39,15 @@ Pristine
 --------
 
 This is a tutorial centered around creating a `Wordpress <http://wordpress.org/>`_
-repository.  For the sake of demonstration,
-we shall assume that this repository hasn't been created yet.
-The repository then doesn't exist, we should create it::
+repository.  It assumes you have an upstream; if you do not,
+you can skip most of these steps: just ensure you have a Git repository
+which contains a :term:`pristine` and :term:`master` branch,
+as well as tags for all of the releases in the form ``appname-1.2.3``
+and ``appname-1.2.3-scripts``.
+
+For the sake of demonstration, we shall assume that this repository
+hasn't been created yet.  The repository then doesn't exist, we should
+create it::
 
     cd "$WIZARD/srv"
     mkdir wordpress
@@ -64,6 +70,45 @@ create :file:`$WIZARD/wizard/app/wordpress.py` and fill it in with a bare bones
     class Application(app.Application):
         pass
 
+Finally, we have to tell Wizard about this new module.  If you are
+creating this new module for Scripts, the easiest way to tell Wizard
+about the application is to add it to the :mod:`wizard_scripts` plugin.
+You can do this by editing :file:`plugins/scripts/setup.py` and adding
+your application to the ``wizard.app`` entry point as follows::
+
+    'wizard.app': ['wordpress = wizard.app.wordpress:Application',
+                   'mediawiki = wizard.app.mediawiki:Application',
+                   'phpBB = wizard.app.phpBB:Application',
+                  ],
+
+You can then refresh plugin information by running the :file:`refresh.sh`
+script or by running :file:`python setup.py egg_info` in the
+:file:`plugins/scripts` directory.
+
+If you are creating this module separate from scripts, you will need to
+create a :file:`setup.py` file from scratch in your own plugin.  A
+reasonable template file is::
+
+    import setuptools
+
+    setuptools.setup(
+        name = 'wizard-myapp',
+        version = '0.1.dev',
+        author = 'Me',
+        author_email = 'my-email@mit.edu',
+        description = ('My Awesome Application'),
+        license = 'My Awesome License',
+        url = 'http://www.example.com/',
+        packages = setuptools.find_packages(),
+        entry_points = {
+            'wizard.app': ['wordpress = wizard.app.wordpress:Application',
+                          ],
+        }
+    )
+
+Don't forget to run :file:`python setup.py egg_info` and add your module
+to your :envvar:`PYTHON_PATH`.
+
 Now we are ready to put some code in our repository: the first thing we will
 add is the :term:`pristine` branch, which contains verbatim the code from upstream.