openSUSE / openSUSE-release-tools

Tools to aid in staging and release work for openSUSE/SUSE
GNU General Public License v2.0
59 stars 92 forks source link

Don't decline SRs from non-devel project for scmsync packages #2977

Closed dcermak closed 1 year ago

Vogtinator commented 1 year ago

This needs some explanation (commit message, code) IMO. I assume I know the answers to this, but not everyone might and my interpretation might even be wrong.

dirkmueller commented 1 year ago
  • What's the issue with the current code, which does not look at scmsync at all?

  • If the devel project isn't used for submission, why is it set at all in OBS?

Because the devel project also provides the functionality to build the same package for older distributions via additional repositories. that functionality (that many users care about as there are > 50% leap users) would otherwise get lost.

  • What's special about the https://src.opensuse.org/pool/{source_package} path?

its the location of where the sources of a package are authoritatively living once git workflow has been activated.

Vogtinator commented 1 year ago
  • What's the issue with the current code, which does not look at scmsync at all?

  • If the devel project isn't used for submission, why is it set at all in OBS?

Because the devel project also provides the functionality to build the same package for older distributions via additional repositories. that functionality (that many users care about as there are > 50% leap users) would otherwise get lost.

That's orthogonal, I'm just referring to the <devel project="some:where" package="foo"/> property in the openSUSE:Factory/foo package meta. If the package is from git, this could simply be omitted?

  • What's special about the https://src.opensuse.org/pool/{source_package} path?

its the location of where the sources of a package are authoritatively living once git workflow has been activated.

dirkmueller commented 1 year ago

That's orthogonal, I'm just referring to the <devel project="some:where" package="foo"/> property in the openSUSE:Factory/foo package meta. If the package is from git, this could simply be omitted?

How do you know that its from git? "somewhere" that information needs to come from, until we have switched over completely. plus the information of devel projects is still useful for package maintainership rights handling.

Eventually we can switch over user access control to git but its still a long way to get there. it would be good to be able to start somewhere. do you have a better suggestion?

Vogtinator commented 1 year ago

That's orthogonal, I'm just referring to the <devel project="some:where" package="foo"/> property in the openSUSE:Factory/foo package meta. If the package is from git, this could simply be omitted?

How do you know that its from git? "somewhere" that information needs to come from, until we have switched over completely. plus the information of devel projects is still useful for package maintainership rights handling.

At some point the scmsync property is set on those packages in oS:F and the devel prop removed. Until then the submissions will be from the devel prj I imagine?

Eventually we can switch over user access control to git but its still a long way to get there. it would be good to be able to start somewhere. do you have a better suggestion?

dirkmueller commented 1 year ago

At some point the scmsync property is set on those packages in oS:F and the devel prop removed. Until then the submissions will be from the devel prj I imagine?

maybe, that will be a longer road though, because it means we need to reimplement staging outside buildservice. currently staging and all the bots operate on submitrequest, and submitrequests do not work with scmsyncs. so we can't set this right now.

Setting it in the devel project instead still keeps the functionality of devel projects alive plus makes it obvious that this package is no longer maintained in the devel project but elsewhere (and srs to devel project will fail, which is a feature in that regard).

dcermak commented 1 year ago

I've changed the bot to now check the name of the source project and grab the allowed sources from OBS as well instead of hardcoding them.

dcermak commented 1 year ago

Max Lin @.***> writes:

@nilxam commented on this pull request.

@@ -62,6 +62,8 @@ def target_project_config(self, project): self.allow_valid_source_origin = str2bool(config.get('check-source-allow-valid-source-origin', 'False')) self.valid_source_origins = set(config.get('check-source-valid-source-origins', '').split(' ')) self.add_devel_project_review = str2bool(config.get('check-source-add-devel-project-review', 'False'))

  • self.allowed_scm_submission_sources = set(
  • config.get('allowed-scm-submission-sources', 'devel:Factory:git-workflow:staging').split(' '))

Yes, the default value should be empty.

Done