chore: retire the scene pool and contest subsystem - #3495
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Coverage Report for CI Build 33883079775Coverage increased (+0.4%) to 56.014%Details
Uncovered Changes
Coverage Regressions2 previously-covered lines in 1 file lost coverage.
Coverage Stats💛 - Coveralls |
decentraland-bot
left a comment
There was a problem hiding this comment.
Review: chore: retire the scene pool and contest subsystem
Clean, well-scoped removal of the scene pool / contest subsystem. −1772 / +19 across 55 files. All CI checks pass (tests, audit, Vercel deploy), and coverage increased +0.5% to 56.8%.
Security Review
✅ No security issues found. The PR only removes code — no new attack surface, no secrets, no auth changes, no new inputs.
Correctness
✅ All pool/poolGroup Redux modules fully removed from root reducer, root saga, and RootState type.
✅ No dangling references to deleted symbols (PoolState, PoolGroupState, getCurrentPool, getActivePoolGroup, PreviewType.POOL, ContestModal, LOAD_PUBLIC_PROJECT_*, fromRemotePool, fromPoolGroup).
✅ DeployModal behavior change is correct: the old if (view === DEPLOY_TO_LAND || currentPoolGroup) shortcut to the land view is safely removed since currentPoolGroup no longer exists.
✅ ProjectCard correctly drops the type prop — loadProjectSceneRequest defaults to PreviewType.PROJECT.
✅ PreviewType.PUBLIC is still used (project/sagas.ts), correctly kept.
✅ Intentionally retained deployToPool* in deployment/sagas.ts and PoolDeploymentAdditionalFields in builder.ts — all imports resolve; clean scope boundary for a separate cleanup.
Consumer Impact
No public API surface changed. All changes are internal to the builder app.
Git Conventions (ADR-6)
✅ chore: retire the scene pool and contest subsystem — valid semantic commit title.
Findings
[P2] Orphaned deployment_modal.pool.title key — src/components/Modals/DeployModal/DeployToLand/DeployToLand.tsx:211 still calls t('deployment_modal.pool.title') ("Publish your Scene"). The en/es/zh translation files retain the "pool": {"title": "..."} key specifically for this. Consider renaming to a non-pool key (e.g. deployment_modal.land.publish_title) and deleting the pool translation entry entirely. Low priority — works fine as-is.
[P2] Dead ShareModalType.POOL enum value — src/components/Modals/ShareModal/ShareModal.types.ts still defines POOL = 'pool', but it is no longer referenced anywhere (its only consumer was the deleted ContestModal). Safe to remove.
[P2] Likely dead NewsletterSource.PUBLISH_POOL — src/lib/api/newsletter.ts:7 defines PUBLISH_POOL = 'builder-publish-pool', which appears unreferenced after the pool deploy flow removal.
[P2] Empty comment block — src/modules/analytics/track.ts:173 has a bare // Like comment after removing LIKE_POOL_REQUEST. Can be cleaned up.
[P2] Stale copy — en.json:862 SDK download description mentions "download scenes from the scene pool and templates" — references the sunset feature.
Verdict
✅ Approved — no P0 or P1 issues. All findings are minor P2 cleanup items that can be addressed in a follow-up. The removal is thorough, consistent, and well-documented.
Reviewed by Jarvis 🤖 · Requested by Gabriel Díaz (<@U03MGHMAJL8>) via Slack
5c78cb0 to
ec8312a
Compare
ec8312a to
eec4b04
Compare
eec4b04 to
ec8312a
Compare
ec8312a to
f29f692
Compare
Remove the now-unreachable pool/contest feature: delete modules/pool, modules/poolGroup, and ContestModal, and stop the startup fetchPoolGroups by unforking their sagas. Drop the dead public-project load flow, the pool API methods, the pool option in DeployModal, the PreviewType.POOL enum member, and the getPoolProjects branch in ProjectCard. Keep the unpublish (CLEAR_DEPLOYMENT) path and deployToPool (still referenced by the deployment saga) intact.
f29f692 to
86fa535
Compare
Description
Follow-up cleanup on the web scene editor sunset stack: retire the scene pool / contest subsystem. Its UI (pool gallery, scene/pool viewers, contest submission) was removed in earlier layers, but the data layer was left behind —
poolGroupSagastill fetched pool groups from the API on every app startup, andmodules/pool/modules/poolGroup/ContestModalplus their wiring were still compiled in. This removes all of it. Net −1772 lines / +19 across 55 files. No user-facing behaviour change — everything removed was already unreachable.Type of Change
Changes Made
src/modules/pool/,src/modules/poolGroup/, andsrc/components/Modals/ContestModal/; unregisteredContestModalfrom the modal registry.poolSaga/poolGroupSagaroot-saga forks — the startupfetchPoolGroupsrequest is gone.LOAD_PUBLIC_PROJECT_*,handleLoadPublicProject) and the now-unused pool API methods (fetchPublicProject,fetchPoolsPage,fetchPoolGroups,likePool, and the pool remote-mappers/types).ProjectCard: droppedgetPoolProjectsand thePreviewType.POOLbranch — thetypeprop is gone; scene loading uses thePROJECTdefault.DeployModal: removed the pool/contest bits (DeployToPoolsubview,DEPLOY_TO_POOL,currentPoolGroup, the pool option) — the unpublish (CLEAR_DEPLOYMENT) path and theDEPLOY_TO_LAND/DEPLOY_TO_WORLDviews are untouched.PreviewType.POOLenum member (keptPUBLIC/PROJECT), pool analytics entries, the pool bits inprofile/selectorsandscene/utils, and the dead pool/contest i18n trees (en/es/zh).Kept, still referenced by live code:
deployToPool+PoolDeploymentAdditionalFieldsin the builder API and thedeployToPool*deployment actions/saga (modules/deployment/sagas.ts). These are likely dead too now, but they live in the deployment flow — leaving them for a separate deployment/publish cleanup rather than widening this PR.How to Test
fetchPoolGroups/ pool request anymore.npx tsc --noEmitclean;npx jestfull suite green (1576/1576);npm run buildsucceeds.…menu → Unpublish opensDeployModal(CLEAR_DEPLOYMENT) and clears it./sceneslists/opens/downloads/deletes scenes normally.Checklist
Related Issues
Top of the web scene editor sunset stack. Base:
sunset/6-template-cleanup.Screenshots
No UI change — removal of unreachable pool/contest code + a dropped startup request.