Skip to content

Remove eepsmedia plugin code, leave tombstone (CODAP-1423) - #162

Merged
kswenson merged 1 commit into
masterfrom
CODAP-1423-remove-eepsmedia-references
Aug 1, 2026
Merged

kswenson merged 1 commit into
masterfrom
CODAP-1423-remove-eepsmedia-references

Conversation

@kswenson

@kswenson kswenson commented Aug 1, 2026

Copy link
Copy Markdown
Member

Removes the eepsmedia plugin code now that it lives in concord-consortium/eepsmedia, and leaves a tombstone in its place. Completes the monorepo-cleanup half of CODAP-1423.

What changed

File Change
eepsmedia/ 250 files deleted; tombstone README.md added
bin/build dropped from STATIC_PLUGIN_DIRS / HIDDEN_DIRS; added a warning banner at end of run
bin/update-strings dropped ./eepsmedia/plugins/scrambler from TRANSLATED_PLUGIN_ROOTS
CLAUDE.md, plugins.md point at the new repo; also drop the stale "Webpack" description of Scrambler/Testimate/Simmer, which never used webpack
src/data_interactive_map.json unchanged — deliberately
published-plugins.json unchanged — deliberately

The point of deleting rather than leaving the code in place is to remove the possibility of someone committing plugin changes to the wrong repo and the two copies drifting. Git history preserves the contents in both repos.

Why the plugin map was left alone

CODAP-1423's description says to remove the eepsmedia entries from src/data_interactive_map.json. That instruction is wrong and this PR deliberately does not follow it.

bin/build generates published-plugins.json from select(.isStandard=="true"), and CODAP V2 reads that file as its plugin menu (apps/dg/core.js:191). V2 serves plugins from folders co-located with the built application — it does not read from S3, and having it point at the new S3 locations is explicitly not a goal. So those two files describe what a V2 build should contain.

If another V2 build is ever needed, the right fix is to copy the plugin folders in manually. Delisting them instead would make the four plugins silently vanish from that build's menu.

Verified that published-plugins.json regenerates byte-identical from the unchanged map, so this is stable across future builds.

The tradeoff

A V2 build now requires manual intervention, and nothing fails loudly if it is skipped — the build succeeds and the four plugins simply 404 from the plugin menu. So bin/build ends every run with a warning banner spelling out what to copy and where.

The banner leads with the server-side copy after deploy, which reuses the fallback the codap-v2-build skill already applies to any plugin that fails to build. Copying locally also works but is harder: the folders must land in extn/plugins/eepsmedia/ after codap/bin/makeExtn finishes and before the zip is sealed, because makeExtn rsyncs into extn/plugins with --delete and bin/build does rm -rf on its own working directory — so neither earlier destination survives.

Companion PR in the codap repo adds this as an explicit step to the codap-v2-build skill.

Verification

  • published-plugins.json regenerates byte-identical from the unchanged map
  • bash -n bin/build, sh -n bin/update-strings pass; banner rendered to confirm formatting
  • every remaining STATIC_PLUGIN_DIRS / HIDDEN_DIRS / TRANSLATED_PLUGIN_ROOTS path exists
  • the copyStaticPlugins rsync stage completes with exit 0
  • confirmed nothing is lost: the only files here and not in the new repo are the 27 vendored neilfraser-js-interpreter files, deliberately removed under CODAP-1460

Not run: a full bin/build (it would npm ci in four sibling repos), and not a V2 build — the timing rule above was derived from reading makeExtn/makeCodapZip, not from running one.

Known leftovers, intentionally untouched

  • build/static/js/main.a099b830.chunk.js — checked-in CRA build of the plugin browser with the old map bundled in, so grep eepsmedia still hits. Regenerated by that app's build.
  • The gh-pages branch still holds all 250 files. No automated sync exists, so it was unaffected; its plugin-browser links will break whenever it is next regenerated from master.

⚠️ Unrelated but worth knowing: syncing a V2 build's extn/plugins/ to s3://codap-resources/plugins/ with --delete would now see plugins/eepsmedia/ as an orphan and delete the live V3 plugins. Sync per-plugin, not the whole prefix. --exclude does not protect keys from --delete — it strands them.

🤖 Generated with Claude Code

The eepsmedia plugins (Choosy, scrambler, simmer, testimate) were extracted to
concord-consortium/eepsmedia on 2026-07-31 and now deploy directly to
s3://codap-resources/plugins/eepsmedia/ via per-plugin git tags. Keeping a second
copy here invites divergent commits, so the contents are deleted and replaced by a
tombstone README. Earlier history remains in this repo's git log and in the new repo.

Deliberately NOT changed: src/data_interactive_map.json and published-plugins.json.
Those describe what a CODAP V2 build should contain, and V2 serves plugins from
folders co-located with the built application rather than from S3. Delisting them
would silently drop the plugins from a future V2 build's menu. Verified that
published-plugins.json regenerates byte-identical from the unchanged map.

The tradeoff is that a V2 build now needs manual intervention, and nothing fails
loudly when it is skipped -- the plugins simply 404 from the plugin menu. So
bin/build ends every run with a warning banner spelling out what to copy and where.

The banner leads with the server-side copy, done after deploy, which reuses the
fallback the codap-v2-build skill already applies to any plugin that fails to
build. Copying locally also works but is harder: the folders must land in
extn/plugins/eepsmedia/ AFTER codap/bin/makeExtn finishes and BEFORE the zip is
sealed, because makeExtn rsyncs into extn/plugins with --delete and bin/build does
rm -rf on its own working directory, so neither destination survives an earlier
copy. The call chain is codap/bin/makeCodapZip -> codap/bin/makeExtn ->
codap-data-interactives/bin/build.

- eepsmedia/: 250 files deleted, tombstone README.md added
- bin/build: drop from STATIC_PLUGIN_DIRS and HIDDEN_DIRS (dirs no longer exist,
  rsync would fail); add warnEepsmediaNotBuilt() banner at end of run
- bin/update-strings: drop ./eepsmedia/plugins/scrambler from TRANSLATED_PLUGIN_ROOTS
- CLAUDE.md, plugins.md: point at the new repo; also drop the stale "Webpack"
  description of Scrambler/Testimate/Simmer, which never used webpack

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR removes the in-repo eepsmedia/ plugin sources now that they live in concord-consortium/eepsmedia, replacing them with a tombstone README and updating build/docs so the monorepo no longer builds/copies those plugins while still keeping them listed for potential CODAP V2 builds.

Changes:

  • Deleted the eepsmedia/ plugin code and added eepsmedia/README.md as a tombstone with V2 build copy instructions.
  • Updated bin/build to stop copying eepsmedia plugins and print a prominent end-of-run warning about manual V2 build steps.
  • Updated translation/docs references (bin/update-strings, CLAUDE.md, plugins.md) to point to the new repo and remove stale build/translation info.

Reviewed changes

Copilot reviewed 78 out of 255 changed files in this pull request and generated no comments.

Show a summary per file
File Description
bin/build Removes eepsmedia from build-copy lists and adds a warning banner about required manual V2 steps.
bin/update-strings Drops eepsmedia/plugins/scrambler from translated-plugin roots and documents the move.
CLAUDE.md Updates repo architecture/build/translation docs to reflect the eepsmedia move and tombstone.
plugins.md Updates deployment metadata to indicate eepsmedia plugins now deploy from the new repo.
eepsmedia/README.md Adds tombstone README explaining the move and how to handle CODAP V2 builds.
eepsmedia/** (deleted) Removes the old eepsmedia plugin source tree from this monorepo.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@kswenson
kswenson merged commit e8b6980 into master Aug 1, 2026
1 check passed
@kswenson
kswenson deleted the CODAP-1423-remove-eepsmedia-references branch August 1, 2026 02:34
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.

2 participants