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=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

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.2.zip (144.0 kB view details)

Uploaded Source

gp.vcsdevelop-2.2.2.tar.gz (140.4 kB view details)

Uploaded Source

File details

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

File metadata

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

File hashes

Hashes for gp.vcsdevelop-2.2.2.zip
Algorithm Hash digest
SHA256 b0c974132672ee17ad42d7610a28288276184204982cabf407ca94c8edf99aa4
MD5 c2d1fb6e6a84c18bb4cc6044152909d9
BLAKE2b-256 f457443ad60a7dd17d36b91ba8420c93ddae728c0f72996b7366f4265eab99d8

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for gp.vcsdevelop-2.2.2.tar.gz
Algorithm Hash digest
SHA256 79fb8618baf585e33adb2c66992e7c3d11884bb45bd3edecf103f47c607d151f
MD5 4b2238f9875d71dcd6bfd2ff7f09cddc
BLAKE2b-256 1537f3261dc096ca178c31861b416690e63fe8941309a0ee160f6ad63f608fb4

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