Skip to main content

set of development tools used at Logilab

Project description

Set of tools which aims to help the development process, including :

  • tools to check and build source and/or Debian packages
  • provides integration assistance to work with CubicWeb, Mercurial and GuestRepo.

Set of elisp goodies including :

  • an emacs mode for pycover files
  • an emacs mode for ChangeLog files
  • a small set of emacs shortcuts used at logilab


A shell library to source. It provides a ingrsh command that moves the current working directory into the given shell repository and set the PYTHONPATH and CDPATH environment variables accordingly.

The GUESTREPODIR environment variable defines where to search for for shells (default to $HOME/hg/grshells/)


Merge tools to be used by Mercurial, for .hgguestrepo and .hgtags files respectively.

They must be activated from a Mercurial configuration file:

.hgguestrepo = grmerge

grmerge.executable = path/to/grmerge
grmerge.args = $local $base $other -o $output


A Mercurial extension that eases interaction with a JPL forge.

The extension should be enabled from a Mercurial configuration file:

jpl = path/to/hgext/jpl/
# or, if it has been installed via the debian package:
jpl =

endpoint =

The endpoint refers to a configuration entry in your cwclientlib config setup. See cwclientlib documentation for more informations.


You can specify a default jpl/endpoint value in your main Mercurial configuration file (~/.hgrc for Linux systems). Then the local configuration file (path/to/repository/.hg/hgrc) can override this setting.


This version of logilab-devtools do not read authentication credentials from the mercurial config files any more; it fully relies on cwclientlib for access and authentication towards the cubicweb instance.

Any mercurial configuration like:

forge-url = <url>
auth-xxx = xxx

should be replaced by:

endpoint = <url> # or the endpoint ID

plus a configuration entry in your ~/.config/cwclientlibrc file in which auth credentials are set. See cwclientlib documentation.



Allows to ask review for a Patch produced by a changeset, eg.:

$ hg ask-review # default to working directory's parent revision
$ hg ask-review -r "draft() and ::."

Assign patches corresponding to specified revisions to a committer.


Show the backlog (draft changesets) of specified committer.


List TestConfig available for project linked to the repository.


Create new tickets for the specified revisions.


Show review status for patches corresponding to specified revisions, eg.:

$ hg show-review  -r 82071f767cb8 -T 82071f767cb8   [applied]       abegey
[schemas] cwuri should be read-only

#82071f767cb8 nologin env/quick: partial
#82071f767cb8 cubicweb-newsaggregator env/quick: failure
#82071f767cb8 ner test env/quick: partial
#82071f767cb8 person env/quick: success

Start Apycot tests for the given revisions, eg.:

$ hg start-test -r . -l "buildexp cwo" -o publish_host=publish -o upload_host=upload \
-o debian.repository=apycot -o lgp_sign=yes -o lgp_suffix=yes

Displays tasks requested by reviewers on a patch on a forge.

Revset functions

These predicates retrieve information from the project’s forge (cubicweb-jpl instance) and are exposed as revset functions.

tasks:Changesets linked to tasks to be done.
reviewed:Changesets that are linked to reviewed patches in the forge
inversion:Changesets that are linked to patches linked to tickets of given version+project


$ hg log -r "reviewed()"
$ hg log -r "inversion(3.18.0)"
$ # display tasks on patches that are meant to be in next 3.20.8 version:
$ hg tasks -r "tasks() and inversion(3.20.8)"
$ # display patches ready for integration in 3.20.8:
$ hg show-review -r "reviewed() and inversion(3.20.8)"
$ # are there any pending commit on my branch that is not at his place?
$ hg log -r "draft() and ::. keyword(closes) and not inversion(3.20.8)"



List of Strings. The text of the tasks and comments of a patch.


  • display all tasks (and comments) of every patch:

    $ hg log --template='{tasks}\n'
  • display the first line of the description and the first line of every task not yet done for draft changesets written by alain that are not yet reviewed:

    $ hg log -G \
    --rev 'draft() and author(alain) and tasks() and not(reviewed())' \
    --template='{desc|firstline}\n{tasks % "{task|firstline}\n"}'

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for logilab-devtools, version 0.26.0
Filename, size File type Python version Upload date Hashes
Filename, size logilab-devtools-0.26.0.tar.gz (32.4 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page