Re: FreeCAD dist-git check, WAS:Re: Aggressive updating (Python 3.9): Are we trying to hard?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, May 22, 2020 at 01:28:14PM +0200, Aleksandra Fedorova wrote:
> On Fri, May 22, 2020 at 9:29 AM Petr Pisar <ppisar@xxxxxxxxxx> wrote:
> >
> > I'd like to point out that there is a difference in the enviroments between
> > these two approaches.
> >
> > While the manual procedure only installs a binary package (and its
> > dependencies), the OSCI procedure installs all binary packages produced by the
> > source package (and their depenencies).
> 
> You are right here. Jenkins pipeline tries to install all packages
> from the koji build before running the test.
> 
> And this approach has already hit us many times: there are packages
> where binary subpackages conflict with each other (as in curl), or
> where different tests require different subpackages to be installed.
> There is also a case for reverse dependency check, where we would like
> to run test suite from a package A to test the package B, where the
> koji build we are installing is different from what is expected by the
> test.
> 
> In Fedora CI SIG we are discussing if we should just disable this
> functionality and make it mandatory to specify all packages explicitly
> in the tests.yml under "required_packages" tag, as in [1]
> 
> The downside is:
>  you would need to maintain list of required packages in the tests.yml
> 
> We haven't brought this topic to a wider audience yet, but we should.
> 
I don't have the statistics, but I believe that most of Fedora packages only
produce one binary package.

With that assumption, I would recommend defaulting to installing all of the
binary packages of the build. If there were a conflict, the installation would
fail, and a maintainer would fix the test by specifying the required_packages
explicitly. I.e. the required_packages tag should change a semantacs. Instead
of "the additional packages" it would mean "install these package only". In
other words the required_packages tag would default to the list of binary
packages produced by the build being tested.

That's my ideal approach from point of view of a package maintainer. Of course
I have no idea how difficult the implement is. Maybe it conflicts with the
currecnt OSCI design.

Regarding the case when a test of reverse dependcy fails because the build has
changed, I think it is a standard situation of breaking a compatibility and
the test should fail and the maintainer should decide what to do. E.g. to
move the update into a side tag and adjust the reverse dependency there.

> > In case of freecad, it does not matter, because the freecad component has only
> > one binary package. But in general it's not true.
> >
> > And here I'd like to ask Aleksandra whether the same applies to modules or
> > not. In general case, a module build produces two binary modules - a non-devel
> > module and a devel module. Does OSCI install components from both of them? And does
> > it install the components explicitly, or does it rather install a default
> > profile of the module ("dnf module install" command)?
> 
> We don't have test for modules yet in Fedora CI.

The thing is that producing the devel modules is a matter of MBS
configuration and I feel that Fedora does not produce them in contrast to
CentOS.

> So I would say the question here is:
> 
> how do you like it to work?
> 
> We can do "dnf module install" but then the same issues would appear:
> if you need additional flexibility to test parts of the module, you
> would need to revert this default behavior somehow.
> Or we can do nothing and only provide environment with repositories
> with the updates. So that configuration of the environment is done in
> the test metadata.
> 
The devel modules very often contain the pacakges that are only used for
building the non-devel module and building very often includes running unit
tests. That means that running tests for a module, will very probably need
packages from the devel module. Especially when the tests try to
reproduce the unit tests from the build time.

Since the non-devel module is supposed to work without the devel module, it
makes sense to run the tests by default without the devel module. To get to
the production environment as close as possible. On the other hand there will
be a need for having an acccess to the devel module packages.

I would not install the devel module by default, but provide a way of enabling
the devel module when needed.

Your question can also be understand as whether to preinstall all packages
produced by a module. Regardless of the mythical (in Fedora) devel modules.

On the one hand, modules are perceived as a cohesive group of packages. On the
other hand, I cannot preclude that somebody will create a module with curl
and the conflicting subpackages inside. I think I would resort to the same
approach as with the non-modular packages. Default to installing everything
with an option for overriding it to an explicit list.

-- Petr

Attachment: signature.asc
Description: PGP signature

_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux