unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#33737: do not attempt to build a package known to be broken
@ 2018-12-14  4:41 Ricardo Wurmus
  2018-12-15 18:54 ` Björn Höfling
  2018-12-16 20:14 ` Danny Milosavljevic
  0 siblings, 2 replies; 6+ messages in thread
From: Ricardo Wurmus @ 2018-12-14  4:41 UTC (permalink / raw)
  To: 33737

The default use case is for users to have substitutes enabled and to
fetch binaries from a build farm.  The build farm tries to build all
packages, but not all builds succeed.  The daemon caches build failures.

This information, however, is not available for users.  The default
behaviour of Guix is to attempt building the package locally.  This is
fine for packages that the build farm hasn’t attempted yet, but it is a
waste of time when the build has already been attempted without success.

I propose that “guix publish” should also convey information about
failed builds.  The Guix client can then abort right away without
wasting time and power to attempt a doomed build.  Users may override
this with “--fallback” or a new option.

--
Ricardo

^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#33737: do not attempt to build a package known to be broken
  2018-12-14  4:41 bug#33737: do not attempt to build a package known to be broken Ricardo Wurmus
@ 2018-12-15 18:54 ` Björn Höfling
  2018-12-15 19:39   ` znavko
  2018-12-16 20:14 ` Danny Milosavljevic
  1 sibling, 1 reply; 6+ messages in thread
From: Björn Höfling @ 2018-12-15 18:54 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: 33737

[-- Attachment #1: Type: text/plain, Size: 645 bytes --]

On Fri, 14 Dec 2018 05:41:37 +0100
Ricardo Wurmus <rekado@elephly.net> wrote:

> The default use case is for users to have substitutes enabled and to
> fetch binaries from a build farm.  The build farm tries to build all
> packages, but not all builds succeed.  The daemon caches build
> failures.
> 
> This information, however, is not available for users.  The default
> behaviour of Guix is to attempt building the package locally.  This is
> fine for packages that the build farm hasn’t attempted yet, but it is
> a waste of time when the build has already been attempted without
> success.

+1

Very good idea.

Björn

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#33737: do not attempt to build a package known to be broken
  2018-12-15 18:54 ` Björn Höfling
@ 2018-12-15 19:39   ` znavko
  0 siblings, 0 replies; 6+ messages in thread
From: znavko @ 2018-12-15 19:39 UTC (permalink / raw)
  Cc: 33737

[-- Attachment #1: Type: text/plain, Size: 1049 bytes --]

Package can have additional fields in guix repository, like
architecture, version, buid_status, source_type
build_status may contain such info. 
source_type could show if the package source url is one of those public git services (thus, user could enable proxy first).


Dec 15, 2018, 6:54 PM by bjoern.hoefling@bjoernhoefling.de:

> On Fri, 14 Dec 2018 05:41:37 +0100
> Ricardo Wurmus <> rekado@elephly.net <mailto:rekado@elephly.net>> > wrote:
>
>> The default use case is for users to have substitutes enabled and to
>> fetch binaries from a build farm.  The build farm tries to build all
>> packages, but not all builds succeed.  The daemon caches build
>> failures.
>>
>> This information, however, is not available for users.  The default
>> behaviour of Guix is to attempt building the package locally.  This is
>> fine for packages that the build farm hasn’t attempted yet, but it is
>> a waste of time when the build has already been attempted without
>> success.
>>
>
> +1
>
> Very good idea.
>
> Björn
>


[-- Attachment #2: Type: text/html, Size: 2534 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#33737: do not attempt to build a package known to be broken
  2018-12-14  4:41 bug#33737: do not attempt to build a package known to be broken Ricardo Wurmus
  2018-12-15 18:54 ` Björn Höfling
@ 2018-12-16 20:14 ` Danny Milosavljevic
  2018-12-16 21:55   ` Ricardo Wurmus
  1 sibling, 1 reply; 6+ messages in thread
From: Danny Milosavljevic @ 2018-12-16 20:14 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: 33737

[-- Attachment #1: Type: text/plain, Size: 1061 bytes --]

On Fri, 14 Dec 2018 05:41:37 +0100
Ricardo Wurmus <rekado@elephly.net> wrote:

> The default use case is for users to have substitutes enabled and to
> fetch binaries from a build farm.  The build farm tries to build all
> packages, but not all builds succeed.  The daemon caches build failures.
> 
> This information, however, is not available for users.  The default
> behaviour of Guix is to attempt building the package locally.  This is
> fine for packages that the build farm hasn’t attempted yet, but it is a
> waste of time when the build has already been attempted without success.
> 
> I propose that “guix publish” should also convey information about
> failed builds.  The Guix client can then abort right away without
> wasting time and power to attempt a doomed build.  Users may override
> this with “--fallback” or a new option.

As long as we distinguish transient build machine errors (disk full, can't
resolve hostname, too many names in directory, no inodes left etc) from actual
errors in the source code, +1.

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#33737: do not attempt to build a package known to be broken
  2018-12-16 20:14 ` Danny Milosavljevic
@ 2018-12-16 21:55   ` Ricardo Wurmus
  2018-12-18 10:50     ` Ludovic Courtès
  0 siblings, 1 reply; 6+ messages in thread
From: Ricardo Wurmus @ 2018-12-16 21:55 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: 33737


Danny Milosavljevic <dannym@scratchpost.org> writes:

>> I propose that “guix publish” should also convey information about
>> failed builds.  The Guix client can then abort right away without
>> wasting time and power to attempt a doomed build.  Users may override
>> this with “--fallback” or a new option.
>
> As long as we distinguish transient build machine errors (disk full, can't
> resolve hostname, too many names in directory, no inodes left etc) from actual
> errors in the source code, +1.

I was thinking of something very simple.  The daemon is already capable
of caching build failures; I think it may be good to simply pass that
information on to clients.

I don’t know how we could distinguish different kinds of build failures
with the current daemon.

--
Ricardo

^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#33737: do not attempt to build a package known to be broken
  2018-12-16 21:55   ` Ricardo Wurmus
@ 2018-12-18 10:50     ` Ludovic Courtès
  0 siblings, 0 replies; 6+ messages in thread
From: Ludovic Courtès @ 2018-12-18 10:50 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: 33737

Hello!

Ricardo Wurmus <rekado@elephly.net> skribis:

> Danny Milosavljevic <dannym@scratchpost.org> writes:
>
>>> I propose that “guix publish” should also convey information about
>>> failed builds.  The Guix client can then abort right away without
>>> wasting time and power to attempt a doomed build.  Users may override
>>> this with “--fallback” or a new option.

Good idea!

The difficulty is that the protocol between ‘guix substitute --query’
and the daemon is currently very much Boolean: either ‘guix substitute’
provides the binary or it doesn’t.  We’d have to adjust it.

>> As long as we distinguish transient build machine errors (disk full, can't
>> resolve hostname, too many names in directory, no inodes left etc) from actual
>> errors in the source code, +1.
>
> I was thinking of something very simple.  The daemon is already capable
> of caching build failures; I think it may be good to simply pass that
> information on to clients.

The daemon tries to cache only “persistent” failures.  In particular,
local failures likely due to lack of space are not cached.

However, the daemon currently doesn’t distinguish between ENOSPC and
actual failures for offloaded builds.  We may be able to fix this by
having ‘guix offload’ check the available disk space upon failure.

Then there’s the problem of non-deterministic failures.  For these it
would be nicer to let the user build stuff anyway.  There’s no good
solution here.

Ludo’.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-12-18 10:51 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-14  4:41 bug#33737: do not attempt to build a package known to be broken Ricardo Wurmus
2018-12-15 18:54 ` Björn Höfling
2018-12-15 19:39   ` znavko
2018-12-16 20:14 ` Danny Milosavljevic
2018-12-16 21:55   ` Ricardo Wurmus
2018-12-18 10:50     ` Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).