Re: MBI (Playground 2.0)

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

 



On Thu, Jan 31, 2019 at 11:16 PM Kevin Fenzi <kevin@xxxxxxxxx> wrote:
> > https://pagure.io/fesco/issue/2068
> >
> > And, after all, those packages shouldn’t be shipped to users.
>
> This of course means however that users who want to build their own
> verions of the applications or whatever can't start from our repos, they
> have to use whatever setup we use for developing them. I don't know any
> answers here but it seems to me we keep making it harder for people to
> use Fedora to develop applications.

All packages built in MBI are meant to be eventually contributed back
to Fedora. Just like developing a package on your own system and
building in local mock. Eventually you push the code to dist-git and
rebuild packages in Fedora Koji. With MBI the difference is that
people can collaboratively devlop changes and they have scalable build
infrastructure.

> >    Separate Koji + Koschei deployed in Fedora infrastructure cloud;
>
> Turns out we are going to be retiring our cloud, so no, this is not a
> place to put it. :)

Cloud doesn't necessarily mean OpenStack. There are other options. For
example, a baremetal, out-of-warranty virthost in an isolated network
would work - better that OpenStack.

MBI was ran this way (baremetal server with KVM guests) for some time.
But it was a private setup, usably only by a few people. Among other
things it was used for GCC removal from buildroot change - all
packages were mass-rebuilt several times and then build logs were
scanned to see which packages failed due to missing gcc/g++ and would
need to have BuildRequires added. The change was eventually pushed to
Fedora.

> >    People can have their own targets where they can break things as they
> >    wish without affecting others;
>
> Would that be entirely self service? Or ?

No, I would be setting up these tags/targets myself, manually.

> >    Package changes are eventually contributed to Fedora proper by merging
> >    changes to Fedora dist-git and rebuilding packages in official Fedora Koji;
>
> Where is the source for the changes from? Would this need it's own
> pagure/src/dist-git? Or would it pull from PR's in prod dist git? Or ?

Changes would be kept somewhere, depending on packager preferences.
Ideally in a publicly-available git repository where people can
collaborate. Ideally in a fork on src.fedoraproject.org to make sure
that contributors have FPCA signed. Giving myself as example, I have
forked all my packages and created "mbi" branches for them, for
example: https://src.fedoraproject.org/fork/mizdebsk/rpms/ant/commits/mbi

> > Idea №3: Building packages for multiple distributions
> >
> > In Rust ecosystem, we managed to get have same packaging guidelines in
> > openSUSE, Mageia and Fedora. We could automatically build some packages on
> > multiple distributions and be kinda upstream.
>
> So, this setup will need to distribute things... would it need mirrors
> as well? or ?

Nothing is distributed to end users. This system is for use by Fedora
contributors - packagers/QA/etc. Of course anyone interested is able
to download these packages, but they are not meant for end users. Just
like Koji scratch builds are not meant for end users, but anyone can
download them and use in production, if they like.

> >    A few builders constantly running, with a possibility to add more
> >    builders as needed and as available cloud resources allow
>
> koji doesn't have much way to dynamically deal with builders...

Koji builders can be added and removed dynamically very easily. Adding
a builder in public cloud is as easy as spawning some VM, installing
koji-builder, putting config file in place and starting kojid - of
course automated using Ansible. Removing a builder only requires
terminating the VM, nothing more. Adding a builder that is installed
on your laptop is as easy as booting up the VM containing in, that's
it.

> >    Possibility to have some builders running outsides of Fedora
> >    infrastructure - contributed by proposal owners
>
> I'd be carefull of this, as it can cause a lot of issues, but of course
> up to you as you are doing the work. :)

The idea was to have just a few builders (eg. 3) running constantly.
If someone wants to do massive amounts of builds (and have them
complete quickly) then they can plug in their own hardware or
instances in public cloud that they would pay for, which would be
added to a separate Koji channel. Then their builds would use their
builders. Builders have very low requirements - in particular they
don't need public IP, can be behind firewall/NAT and only need to talk
to hub over https. Even someone's personal laptop could be used as a
builder.

> >    Koji builds can be done from SCM (src.fp.o, pagure.io, github, …) or
> >    from SRPM upload
>
> Ah, so it would not have it's own git/pagure?

No. Builds would be allowed from any configured SCM - it could be from
forks on src.fedoraproject.org, from repositories on pagure.io,
repositories on other git hosting services. It's up to people using
the system to choose the workflow that suits them best. They could
even build from SRPM uploads.

> >    It is not official build system of Fedora which is not helping with Problem
> >    №2: Testing of new rpm/koji/mock features/configuration
> >    <https://docs.google.com/document/d/1DtNTCa-gXc0ILDDHPyAcAca2GGGlENavfgPwGGgqJ_Y/edit#heading=h.iodoq4xw80c2>
>
> Note that if you also are testing new things you could break packagers
> that are trying to do other work...

Testing new features would be done in separate tags. So no, others
would not be affected.

> >    By building only on a single, fast architecture.
>
> This may well bite you when you merge back to koji and build for all
> arches.

I don't see this as a problem.Most of the packages that we are
planning to build in MBI (Java/Rust/Go) are noarch anyway.

> Overall sounds very nice... we will have to work out details if everyone
> is on board with it. Do note that it's going to be a lot of work for you
> all... :)

Actually there's not that much work. Most of the work is already done.

I've developed and I'm running MBI setup myself in AWS, using my
personal account. Others liked this workflow and asked whether they
could use it. I kindly refused as I can't pay for all that myself.
Then we come up with a proposal to have this hosted by Fedora.

--
Mikolaj
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
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@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