diff --git a/pkgs/tools/package-management/poetry/default.nix b/pkgs/tools/package-management/poetry/default.nix index 35ca917056cd..f4a10a8ff2ef 100644 --- a/pkgs/tools/package-management/poetry/default.nix +++ b/pkgs/tools/package-management/poetry/default.nix @@ -1,9 +1,25 @@ -{ python3 }: +{ python3, fetchFromGitHub }: let python = python3.override { - packageOverrides = self: super: { + packageOverrides = self: super: rec { poetry = self.callPackage ./unwrapped.nix { }; + + # The versions of Poetry and poetry-core need to match exactly, + # and poetry-core in nixpkgs requires a staging cycle to be updated, + # so apply an override here. + # + # We keep the override around even when the versions match, as + # it's likely to become relevant again after the next Poetry update. + poetry-core = super.poetry-core.overridePythonAttrs (old: rec { + version = poetry.version; + src = fetchFromGitHub { + owner = "python-poetry"; + repo = "poetry-core"; + rev = version; + hash = "sha256-OfY2zc+5CgOrgbiPVnvMdT4h1S7Aek8S7iThl6azmsk="; + }; + }); } // (plugins self); };