-
Notifications
You must be signed in to change notification settings - Fork 6
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
Modular support #11
base: master
Are you sure you want to change the base?
Modular support #11
Conversation
I've currently gotten as far as getting several of the functions to deal with modules, then extracting and parsing modulemd data from koji to get the list of component RPMs with associated info for each. I need advice on how to proceed with syncing the modular components. |
50da415
to
ef525ce
Compare
README.md
Outdated
@@ -140,6 +140,9 @@ configuration: | |||
modules: | |||
source: "%(component)s.git#%(stream)s" | |||
destination: "%(component)s.git#%(stream)s-fluff-42.0.0-alpha" | |||
rpms: | |||
source: "%(component)s.git#%(stream)s" |
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.
I'd drop the %(stream)s here; if anything, it could be %(ref)s which we also discussed but since we're looking for the modulemd-provided ref in the entire source repo, I'd leave it blank like in the defaults/rpms section.
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.
Thanks! I'll make that revision, and also correct the description of the format strings below to make it clear that %(name)
and %(ref)
can only be used in the module sub-component defaults.
de747d7
to
523ebb8
Compare
e8b023d
to
e5a1315
Compare
There's a few small isolated details that need to be looked at yet (commented with |
I think I got the tag syncing corrected now. @contyk I'm taking away the "WIP" in the PR title now. Please review. |
…d import Make flake8 failure fatal in tox.ini
Signed-off-by: Merlin Mathesius <mmathesi@redhat.com>
9f54bec
to
48a8aab
Compare
I gave this a decent read, except for the tests where I just trust you :) My only comment would be on the Otherwise I'd say we're good to merge this. Maybe @hanzz may have some comments, too, though. |
Signed-off-by: Merlin Mathesius <mmathesi@redhat.com>
and fetch_upstream_repo() Signed-off-by: Merlin Mathesius <mmathesi@redhat.com>
Signed-off-by: Merlin Mathesius <mmathesi@redhat.com>
Thanks for the review!
After a little research into that, it appears that the I also pushed a small additional commit to eliminate unnecessary parameters being passed to |
Signed-off-by: Merlin Mathesius <mmathesi@redhat.com>
Signed-off-by: Merlin Mathesius <mmathesi@redhat.com>
Two additional commits were just pushed. The first commit fixes a small pre-existing bug that the mandatory |
Signed-off-by: Merlin Mathesius <mmathesi@redhat.com>
Signed-off-by: Merlin Mathesius <mmathesi@redhat.com>
Two additional commits were just pushed. The first commit corrects a race condition in the previously added unit tests for the repo manipulation functions. The second commit corrects a bug with an incorrectly formed scmurl being used when submitting a module build to the MBS. (eg., the name of the git repo was being specified as |
Correct unmangled component name in debug message Signed-off-by: Merlin Mathesius <mmathesi@redhat.com>
No objections from me. I think we should merge this so that OSCI can start refactoring to make it suit their needs. |
One additional commit was just pushed to add logic to skip the MBS generated *-devel modules. Otherwise errors are thrown because there is no corresponding SCM |
FYI, I will start work on adding this to our distrobuildsync and distrogitsync so we can deploy this internally and do some possible tests. I will also opensource distrobuildsync and distrogitsync after that - let's discuss the best way how to do that separately. |
@mmathesius , reading the code more deeply while backporting it to distrogitsync, I have some extra questions. It seems the synced (downstream) module uses the original (upstream) modulemd file. If upstream module contains a component built from the This means that the sync at first syncs the I think this is somehow fragile. Imagine two modules using the component from the very same The same situation can happen if module build uses component from Another example is if first module uses particular commit hash for component (does the current PR supports it?) and second uses the branch name. This also makes the module build sync hard to replicate in case of any downtime of any service. Imagine the internal MBS or Brew is down and we cannot sync the first module. If this happens and there are some commits done to I understand it is not easy or maybe even not possible to sync modules in some better way, but at the same time I think this proposed way is too fragile. I believe RFE for MBS to allow specifying particular commit hashes of components included in a modulemd file which would then be used instead of the original ref would be way to go here. That way, we could just keep If you are not against this approach, I would do a PR against MBS to support this. |
Some cleanup of the code to fix all old flake8 complaints, then work in progress for modular support.