Skip to main content

ZC buildout extension to checkout eggs from various vcs

Project description

What is gp.vcsdevelop ?

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

Available options

  • develop-dir: a directory to checkout packages in

  • vcs-extend-develop: A list of vcs url. See pip’s editable parameter. Available schemes are ssh, svn, git, hg, bzr, sftp.

  • vcs-update:

    If true on every run buildout try updating egg. As example for hg+https run hg pull -u

    If always then remove existing code from filesystem and get a fresh checkout

  • requirements:

    A path to a pip requirement file.

Usage

Basic usage

Use this package as a zc.buildout extension and provide some vcs urls in the vcs-extend-develop option:

>>> write('buildout.cfg','''
... [buildout]
... extensions=gp.vcsdevelop
... vcs-extend-develop=hg+https://gawel@bitbucket.org/ianb/pip/@tip#egg=pip
... parts=
... ''')

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

>>> print 'Start', system(buildout)
Start...
Cloning hg https://gawel@bitbucket.org/ianb/pip/ (to revision tip) to ./pip
Found command 'hg' at '...'
Develop: '/...buildout/pip'
...

Packages can be found in the develop-dir (default to .). You can override this:

>>> write('buildout.cfg','''
... [buildout]
... extensions=gp.vcsdevelop
... develop-dir=./src
... vcs-extend-develop=git+https://github.com/pypa/pip.git/@1.1#egg=pip
... parts=
... ''')

>>> print 'Start', system(buildout)
Start...
Cloning https://github.com/pypa/pip.git/ (to 1.1) to ./src/pip
Found command 'git' at '...'
...
Develop: '/...buildout/./src/pip'
...

Non-python packages

You can also checkout non-python packages but you’ll get a warning:

>>> write('buildout.cfg','''
... [buildout]
... extensions=gp.vcsdevelop
... develop-dir=./src
... vcs-extend-develop=git+git://github.com/benoitc/couchbeam.git#egg=couchbeam
... parts=
... ''')

>>> print 'Start', system(buildout).strip()
Start...
Cloning git://github.com/benoitc/couchbeam.git to ./src/couchbeam
Found command 'git' at '...'
Warning: ./src/couchbeam is not a python package

Git submodules

gp.vcsdevelop is aware of Git’s submodules at the first level:

>>> write('buildout.cfg','''
... [buildout]
... extensions=gp.vcsdevelop
... develop-dir=./src
... vcs-extend-develop=git+git://github.com/bearstech/PloneTerminal.git#egg=PloneTerminal
... parts=
... ''')

>>> print 'Start', system(buildout).strip()
Start...
Cloning git://github.com/bearstech/PloneTerminal.git to ./src/PloneTerminal
Found command 'git' at '...'
Submodule 'jquery.terminal' (git://github.com/jcubic/jquery.terminal.git) registered for path 'ploneterminal/statics/jquery.terminal'
<BLANKLINE>
Cloning into ploneterminal/statics/jquery.terminal...
Submodule path 'ploneterminal/statics/jquery.terminal': checked out '...'
<BLANKLINE>
Develop: '/...buildout/./src/PloneTerminal'
...

>>> ls('src', 'PloneTerminal', 'ploneterminal', 'statics', 'jquery.terminal')
d  .git
-  CHANGELOG
-  README
d  css
d  examples
d  js
d  trypython

pip requirements file

gp.vcsdevelop can take care of your requirements file. All packages names contained by the requirements file can be found in a var named ${buildout:requirements-eggs}:

>>> write('buildout.cfg','''
... [buildout]
... extensions=gp.vcsdevelop
... develop-dir=./requirements
... requirements = requirements.txt
... parts= eggs
...
... [eggs]
... recipe = zc.recipe.egg
... eggs = ${buildout:requirements-eggs}
... interpreter = python
... ''')

>>> write('requirements.txt', '''
... ConfigObject>=1.0
... -e git+git://github.com/bearstech/PloneTerminal.git#egg=PloneTerminal
... ''')

>>> print 'Start', system(buildout).strip()
Start...
Cloning git://github.com/bearstech/PloneTerminal.git to ./requirements/PloneTerminal
Found command 'git' at '...'
...
Develop: '/...buildout/./requirements/PloneTerminal'
...
Generated interpreter '/...buildout/bin/python'.

>>> print 'File', cat('bin', 'python')
File...
sys.path[0:0] = [
    '.../ConfigObject-....egg',
    '/...buildout/requirements/PloneTerminal',
...

Bugs

Use the bitbucket tracker.

Changes

2.2 (12-07-2011)

  • use more pip api

  • add requirements option

2.1 (22-05-2011)

  • Take care of any .gitmodules found at package root

2.0 (20-05-2011)

  • No longer depends on pip. Use get-pip.py

1.9.4 (04-05-2011)

  • python3 ready

1.9.2 (04-01-2011)

  • require pip>=0.8

1.9.1 (22-08-2010)

  • add mercurial in require

1.9 (22-08-2010)

  • support latest pip

1.8 (06-08-2010)

  • always add svn scheme

1.7 (06-08-2010)

  • fix pip 0.8 compat

1.6 (13-05-2010)

  • require pip>=0.7.1

1.5 (17-02-2010)

  • rename vcsdevelop-update to vcs-update. can be set to always

1.4 (24-01-2010)

  • pip 0.6.3 compat by Boris Kocherov

1.3 (13-09-2009)

  • add vcsdevelop-update by Boris Kocherov

1.2 (24-08-2009)

  • allow to fetch non-python package

1.1 (29-06-2009)

  • add svn to vcs.schemes

0.4 (04-05-2009)

  • allow to have existing develop directories

0.2 (27-01-2009)

  • only take care of urls starting with a valid available scheme.

0.1 (23-01-2009)

  • nothing change

Download

Project details


Download files

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

Source Distributions

gp.vcsdevelop-2.2.3.zip (145.6 kB view hashes)

Uploaded Source

gp.vcsdevelop-2.2.3.tar.gz (142.0 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