Skip to content

Commit

Permalink
Merge pull request #12 from mitchmindtree/package-nightlies
Browse files Browse the repository at this point in the history
Add nightly support for all packages
  • Loading branch information
mitchmindtree authored Sep 8, 2022
2 parents 267b3e6 + eef3d8d commit fbdb79a
Show file tree
Hide file tree
Showing 369 changed files with 869 additions and 55 deletions.
1 change: 1 addition & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ jobs:
- package: forc-lsp
- package: forc-wallet
- package: sway-vim
- package: fuel-nightly
steps:
- uses: actions/[email protected]
- uses: cachix/install-nix-action@v16
Expand Down
93 changes: 74 additions & 19 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,11 @@

outputs = inputs: let
utils.supportedSystems = [
"x86_64-linux"
"aarch64-linux"
"i686-linux"
"x86_64-linux"
"aarch64-darwin"
"x86_64-darwin"
"aarch64-darwin"
];
utils.eachSupportedSystem =
inputs.utils.lib.eachSystem utils.supportedSystems;
Expand Down Expand Up @@ -80,7 +80,7 @@
};
}
{
condition = m: m.src.gitRepoUrl == "https://github.com/fuellabs/sway" && pkgs.lib.versionAtLeast m.version "0.19.0";
condition = m: m.src.gitRepoUrl == "https://github.com/fuellabs/sway" && pkgs.lib.versionAtLeast m.version "0.19.0" && m.date < "2022-09-08";
patch = m: {
cargoLock.outputHashes = {
"mdbook-0.4.20" = "sha256-hNyG2DVD1KFttXF4m8WnfoxRjA0cghA7NoV5AW7wZrI=";
Expand All @@ -97,6 +97,7 @@
pkgs.clang
pkgs.pkg-config
];
doCheck = false; # Already tested at repo, causes longer build times.
LIBCLANG_PATH = "${pkgs.libclang.lib}/lib";
};
}
Expand Down Expand Up @@ -138,7 +139,7 @@
};
}
{
condition = m: m.pname == "forc-wallet" && m.version == "0.1.0";
condition = m: m.pname == "forc-wallet" && m.version == "0.1.0" && m.date < "2022-09-04";
patch = m: {
cargoPatches = [
./patch/forc-wallet-0.1.0-update-lock.patch
Expand All @@ -147,6 +148,27 @@
cargoLock = null;
};
}

{
condition = m: m.pname == "fuel-core" && m.version == "0.10.1" && m.date == "2022-09-07";
patch = m: {
cargoPatches = [
./patch/fuel-core-0.10.1-nightly-2022-09-08-update-lock.patch
];
cargoHash = "sha256-WyGQWKLVtk+z0mahfve/0SyEW4u1oo3xQOUCYi9CKWM=";
cargoLock = null;
};
}
{
condition = m: m.pname == "fuel-gql-cli" && m.version == "0.10.1" && m.date == "2022-09-07";
patch = m: {
cargoPatches = [
./patch/fuel-core-0.10.1-nightly-2022-09-08-update-lock.patch
];
cargoHash = "sha256-xxFA97O1RX1rR9LGvU7z/4r/8b/VmeMksaoRYTgXcPo=";
cargoLock = null;
};
}
];

# Apply all `patches` whose conditions are met by the given manifest.
Expand All @@ -160,56 +182,89 @@
manifest = filename: let
fileattrs = import (./manifests + "/${filename}");
in {
inherit (fileattrs) pname version;
inherit (fileattrs) pname version date;
src = pkgs.fetchgit {
inherit (fileattrs) url rev sha256;
};
};

# Read the manifest files.
filenames = builtins.attrNames (builtins.readDir ./manifests);
all = map manifest filenames;
filtered = ms: builtins.filter filter ms;
patched = ms: map patch ms;
prepared = patched (filtered all);

# Find the latest version for each package.
# Filter and patch the published package manifests.
published = rec {
fnames = builtins.filter (n: !(pkgs.lib.hasInfix "nightly" n)) filenames;
all = map manifest fnames;
filtered = ms: builtins.filter filter ms;
patched = ms: map patch ms;
prepared = patched (filtered all);
};

# Filter and patch the nightly package manifests.
nightly = rec {
fnames = builtins.filter (n: pkgs.lib.hasInfix "nightly" n) filenames;
all = map manifest fnames;
filtered = ms: builtins.filter filter ms;
patched = ms: map patch ms;
prepared = patched (filtered all);
};

# Find the latest published and nightly version for each package.
latest = let
update = m: acc:
acc
// {
"${m.pname}" =
if builtins.hasAttr m.pname acc && pkgs.lib.versionAtLeast acc."${m.pname}".version m.version
if builtins.hasAttr m.pname acc && pkgs.lib.versionAtLeast acc."${m.pname}".version m.version && acc."${m.pname}".date >= m.date
then acc."${m.pname}"
else m;
};
set = pkgs.lib.foldr update {} prepared;
in
pkgs.lib.mapAttrs' (name: v: pkgs.lib.nameValuePair (name + "-latest") v) set;
map-published = name: v: pkgs.lib.nameValuePair (name + "-latest") v;
map-nightly = name: v: pkgs.lib.nameValuePair (name + "-nightly") v;
fold-published = pkgs.lib.foldr update {} published.prepared;
fold-nightly = pkgs.lib.foldr update {} nightly.prepared;
in {
published = pkgs.lib.mapAttrs' map-published fold-published;
nightly = pkgs.lib.mapAttrs' map-nightly fold-nightly;
};

# Construct the default packages as aliases of the latest versions.
defaults = pkgs.lib.mapAttrs' (n: v: pkgs.lib.nameValuePair (pkgs.lib.removeSuffix "-latest" n) v) latest;
defaults = pkgs.lib.mapAttrs' (n: v: pkgs.lib.nameValuePair (pkgs.lib.removeSuffix "-latest" n) v) latest.published;
};

# Generate the published packages from the `manifests` directory.
mkPublishedPackages = pkgs: rust-platform: let
manifests = lib.manifests pkgs rust-platform;
packageName = manifest: builtins.replaceStrings ["."] ["-"] "${manifest.pname}-${manifest.version}";
packageNameNightly = manifest: "${packageName manifest}-nightly-${manifest.date}";
packageAttr = manifest: {
name = builtins.replaceStrings ["."] ["-"] "${manifest.pname}-${manifest.version}";
name = packageName manifest;
value = rust-platform.buildRustPackage manifest;
};
packages-semver = builtins.listToAttrs (map packageAttr manifests.prepared);
packages-latest = pkgs.lib.mapAttrs (n: manifest: rust-platform.buildRustPackage manifest) manifests.latest;
packageAttrNightly = manifest: {
name = packageNameNightly manifest;
value = rust-platform.buildRustPackage manifest;
};
packages-published = builtins.listToAttrs (map packageAttr manifests.published.prepared);
packages-nightly = builtins.listToAttrs (map packageAttrNightly manifests.nightly.prepared);
packages-latest = pkgs.lib.mapAttrs (n: manifest: rust-platform.buildRustPackage manifest) manifests.latest.published;
packages-latest-nightly = pkgs.lib.mapAttrs (n: manifest: rust-platform.buildRustPackage manifest) manifests.latest.nightly;
packages-default = pkgs.lib.mapAttrs (n: manifest: rust-platform.buildRustPackage manifest) manifests.defaults;
in
packages-semver
packages-published
// packages-nightly
// packages-latest
// packages-latest-nightly
// packages-default
// rec {
fuel-latest = pkgs.symlinkJoin {
name = "fuel-latest";
paths = pkgs.lib.attrValues packages-latest;
};
fuel-nightly = pkgs.symlinkJoin {
name = "fuel-nightly";
paths = pkgs.lib.attrValues packages-latest-nightly;
};
fuel = fuel-latest;
default = fuel;
};
Expand Down
1 change: 1 addition & 0 deletions manifests/forc-0.0.1.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
pname = "forc";
version = "0.0.1";
date = "2021-09-27";
url = "https://github.com/fuellabs/sway";
rev = "c9781a1acca6eea8a1f2f30607466ae40d76de65";
sha256 = "sha256-g6pSdahytTJQJ1rgLCku4289C2dnCLqzvSH8Mq8y26I=";
Expand Down
1 change: 1 addition & 0 deletions manifests/forc-0.0.2.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
pname = "forc";
version = "0.0.2";
date = "2021-10-03";
url = "https://github.com/fuellabs/sway";
rev = "e0c043bc9463eb266aaf111ff86b8c911602e053";
sha256 = "sha256-LwGYEtKpb5eEts1K0TkRPwlWPu7EQLJbtaK8dAFexTk=";
Expand Down
1 change: 1 addition & 0 deletions manifests/forc-0.0.3.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
pname = "forc";
version = "0.0.3";
date = "2021-10-16";
url = "https://github.com/fuellabs/sway";
rev = "ce7692d119fa9010dd0937b5f10cf5728fe72393";
sha256 = "sha256-ygyqjapnGH+tznuYu5x9vnvhfHaoQ82vlyi90s/ZTCU=";
Expand Down
1 change: 1 addition & 0 deletions manifests/forc-0.0.4.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
pname = "forc";
version = "0.0.4";
date = "2021-11-05";
url = "https://github.com/fuellabs/sway";
rev = "d40239e7d49793c7d3d23e0d3de6595e40b89e11";
sha256 = "sha256-Udtk0i4LfiXYMWLZtRiDbjXseqiTs83BJgqHaMvJGLA=";
Expand Down
1 change: 1 addition & 0 deletions manifests/forc-0.1.0.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
pname = "forc";
version = "0.1.0";
date = "2021-12-24";
url = "https://github.com/fuellabs/sway";
rev = "90c9b56a7fc313321fcc7580314284080d00078f";
sha256 = "sha256-5VgXmm63O89wp6mayRf6ihMiK/JrXECfkmpo17MPEk4=";
Expand Down
1 change: 1 addition & 0 deletions manifests/forc-0.1.1.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
pname = "forc";
version = "0.1.1";
date = "2021-12-24";
url = "https://github.com/fuellabs/sway";
rev = "8a37329cb1848efdeb46e2be1bfdb940b7750262";
sha256 = "sha256-Ci4OJGp+iqmojxmf4Cg9m/2WG8jtKOPMDr2z6LDsOdU=";
Expand Down
1 change: 1 addition & 0 deletions manifests/forc-0.1.2.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
pname = "forc";
version = "0.1.2";
date = "2021-12-25";
url = "https://github.com/fuellabs/sway";
rev = "2431af753ed8fc0a76df53fc72172cb4bdb5d4b9";
sha256 = "sha256-FYwNTSaaZdtDGbOQ5/Tk4+lvyZ3PCJBtnNLE6+PuEng=";
Expand Down
1 change: 1 addition & 0 deletions manifests/forc-0.1.3.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
pname = "forc";
version = "0.1.3";
date = "2021-12-25";
url = "https://github.com/fuellabs/sway";
rev = "d30d3225a30c46a9675ca5db270597190cc228bc";
sha256 = "sha256-3kvkiTVQ5qSLqBPb3kl2VakJfQlCOYaTY9aonRgN6AY=";
Expand Down
1 change: 1 addition & 0 deletions manifests/forc-0.1.4.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
pname = "forc";
version = "0.1.4";
date = "2021-12-25";
url = "https://github.com/fuellabs/sway";
rev = "46305882aa552be287b28e55606ba74b81070460";
sha256 = "sha256-/sFiQmmk/L+qqK9J/BrhPahg0no7YculAbB+TyB9s+Y=";
Expand Down
1 change: 1 addition & 0 deletions manifests/forc-0.1.5.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
pname = "forc";
version = "0.1.5";
date = "2021-12-27";
url = "https://github.com/fuellabs/sway";
rev = "1923f44784e6d450796b10addd447aeb3325d519";
sha256 = "sha256-X/c/HRNrZu3s/wKU2l9pkuuXpqPFZvqeeziW/9iloK4=";
Expand Down
1 change: 1 addition & 0 deletions manifests/forc-0.1.6.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
pname = "forc";
version = "0.1.6";
date = "2021-12-28";
url = "https://github.com/fuellabs/sway";
rev = "a38a89a042f7ef13ddf67cc7661b37eac96aad8f";
sha256 = "sha256-6HM7WTQsYaOXSvu8Jr0lh6KDQFpFJI+XybvzU8jFEic=";
Expand Down
1 change: 1 addition & 0 deletions manifests/forc-0.1.7.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
pname = "forc";
version = "0.1.7";
date = "2021-12-29";
url = "https://github.com/fuellabs/sway";
rev = "4038415bf9f681fca220bcf3951230b0e9129ba6";
sha256 = "sha256-gcKYLveFcyiZtPxGjtk8W9dYCVdVUSsUMTW071WavX0=";
Expand Down
1 change: 1 addition & 0 deletions manifests/forc-0.1.8.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
pname = "forc";
version = "0.1.8";
date = "2021-12-29";
url = "https://github.com/fuellabs/sway";
rev = "6fd0bc0b6ecf22f3b334a0c8da86e776a7e2b87d";
sha256 = "sha256-2M3FGiWEq++cQIkxECjSHabbVuMTkuvCx0eFIuOSeU0=";
Expand Down
1 change: 1 addition & 0 deletions manifests/forc-0.1.9.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
pname = "forc";
version = "0.1.9";
date = "2021-12-29";
url = "https://github.com/fuellabs/sway";
rev = "6fe6354eb96fa9b85c10e89f628bdf7ee525059d";
sha256 = "sha256-Bwn4w93PqCxMquIz52cWQ3u0xtZCXf5TzkKzQvnV15M=";
Expand Down
1 change: 1 addition & 0 deletions manifests/forc-0.10.0.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
pname = "forc";
version = "0.10.0";
date = "2022-04-11";
url = "https://github.com/fuellabs/sway";
rev = "a88ea439c95d9fb2701d6479ce496dc6571e92c2";
sha256 = "sha256-YdU+xBfyQ6M4UVl/bgp5ba0byVUY7BMwryIZnradFNs=";
Expand Down
1 change: 1 addition & 0 deletions manifests/forc-0.10.1.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
pname = "forc";
version = "0.10.1";
date = "2022-04-11";
url = "https://github.com/fuellabs/sway";
rev = "5c85d2b712975669d238233297443557969dec43";
sha256 = "sha256-8ocDTtJL468H3PpkQu5b9+lZtfjFP3MDK8YE2LtPYy4=";
Expand Down
1 change: 1 addition & 0 deletions manifests/forc-0.10.2.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
pname = "forc";
version = "0.10.2";
date = "2022-04-18";
url = "https://github.com/fuellabs/sway";
rev = "443abbffd520f0f964e837fbc784641741fd7950";
sha256 = "sha256-qnU5g9Oxusr67zIIei9cAUqT7VVkA2VDXbarM1abOgc=";
Expand Down
1 change: 1 addition & 0 deletions manifests/forc-0.10.3.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
pname = "forc";
version = "0.10.3";
date = "2022-04-18";
url = "https://github.com/fuellabs/sway";
rev = "e7676db6f4ebc7a3885f87514d16a703a99410d7";
sha256 = "sha256-/pWNhRZm+ev48LgpQhjGWuXG2TLvZSTpPHsZPLHcMiw=";
Expand Down
1 change: 1 addition & 0 deletions manifests/forc-0.11.0.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
pname = "forc";
version = "0.11.0";
date = "2022-04-26";
url = "https://github.com/fuellabs/sway";
rev = "95816e4e41aae1d3425ba6ff5e7266076d8400fa";
sha256 = "sha256-2XvtFdkQwUVlUVSjQeTUHlEROQ8r1GOcG8uCPM3uDTc=";
Expand Down
1 change: 1 addition & 0 deletions manifests/forc-0.12.1.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
pname = "forc";
version = "0.12.1";
date = "2022-05-04";
url = "https://github.com/fuellabs/sway";
rev = "a03a5d1c068a91779e5ce08eead6c4626de2eb0d";
sha256 = "sha256-nE10IRpnOkNHXfLfYhFhucjJ3JgdPW6AuNneLL14ymI=";
Expand Down
1 change: 1 addition & 0 deletions manifests/forc-0.12.2.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
pname = "forc";
version = "0.12.2";
date = "2022-05-12";
url = "https://github.com/fuellabs/sway";
rev = "2b6e9384f06692ec627293ae5db5e2f748fe2c30";
sha256 = "sha256-HTo5eP8jZP5tzesGGA1i5YUmofsWxFJGKw0oMfvWv0c=";
Expand Down
1 change: 1 addition & 0 deletions manifests/forc-0.13.0.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
pname = "forc";
version = "0.13.0";
date = "2022-05-19";
url = "https://github.com/fuellabs/sway";
rev = "6eef7ab750cd3282f08b6014960cbc02afae717a";
sha256 = "sha256-iT90TBcMgmKTl/2MHR37Vtk7LcOshVMSshlU3BLhAG0=";
Expand Down
1 change: 1 addition & 0 deletions manifests/forc-0.13.1.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
pname = "forc";
version = "0.13.1";
date = "2022-05-24";
url = "https://github.com/fuellabs/sway";
rev = "d73d9d2b4b547e2035ddfe085d439de56ccee1f0";
sha256 = "sha256-jbuvLymTQb8g4ERJeu0K24z2OIw8aDlkBPF+YjiUkIE=";
Expand Down
1 change: 1 addition & 0 deletions manifests/forc-0.13.2.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
pname = "forc";
version = "0.13.2";
date = "2022-05-25";
url = "https://github.com/fuellabs/sway";
rev = "dac1b96419a6ed46a4c531492ae5e794a270d4a1";
sha256 = "sha256-LBuJ2ukkK1FosaLcZ10ds8/7ybN1UU/o0d9dRmbG5a4=";
Expand Down
1 change: 1 addition & 0 deletions manifests/forc-0.14.0.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
pname = "forc";
version = "0.14.0";
date = "2022-05-26";
url = "https://github.com/fuellabs/sway";
rev = "953dad9cad0defe50ffe04e4031207fd247b63f1";
sha256 = "sha256-/z+nNctB9t1qLKiemsg+QuV2jBnuYgd0tCe3cEkI1OU=";
Expand Down
1 change: 1 addition & 0 deletions manifests/forc-0.14.1.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
pname = "forc";
version = "0.14.1";
date = "2022-05-26";
url = "https://github.com/fuellabs/sway";
rev = "02ef7d10b6bf883d73fc1fd23034dc814dfffea2";
sha256 = "sha256-8Uh2gbZb1R1llk3h+DeCF3heBO2Ec3nJNqI6hpSTfq8=";
Expand Down
1 change: 1 addition & 0 deletions manifests/forc-0.14.2.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
pname = "forc";
version = "0.14.2";
date = "2022-05-27";
url = "https://github.com/fuellabs/sway";
rev = "6fc5c69f29a5aab0b6ca677d9384d0d5eaffb232";
sha256 = "sha256-JGicorHY6HfSWoZa2nFOnx45qDrnXmORzHOOKHk/6sM=";
Expand Down
Loading

0 comments on commit fbdb79a

Please sign in to comment.