Use cargo workspace to remove duplicated version, license, and author fields#4226
Use cargo workspace to remove duplicated version, license, and author fields#4226timon-schelling wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
Code Review
This pull request migrates multiple crates within the workspace to inherit common package metadata from the workspace configuration. However, the reviewer noted that the rust-version constraint was inadvertently removed from several Cargo.toml files during this migration. It is recommended to add rust-version.workspace = true to these files to ensure all packages consistently adhere to the workspace's Rust version constraint.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| license = "MIT OR Apache-2.0" | ||
| repository = "" | ||
| edition = "2024" | ||
| rust-version = "1.87" |
| license = "MIT OR Apache-2.0" | ||
| repository = "" | ||
| edition = "2024" | ||
| rust-version = "1.87" |
| license = "MIT OR Apache-2.0" | ||
| repository = "" | ||
| edition = "2024" | ||
| rust-version = "1.87" |
| license = "MIT OR Apache-2.0" | ||
| repository = "" | ||
| edition = "2024" | ||
| rust-version = "1.87" |
| license = "MIT OR Apache-2.0" | ||
| repository = "" | ||
| edition = "2024" | ||
| rust-version = "1.87" |
| license = "MIT OR Apache-2.0" | ||
| repository = "" | ||
| edition = "2024" | ||
| rust-version = "1.87" |
| name = "graphite-editor" | ||
| publish = false | ||
| version = "0.0.0" | ||
| rust-version = "1.88" |
| name = "graphite-wasm-wrapper" | ||
| publish = false | ||
| version = "0.0.0" | ||
| rust-version = "1.88" |
| name = "node-macro" | ||
| publish = false | ||
| version = "0.0.0" | ||
| rust-version = "1.88" |
| name = "graphite-proc-macros" | ||
| publish = false | ||
| version = "0.0.0" | ||
| rust-version = "1.88" |
There was a problem hiding this comment.
13 issues found across 49 files
Confidence score: 4/5
- The biggest functional risk is in
desktop/Cargo.toml,desktop/wrapper/Cargo.toml, anddesktop/embedded-resources/Cargo.toml, whererust-versionappears to have been dropped without explicit workspace inheritance, so older toolchains may no longer fail fast and could hit harder-to-diagnose build errors later — restorerust-version.workspace = true(or explicitrust-version) before merging. - Several crates (
node-graph/libraries/vector-types/Cargo.toml,node-graph/libraries/graphene-hash/Cargo.toml,node-graph/libraries/application-io/Cargo.toml, andnode-graph/libraries/canvas-utils/Cargo.toml) lostdescriptionmetadata that is not provided by[workspace.package], which can degrade publish/discovery quality and crate metadata completeness — add per-cratedescriptionvalues or define a workspace description strategy before merge. - The PR-title policy findings linked via
desktop/platform/mac/Cargo.tomlare process/standards issues rather than runtime risk, but merging as-is may create avoidable churn with commit message conventions — update the title verb/spelling to match project rules before landing.
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="desktop/platform/mac/Cargo.toml">
<violation number="1" location="desktop/platform/mac/Cargo.toml:3">
P2: Custom agent: **PR title enforcement**
PR title has a spelling error: "dublicated" should be "duplicated". The PR title becomes the commit message, and the project's detailed PR title style guide establishes high standards for spelling and language correctness.</violation>
<violation number="2" location="desktop/platform/mac/Cargo.toml:3">
P2: Custom agent: **PR title enforcement**
PR title starts with invalid leading verb "Use" instead of an approved action verb from the project's leading verb vocabulary</violation>
<violation number="3" location="desktop/platform/mac/Cargo.toml:4">
P3: Removing the `description` field without a workspace replacement loses the crate description. The workspace `[workspace.package]` does not define `description`, so this crate will now have no description metadata.</violation>
</file>
<file name="node-graph/graphene-cli/Cargo.toml">
<violation number="1" location="node-graph/graphene-cli/Cargo.toml:8">
P3: The `description` field (`"CLI interface for the graphene language"`) was removed and not replaced with a workspace-inherited equivalent. The workspace `[workspace.package]` has no `description` field, so this metadata is now lost rather than deduplicated.</violation>
</file>
<file name="node-graph/libraries/canvas-utils/Cargo.toml">
<violation number="1" location="node-graph/libraries/canvas-utils/Cargo.toml:4">
P3: The `description` field was removed from `Cargo.toml` but was not migrated to workspace inheritance. The workspace root defines `[workspace.package]` without a `description`, so adding `description.workspace = true` would fail. Either add `description` to the workspace package table or restore it locally in this crate.</violation>
</file>
<file name="editor/Cargo.toml">
<violation number="1" location="editor/Cargo.toml:3">
P2: Removed `rust-version`, `readme`, `homepage`, and `repository` fields without migrating them to workspace inheritance. These are all defined in `[workspace.package]` in the root `Cargo.toml`, so they should use `xxx.workspace = true` like the other fields. Currently they are silently dropped from this package.</violation>
</file>
<file name="node-graph/libraries/vector-types/Cargo.toml">
<violation number="1" location="node-graph/libraries/vector-types/Cargo.toml:4">
P2: The `description` field was removed entirely but is not inherited from the workspace (the workspace `[workspace.package]` has no `description` field). This means the crate loses its description metadata, which is used by `cargo doc`, `cargo metadata`, and IDEs. Other crates in this workspace (e.g. `core-types`) correctly keep their `description` field locally.</violation>
</file>
<file name="desktop/Cargo.toml">
<violation number="1" location="desktop/Cargo.toml:8">
P3: The `description = "Graphite Desktop"` field was removed without inheriting one from the workspace, so the crate now has no description. Workspace `[workspace.package]` does not define a `description` field, so this is a net loss. Other migrated crates here (editor, desktop/wrapper) never had descriptions, so they weren't affected.</violation>
<violation number="2" location="desktop/Cargo.toml:8">
P2: The `rust-version` constraint (previously `"1.87"`) was removed but not replaced with `rust-version.workspace = true`. This drops the MSRV enforcement for this package.</violation>
</file>
<file name="node-graph/libraries/graphene-hash/Cargo.toml">
<violation number="1" location="node-graph/libraries/graphene-hash/Cargo.toml:8">
P2: The `description` field was removed from the package manifest during the workspace migration. The workspace does not define a `description` key in `[workspace.package]`, so the crate's descriptive metadata has been silently dropped. This means `cargo publish` (if ever enabled) and documentation tooling would show no description for the `graphene-hash` crate.</violation>
</file>
<file name="node-graph/libraries/application-io/Cargo.toml">
<violation number="1" location="node-graph/libraries/application-io/Cargo.toml:4">
P2: The `description` field was removed from the crate's Cargo.toml and is not inherited from the workspace. The original had `description = "graphene application io interface"`, but neither the new file nor the workspace `[workspace.package]` section defines a `description` field. This metadata loss means `cargo doc` output and `cargo package` metadata will lack a description for this crate, and registry publication would be rejected (if `publish` were ever enabled).</violation>
</file>
<file name="desktop/wrapper/Cargo.toml">
<violation number="1" location="desktop/wrapper/Cargo.toml:3">
P2: `rust-version.workspace = true` is missing — the explicit `rust-version = "1.87"` was removed but not replaced with workspace inheritance. The package will lose its MSRV declaration, whereas the workspace defines `rust-version = "1.88"` which should be inherited.</violation>
</file>
<file name="desktop/embedded-resources/Cargo.toml">
<violation number="1" location="desktop/embedded-resources/Cargo.toml:4">
P2: Dropping the crate's `rust-version` declaration removes its MSRV metadata. Cargo will no longer reject older toolchains for this package up front, so restore the field (or inherit it explicitly) if this crate still supports a minimum Rust version.</violation>
</file>
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
| repository = "" | ||
| edition = "2024" | ||
| rust-version = "1.87" | ||
| # Inherited from workspace - start |
There was a problem hiding this comment.
P2: Custom agent: PR title enforcement
PR title has a spelling error: "dublicated" should be "duplicated". The PR title becomes the commit message, and the project's detailed PR title style guide establishes high standards for spelling and language correctness.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At desktop/platform/mac/Cargo.toml, line 3:
<comment>PR title has a spelling error: "dublicated" should be "duplicated". The PR title becomes the commit message, and the project's detailed PR title style guide establishes high standards for spelling and language correctness.</comment>
<file context>
@@ -1,12 +1,12 @@
-repository = ""
-edition = "2024"
-rust-version = "1.87"
+# Inherited from workspace - start
+version.workspace = true
+license.workspace = true
</file context>
| repository = "" | ||
| edition = "2024" | ||
| rust-version = "1.87" | ||
| # Inherited from workspace - start |
There was a problem hiding this comment.
P2: Custom agent: PR title enforcement
PR title starts with invalid leading verb "Use" instead of an approved action verb from the project's leading verb vocabulary
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At desktop/platform/mac/Cargo.toml, line 3:
<comment>PR title starts with invalid leading verb "Use" instead of an approved action verb from the project's leading verb vocabulary</comment>
<file context>
@@ -1,12 +1,12 @@
-repository = ""
-edition = "2024"
-rust-version = "1.87"
+# Inherited from workspace - start
+version.workspace = true
+license.workspace = true
</file context>
| homepage = "https://graphite.art" | ||
| repository = "https://github.com/GraphiteEditor/Graphite" | ||
| license = "MIT OR Apache-2.0" | ||
| # Inherited from workspace - start |
There was a problem hiding this comment.
P2: Removed rust-version, readme, homepage, and repository fields without migrating them to workspace inheritance. These are all defined in [workspace.package] in the root Cargo.toml, so they should use xxx.workspace = true like the other fields. Currently they are silently dropped from this package.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At editor/Cargo.toml, line 3:
<comment>Removed `rust-version`, `readme`, `homepage`, and `repository` fields without migrating them to workspace inheritance. These are all defined in `[workspace.package]` in the root `Cargo.toml`, so they should use `xxx.workspace = true` like the other fields. Currently they are silently dropped from this package.</comment>
<file context>
@@ -1,14 +1,12 @@
-homepage = "https://graphite.art"
-repository = "https://github.com/GraphiteEditor/Graphite"
-license = "MIT OR Apache-2.0"
+# Inherited from workspace - start
+version.workspace = true
+license.workspace = true
</file context>
| @@ -1,10 +1,12 @@ | |||
| [package] | |||
There was a problem hiding this comment.
P2: The description field was removed entirely but is not inherited from the workspace (the workspace [workspace.package] has no description field). This means the crate loses its description metadata, which is used by cargo doc, cargo metadata, and IDEs. Other crates in this workspace (e.g. core-types) correctly keep their description field locally.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At node-graph/libraries/vector-types/Cargo.toml, line 4:
<comment>The `description` field was removed entirely but is not inherited from the workspace (the workspace `[workspace.package]` has no `description` field). This means the crate loses its description metadata, which is used by `cargo doc`, `cargo metadata`, and IDEs. Other crates in this workspace (e.g. `core-types`) correctly keep their `description` field locally.</comment>
<file context>
@@ -1,10 +1,12 @@
-authors = ["Graphite Authors <contact@graphite.art>"]
-license = "MIT OR Apache-2.0"
+# Inherited from workspace - start
+version.workspace = true
+license.workspace = true
+authors.workspace = true
</file context>
| @@ -1,11 +1,12 @@ | |||
| [package] | |||
There was a problem hiding this comment.
P2: The description field was removed from the package manifest during the workspace migration. The workspace does not define a description key in [workspace.package], so the crate's descriptive metadata has been silently dropped. This means cargo publish (if ever enabled) and documentation tooling would show no description for the graphene-hash crate.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At node-graph/libraries/graphene-hash/Cargo.toml, line 8:
<comment>The `description` field was removed from the package manifest during the workspace migration. The workspace does not define a `description` key in `[workspace.package]`, so the crate's descriptive metadata has been silently dropped. This means `cargo publish` (if ever enabled) and documentation tooling would show no description for the `graphene-hash` crate.</comment>
<file context>
@@ -1,11 +1,12 @@
+license.workspace = true
+authors.workspace = true
+edition.workspace = true
+publish.workspace = true
+# Inherited from workspace - end
</file context>
| license.workspace = true | ||
| authors.workspace = true | ||
| edition.workspace = true | ||
| publish.workspace = true |
There was a problem hiding this comment.
P2: The rust-version constraint (previously "1.87") was removed but not replaced with rust-version.workspace = true. This drops the MSRV enforcement for this package.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At desktop/Cargo.toml, line 8:
<comment>The `rust-version` constraint (previously `"1.87"`) was removed but not replaced with `rust-version.workspace = true`. This drops the MSRV enforcement for this package.</comment>
<file context>
@@ -1,12 +1,12 @@
+license.workspace = true
+authors.workspace = true
+edition.workspace = true
+publish.workspace = true
+# Inherited from workspace - end
</file context>
| publish.workspace = true | |
| publish.workspace = true | |
| rust-version.workspace = true |
| @@ -1,10 +1,12 @@ | |||
| [package] | |||
There was a problem hiding this comment.
P3: The description field ("CLI interface for the graphene language") was removed and not replaced with a workspace-inherited equivalent. The workspace [workspace.package] has no description field, so this metadata is now lost rather than deduplicated.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At node-graph/graphene-cli/Cargo.toml, line 8:
<comment>The `description` field (`"CLI interface for the graphene language"`) was removed and not replaced with a workspace-inherited equivalent. The workspace `[workspace.package]` has no `description` field, so this metadata is now lost rather than deduplicated.</comment>
<file context>
@@ -1,10 +1,12 @@
+license.workspace = true
+authors.workspace = true
+edition.workspace = true
+publish.workspace = true
+# Inherited from workspace - end
</file context>
| @@ -1,10 +1,12 @@ | |||
| [package] | |||
There was a problem hiding this comment.
P3: The description field was removed from Cargo.toml but was not migrated to workspace inheritance. The workspace root defines [workspace.package] without a description, so adding description.workspace = true would fail. Either add description to the workspace package table or restore it locally in this crate.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At node-graph/libraries/canvas-utils/Cargo.toml, line 4:
<comment>The `description` field was removed from `Cargo.toml` but was not migrated to workspace inheritance. The workspace root defines `[workspace.package]` without a `description`, so adding `description.workspace = true` would fail. Either add `description` to the workspace package table or restore it locally in this crate.</comment>
<file context>
@@ -1,10 +1,12 @@
-authors = ["Graphite Authors <contact@graphite.art>"]
-license = "MIT OR Apache-2.0"
+# Inherited from workspace - start
+version.workspace = true
+license.workspace = true
+authors.workspace = true
</file context>
| @@ -1,12 +1,12 @@ | |||
| [package] | |||
There was a problem hiding this comment.
P3: Removing the description field without a workspace replacement loses the crate description. The workspace [workspace.package] does not define description, so this crate will now have no description metadata.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At desktop/platform/mac/Cargo.toml, line 4:
<comment>Removing the `description` field without a workspace replacement loses the crate description. The workspace `[workspace.package]` does not define `description`, so this crate will now have no description metadata.</comment>
<file context>
@@ -1,12 +1,12 @@
-edition = "2024"
-rust-version = "1.87"
+# Inherited from workspace - start
+version.workspace = true
+license.workspace = true
+authors.workspace = true
</file context>
| license.workspace = true | ||
| authors.workspace = true | ||
| edition.workspace = true | ||
| publish.workspace = true |
There was a problem hiding this comment.
P3: The description = "Graphite Desktop" field was removed without inheriting one from the workspace, so the crate now has no description. Workspace [workspace.package] does not define a description field, so this is a net loss. Other migrated crates here (editor, desktop/wrapper) never had descriptions, so they weren't affected.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At desktop/Cargo.toml, line 8:
<comment>The `description = "Graphite Desktop"` field was removed without inheriting one from the workspace, so the crate now has no description. Workspace `[workspace.package]` does not define a `description` field, so this is a net loss. Other migrated crates here (editor, desktop/wrapper) never had descriptions, so they weren't affected.</comment>
<file context>
@@ -1,12 +1,12 @@
+license.workspace = true
+authors.workspace = true
+edition.workspace = true
+publish.workspace = true
+# Inherited from workspace - end
</file context>
No description provided.