Skip to content

Use cargo workspace to remove duplicated version, license, and author fields#4226

Open
timon-schelling wants to merge 1 commit into
relicensefrom
use-more-cargo-workspace
Open

Use cargo workspace to remove duplicated version, license, and author fields#4226
timon-schelling wants to merge 1 commit into
relicensefrom
use-more-cargo-workspace

Conversation

@timon-schelling

Copy link
Copy Markdown
Member

No description provided.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread desktop/Cargo.toml
license = "MIT OR Apache-2.0"
repository = ""
edition = "2024"
rust-version = "1.87"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The rust-version constraint was removed during the workspace migration. Please add rust-version.workspace = true to ensure the package adheres to the workspace's Rust version constraint.

Suggested change
rust-version = "1.87"
rust-version.workspace = true

Comment thread desktop/bundle/Cargo.toml
license = "MIT OR Apache-2.0"
repository = ""
edition = "2024"
rust-version = "1.87"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The rust-version constraint was removed during the workspace migration. Please add rust-version.workspace = true to ensure the package adheres to the workspace's Rust version constraint.

Suggested change
rust-version = "1.87"
rust-version.workspace = true

license = "MIT OR Apache-2.0"
repository = ""
edition = "2024"
rust-version = "1.87"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The rust-version constraint was removed during the workspace migration. Please add rust-version.workspace = true to ensure the package adheres to the workspace's Rust version constraint.

Suggested change
rust-version = "1.87"
rust-version.workspace = true

license = "MIT OR Apache-2.0"
repository = ""
edition = "2024"
rust-version = "1.87"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The rust-version constraint was removed during the workspace migration. Please add rust-version.workspace = true to ensure the package adheres to the workspace's Rust version constraint.

Suggested change
rust-version = "1.87"
rust-version.workspace = true

license = "MIT OR Apache-2.0"
repository = ""
edition = "2024"
rust-version = "1.87"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The rust-version constraint was removed during the workspace migration. Please add rust-version.workspace = true to ensure the package adheres to the workspace's Rust version constraint.

Suggested change
rust-version = "1.87"
rust-version.workspace = true

license = "MIT OR Apache-2.0"
repository = ""
edition = "2024"
rust-version = "1.87"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The rust-version constraint was removed during the workspace migration. Please add rust-version.workspace = true to ensure the package adheres to the workspace's Rust version constraint.

Suggested change
rust-version = "1.87"
rust-version.workspace = true

Comment thread editor/Cargo.toml
name = "graphite-editor"
publish = false
version = "0.0.0"
rust-version = "1.88"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The rust-version constraint was removed during the workspace migration. Please add rust-version.workspace = true to ensure the package adheres to the workspace's Rust version constraint.

Suggested change
rust-version = "1.88"
rust-version.workspace = true

name = "graphite-wasm-wrapper"
publish = false
version = "0.0.0"
rust-version = "1.88"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The rust-version constraint was removed during the workspace migration. Please add rust-version.workspace = true to ensure the package adheres to the workspace's Rust version constraint.

Suggested change
rust-version = "1.88"
rust-version.workspace = true

name = "node-macro"
publish = false
version = "0.0.0"
rust-version = "1.88"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The rust-version constraint was removed during the workspace migration. Please add rust-version.workspace = true to ensure the package adheres to the workspace's Rust version constraint.

Suggested change
rust-version = "1.88"
rust-version.workspace = true

Comment thread proc-macros/Cargo.toml
name = "graphite-proc-macros"
publish = false
version = "0.0.0"
rust-version = "1.88"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The rust-version constraint was removed during the workspace migration. Please add rust-version.workspace = true to ensure the package adheres to the workspace's Rust version constraint.

Suggested change
rust-version = "1.88"
rust-version.workspace = true

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

13 issues found across 49 files

Confidence score: 4/5

  • The biggest functional risk is in desktop/Cargo.toml, desktop/wrapper/Cargo.toml, and desktop/embedded-resources/Cargo.toml, where rust-version appears 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 — restore rust-version.workspace = true (or explicit rust-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, and node-graph/libraries/canvas-utils/Cargo.toml) lost description metadata that is not provided by [workspace.package], which can degrade publish/discovery quality and crate metadata completeness — add per-crate description values or define a workspace description strategy before merge.
  • The PR-title policy findings linked via desktop/platform/mac/Cargo.toml are 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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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>

Comment thread editor/Cargo.toml
homepage = "https://graphite.art"
repository = "https://github.com/GraphiteEditor/Graphite"
license = "MIT OR Apache-2.0"
# Inherited from workspace - start

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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>

Comment thread desktop/Cargo.toml
license.workspace = true
authors.workspace = true
edition.workspace = true
publish.workspace = true

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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>
Suggested change
publish.workspace = true
publish.workspace = true
rust-version.workspace = true

@@ -1,10 +1,12 @@
[package]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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>

Comment thread desktop/Cargo.toml
license.workspace = true
authors.workspace = true
edition.workspace = true
publish.workspace = true

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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>

@Keavon Keavon changed the title Use cargo workspace to remove dublicated version, license and author fields Use cargo workspace to remove duplicated version, license, and author fields Jun 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant