Skip to main content

ZC buildout extension to checkout develop eggs

Project description

What is gp.svndevelop ?

This package allow you to checkout some package and use them as developed eggs with zc.buildout.

Why buildout sucks a bit ?

Buildout fail When you specify a develop egg who does not exist:

>>> cd(sample_buildout)

>>> write('buildout.cfg','''
... [buildout]
... develop=my.testing
... parts=
... ''')

>>> print system(buildout)
Develop: '/...buildout/my.testing'
Traceback (most recent call last):
...
IOError: [Errno 2] No such file or directory: '/...buildout/my.testing'
...

A solution: a simple checkout before anything else

A solution is to use this package as a buildout extension and to provide some svn urls in the svn-develop option:

>>> write('buildout.cfg','''
... [buildout]
... extensions=gp.svndevelop
... develop=my.testing
... svn-develop=%s/my.testing/trunk#egg=my.testing
... parts=
... ''' % repository)

Then if you run buildout again, the package will be checkout from the repository:

>>> print system(buildout)
A    my.testing/LICENSE
A    my.testing/my
A    my.testing/my/__init__.py
A    my.testing/my/testing
A    my.testing/my/testing/__init__.py
A    my.testing/my/testing/README.txt
A    my.testing/setup.py
...
Develop: '/...buildout/my.testing'

Using eggs in an existing directory

This extension is also a way to use an existing directory. Imagine you already have the my.testing package in a directory:

>>> ls(package_dir)
-  LICENSE
d  my
-  setup...

Then you don’t want to re-checkout. The solution is to provide a develop-dir:

>>> write('buildout.cfg','''
... [buildout]
... extensions=gp.svndevelop
... develop=my.testing
... develop-dir=%s
... parts=
... ''' % os.path.dirname(package_dir))

We can delete the checkout:

>>> import shutil
>>> shutil.rmtree(os.path.join(sample_buildout, 'my.testing'))

And run buildout again:

>>> print system(buildout)
Develop: '/...Package/my.testing'

It works fine but now the package is not in the buildout dir:

>>> ls(sample_buildout)
-  .installed.cfg
d  bin
-  buildout.cfg
d  develop-eggs
d  eggs
d  parts

Buildout use the one in our develop-dir:

>>> cat(sample_buildout, 'develop-eggs', 'my.testing.egg-link')
/...Package/my.testing
.

Of course you can put the develop-dir option in your ~/.buildout/default.cfg

Omit the develop directive

You can omit the develop option and get develop eggs directly from the svn-develop one:

>>> write('buildout.cfg','''
... [buildout]
... extensions=gp.svndevelop
... svn-develop=%s/my.testing/trunk#egg=my.testing
... parts=
... ''' % repository)

This will install the my.testing package as a develop egg:

>>> print system(buildout)
A    my.testing/LICENSE
A    my.testing/my
A    my.testing/my/__init__.py
A    my.testing/my/testing
A    my.testing/my/testing/__init__.py
A    my.testing/my/testing/README.txt
A    my.testing/setup.py
...
Develop: '/...buildout/my.testing'

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gp.svndevelop-0.1.tar.gz (11.1 kB view hashes)

Uploaded Source

Built Distribution

gp.svndevelop-0.1-py2.4.egg (8.1 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page