tinystr 0.6.2 (which our Cargo.toml's permit and our Cargo.lock
specifies) has an MSRV of 1.60.
The symptom with earlier Rust is this from cargo:
error: failed to select a version for the requirement `tinystr = "^0.6.0"`
(which is, on the face of it, nonsense).
This will allow us to have add_warning manage test lint blocks.
We have to stop printing all the filenames because there are too
many. Filenames still come out on error of course.
The environment where the test runner does its thing seems to want
to run as root with umask 000, which naturally makes the fs
permissions checks freak out.
For at least one job, run the first cargo run with --locked. This
will fail if the lockfile needs updating.
I have verified that this correctly detects this situation:
https://gitlab.torproject.org/Diziet/arti/-/pipelines/37692
failed. Now I have rebased this branch onto main to get the fix to
Cargo.lock.
Our support policy says that we can update to any Rust released at
least 6 months ago; 1.56 came out on 21 October 2021.
This doesn't yet change any code: it just increases the version
we say we need in our README, and the version we test against in
CI.
Our main justification for this change is to be able to upgrade to
newer versions of our dependencies, including `async_executors` >=
0.5, `aes` >= 0.8, and `cipher` >= 0.4.
Formerly, the "launch a chutney network" code was duplicated in
"setup" and "arti-bench", since "setup" always launched an arti
proxy, while "arti-bench" didn't want that functionality.
Now the "setup" script launches an arti proxy conditionally,
depending on whether the "proxy" argument is given.
The Rust upgrade is necessary since our Cargo.lock file now requires
`ed25519` 1.4.0, which requires edition2021, which requires Rust
1.56 or later.
The Alpine upgrade is opportunistic: we might as well.
I've also added comments to remind us to keep the .gitlab-ci.yml
and docker_reproducible_build files in sync, since my first version
of this commit messed that up.
Closes#376.
Move rust-nightly to stage test so it runs in parallel with coverage,
which are the two longest jobs, and currently run in sequence.
Don't document dependancies, should make the step about 50% faster
Use about 12M of cache to not recompile grcov each time
Don't compile grcov with coverage, we don't need it, it's probably
slower both to compile and execute
As per #309
Update all references. There is one remaining hit for
git-grep '\.sh\b'
namely "build.sh" in maint/reproducible_build, which I think is
the build script for osxcross - ie, an external project.