message: Create larger `shell.nix` at repo root
diff: # build-contracts-rs`. There is no official support for this nix derivation.
  #
  # Do not use this, but follow instructions in the `README.md` instead.
  +#
  +# `ops`: enables support for running `casper-tool` and various experimental cluster-based
  +# testing utilities.
  +# `dev`: enables tooling useful for development, but not strictly necessary to run/build
  -{ pkgs ? (import <nixpkgs>) { } }:
  -pkgs.stdenv.mkDerivation {
  +{ pkgs ? (import <nixpkgs>) { }, ops ? true, dev ? true }:
  +let
  + # `volatile` is not packaged in nix.
  + volatile = pkgs.python38Packages.buildPythonPackage rec {
  + pname = "volatile";
  + version = "2.1.0";
  + src = pkgs.python38Packages.fetchPypi {
  + inherit pname version;
  + sha256 = "1lri7a6pmlx9ghbrsgd702c3n862glwy0p8idh0lwdg313anmqwv";
  + };
  + doCheck = false;
  + };
  + python = pkgs.python3.withPackages
  + (python-packages: with python-packages; [ click kubernetes volatile ]);
  +in pkgs.stdenv.mkDerivation {
  name = "rustenv";
  nativeBuildInputs = with pkgs; [ pkg-config perl which protobuf ];
  - buildInputs = with pkgs; [ cmake pkg-config openssl.dev zlib.dev rustup ];
  + buildInputs = with pkgs;
  + [ cmake pkg-config openssl.dev zlib.dev rustup ]
  + ++ lib.lists.optionals ops [ kubectl python skopeo ]
  + ++ lib.lists.optionals dev [ black ];
  # Enable SSL support in pure shells
  SSL_CERT_FILE = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt";
  