Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: NixOS/nixpkgs
base: b63491ffbcdf
Choose a base ref
...
head repository: NixOS/nixpkgs
compare: 8246c35875d1
Choose a head ref
  • 4 commits
  • 9 files changed
  • 2 contributors

Commits on Feb 12, 2020

  1. Add Nixpkgs support for Dhall

    One of the motivations for this change is the following Discourse
    discussion:
    
    https://discourse.dhall-lang.org/t/offline-use-of-prelude/137
    
    Many users have requested Dhall support for "offline" packages
    that can be fetched/built/installed using ordinary package
    management tools (like Nix) instead of using Dhall's HTTP import system.
    I will continue to use the term "offline" to mean Dhall package
    builds that do not use Dhall's language support for HTTP imports (and
    instead use the package manager's support for HTTP requests, such
    as `pkgs.fetchFromGitHub`)
    
    The goal of this change is to document what is the idiomatic way to
    implement "offline" Dhall builds by implementing Nixpkgs support
    for such builds.  That way when other package management tools ask
    me how to package Dhall with their tools I can refer them to how it
    is done in Nixpkgs.
    
    This change contains a fully "offline" build for the largest Dhall
    package in existence, known as "dhall-packages" (not to be confused
    with `dhallPackages`, which is our Nix attribute set containing
    Dhall packages).
    
    The trick to implementing offline builds in Dhall is to take
    advantage of Dhall's support for semantic integrity checks.  If an
    HTTP import is protected by an integrity check and a cached build
    product matches the integrity check then the HTTP import is never
    resolved and the expression is instead fetched from cache.
    
    By "installing" dependencies in a pre-seeded and isolated cache
    we can replace remote HTTP imports with dependencies that have
    been built and supplied by Nix instead.
    
    The offline nature of the builds are enforced by compiling the
    Haskell interpreter with the `-f-with-http` flag, which disables
    the interpreter's support for HTTP imports.  If a user forgets
    to supply a necessary dependency as a Nix build product then the
    build fails informing them that HTTP imports are disabled.
    
    By default, built packages are "binary distributions", containing
    just a cache product and a Dhall expression which can be used to
    resolve the corresponding cache product.
    
    Users can also optionally enable a "source distribution" of a package
    which already includes the equivalent fully-evaluated Dhall code (for
    convenience), but this is disabled by default to keep `/nix/store`
    utilization as compact as possible.
    Gabriella439 committed Feb 12, 2020
    Copy the full SHA
    38f1d70 View commit details
    Browse the repository at this point in the history
  2. Simplify dhall-kubernetes packages

    There is no need to provide a separate `kubernetesVersion` argument
    since the `file` argument works just fine
    Gabriella439 committed Feb 12, 2020
    Copy the full SHA
    822ad56 View commit details
    Browse the repository at this point in the history

Commits on Feb 17, 2020

  1. Change formatting of record fields

    ... as requested by @Profpatsch
    Gabriella439 committed Feb 17, 2020
    Copy the full SHA
    32ed1c5 View commit details
    Browse the repository at this point in the history

Commits on Feb 25, 2020

  1. Merge pull request #79900 from Gabriel439/gabriel/dhall_packages_2

    Add Nixpkgs support for Dhall
    Profpatsch committed Feb 25, 2020
    Copy the full SHA
    8246c35 View commit details
    Browse the repository at this point in the history