Граф коммитов

227 Коммитов

Автор SHA1 Сообщение Дата
Omid Rad 7778c8d792 Add reqwest to azure feature. Fixes #967 2021-11-14 12:27:28 +01:00
Markus Westerlind 144eb0f1d3 feat: Update tokio to 1.0
Followup on https://github.com/mozilla/sccache/pull/985 to pull sccache the last little bit into tokio 1.0
2021-11-13 17:42:52 +01:00
Arne Luenser 17ac3e14db Enable TLS support for Redis 2021-11-11 12:55:19 +01:00
Bernhard Schuster e7099d6c8a Migrate to stable Future trait and Tokio 0.2
Co-authored-by: Igor Matuszewski <xanewok@gmail.com>
2021-11-10 09:56:14 +01:00
Markus Westerlind 905299fa65 refactor: Convert server.rs to use async await 2021-11-10 09:56:14 +01:00
Mike Hommey 22a176cf3f (cargo-release) start next development iteration 0.2.16-alpha.0 2021-01-13 07:26:44 +09:00
Mike Hommey 6b6d2f7d2d (cargo-release) version 0.2.15 2021-01-13 07:25:51 +09:00
Mike Hommey 2ec3867747 Workaround tiny_http issue #151 by disabling HTTP pipelining
Instead of relying on a crate patch.
2021-01-12 08:46:30 +09:00
Mike Hommey 0fd1eec6b6 Upgrade itertools to 0.10 2021-01-09 05:34:30 +09:00
Mike Hommey 385f738c52 Move lru-disk-cache to an internal module
See discussion in #916
2021-01-08 06:00:48 +09:00
Mike Hommey 10b072d57e Revert "Upgrade redis to 0.18"
This reverts commit 9189ac6bca.

The upgrade to 0.18 requires a tokio 0.3 runtime, which we don't have,
so despite building, it doesn't actually work.
2021-01-06 10:21:29 +09:00
Mike Hommey 5f57603ff6 Bump development version and lockfile to reflect new release. 2020-12-22 10:57:38 +09:00
Mike Hommey 48ded850d5 Upgrade zstd to 0.6 2020-12-22 07:50:05 +09:00
Mike Hommey add5f0ad43 Add a dummy native-zlib feature for backwards compatibility 2020-12-11 10:48:52 +09:00
Martin Matous 05155309db fix(build): dist-server without any other features 2020-12-10 11:28:09 +09:00
Jacob Hughes 967cb60453 Upgrade crossbeam 2020-12-10 11:26:14 +09:00
Mike Hommey 5e447094d0 Enable everything but dist-server by default 2020-12-10 10:17:57 +09:00
Mike Hommey fb98e0a330 Switch to use chrono instead of time
time 0.2 doesn't offer the features we used time 0.1 for, and we are already
using chrono.
2020-12-10 09:00:32 +09:00
Mike Hommey 04437f1f61 Upgrade retry to 1.2 2020-12-10 08:16:20 +09:00
Mike Hommey 7973aedad7 Upgrade number_prefix to 0.4 2020-12-10 08:16:16 +09:00
Mike Hommey 41b6bab364 Upgrade base64 to 0.13 2020-12-10 08:00:26 +09:00
Mike Hommey 6ca406f8a9 Upgrade nix to 0.19 2020-12-10 07:56:41 +09:00
Mike Hommey 1986619241 Upgrade env_logger to 0.8 2020-12-10 07:51:36 +09:00
Mike Hommey 9189ac6bca Upgrade redis to 0.18 2020-12-10 07:47:15 +09:00
Mike Hommey 46d51c1404 Upgrade hmac to 0.10 and md-5, sha-1 and sha2 to 0.9 2020-12-10 07:39:52 +09:00
Mike Hommey 3c45df0fbe Upgrade url to 2.2 2020-12-10 07:19:22 +09:00
Mike Hommey 4dadd8edf5 Upgrade to rand 0.7 2020-12-09 18:03:48 +09:00
Mike Hommey 185c6ba4b0 Upgrade dependencies with semver bumps that don't require changes 2020-12-09 18:01:56 +09:00
Mike Hommey 2b083d1a4d Upgrade ring to 0.16 and jsonwebtoken to 7 2020-12-09 16:46:21 +09:00
Mike Hommey 48ff75911e Upgrade version-compare to 0.0.11 2020-12-08 16:56:42 +09:00
Mike Hommey 87266bbb94 Don't enable deflate on the zip crate
It's not needed since be9da57. This allows to update the flate2 crate
for reqwest.
2020-12-08 16:54:36 +09:00
Daniel Holbert ea4d146462 Revert "Bump to tiny-http 0.7.0 (#830)" because it caused a regression, #846.
This reverts commit bdaa65aead.
2020-09-17 10:38:46 +09:00
Philippe Normand bdaa65aead
Bump to tiny-http 0.7.0 (#830)
Which contains the fix for issue tiny-http#151.
2020-08-17 10:37:07 -04:00
Nicholas Nethercote e71f302ae0 Remove the unused `quote` crate.
I found this using `cargo-udeps`.
2020-06-17 09:01:47 -04:00
Nathan Froyd 0639dc2f5a use a proper release for selenium-rs
0.1.2 was released earlier this year and includes the fix we need.
2020-06-13 10:30:50 -04:00
Mike Hommey 3ee925aba4 Switch from futures_cpupool::CpuPool to futures_03::executor::ThreadPool 2020-06-13 05:44:31 +09:00
Nathan Froyd be9da57a5e use zstd to compress cache entries
zstd is faster and gives slightly smaller (~5%) compressed blobs than
deflate does, as measured on a Firefox build.  Rather than inventing our
own compressed archive format, we piggyback on top of zip's "stored"
files to stuff zstd-compressed blobs in the zip archive.
2020-06-12 10:16:49 +09:00
Mike Hommey b6cede2f65 Upgrade dependencies that don't require changes
Except redis, which pulls in async-std, which needs some further
consideration.
2020-06-11 14:01:46 +09:00
Nathan Froyd e3ec58d3d9 upgrade ar crate so we can do less copying when trimming rlibs
The current trimming of rlibs in the dist-sccache case looks like:

1. Find the `rust.metadata.bin` file in the rlib (archive).
2. Read its data.
3. Create a new archive that will only contain said file.
4. Copy the data into the new archive.

We can do better than this, by doing the following:

1. Find the `rust.metadata.bin` file in the rlib (archive).
2. Create a new archive that will only contain said file.
3. Copy the data from the original rlib directly into the new archive.

We thus save a copy.

All that being said, it looks like recent versions of Rust don't
actually output `rust.metadata.bin` files into rlibs...unless we ought
to be only taking the `lib.rmeta` file that lives inside the archive.
But that would be a separate fix.  (It's also great that we're seemingly
copying the rmeta file twice, once because it lives in the rlib and once
because it lives on disk as a separate file...)
2020-06-11 10:44:58 +09:00
Nicholas Nethercote 97a8f9c276 Change error handling from `error-chain` to `anyhow`.
Because `anyhow` is what seems to be the most common error library for
applications these days.

- The global `Result` type is now `anyhow::Result`.

- In errors.rs, there's no need for any boilerplate to wrap all the foreign
  errors seen: `hyper::Error`, `io:Error`, etc.

- The internal errors that we care about are now separate types, rather
  than within an enum, because that works better when we need to check for them
  by downcasting an `anyhow::Error`. And it's nice to write
  `Err(ProcessError(output))` rather than
  `Err(ErrorKind::ProcessError(output))`.

- The `Which` error was unused and is removed.

- The most common change is that `.chain_err()` is changed to
  `.context`/`.with_context()`.

- `anyhow!` is used where necessary, mostly to promote a string to an
  `anyhow::Error`.

- Errors within futures: `FutureChainErr`/`.chain_err()` is changed to
  `FutureContext`/`fcontext`/`fwith_context`. The `f` prefix is because I found
  it helpful to distinguish these cases from the simple error cases.

- `BuilderIncoming`, `SchedulerIncoming`, `ServerIncoming` no longer have an
  `Error` associated type, we just use `anyhow::Error` uniformly.

- `e.display_chain()` changes to `format!("{:?}")`, because they both print the
  full cause chain, and the backtrace (if present).

- A few places where the old code was doing something weird or more
  complicated than seemed necessary, I generally tried to replace it with
  something simpler and more typical. Two places used `with_boxed_chain()`,
  which doesn't have an equivalent in `anyhow`, so I did my best to do
  something reasonable.

- In `src/server.rs` we now import `std::task::Context` as `TaskContext` to
  avoid overshadowing the `anyhow::Context` trait :(
2020-06-10 12:23:52 +10:00
Markus Westerlind 34f391fe4f feat: Update redis to 0.15
With tokio-compat being used it is now possible to use dependencies that
use tokio-0.2
2020-06-08 09:20:48 -04:00
Nathan Froyd c0209bb270 update to zip-rs 0.5
I was looking through old issues, and #160 mentioned that crc32
checksumming for zip files was showing up in profiles.  zip-rs 0.4 uses
a byte-at-a-time version of crc32; zip-rs 0.5 relies on the `crc32fast`
crate, which features faster implementations.
2020-06-05 16:02:54 -04:00
Nathan Froyd e7af8d23e8 update test harness crates
This patch looks like a routine crate version update, but it fixes
something very fundamentally wrong with the tests: `escargot`, to find
the `sccache` binary during tests, would actually run `cargo build` and
parse the output.  There were all manner of hacks to try and build the
binary with the correct set of features, none of which were reliable,
and the hacks were not reliably present in all places, either.

When the hacks were not present, `escargot` would rebuild the entire
sccache crate, which was responsible for the `sccache_cargo` test taking
entirely too long.  When the hacks failed utterly, perfectly fine
patches would mysteriously fail, as seen in #774.

We can get rid of `escargot` because `assert-cmd` has been updated to a)
not use `escargot` under the hood; and b) do something smarter to locate
the target binary.  The upshot is fewer mysterious test failures and
significantly faster running tests.
2020-06-05 08:03:55 -04:00
Mike Hommey d4d2ab487e Convert WaitUntilZero to std::future::Future 2020-05-09 07:43:40 +09:00
Mike Hommey 5afa5b1579 Use tokio-compat instead of tokio
This gets us one step into tokio 0.2, with its new scheduler. This makes
things significantly faster on my 32-core 64-threads machine, with
Firefox builds with 100% cache hits at -j64 going down from 3 minutes to
2:24. Also, with the old scheduler, with 100% cache hits, -j16 was
actually faster than -j64, which is not the case anymore.
2020-04-28 07:14:07 -04:00
Bernhard Schuster 1351a07a0f
involve rustup when determining toolchain paths (#666)
Co-authored-by: Bernhard Schuster <bernhard@workwork.parity1>
2020-03-20 15:13:32 -04:00
Emilio Cobos Álvarez ca73029ee3
Don't lock quote to a version. (#697) 2020-03-12 20:03:59 -04:00
Ryan Dahl 6c71bfe415
upgrade: blake3 0.1.5 (#701) 2020-03-12 17:06:11 -04:00
George Hahn ed8b7e1a4b fixup: make `ring` optional (only used for `gcs` feature) 2020-03-09 09:13:40 -04:00
George Hahn 7911e11534 Switch from SHA-512 to BLAKE3
BLAKE3 is designed to be a very high performance cryptographic hash. The
BLAKE3 team has shown 8.5x higher single-thread performance than SHA-512
on modern server hardware (AWS `c5.metal`). This change did not result
in a significant improvement to my observed local build times, but
newer hardware may see a meaningful improvement.

Signed-off-by: George Hahn <george.hahn.vhs@gmail.com>
2020-03-09 09:13:40 -04:00