Repository navigation
chore: upgrade @dcl/schemas to 27 - #498
Merged
Merged
Conversation
Test this pull request
|
LautaroPetaccio
added this pull request to stack #501
October 14, 2026 17:21
decentraland-bot
approved these changes
Oct 14, 2026
decentraland-bot
left a comment
Contributor
There was a problem hiding this comment.
Review: approve
This bumps @dcl/schemas to ^27.3.0 with no source changes. Install, build, lint and 210/210 tests pass, and the runtime closure stays at 49 packages with no new names.
What I checked
- Validation surface. The only validation call is
Entity.validateinbuildEntityAndFile, whichbuildEntityandbuildEntityWithoutNewFilesboth reach. In 27.3 the Entity schema addsuniqueItemsonpointers, butmetadatais stillobject. The tighter scene-parcel and AuthChain rules therefore never run on the client, and there is noAuthChain.validatecall insrc. - Duplicate pointers. Catalyst already rejects these server-side (
@dcl/content-validatorentity-structure: "There are repeated pointers in your request", present from 5.6.1 through 8.1.0). The new throw makes a deploy that would fail anyway fail earlier, on the client. It only newly breaks code that builds entities with duplicated pointers without deploying them.
Findings
- [P2] Release notes. Mention the earlier duplicate-pointer error in the next release notes.
- [P2] Two schema copies at runtime. The runtime tree now has
@dcl/schemas@27.3.0plus@dcl/schemas@25.3.0; the second comes via@dcl/crypto@3.7.0(^25.2.0). This duplication already existed (23 + 25), so it's not new. As a follow-up, consider bumping@dcl/cryptoto schemas 27, or making@dcl/schemasa peer dependency in a future major, so consumers share one copy.
Reviewed by Jarvis 🤖 · Requested by Lautaro Petaccio (<@U025WCHLMN3>) via Slack
Bump @dcl/schemas from ^23.0.0 to ^27.3.0. The Entity, EntityType, AuthChain, ContentMapping and Profile type declarations are unchanged between 23 and 27, so no source changes are needed and the published .d.ts is identical. Runtime: Entity.validate now requires unique pointers, so buildEntityAndFile rejects entities with exactly duplicated pointers instead of producing them.
@dcl/crypto 3.8.0 depends on @dcl/schemas ^27.3.0, so the nested schemas 25 copy is gone and the runtime tree has a single schemas.
LautaroPetaccio
force-pushed
the
chore/upgrade-dcl-schemas-27
branch
from
October 14, 2026 18:47
fe8b669 to
80a2eae
Compare
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.
Stacked on #496.
Bumps
@dcl/schemasfrom^23.0.0to^27.3.0.What changed in schemas 23 → 27 that matters here
Entity,EntityType,AuthChain,ContentMappingandProfiledeclarations are byte-identical; majors 24–26 only touched events and spring-bone types.Entity.validaterequires uniquepointers,AuthChainis capped at 10 links with 100 KB payload/signature, scene parcels must be canonical and unique.Code changes: none besides
package.json/yarn.lock.Public types:
dist/**/*.d.tsis identical to a build of #496 (onlydist/package.jsondiffers).Runtime:
buildEntity,buildEntityAndFileandbuildEntityWithoutNewFilesnow throw on exactly duplicated pointers instead of producing such an entity.Release notes:
buildEntity/buildEntityAndFile/buildEntityWithoutNewFilesnow throwGenerated entity is not valid(must NOT have duplicate items) whenpointerscontains duplicates (schemas 27uniqueItems). Catalysts already reject these deployments server-side (content-validator entity structure check: "There are repeated pointers in your request"), so this only moves the failure before upload.Consumer impact: not breaking at the type level. A consumer pinned to schemas 23 (with 27 nested under the client) type-checks under
strictwhen passing its ownEntity,EntityType,AuthChainandContentMappingtoDeploymentBuilder,deployandfetchEntitiesByPointers; cross-version assignment works both ways. Also bumps@dcl/cryptoto^3.8.0(decentraland/core-libs#78), which depends on@dcl/schemas@^27.3.0, so the runtime tree now has a single schemas copy instead of 27 + 25.Tests: build, lint and 210/210 tests pass.