Skip to content
This repository was archived by the owner on Sep 1, 2025. It is now read-only.
This repository was archived by the owner on Sep 1, 2025. It is now read-only.

Support Nix Flakes #546

Description

@kamadorueda

Related:

Useful links:

Examples:

Things to take into account:

  • We wan to benefit from flakes hermeticity
  • We want to keep installation and usage of non-nix-experts users as simple as it's today

Activity

  1. self-assigned this
    on Sep 16, 2021
  2. added 4 commits that reference this issue on Sep 16, 2021
  3. kamadorueda commented on Sep 17, 2021

    @kamadorueda
    ContributorAuthor

    I'm just gonna drop here two good reasons not to use flakes yet:


    1. It's unstable, which means bugs in the core binary do exist and will sooner or later bite you, no matter what --option xxx yyy, ulimit, etc, you configure to try controlling file descriptor leaks:

    image

    for some companies like us it's not reasonable to risk reliability on production, the thing must just work, preferably for ever

    on Nix stable this too-many-open-files do not happen (downgrading from Flakes was actually the fix to the problem)


    1. Evaluation cache is awesome on flakes, but runtime cache-ability is not perfect yet, for instance we cannot make use of projectPath or something similar:

    image

    which means that in a tree like following:

    • a
      • whatever-code
    • b
      • c.sh
      • d.nix (depends on c.sh)

    if whatever-code changes, then the entire inputs.self.sourceInfo.outPath changes, and thus ./b/c.sh changes, and ./b/d.nix must be build again. This does not happen on Makes using Nix stable because using projectPath you can make d.nix depend only on the NAR serialization of b folder, and changes outside of b do not require to rebuild d.nix.

    Maybe this is the reason why some nix experts are using Bazel to achieve incremental builds?

    We achieved incremental builds at Fluid Attacks using nix stable and projectPath only


    I'm gonna stop working towards Flakes for now

    The work done so far serves as a draft on how compatibility with Flakes can be implemented

  4. removed their assignment
    on Sep 17, 2021
  5. added 2 commits that reference this issue on Sep 17, 2021
  6. added 5 commits that reference this issue on Sep 17, 2021
  7. 6 remaining items

  8. added 2 commits that reference this issue on Sep 18, 2021
  9. added a commit that references this issue on Sep 18, 2021
  10. added 2 commits that reference this issue on Sep 18, 2021
  11. added a commit that references this issue on Sep 18, 2021
  12. moved this to 🆕 New in Makes Roadmapon Sep 24, 2022
  13. moved this from 🆕 New to 📋 To do in Makes Roadmapon Sep 24, 2022
  14. Ten0 commented on Dec 24, 2023

    @Ten0

    2. runtime cache-ability is not perfect yet, for instance we cannot make use of projectPath or something similar:

    Unless I'm mistaken this is fixed the next day by 2143be2, correct?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedWill be solved only if someone contributes it

    Type

    No type

    Projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions