Drop into a nix shell with ghcHEAD

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Drop into a nix shell with ghcHEAD

Matthew Pickering
Hi all,

I have written a devastating new script which makes it easy to test
snippets and packages with build artefacts built by the gitlab CI. One
invocation of `nix-shell` will enter an environment with the most
recent build artefact from master.

Usage:

```
> nix-shell https://github.com/mpickering/ghc-artefact-nix/archive/master.tar.gz
unpacking 'https://github.com/mpickering/ghc-artefact-nix/archive/master.tar.gz'...
<lots more output>
> ghc --version
The Glorious Glasgow Haskell Compilation System, version 8.7.20190115
```

Repo: https://github.com/mpickering/ghc-artefact-nix

So far we have tested it works on NixOS and darwin but support for
other platforms that nix supports and we build artefacts for should be
easy. It might already work on i386 and aarch64 as well but I didn't
test these.

Cheers,

Matt
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: Drop into a nix shell with ghcHEAD

chessai .
Beautiful. Thanks for sharing

On Wed, Jan 16, 2019 at 9:34 AM Matthew Pickering <[hidden email]> wrote:
Hi all,

I have written a devastating new script which makes it easy to test
snippets and packages with build artefacts built by the gitlab CI. One
invocation of `nix-shell` will enter an environment with the most
recent build artefact from master.

Usage:

```
> nix-shell https://github.com/mpickering/ghc-artefact-nix/archive/master.tar.gz
unpacking 'https://github.com/mpickering/ghc-artefact-nix/archive/master.tar.gz'...
<lots more output>
> ghc --version
The Glorious Glasgow Haskell Compilation System, version 8.7.20190115
```

Repo: https://github.com/mpickering/ghc-artefact-nix

So far we have tested it works on NixOS and darwin but support for
other platforms that nix supports and we build artefacts for should be
easy. It might already work on i386 and aarch64 as well but I didn't
test these.

Cheers,

Matt
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: Drop into a nix shell with ghcHEAD

Matthew Pickering
I just extended it slightly so you can grab artifacts from MRs as
well. The interface is not perfect but should still be useful.

https://github.com/mpickering/ghc-artefact-nix

You can specify the two options `fork` and `branch` in order to download
an artefact for a contributors branch in order to test a merge request. For
example in order to test
[!180](https://gitlab.haskell.org/ghc/ghc/merge_requests/180) which
is on the fork called `brprice` and from branch `wip/doc-pragma-fixes`
I can run:

```
nix run -f https://github.com/mpickering/ghc-artefact-nix/archive/master.tar.gz
\
      --argstr fork brprice \
      --argstr branch wip/doc-pragma-fixes \
      ghcHEAD cabal-install
```

On Thu, Jan 17, 2019 at 3:49 AM chessai . <[hidden email]> wrote:

>
> Beautiful. Thanks for sharing
>
> On Wed, Jan 16, 2019 at 9:34 AM Matthew Pickering <[hidden email]> wrote:
>>
>> Hi all,
>>
>> I have written a devastating new script which makes it easy to test
>> snippets and packages with build artefacts built by the gitlab CI. One
>> invocation of `nix-shell` will enter an environment with the most
>> recent build artefact from master.
>>
>> Usage:
>>
>> ```
>> > nix-shell https://github.com/mpickering/ghc-artefact-nix/archive/master.tar.gz
>> unpacking 'https://github.com/mpickering/ghc-artefact-nix/archive/master.tar.gz'...
>> <lots more output>
>> > ghc --version
>> The Glorious Glasgow Haskell Compilation System, version 8.7.20190115
>> ```
>>
>> Repo: https://github.com/mpickering/ghc-artefact-nix
>>
>> So far we have tested it works on NixOS and darwin but support for
>> other platforms that nix supports and we build artefacts for should be
>> easy. It might already work on i386 and aarch64 as well but I didn't
>> test these.
>>
>> Cheers,
>>
>> Matt
>> _______________________________________________
>> ghc-devs mailing list
>> [hidden email]
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: Drop into a nix shell with ghcHEAD

Matthew Pickering
I have now added a small wrapper script which allows you to pull
artefacts by MR number.

https://github.com/mpickering/ghc-artefact-nix#ghc-head-from-script

```
# Fetches MR 180
ghc-head-from 180
```

```
#Fetches ghc/master
ghc-head-from
```

The most convenient way to access the script is to add the attribute
`nur.repos.mpickering.ghc-head-from` to your configuration.nix.

Cheers,

Matt

On Tue, Jan 22, 2019 at 2:49 PM Matthew Pickering
<[hidden email]> wrote:

>
> I just extended it slightly so you can grab artifacts from MRs as
> well. The interface is not perfect but should still be useful.
>
> https://github.com/mpickering/ghc-artefact-nix
>
> You can specify the two options `fork` and `branch` in order to download
> an artefact for a contributors branch in order to test a merge request. For
> example in order to test
> [!180](https://gitlab.haskell.org/ghc/ghc/merge_requests/180) which
> is on the fork called `brprice` and from branch `wip/doc-pragma-fixes`
> I can run:
>
> ```
> nix run -f https://github.com/mpickering/ghc-artefact-nix/archive/master.tar.gz
> \
>       --argstr fork brprice \
>       --argstr branch wip/doc-pragma-fixes \
>       ghcHEAD cabal-install
> ```
>
> On Thu, Jan 17, 2019 at 3:49 AM chessai . <[hidden email]> wrote:
> >
> > Beautiful. Thanks for sharing
> >
> > On Wed, Jan 16, 2019 at 9:34 AM Matthew Pickering <[hidden email]> wrote:
> >>
> >> Hi all,
> >>
> >> I have written a devastating new script which makes it easy to test
> >> snippets and packages with build artefacts built by the gitlab CI. One
> >> invocation of `nix-shell` will enter an environment with the most
> >> recent build artefact from master.
> >>
> >> Usage:
> >>
> >> ```
> >> > nix-shell https://github.com/mpickering/ghc-artefact-nix/archive/master.tar.gz
> >> unpacking 'https://github.com/mpickering/ghc-artefact-nix/archive/master.tar.gz'...
> >> <lots more output>
> >> > ghc --version
> >> The Glorious Glasgow Haskell Compilation System, version 8.7.20190115
> >> ```
> >>
> >> Repo: https://github.com/mpickering/ghc-artefact-nix
> >>
> >> So far we have tested it works on NixOS and darwin but support for
> >> other platforms that nix supports and we build artefacts for should be
> >> easy. It might already work on i386 and aarch64 as well but I didn't
> >> test these.
> >>
> >> Cheers,
> >>
> >> Matt
> >> _______________________________________________
> >> ghc-devs mailing list
> >> [hidden email]
> >> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs