Skip to content

build(metadata): cleanup project.properties usage#559

Draft
MattSturgeon wants to merge 2 commits into
MinecraftFreecam:mainfrom
MattSturgeon:cleanup-modmetadata-for-gradle-10
Draft

build(metadata): cleanup project.properties usage#559
MattSturgeon wants to merge 2 commits into
MinecraftFreecam:mainfrom
MattSturgeon:cleanup-modmetadata-for-gradle-10

Conversation

@MattSturgeon

@MattSturgeon MattSturgeon commented Jul 26, 2026

Copy link
Copy Markdown
Member

project.properties is deprecated since Gradle 9.6, for removal in Gradle 10.

Migrate to sc.properties and take advantage of SCElement.to<type>() for simplifying deserialization.


This approach is blocked by stonecutter#56, because rawOrNull does not include "less specific" properties in the SCElement result:

project.path // ⇒ :forge:1.17.1
sc.properties.rawOrNull("reqs") // ⇒ {mc: ~1.17.1}
sc.properties.rawOrNull("reqs", "cloth") // ⇒ ^5

For these properties:

["1.17.1"]
reqs.cloth = "^5"
reqs.fabric_loader = ">=0.12.11"
reqs.forge_version = ">=37"
reqs.forge_loader = ">=37"
fabric.reqs.mc = "~1.17"
forge.reqs.mc = "~1.17.1"

…nships`

Drop deprecated usage of `project.properties`.

Replace manual key-segment marshaling with stonecutter's `to<type>()`.

Improve error handling for invalid relationship fields.
…deps`, `reqs` maps

Drop deprecated usage of `project.properties`.

Replace manual key-segment marshaling with stonecutter's `to<type>()`.
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