Commits

Paulo Köch committed bd15b72

Add docs for using VCS repos as dependency_links.

  • Participants
  • Parent commits 3f8d84f

Comments (0)

Files changed (1)

File docs/setuptools.txt

 
 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