Remove the usage of the mozilla rust overlay

By switching to the tools bundled within nixpkgs we can provide a much
more "pure" development environment that doesn't randomly change over
time.

Previously we would be using the latest and greatest version of the
formatting and linting tools while our development environment only
offered whatever was in the (old) nixpkgs pin. Nowadays we have all the
tools we need in nixpkgs and can thus use those instead. By following
nixpkgs more closely we can make sure to make use of those tools in this
project as well. Hopefully removing the "yearly churn" of doing big
migrations.

For the meantime I allowed the upper case acronyms check (and a few
other minor lints) in the clippy configuration. This will allow a
smoother transition towards the newer clippy code that is decoupled from
the actual linting changes.
This commit is contained in:
Andreas Rammhold 2021-05-16 17:45:28 +02:00 committed by Cole Helbling
parent b29f146bd7
commit 986be3ceb7
3 changed files with 28 additions and 57 deletions

View file

@ -6,17 +6,6 @@ on:
pull_request:
jobs:
pedantry:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install Nix
uses: cachix/install-nix-action@v12
with:
nix_path: nixpkgs=channel:nixos-unstable
- name: Cargo Pedantry
run: nix-shell --run checkPhase -A mozilla-rust-overlay
checkPhase:
runs-on: ubuntu-latest
steps:
@ -30,8 +19,8 @@ jobs:
git config --global user.email "ofborg@example.com"
git config --global user.name "ofborg"
- name: checkPhase
run: nix-shell --run checkPhase
run: nix-shell --pure --run checkPhase
nix-build:
runs-on: ubuntu-latest
steps:

View file

@ -209,8 +209,7 @@ To test whether or not Continuous Integration will pass with your changes, you
can run the following commands from the root of your checkout:
```shell
$ nix-shell --run checkPhase -A mozilla-rust-overlay # checks rustfmt and clippy
$ nix-shell --run checkPhase # runs the test suite
$ nix-shell --pure --run checkPhase # checks rustfmt, clippy & runs the test suite
$ nix-build -A ofborg.rs # build ofborg
```

View file

@ -1,7 +1,6 @@
{ pkgs ? import ./nix {
overlays = [
(import ./nix/overlay.nix)
(import (builtins.fetchTarball https://github.com/mozilla/nixpkgs-mozilla/archive/master.tar.gz))
];
} }:
@ -24,65 +23,49 @@ let
# HISTFILE = "${src}/.bash_hist";
};
mozilla-rust-overlay = stdenv.mkDerivation {
name = "mozilla-rust-overlay";
buildInputs = with pkgs; [
latest.rustChannels.stable.rust
git
rustEnv = stdenv.mkDerivation {
name = "gh-event-forwarder";
nativeBuildInputs = with pkgs; [
nix # so in --pure mode we actually find the "correct" nix
bash
nix-prefetch-git
rustPackages.cargo
rustPackages.clippy
rustPackages.rustfmt
pkg-config
git
];
buildInputs = with pkgs; [
openssl
]
++ lib.optional stdenv.isDarwin pkgs.darwin.Security;
postHook = ''
checkPhase() (
cd "${builtins.toString ./.}/ofborg"
cd "${builtins.toString ./.}/ofborg"
set -x
cargo fmt
git diff --exit-code
cargofmtexit=$?
cargo clippy
cargoclippyexit=$?
set -x
cargo build && cargo test
cargotestexit=$?
cargo fmt
git diff --exit-code
cargofmtexit=$?
cargo clippy
cargoclippyexit=$?
sum=$((cargofmtexit + cargoclippyexit))
exit $sum
sum=$((cargofmtexit + cargoclippyexit + cargotestexit))
exit $sum
)
'';
RUSTFLAGS = "-D warnings";
RUST_BACKTRACE = "1";
NIX_PATH = "nixpkgs=${pkgs.path}";
};
rustEnv = stdenv.mkDerivation {
name = "gh-event-forwarder";
buildInputs = with pkgs; [
bash
nix-prefetch-git
latest.rustChannels.stable.rust
#rustfmt
openssl
pkg-config
git
]
++ lib.optional stdenv.isDarwin pkgs.darwin.Security;
postHook = ''
checkPhase() {
( cd "${builtins.toString ./.}/ofborg" && cargo build && cargo test)
}
'';
HISTFILE = "${toString ./.}/.bash_hist";
RUSTFLAGS = "-D warnings";
RUST_BACKTRACE = "1";
RUST_LOG = "ofborg=debug";
NIX_PATH = "nixpkgs=${pkgs.path}";
passthru.phpEnv = phpEnv;
passthru.mozilla-rust-overlay = mozilla-rust-overlay;
};
in rustEnv