Commit graph

245 commits

Author SHA1 Message Date
Alex Crichton d4265ef2a0 Move from rust-toml to toml-rs
This commit should greatly improve all error messages related to decoding
Cargo.toml.
2014-06-23 11:38:53 -07:00
Alex Crichton 8901563c0b Fix a red test 2014-06-23 09:44:00 -07:00
Yehuda Katz 19bea0ad0c Thread the shell through more of the system 2014-06-21 22:22:56 -07:00
Yehuda Katz 687035657d Terminal colors 2014-06-21 18:53:07 -07:00
Alex Crichton e05b4dc838 Don't rebuild dependencies if they haven't changed
This commit adds support for recognizing "fingerprints" of upstream
dependencies. When a dependency's fingerprint change, it must be rebuilt.
Currently the fingerprint unconditionally includes the version of the compiler
you're using as well as a specialized version depending on the type of source
you're compiling from:

  - git sources return their fingerprint as the current SHA. This will
    disregard any local changes.
  - path sources return their fingerprint as the maximum mtime of any file found
    at the location. This is a little too coarse and may rebuild packages too
    often (due to sub-packages), but this should get the job done for now.

When executing `cargo compile`, dependencies are not rebuilt if their
fingerprint remained constant.
2014-06-19 21:55:37 -07:00
Alex Crichton bc1dea82c8 Invoke rustc only once for multiple crate types 2014-06-19 19:44:45 -07:00
Alex Crichton 64ff29ff86 Update to rust style guidelines
* 80 char line limit highly recommended
* /// and //! for doc comments
2014-06-19 17:02:21 -07:00
Alex Crichton a9d8d2c62a Run tests in parallel
Give each test is own root inside of the shared root to ensure that the tests
are still isolated from one another.
2014-06-19 11:52:51 -07:00
Alex Crichton fbfa8bdeca Make CARGO_BIN_PATH optional for tests
This allows easier use of running tests by hand.
2014-06-19 11:52:51 -07:00
Alex Crichton 3433a01eba Allow custom precompile commands
This commit enables support for custom precompilation commands to be triggered
before a package builds via rustc. The current interface is to have
`build = "foo"` in the `[project]` section of Cargo.toml and cargo will just
execute the exact command given.
2014-06-19 11:52:51 -07:00
Yehuda Katz 8c72add4f5 Squelch warnings and minor cleanup 2014-06-19 01:21:24 -07:00
Yehuda Katz 3e09f70259 Initial pass at boxed errors
The next step is to clean up the error handling in general so that
failure cases produce good errors.
2014-06-19 00:57:12 -07:00
Yehuda Katz + Carl Lerche bcf9028749 Support nested paths in git and path sources 2014-06-17 17:40:22 -07:00
Yehuda Katz + Carl Lerche 9224a5ae61 Paths nested in paths 2014-06-17 17:05:29 -07:00
Carl Lerche + Yehuda Katz 512ec4b794 Fix tests 2014-06-13 14:19:06 -07:00
Carl Lerche + Yehuda Katz 35e21c7600 Smoke test for git support 2014-06-12 15:51:16 -07:00
Yehuda Katz + Carl Lerche 51c9cf0f87 Sources are now an array 2014-06-11 15:59:18 -07:00
Yehuda Katz + Carl Lerche c57fef459a Add namespace to PackageId 2014-06-11 14:51:13 -07:00
Yehuda Katz + Carl Lerche 1124727c96 Update to Rust master and eliminate warnings 2014-06-10 12:32:23 -07:00
Yehuda Katz + Carl Lerche 92602f6db0 Add support for detailed manifest dependencies
This commit supports the following format:

```toml
[dependencies.hamcrest]

version = "1.0"
git = "http://github.com/carllerche/hamcrest-rust"
```
2014-06-09 17:51:53 -07:00
Yehuda Katz + Carl Lerche 9a1c63ea17 Track master for tests 2014-06-09 13:08:09 -07:00
Yehuda Katz 41b6f52681 Tests passing again 2014-05-29 14:31:09 -07:00
Yehuda Katz e42203f7f6 Up to date with master 2014-05-29 14:06:43 -07:00
Yehuda Katz edbe491003 Up to date with master 2014-05-29 13:57:31 -07:00
Carl Lerche a06fd2e7fa Compile all deps into the root projects target dir 2014-05-28 17:31:23 -07:00
Yehuda Katz d5a7bc33d2 Improve shell and add tests 2014-05-27 18:53:37 -07:00
Yehuda Katz 574829e9f7 Initial pass at a Shell 2014-05-27 18:53:37 -07:00
Carl Lerche 7e6433feda Track rust master 2014-05-27 16:14:34 -07:00
Yehuda Katz 21322f07b4 Wrote more integration tests for cargo compile
At the moment, the rustc exec for the root project inherits the stdout
and stderr FDs (so that warnings and errors flow through), but
output from dependencies is only emitted if the compilation fails to
avoid warning noise from dependencies.
2014-05-12 17:33:13 -07:00
Yehuda Katz b8621c5042 More tests for error cases in compile
Also some refactoring of the error structure. More cleanup work around
human-readable and CLI errors is still required.
2014-05-09 16:57:13 -07:00
Yehuda Katz 7983a5fd16 Clean up process DSL in tests 2014-05-08 17:50:58 -07:00
Yehuda Katz 48dc081419 Get nested dependencies working 2014-05-08 16:50:53 -07:00
Yehuda Katz 23d78ddfb0 Support any bytes container 2014-05-08 16:50:52 -07:00
Yehuda Katz 682d4e94c8 Get compile test passing 2014-05-08 13:33:04 -07:00
Carl Lerche bafa5f2b5a Track Rust master changes 2014-05-08 13:10:08 -07:00
Carl Lerche 1ce7641593 Core struct refactor 2014-05-05 21:54:49 -07:00
Carl Lerche 8842b02cfd Cleanup ProcessBuilder, work towards getting tests passing 2014-05-05 16:28:01 -07:00
Yehuda Katz 85e4dccef2 Everything's compiling again 2014-04-29 11:05:01 -07:00
Carl Lerche f4d6d02135 Beginnings of a dependency resolver 2014-04-11 15:11:10 -07:00
Carl Lerche db92e67c87 Track rust master 2014-04-09 13:28:10 -07:00
Carl Lerche 79fe64158c Implement process hamcrest matcher 2014-04-02 16:34:19 -07:00
Carl Lerche 6899567bc3 Update tests against Rust master 2014-04-02 13:22:45 -07:00
Carl Lerche aec45be721 Cleanup integration test 2014-03-20 15:17:19 -07:00
Carl Lerche d1ec90b3d8 Initial stab at integration tests
At the same time, we started adding a generic error handling concept to
Cargo.

The idea is that every Result gets converted to a CargoError, which
includes all the information that Cargo needs to print out a friendly
human error message and exit gracefully.
2014-03-20 12:12:47 -07:00
Carlhuda 227d4e83ef Initial commit 2014-03-04 15:22:44 -08:00