git-sim: init at 0.3.5

This commit is contained in:
Mathias Sven 2024-10-10 03:18:05 +01:00
parent 226f9c8f73
commit 1a6c8d507c
3 changed files with 120 additions and 0 deletions

View File

@ -0,0 +1,84 @@
{
lib,
stdenv,
fetchFromGitHub,
installShellFiles,
python3Packages,
}:
let
inherit (python3Packages)
buildPythonApplication
gitpython
manim
opencv4
typer
pydantic
fonttools
git-dummy
pytestCheckHook
;
version = "0.3.5";
in
buildPythonApplication {
pname = "git-sim";
inherit version;
pyproject = true;
src = fetchFromGitHub {
owner = "initialcommit-com";
repo = "git-sim";
rev = "v${version}";
hash = "sha256-4jHkAlF2SAzHjBi8pmAJ0TKkcLxw+6EdGsXnHZUMILw=";
};
patches = [ ./tests.patch ];
build-system = [ ];
pythonRemoveDeps = [ "opencv-python-headless" ];
dependencies = [
gitpython
manim
opencv4
typer
pydantic
fonttools
git-dummy
];
# https://github.com/NixOS/nixpkgs/commit/8033561015355dd3c3cf419d81ead31e534d2138
makeWrapperArgs = [ "--prefix PYTHONWARNINGS , ignore:::pydub.utils:" ];
nativeBuildInputs = [ installShellFiles ];
postInstall =
# https://github.com/NixOS/nixpkgs/issues/308283
lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd git-sim \
--bash <($out/bin/git-sim --show-completion bash) \
--fish <($out/bin/git-sim --show-completion fish) \
--zsh <($out/bin/git-sim --show-completion zsh)
''
+ "ln -s ${git-dummy}/bin/git-dummy $out/bin/";
preCheck = ''
PATH=$PATH:$out/bin
'';
nativeCheckInputs = [
pytestCheckHook
git-dummy
];
doCheck = false;
meta = {
description = "Visually simulate Git operations in your own repos with a single terminal command";
homepage = "https://initialcommit.com/tools/git-sim";
license = lib.licenses.gpl2Only;
maintainers = with lib.maintainers; [ mathiassven ];
};
}

View File

@ -0,0 +1,33 @@
diff --git a/tests/e2e_tests/conftest.py b/tests/e2e_tests/conftest.py
index 310197a..9e82a1e 100644
--- a/tests/e2e_tests/conftest.py
+++ b/tests/e2e_tests/conftest.py
@@ -22,9 +22,7 @@ def tmp_repo(tmp_path_factory):
# Create the sample repo for testing.
os.chdir(tmp_repo_dir)
- # When defining cmd, as_posix() is required for Windows compatibility.
- git_dummy_path = utils.get_venv_path() / "git-dummy"
- cmd = f"{git_dummy_path.as_posix()} --commits=10 --branches=4 --merge=1 --constant-sha --name=sample_repo --diverge-at=2"
+ cmd = "git-dummy --commits=10 --branches=4 --merge=1 --constant-sha --name=sample_repo --diverge-at=2"
cmd_parts = split(cmd)
subprocess.run(cmd_parts)
diff --git a/tests/e2e_tests/utils.py b/tests/e2e_tests/utils.py
index 8dfc623..41a4cf6 100644
--- a/tests/e2e_tests/utils.py
+++ b/tests/e2e_tests/utils.py
@@ -69,13 +69,6 @@ def get_cmd_parts(raw_command):
f"git-sim -d --output-only-path --img-format=png --font='{font_path}'",
)
- # Replace `git-sim` with the full path to the binary.
- # as_posix() is needed for Windows compatibility.
- # The space is included in "git-sim " to avoid replacing any occurrences
- # of git-sim in a font path.
- git_sim_path = get_venv_path() / "git-sim"
- cmd = cmd.replace("git-sim ", f"{git_sim_path.as_posix()} ")
-
# Show full test command when run in diagnostic mode.
print(f" Test command: {cmd}")

View File

@ -205,6 +205,9 @@ buildPythonPackage rec {
postPatch = ''
substituteInPlace pyproject.toml \
--replace "--no-cov-on-fail --cov=manim --cov-report xml --cov-report term" ""
substituteInPlace manim/_config/default.cfg \
--replace "ffmpeg_executable = ffmpeg" "ffmpeg_executable = ${lib.getExe ffmpeg}"
'';
buildInputs = [ cairo ];