skip to navigation
skip to content

gp.vcsdevelop 2.2.1

ZC buildout extension to checkout eggs from various vcs

Downloads ↓

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=hg+https://gawel@bitbucket.org/ianb/pip/@tip#egg=pip
... parts=
... ''')

>>> print 'Start', system(buildout)
Start...
Cloning hg https://gawel@bitbucket.org/ianb/pip/ (to revision tip) to ./src/pip
Found command 'hg' 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
 
File Type Py Version Uploaded on Size # downloads
gp.vcsdevelop-2.2.1.tar.gz (md5) Source 2011-07-12 72KB 221
gp.vcsdevelop-2.2.1.zip (md5) Source 2011-07-12 76KB 1673