Skip to content

Commit

Permalink
Merge pull request #171 from dpc/24-09-27-nixfmt
Browse files Browse the repository at this point in the history
 chore: switch to nixfmt
  • Loading branch information
dpc authored Sep 27, 2024
2 parents 703a23a + 7d0779e commit 292eec6
Show file tree
Hide file tree
Showing 39 changed files with 1,681 additions and 1,298 deletions.
2 changes: 1 addition & 1 deletion .config/flakebox/id
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2f6e5ee05a23d941e83fbc8fb8905eecd56fb8b4e23e6ead1a2d239c85f2aa9af4c51d3cc232a2d5f482b577150a1a713866814c8e9638deb3beeb04d5dfb079
51840e6f1234cfbe787e579b49015b7acabf46ddcddc63f074c6a00f6625b482536e69e28887c7e61aeaa0258e2c5fbf40ec3fdecb62eacf2655ab2eaa385e1c
11 changes: 9 additions & 2 deletions bin/bootstrap.flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,15 @@
};
};

outputs = { self, nixpkgs, flake-utils, flakebox }:
flake-utils.lib.eachDefaultSystem (system:
outputs =
{
self,
nixpkgs,
flake-utils,
flakebox,
}:
flake-utils.lib.eachDefaultSystem (
system:
let
flakeboxLib = flakebox.lib.${system} { };
in
Expand Down
10 changes: 5 additions & 5 deletions checks/custom-stdenv/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,14 @@ let
clang-unwrapped = pkgs.llvmPackages_12.clang-unwrapped;
};

toolchainsStd =
flakeboxLib.mkStdFenixToolchains toolchainArgs;

toolchainsStd = flakeboxLib.mkStdFenixToolchains toolchainArgs;

multiOutput =
(flakeboxLib.craneMultiBuild {
toolchains = toolchainsStd;
})
(craneLib':
(
craneLib':
let
target_underscores_upper = pkgs.stdenv.buildPlatform.rust.cargoEnvVarTarget;
in
Expand All @@ -42,7 +41,8 @@ let
'';
doCheck = false;
};
});
}
);
in
pkgs.linkFarmFromDrvs "custom-stdenv" [
multiOutput.ci.checkStdenv
Expand Down
30 changes: 19 additions & 11 deletions checks/default.nix
Original file line number Diff line number Diff line change
@@ -1,16 +1,24 @@
{ pkgs, mkLib, full ? false }:
{
pkgs,
mkLib,
full ? false,
}:
let
inherit (pkgs) lib;

onlyDrvs = lib.filterAttrs (_: lib.isDerivation);
in
onlyDrvs (lib.makeScope pkgs.newScope (self:
let
flakeboxLib = mkLib pkgs { };
callPackage = self.newScope { inherit flakeboxLib; };
in
{
workspaceSanity = callPackage ./workspace-sanity { };
workspaceCross = callPackage ./workspace-cross-compile { inherit full; };
customStdenv = callPackage ./custom-stdenv { };
}))
onlyDrvs (
lib.makeScope pkgs.newScope (
self:
let
flakeboxLib = mkLib pkgs { };
callPackage = self.newScope { inherit flakeboxLib; };
in
{
workspaceSanity = callPackage ./workspace-sanity { };
workspaceCross = callPackage ./workspace-cross-compile { inherit full; };
customStdenv = callPackage ./custom-stdenv { };
}
)
)
162 changes: 86 additions & 76 deletions checks/workspace-cross-compile/default.nix
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
{ pkgs, flakeboxLib, full }:
{
pkgs,
flakeboxLib,
full,
}:
let
inherit (pkgs) lib;

Expand All @@ -22,28 +26,29 @@ let
"scripts"
];

multiOutput =
(flakeboxLib.craneMultiBuild { })
(craneLib':
let
src = flakeboxLib.filterSubPaths {
root = rootDir;
paths = buildPaths;
};
multiOutput = (flakeboxLib.craneMultiBuild { }) (
craneLib':
let
src = flakeboxLib.filterSubPaths {
root = rootDir;
paths = buildPaths;
};

craneLib = (craneLib'.overrideArgs {
pname = "workspace-cross-compile";
version = "0.0.1";
inherit src;
craneLib =
(craneLib'.overrideArgs {
pname = "workspace-cross-compile";
version = "0.0.1";
inherit src;

buildInputs = [
pkgs.openssl
];
buildInputs = [
pkgs.openssl
];

nativeBuildInputs = [
pkgs.pkg-config
];
}).overrideArgsDepsOnly {
nativeBuildInputs = [
pkgs.pkg-config
];
}).overrideArgsDepsOnly
{
cargoVendorDir = craneLib'.vendorCargoDeps {
inherit src;
};
Expand All @@ -59,75 +64,80 @@ let
'';
};
};
in
rec {
workspaceDeps = craneLib.buildWorkspaceDepsOnly { };
workspaceBuild = craneLib.buildWorkspace {
cargoArtifacts = workspaceDeps;
};
bin = craneLib.buildPackageGroup {
packages = [ "workspace-bin" ];
};
lib = craneLib.buildPackageGroup {
packages = [ "workspace-lib" ];
};
# compiling this stuff is so slow, we do it separately
lib-rocksdb = craneLib.buildPackageGroup {
packages = [ "workspace-lib-rocksdb" ];
};
in
rec {
workspaceDeps = craneLib.buildWorkspaceDepsOnly { };
workspaceBuild = craneLib.buildWorkspace {
cargoArtifacts = workspaceDeps;
};
bin = craneLib.buildPackageGroup {
packages = [ "workspace-bin" ];
};
lib = craneLib.buildPackageGroup {
packages = [ "workspace-lib" ];
};
# compiling this stuff is so slow, we do it separately
lib-rocksdb = craneLib.buildPackageGroup {
packages = [ "workspace-lib-rocksdb" ];
};

workspace-sanity-test = craneLib.buildCommand {
cargoArtifacts = workspaceBuild;
cmd = ''
patchShebangs ./scripts/
./scripts/e2e-tests.sh
'';
workspace-sanity-test = craneLib.buildCommand {
cargoArtifacts = workspaceBuild;
cmd = ''
patchShebangs ./scripts/
./scripts/e2e-tests.sh
'';

src = flakeboxLib.filterSubPaths {
root = rootDir;
paths = testPaths;
};
};
});
src = flakeboxLib.filterSubPaths {
root = rootDir;
paths = testPaths;
};
};
}
);
in
pkgs.linkFarmFromDrvs "workspace-non-rust" (

# if Android is supported, test at leasat one cross-compilation target to android
lib.optionals (multiOutput ? aarch64-android) [
# rocksdb only on aarch64, most probably work on other ones
multiOutput.aarch64-android.ci.workspaceBuild
] ++
# on Linux test all android cross-compilation
lib.optionals (pkgs.system == "x86_64-linux") [
# openssl & others, try on android
multiOutput.x86_64-android.ci.lib
multiOutput.i686-android.ci.lib
multiOutput.armv7-android.ci.lib
# even with newer llvm14, rocksdb doesn't compile on x86_64-darwin,
# it might get fixed at some point (newer llvm or librocksdb-sys)
]
++
# on Linux test all android cross-compilation
lib.optionals (pkgs.system == "x86_64-linux") [
# openssl & others, try on android
multiOutput.x86_64-android.ci.lib
multiOutput.i686-android.ci.lib
multiOutput.armv7-android.ci.lib
# even with newer llvm14, rocksdb doesn't compile on x86_64-darwin,
# it might get fixed at some point (newer llvm or librocksdb-sys)

] ++
# test native build on every platform, except x86 macos, where
# it's broken for some reason
lib.optionals (pkgs.system != "x86_64-darwin") [
multiOutput.ci.workspaceBuild
] ++
# in full mode test cross-compilation to Linux targets
lib.optionals full [
# double check nightly
multiOutput.nightly.ci.workspaceBuild
] ++
lib.optionals (full && pkgs.stdenv.isLinux) [
]
++
# test native build on every platform, except x86 macos, where
# it's broken for some reason
lib.optionals (pkgs.system != "x86_64-darwin") [
multiOutput.ci.workspaceBuild
]
++
# in full mode test cross-compilation to Linux targets
lib.optionals full [
# double check nightly
multiOutput.nightly.ci.workspaceBuild
]
++ lib.optionals (full && pkgs.stdenv.isLinux) [
multiOutput.aarch64-linux.ci.workspaceBuild
multiOutput.x86_64-linux.ci.workspaceBuild
multiOutput.i686-linux.ci.workspaceBuild
multiOutput.riscv64-linux.ci.workspaceBuild
] ++
# in full mode, when supported, test all android targets
lib.optionals (full && multiOutput ? aarch64-android) [
multiOutput.aarch64-android.ci.workspaceBuild
multiOutput.x86_64-android.ci.workspaceBuild
multiOutput.i686-android.ci.workspaceBuild
multiOutput.armv7-android.ci.workspaceBuild
]
++
# in full mode, when supported, test all android targets
lib.optionals (full && multiOutput ? aarch64-android) [
multiOutput.aarch64-android.ci.workspaceBuild
multiOutput.x86_64-android.ci.workspaceBuild
multiOutput.i686-android.ci.workspaceBuild
multiOutput.armv7-android.ci.workspaceBuild
]
)
84 changes: 43 additions & 41 deletions checks/workspace-sanity/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -21,29 +21,30 @@ let
"scripts"
];

multiOutput =
(flakeboxLib.craneMultiBuild { })
(craneLib':
let
src = flakeboxLib.filterSubPaths {
root = rootDir;
paths = buildPaths;
};
multiOutput = (flakeboxLib.craneMultiBuild { }) (
craneLib':
let
src = flakeboxLib.filterSubPaths {
root = rootDir;
paths = buildPaths;
};

craneLib = (craneLib'.overrideArgs {
pname = "workspace-sanity";
version = "0.0.1";
buildInputs = [
pkgs.openssl
];
craneLib =
(craneLib'.overrideArgs {
pname = "workspace-sanity";
version = "0.0.1";
buildInputs = [
pkgs.openssl
];

nativeBuildInputs = [
pkgs.pkg-config
];
nativeBuildInputs = [
pkgs.pkg-config
];

inherit src;
inherit src;

}).overrideArgsDepsOnly {
}).overrideArgsDepsOnly
{
cargoVendorDir = craneLib'.vendorCargoDeps {
inherit src;
};
Expand All @@ -59,30 +60,31 @@ let
'';
};
};
in
rec {
workspaceDeps = craneLib.buildWorkspaceDepsOnly { };
workspaceBuild = craneLib.buildWorkspace {
cargoArtifacts = workspaceDeps;
};
workspace-sanity = craneLib.buildPackage { };
workspace-sanity-lib = craneLib.buildPackageGroup {
packages = [ "workspace-sanity-lib" ];
};
in
rec {
workspaceDeps = craneLib.buildWorkspaceDepsOnly { };
workspaceBuild = craneLib.buildWorkspace {
cargoArtifacts = workspaceDeps;
};
workspace-sanity = craneLib.buildPackage { };
workspace-sanity-lib = craneLib.buildPackageGroup {
packages = [ "workspace-sanity-lib" ];
};

workspace-sanity-test = craneLib.buildCommand {
cargoArtifacts = workspaceBuild;
cmd = ''
patchShebangs ./scripts/
./scripts/e2e-tests.sh
'';
workspace-sanity-test = craneLib.buildCommand {
cargoArtifacts = workspaceBuild;
cmd = ''
patchShebangs ./scripts/
./scripts/e2e-tests.sh
'';

src = flakeboxLib.filterSubPaths {
root = rootDir;
paths = testPaths;
};
};
});
src = flakeboxLib.filterSubPaths {
root = rootDir;
paths = testPaths;
};
};
}
);
in
pkgs.linkFarmFromDrvs "workspace-sanity" [
multiOutput.ci.workspaceBuild
Expand Down
Loading

0 comments on commit 292eec6

Please sign in to comment.