Git Product home page Git Product logo

hive's Introduction

The Hive

The secretly open NixOS-Society


Paisano Haumea Colmena Nix GL

NixOS Generators NixOS Disko NixOS Hardware

Support room on Matrix

It is forbidden to modify this readme → read the code!

hive's People

Contributors

blaggacao avatar gtrunsec avatar hoppla20 avatar korrat avatar lina2358 avatar lord-valen avatar mklca avatar truelecter avatar whs-dot-hk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hive's Issues

Value does not conform to 'function' when using with latest main std

After upgrading std to the recent version from the main branch, I've got an error

error: [/nix/store/6lw3c9jmg483mac19cfmdal9bfxsl2lq-source/flake.nix - grow[On]:cellBlocks]: expected type list<Cell Block>, but found:
       {
         actions = <function, args: {currentSystem, fragment, fragmentRelPath, inputs, target}>;
         name = "config";
         type = "nixago";
       }: expected 'Cell Block'-struct, but found:
       field 'actions': expected type option<function>, but value does not conform to 'function': expected <function, args: {currentSystem, fragment, fragmentRelPath, target}>, but arguments and/or defaults do not conform: <function, args: {currentSystem, fragment, fragmentRelPath, inputs, target}>

       {
         actions = <function, args: {currentSystem, fragment, fragmentRelPath, inputs, target}>;
         name = "shells";
         type = "devshells";
       } with __functor = <function>: expected 'Cell Block'-struct, but found:
       field 'actions': expected type option<function>, but value does not conform to 'function': expected <function, args: {currentSystem, fragment, fragmentRelPath, target}>, but arguments and/or defaults do not conform: <function, args: {currentSystem, fragment, fragmentRelPath, inputs, target}>

       {
         actions = <function, args: {currentSystem, fragment, fragmentRelPath, inputs, target}>;
         name = "packages";
         type = "installables";
       } with __functor = <function>: expected 'Cell Block'-struct, but found:
       field 'actions': expected type option<function>, but value does not conform to 'function': expected <function, args: {currentSystem, fragment, fragmentRelPath, target}>, but arguments and/or defaults do not conform: <function, args: {currentSystem, fragment, fragmentRelPath, inputs, target}>

It looks like new actions from std signature (after introducing inputs to the action function) are incompatible with what paisano expects (as hive's growOn is basically paisaon's one). As such, using both std's and hive's blocktypes is impossible when using hive.growOn

Changing it to std.growOn is not compatible with the current darwinConfigurations actions block as they lack inputs argument. This may be fixed with #11

error: infinite recursion encountered while importing a module

I was migrating my last infra to hive, a full node based on nix-bitcoin project. But i'm getting a "infinite recursion error" so much hard to debug for me. I get to have a minimal example to reproduce it:

nixosConfigurations.nix:

{
  inputs,
  cell,
}:  {
  fort-nix = {
    bee = inputs.nixpkgs;
    imports = [
      ( { config, ... }: {
        options.foo = config.bar.lib.tor;
      })
    ];
  };
}

My error:

❯ nix build .#nixosConfigurations
trace: warning: lib.nixos.evalModules is experimental and subject to change. See nixos/lib/default.nix
error:
       … while calling the 'head' builtin

         at /nix/store/nbp8axqsz7zbkd03zia0v60jhi382ly9-source/lib/attrsets.nix:720:11:

          719|         || pred here (elemAt values 1) (head values) then
          720|           head values
             |           ^
          721|         else

       … while calling the 'foldl'' builtin

         at /nix/store/nbp8axqsz7zbkd03zia0v60jhi382ly9-source/lib/trivial.nix:63:8:

           62|     let reverseApply = x: f: f x;
           63|     in builtins.foldl' reverseApply val functions;
             |        ^
           64|

       (stack trace truncated; use '--show-trace' to show the full trace)

       error: infinite recursion encountered

       at /nix/store/nbp8axqsz7zbkd03zia0v60jhi382ly9-source/lib/modules.nix:265:21:

          264|           (regularModules ++ [ internalModule ])
          265|           ({ inherit lib options config specialArgs; } // specialArgs);
             |                     ^
          266|         in mergeModules prefix (reverseList collected);

Consider `lib` as independent input and follow through on it

Like in the rational on divnix/std#348 it makes sense to consider lib as indepentend input and modify bee so that it is ingested as such. That should help people clarify the origin of things and remove some of the most notorious obscurity of upstream module evaluation.

Self-domumenting conciseness is all the while better than save one line of code.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.