Skip to content

Latest commit

 

History

History
118 lines (70 loc) · 2.84 KB

README.rst

File metadata and controls

118 lines (70 loc) · 2.84 KB

mrs.developer - WORK IN PROGRESS

mrs.developer intends to be useful for developers.

Implemented Use Cases

  • run scripts in ./bin/ from anywhere in your buildout
  • run tests from anywhere in your buildout
  • customize eggs, generate and apply patches

Run scripts from anywhere in your buildout

You have one terminal always open where you are in the root of your buildout in order to run ./bin/something from time to time? You don't need anymore, just call:

% mrsd run <script> <arg1> ...

from anywhere in your buildout and it will result in:

% ./bin/<script> <arg1> ...

with working directory set to your buildout root.

Run tests from anywhere in your buildout

% mrsd test

Customize eggs

List eggs used by your buildout generated scripts:

% mrsd list

All of them (for now the bdists) are available for cloning:

% mrsd clone

Clone a specific egg:

% mrsd clone <egg_name_and_version>

Scripts now use this egg, instead of the one in the buildout cache.

Make changes to the egg:

% cd eggs-mrsd/<egg_name_and_version>

The egg is git controlled. You need to commit your changes to be able to generate patches.

Generate patches from commits:

% mrsd patch --generate

Create cloned eggs with patched branch:

% mrsd patch --apply

Installation

mrs.developer hooks into scripts generated by buildout to inject the paths to customized eggs. You can do this manually by running mrsd hookin after scripts are (re)created by buildout, or let the mrs.developer extension handle it for you (recommended):

[buildout]
extensions = mrs.developer

Note

mrs.developer coexists nicely with mr.developer.

The mrs.developer hook needs the mrsd command line tool available, local to your buildout or globally in your PATH (recommended).

Global install (virtualenv):

% virtualenv /path/to/mrsd/venv
% /path/to/mrsd/venv/bin/pip install mrs.developer
% ln /path/to/mrsd/venv/bin/mrsd ~/bin/mrsd -s

~/bin/ is just an example for a bin directory in your PATH.

Global install (dedicated buildout), the buildout.cfg:

[buildout]
parts = mrsd

[mrsd]
recipe = zc.recipe.egg
eggs = mrs.developer

and link it into your PATH:

% ln /path/to/mrsd/buildout/bin/mrsd ~/bin/mrsd -s

If mrsd is not in your path, the mrs.developer buildout extension will create it in ./bin/. However, in order to make full use of mrsd, it needs to be in your PATH. Don't link the one created by the extension, use a dedicated buildout or virtualenv to install mrsd gloablly.

Requirements

  • git >v1.7.0, for generating and applying patches (git status --porcelain)