Cleanup our dependencies #3572
No reviewers
Labels
No labels
BE Request
Backlog
Better behavior
Blocked by deps
Bug
Code Review
Discussion
Doing
Feature Request / Enhancement
In the shining bright future maybe
It's complicated
MS Edge
Mememoon (or other niche browsers)
Missing API
Missing feature
Missing l10n/i18n
NL1
NL2
NL4
Need to verify on develop
RELEASE BLOCKER
Reassign or Close
Refactor
Regression
Safari
To Do
User story
Waiting on godot
accessibility
better documentation
chore
confirmed
easy ticket
incident
l10n update
mastoapi
mobile
needs design
needs-info
needs-review
stupid
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
pleroma/pleroma-fe!3572
Loading…
Reference in a new issue
No description provided.
Delete branch "weight-removal"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
vi.stubGlobal('fetch', ...)- it's much simpler to use and lets us actually test that fetch call has been made. It also makes our tests more consistent.Eventnow/oc review
opencode-agent:job=82:generation=1
Review of
develop→weight-removal(16 commits, 27 files, +1700/−7304)Reviewed the full base-to-head diff at
7bc4fd7b→a4f45f23, cross-checked against the live CI status, and did a local verification pass (anonymous clone of the exact head SHA,yarn install --frozen-lockfile,biome check, targeted vitest runtime checks).✅ Verified working
@babel/*,eslint, ornightwatchinsrc/,test/unit/,vite.config.js, orpackage.json..babelrc,eslint.config.mjs, the nightwatch e2e harness (test/e2e/*), and.gitlab-ci.ymlare all gone;yarn.lockshrank by ~7.3k lines. The stale// eslint-disablecomments and!!coercions were swept too.vue: "recommended"(so it covers Vue files, as claimed), andvite-plugin-eslint2→vite-plugin-biome(mode: 'check') invite.config.js— the plugin correctly surfaces diagnostics during test/dev runs.biome checkpasses on 684 files locally at this head.chai,sinon,sinon-chaiis sound. The retained chai-style assertions in specs (expect(x).to.have.property(...),expect(mock).to.have.been.calledWith(...)) resolve natively: vitest'sexpectis chai-based and@vitest/expect4.1.11 registersdefMethod("calledWith", "toHaveBeenCalledWith")(plusbeenis a core chai language chain). Confirmed empirically and against the greenci/woodpecker/pr/testpipeline on this commit.vite-plugin-vue-devtools) is wired into the plugin chain invite.config.js, alongside@vitejs/devtools/@vue/devtools-api..woodpecker/lint.yaml, node images move 20 → 24-alpine, andtest.yamldeliberately keeps thenpm install --global yarnworkaround (playwright image; the revert commit intentionally did not touch it).❌ Blocking/CI issue
ci/woodpecker/pr/changelogfails on this head. The diff adds nothing underchangelog.d/, buttools/check-changelogrequires an addedchangelog.d/*.{skip,add,remove,fix,security,change}file vs. the target branch. A dependency-cleanup entry (e.g.changelog.d/3572.addor.remove) — or an explicit.skipif intentionally omitted — would turn the pipeline green.⚠️ Worth a follow-up
@vue/compiler-sfcis pinned to exactly3.5.22whilevueis3.5.42, soyarn.lockcarries two full compiler trees (compiler-sfc/compiler-core/compiler-dom/compiler-ssr/sharedat both versions, the 3.5.22 one with its own@babel/parser). Aligning the pin to3.5.42would drop the duplicate tree — very much in this PR's spirit.pinia3 → 4,vue-router4 → 5,vue-virtual-scroller2-beta → 3. Green unit + e2e pipelines mitigate this, but these deserve a manual smoke pass of routing/virtualized lists in dev.engines.node >= 24,node:24-alpineCI images; per the "reduce node version to 24" commits, matching playwright's runtime). Worth updating the description so it matches what lands.Overall: the removal work is genuinely clean and well-verified by CI; the only concrete action item is the missing
changelog.dentry (already failing CI), plus the optional compiler-pin alignment./oc review
Benchmark
Note: yarn cache was used for dependency pulling
Develop
yarn && yarn build: Done in 6.13s; Done in 4.42s.This branch
yarn && yarn build: Done in 4.15s.; Done in 3.76s.Resulting build ends up just a tiny bit bigger than before, unfortunately
opencode-agent:job=83:generation=1
Review of
develop→weight-removal(19 commits, 52 files, +2332/−8668)Reviewed the full base-to-head diff (
7bc4fd7b→341803da) and reproduced the verification locally on Node v24.20.0 (fresh anonymous clone, exact head commit checked out).Verification performed (all green)
yarn install --frozen-lockfile— lockfile in syncyarn unit-ci(vitest 5, headless chromium) — 37 files, 471 passed / 2 skippedyarn ci-biome— 681 files clean ·yarn ci-stylelint— cleanyarn build— production client + service worker build OK341803da: build / changelog / lint / test / test-e2e all successDependency removals — checked for stragglers
Babel (incl.
.babelrc,@vue/babel-*), ESLint (config + 8 plugins +vue-eslint-parser+vite-plugin-eslint2), Nightwatch (+chromedriver,selenium-server,test/e2e/*), msw (+build/msw_plugin.js,test/fixtures/*),parse-link-header(kept@web3-storage/parse-link-header— now the only link-header parser, used inentity_normalizer), Chai/Sinon/sinon-chai,custom-event-polyfill, andquerystring-es3,url,express,function-bind,http-proxy-middleware,oxc,eventsource-polyfill,shelljs,connect-history-api-fallback,semver. Grep oversrc/,test/,build/,tools/: no remaining imports of any removed package. The.gitlab-ci.ymlremoval leaves no dangling references.Test migration (msw →
vi.stubGlobal('fetch'))The rewrites (
oauth.spec.jsis the big one) are a clear improvement: msw handlers became plainvi.fn()mocks, and assertions now check the actualfetchcalls (URL + options) instead of trusting an interceptor layer. One note: the legacyexpect(x).to.have.been.calledstyle still works only because Vitest bundles Chai with a sinon-chai-compatible integration (verified: these assertions pass under Vitest 5's bundled Chai; standalone Chai 6 rejects them). Fine today, just a hidden coupling worth knowing about.Non-blocking notes
chalk(bumped to 6 — already unused at base) andcross-spawn(its only consumer, the deletedtest/e2e/runner.js, is gone). Safe to drop in a follow-up.iso-639-1is imported fromsrc/but sits in devDependencies — pre-existing and harmless with Vite, but misclassified.>= 24with a changelog fragment; all Woodpecker images moved tonode:24-alpine;playwrightdevDep 1.61.0 matches the CI image tag. Downstream packagers will need Node 24 — the changelog entry covers that.@ruffle-rs/ruffleis pinned to a nightly (0.6.0-nightly.2026.9.4) — reproducible via the lockfile, but expect churn on future updates.vueDevTools()/biomePlugin({mode:'check'})are added unconditionally invite.config.js— both are no-ops outside dev serve, verified in the prod build output.Verdict
Positive. The PR does exactly what it describes, the codebase comes out cleaner, tests got stricter (real fetch-call assertions), and every check is green both live and locally reproduced. All notes above are optional polish, not blockers.