gr-base/shelf/README.org
2025-08-03 14:34:01 +07:00

40 lines
1.1 KiB
Org Mode

* Scroll conventions
** Deno
Each Deno scroll:
- is an immediate subdirectory of ~./deno~
- contains a Deno lockfile
Unless you're trying to shoot yourself or downstream dep maintainers in the foot.
- contains a ~scroll.nix~ file
- does not use JSR dependencies
They have heavily timestamped metadata and therefore do not support
reproducible builds.
- can use NPM dependencies
*** scroll.nix
- ~name~
- ~build~
+ ~cacheCommand~
The cache command triggers Deno cache build, putting cache in ~$DENO_DIR~.
+ ~hashFiles~
These files are hashed to determine if the cache will be updated.
In that case a new entry needs to be added in knownHashes.
+ ~knownHashes~
An object that maps ~hashFiles~ hashes to this scroll's
incremental cache derivation's hash.
The starting value is just ~{}~, see build logs to determine
what needs to be added.
All scrolls currently are to use the same Deno version defined by the flake.
Scrolls are automatically discovered by scanning subdirectories of ~./deno~
for those containing a ~scroll.nix~ file.
Directories without ~scroll.nix~ will generate warnings during build.