-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Process: Automatically open PRs against upstream projects before/on release #2912
Comments
In general I agree with the idea of getting early/immediate integration, but one pain point is that our users (e.g. pubsub users) are not necessarily ready to adopt the new go-libp2p release without going through their testing process. |
Upstream projects (e.g., pubsub) can just not merge the PRs if not ready. On the other hand.... libp2p releases tend to include important security fixes. |
yes, i agree and i am quite concerned about this. |
but lets not forget that they also have a tendency to break things... sigh. |
Breaking changes seemed to have died down quite a bit. But also note: this will help catch unintentional breaking changes. |
yeah... all we need now is a volunteer. It is a non invasive procedure, with less than 99% chance of implosion creating a microscopic blackhole that devours the earth. |
If we can reach agreement that this is a good idea, we can ask IPDX to take a crack at it when we next schedule a round of work with them. |
yeah, lets do it -- just no automerge of the pr, even if it passes the tests. Some maintainer has to merge it. |
I think it's a nice idea. Should we start with go-libp2p-kad-dht and go-libp2p-pubsub first and then expand to kubo and lotus after we've had some experience? |
Instead of opening a PR for each project, we could have the pipeline simply pull the projects and execute the tests within the pipeline. In case of a failure, we could then open a PR in the respective project with the identified error. |
That won't work well for large projects with complex workflows (kubo, boxo, lotus, go-ethereum, etc.). |
I'm in favor of the general idea here. I think this should apply to major/minor releases, but not patch releases. Patch releases are often very small and targeted and important to get out quickly. Major/minor releases are what have the current defined release pipeline.
@Stebalien can you elaborate on what you mean here? How would we automate the process you describe? |
Totally agree. |
Now that releases are done through automation, we don't have to manually make the PRs. Instead, we use github actions triggered by draft/final releases and make the PRs via some bot account. |
We used to have a section in the release process that talked about testing releases against upstream CI before releasing. That was removed, unfortunately, which has led to a few regressions (or, at least, broken tests): #2911, #2910.
However, now that we have the release flow, we should be able to completely automate this.
Idea:
Ideally we'd find a way to link those PRs back to the release PR so we can track CI progress.
Projects we should check against (for now):
If this flow seems to work, there's no reason we can't add more projects later.
The text was updated successfully, but these errors were encountered: