diff --git a/pkgs/build-support/rust/import-cargo-lock.nix b/pkgs/build-support/rust/import-cargo-lock.nix index b23bae1090b7..f4daf3540531 100644 --- a/pkgs/build-support/rust/import-cargo-lock.nix +++ b/pkgs/build-support/rust/import-cargo-lock.nix @@ -108,7 +108,7 @@ let # Replaces values inherited by workspace members. replaceWorkspaceValues = writers.writePython3 "replace-workspace-values" - { libraries = with python3Packages; [ tomli tomli-w ]; flakeIgnore = [ "E501" ]; } + { libraries = with python3Packages; [ tomli tomli-w ]; flakeIgnore = [ "E501" "W503" ]; } (builtins.readFile ./replace-workspace-values.py); # Fetch and unpack a crate. diff --git a/pkgs/build-support/rust/replace-workspace-values.py b/pkgs/build-support/rust/replace-workspace-values.py index f5108f840b33..acbc38c8ae39 100644 --- a/pkgs/build-support/rust/replace-workspace-values.py +++ b/pkgs/build-support/rust/replace-workspace-values.py @@ -18,7 +18,11 @@ def load_file(path: str) -> dict[str, Any]: def replace_key( workspace_manifest: dict[str, Any], table: dict[str, Any], section: str, key: str ) -> bool: - if "workspace" in table[key] and table[key]["workspace"] is True: + if ( + isinstance(table[key], dict) + and "workspace" in table[key] + and table[key]["workspace"] is True + ): print("replacing " + key) replaced = table[key] diff --git a/pkgs/build-support/rust/test/import-cargo-lock/default.nix b/pkgs/build-support/rust/test/import-cargo-lock/default.nix index f399107eb982..74d6c534a739 100644 --- a/pkgs/build-support/rust/test/import-cargo-lock/default.nix +++ b/pkgs/build-support/rust/test/import-cargo-lock/default.nix @@ -14,7 +14,7 @@ v1 = callPackage ./v1 { }; gitDependencyWorkspaceInheritance = callPackage ./git-dependency-workspace-inheritance { replaceWorkspaceValues = writers.writePython3 "replace-workspace-values" - { libraries = with python3Packages; [ tomli tomli-w ]; flakeIgnore = [ "E501" ]; } + { libraries = with python3Packages; [ tomli tomli-w ]; flakeIgnore = [ "E501" "W503" ]; } (builtins.readFile ../../replace-workspace-values.py); }; } diff --git a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-workspace-inheritance/crate.toml b/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-workspace-inheritance/crate.toml index a50855706dff..f7b62aed3514 100644 --- a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-workspace-inheritance/crate.toml +++ b/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-workspace-inheritance/crate.toml @@ -1,5 +1,12 @@ [package] +name = "im_using_workspaces" version = { workspace = true } +publish = false +keywords = [ + "workspace", + "other_thing", + "third_thing", +] [dependencies] foo = { workspace = true, features = ["cat"] } diff --git a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-workspace-inheritance/want.toml b/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-workspace-inheritance/want.toml index 3c11228e97c2..ec1331455bec 100644 --- a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-workspace-inheritance/want.toml +++ b/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-workspace-inheritance/want.toml @@ -1,5 +1,12 @@ [package] +name = "im_using_workspaces" version = "1.0.0" +publish = false +keywords = [ + "workspace", + "other_thing", + "third_thing", +] [dependencies] bar = "1.0.0"