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: pull_request:
jobs: 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: checkPhase:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
@ -30,7 +19,7 @@ jobs:
git config --global user.email "ofborg@example.com" git config --global user.email "ofborg@example.com"
git config --global user.name "ofborg" git config --global user.name "ofborg"
- name: checkPhase - name: checkPhase
run: nix-shell --run checkPhase run: nix-shell --pure --run checkPhase
nix-build: nix-build:
runs-on: ubuntu-latest runs-on: ubuntu-latest

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: can run the following commands from the root of your checkout:
```shell ```shell
$ nix-shell --run checkPhase -A mozilla-rust-overlay # checks rustfmt and clippy $ nix-shell --pure --run checkPhase # checks rustfmt, clippy & runs the test suite
$ nix-shell --run checkPhase # runs the test suite
$ nix-build -A ofborg.rs # build ofborg $ nix-build -A ofborg.rs # build ofborg
``` ```

View file

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