-
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
add script, which set QED dependencies of QED dependencies to the development version in integration tests #41
Conversation
31615f1
to
9fbd6c2
Compare
the test PR for this function is here: QEDjl-project/QEDcore.jl#35 |
9fbd6c2
to
93b91f9
Compare
1d0c90f
to
22f9099
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is good and fixes the issue. I think it's still necessary to keep the pipeline of integration tests that test against released version for merges to main, since those versions will themselves be released and need to work with the other registered packages.
The only exception would be releases to main with required simultaneous releases because of breaking changes.
I disagree because we only guaranty two thinks.
So the question is, if we test the our projects with the dev and the last release version of the dependencies, what we want to do, if the last release is not working? And also what is the benefit if we know that our current dev branch breaks with the release version of another package but not with the dev version? |
Do we guarantee this currently? That's what I was suggesting, that we should test merges to main (which will be officially released right after) against the released versions of everything else, not their dev branches. If we do that already then I didn't realize that. |
Yes, because if we release we freeze all dev branches and create the new release version from it. The CI guaranties that all dev branches works together. There is only the exception, if a QED project has no changes and the dev branch is still equal to the last release. Therefore we do not need to do a release. |
@AntonReinhard How continue with this PR? Uwe will be back in September. |
@SimeonEhrig I know we discussed the freeze of all devs for a full release in a very early stage of the project. However, at this point, I don't understand our conclusion from the past anymore 😅 Here are some thoughts from my side, how the integration tests should work (somewhat the dream state): If a PR is opened targeting the
If a PR is opened targeting These two pipelines are somewhat similar, but the difference is: the first workflow is very strict with fixes to guarantee interoperability of released versions. The second (currently used) workflow has some states, where packages do not work together, e.g. of the downstream fix is not merged yet, which is fine for @AntonReinhard @SimeonEhrig what do you think? |
I agree. I think the problem with freezing the dev branches is that we would have to release every package every time we want to release any package. And releasing does take some time, plus it would probably end up bloating the versions unnecessarily.
As you say later, this means we will still need the option to change the branch we test against for merges to |
Actually no, the tests for PRs targeting |
Okay, that just means then that sometimes it will be somewhat difficult to release (as with the QEDcore move), but it should always be possible, you're right. So then @SimeonEhrig I think all that should be done here is to have two separate pipelines, where for
|
Okay, if the target branch is |
What do you mean with that? We already have workflow to handle feature branches, or am I wrong? 🤔 |
I mean, if you want to merge a feature branch in another feature branch and not the dev branch. |
In the current contribution policy, this could only happen on a fork, not in the main repo. I think for such cases, we don't provide CI support? |
It's more a implementation question. Ether I implement if $TARGET_BRANCH == "main"
// use registered packages
else
// use dev version or if $TARGET_BRANCH == "main"
// use registered packages
elif $TARGET_BRANCH == "dev"
// use dev version
else
error("unsupported") |
I think the first option makes the most sense. Use registered packages for PRs to |
a166828
to
e444309
Compare
e444309
to
6270ead
Compare
…cies to dev branch version depending on the target branch - if the target branch is main, use released QED dependencies - if the target branch is not main, use the dev branch versions of the QED dependencies - add also an script to determine the PR target branch in the GitLab CI
6270ead
to
6f0752d
Compare
The script is used in other repositories to generated integration tests. Therefore I need to open PRs in another repositories to test it.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
6f0752d
to
12b1d7b
Compare
As soon the PR is merged, other QED projects needs to rerun the CI pipeline to use the function.
fix #36