On Tue, Feb 12, 2019 at 11:03 AM Miro Hrončok <mhroncok@redhat.com> wrote:
On 12. 02. 19 10:47, Brian (bex) Exelbierd wrote:
>
>
> On Tue, Feb 12, 2019 at 10:17 AM Tom Hughes <tom@compton.nu
> <mailto:tom@compton.nu>> wrote:
>
>     So basically the module squad have managed to ensure that everything
>     that relies on ant to build is going to have to modularise or else be
>     forced out of the distribution then...
>
>     Fortunately that only includes one thing of mine and that's just some
>     java bindings that I can drop but forcing libreoffice out of Fedora on
>     the hill of modularisation will certainly be an achievement of sorts.
>
>
> They say the easiest way to learn the right answer is to post the wrong answer
> on the internet. Here is my “wrong” answer that I hope someone will correct so
> my context on this thread is correct.
>
> As a user who wants to run a piece of software:
>
> * I can run software like LibreOffice in a flatpak that works like a container
> (not identically) and I can get it via a dnf-like command line tool or the GUI
> software store. When I run the app I can’t tell it is in a flatpak. If the app
> isn’t graphical I can generally achieve the same effect with a container and
> some knowledge of container runtime configuration.
>
> * I can enable a module that provides the software using a dnf command. At that
> point the dnf command installs the software as though it was in the “everything”
> repo. Once the enable command is run I can’t tell that the software is delivered
> as a module.
>
> As a developer who relies on a dependency that is module only:
>
> * I can build in containers and on my local machine by enabling the module. This
> causes dnf and dependency installs to work as though the contents of the module
> were in the “everything” repo.
>
> * Today, I cannot build packages for the “everything” repo that have runtime or
> build dependencies on modules. Work is being done to allow build dependencies
> that are in a module to be used.
>
> Overall, as a user, to a large degree, the delivery mechanism (rpm,
> container/flatpak, and module) doesn’t affect me, except briefly at install.
>
> Overall, as a developer, today if my dependencies are modules, I have to build a
> module. Tomorrow if my runtime dependencies are modules I have to build a

(anchor)

> module, but otherwise I can build an “everything” repo rpm. I can deliver via
> container or flatpak today no matter what.
>
> As a system administrator, if my machines have internet access I may have to
> learn a few new commands, but it all works. If my machines are getting their
> software indirectly, my experience will vary based on whether my indirection
> server can handle modules, flatpaks and containers.
>
> Is this close to right?
Pretty much, with one subtle difference.

It' not tomorrow (see: anchor). It's in undefined future. And we are breaking
things now, before that future comes. Not for the first time.

I believe that we do not allow things to break because of packages being completely moved out into modules. See the nodejs in f29 example: even though we have a nodejs:10 module, there are still nodejs 10 packages in the Everything so they are available in the buildroot. Once we fix the problem and add default module streams to the buildroot, we can set the nodejs:10 module as a default and remove the traditional packages from the Everything repo.

Please note that for local builds that's already functional. The only thing you need to do is to add the Modular repo to your mock config. (We haven't done that by default as it wouldn't be consistent with the infra builds.) The Modularity Team is now working on enabling that in the infra. People might have seen discussions around something called "ursa-major" that could to that, but it wasn't a very popular solution, so we're working on an alternative. But this is a priority.


(I know anyone can unbreak it by claiming the packages, but that's not the point
here.)

I might be missing something here, so excuse me if that's obvious, but wouldn't this happen without Modularity anyway? I mean, how does Modularity relate to packages being orphaned? Or is that because they have been moved out into modules and their maintainers stopped building them for Everything?


--
Miro Hrončok
--
Phone: +420777974800
IRC: mhroncok
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-leave@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org


--

Adam Šamalík
---------------------------
Software Engineer
Red Hat