Skip to content

Commit

Permalink
Problem: new edges namespaces doesn't extend into fractals
Browse files Browse the repository at this point in the history
Solution: use a recursiveUpdate to update the incoming edges from
the main fractalide derivation set
  • Loading branch information
sjmackenzie committed Sep 26, 2017
1 parent 1393fae commit d132502
Show file tree
Hide file tree
Showing 25 changed files with 102 additions and 67 deletions.
4 changes: 2 additions & 2 deletions default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ let
targetNode = (head (attrVals [target.node] target.nodes));
newBuffet = {
nodes = recursiveUpdate buffet.nodes fractalNodes;
edges = buffet.edges // fractalEdges;
edges = recursiveUpdate buffet.edges fractalEdges;
support = buffet.support;
imsg = buffet.imsg;
mods = recursiveUpdate buffet.mods fractalMods;
Expand All @@ -33,4 +33,4 @@ let
executable = true;
};
in
{ nodes = fractalNodes; edges = fractalEdges; test = test; service = ./service.nix; }
{ nodes = fractalNodes; edges = fractalEdges; test = test; service = ./service.nix; mods = fractalMods; }
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{ edge, edges }:

edge {
edge.capnp {
src = ./.;
edges = with edges; [];
schema = with edges; ''
edges = with edges.capnp; [];
schema = with edges.capnp; ''
struct AppTodo {
id @0 :UInt64;
title @1 :Text;
Expand Down
7 changes: 7 additions & 0 deletions edges/capnp/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{ buffet }:
let
callPackage = buffet.pkgs.lib.callPackageWith ( buffet.support // buffet );
in
rec {
AppTodo = callPackage ./app/todo {};
}
7 changes: 2 additions & 5 deletions edges/default.nix
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
{ buffet }:
let
callPackage = buffet.pkgs.lib.callPackageWith ( buffet.support // buffet );
in
rec {
AppTodo = callPackage ./app/todo {};
{
capnp = import ./capnp { inherit buffet; };
}
7 changes: 7 additions & 0 deletions mods/rs/crates/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion mods/rs/crates/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,8 @@ name = "all_crates"
version = "1.1.1"

[dependencies]
rusqlite = "*"
json = "*"

[dependencies.rusqlite]
version = "*"
features = [ "bundled" ]
82 changes: 49 additions & 33 deletions mods/rs/crates/default.nix
Original file line number Diff line number Diff line change
@@ -1,39 +1,50 @@
{ buildRustCode, fetchzip, release, verbose }:
{ build-rust-package, pkgs, release, verbose }:
let
all_crates_1_1_1_ = { dependencies?[], features?[] }: buildRustCode {
all_crates_1_1_1_ = { dependencies?[], features?[] }: build-rust-package {
crateName = "all_crates";
version = "1.1.1";
fractalType = "crate";
src = ./.;
inherit dependencies features release verbose;
};
bitflags_0_9_1_ = { dependencies?[], features?[] }: buildRustCode {
bitflags_0_9_1_ = { dependencies?[], features?[] }: build-rust-package {
crateName = "bitflags";
version = "0.9.1";
fractalType = "crate";
src = fetchzip {
src = pkgs.fetchzip {
url = "https://crates.io/api/v1/crates/bitflags/0.9.1/download";
sha256 = "18h073l5jd88rx4qdr95fjddr9rk79pb1aqnshzdnw16cfmb9rws";
name = "bitflags-0.9.1.tar.gz";
};
inherit dependencies features release verbose;
};
json_0_11_9_ = { dependencies?[], features?[] }: buildRustCode {
gcc_0_3_54_ = { dependencies?[], features?[] }: build-rust-package {
crateName = "gcc";
version = "0.3.54";
fractalType = "crate";
src = pkgs.fetchzip {
url = "https://crates.io/api/v1/crates/gcc/0.3.54/download";
sha256 = "07a5i47r8achc6gxsba3ga17h9gnh4b9a2cak8vjg4hx62aajkr4";
name = "gcc-0.3.54.tar.gz";
};
inherit dependencies features release verbose;
};
json_0_11_9_ = { dependencies?[], features?[] }: build-rust-package {
crateName = "json";
version = "0.11.9";
fractalType = "crate";
src = fetchzip {
src = pkgs.fetchzip {
url = "https://crates.io/api/v1/crates/json/0.11.9/download";
sha256 = "0pmvz3qf6fzm7vszfcfzimbjl82fkhv1hzm4rzb38yddqk02mpyz";
name = "json-0.11.9.tar.gz";
};
inherit dependencies features release verbose;
};
kernel32_sys_0_2_2_ = { dependencies?[], features?[] }: buildRustCode {
kernel32_sys_0_2_2_ = { dependencies?[], features?[] }: build-rust-package {
crateName = "kernel32-sys";
version = "0.2.2";
fractalType = "crate";
src = fetchzip {
src = pkgs.fetchzip {
url = "https://crates.io/api/v1/crates/kernel32-sys/0.2.2/download";
sha256 = "1lrw1hbinyvr6cp28g60z97w32w8vsk6pahk64pmrv2fmby8srfj";
name = "kernel32-sys-0.2.2.tar.gz";
Expand All @@ -42,124 +53,126 @@ let
build = "build.rs";
buildDependencies = [ winapi_build_0_1_1_ ]; inherit dependencies features release verbose;
};
libc_0_2_30_ = { dependencies?[], features?[] }: buildRustCode {
libc_0_2_30_ = { dependencies?[], features?[] }: build-rust-package {
crateName = "libc";
version = "0.2.30";
fractalType = "crate";
src = fetchzip {
src = pkgs.fetchzip {
url = "https://crates.io/api/v1/crates/libc/0.2.30/download";
sha256 = "1c4gi6r5gbpbw3dmryc98x059awl4003cfz5kd6lqm03gp62wlkw";
name = "libc-0.2.30.tar.gz";
};
inherit dependencies features release verbose;
};
libsqlite3_sys_0_8_1_ = { dependencies?[], features?[] }: buildRustCode {
libsqlite3_sys_0_8_1_ = { dependencies?[], features?[] }: build-rust-package {
crateName = "libsqlite3-sys";
version = "0.8.1";
fractalType = "crate";
src = fetchzip {
src = pkgs.fetchzip {
url = "https://crates.io/api/v1/crates/libsqlite3-sys/0.8.1/download";
sha256 = "131bjlxzni2aw3048p7sj8cs3v0jpkb3fxdpc5i7ndyhvpz3gdza";
name = "libsqlite3-sys-0.8.1.tar.gz";
};
setupHook = ./setup-hook.sh;
build = "build.rs";
buildDependencies = [ ]; inherit dependencies features release verbose;
buildDependencies = [ pkgs.sqlite.out gcc_0_3_54_ pkg_config_0_3_9_ ]; inherit dependencies features release verbose;
};
linked_hash_map_0_4_2_ = { dependencies?[], features?[] }: buildRustCode {
linked_hash_map_0_4_2_ = { dependencies?[], features?[] }: build-rust-package {
crateName = "linked-hash-map";
version = "0.4.2";
fractalType = "crate";
src = fetchzip {
src = pkgs.fetchzip {
url = "https://crates.io/api/v1/crates/linked-hash-map/0.4.2/download";
sha256 = "04da208h6jb69f46j37jnvsw2i1wqplglp4d61csqcrhh83avbgl";
name = "linked-hash-map-0.4.2.tar.gz";
};
inherit dependencies features release verbose;
};
lru_cache_0_1_1_ = { dependencies?[], features?[] }: buildRustCode {
lru_cache_0_1_1_ = { dependencies?[], features?[] }: build-rust-package {
crateName = "lru-cache";
version = "0.1.1";
fractalType = "crate";
src = fetchzip {
src = pkgs.fetchzip {
url = "https://crates.io/api/v1/crates/lru-cache/0.1.1/download";
sha256 = "1hl6kii1g54sq649gnscv858mmw7a02xj081l4vcgvrswdi2z8fw";
name = "lru-cache-0.1.1.tar.gz";
};
inherit dependencies features release verbose;
};
pkg_config_0_3_9_ = { dependencies?[], features?[] }: buildRustCode {
pkg_config_0_3_9_ = { dependencies?[], features?[] }: build-rust-package {
crateName = "pkg-config";
version = "0.3.9";
fractalType = "crate";
src = fetchzip {
src = pkgs.fetchzip {
url = "https://crates.io/api/v1/crates/pkg-config/0.3.9/download";
sha256 = "06k8fxgrsrxj8mjpjcq1n7mn2p1shpxif4zg9y5h09c7vy20s146";
name = "pkg-config-0.3.9.tar.gz";
};
inherit dependencies features release verbose;
};
redox_syscall_0_1_31_ = { dependencies?[], features?[] }: buildRustCode {
redox_syscall_0_1_31_ = { dependencies?[], features?[] }: build-rust-package {
crateName = "redox_syscall";
version = "0.1.31";
fractalType = "crate";
src = fetchzip {
src = pkgs.fetchzip {
url = "https://crates.io/api/v1/crates/redox_syscall/0.1.31/download";
sha256 = "0kipd9qslzin4fgj4jrxv6yz5l3l71gnbd7fq1jhk2j7f2sq33j4";
name = "redox_syscall-0.1.31.tar.gz";
};
libName = "syscall";
inherit dependencies features release verbose;
};
rusqlite_0_12_0_ = { dependencies?[], features?[] }: buildRustCode {
rusqlite_0_12_0_ = { dependencies?[], features?[] }: build-rust-package {
crateName = "rusqlite";
version = "0.12.0";
fractalType = "crate";
src = fetchzip {
buildInputs = [ pkgs.sqlite.out ];
src = pkgs.fetchzip {
url = "https://crates.io/api/v1/crates/rusqlite/0.12.0/download";
sha256 = "18fybr7bd012j7axf4gzpphx0iil2amksdlab4dhhipjl6hyam6j";
name = "rusqlite-0.12.0.tar.gz";
};
libName = "rusqlite";
inherit dependencies features release verbose;
};
time_0_1_38_ = { dependencies?[], features?[] }: buildRustCode {
time_0_1_38_ = { dependencies?[], features?[] }: build-rust-package {
crateName = "time";
version = "0.1.38";
fractalType = "crate";
src = fetchzip {
src = pkgs.fetchzip {
url = "https://crates.io/api/v1/crates/time/0.1.38/download";
sha256 = "1ws283vvz7c6jfiwn53rmc6kybapr4pjaahfxxrz232b0qzw7gcp";
name = "time-0.1.38.tar.gz";
};
inherit dependencies features release verbose;
};
vcpkg_0_2_2_ = { dependencies?[], features?[] }: buildRustCode {
vcpkg_0_2_2_ = { dependencies?[], features?[] }: build-rust-package {
crateName = "vcpkg";
version = "0.2.2";
fractalType = "crate";
src = fetchzip {
src = pkgs.fetchzip {
url = "https://crates.io/api/v1/crates/vcpkg/0.2.2/download";
sha256 = "1fl5j0ksnwrnsrf1b1a9lqbjgnajdipq0030vsbhx81mb7d9478a";
name = "vcpkg-0.2.2.tar.gz";
};
inherit dependencies features release verbose;
};
winapi_0_2_8_ = { dependencies?[], features?[] }: buildRustCode {
winapi_0_2_8_ = { dependencies?[], features?[] }: build-rust-package {
crateName = "winapi";
version = "0.2.8";
fractalType = "crate";
src = fetchzip {
src = pkgs.fetchzip {
url = "https://crates.io/api/v1/crates/winapi/0.2.8/download";
sha256 = "0a45b58ywf12vb7gvj6h3j264nydynmzyqz8d8rqxsj6icqv82as";
name = "winapi-0.2.8.tar.gz";
};
inherit dependencies features release verbose;
};
winapi_build_0_1_1_ = { dependencies?[], features?[] }: buildRustCode {
winapi_build_0_1_1_ = { dependencies?[], features?[] }: build-rust-package {
crateName = "winapi-build";
version = "0.1.1";
fractalType = "crate";
src = fetchzip {
src = pkgs.fetchzip {
url = "https://crates.io/api/v1/crates/winapi-build/0.1.1/download";
sha256 = "1lxlpi87rkhxcwp2ykf1ldw3p108hwm24nywf3jfrvmff4rjhqga";
name = "winapi-build-0.1.1.tar.gz";
Expand All @@ -176,6 +189,7 @@ rec {
bitflags_0_9_1 = bitflags_0_9_1_ {
features = [ "example_generated" ];
};
gcc_0_3_54 = gcc_0_3_54_ {};
json_0_11_9 = json_0_11_9_ {};
kernel32_sys_0_2_2 = kernel32_sys_0_2_2_ {
dependencies = [ winapi_0_2_8 winapi_build_0_1_1 ];
Expand All @@ -184,8 +198,8 @@ rec {
features = [ "use_std" ];
};
libsqlite3_sys_0_8_1 = libsqlite3_sys_0_8_1_ {
dependencies = [ pkg_config_0_3_9 vcpkg_0_2_2 ];
features = [ "min_sqlite_version_3_6_8" "pkg-config" "vcpkg" ];
dependencies = [ gcc_0_3_54 pkg_config_0_3_9 vcpkg_0_2_2 ];
features = [ "bundled" "gcc" "min_sqlite_version_3_6_8" "pkg-config" "vcpkg" ];
};
linked_hash_map_0_4_2 = linked_hash_map_0_4_2_ {};
lru_cache_0_1_1 = lru_cache_0_1_1_ {
Expand All @@ -195,6 +209,7 @@ rec {
redox_syscall_0_1_31 = redox_syscall_0_1_31_ {};
rusqlite_0_12_0 = rusqlite_0_12_0_ {
dependencies = [ bitflags_0_9_1 libsqlite3_sys_0_8_1 lru_cache_0_1_1 time_0_1_38 ];
features = [ "bundled" ];
};
time_0_1_38 = time_0_1_38_ {
dependencies = [ kernel32_sys_0_2_2 libc_0_2_30 redox_syscall_0_1_31 winapi_0_2_8 ];
Expand All @@ -204,6 +219,7 @@ rec {
winapi_build_0_1_1 = winapi_build_0_1_1_ {};
all_crates = all_crates_1_1_1;
bitflags = bitflags_0_9_1;
gcc = gcc_0_3_54;
json = json_0_11_9;
kernel32_sys = kernel32_sys_0_2_2;
libc = libc_0_2_30;
Expand Down
5 changes: 5 additions & 0 deletions mods/rs/crates/setup-hook.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
addSQLitePath () {
addToSearchPath SQLITE $1/lib
}

envHooks+=(addSQLitePath)
6 changes: 3 additions & 3 deletions mods/rs/default.nix
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{ buffet }:
let
build-rust-package = buffet.support.node.rs.build-rust-package;
pkgs = buffet.pkgs;
verbose = buffet.verbose;
release = buffet.release;
fetchzip = buffet.pkgs.fetchzip;
buildRustCode = buffet.support.rs.buildRustCode;
in
import ./crates { inherit buildRustCode fetchzip release verbose; }
import ./crates { inherit build-rust-package pkgs release verbose; }
2 changes: 1 addition & 1 deletion nodes/rs/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# Please refer to section 2.6 namely Evolution of Public Contracts
# of the Collective Code Construction Contract in CONTRIBUTING.md
let
callPackage = buffet.pkgs.lib.callPackageWith ( buffet.pkgs // buffet.support.rs // buffet.support // buffet );
callPackage = buffet.pkgs.lib.callPackageWith ( buffet.pkgs // buffet.support.node.rs // buffet.support // buffet );
in
{
# RAW NODES
Expand Down
4 changes: 2 additions & 2 deletions nodes/rs/sqlite/delete/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

agent {
src = ./.;
edges = with edges; [ PrimText FsPath ];
capnp_edges = with edges.capnp; [ PrimText FsPath ];
mods = with mods.rs; [ rustfbp capnp rusqlite ];
osdeps = with pkgs; [ sqlite pkgconfig ];
osdeps = with pkgs; [ ];
}
4 changes: 2 additions & 2 deletions nodes/rs/sqlite/get/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

agent {
src = ./.;
edges = with edges; [ PrimText FsPath ];
capnp_edges = with edges.capnp; [ PrimText FsPath ];
mods = with mods.rs; [ rustfbp capnp rusqlite ];
osdeps = with pkgs; [ sqlite pkgconfig ];
osdeps = with pkgs; [ sqlite.out ];
}
4 changes: 2 additions & 2 deletions nodes/rs/sqlite/insert/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

agent {
src = ./.;
edges = with edges; [ PrimText FsPath ];
capnp_edges = with edges.capnp; [ PrimText FsPath ];
mods = with mods.rs; [ rustfbp capnp rusqlite ];
osdeps = with pkgs; [ sqlite pkgconfig ];
osdeps = with pkgs; [ ];
}
2 changes: 1 addition & 1 deletion nodes/rs/sqlite/local_delete/default.nix
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{ subgraph, imsg, nodes, edges }:
let
PrimText = imsg {
class = edges.PrimText;
class = edges.capnp.PrimText;
text = ''(text="todos")'';
};
in
Expand Down
Loading

0 comments on commit d132502

Please sign in to comment.