summaryrefslogtreecommitdiff
path: root/eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/dependencylinks.txt
diff options
context:
space:
mode:
Diffstat (limited to 'eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/dependencylinks.txt')
-rw-r--r--eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/dependencylinks.txt199
1 files changed, 199 insertions, 0 deletions
diff --git a/eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/dependencylinks.txt b/eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/dependencylinks.txt
new file mode 100644
index 0000000..4414feb
--- /dev/null
+++ b/eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/dependencylinks.txt
@@ -0,0 +1,199 @@
+Dependency links
+----------------
+
+By default buildout will obey the setuptools dependency_links metadata
+when it looks for dependencies. This behavior can be controlled with
+the use-dependency-links buildout option.
+
+ [buildout]
+ ...
+ use-dependency-links = false
+
+The option defaults to true. If you set it to false, then dependency
+links are only looked for in the locations specified by find-links.
+
+Let's see this feature in action. To begin, let's create a new egg
+repository. This repository uses the same sample eggs as the normal
+testing repository.
+
+ >>> link_server2 = start_server(sample_eggs)
+
+Turn on logging on this server so that we can see when eggs are pulled
+from it.
+
+ >>> get(link_server2 + 'enable_server_logging')
+ GET 200 /enable_server_logging
+ ''
+
+Let's create a develop egg in our buildout that specifies
+dependency_links which point to the new server.
+
+ >>> mkdir(sample_buildout, 'depdemo')
+ >>> write(sample_buildout, 'depdemo', 'dependencydemo.py',
+ ... 'import eggrecipedemoneeded')
+ >>> write(sample_buildout, 'depdemo', 'setup.py',
+ ... '''from setuptools import setup; setup(
+ ... name='depdemo', py_modules=['dependencydemo'],
+ ... install_requires = 'demoneeded',
+ ... dependency_links = ['%s'],
+ ... zip_safe=True, version='1')
+ ... ''' % link_server2)
+
+Now let's configure the buildout to use the develop egg.
+
+ >>> write(sample_buildout, 'buildout.cfg',
+ ... '''
+ ... [buildout]
+ ... develop = depdemo
+ ... parts = eggs
+ ...
+ ... [eggs]
+ ... recipe = zc.recipe.egg:eggs
+ ... eggs = depdemo
+ ... ''')
+
+Now we can run the buildout.
+
+ >>> print system(buildout)
+ GET 200 /
+ GET 200 /demoneeded-1.2c1.zip
+ Develop: '/sample-buildout/depdemo'
+ Installing eggs.
+ Getting distribution for 'demoneeded'.
+ Got demoneeded 1.2c1.
+ <BLANKLINE>
+
+Notice that the egg was retrieved from the logging server.
+
+Now let's change the egg so that it doesn't specify dependency links.
+
+ >>> write(sample_buildout, 'depdemo', 'setup.py',
+ ... '''from setuptools import setup; setup(
+ ... name='depdemo', py_modules=['dependencydemo'],
+ ... install_requires = 'demoneeded',
+ ... zip_safe=True, version='1')
+ ... ''')
+
+Now we'll remove the existing dependency egg, and rerunning the
+buildout to see where the egg comes from this time.
+
+ >>> from glob import glob
+ >>> from os.path import join
+ >>> def remove_demoneeded_egg():
+ ... for egg in glob(join(sample_buildout, 'eggs', 'demoneeded*.egg')):
+ ... remove(sample_buildout, 'eggs', egg)
+ >>> remove_demoneeded_egg()
+ >>> print system(buildout) # doctest: +ELLIPSIS
+ Develop: '/sample-buildout/depdemo'
+ ...
+ Getting distribution for 'demoneeded'.
+ While:
+ Updating eggs.
+ Getting distribution for 'demoneeded'.
+ Error: Couldn't find a distribution for 'demoneeded'.
+ <BLANKLINE>
+
+Now it can't find the dependency since neither the buildout
+configuration nor setup specifies where to look.
+
+Let's change things so that the buildout configuration specifies where
+to look for eggs.
+
+ >>> write(sample_buildout, 'buildout.cfg',
+ ... '''
+ ... [buildout]
+ ... develop = depdemo
+ ... parts = eggs
+ ... find-links = %s
+ ...
+ ... [eggs]
+ ... recipe = zc.recipe.egg:eggs
+ ... eggs = depdemo
+ ... ''' % link_server)
+
+ >>> print system(buildout)
+ Develop: '/sample-buildout/depdemo'
+ Installing eggs.
+ Getting distribution for 'demoneeded'.
+ Got demoneeded 1.2c1.
+ <BLANKLINE>
+
+This time the dependency egg was found on the server without logging
+configured.
+
+Now let's change things once again so that both buildout and setup
+specify different places to look for the dependency egg.
+
+ >>> write(sample_buildout, 'depdemo', 'setup.py',
+ ... '''from setuptools import setup; setup(
+ ... name='depdemo', py_modules=['dependencydemo'],
+ ... install_requires = 'demoneeded',
+ ... dependency_links = ['%s'],
+ ... zip_safe=True, version='1')
+ ... ''' % link_server2)
+
+ >>> remove_demoneeded_egg()
+ >>> print system(buildout) #doctest: +ELLIPSIS
+ GET 200 /...
+ Develop: '/sample-buildout/depdemo'
+ Updating eggs.
+ Getting distribution for 'demoneeded'.
+ Got demoneeded 1.2c1.
+ <BLANKLINE>
+
+So when both setuptools and buildout specify places to search for
+eggs, the dependency_links takes precedence over find-links.
+
+There is a buildout option that you can specify to change this
+behavior. It is the use-dependency-links option. This option defaults
+to true. When you specify false for this option, buildout will ignore
+dependency_links and only look for eggs using find-links.
+
+Here is an example of using this option to disable dependency_links.
+
+ >>> write(sample_buildout, 'buildout.cfg',
+ ... '''
+ ... [buildout]
+ ... develop = depdemo
+ ... parts = eggs
+ ... find-links = %s
+ ... use-dependency-links = false
+ ...
+ ... [eggs]
+ ... recipe = zc.recipe.egg:eggs
+ ... eggs = depdemo
+ ... ''' % link_server)
+
+ >>> remove_demoneeded_egg()
+ >>> print system(buildout)
+ Develop: '/sample-buildout/depdemo'
+ Updating eggs.
+ Getting distribution for 'demoneeded'.
+ Got demoneeded 1.2c1.
+ <BLANKLINE>
+
+Notice that this time the egg isn't downloaded from the logging server.
+
+If we set the option to true, things return to the way they were
+before. The dependency's are looked for first in the logging server.
+
+ >>> write(sample_buildout, 'buildout.cfg',
+ ... '''
+ ... [buildout]
+ ... develop = depdemo
+ ... parts = eggs
+ ... find-links = %s
+ ... use-dependency-links = true
+ ...
+ ... [eggs]
+ ... recipe = zc.recipe.egg:eggs
+ ... eggs = depdemo
+ ... ''' % link_server)
+ >>> remove_demoneeded_egg()
+ >>> print system(buildout) #doctest: +ELLIPSIS
+ GET 200 /...
+ Develop: '/sample-buildout/depdemo'
+ Updating eggs.
+ Getting distribution for 'demoneeded'.
+ Got demoneeded 1.2c1.
+ <BLANKLINE>