1. Paulo Köch
  2. distribute

Commits

Paulo Köch  committed bd15b72

Add docs for using VCS repos as dependency_links.

  • Participants
  • Parent commits 3f8d84f
  • Branches default

Comments (0)

Files changed (1)

File docs/setuptools.txt

View file
 
 If your project depends on packages that aren't registered in PyPI, you may
 still be able to depend on them, as long as they are available for download
-as an egg, in the standard distutils ``sdist`` format, or as a single ``.py``
-file.  You just need to add some URLs to the ``dependency_links`` argument to
+as:
+
+- an egg, in the standard distutils ``sdist`` format,
+- a single ``.py`` file, or
+- a VCS repository (Subversion, Mercurial, or Git).
+
+You just need to add some URLs to the ``dependency_links`` argument to
 ``setup()``.
 
 The URLs must be either:
 
-1. direct download URLs, or
-2. the URLs of web pages that contain direct download links
+1. direct download URLs,
+2. the URLs of web pages that contain direct download links, or
+3. the repository's URL
 
 In general, it's better to link to web pages, because it is usually less
 complex to update a web page than to release a new version of your project.
 and automatically create a trivial ``setup.py`` to wrap the single ``.py`` file
 as an egg.
 
+In the case of a VCS checkout, you should also append ``#egg=project-version``
+in order to identify for what package that checkout should be used. You can
+append ``@REV`` to the URL's path (before the fragment) to specify a revision.
+Additionally, you can also force the VCS being used by prepending the URL with
+a certain prefix. Currently available are:
+
+-  ``svn+URL`` for Subversion,
+-  ``git+URL`` for Git, and
+-  ``hg+URL`` for Mercurial
+
+A more complete example would be:
+
+    ``vcs+proto://host/path@revision#egg=project-version``
+
+Be careful with the version. It should match the one inside the project files.
+If you want do disregard the version, you have to omit it both in the
+``requires`` and in the URL's fragment.
+
+This will do a checkout (or a clone, in Git and Mercurial parlance) to a
+temporary folder and run ``setup.py bdist_egg``.
+
 The ``dependency_links`` option takes the form of a list of URL strings.  For
 example, the below will cause EasyInstall to search the specified page for
 eggs or source distributions, if the package's dependencies aren't already