7 releases

Uses old Rust 2015

0.3.2 Aug 11, 2016
0.3.1 Jun 16, 2016
0.2.1 Feb 15, 2016
0.1.1 Feb 15, 2016

#24 in #pkg

21 downloads per month

Apache-2.0/MIT

7KB
80 lines

Run cargo subcommands on all local packages

A tiny cargo subcommand for executing other subcommands on all "local" packages (a local package is one that is a path-dependency of the main package -- ie. a package in the same repository). This allows running cargo test on all crates in a repo with a single command.

Notes

  • The main package must have a dependency on all other crates in the repo (local crates not in the dependency graph of the main crate cause an error)
  • A Cargo.lock must exist (you can either check it in, or run cargo generate-lockfile before using this subcommand)
  • You can use this to invoke external subcommands, but they must support specifying a package via -p <pkg>

Installation

As usual, this subcommand can be installed with cargo install:

cargo install cargo-local-pkgs

Examples

Test all local crates

This will run tests of all local crates (but see the notes below):

cargo local-pkgs test

With Travis

Travis integration is easy, thanks to cargo install:

language: rust
before_script:
  - |
      cargo install cargo-local-pkgs --vers 0.2 &&
      export PATH=$HOME/.cargo/bin:$PATH
script:
  - cargo local-pkgs test

Libraries aren't supposed to check their Cargo.lock into git, so it doesn't exist when running cargo local-pkgs via Travis. However, we can generate it using cargo generate-lockfile. Replace the script section above with this:

script:
  - |
      cargo generate-lockfile &&
      cargo local-pkgs test

Dependencies

~3MB
~49K SLoC