diff --git a/pkgs/by-name/ch/charmcraft/package.nix b/pkgs/by-name/ch/charmcraft/package.nix index a2ea187240c8..78f48f85a7c4 100644 --- a/pkgs/by-name/ch/charmcraft/package.nix +++ b/pkgs/by-name/ch/charmcraft/package.nix @@ -1,12 +1,34 @@ { lib, git, - python3Packages, + python3, fetchFromGitHub, nix-update-script, }: -python3Packages.buildPythonApplication rec { +let + python = python3.override { + packageOverrides = self: super: { + pydantic-yaml = super.pydantic-yaml.overridePythonAttrs (old: rec { + version = "0.11.2"; + src = fetchFromGitHub { + owner = "NowanIlfideme"; + repo = "pydantic-yaml"; + rev = "refs/tags/v${version}"; + hash = "sha256-AeUyVav0/k4Fz69Qizn4hcJKoi/CDR9eUan/nJhWsDY="; + }; + dependencies = with self; [ + deprecated + importlib-metadata + pydantic_1 + ruamel-yaml + types-deprecated + ]; + }); + }; + }; +in +python.pkgs.buildPythonApplication rec { pname = "charmcraft"; version = "2.7.0"; @@ -23,11 +45,12 @@ python3Packages.buildPythonApplication rec { substituteInPlace setup.py \ --replace-fail 'version=determine_version()' 'version="${version}"' + # TODO remove setuptools from dependencies once this is removed substituteInPlace charmcraft/env.py \ --replace-fail "distutils.util" "setuptools.dist" ''; - propagatedBuildInputs = with python3Packages; [ + dependencies = with python.pkgs; [ craft-cli craft-parts craft-providers @@ -42,17 +65,18 @@ python3Packages.buildPythonApplication rec { requests requests-toolbelt requests-unixsocket + setuptools # see substituteInPlace above snap-helpers tabulate urllib3 ]; - nativeBuildInputs = with python3Packages; [ setuptools ]; + build-system = with python.pkgs; [ setuptools ]; pythonRelaxDeps = [ "urllib3" ]; nativeCheckInputs = - with python3Packages; + with python.pkgs; [ pyfakefs pytest-check diff --git a/pkgs/by-name/ro/rockcraft/package.nix b/pkgs/by-name/ro/rockcraft/package.nix index 2443a887a321..48b95df85b52 100644 --- a/pkgs/by-name/ro/rockcraft/package.nix +++ b/pkgs/by-name/ro/rockcraft/package.nix @@ -1,13 +1,50 @@ { lib, - python3Packages, + python3, fetchFromGitHub, dpkg, nix-update-script, - python3, }: -python3Packages.buildPythonApplication rec { +let + python = python3.override { + packageOverrides = self: super: { + craft-application = super.craft-application.overridePythonAttrs (old: rec { + version = "1.2.1"; + src = fetchFromGitHub { + owner = "canonical"; + repo = "craft-application"; + rev = "refs/tags/${version}"; + hash = "sha256-CXZEWVoE66dlQJp4G8tinufjyaDJaH1Muxz/qd/81oA="; + }; + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail "setuptools==67.7.2" "setuptools" + ''; + preCheck = '' + export HOME=$(mktemp -d) + ''; + }); + pydantic-yaml = super.pydantic-yaml.overridePythonAttrs (old: rec { + version = "0.11.2"; + src = fetchFromGitHub { + owner = "NowanIlfideme"; + repo = "pydantic-yaml"; + rev = "refs/tags/v${version}"; + hash = "sha256-AeUyVav0/k4Fz69Qizn4hcJKoi/CDR9eUan/nJhWsDY="; + }; + dependencies = with self; [ + deprecated + importlib-metadata + pydantic_1 + ruamel-yaml + types-deprecated + ]; + }); + }; + }; +in +python.pkgs.buildPythonApplication rec { pname = "rockcraft"; version = "1.2.3"; @@ -26,20 +63,21 @@ python3Packages.buildPythonApplication rec { --replace-fail "distutils.util" "setuptools.dist" ''; - propagatedBuildInputs = with python3Packages; [ - craft-application-1 + build-system = with python.pkgs; [ setuptools-scm ]; + + dependencies = with python.pkgs; [ + craft-application craft-archives spdx-lookup ]; nativeCheckInputs = - with python3Packages; + with python.pkgs; [ pytest-check pytest-mock pytest-subprocess pytestCheckHook - setuptools ] ++ [ dpkg ]; diff --git a/pkgs/by-name/sn/snapcraft/package.nix b/pkgs/by-name/sn/snapcraft/package.nix index a79e272ecd64..396d81826841 100644 --- a/pkgs/by-name/sn/snapcraft/package.nix +++ b/pkgs/by-name/sn/snapcraft/package.nix @@ -5,26 +5,49 @@ lib, makeWrapper, nix-update-script, - python3Packages, + python3, squashfsTools, stdenv, }: -python3Packages.buildPythonApplication rec { + +let + python = python3.override { + packageOverrides = self: super: { + pydantic = self.pydantic_1; + pydantic-yaml = super.pydantic-yaml.overridePythonAttrs (old: rec { + version = "0.11.2"; + src = fetchFromGitHub { + owner = "NowanIlfideme"; + repo = "pydantic-yaml"; + rev = "refs/tags/v${version}"; + hash = "sha256-AeUyVav0/k4Fz69Qizn4hcJKoi/CDR9eUan/nJhWsDY="; + }; + dependencies = with self; [ + deprecated + importlib-metadata + pydantic_1 + ruamel-yaml + types-deprecated + ]; + }); + versioningit = super.versioningit.overridePythonAttrs (old: rec { + # incompatible with pydantic_1 + doCheck = false; + }); + }; + }; +in +python.pkgs.buildPythonApplication rec { pname = "snapcraft"; - version = "8.2.12"; + version = "8.3.1"; pyproject = true; - # Somewhere deep in the dependency tree is 'versioningit', which depends - # on pydantic 2. Snapcraft will soon migrate to pydantic 2, and disabling - # this doesn't seem to affect the functionality of the application. - catchConflicts = false; - src = fetchFromGitHub { owner = "canonical"; repo = "snapcraft"; rev = "refs/tags/${version}"; - hash = "sha256-1PwIbMweeYGi+jLfhFB3LYThqaN2VW7zdyzjD1m57ow="; + hash = "sha256-cdRlUY9hAJ8US93aiJymzsV27JVPY7lWCK7IUdjDmYE="; }; patches = [ @@ -68,13 +91,14 @@ python3Packages.buildPythonApplication rec { --replace-fail 'arch_linker_path = Path(arch_config.dynamic_linker)' \ 'return str(Path("${glibc}/lib/ld-linux-x86-64.so.2"))' - substituteInPlace snapcraft_legacy/internal/xattrs.py \ - --replace-fail 'distutils.util' 'setuptools.dist' + substituteInPlace pyproject.toml \ + --replace-fail '"pytest-cov>=4.0",' "" \ + --replace-fail "--cov=snapcraft" "" ''; - buildInputs = [ makeWrapper ]; + nativeBuildInputs = [ makeWrapper ]; - propagatedBuildInputs = with python3Packages; [ + dependencies = with python.pkgs; [ attrs catkin-pkg click @@ -93,27 +117,38 @@ python3Packages.buildPythonApplication rec { lxml macaroonbakery mypy-extensions + overrides + packaging progressbar pyelftools pygit2 pylxd + pymacaroons python-apt python-gnupg + pyxdg + pyyaml raven requests-toolbelt + requests-unixsocket simplejson snap-helpers tabulate + toml tinydb + typing-extensions + urllib3 + validators ]; - nativeBuildInputs = with python3Packages; [ setuptools ]; + build-system = with python.pkgs; [ setuptools ]; pythonRelaxDeps = [ "docutils" "jsonschema" "pygit2" "urllib3" + "validators" ]; postInstall = '' @@ -121,10 +156,9 @@ python3Packages.buildPythonApplication rec { ''; nativeCheckInputs = - with python3Packages; + with python.pkgs; [ pytest-check - pytest-cov pytest-mock pytest-subprocess pytestCheckHook @@ -148,6 +182,7 @@ python3Packages.buildPythonApplication rec { "test_classic_linter_filter" "test_classic_linter" "test_complex_snap_yaml" + "test_core24_try_command" "test_get_base_configuration_snap_channel" "test_get_base_configuration_snap_instance_name_default" "test_get_base_configuration_snap_instance_name_not_running_as_snap" diff --git a/pkgs/development/python-modules/craft-application-1/default.nix b/pkgs/development/python-modules/craft-application-1/default.nix deleted file mode 100644 index e47e502e09f2..000000000000 --- a/pkgs/development/python-modules/craft-application-1/default.nix +++ /dev/null @@ -1,80 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchFromGitHub, - nix-update-script, - craft-cli, - craft-parts, - craft-providers, - pydantic-yaml-0, - pyyaml, - setuptools, - setuptools-scm, - pytestCheckHook, - pytest-check, - pytest-mock, - hypothesis, -}: - -buildPythonPackage rec { - pname = "craft-application-1"; - version = "1.2.1"; - - pyproject = true; - - src = fetchFromGitHub { - owner = "canonical"; - repo = "craft-application"; - rev = "refs/tags/${version}"; - hash = "sha256-CXZEWVoE66dlQJp4G8tinufjyaDJaH1Muxz/qd/81oA="; - }; - - postPatch = '' - substituteInPlace craft_application/__init__.py \ - --replace-fail "dev" "${version}" - - substituteInPlace pyproject.toml \ - --replace-fail "setuptools==67.7.2" "setuptools" - ''; - - nativeBuildInputs = [ - setuptools - setuptools-scm - ]; - - propagatedBuildInputs = [ - craft-cli - craft-parts - craft-providers - pydantic-yaml-0 - pyyaml - ]; - - pythonImportsCheck = [ "craft_application" ]; - - nativeCheckInputs = [ - hypothesis - pytest-check - pytest-mock - pytestCheckHook - ]; - - preCheck = '' - export HOME=$(mktemp -d) - ''; - - pytestFlagsArray = [ "tests/unit" ]; - - disabledTests = [ "test_to_yaml_file" ]; - - passthru.updateScript = nix-update-script { }; - - meta = { - description = "Basis for Canonical craft applications"; - homepage = "https://github.com/canonical/craft-application"; - changelog = "https://github.com/canonical/craft-application/releases/tag/${version}"; - license = lib.licenses.lgpl3Only; - maintainers = with lib.maintainers; [ jnsgruk ]; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/development/python-modules/craft-application/default.nix b/pkgs/development/python-modules/craft-application/default.nix index 1d8f388f7881..0c1fcdeb1f30 100644 --- a/pkgs/development/python-modules/craft-application/default.nix +++ b/pkgs/development/python-modules/craft-application/default.nix @@ -11,7 +11,7 @@ git, hypothesis, nix-update-script, - pydantic-yaml-0, + pydantic-yaml, pyfakefs, pygit2, pytest-check, @@ -27,7 +27,7 @@ buildPythonPackage rec { pname = "craft-application"; - version = "2.8.0"; + version = "3.2.0"; pyproject = true; disabled = pythonOlder "3.10"; @@ -36,21 +36,17 @@ buildPythonPackage rec { owner = "canonical"; repo = "craft-application"; rev = "refs/tags/${version}"; - hash = "sha256-COcZgl2XzPWknSKMUZgZBEMzkDdwK2PouIEuWKOP8dc="; + hash = "sha256-2JfCe7FJtuObC/4miA+OC/ctGy1fhdgI7DsowNYjQk8="; }; postPatch = '' - substituteInPlace craft_application/__init__.py \ - --replace-fail "dev" "${version}" - substituteInPlace pyproject.toml \ - --replace-fail "setuptools==" "setuptools>=" + --replace-fail "setuptools==70.1.0" "setuptools" ''; - build-system = [ - setuptools - setuptools-scm - ]; + build-system = [ setuptools-scm ]; + + pythonRelaxDeps = [ "requests" ]; dependencies = [ craft-archives @@ -58,7 +54,7 @@ buildPythonPackage rec { craft-grammar craft-parts craft-providers - pydantic-yaml-0 + pydantic-yaml pygit2 pyyaml snap-helpers @@ -110,7 +106,7 @@ buildPythonPackage rec { meta = { description = "Basis for Canonical craft applications"; homepage = "https://github.com/canonical/craft-application"; - changelog = "https://github.com/canonical/craft-application/releases/tag/${version}"; + changelog = "https://github.com/canonical/craft-application/blob/${src.rev}/docs/reference/changelog.rst"; license = lib.licenses.lgpl3Only; maintainers = with lib.maintainers; [ jnsgruk ]; platforms = lib.platforms.linux; diff --git a/pkgs/development/python-modules/craft-cli/default.nix b/pkgs/development/python-modules/craft-cli/default.nix index d6900511af7a..193616f1583e 100644 --- a/pkgs/development/python-modules/craft-cli/default.nix +++ b/pkgs/development/python-modules/craft-cli/default.nix @@ -4,9 +4,7 @@ fetchFromGitHub, nix-update-script, platformdirs, - pydantic_1, pyyaml, - setuptools, setuptools-scm, pytest-check, pytest-mock, @@ -15,7 +13,7 @@ buildPythonPackage rec { pname = "craft-cli"; - version = "2.5.1"; + version = "2.6.0"; pyproject = true; @@ -23,25 +21,18 @@ buildPythonPackage rec { owner = "canonical"; repo = "craft-cli"; rev = "refs/tags/${version}"; - hash = "sha256-yEKF04OPu4paRrghAP78r9hu6cqkUy6z/V7cHNys82I="; + hash = "sha256-8+dyFOEW0F4t2issRlOqdbzf0Avg0NsADgk96mZFpEQ="; }; postPatch = '' - substituteInPlace craft_cli/__init__.py \ - --replace-fail "dev" "${version}" - substituteInPlace pyproject.toml \ - --replace-fail "setuptools==67.7.2" "setuptools" + --replace-fail "setuptools==70.1.0" "setuptools" ''; - nativeBuildInputs = [ - setuptools - setuptools-scm - ]; + build-system = [ setuptools-scm ]; - propagatedBuildInputs = [ + dependencies = [ platformdirs - pydantic_1 pyyaml ]; diff --git a/pkgs/development/python-modules/craft-parts/default.nix b/pkgs/development/python-modules/craft-parts/default.nix index 3a137744d68f..bd0ae84ecd5d 100644 --- a/pkgs/development/python-modules/craft-parts/default.nix +++ b/pkgs/development/python-modules/craft-parts/default.nix @@ -5,12 +5,11 @@ nix-update-script, overrides, pydantic_1, - pydantic-yaml-0, + pydantic-yaml, pyxdg, pyyaml, requests, requests-unixsocket, - types-pyyaml, urllib3, pytestCheckHook, pytest-check, @@ -27,7 +26,7 @@ buildPythonPackage rec { pname = "craft-parts"; - version = "1.31.0"; + version = "1.33.0"; pyproject = true; @@ -35,31 +34,26 @@ buildPythonPackage rec { owner = "canonical"; repo = "craft-parts"; rev = "refs/tags/${version}"; - hash = "sha256-DohH81xhUfZI3NfmX6aDaOC/QLiddsxPzrc1vgFECTg="; + hash = "sha256-SP2mkaXsU0btnA3aanSA18GkdW6ReLgImOWdpnwZiyU="; }; patches = [ ./bash-path.patch ]; - postPatch = '' - substituteInPlace setup.py \ - --replace-fail "pydantic-yaml[pyyaml]>=0.11.0,<1.0.0" "pydantic-yaml[pyyaml]" \ - --replace-fail "urllib3<2" "urllib3" - ''; + build-system = [ setuptools-scm ]; - nativeBuildInputs = [ - setuptools - setuptools-scm + pythonRelaxDeps = [ + "requests" + "urllib3" ]; - propagatedBuildInputs = [ + dependencies = [ overrides pydantic_1 - pydantic-yaml-0 + pydantic-yaml pyxdg pyyaml requests requests-unixsocket - types-pyyaml urllib3 ]; @@ -112,6 +106,7 @@ buildPythonPackage rec { passthru.updateScript = nix-update-script { }; meta = { + broken = lib.versionAtLeast pydantic-yaml.version "1"; description = "Software artifact parts builder from Canonical"; homepage = "https://github.com/canonical/craft-parts"; changelog = "https://github.com/canonical/craft-parts/releases/tag/${version}"; diff --git a/pkgs/development/python-modules/launchpadlib/default.nix b/pkgs/development/python-modules/launchpadlib/default.nix index 797c3a399a73..da58622e2684 100644 --- a/pkgs/development/python-modules/launchpadlib/default.nix +++ b/pkgs/development/python-modules/launchpadlib/default.nix @@ -2,47 +2,43 @@ lib, buildPythonPackage, fetchPypi, - isPy3k, httplib2, - keyring_24, lazr-restfulclient, lazr-uri, setuptools, six, testresources, - wadllib, pytestCheckHook, }: buildPythonPackage rec { pname = "launchpadlib"; version = "2.0.0"; - format = "pyproject"; + pyproject = true; src = fetchPypi { inherit pname version; hash = "sha256-XUqQlekXc6dWXUwVlZSuMOynkv1fm4ne1FnXEUhKlss="; }; - propagatedBuildInputs = [ + build-system = [ setuptools ]; + + dependencies = [ httplib2 - keyring_24 lazr-restfulclient lazr-uri - setuptools six - testresources - wadllib ]; - nativeCheckInputs = [ pytestCheckHook ]; + nativeCheckInputs = [ + pytestCheckHook + testresources + ]; preCheck = '' export HOME=$TMPDIR ''; - doCheck = isPy3k; - pythonImportsCheck = [ "launchpadlib" "launchpadlib.apps" diff --git a/pkgs/development/python-modules/pydantic-yaml-0/default.nix b/pkgs/development/python-modules/pydantic-yaml/default.nix similarity index 71% rename from pkgs/development/python-modules/pydantic-yaml-0/default.nix rename to pkgs/development/python-modules/pydantic-yaml/default.nix index d225d0e07150..50f14837476a 100644 --- a/pkgs/development/python-modules/pydantic-yaml-0/default.nix +++ b/pkgs/development/python-modules/pydantic-yaml/default.nix @@ -2,22 +2,18 @@ lib, buildPythonPackage, fetchFromGitHub, - deprecated, importlib-metadata, - pydantic_1, + pydantic, ruamel-yaml, - semver, - types-deprecated, - setuptools, + typing-extensions, setuptools-scm, pytest-mock, pytestCheckHook, }: buildPythonPackage rec { - pname = "pydantic_yaml-0"; - # nixpkgs-update: no auto update - version = "0.11.2"; + pname = "pydantic-yaml"; + version = "1.3.0"; pyproject = true; @@ -25,7 +21,7 @@ buildPythonPackage rec { owner = "NowanIlfideme"; repo = "pydantic-yaml"; rev = "refs/tags/v${version}"; - hash = "sha256-AeUyVav0/k4Fz69Qizn4hcJKoi/CDR9eUan/nJhWsDY="; + hash = "sha256-Kv1nLR91iwShmCgduXA07+a+2EP1nnvaC7fBAn/ufEM="; }; postPatch = '' @@ -33,18 +29,13 @@ buildPythonPackage rec { --replace-fail "0.0.0" "${version}" ''; - nativeBuildInputs = [ - setuptools - setuptools-scm - ]; + build-system = [ setuptools-scm ]; - propagatedBuildInputs = [ - deprecated + dependencies = [ importlib-metadata - pydantic_1 + pydantic ruamel-yaml - semver - types-deprecated + typing-extensions ]; pythonImportsCheck = [ "pydantic_yaml" ]; diff --git a/pkgs/development/python-modules/python-apt/default.nix b/pkgs/development/python-modules/python-apt/default.nix index 5d5a703a1afc..2bf53c80cfc2 100644 --- a/pkgs/development/python-modules/python-apt/default.nix +++ b/pkgs/development/python-modules/python-apt/default.nix @@ -2,33 +2,37 @@ lib, apt, buildPythonPackage, - fetchgit, + fetchFromGitLab, + python, setuptools, }: buildPythonPackage rec { pname = "apt"; - version = "2.7.6"; + version = "2.8.0"; pyproject = true; - src = fetchgit { - url = "https://git.launchpad.net/python-apt"; + src = fetchFromGitLab { + domain = "salsa.debian.org"; + owner = "apt-team"; + repo = "python-apt"; rev = "refs/tags/${version}"; - hash = "sha256-1jTe8ncMKV78+cfSZ6p6qdjxs0plZLB4VwVtPLtDlAc="; + hash = "sha256-7l7rgyJ28iQuL6ShF/KYwL/kAXpLPTqnUIavVxNF+wU="; }; buildInputs = [ apt.dev ]; - nativeBuildInputs = [ setuptools ]; + build-system = [ setuptools ]; # Ensure the version is set properly without trying to invoke # dpkg-parsechangelog - env.DEBVER = "${version}"; + env.DEBVER = version; pythonImportsCheck = [ "apt_pkg" ]; meta = { + changelog = "https://salsa.debian.org/apt-team/python-apt/-/blob/${version}/debian/changelog"; description = "Python bindings for APT"; homepage = "https://launchpad.net/python-apt"; license = lib.licenses.gpl2; diff --git a/pkgs/development/python-modules/spdx-lookup/default.nix b/pkgs/development/python-modules/spdx-lookup/default.nix index 5da39999ace3..420ce4c68976 100644 --- a/pkgs/development/python-modules/spdx-lookup/default.nix +++ b/pkgs/development/python-modules/spdx-lookup/default.nix @@ -3,12 +3,14 @@ fetchFromGitHub, buildPythonPackage, nix-update-script, + setuptools, spdx, }: buildPythonPackage rec { pname = "spdx-lookup"; version = "0.3.2"; + pyproject = true; src = fetchFromGitHub { owner = "bbqsrc"; @@ -17,10 +19,15 @@ buildPythonPackage rec { hash = "sha256-jtzhqRAj1BWdU8AuR7Gr343mL5alLXhi+SyCkCI5AAU="; }; - propagatedBuildInputs = [ spdx ]; + build-system = [ setuptools ]; + + dependencies = [ spdx ]; pythonImportsCheck = [ "spdx_lookup" ]; + # upstream has no tests + doCheck = false; + passthru.updateScript = nix-update-script { }; meta = { diff --git a/pkgs/development/python-modules/spdx/default.nix b/pkgs/development/python-modules/spdx/default.nix index 0f8b434c2b74..a99ee507936b 100644 --- a/pkgs/development/python-modules/spdx/default.nix +++ b/pkgs/development/python-modules/spdx/default.nix @@ -3,11 +3,13 @@ fetchFromGitHub, buildPythonPackage, nix-update-script, + setuptools, }: buildPythonPackage rec { pname = "spdx"; version = "2.5"; + pyproject = true; src = fetchFromGitHub { owner = "bbqsrc"; @@ -16,8 +18,13 @@ buildPythonPackage rec { hash = "sha256-lfTgAX4Wl01xrvLA12ZUqjah7ZiLafMAU+yNNdVkRk0="; }; + build-system = [ setuptools ]; + pythonImportsCheck = [ "spdx" ]; + # upstream has no tests + doCheck = false; + passthru.updateScript = nix-update-script { }; meta = { diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index ec6c07c0e4ae..8add59eed71b 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -2557,8 +2557,6 @@ self: super: with self; { cpyparsing = callPackage ../development/python-modules/cpyparsing { }; - craft-application-1 = callPackage ../development/python-modules/craft-application-1 { }; - craft-application = callPackage ../development/python-modules/craft-application { }; craft-archives = callPackage ../development/python-modules/craft-archives { }; @@ -11112,7 +11110,7 @@ self: super: with self; { pydantic-settings = callPackage ../development/python-modules/pydantic-settings { }; - pydantic-yaml-0 = callPackage ../development/python-modules/pydantic-yaml-0 { }; + pydantic-yaml = callPackage ../development/python-modules/pydantic-yaml { }; pydash = callPackage ../development/python-modules/pydash { };