Python wrapper for Vearcity's command-line interface.
Project description
Introduction
This library provides a Python wrapper for Veracity’s command-line interface. It includes objects for repositories, working copies, and other commonly-used items. The library also installs several command-line tools to work with Veracity’s distributed build tracking features.
Getting Started
Requirements
Python 2.7
Veracity 2.5: http://veracity-scm.com
Make: http://gnuwin32.sourceforge.net/packages/make.htm (optional)
Dependencies
pbs: https://pypi-hypernode.com/pypi/pbs (subprocess wrapper for Windows)
sh: https://pypi-hypernode.com/pypi/sh (subprocess wrapper for other OSs)
virtualenv: https://pypi-hypernode.com/pypi/virtualenv (isolated installations)
Installation
This package can be installed with pip or easy_install:
pip install python-veracity
or directly from source:
python setup.py install
After installation, the package is available under the name veracity:
>>> import veracity >>> veracity.__version__ >>> from veracity import vv >>> vv.version() >>> vv.repos()
Scripting Interface
A sample script might look like this:
#!/usr/bin/env python from veracity import Repository, WorkingCopy, Item # Clone a repo repo = Repository('veracity', remote='http://public.veracity-scm.com/repos/veracity') # Display Repository attributes print repo.name print repo.users print repo.branches print repo.tags # Check out a working copy (from a Repository) work = repo.checkout("~/v/veracity") work.delete() # Check out a working copy (by repo name) work = WorkingCopy("~/v/veracity", repo='veracity') work.update(branch='master') # Change some files item = Item('docs/GettingStarted.txt', work=work) item.lock()
Build Tracking
This package also installs a set of command-line tools to work with Veracity’s Distributed Build Tracking feature: http://veracity-scm.com/qa/questions/123
Configuration
In your master branch, create a setup.cfg similar to the following:
[vv-tracking] repositories = <repository name> series = N, C environments = W, M, L virtualenv = virtualenv [vv-poller] N_branches = * N_command = [ $( date "+%H" ) = 00 ] N_command-nt = if %TIME:~0,2%==00 (exit /b 0) else (exit /b 1) N_rebuild = True N_sleep = 60 * 30 N_start = Q C_branches = master, develop, feature-*, release-*, hotfix-* C_command = C_rebuild = C_sleep = 60 C_start = Q [vv-builder] U_enter = Q U_path = . U_command = make depends U_fail = UF U_exit = U B_enter = U B_path = . B_command = make install B_fail = BF B_exit = B T_enter = B T_path = . T_command = make test T_fail = TF T_exit = T C_enter = T C_path = . C_command = make check C_fail = CF C_exit = D
The series (N, C), environment (W, M, L), and status (Q, U, B, T, C, UF, BF, TF, CF, D) aliases should match what it defined in your repositories build configuration.
Poller
To run one iteration of poller for your repository:
vv-poller <repository name>
To run forever as a daemon:
vv-poller <repository name> --daemon
From within a working copy, the configuration can be tested using:
vv-poller --test
Builder
To run one iteration of builder for your repository:
vv-builder <repository name> --env <environment alias>
To run forever as a daemon:
vv-builder <repository name> --env <environment alias> --daemon
From within a working copy, the configuration can be tested using:
vv-builder --test
Unit and Integration Tests
To run the unit and integration tests for the veracity package:
python setup.py test
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.