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.

Quick review feedback #512

Closed
Closed

Description

@blaggacao

In order to pay fair tribute to the news of this project I wanted to submit a quick review at work and to the broader community.

Please consider giving feedback on it: https://demo.hedgedoc.org/s/TYPHlGRUw

Thanks! I will update it as I learn.

Activity

  1. kamadorueda commented on Sep 8, 2021

    @kamadorueda
    Contributor

    Thanks for taking the time and give the project a chance, I really appreciate it


    We've been using Nix and "Makes" for three years now at Fluid Attacks,
    it has had many iterations, the entire company now runs on it

    A few months ago, we decided to publish Makes to the world, this is what you see here on GitHub, it is still a work in progress so the (public) framework will grow a lot as we finish migrating Fluid Attacks from the internal version of Makes to the Public Makes. We've also polished a lot of edges, gave it a nicer CLI interface, and the NixOS module system

    A thin (python) cli-wrapper (./m) is in charge of dependency injection (using nix-build --args...), module evaluation, task inventorization, realization and running.

    ./m (https://gitlab.com/fluidattacks/product/-/blob/master/m) is the old (internal) version of Makes :)

    m (https://github.com/fluidattacks/makes/blob/main/src/cli/main/__main__.py) is the public, elegant version of it (this project)


    It prioritizes wrapping native tooling (purely) in proximity of developers home turf over (complicated) 2nix approaches. And: no attitude (against flavors, eg using yaml) besides pro-simplicity

    I loved this one ❤️,
    because yes, this is what we strive for: simplicity

    I'm (other project) exploring how to ease even more the landscape: https://github.com/kamadorueda/nixpkgs-python

    Maybe we'll merge later


    Does not use or leverage the flakes (yet?). This seems to involve trade-offs w.r.t. to eval caching, purity and also lack of compatibility for some of flake’s most prominent interfaces, such as inputs managent or fully encapsulated nixConfig.

    True, Flakes has its advantajes.

    Anyway, we strive for maximum reproducibility and a proof of it is that ALL makes is --option sandbox true (

    *["--option", "sandbox", "true"],
    ) which is the most strict configuration of Nix possible

    We are also architectured around inputs (https://github.com/fluidattacks/makes#inputs) and outputs (https://github.com/fluidattacks/makes#extending-makes), so migrating to Flakes will be very simple once Flakes become the stable Nix


    Looking forward for the final article!

    We also have a blog:
    https://fluidattacks.com/blog/

  2. blaggacao commented on Sep 16, 2021

    @blaggacao
    ContributorAuthor

    Thank you for the additional info. I wonder how to make makes nicely blend into a flake-only environment. Do you have any pointers or could you even draft a minimal PoC?

    Specifically, I think inputs and cache options are somewhat competing.

    cache, because flakes since recently support nixConfig with any nix config attribute such as extra-subtituters (example). This functionality doesn't yet work on daemon installs, though.

    If you can drop me some rough guidance, I might be able to take it from there.

  3. kamadorueda commented on Sep 16, 2021

    @kamadorueda
    Contributor

    I wonder how to make makes nicely blend into a flake-only environment. Do you have any pointers or could you even draft a minimal PoC?

    I have some ideas around this, I'll draft something

  4. blaggacao commented on Sep 16, 2021

    @blaggacao
    ContributorAuthor

    Nice! I'll commission a cron job to refresh this page every minute, from now on. 😄

  5. blaggacao commented on Sep 16, 2021

    @blaggacao
    ContributorAuthor

    I think we can close this. Thx for all the input!

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions