mirror of
https://github.com/rosenpass/rosenpass.git
synced 2026-02-28 14:33:37 -08:00
feat: add nix setup for marzipan
This commit is contained in:
190
marzipan/flake.lock
generated
Normal file
190
marzipan/flake.lock
generated
Normal file
@@ -0,0 +1,190 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731533236,
|
||||||
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_2": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1726560853,
|
||||||
|
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-github-actions": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"poetry2nix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1729742964,
|
||||||
|
"narHash": "sha256-B4mzTcQ0FZHdpeWcpDYPERtyjJd/NIuaQ9+BV1h+MpA=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nix-github-actions",
|
||||||
|
"rev": "e04df33f62cdcf93d73e9a04142464753a16db67",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nix-github-actions",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1736166416,
|
||||||
|
"narHash": "sha256-U47xeACNBpkSO6IcCm0XvahsVXpJXzjPIQG7TZlOToU=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "b30f97d8c32d804d2d832ee837d0f1ca0695faa5",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1730157240,
|
||||||
|
"narHash": "sha256-P8wF4ag6Srmpb/gwskYpnIsnspbjZlRvu47iN527ABQ=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "75e28c029ef2605f9841e0baa335d70065fe7ae2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable-small",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"poetry2nix": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_2",
|
||||||
|
"nix-github-actions": "nix-github-actions",
|
||||||
|
"nixpkgs": "nixpkgs_2",
|
||||||
|
"systems": "systems_3",
|
||||||
|
"treefmt-nix": "treefmt-nix"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1736280331,
|
||||||
|
"narHash": "sha256-mkVHnky9h/s2EA+t9eEC8qxgcNTE3V+vb/9XgG4fCig=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "poetry2nix",
|
||||||
|
"rev": "4d260d908f3d95fa4b3ef6a98781ff64e1eede22",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "poetry2nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"poetry2nix": "poetry2nix"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"treefmt-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"poetry2nix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1730120726,
|
||||||
|
"narHash": "sha256-LqHYIxMrl/1p3/kvm2ir925tZ8DkI0KA10djk8wecSk=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"rev": "9ef337e492a5555d8e17a51c911ff1f02635be15",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
18
marzipan/flake.nix
Normal file
18
marzipan/flake.nix
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||||
|
inputs.poetry2nix.url = "github:nix-community/poetry2nix";
|
||||||
|
inputs.flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
|
||||||
|
outputs = (inputs:
|
||||||
|
let scoped = (scope: scope.result);
|
||||||
|
in scoped rec {
|
||||||
|
inherit (builtins) removeAttrs;
|
||||||
|
|
||||||
|
result = (import ./nix/init.nix) {
|
||||||
|
scoped = scoped;
|
||||||
|
flake.self = inputs.self;
|
||||||
|
flake.inputs = removeAttrs inputs ["self"];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
1220
marzipan/nix/hyuga/poetry.lock
generated
Normal file
1220
marzipan/nix/hyuga/poetry.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
16
marzipan/nix/hyuga/pyproject.toml
Normal file
16
marzipan/nix/hyuga/pyproject.toml
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
[tool.poetry]
|
||||||
|
name = "hyuga-language-server-installer"
|
||||||
|
version = "0.1.0"
|
||||||
|
description = ""
|
||||||
|
authors = []
|
||||||
|
|
||||||
|
[tool.poetry.dependencies]
|
||||||
|
python = ">=3.12,<3.13"
|
||||||
|
|
||||||
|
[tool.poetry.group.dev.dependencies]
|
||||||
|
hyuga = "^1.0.0"
|
||||||
|
poetry = "^2.0.0"
|
||||||
|
|
||||||
|
[build-system]
|
||||||
|
requires = ["poetry-core"]
|
||||||
|
build-backend = "poetry.core.masonry.api"
|
||||||
32
marzipan/nix/init.nix
Normal file
32
marzipan/nix/init.nix
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
outer_ctx: outer_ctx.scoped rec {
|
||||||
|
inherit (builtins) trace;
|
||||||
|
|
||||||
|
ctx = outer_ctx // { inherit config; };
|
||||||
|
|
||||||
|
inherit (ctx) scoped;
|
||||||
|
|
||||||
|
inherit (ctx.flake.inputs) nixpkgs flake-utils;
|
||||||
|
inherit (nixpkgs.lib) genAttrs zipAttrsWith;
|
||||||
|
inherit (nixpkgs.lib.debug) traceVal;
|
||||||
|
inherit (flake-utils.lib) allSystems eachSystem;
|
||||||
|
|
||||||
|
result = {
|
||||||
|
devShells = eachSupportedSystem (system: (setupSystem system).devShells);
|
||||||
|
packages = eachSupportedSystem (system: (setupSystem system).packages);
|
||||||
|
apps = eachSupportedSystem (system: (setupSystem system).apps);
|
||||||
|
};
|
||||||
|
|
||||||
|
setupSystem = (system_name: scoped rec {
|
||||||
|
result = (import ./system.nix) (ctx // {
|
||||||
|
system.name = system_name;
|
||||||
|
system.pkgs = nixpkgs.legacyPackages.${system_name};
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
config = {
|
||||||
|
supportedSystems = allSystems;
|
||||||
|
poetry.projectDir = ctx.flake.self;
|
||||||
|
};
|
||||||
|
|
||||||
|
eachSupportedSystem = genAttrs config.supportedSystems;
|
||||||
|
}
|
||||||
47
marzipan/nix/system.nix
Normal file
47
marzipan/nix/system.nix
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
ctx: ctx.scoped rec {
|
||||||
|
inherit (ctx.system) pkgs;
|
||||||
|
inherit (ctx.flake.inputs) poetry2nix flake-utils;
|
||||||
|
inherit (pkgs) mkShellNoCC writeShellApplication;
|
||||||
|
inherit (flake-utils.lib) mkApp;
|
||||||
|
|
||||||
|
poetryCtx = poetry2nix.lib.mkPoetry2Nix { inherit pkgs; };
|
||||||
|
inherit (poetryCtx) mkPoetryEnv mkPoetryApplication;
|
||||||
|
|
||||||
|
deps = [poetryEnv];
|
||||||
|
dev-deps = []
|
||||||
|
++ deps
|
||||||
|
++ [poetryHyugaEnv]
|
||||||
|
++ (with pkgs; [poetry]);
|
||||||
|
|
||||||
|
poetryCfg = ctx.config.poetry // { overrides = poetryOverrides; };
|
||||||
|
poetryEnv = mkPoetryEnv poetryCfg;
|
||||||
|
|
||||||
|
poetryHyugaCfg = poetryCfg // { projectDir = ./hyuga; };
|
||||||
|
poetryHyugaEnv = mkPoetryEnv poetryHyugaCfg;
|
||||||
|
|
||||||
|
poetryOverrides = poetryCtx.defaultPoetryOverrides.extend (final: prev: {
|
||||||
|
hyuga = prev.hyuga.overridePythonAttrs (old: {
|
||||||
|
buildInputs = []
|
||||||
|
++ (old.buildInputs or [ ])
|
||||||
|
++ [ final.poetry-core ];
|
||||||
|
preferWheel = true;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
result.packages.default = mkPoetryApplication poetryCfg;
|
||||||
|
result.devShells.default = mkShellNoCC {
|
||||||
|
packages = dev-deps;
|
||||||
|
};
|
||||||
|
|
||||||
|
result.apps.replPython = mkShellApp "python-repl" ''python'';
|
||||||
|
result.apps.replHy = mkShellApp "hy-repl" ''hy'';
|
||||||
|
|
||||||
|
mkShellApp = (name: script: mkApp {
|
||||||
|
drv = writeShellApplication {
|
||||||
|
inherit name;
|
||||||
|
text = script;
|
||||||
|
runtimeInputs = dev-deps;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
1112
marzipan/poetry.lock
generated
Normal file
1112
marzipan/poetry.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
27
marzipan/pyproject.toml
Normal file
27
marzipan/pyproject.toml
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
[tool.poetry]
|
||||||
|
name = "rosenpass-marzipan"
|
||||||
|
version = "0.1.0"
|
||||||
|
description = ""
|
||||||
|
authors = ["Author Name <author@example.com>"]
|
||||||
|
# readme = "README.md"
|
||||||
|
# license = "BSD"
|
||||||
|
packages = [
|
||||||
|
{ include = "**/*.[hp]y", from = "src", to = "rosenpass_marzipan" },
|
||||||
|
{ include = "**/*.lark", from = "src", to = "rosenpass_marzipan" },
|
||||||
|
]
|
||||||
|
|
||||||
|
[tool.poetry.scripts]
|
||||||
|
rosenpass-marzipan = 'rosenpass_marzipan:main'
|
||||||
|
|
||||||
|
[tool.poetry.dependencies]
|
||||||
|
python = ">=3.12,<3.13"
|
||||||
|
hy = "^1.0.0"
|
||||||
|
lark = "^1.2.2"
|
||||||
|
hyrule = "^0.8.0"
|
||||||
|
|
||||||
|
[tool.poetry.group.dev.dependencies]
|
||||||
|
poetry = "^2.0.0"
|
||||||
|
|
||||||
|
[build-system]
|
||||||
|
requires = ["poetry-core"]
|
||||||
|
build-backend = "poetry.core.masonry.api"
|
||||||
Reference in New Issue
Block a user