CORE-2855: drop codecov, code climate, greenkeeper and pyup - #3139
Conversation
The codecov npm package (3.8.3) was deprecated in 2021 and its upload has been failing silently since; node 14 reported it as an UnhandledPromiseRejectionWarning and exited 0, so CI stayed green. Coverage is already enforced at 100% (branches/functions/lines/statements) by the jest coverageThreshold in package.json, which test:unit runs with --coverage both locally and in CI. Codecov added nothing on top of that, so remove it rather than mint an upload token for it: - drop the codecov devDependency and the codecov script - drop codecov.yml - ci:test:unit is now just the unit suite, so a real failure fails CI
RoyEJohnson
left a comment
There was a problem hiding this comment.
@OpenStaxClaude Go ahead and remove the code climate baggage in this PR, as well.
Code Climate is as stale here as codecov was. There is no test-reporter upload step anywhere in CI, so the Test Coverage badge has been reporting on nothing, and .codeclimate.yml only ever excluded spec files from an analysis nobody reads. - delete .codeclimate.yml - drop the Maintainability and Test Coverage badges from the README Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Done in c3c25f0 — It was in the same shape as codecov: no Two things a commit here cannot reach, flagging rather than guessing:
PR description updated to match. Marking ready for review once checks report. |
RoyEJohnson
left a comment
There was a problem hiding this comment.
Do the pyup and Greenkeeper baggage as well.
Both services are dead here. Greenkeeper shut down in 2020 and its successor never ran on this repo; pyup has no config and no CI step. Dependency bumps arrive via Dependabot instead (#3134, #3135), which covers both the JS and the e2e_tests python side. - delete greenkeeper.json - drop the Updates (pyup) and Greenkeeper badges from the README That was the last of the badges, so the README now opens on the title. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Done in 7dccbe7 — Both were dead in the same way as the other two: Greenkeeper shut down in 2020 and its successor was never set up here; pyup has no config file and no CI step, just a badge. What actually bumps dependencies on this repo is Dependabot — #3134 for the So the branch is now four commits, one service each:
One thing still outside what a commit can reach: if the Code Climate GitHub app (or a lingering Codecov/pyup authorization) is still installed on the repo, it will keep running on push regardless of the deleted configs — that needs uninstalling from repo/org settings. Title and description updated to match the wider scope. Watching checks now; will take it out of draft when they are green. |
There was a problem hiding this comment.
🟢 Approval recommended
The removals are internally consistent, leave the enforced Jest coverage threshold intact, and introduce no unresolved issues.
Pull request overview
Removes obsolete code-quality and dependency-update integrations while retaining Jest’s enforced coverage gate.
Changes:
- Removes Codecov integration and orphaned dependencies.
- Deletes unused Code Climate and Greenkeeper configurations.
- Removes stale service badges from the README.
File summaries
| File | Description |
|---|---|
package.json |
Removes Codecov dependency, script, and CI upload step. |
yarn.lock |
Removes Codecov’s orphaned dependency graph. |
README.md |
Removes obsolete service badges. |
codecov.yml |
Deletes unused Codecov configuration. |
.codeclimate.yml |
Deletes unused Code Climate configuration. |
greenkeeper.json |
Deletes retired Greenkeeper configuration. |
Review details
- Files reviewed: 5/6 changed files
- Comments generated: 0
- Review effort level: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Jira: CORE-2855
Started as "drop Codecov rather than fix the upload"; grew, on review, into retiring every dead code-quality/dependency service still wired into this repo. Four of them, one commit each.
Why deletion instead of a fix
The
codecovnpm package pinned at 3.8.3 was deprecated by Codecov in 2021, and its upload has been throwingTypeError: result.split is not a functionfor some time — nothing has landed on Codecov since. Node 14 surfaced that as anUnhandledPromiseRejectionWarningand exited 0, so theTest (unit)job stayed green and the failure was invisible. From node 15 on, unhandled rejections are fatal, which is how #3138 found it.Fixing it properly means swapping in
codecov/codecov-action, and v4+ wants aCODECOV_TOKENthat this repo does not have. That is not worth it, becausetest:unitalready runsjest --coverageagainst acoverageThresholdof 100% on branches, functions, lines and statements — locally and in CI. A dip in coverage already fails the build; Codecov was reporting on a gate that is enforced harder upstream of it.Pulling that thread found three more services in the same state — a config file and/or a badge, and nothing in CI feeding them.
Changes
Codecov (80f6b59)
codecovdevDependency (and its now-orphaned transitive deps fromyarn.lock)codecovnpm scriptcodecov.ymlci:test:unitis nowCI=true npm run-script test:unit— no trailing upload step, nothing swallowed, a genuine failure fails CICode Climate (c3c25f0)
.codeclimate.ymlMaintainabilityandTest Coveragebadges from the READMEThere is no
cc-test-reporterupload step anywhere in CI (.github/workflows/,concourse/,jenkins/,Makefile), so theTest Coveragebadge has been rendering a number nothing produces, and the config only ever excluded*spec.ts(x)from an analysis nobody reads.Greenkeeper and pyup (7dccbe7)
greenkeeper.jsonUpdates(pyup) andGreenkeeperbadges from the READMEGreenkeeper shut down in 2020, and its successor was never set up here. pyup has no config file and no CI step — just a badge. Dependency bumps actually arrive via Dependabot (#3134 for the
e2e_testspython side, #3135 for JS), which covers what both of these were nominally for.That was the last badge in the README, so it now opens on the title.
Verification
grep -riforcodecov,codeclimate,greenkeeperandpyupacross the repo returns nothing outside coincidental base64 substrings inyarn.lockintegrity hashes. No build, CI or lint step referenced any of the deleted files, so every removal here is inert — the only behavioural change in the whole PR is thatci:test:unitno longer ends in a broken upload.Notes
openstax/rex-webit will keep analysing pushes and may keep posting a status regardless of the deleted config. Same for any lingering Codecov/pyup app authorisation. Uninstalling those is an org/repo settings action that a commit cannot do — flagging it rather than leaving it implied.ci:test:unitline to make the upload non-fatal as a stopgap. Whichever merges second needs a trivial conflict resolution; if this one lands first, CORE-2853: upgrade node 14 -> 22 #3138 should drop its stopgap hunk, since there is no longer an upload to guard. Nothing else in this PR touches anything CORE-2853: upgrade node 14 -> 22 #3138 changes.