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 details)

Uploaded Source

gp.vcsdevelop-2.2.3.tar.gz (142.0 kB view details)

Uploaded Source

File details

Details for the file gp.vcsdevelop-2.2.3.zip.

File metadata

  • Download URL: gp.vcsdevelop-2.2.3.zip
  • Upload date:
  • Size: 145.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for gp.vcsdevelop-2.2.3.zip
Algorithm Hash digest
SHA256 7ce938dda49aedc1d615784fff7ff70b196fa5711a00780b32c01f97e3d88ac5
MD5 b7fe54b9124561f2672d4ec5e57b603d
BLAKE2b-256 d6abc8775ef6f7825b043cee166a27ce6aa572ba8a1e94df5e53083b1aa6d792

See more details on using hashes here.

Provenance

File details

Details for the file gp.vcsdevelop-2.2.3.tar.gz.

File metadata

File hashes

Hashes for gp.vcsdevelop-2.2.3.tar.gz
Algorithm Hash digest
SHA256 5b94a0d37d2b2619228ff8cb6f588f42734f2d0575686e262753da4415d6f1ee
MD5 974e8256015c8e6d25dce68d61d43150
BLAKE2b-256 17637ee72cece2bbac8e6a4225953a883cde5c825f356252f7dcfb2c4658f633

See more details on using hashes here.

Provenance

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