Commit graph

320 commits

Author SHA1 Message Date
Lzu Tao 1c9b292a2e Update home dependencies to v0.5
This home's release remove support for the old `.multirust`
directory. Also it fixes rustup_home and cargo_home implementation
when corresponding environment variables are absolute paths.
2019-08-21 20:24:06 +07:00
Alex Crichton 2a670c128b Update libgit2 dependencies
Pulls in a few fixes for libgit2, including some security-related
updates.
2019-08-20 13:05:51 -07:00
Eric Huss 5c7875d2e0 Bump to 0.40.0, Update changelog 2019-08-19 14:27:15 -07:00
dependabot-preview[bot] 09dc727f04
Update serde_ignored requirement from 0.0.4 to 0.1.0
Updates the requirements on [serde_ignored](https://github.com/dtolnay/serde-ignored) to permit the latest version.
- [Release notes](https://github.com/dtolnay/serde-ignored/releases)
- [Commits](https://github.com/dtolnay/serde-ignored/compare/0.0.4...0.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-19 06:26:20 +00:00
bors 60b7bf0045 Auto merge of #7247 - Eijebong:home, r=ehuss
Update home to 0.4
2019-08-13 23:59:51 +00:00
Eric Huss b41c209af3 Bump toml 0.5.3 2019-08-13 14:56:22 -07:00
Bastien Orivel dd20d69e49 Update home to 0.4.2 2019-08-13 17:46:10 +02:00
Eric Huss f3d4c6b8f5 Bump rustfix 2019-08-07 07:49:28 -07:00
Eric Huss 4f6553ab55 Use canonical paths when parsing dep-info.
Instead of treating Windows differently, this just always uses canonical paths
on all platforms.  This fixes a problem where symlinks were not treated
correctly on all platforms.

Switching rm_rf to the remove_dir_all crate because deleting symbolic links on
Windows is difficult.
2019-07-25 12:10:55 -07:00
bors 5251d92d47 Auto merge of #7175 - alexcrichton:update-url, r=ehuss
Update the `url` crate to 2.0

Looks like minor API changes, primarily around percent encoding.
2019-07-25 18:04:59 +00:00
bors c2ef5fddd0 Auto merge of #7176 - alexcrichton:update-git2, r=ehuss
Tighten requirements for git2 crates

Bring in a few updates, used to update libgit2 and fix a Windows issue
as well as updating the `url` dependencies.

Closes #7173
2019-07-25 17:21:07 +00:00
Alex Crichton bd7fe8914b Fix a deadlocking test with master libgit2
This commit fixes a test in Cargo to work around a seeming regression in
behavior in libgit2 around HTTP authentication. The expected flow for
HTTP authentication with git is that git sends an HTTP request and
receives an "unauthorized" response. It then sends another request with
authorization information and that's what we're testing is received in
the our test.

Previously libgit2 would issue a new HTTP connection if the previous one
was closed, but it looks like changes in libgit2 now require that the
same HTTP connection is used for the initial request and the subsequent
request with authorization information. This broke our test since it's
not using an HTTP compliant server at all and is just some handwritten
TCP reads/writes. The fix here is to basically stay with handwritten TCP
reads/writes but tweak how it happens so it's all on the same HTTP/TCP
connection to match what libgit2 is expecting.

Some extra assertions have also been added to try to prevent deadlocks
from happening in the future and instead make the test fail fast if this
situation comes up again.
2019-07-25 09:15:24 -07:00
Alex Crichton ae6778063f Tighten requirements for git2 crates
Bring in a few updates, used to update libgit2 and fix a Windows issue
as well as updating the `url` dependencies.

Closes #7173
2019-07-24 09:49:23 -07:00
Alex Crichton 3c67dc8430 Update the url crate to 2.0
Looks like minor API changes, primarily around percent encoding.
2019-07-24 08:26:28 -07:00
Lukas Lueg 91186e8c58 Remove byteorder-dependency 2019-07-08 12:35:34 +02:00
Eric Huss 2208c1f62f Bump to 0.39.0 2019-07-05 10:42:46 -07:00
Alex Crichton 290a727ad0 Extract resolver tests to their own crate
These tests take a good amount of time to run locally and they're also
causing a lot of dependencies to get pulled into rust-lang/rust, so
let's have a separate crate that we just test on our own CI
2019-06-18 10:50:48 -07:00
Alex Crichton e449cb23e3 Move the crates-io crate to a crates directory
That way when we add more crates we've got a place to put them!
2019-06-18 10:47:44 -07:00
Eric Huss a8c22ca1e8 Update to allow publishing cargo-test-macro. 2019-06-07 13:22:10 -07:00
Jethro Beekman a598309cb6 Don't rely on a thread local to uniquely create test roots 2019-06-07 12:41:25 -07:00
Josh Stone 1065102dc7 Update git2 crates for libgit2 0.28
See https://github.com/rust-lang/git2-rs/pull/425
2019-06-06 18:04:23 -07:00
bors a7648c7542 Auto merge of #6980 - Eh2406:varisat, r=alexcrichton
Test the Resolver against the varisat Library

Resolution can be reduced to the SAT problem. So this is an alternative implementation of the resolver that uses a SAT library for the hard work. This is intended to be easy to read, as compared to the real resolver, and run as part of the test sweet to make sure the real resolver works as expected. Part of #6120.

Some notes on performance:
The initial version did not support public & private deps:
~64 loc, `O(nln(n))` vars, `O(nln(n) + n*d)` clauses, 0.5x slower on `prop_passes_validation`
The final version:
~163 loc, `O(dn^2`) vars, `O(dn^3)`  clauses, 1.5x slower on `prop_passes_validation`

That comparison makes me feel better about spending months trying to get public & private deps to be fast enough for stabilization.
2019-05-28 15:13:28 +00:00
Eric Huss 353f7c0e1a Bump to 0.38.0 2019-05-23 10:03:14 -07:00
Eh2406 9602b78cc7 use varisat to verify the resolver 2019-05-21 12:11:25 -04:00
Eric Huss dcd4999d42 Add message caching. 2019-05-20 15:22:32 -07:00
dependabot[bot] 966e7f9f83
Update im-rc requirement from 12.1.0 to 13.0.0
Updates the requirements on [im-rc](https://github.com/bodil/im-rs) to permit the latest version.
- [Release notes](https://github.com/bodil/im-rs/releases)
- [Changelog](https://github.com/bodil/im-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bodil/im-rs/compare/12.1.0...13.0.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-05-20 05:41:28 +00:00
Eric Huss 337fbaaa12 Fix version of ignore.
Some tests relied on new behavior, so bump the minimal version.

The change to `gitignore_negate` was just an innocuous typo.
2019-05-13 18:05:10 -07:00
bors 22e2f23d5c Auto merge of #6880 - alexcrichton:cache, r=Eh2406
Parse less JSON on null builds

This commit fixes a performance pathology in Cargo today. Whenever Cargo
generates a lock file (which happens on all invocations of `cargo build`
for example) Cargo will parse the crates.io index to learn about
dependencies. Currently, however, when it parses a crate it parses the
JSON blob for every single version of the crate. With a lock file,
however, or with incremental builds only one of these lines of JSON is
relevant. Measured today Cargo building Cargo parses 3700 JSON
dependencies in the registry.

This commit implements an optimization that brings down the number of
parsed JSON lines in the registry to precisely the right number
necessary to build a project. For example Cargo has 150 crates in its
lock file, so now it only parses 150 JSON lines (a 20x reduction from
3700). This in turn can greatly improve Cargo's null build time. Cargo
building Cargo dropped from 120ms to 60ms on a Linux machine and 400ms
to 200ms on a Mac.

The commit internally has a lot more details about how this is done but
the general idea is to have a cache which is optimized for Cargo to read
which is maintained automatically by Cargo.

Closes #6866
2019-05-03 14:37:34 +00:00
Alex Crichton 6babe72e7c Parse less JSON on null builds
This commit fixes a performance pathology in Cargo today. Whenever Cargo
generates a lock file (which happens on all invocations of `cargo build`
for example) Cargo will parse the crates.io index to learn about
dependencies. Currently, however, when it parses a crate it parses the
JSON blob for every single version of the crate. With a lock file,
however, or with incremental builds only one of these lines of JSON is
relevant. Measured today Cargo building Cargo parses 3700 JSON
dependencies in the registry.

This commit implements an optimization that brings down the number of
parsed JSON lines in the registry to precisely the right number
necessary to build a project. For example Cargo has 150 crates in its
lock file, so now it only parses 150 JSON lines (a 20x reduction from
3700). This in turn can greatly improve Cargo's null build time. Cargo
building Cargo dropped from 120ms to 60ms on a Linux machine and 400ms
to 200ms on a Mac.

The commit internally has a lot more details about how this is done but
the general idea is to have a cache which is optimized for Cargo to read
which is maintained automatically by Cargo.

Closes #6866
2019-05-03 07:23:00 -07:00
Igor Gnatenko c14a329714
chore: Update opener to 0.4 2019-05-03 10:28:12 +02:00
bors f2ea95a37a Auto merge of #6861 - fluffysquirrels:http2-stream-error-spurious, r=alexcrichton
Treat HTTP/2 stream errors as spurious network errors.

Closes https://github.com/rust-lang/cargo/issues/6788.
2019-04-18 15:08:24 +00:00
Alex Helfet cc29c2b609 Treat HTTP/2 stream errors as spurious network errors. 2019-04-18 11:33:15 +01:00
Eric Huss 2923cfa390 Bump to 0.37.0 2019-04-15 12:09:02 -07:00
dependabot[bot] 227aa851f6
Update toml requirement from 0.4.2 to 0.5.0
Updates the requirements on [toml](https://github.com/alexcrichton/toml-rs) to permit the latest version.
- [Release notes](https://github.com/alexcrichton/toml-rs/releases)
- [Commits](https://github.com/alexcrichton/toml-rs/compare/0.4.2...0.5.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-18 05:35:49 +00:00
Eh2406 ed9386bd24 Proptest 0.9.1
This is a rework of #6636 now possible do to the change in testing from #6748
2019-03-16 08:00:39 -04:00
Alex Crichton d19b41f2c6 Release a jobserver token while locking a file
This is intended to fix #6747 where multiple Cargos invoked with the
same jobserver would all have their own token but not actually run
concurrently due to file locking. Instead the fix is that whenever Cargo
blocks for a file lock with a configured global jobserver, a token is
released just before we block and then reacquired afterwards. This way
we should ensure that we're not hogging a cpu/token unnecessarily
without doing any work!

Closes #6747
2019-03-15 07:07:06 -07:00
Eric Huss 78a60bc74f Stricter package change detection. 2019-03-12 20:33:45 -07:00
dependabot[bot] 5087cc45e4
Update glob requirement from 0.2.11 to 0.3.0
Updates the requirements on [glob](https://github.com/rust-lang/glob) to permit the latest version.
- [Release notes](https://github.com/rust-lang/glob/releases)
- [Commits](https://github.com/rust-lang/glob/compare/0.2.11...0.3.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-07 05:50:26 +00:00
Eric Huss 1a0430fd88 Bump to 0.36.0 2019-03-04 22:12:21 -08:00
Dale Wijnand 53a0995b4b
Add detail to multiple rename deps 2019-01-28 16:03:30 +00:00
Alex Crichton 78637a6bb8 Bump to 0.35.0
A routine update!
2019-01-22 13:18:16 -08:00
Eric Huss 3d84d0ad77 Add dependency registry to cargo metadata.
This adds the `registry` field for dependencies for alternate registries in
`cargo metadata`.
2018-12-29 21:14:25 -08:00
dependabot[bot] ed66cbc700
Update git2-curl requirement from 0.8.1 to 0.9.0
Updates the requirements on [git2-curl](https://github.com/alexcrichton/git2-rs) to permit the latest version.
- [Release notes](https://github.com/alexcrichton/git2-rs/releases)
- [Commits](https://github.com/alexcrichton/git2-rs/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-14 16:30:00 +00:00
dependabot[bot] 56dffe70cd
Update git2 requirement from 0.7.5 to 0.8.0
Updates the requirements on [git2](https://github.com/alexcrichton/git2-rs) to permit the latest version.
- [Release notes](https://github.com/alexcrichton/git2-rs/releases)
- [Commits](https://github.com/alexcrichton/git2-rs/commits/git2-curl-0.8.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-14 05:51:03 +00:00
Eric Huss 502ab6505c Update rustfix to 0.4.4. 2018-12-13 14:01:44 -08:00
Eric Huss fffb05d8fc Display errors when cargo fix fails.
It can be difficult to figure out what's wrong when a user reports that
`cargo fix` fails. There's often a large list of warnings, and it can
be hard to figure out which one caused a compile error.
2018-12-13 13:59:06 -08:00
Dale Wijnand 0e031b5a96
Allow testsuite warnings in dev
This makes the deny(warnings) in the testsuite conditional on a new
"deny-warnings" feature, that is then enabled in CI.

Ideally I could use the (reasonably well established) CI env var (like
we do for proptests), but I don't know how to get the attribute to be
defined in terms of an env var.
2018-12-13 01:03:08 +00:00
Alex Crichton 76ce4dfebd Reformat after idiom lints 2018-12-11 05:54:56 -08:00
Alex Crichton 9ed82b5779 Start using 2018 idioms in Cargo
Remove a number of `extern crate` directives and tweak a number of
imports. Not all `extern crate` is gone yet but this is the bulk of
them!
2018-12-11 05:45:46 -08:00
Alex Crichton 1b886f7072 Bump to 0.34.0 2018-12-08 03:07:46 -08:00