SK-2869 automate dependency upgrades - #224
Closed
skyflow-bharti wants to merge 1 commit into
Closed
Conversation
|
✅ Gitleaks Findings: No secrets detected. Safe to proceed! |
|
Semgrep Findings: Issues with Error level severity are found (Error is Highest severity in Semgrep), Please resolve the issues before merging. |
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.
WHY
Dependency updates were tracked manually with no guardrails. Two problems:
GOAL
Introduce a 14-day cooling period policy and fully automate the monthly upgrade cycle, while keeping humans in control of the final merge decision.
Changes
scripts/check-deps.js(new)Reads
package.json, queries the npm registry for each dependency, and finds the latest stable version published ≥ 14 days ago.node scripts/check-deps.js): prints a report and exits 1 if any package is outdated. No file changes.--apply): writes the bumped versions topackage.json. Used by the monthly workflow.dependency, or major bump of core toolchain (typescript,jest,eslint,react,@babel/core, etc.)scripts/validate-deps.js(new)PR gate. Checks every pinned version in
package.jsonagainst its npm publish date.COOLING_DAYSenv var (default:14)..github/workflows/validate-deps.yml(new)CI gate that runs
validate-deps.json every PR touchingpackage.jsonagainstmainorrelease/*.Prevents any version younger than 14 days from reaching main.
.github/workflows/dependency-upgrade.yml(new)Monthly workflow (1st of every month, 09:00 UTC) that runs the full upgrade cycle and opens a draft PR automatically. Also triggerable manually via
workflow_dispatch.Flow:
npm install --ignore-scripts)check-deps.js --apply— bumps compliant versions inpackage.json, captures the reportnpm installto regenerate the lockfilenpm installfails withERESOLVE(peer dep conflict after a major bump) →continue-on-error: truekeeps the job alive; conflict details are appended to the PR body with diagnosis and fix optionschore/monthly-dep-upgradecontaining:What this does NOT do
alpha,beta,rc,canary, etc.).validate-deps.ymlon the resulting PR.Testing locally