about summary refs log tree commit diff
path: root/pkgs/by-name/ha/hatch/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/ha/hatch/package.nix')
-rw-r--r--pkgs/by-name/ha/hatch/package.nix157
1 files changed, 94 insertions, 63 deletions
diff --git a/pkgs/by-name/ha/hatch/package.nix b/pkgs/by-name/ha/hatch/package.nix
index 06f2911faafb3..940c343b556bb 100644
--- a/pkgs/by-name/ha/hatch/package.nix
+++ b/pkgs/by-name/ha/hatch/package.nix
@@ -1,32 +1,36 @@
-{ lib
-, stdenv
-, fetchPypi
-, python3
-, cargo
-, git
+{
+  lib,
+  python3,
+  fetchFromGitHub,
+  uv,
+  git,
+  cargo,
+  stdenv,
+  darwin,
+  nix-update-script,
+  testers,
+  hatch,
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "hatch";
-  version = "1.9.7";
-  format = "pyproject";
+  version = "1.12.0";
+  pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-Gae4IXn5Tyrd2612qn5lq5DK1VqxA9U4J2N5NcnmYkw=";
+  src = fetchFromGitHub {
+    owner = "pypa";
+    repo = "hatch";
+    rev = "refs/tags/hatch-v${version}";
+    hash = "sha256-HW2vDVsFrdFRRaPNuGDg9DZpJd8OuYDIqA3KQRa3m9o=";
   };
 
-  postPatch = ''
-    # Loosen hatchling runtime version dependency
-    sed -i 's/hatchling<1.22/hatchling/' pyproject.toml
-  '';
-
-  nativeBuildInputs = with python3.pkgs; [
+  build-system = with python3.pkgs; [
     hatchling
     hatch-vcs
+    uv
   ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  dependencies = with python3.pkgs; [
     click
     hatchling
     httpx
@@ -44,61 +48,88 @@ python3.pkgs.buildPythonApplication rec {
     zstandard
   ];
 
-  nativeCheckInputs = [
-    cargo
-  ] ++ (with python3.pkgs; [
-    binary
-    git
-    pytestCheckHook
-    pytest-mock
-    pytest-xdist
-    setuptools
-  ]);
+  nativeCheckInputs =
+    with python3.pkgs;
+    [
+      binary
+      git
+      pytestCheckHook
+      pytest-mock
+      pytest-xdist
+      setuptools
+    ]
+    ++ [ cargo ]
+    ++ lib.optionals stdenv.isDarwin [
+      darwin.ps
+    ];
 
   preCheck = ''
     export HOME=$(mktemp -d);
   '';
 
-  disabledTests = [
-    # AssertionError: assert (1980, 1, 2, 0, 0, 0) == (2020, 2, 2, 0, 0, 0)
-    "test_default"
-    "test_explicit_path"
-    "test_default_auto_detection"
-    "test_editable_default"
-    "test_editable_default_extra_dependencies"
-    "test_editable_default_force_include"
-    "test_editable_default_force_include_option"
-    "test_editable_exact"
-    "test_editable_exact_extra_dependencies"
-    "test_editable_exact_force_include"
-    "test_editable_exact_force_include_option"
-    "test_editable_exact_force_include_build_data_precedence"
-    "test_editable_pth"
-    # expects sh, finds bash
-    "test_all"
-    "test_already_installed_update_flag"
-    "test_already_installed_update_prompt"
-    # Loosen hatchling runtime version dependency
-    "test_core"
-    "test_correct"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # https://github.com/NixOS/nixpkgs/issues/209358
-    "test_scripts_no_environment"
+  disabledTests =
+    [
+      # AssertionError: assert (1980, 1, 2, 0, 0, 0) == (2020, 2, 2, 0, 0, 0)
+      "test_default"
+      "test_editable_default"
+      "test_editable_default_extra_dependencies"
+      "test_editable_default_force_include"
+      "test_editable_default_force_include_option"
+      "test_editable_default_symlink"
+      "test_editable_exact"
+      "test_editable_exact_extra_dependencies"
+      "test_editable_exact_force_include"
+      "test_editable_exact_force_include_build_data_precedence"
+      "test_editable_exact_force_include_option"
+      "test_editable_pth"
+      "test_explicit_path"
+
+      # Loosen hatchling runtime version dependency
+      "test_core"
+      # New failing
+      "test_guess_variant"
+      "test_open"
+      "test_no_open"
+      "test_uv_env"
+      "test_pyenv"
+      "test_pypirc"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # https://github.com/NixOS/nixpkgs/issues/209358
+      "test_scripts_no_environment"
+
+      # This test assumes it is running on macOS with a system shell on the PATH.
+      # It is not possible to run it in a nix build using a /nix/store shell.
+      # See https://github.com/pypa/hatch/pull/709 for the relevant code.
+      "test_populate_default_popen_kwargs_executable"
+
+      # Those tests fail because the final wheel is named '...2-macosx_11_0_arm64.whl' instead of
+      # '...2-macosx_14_0_arm64.whl'
+      "test_macos_archflags"
+      "test_macos_max_compat"
+    ]
+    ++ lib.optionals stdenv.isAarch64 [ "test_resolve" ];
 
-    # This test assumes it is running on macOS with a system shell on the PATH.
-    # It is not possible to run it in a nix build using a /nix/store shell.
-    # See https://github.com/pypa/hatch/pull/709 for the relevant code.
-    "test_populate_default_popen_kwargs_executable"
-  ] ++ lib.optionals stdenv.isAarch64 [
-    "test_resolve"
+  disabledTestPaths = lib.optionals stdenv.isDarwin [
+    # AssertionError: assert [call('test h...2p32/bin/sh')] == [call('test h..., shell=True)]
+    # At index 0 diff:
+    #    call('test hatch-test.py3.10', shell=True, executable='/nix/store/b34ianga4diikh0kymkpqwmvba0mmzf7-bash-5.2p32/bin/sh')
+    # != call('test hatch-test.py3.10', shell=True)
+    "tests/cli/fmt/test_fmt.py"
+    "tests/cli/test/test_test.py"
   ];
 
-  meta = with lib; {
+  passthru = {
+    tests.version = testers.testVersion { package = hatch; };
+    updateScript = nix-update-script { };
+  };
+
+  meta = {
     description = "Modern, extensible Python project manager";
-    mainProgram = "hatch";
     homepage = "https://hatch.pypa.io/latest/";
     changelog = "https://github.com/pypa/hatch/blob/hatch-v${version}/docs/history/hatch.md";
-    license = licenses.mit;
-    maintainers = with maintainers; [ onny ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ onny ];
+    mainProgram = "hatch";
   };
 }