-
Notifications
You must be signed in to change notification settings - Fork 3
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
multiple companions #3
Comments
AFAIU this script should be added to cumulus CI, too |
As demonstrated by https://gitlab.parity.io/parity/substrate/-/jobs/1182722#L141, all companions mentioned in the description are considered
It is true that we do not patch transitive dependencies. Given how the merge order works (paritytech/parity-processbot#327) in that case you should describe the Cumulus companion in the Polkadot PR so that it gets merged after the Polkadot one. As a workaround for the Substrate check we can have some logic which skips the Cumulus check on Substrate if it is already specified in one of the companions (not even always possible because you can have a Cumulus PR which needs both the Substrate lockfile update and the Polkadot lockfile update) but it won't work flawlessly since things are not merged at the same time (the problem described in "Risk of desynchronization for merge failures") and so you could have the following scenario:
This scenario could be fixed by "predictable references" because we'd be able to merge the whole chain of PRs at the same time, but it implies a redesign of the companion build system. The monorepo proposal is radical but it does not sound bad either because we'd be able to get rid of the companion build system, which would be great. |
overcome the companion build system's shortcomings: #3 (comment)
overcome the companion build system's shortcomings: #3 (comment)
overcome the companion build system's shortcomings: #3 (comment)
This issue exists for multiple companions or also for when there is only a Polkadot companion. The problem is that when we check Cumulus, we don't use the Polkadot companion to replace the Polkadot crates, we only do this for the Substrate crates. The solution for this is rather simple, we should also replace the Polkadot crates using the Polkadot companion branch when checking cumulus. So for the Cumulus companion check of Substrate:
|
@bkchr thanks for the write-up. |
What other companions?
No, both are doing things. |
https://github.com/paritytech/pipeline-scripts/blob/9f2e909fad823eae317f2789aa7b7e4adc8df9ab/check_dependent_project.sh
seems to assume there's only one companion PR but there could be multiple. (polkadot and cumulus)
Also if there are then polkadot is going to want to bu pulled into the cumulus companion build.
UPDATE: multiple companions are supported and refer to each other. It is only the edge case of when there is no cumulus PR and yet there is a substrate PR that is not handled.
The text was updated successfully, but these errors were encountered: