Author: jtauber
Date: Fri Jan 30 12:30:52 2009
New Revision: 1133

Added:
    wiki/MovingToDistutils.wiki

Log:
Created wiki page through web user interface.

Added: wiki/MovingToDistutils.wiki
==============================================================================
--- (empty file)
+++ wiki/MovingToDistutils.wiki Fri Jan 30 12:30:52 2009
@@ -0,0 +1,34 @@
+#summary the how and why of Pinax's move to distutils
+
+Pinax is changing the way that external dependencies are brought in during  
development on trunk. Note that this document is only talking about changes  
in how things work and will work on trunk, NOT necessarily how they will  
work with a released version of Pinax.
+
+Until recently, Pinax had two choices for a given external dependency:
+
+  # use `svn:externals` and point to the external dependency's svn  
repository
+  # include the external dependency code in the Pinax codebase
+
+However, there are problems with this approach:
+
+  # it largely relies on external dependencies being in svn and this is  
increasingly not the case (although it was when Pinax started)
+  # it makes it difficult for Pinax itself to move away from svn
+  # there is no management of dependencies between external dependencies,  
nor between particular projects in Pinax and their individual dependencies
+
+To solve these problems and more, Pinax is switching to a distutils-based  
approach. This means:
+
+  # externals dependencies are encouraged to be released as  
distutil-compliant packages with a valid setup.py and put on PyPI
+  # development versions of dependencies can be pulled in in a variety of  
different ways including from git, hg or bzr repositories
+
+In order to develop from the Pinax trunk, you will need to use `pip`.  
Because some external dependencies are retrieved via `git` and `bzr` you  
will also need those if using Pinax turnk.
+
+Although we will eventually have per-project requirements files, there are  
currently two requirements files that describe to `pip` what dependencies  
to bring in and how:
+
+  * pinax/requirements/libs.txt
+  * pinax/requirements/external_apps.txt
+
+The former is actually a requirement of the latter so you can bring in all  
external dependencies with:
+
+{{{
+    pip install -r pinax/requirements/external_apps.txt
+}}}
+
+We strongly recommend the use of `virtualenv` in conjunction with `pip` to  
allow isolated environments to be set up without Pinax having to hack  
`PYTHONPATH`.
\ No newline at end of file

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"pinax-updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/pinax-updates?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to