Unverified Commit bb3c18e5 authored by Aleksana's avatar Aleksana Committed by GitHub
Browse files

cruft: init at 2.15.0 (#299346)

parents cf833bde 7e027363
Loading
Loading
Loading
Loading
+62 −0
Original line number Diff line number Diff line
{
  python3Packages,
  fetchFromGitHub,
  lib,
}:
python3Packages.buildPythonApplication rec {
  pname = "cruft";
  version = "2.15.0";
  pyproject = true;

  src = fetchFromGitHub {
    owner = "cruft";
    repo = "cruft";
    rev = version;
    hash = "sha256-qIVyNMoI3LsoOV/6XPa60Y1vTRvkezesF7wF9WVSLGk=";
  };

  build-system = with python3Packages; [
    poetry-core
  ];

  nativeCheckInputs = with python3Packages; [
    pytest7CheckHook
  ];

  dependencies = with python3Packages; [
    click
    cookiecutter
    gitpython
    typer
  ];

  pythonImportsCheck = "cruft";

  # Unfortunately, some tests require internet access to fully clone
  # https://github.com/cruft/cookiecutter-test (including all branches)
  # which is possible to package, but is annoying and may be not always pure
  #
  # See https://discourse.nixos.org/t/keep-git-folder-in-when-fetching-a-git-repo/8590/6
  #
  # There are only 13 tests which do not require internet access on moment of the writing.
  # But some tests are better than none, right?
  disabledTests = [
    "test_get_diff_with_add"
    "test_get_diff_with_delete"
    "test_get_diff_with_unicode"
  ];

  disabledTestPaths = [
    "tests/test_api.py" # only 2 tests pass, and 24 fail. I am going to ignore entire file
    "tests/test_cli.py"
  ];

  meta = {
    changelog = "https://github.com/cruft/cruft/blob/${version}/CHANGELOG.md";
    description = "Allows you to maintain all the necessary boilerplate for building projects";
    homepage = "https://github.com/cruft/cruft";
    license = lib.licenses.mit;
    mainProgram = "cruft";
    maintainers = with lib.maintainers; [ perchun ];
  };
}