2018-ification changes include:
* replacing `extern crate` imports (except for ones annotated with
`#[macro_use]` to prevent touching more files; maybe in a follow-up)
* removing standalone imports; for example, `use serde_json;` -- the
code already uses `serde_json::*` where necessary
Minor formatting changes include:
* collapsing imports from the same root (e.g. `use std::io::Read; use
std::io::BufRead` -> `use std::io::{BufRead, Read};`
* separating `crate` imports from external imports from `std` imports --
this is how many project seem to order their imports, most notably the
official Rust repo
* moving some `use`s from the first line to below the file's doc comment
* changing file-level doc comments from `///` to `//!` (so they actually
show up as documentation)
* `rustfmt` messing with the `nom` macros in `src/commentparser.rs`
Most of the 2018-ification was done by `cargo fix --edition-idioms`, but
all changes were manually inspected to catch any detrimental changes,
and `cargo test`/`cargo check` still succeed.
Here, we can easily access the real commit ID, so pass it in instead of
a bogus rev and shortRev.
Hydra seems to have passed in rev all the time, and nixpkgs will soon
require `rev` to be set.
This initially broke nixpkgs eval in
5e8545e723,
so we now update ofborg to always pass `rev` when instantiating nixpkgs
to avoid breaking it.
Hydra seems to have passed in rev all the time, and nixpkgs will soon
require `rev` to be set.
This initially broke nixpkgs eval in
5e8545e723,
so we now update ofborg to always pass `rev` when instantiating nixpkgs
to avoid breaking it.
This required the introduction of an overlay file since ofBorg still
requires openssl 1.0.2. Updating to newer version of openssl also
requires updating the amqp library which requires some more involved
changes.
The php code is only updated to php 7.2 and not 7.3 (the default in
nixpkgs) since there seem to been a few syntax changes that aren't yet
compatible with composer2nix.
In previous versions of the rust infrastructure within nixpkgs we would
have been able to override all crates during the invocation of the
target crate. That `override` feature was removed as it caused a huge
eval overhead for larger projects. We did end up with (n^2)
instantiations of dependencies since they were being overriden on every
invocation of every dependency on every level further down the chain.
The current understanding is that the build tooling that each project is
using (e.g. crate2nix, crate2nix, …) that is driving the actual build
could easily reintroduce that feature without the overhead.
pin to php72