Files

109 lines
2.1 KiB
Nix

{
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
hatch-jupyter-builder,
hatch-nodejs-version,
hatchling,
jupyterlab,
# nativeBuildInputs
nodejs,
yarn-berry_3,
# dependencies
anyio,
nbformat,
packaging,
pexpect,
traitlets,
# propagatedBuildInputs
git,
# tests
nbdime,
pytest-asyncio,
pytestCheckHook,
writableTmpDirAsHomeHook,
}:
buildPythonPackage (finalAttrs: {
pname = "jupyterlab-git-core";
version = "0.54.1";
pyproject = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "jupyterlab";
repo = "jupyterlab-git";
tag = "v${finalAttrs.version}";
hash = "sha256-huVsVpMgsSrrIvsu4dvmbOoRxGDlM2rkBy6hsZSw1as=";
};
build-system = [
hatch-jupyter-builder
hatch-nodejs-version
hatchling
jupyterlab
];
nativeBuildInputs = [
nodejs
yarn-berry_3.yarnBerryConfigHook
];
offlineCache = yarn-berry_3.fetchYarnBerryDeps {
inherit (finalAttrs) src;
hash = "sha256-+Dz3qQcSYDiuFsOKbmRmdFE4LCGXVL4jkusH+IfU28E=";
};
preBuild = ''
cd packages/core
'';
dependencies = [
anyio
nbformat
packaging
pexpect
traitlets
];
propagatedBuildInputs = [ git ];
nativeCheckInputs = [
nbdime
pytest-asyncio
pytestCheckHook
writableTmpDirAsHomeHook
];
preCheck = ''
(
cd ../..
jlpm test --runInBand \
src/__tests__/test-components/NotebookDiff.spec.tsx \
src/__tests__/test-components/PlainTextDiff.spec.tsx
)
''
# Upstream's Core tests import the sibling server package from the workspace.
+ ''
export PYTHONPATH="$PWD/../jupyterlab''${PYTHONPATH:+:$PYTHONPATH}"
'';
pytestFlags = [ "--confcutdir=." ];
pythonImportsCheck = [ "jupyterlab_git_core" ];
meta = {
description = "Core package for the JupyterLab Git extension";
homepage = "https://github.com/jupyterlab/jupyterlab-git";
changelog = "https://github.com/jupyterlab/jupyterlab-git/blob/${finalAttrs.src.tag}/CHANGELOG.md";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ chiroptical ];
};
})