Dependencies on non-default variants (was: GSoC 2019 [Collect build statistics])

Mojca Miklavec mojca at macports.org
Mon Mar 25 06:56:29 UTC 2019


Dear Craig,

> As you said, people have looked at this problem and not found a workable solution.

Personally I never did spend any effort into fixing this, partially
probably also because it doesn't affect any ports that I use or
maintain.

> It may be a _long_ time before a “proper” solution is implemented.

You don't need a 100% perfect solution, but something that works.

What buildbot setup could do, is check which variants are required for
a particular port. It could then perhaps install
    p5.28-dbd-mysql +mariadb
explicitly, which could at least work for direct dependencies; getting
it to work correctly in a recursive way would be a bigger challenge.

Again, by far the easiest solution would be to fix ports in a way that
no port requires a non-default variant to be active. You didn't yet
answer my question: what prevents the dependencies of MythTV to change
their default variants, so that your ports would work out of the box?

> In the meantime, reporting these as failed builds *actively misinforms* users.

This has been the case for years already.

> When you say there will be the same problem “on a different page”, I don’t know what you mean.

One of the project ideas is to make buildbot logs and summaries more
useful, directly from the buildbot views:
    https://trac.macports.org/ticket/55978
While we could internally waste weeks doing ugly workarounds to make
some ports artificially look pretty, I'm not going to ask developers
of buildbot to implement workarounds to allow cheating and report the
same build as both broken and successful at the same time. If you
don't want your port to be reported as broken, fix either the port(s),
the base, or the buildbot configuration.

An example of a buildbot configuration fix (that didn't actually take
a lot of time to do) is that we no longer build obsolete ports (we
used to do that in the past and got zillions of errors, in particular
when modifying the graveyard ports).

> And if we can implement a workaround, why can’t we share it with this other page?

Because I don't want to implement "build is both working and broken at
the same time" functionality in buildbot.

> Why would we have different pages reporting the same information?

It's not exactly the same. We are already reporting that "your" ports
are broken, in both buildbot and on the GitHub interface (when you
browse the commits). It's just that finding a particular port in the
buildbot is currently almost a mission impossible, so as a consequence
nobody knows which ports are broken and which ones work, except if you
check your own commits immediately a few hours after doing the commit,
or read the archives of build failures sent by buildbot. The
improvements on the buildbot site are meant to make the buildbot's
interface itself useful (which it currently isn't, except for checking
the last few builds), while the standalone app would provide a
plethora of other information (installation statistics, which ports
are outdated, which ones are broken, which websites are broken, ...),
just collected on one single place.

> > My argument is that we need to fix ports and base to avoid those
> > failures, not to explain them away.
>
> I don’t disagree.  I guess I’m not as optimistic that this will be done quickly.

It needs someone to push for a fix, someone to come up with a decend
idea for the fix, and someone to actually implement it (it could be
the same person). If you take the first two tasks on you, even if you
don't know how to code in the base yourself, there's a high chance
that you'll get help with the last part. If nobody is pushing nor
suggesting what to do, this will likely not be done as fast.

I'm just arguing that if we get a student working on the web app, I
would prefer if he or she would perhaps spend time adding novel
functionality, which could even be allowing user comments on each port
(which you could use to explain why the port appears to be broken)
rather than on something that should be fixed elsewhere. (I wouldn't
mind the student spending time fixing that particular bug in buildbot
configuration or in base if comfortable with the code, but I would
definitely not want to demand from the student to fix this issue as
part of the project. I'm pretty sure that we'll have plenty more
serious problems that nobody is even aware of yet. And if it would be
easy to fix in the web app, we'll gladly accept any patches.)

Mojca


More information about the macports-dev mailing list