You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Top of the stack: #322 → #325 → #326 → this. Retarget to main as the parents merge.
🚨 The schema table was stale in every row
#295 bumped every product groups schema and the README table was not updated.
Battery read v2.0.0 – v2.6.0 (actually v2.7.0), electronics – v1.2.0
(v1.4.0), textile and furniture – v1.2.0 (v1.3.0), and the five-group row – v1.1.0 (v1.2.0). Every row wrong.
Corrected, and a line added pointing at product-groups/*.json as the real
home — this table is hand-maintained and has now been behind twice.
New: the identifier is not a GTIN
A section under Key Features covering the three EN 18219 clause 5 schemes,
because the interesting part is not the mechanism but who it lets in: requiring a GTIN is requiring GS1 membership. Schemes 2 and 3 are
self-issuing, and modelling only scheme 1 quietly excludes every manufacturer
without a Company Identification Number.
It also states the distinction that caused a live defect: a carrier is not an
identifier. A Digital Link happens to contain a GTIN; a scheme 2 or 3 carrier
does not, and reading one out of the other is how an internal UUID ends up
submitted to a public authority.
New: how to write a plugins validate_input
The plugins section now shows require_product_identifier and says plainly not
to reach for require_gtin, which reads a flat top-level key that product group
data no longer carries.
The same change goes into crates/dpp-plugin-sdk/README.md, where it replaces a todo!() placeholder — and that one is doctested, so the example compiles on
every run and cannot drift from the API the way the schema table did. Verified: cargo test --doc -p dpp-plugin-sdk passes.
Verification
just check green, 1561/1561, plugins formatted and linted, bans ok, licenses ok, sources ok.
Rebased onto main (#322, #325 and #326 have all landed; delta conserved exactly).
Verified the table rather than trusting it — every one of the twelve rows matches what crates/dpp-domain/schemas/*/ actually ships, including the two easy ones to get wrong: battery's v1.0.0 → v2.0.0 gap (there is no v1.1.0) and the twelve-group count. The SDK README example compiles under cargo test --doc, which is the part that keeps it from drifting the way the table did.
One line added: just check in the README's quick-start block still read fmt + clippy + test + doctests + plugins + doc + audit, and check has since gained plugin-gates-self-test (#325) and lock-check (#326). It now names the lockfile gate. This is the same hand-maintained-summary drift the schema table just demonstrated, one block further down the same file.
just check green, 1564/1564, 3 lockfiles match their manifests., bans ok, licenses ok, sources ok.
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
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.
Top of the stack: #322 → #325 → #326 → this. Retarget to
mainas the parents merge.🚨 The schema table was stale in every row
#295 bumped every product groups schema and the README table was not updated.
Battery read
v2.0.0 – v2.6.0(actually v2.7.0), electronics– v1.2.0(v1.4.0), textile and furniture
– v1.2.0(v1.3.0), and the five-group row– v1.1.0(v1.2.0). Every row wrong.Corrected, and a line added pointing at
product-groups/*.jsonas the realhome — this table is hand-maintained and has now been behind twice.
New: the identifier is not a GTIN
A section under Key Features covering the three EN 18219 clause 5 schemes,
because the interesting part is not the mechanism but who it lets in:
requiring a GTIN is requiring GS1 membership. Schemes 2 and 3 are
self-issuing, and modelling only scheme 1 quietly excludes every manufacturer
without a Company Identification Number.
It also states the distinction that caused a live defect: a carrier is not an
identifier. A Digital Link happens to contain a GTIN; a scheme 2 or 3 carrier
does not, and reading one out of the other is how an internal UUID ends up
submitted to a public authority.
New: how to write a plugins
validate_inputThe plugins section now shows
require_product_identifierand says plainly notto reach for
require_gtin, which reads a flat top-level key that product groupdata no longer carries.
The same change goes into
crates/dpp-plugin-sdk/README.md, where it replaces atodo!()placeholder — and that one is doctested, so the example compiles onevery run and cannot drift from the API the way the schema table did. Verified:
cargo test --doc -p dpp-plugin-sdkpasses.Verification
just checkgreen, 1561/1561, plugins formatted and linted,bans ok, licenses ok, sources ok.