This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

Higgins

Higgins is a continuous integration software implemented in Python and inspired by Jenkins.

It allows to track several repositories and to launch test with respect to dependencies between them.

Quickstart

After the installation with:

pip install higgins

the hn command should be available. The first step is to go the the directory where your sources are located and launch:

hn init

This will create ad .hn folder. You can then edit the .hn/config.yaml file to configure your installation. This file should look like this:

my_project:  # The name of your project
  path: relative/path/to/project
  repository:
    repo_a: path/to/a  # Give a label for each repository path
    repo_b: path/to/b  # Those path are relative to project path
    repo_c: path/to/c

  test:
    true-test: /usr/bin/true
    false-test: /usr/bin/false

  triage:  # repo_a depends on repo_b ad repo_c
    repo_a:
    - repo_b
    - repo_c

  build:  # Define which commands must be launch for each repo
    repo_a:
    - true-test
    - false-test

Then you can launch:

hn trigger

This command check every repository for new changesets. And then:

hn build

Which will launch all needed test. To check the result you can start:

hn serve

and open http://localhost:5000 to see the results. To avoid to launch the build and trigger commands manually you can pass the --monitor flag to the serve command:

hn serve --monitor  # check all repos every 10 minutes

Other ways to define tests

You can associate a list of tests to the same label:

test:
  slow-test:
  - bin/sleep 10
  - bin/sleep 30
  - bin/sleep 40
  fast-test:
  - bin/sleep 1
  - bin/sleep 3
  - bin/sleep 4

You can alos specify a test with a base command that will be called on a list of files:

test:
  wc-test:
    command: /usr/bin/wc -l
    path: "data/*.txt"
    exclude: "data/foo.*"

Where the path will be understood as relative to the repository folder. This definition will launch /usr/bin/wc -l on all files of the ‘data’ sub-direcotry that ends with ‘.txt’ and will exclude the ones starting with ‘foo.’ (the wildcards are expanded with the glob method)

Project inheritance

If you want to track several projects that shares a similar configuration, you can define inherits a project from another one with the extend key.

project:
  repository: ...
  test: ...
  build: ...

project.dev:
  extend: project
  path: path/to/dev

project.prod:
  extend: project
  path: path/to/prod
  build: ...   # override the default build config

In the above example project will be used as a template for project.dev and project.prod. Only the project with a path will be considered.

Override repositories synchronization

By default, higgins will update the repositories by calling hg pull -u inside each of them. The sync-all option allows to override this behaviour. Please note that this command is called once per project (at the root of the project) and not inside each repository.

project:
  ...
  sync-all: my_custom_command

Roadmap

  • Run tests in parallel (across different projects)
  • Provide support for a sync-each method (that will be run inside each repository)
  • Support for git
  • Allows to choose a default banch (per repository ? per project ?)
Release History

Release History

0.4.3

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.4.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.4.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.4

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
Higgins-0.4.3.tar.gz (158.1 kB) Copy SHA256 Checksum SHA256 Source Apr 16, 2014
Higgins-0.4.3.win32.exe (354.7 kB) Copy SHA256 Checksum SHA256 any Windows Installer Apr 16, 2014

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting