Managing breaking changes upstream
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
Research direction
Start with issue 4090 and the proposed monorepo issue 4063, then inspect test-pr.yml and the _update-deps/runtimeverification/... branch convention. Decide which upstream-change strategy is in scope and define how its failure handling, staging, or revert flow would be validated across downstream repositories.
Written by the indexing model from the issue text.
Description
Currently, when we have breaking changes in upstream repos, it can cause blockages in merging things downstream. Here we are recording the issues: https://github.com/runtimeverification/k/issues/4090
There are three proposed solutions to this:
- Monorepo: https://github.com/runtimeverification/k/issues/4063.
- Auto-revert: When an
_update-depsjob fails, automatically open a PR into the upstream repo that reverts the given change there, and allow any developer to approve it so that it rolls the upstream repo back to a prior state. - Downstream testing: When a PR is approved for merge in an upstream repo, move it into a staging area and automatically open a PR downstream running the test-suite there. If that test-suite doesn't pass, kick the PR out of the staging area.
The monorepo for all of K solves this issue for dependencies of any depth, but the other ones only solve it for depth 1.
- Auto-revert approach: on
test-pr.yml, anything that should trigger auto-revert upstream adds afailureblock which:- Checks the branch. If it's
_update-deps/runtimeverification/..., then it figures out which repo sent that update, and tags the devops repo to open a PR into that repo with the revert of that latest commit.
- Checks the branch. If it's
- Dominant language
- Python
- Stars
- 591
- Forks
- 163
- PR merge metrics
- No merged PRs in 30d
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from runtimeverification/k
-
runtimeverification/k#4939 · 1 assignee ·
-
Concolic Explorer Open
Difficulty 5/5 Over a week Newbie friendliness 32/100
runtimeverification/k#4937 ·
-
Difficulty 5/5 Over a week Newbie friendliness 30/100
runtimeverification/k#4936 ·
-
type:epic
runtimeverification/k#4934 · 4 comments · 1 assignee ·
-
runtimeverification/k#4924 · 1 assignee ·
All issues in runtimeverification/k
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
bancolombia/sentinel#23 ·
-
test md OpenCI
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
-
integration:quickjs org:external priority:backlog topic:code-interpreter topic:middleware type:feature
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
langchain-ai/deepagents#6450 ·
-
bug client
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100