feat(build): register deepslate shared-base contract (#77) - #235
Merged
Merged
Conversation
There was a problem hiding this comment.
Blockers
4caf321(commit message): The body is a single unwrapped 497-character line restating the diff, which breaches N6-COMMIT-05 (body optional, a line or two, wrapped at 72). The repo squashes withCOMMIT_MESSAGES, so this lands onmainverbatim. Cut the body to one or two lines wrapped at 72 (or drop it) and keep the detail in the PR description.
Nits
- PR title /
4caf321subject: "deepslate and strata shared-base contracts" names two contracts, but only one is registered (block/deepslate.svg→deepslate_base;strata_platesis a subgroup inside it). Retitle to e.g.feat(build): register deepslate shared-base contract (#77). - PR body: No reference to #77, whose acceptance criterion "Strict base deepslate contract established for all deepslate ores" this PR delivers, and the repo PR template (Affected Assets, checklist) is not used. Add
Refs #77(notCloses, since the bedrock/cobbled deepslate criteria are still open) and fill the template. textures/block/deepslate.svg:L24,textures/block/deepslate.svg:L70: Whitespace-only lines with trailing spaces, against.editorconfigtrim_trailing_whitespace = true. Make them empty.CONTRIBUTING.md:L132-L153: The "Ore & Material Consistency" section still describes the shared-base contract as stone-only (stone_base,stone.svg). Add that deepslate-variant ores derive fromtextures/block/deepslate.svgand must copy<defs>and<g id="deepslate_base">, and must be added to that entry'sderivativeslist.
Deepslate-variant ores now derive from block/deepslate.svg and are drift-checked against its defs and deepslate_base group at build time. Signed-off-by: Bharath <bharathasl74185@gmail.com>
BharathASL
force-pushed
the
feat/base-sync-strata-contract
branch
from
September 23, 2026 19:15
4caf321 to
1e9d807
Compare
There was a problem hiding this comment.
Blockers
None.
Nits
textures/block/deepslate.svg:L9: "<defs>(if any)" contradicts the registry.sharedSectionslistsdefs, andcheckBaseSyncfails a derivative with no<defs>("missing the shared section "), so an ore author who takes "if any" at its word fails the build. Drop "(if any)"; derivatives must copy the (currently empty)<defs>block too.tools/base-sync.json:L9-L12: The stone entry'ssharedSectionsis reflowed from one line to four with no content change. This is churn in an entry the PR does not otherwise touch. Restore["defs", "group:stone_base"]and use the same one-line form for the deepslate entry atL21-L24.tools/base-sync.json:L19: The deepslatedescriptionleaves out the rule the stone entry states: anything shared must sit inside a listedsharedSectionsentry, or nothing compares it. Add that sentence so both base entries give the same guidance.
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Registers
block/deepslate.svgas a second shared-base master intools/base-sync.json, so deepslate-variant ores are drift-checked against it the same way stone-variant ores are checked againstblock/stone.svg. The marker group isdeepslate_baseand the shared sections aredefsandgroup:deepslate_base.derivativesstarts empty because no deepslate ore has been authored yet; each one is added to that list as it lands.textures/block/deepslate.svgnow carries the contract surface: the slate base fill, the crevice drop shadows and the strata plates sit inside<g id="deepslate_base">, a root<defs>block is present for parity with the stone master, and the file carries the shared-base header. The rasterizeddeepslate.pngis byte-identical tomain(SHA-2565441591454358407d003ce9678cb6215a4b357497cc51e5dc1fcdfd35dd8cfa1before and after), and the tiling audit reports zero seam discontinuity.tools/test/base-sync.test.mjscovers the new registry entry, the shipped master's compliance, and a deepslate derivative harness against mock SVGs: drift in the strata plates, the crevice shadows and the base fill is detected, and an unlisted SVG carrying<g id="deepslate_base">is rejected.CONTRIBUTING.md§3 "Ore & Material Consistency" now documents the deepslate base alongside the stone base, including which sections derivatives must copy and whichderivativeslist a new ore goes in.Refs #77. This delivers the "Strict base deepslate contract established for all deepslate ores" criterion; the bedrock strata and cobbled deepslate criteria remain open.
Affected Assets
textures/block/deepslate.svgtools/base-sync.jsontools/test/base-sync.test.mjsCONTRIBUTING.mdType of Change
feat: New vector texture master, blockstate, or compiler capabilityfix: Tiling fix, palette correction, or bugfixdocs: Documentation improvementchore/refactor: Maintenance, dependencies, or codebase cleanupContributor Checklist
Vector Texture Standards (if adding/modifying SVGs)
viewBox="0 0 512 512").main.Build & Verification
npm run buildlocally and verified that the pack compiles successfully.dist/.Git Hygiene & Standards
feat(textures): ...).git commit -s).mainwith no merge commits..editorconfig(2-space indent, LF endings, trailing newline).