tw: init at 0-unstable-2026-06-23 (#537035)

This commit is contained in:
Gaétan Lepage
2026-07-05 14:21:45 +00:00
committed by GitHub
5 changed files with 164 additions and 0 deletions
@@ -0,0 +1,49 @@
{
afl-persistent,
alcotest,
buildDunePackage,
calendar,
cmdliner,
fetchurl,
fpath,
lib,
ocaml,
pprint,
uucp,
uunf,
}:
buildDunePackage (finalAttrs: {
pname = "alcobar";
version = "0.3.1";
minimalOCamlVersion = "4.10";
__structuredAttrs = true;
src = fetchurl {
url = "https://github.com/samoht/alcobar/releases/download/v${finalAttrs.version}/alcobar-${finalAttrs.version}.tbz";
hash = "sha256-V2UnvLrtf+XXkp7uFlrIpxg6+fZqwhCS/J7C3Nw+eVU=";
};
propagatedBuildInputs = [
afl-persistent
alcotest
cmdliner
];
checkInputs = [
calendar
fpath
pprint
uucp
uunf
];
doCheck = lib.versionAtLeast ocaml.version "5.0";
meta = {
description = "Crowbar with an Alcotest-compatible API";
homepage = "https://github.com/samoht/alcobar";
changelog = "https://github.com/samoht/alcobar/blob/v${finalAttrs.version}/CHANGES.md";
license = lib.licenses.isc;
maintainers = [ lib.maintainers.vog ];
};
})
@@ -0,0 +1,52 @@
{
alcobar,
buildDunePackage,
dune-build-info,
fetchFromGitHub,
lambdasoup,
lib,
logs,
mdx,
memtrace,
psq,
uutf,
}:
buildDunePackage (finalAttrs: {
pname = "cascade";
version = "0-unstable-2026-06-26";
minimalOCamlVersion = "5.2";
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "samoht";
repo = "cascade";
rev = "434c07be7ec1a63213a234946d57937e4d080feb";
hash = "sha256-6g8UKsXdR0PxihrOiMVC36q7+bomMByPDbmuISL7h4U=";
};
propagatedBuildInputs = [
dune-build-info
logs
psq
uutf
];
buildInputs = [
lambdasoup
memtrace
];
nativeCheckInputs = [ mdx.bin ];
checkInputs = [
(mdx.override { inherit logs; })
alcobar
];
doCheck = true;
meta = {
description = "CSS generation and manipulation library for OCaml";
homepage = "https://github.com/samoht/cascade";
license = lib.licenses.isc;
maintainers = [ lib.maintainers.vog ];
};
})
@@ -0,0 +1,55 @@
{
buildDunePackage,
cascade,
cmdliner,
fetchFromGitHub,
fmt,
lib,
ocaml,
}:
buildDunePackage (finalAttrs: {
pname = "tw";
version = "0-unstable-2026-06-23";
minimalOCamlVersion = "5.2";
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "samoht";
repo = "tw";
rev = "594d35df46ec2afcfe97632923331badf2940b93";
hash = "sha256-vCRq0FCBIxc/AQg+R2Hig7nqwJGxgy2jedLbAsKaIoA=";
};
propagatedBuildInputs = [ cascade ];
buildInputs = [
cmdliner
fmt
];
# Disabling tests because they check for byte-for-byte identical
# output with tailwindcss, so they are tied to a specific
# tailwindcss version, and would prevent independent upgrades of tw
# and tailwindcss.
doCheck = false;
outputs = [
"bin"
"lib"
"out"
];
installPhase = ''
runHook preInstall
dune install --prefix=$bin --libdir=$lib/lib/ocaml/${ocaml.version}/site-lib
runHook postInstall
'';
meta = {
description = "Type-safe Tailwind CSS v4 in OCaml";
homepage = "https://github.com/samoht/tw";
mainProgram = "tw";
license = lib.licenses.isc;
maintainers = [ lib.maintainers.vog ];
};
})
+2
View File
@@ -1213,6 +1213,8 @@ with pkgs;
)
);
tw = ocamlPackages.tw.bin;
wrapRetroArch = retroarch-bare.wrapper;
# Aliases kept here because they are easier to use
+6
View File
@@ -24,6 +24,8 @@ let
aeneas = callPackage ../development/ocaml-modules/aeneas { };
alcobar = callPackage ../development/ocaml-modules/alcobar { };
alcotest = callPackage ../development/ocaml-modules/alcotest { };
alcotest-lwt = callPackage ../development/ocaml-modules/alcotest/lwt.nix { };
@@ -243,6 +245,8 @@ let
git-binary = pkgs.git;
};
cascade = callPackage ../development/ocaml-modules/cascade { };
cbor = callPackage ../development/ocaml-modules/cbor { };
cfstream = callPackage ../development/ocaml-modules/cfstream { };
@@ -2187,6 +2191,8 @@ let
tuntap = callPackage ../development/ocaml-modules/tuntap { };
tw = callPackage ../development/ocaml-modules/tw { };
twt = callPackage ../development/ocaml-modules/twt { };
type_eq = callPackage ../development/ocaml-modules/type_eq { };