Show HN: dk, a Windows-friendly, Nix-like build system
dk is both a build system and a scripting language. This Show HN is about dk's new build system which builds packages declared in JSON files. You can write the JSON files by hand or use your favorite language to generate them.
dk has some unusual differences from other build and package managers: Windows, macOS and Linux are supported equally. Minimizing supply chain security risk is a focus. Packages can be based on binary assets. Incremental adoption by language communities is a goal.
There is a reference implementation written in OCaml, a from-scratch walkthrough the writes the JSON build files for the somewhat random package (7zip), some security principles, and a specification document. The reference implementation and the spec are primarily to help port the dk build tool to other languages for incremental adoption.
I'd like to get feedback before I launch a community package registry. There are two feedback areas in particular:
1. I suspect there will be some controversy about asking package authors to use their real names and/or pay a micropayment to validate their identities (ex. $1 a year), even though I think controls like these are required for any semblance of supply chain security.
2. I have heard complaints about nix's lack of static typing. A JSON-based build system suffers from the same issue. One possibility is to add JSON schema. Another is to couple the build system with the OCaml-based scripting system in dk, like how the nix functional language is coupled to nix derivations. But I have been hesitant to do that coupling since it would be harder for language communities to incrementally adopt the build system.
No comments yet