Skip to content

building on nix #7

Description

@fuguesoft

Description

I'm attempting to build this on my nix system and running into some issues.

The first issue has to do with some of the tests:

From this derivation:

{
  fetchFromGitHub,
  rustPlatform,
}:
rustPlatform.buildRustPackage (finalAttrs: {

  pname = "flow";
  version = "0.1.0";

  src = fetchFromGitHub {
    owner = "jsubroto";
    repo = "flow";
    rev = "8180ccf881efee92113b2e2816fa6d34e5d60947";
    sha256 = "sha256-inP7KW8qfF/v58nrHKbGz0UJ08JKmfJCppVmzWcLZy0=";
    # hash = "sha256-8180ccf881efee92113b2e2816fa6d34e5d60947";
  };

  cargoHash = "sha256-HA4puD7y5SJRbmjTrlHSehgApVr99jS3EopzeJ0kco4=";

  # checkNoDefaultFeatures = true;

  # checkFeatures = [
  # ];

  # buildInputs = [
  # ];

  # checkFlags = [
  #   # annoying tests
  #   "--skip provider_jira::tests::load_board_returns_parse_error_when_missing_env"
  #   "--skip provider_linear::tests::load_board_returns_parse_error_when_missing_env"
  # ];

})

I get this output:

Details
error: Cannot build '/nix/store/lvdb254pqhwpf57mhbi7mr56iacvs86w-flow-0.1.0.drv'.
       Reason: builder failed with exit code 101.
       Output paths:
         /nix/store/9qd31y5p49fdpwc5k2wfijdw9q47x1bi-flow-0.1.0
       Last 25 log lines:
       > test provider_local::tests::move_card_returns_not_found ... ok
       > test store_fs::tests::create_card_persists_file_and_order ... ok
       > test store_fs::tests::load_and_move_persists ... ok
       >
       > failures:
       >
       > ---- provider_jira::tests::load_board_returns_parse_error_when_missing_env stdout ----
       >
       > thread 'provider_jira::tests::load_board_returns_parse_error_when_missing_env' (4242) panicked at /build/flow-0.1.0-vendor/source-registry-0/reqwest-0.13.1/src/blocking/client.rs:1218:38:
       > Client::new(): reqwest::Error { kind: Builder, source: General("No CA certificates were loaded from the system") }
       > note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
       >
       > ---- provider_linear::tests::load_board_returns_parse_error_when_missing_env stdout ----
       >
       > thread 'provider_linear::tests::load_board_returns_parse_error_when_missing_env' (4247) panicked at /build/flow-0.1.0-vendor/source-registry-0/reqwest-0.13.1/src/blocking/client.rs:1218:38:
       > Client::new(): reqwest::Error { kind: Builder, source: General("No CA certificates were loaded from the system") }
       >
       >
       > failures:
       >     provider_jira::tests::load_board_returns_parse_error_when_missing_env
       >     provider_linear::tests::load_board_returns_parse_error_when_missing_env
       >
       > test result: FAILED. 22 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
       >
       > error: test failed, to rerun pass `--bin flow`
       For full logs, run:
         nix log /nix/store/lvdb254pqhwpf57mhbi7mr56iacvs86w-flow-0.1.0.drv

If I skip the tests:

{
  fetchFromGitHub,
  rustPlatform,
}:
rustPlatform.buildRustPackage (finalAttrs: {

  pname = "flow";
  version = "0.1.0";

  src = fetchFromGitHub {
    owner = "jsubroto";
    repo = "flow";
    rev = "8180ccf881efee92113b2e2816fa6d34e5d60947";
    sha256 = "sha256-inP7KW8qfF/v58nrHKbGz0UJ08JKmfJCppVmzWcLZy0=";
    # hash = "sha256-8180ccf881efee92113b2e2816fa6d34e5d60947";
  };

  cargoHash = "sha256-HA4puD7y5SJRbmjTrlHSehgApVr99jS3EopzeJ0kco4=";

  # checkNoDefaultFeatures = true;

  # checkFeatures = [
  # ];

  # buildInputs = [
  # ];

  checkFlags = [
    # annoying tests
    "--skip provider_jira::tests::load_board_returns_parse_error_when_missing_env"
    "--skip provider_linear::tests::load_board_returns_parse_error_when_missing_env"
  ];

})

Can get it to build but then it fails as it can't find the demo directory:

Load failed: load_board failed for /build/source/boards/demo: No such file or directory (os error 2)

Repro Steps

To reproduce:

  1. Install nix
  2. Enable flakes:
  • Add experimental-features = nix-command flakes to either:
    1. $XDG_CONFIG_HOME/nix/nix.conf
    2. /etc/nix/nix.conf
  1. Copy either of the above snippets into a default.nix file
  2. In the same directory, make a flake.nix with the following contents:
{
  description = "A keyboard-first Kanban board for your terminal workflows";

  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
  };

  outputs =
    inputs@{ self, nixpkgs, ... }:
    let
      forAllSystems =
        function:
        nixpkgs.lib.genAttrs [
          "x86_64-linux"
          "aarch64-linux"
        ] (system: function nixpkgs.legacyPackages.${system});
    in
    {
      packages = forAllSystems (pkgs: {
        default = pkgs.callPackage ./default.nix { };
      });

    };
}
  1. In that directory where the default.nix and flake.nix are located, run:
nix run .
  1. Observe the results

Recording

https://asciinema.org/a/UsKi4VZKFABafOIE

Thanks for your time 🙏🏾

Activity

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions