Re: shortening the git test suite

2018-07-07 Thread Gábor Boskovits
Ludovic Courtès  ezt írta (időpont: 2018. júl. 6., P, 23:05):

> Hello,
>
> Mark H Weaver  skribis:
>
> > Why do you say that only upstream needs to worry about it?  I would
> > think that you could say the same thing about almost any test suite, but
> > there's always the possibility that our particular combination of input
> > versions, or the unusual aspects of Guix, might break something that
> > upstream doesn't know about.
> >
> > I would think that git-svn interop is something that any user of the
> > git/svn integration needs to worry about.
>
> I agree.
>
> > If we feel that very few of our users care about git-svn interop,
> > another option would be to add a lighter variant of 'git' that does not
> > include SVN support.  It would probably be a good idea to have a
> > 'git-minimal' package anyway, for use by our 'git-fetch' origin method.
> > Naturally, only the 'git' package variant that includes SVN support
> > would need to run the SVN tests.
>
> Yeah, I think we could to do something like this in this case.
>
> Instead of ‘git-minimal’, we  could have ‘git’ without SVN support, and
> have a separate ‘git-svn’ package.  We can probably arrange for that
> ‘git-svn’ package to only provide the relevant libexec/git-core bits
> (git-svn is just a Perl script anyway.)
>
> Thoughts?
>
> > Also, looking ahead, I think it would be great if we could eventually
> > move to a model where the tests of some packages are split off into
> > separate derivations.  Similarly, we could work toward splitting off
> > documentation generation to separate derivation for selected packages.
> > The most important advantage to this approach is that it would allow
> > inputs needed only for tests or docs to be omitted from the inputs of
> > the main package.  I expect that this will in many cases be needed to
> > prevent circular dependencies, and it could also greatly reduce the
> > amount of rebuilding needed after updating certain packages.
>
> Currently if test fails, the whole derivation fails, and you can’t
> install your package.  If tests were run separately, this would no
> longer hold: you could get your package regardless of whether tests
> fail.  How would you address this?  I guess that calls for a new build
> model, no?
>
>
One example where this can be seen in action is the dependency of
java-jarjar on java-asm-bootstrap. java-asm-bootstrap is java-asm without
the tests, it is exactly
there to break a dependency cycle. java-asm is a full rebuild using tests.
java-asm-bootstrap is defined, while java-asm is define-public-ed (here a
full rebuild is involved). I'm not sure that a full rebuild can be worked
around in all cases, I guess that sometimes test capabilities are detected
at configure time. WDYT?

Thanks,
> Ludo’.
>
>


Re: GNU Guix & GuixSD 0.15.0 released

2018-07-07 Thread Nils Gillmann
Hooray :)

Nitpick and complain: Could we please send this to guix-devel as TO and use BCC
for the rest or even: separate emails? I'm getting so many duplicates with every
release. I know it's a timesaver, but cross-posting and then people replying 
with
"reply to all" to cross-posted messages can be annoying.

alex sassmannshausen transcribed 186K bytes:
> Yay, congratulations to all involved. Those commit numbers are off the
> charts!
> 
> :DDD
> 
> Alex
> 
> On Fri, 6 Jul 2018, 14:24 Ludovic Courtès,  wrote:
> 
> > We are pleased to announce the release of GNU Guix & GuixSD 0.15.0,
> > representing 7,020 commits by 100 people over 7 months.
> >
> > This release brings us close to our goals for 1.0, so it’s probably one
> > of the last zero-dot-something releases.
> >
> >
> > • About
> >
> >   GNU Guix is a transactional package manager for the GNU system.
> >   The Guix System Distribution, GuixSD, is an advanced distribution
> >   of the GNU system.
> >
> >   In addition to standard package management features, Guix supports
> >   transactional upgrades and roll-backs, unprivileged package
> >   management, and per-user profiles.  GuixSD offers a declarative
> >   approach to operating system configuration management and is highly
> >   hackable.  Guix uses low-level mechanisms from the Nix package
> >   manager, except that packages are defined as native Guile modules,
> >   using extensions to the Scheme language.
> >
> >   GuixSD uses the Linux-Libre kernel and the GNU Shepherd init system.
> >   It can be used on an i686, x86_64, armv7, or aarch64 machine.
> >
> >   It is also possible to use Guix on top of an already installed
> >   GNU/Linux system, including on armv7, aarch64, and mips64el.
> >
> >   https://www.gnu.org/software/guix/
> >
> > • Download
> >
> >   Here are the compressed sources and a GPG detached signature[*]:
> > https://alpha.gnu.org/gnu/guix/guix-0.15.0.tar.gz
> > https://alpha.gnu.org/gnu/guix/guix-0.15.0.tar.gz.sig
> >
> >   Here are the bootable USB installation images and their signatures[*]:
> > https://alpha.gnu.org/gnu/guix/guixsd-install-0.15.0.i686-linux.iso.xz
> >
> > https://alpha.gnu.org/gnu/guix/guixsd-install-0.15.0.i686-linux.iso.xz.sig
> >
> > https://alpha.gnu.org/gnu/guix/guixsd-install-0.15.0.x86_64-linux.iso.xz
> >
> > https://alpha.gnu.org/gnu/guix/guixsd-install-0.15.0.x86_64-linux.iso.xz.sig
> >
> >   Here is the QCOW2 virtual machine (VM) image and its signature:
> > https://alpha.gnu.org/gnu/guix/guixsd-vm-image-0.15.0.x86_64-linux.xz
> >
> > https://alpha.gnu.org/gnu/guix/guixsd-vm-image-0.15.0.x86_64-linux.xz.sig
> >
> >   Here are the binary tarballs and their signatures[*]:
> > https://alpha.gnu.org/gnu/guix/guix-binary-0.15.0.i686-linux.tar.xz
> >
> > https://alpha.gnu.org/gnu/guix/guix-binary-0.15.0.i686-linux.tar.xz.sig
> > https://alpha.gnu.org/gnu/guix/guix-binary-0.15.0.x86_64-linux.tar.xz
> >
> > https://alpha.gnu.org/gnu/guix/guix-binary-0.15.0.x86_64-linux.tar.xz.sig
> > https://alpha.gnu.org/gnu/guix/guix-binary-0.15.0.armhf-linux.tar.xz
> >
> > https://alpha.gnu.org/gnu/guix/guix-binary-0.15.0.armhf-linux.tar.xz.sig
> > https://alpha.gnu.org/gnu/guix/guix-binary-0.15.0.aarch64-linux.tar.xz
> >
> > https://alpha.gnu.org/gnu/guix/guix-binary-0.15.0.aarch64-linux.tar.xz.sig
> >
> >   Use a mirror for higher download bandwidth:
> > http://www.gnu.org/order/ftp.html
> >
> >   Here are the SHA1 checksums:
> >
> >   b971e19b539f3f27f675bc1d7cfc126065a7d61c  guix-0.15.0.tar.gz
> >   48e4f95b13133f23e271791e230f1a50896b2033
> > guix-binary-0.15.0.aarch64-linux.tar.xz
> >   a37add10720284793b82f86cca84b24a94253360
> > guix-binary-0.15.0.armhf-linux.tar.xz
> >   1c26d12ad278273f2864bc165a998e5429d1eea0
> > guix-binary-0.15.0.i686-linux.tar.xz
> >   38fd4c9076f82823b5e981d78622a2d3c74984d0
> > guix-binary-0.15.0.x86_64-linux.tar.xz
> >   410db099a7c8bbc134a2f05438004db12376d71e
> > guixsd-install-0.15.0.i686-linux.iso.xz
> >   1029730bf9f11a8039d66a9bf4fc77e8e1b2eb53
> > guixsd-install-0.15.0.x86_64-linux.iso.xz
> >   2664f09efe3f5f999c0a115251eb68eb30ed74b0
> > guixsd-vm-image-0.15.0.x86_64-linux.xz
> >
> >   [*] Use a .sig file to verify that the corresponding file (without the
> >   .sig suffix) is intact.  First, be sure to download both the .sig file
> >   and the corresponding tarball.  Then, run a command like this:
> >
> > gpg --verify guix-0.15.0.tar.gz.sig
> >
> >   If that command fails because you don't have the required public key,
> >   then run this command to import it:
> >
> > gpg --keyserver pool.sks-keyservers.net \
> > --recv-keys 3CE464558A84FDC69DB40CFB090B11993D9AEBB5
> >
> >   and rerun the 'gpg --verify' command.
> >
> >   This release was bootstrapped with the following tools:
> > Autoconf 2.69
> > Automake 1.16.1
> > Makeinfo 6.5
> > Help2man 1.47.6
> >
> >   To install the Guix System Distribution, please see “System
> >   Installation” in the manual.  T

Having a Guix archive on the download page?

2018-07-07 Thread Pjotr Prins
Is it an idea to also have a current Guix archive on the download
page? Or at least a link to one?

   https://www.gnu.org/software/guix/download/

Ever so often I need to rescue a running Guix system which won't run
guix pull and even a build-from-source quickly. Being able to do

   guix archive --import < guix-latest.nar

or something similar would be rather convenient. 

Now I am packing my own archive from a VM because my systems won't
build a recent tree and guix pull requires guile-git which won't build
in turn. It is one of those days that I look to either pack guix or
have a long slog of building just to get going again...

With a downloadable archive, and with the recent improvement of guix
pull, I think anyone can rescue quickly any guix daemon and build
system. 

The key term is: convenience.

Pj.



Re: shortening the git test suite

2018-07-07 Thread Mark H Weaver
Hi Ludovic,

l...@gnu.org (Ludovic Courtès) writes:

> Mark H Weaver  skribis:
>
>> If we feel that very few of our users care about git-svn interop,
>> another option would be to add a lighter variant of 'git' that does not
>> include SVN support.  It would probably be a good idea to have a
>> 'git-minimal' package anyway, for use by our 'git-fetch' origin method.
>> Naturally, only the 'git' package variant that includes SVN support
>> would need to run the SVN tests.
>
> Yeah, I think we could to do something like this in this case.
>
> Instead of ‘git-minimal’, we could have ‘git’ without SVN support, and
> have a separate ‘git-svn’ package.  We can probably arrange for that
> ‘git-svn’ package to only provide the relevant libexec/git-core bits
> (git-svn is just a Perl script anyway.)
>
> Thoughts?

Sure, that sounds good to me.

Whether it makes to have a 'git-minimal' package depends on how many
other optional dependencies could reasonably be removed from it, besides
subversion.  If not much else could be removed, then I suppose there
would be no need for a 'git-minimal' variant.

>> Also, looking ahead, I think it would be great if we could eventually
>> move to a model where the tests of some packages are split off into
>> separate derivations.  Similarly, we could work toward splitting off
>> documentation generation to separate derivation for selected packages.
>> The most important advantage to this approach is that it would allow
>> inputs needed only for tests or docs to be omitted from the inputs of
>> the main package.  I expect that this will in many cases be needed to
>> prevent circular dependencies, and it could also greatly reduce the
>> amount of rebuilding needed after updating certain packages.
>
> Currently if test fails, the whole derivation fails, and you can’t
> install your package.  If tests were run separately, this would no
> longer hold: you could get your package regardless of whether tests
> fail.

Indeed, and I agree that we would need to address this.

> How would you address this?  I guess that calls for a new build
> model, no?

I'm not sure what you mean by "build model", whether you are talking
about the daemon interface or something else, but I think the changes
could be confined to the Guix user interface.  A field could be added to
, somewhat similar to 'replacement', but pointing to a package
object which runs tests, or perhaps a list of package objects.  The guix
client could simply add the test packages to the list of derivations to
build.  This could be inhibited via a "--no-tests" guix build option.

In typical cases where "make check" expects to be run from a fully built
source directory, the main package would typically produce a tarball of
the built source directory as an additional output.  The test package
would simply unpack this tarball and run "make check" in it.

Regarding the build order: ideally, we would run the tests for package
FOO immediately after building FOO, or at least before building anything
that depends on FOO, to avoid wasted work in case the tests fail.  I'm
not sure how best to accomplish this.

What do you think?

  Mark



Re: shortening the git test suite

2018-07-07 Thread Ricardo Wurmus


Mark H Weaver  writes:

>>> Also, looking ahead, I think it would be great if we could eventually
>>> move to a model where the tests of some packages are split off into
>>> separate derivations.  Similarly, we could work toward splitting off
>>> documentation generation to separate derivation for selected packages.
>>> The most important advantage to this approach is that it would allow
>>> inputs needed only for tests or docs to be omitted from the inputs of
>>> the main package.  I expect that this will in many cases be needed to
>>> prevent circular dependencies, and it could also greatly reduce the
>>> amount of rebuilding needed after updating certain packages.
>>
>> Currently if test fails, the whole derivation fails, and you can’t
>> install your package.  If tests were run separately, this would no
>> longer hold: you could get your package regardless of whether tests
>> fail.
>
> Indeed, and I agree that we would need to address this.
>
>> How would you address this?  I guess that calls for a new build
>> model, no?
>
> I'm not sure what you mean by "build model", whether you are talking
> about the daemon interface or something else, but I think the changes
> could be confined to the Guix user interface.  A field could be added to
> , somewhat similar to 'replacement', but pointing to a package
> object which runs tests, or perhaps a list of package objects.  The guix
> client could simply add the test packages to the list of derivations to
> build.  This could be inhibited via a "--no-tests" guix build option.

A problem that would need solving is that tests often depend on the
build directory, which is different from what is installed (and ends up
in the store).  The build directory is lost.

This is not true for all packages, but I’ve encountered enough for which
this would not work.

A change to the “build model” might be to allow for build directories to
be provided as inputs to a derivation.  (If this were to be implemented
developers could use that as a way to debug failed builds by keeping the
build directory, make changes, and continuing the build using the
modified build directory, but this feature would have to be heavily
guarded from being abused as a means to get stateful builds into the
store.)

--
Ricardo




Re: shortening the git test suite

2018-07-07 Thread Mike Gerwitz
On Fri, Jul 06, 2018 at 23:05:04 +0200, Ludovic Courtès wrote:
> Instead of ‘git-minimal’, we could have ‘git’ without SVN support, and
> have a separate ‘git-svn’ package.  We can probably arrange for that
> ‘git-svn’ package to only provide the relevant libexec/git-core bits
> (git-svn is just a Perl script anyway.)
>
> Thoughts?

I'm a git-svn user, and that sounds fine with me.

I agree that's much better to provide a separate package with the SVN
tests rather than simply disable SVN tests in a full-featured Git.

-- 
Mike Gerwitz
Free Software Hacker+Activist | GNU Maintainer & Volunteer
GPG: D6E9 B930 028A 6C38 F43B  2388 FEF6 3574 5E6F 6D05
https://mikegerwitz.com


signature.asc
Description: PGP signature