digitallyinduced/ihp

fixing new IHP boilerplate in Codespaces and GitPod

CSchank opened this issue ยท 16 comments

I'll move the discussion from email to here. In anticipation of IHP 1.1, @rvarun11 and I are trying to fix Codespaces, DevContainers and GitPod when using the new IHP boilerplate with Nix flakes. I'm using https://github.com/cschank/IHPDevTest to test/fix this. Please feel free to fork that and test Codespaces and GitPod. So far, we've worked through some issues where it would try to rebuild .envrc. However, there are still some issues:

  • ./start still has this line code which can overwrite .envrc:
command -v RunDevServer >/dev/null 2>&1 \
    || { echo "PATH_add $(nix-shell -j auto --cores 0 --run 'printf %q $PATH')" > .envrc; }
  • The user seems to have to type y a bunch of times to accept substituters - can we automate this?
๐Ÿ‘‹ Welcome to Codespaces! You are on a custom image defined in your devcontainer.json file.

๐Ÿ” To explore VS Code to its fullest, search using the Command Palette (Cmd/Ctrl + Shift + P)

๐Ÿ“ Edit away, then run your build command to see your code running in the browser.
direnv: loading /workspaces/IHPDevTest/.envrc
direnv: loading https://raw.githubusercontent.com/nix-community/nix-direnv/2.3.0/direnvrc (sha256-Dmd+j63L84wuzgyjITIfSxSD57Tx7v51DMxVZOsiUD8=)
direnv: using flake . --impure
warning: Git tree '/workspaces/IHPDevTest' is dirty
do you want to allow configuration setting 'extra-substituters' to be set to 'https://digitallyinduced.cachix.org' (y/N)? direnv: ([/nix/store/6b56l3300y961gpfhznw833hqglwn27k-direnv-2.32.3/bin/direnv export bash]) is taking a while to execute. Use CTRL-C to give up.
y
do you want to permanently mark this value as trusted (y/N)? y
do you want to allow configuration setting 'extra-trusted-public-keys' to be set to 'digitallyinduced.cachix.org-1:y+wQvrnxQ+PdEsCt91rmvv39qRCYzEgGQaldK26hCKE=' (y/N)? y
do you want to permanently mark this value as trusted (y/N)? y
  • GitPod starts downloading things but then hit me with the following. I really don't know what we can do about this. Perhaps pull some stuff out of the container and into the actual workspace storage somehow?
image
  • Codespaces starts downloading things but hits me with the following. (local DevContainers usually give the same errors as Codespaces does, since they both use DevContainers)
do you want to permanently mark this value as trusted (y/N)? y
do you want to allow configuration setting 'extra-trusted-public-keys' to be set to 'digitallyinduced.cachix.org-1:y+wQvrnxQ+PdEsCt91rmvv39qRCYzEgGQaldK26hCKE=' (y/N)? y
do you want to permanently mark this value as trusted (y/N)? y
error: suspicious ownership or permission on '/nix/store/x6n32z4znxvqaa8r8pfwwrn4w6w5wv1v-procfile-env' for output 'out'; rejecting this build output
error: 1 dependencies of derivation '/nix/store/md1bqvkx37i5cqvp6518yjx7d0khdw1w-devenv-up.drv' failed to build
error: 1 dependencies of derivation '/nix/store/ha43m6iy97gx3c3zikr2ayjdszjghrp7-devenv.drv' failed to build
error: 1 dependencies of derivation '/nix/store/97wnf0bvmjih2pvvw171w0p9yyg5vfab-devenv-profile.drv' failed to build
error: 1 dependencies of derivation '/nix/store/qm074gs2gs7zf38751qshnpvf4i3qb5q-devenv-shell-env.drv' failed to build
error: getting status of '/workspaces/IHPDevTest/.direnv/flake-profile.8023': No such file or directory
warning: Git tree '/workspaces/IHPDevTest' is dirty
direnv: nix-direnv: renewed cache

Any ideas for fixing this would be greatly appreciated! Codespaces, GitPod and DevContainers are a key part of our strategy to help our research assistants develop faster (and all those who are new to IHP!), so any help is greatly appreciated.

The user seems to have to type y a bunch of times to accept substituters - can we automate this?

If I'm not mistaken, you should be able to circumvent those prompts by pre-setting those substituters in the Nix config, e.g. by adding those settings to the Nix config file in the containers. At least in a quick test on my machine Nix notices that and doesn't ask for confirmation.

I'm wondering if we should wait until #1705 is complete before continuing on with this?

That'll definitely change some things in deployment and boilerplate that might make it easier to include IHP in containers, yes, although:

  • ./start still has this line code which can overwrite .envrc:
command -v RunDevServer >/dev/null 2>&1 \
    || { echo "PATH_add $(nix-shell -j auto --cores 0 --run 'printf %q $PATH')" > .envrc; }

However, if I'm not mistaken (@mpscholten correct me if I'm wrong) that line is only still there because the devenv-stuff isn't released yet. So that'll go away with the release anyway and at least that should be no problem for you, with or without #1705. :)

./start still has this line code which can overwrite .envrc:

This code can be removed

The user seems to have to type y a bunch of times to accept substituters - can we automate this?

This can be automatted by using the --accept-flake-config flag. E.g. nix develop --accept-flake-config, or by putting accept-flake-config = true into the contains nix.conf

Okay, so I've tried to keep working on this. For now I've removed most things from the Codespace's config, and I'm trying to do it manually so we can see what errors we're getting. The devcontainer.json file in the repo I'm testing with is here.

But when I go to run direnv allow, I'm getting some error related to permissions of the Nix store. It seems like something similar to this comment on an issue in the Nixpkgs repo. It seems like it might be related to how Nix is installed on Codespaces using the Nix Codespaces "feature". Most of the /nix/store packages seem to be owned by root with the group root. Could this be why it doesn't like it?

Any ideas?

direnv: error /workspaces/TestIHPJune22/.envrc is blocked. Run `direnv allow` to approve its content
@CSchank โžœ /workspaces/TestIHPJune22 (main) $ direnv allow
direnv: loading /workspaces/TestIHPJune22/.envrc
direnv: loading https://raw.githubusercontent.com/nix-community/nix-direnv/2.3.0/direnvrc (sha256-Dmd+j63L84wuzgyjITIfSxSD57Tx7v51DMxVZOsiUD8=)
direnv: using flake . --impure
warning: Git tree '/workspaces/TestIHPJune22' is dirty
do you want to allow configuration setting 'extra-substituters' to be set to 'https://digitallyinduced.cachix.org' (y/N)? y
do you want to permanently mark this value as trusted (y/N)? y
do you want to allow configuration setting 'extra-trusted-public-keys' to be set to 'digitallyinduced.cachix.org-1:y+wQvrnxQ+PdEsCt91rmvv39qRCYzEgGQaldK26hCKE=' (y/N)? y
do you want to permanently mark this value as trusted (y/N)? y
[1/0/1 copied (56.8/143.5 MiB), 13.8/34.2 MiB DL] fetching source from https://digitallyinduced.cachix.orgdirenv: ([/usr/bin/direnv export bash]) is taking a while to execute. Use CTRL-C to give up.
[1/1/2 copied (143.5 MiB), 34.2 MiB DL] fetching source from https://digitallyinduced.cach[1/1/2 copied (143.5 MiB), 34.2 MiB DL] fetching source from https://digitallyinduced.cach[1/1/2 copied (143.5 MiB), 34.2 MiB DL] fetching source from https://digitallyinduced.cach[1/1/2 copied (143.5 MiB), 34.2 MiB DL] fetching source from https://digitallyinduced.cach[1/2/3 copied (143.5 MiB), 34.2 MiB DL] fetching source from https://digitallyinduced.cach
error: suspicious ownership or permission on '/nix/store/1bvlqd9gd92s14j4hv4y1876pi8qs9rx-procfile-env' for output 'out'; rejecting this build output
error: 1 dependencies of derivation '/nix/store/2dc9dx4m8gf1myvqzfqinynvl42y5gi3-devenv-up.drv' failed to build
error: 1 dependencies of derivation '/nix/store/qxp9s5rgscqzh3rlqljgcm3lhjy1fxd5-devenv.drv' failed to build
error: 1 dependencies of derivation '/nix/store/nhj5diq7sckwhk0gfj3gm3l7rzlz5v1c-devenv-profile.drv' failed to build
error: 1 dependencies of derivation '/nix/store/0jz22sd30fxch4lq700yzf2c1dispxa7-devenv-shell-env.drv' failed to build
error: getting status of '/workspaces/TestIHPJune22/.direnv/flake-profile.1341': No such file or directory
warning: Git tree '/workspaces/TestIHPJune22' is dirty
ln: failed to create symbolic link '/workspaces/TestIHPJune22/.direnv/flake-inputs//r2ip1850igy8kciyaagw502s3c6ph1s4-source': No such file or directory
direnv: nix-direnv: renewed cache
/home/vscode/.cache/direnv/cas/sha256-Dmd+j63L84wuzgyjITIfSxSD57Tx7v51DMxVZOsiUD8=:103: /workspaces/TestIHPJune22/.direnv/flake-profile-a5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa.rc: No such file or directory
direnv: export +XDG_DATA_DIRS

Got it working at https://github.com/mpscholten/TestIHPJune22 ๐Ÿ‘ The permission issue is related to /tmp and I found a fix for that in someone elses repo. Also did some adjustments to skip the direnv allow

Thank you so much @mpscholten! A few remaining issues:

  • When you first boot it up, it runs the server and shows the forwarded ports, but that running server does not appear to be attached to a terminal, making it hard to close!
  • This new version tops out at 11.82gb according to Codespaces: image
    Before this, it would report 9.8gb. This is an issue for a couple of reasons. The obvious one is that GitPod doesn't allow containers this large, so GitPod won't work unless we can shrink that. The other (slightly less important) problem is that Codespaces allows only up to 20gb-months of storage per month, meaning having a container more than 10gb means that you can effectively only have one of them, if you keep it around for the whole month.

Strangely, when I followed the UPGRADE.md to upgrade an older repo, and it's still doing some weird stuff in Codespaces. ๐Ÿค” It's still asking for confirmation of substituters, and cachix doesn't seem to fully work as it is later building IHP from source, even though some other things are being pulled from the digitallyinduced cachix. Any ideas? This is using @mpscholten's new devcontainers.json file.

direnv: loading /workspaces/TEASync/.envrc
direnv: loading https://raw.githubusercontent.com/nix-community/nix-direnv/2.3.0/direnvrc (sha256-Dmd+j63L84wuzgyjITIfSxSD57Tx7v51DMxVZOsiUD8=)
direnv: using flake . --impure
do you want to allow configuration setting 'extra-substituters' to be set to 'https://digitallyinduced.cachix.org' (y/N)? y

I noticed that files in existing repos had the ownership vscode:root instead of vscode:vscode, so I tried changing their permissions, no luck. And I tried setfacl -k /workspaces as well. No luck. I don't see how an existing repo should be any different than one you're creating from the boilerplate! So weird.

When you first boot it up, it runs the server and shows the forwarded ports, but that running server does not appear to be attached to a terminal, making it hard to close!

Good point, there's seems to be no good alternative to the postStartCommand option here. So in that I'd recommend to just remove that postStartCommand command from the config.

This new version tops out at 11.82gb according to Codespaces:

I've added this to the IHP 1.1 release task so we don't forget this. There's no good reason that it needs more than 10GB

Strangley, when I followed the UPGRADE.md to upgrade an older repo, and it's still doing some weird stuff in Codespaces.

Can you give me access to the repo where this happens?

Good point, there's seems to be no good alternative to the postStartCommand option here. So in that I'd recommend to just remove that postStartCommand command from the config.

Perfect, people can just run devenv up themselves.

I've added this to the IHP 1.1 release task so we don't forget this. There's no good reason that it needs more than 10GB

A good chance to deal with whatever technical debt might be causing this :)

Can you give me access to the repo where this happens?

Sure, not ready to open-source it but I'll give you access, thank you!

Is the 10gb issue still happening? Might be a bit smaller now due to better cachix caching

Haven't tested GitPod recently. I will try and get back to you :)

@mpscholten can you please try to make a Codespace on the ihp-flakes-second-try branch in the private repo I added you to? This branch seems to be working great locally on Ubuntu now, but when running direnv allow, Codespaces still shows some annoying "couldn't build dependency" errors and then devenv can't be found.

I've pushed some commits onto the branch that should fix it ๐Ÿ‘

It is still about 11gb when starting a new IHP v1.1 project. Here are the Nix packages that are 10mb or more when starting a brand new IHP project. Can we remove dependency on any of these to get it below 11gb?

1.7G    /nix/store/3bdwvhww2hlhqr6hpq7dify68idk4nyh-ghc-9.4.4
700M    /nix/store/v0ylfp9fm05n2606ix719yb4kq5k93m7-ghc-9.4.4-doc
622M    /nix/store/b322r3k5yq15n5df0qmp4nzyr6a1l6fs-ghc-lib-parser-9.4.4.20221225
504M    /nix/store/sh7g6js3ldcpn1xldzia844yqjr1j5ln-ihp-v1.1.0
333M    /nix/store/djgcai6ild5nchx70vr9f7lsp4d00qrx-nixpkgs
327M    /nix/store/3i5iasvc4035gna928p7iwnmv8nify1k-source
319M    /nix/store/0ad473b52045nkvbbx3ach4rbxa53292-source
295M    /nix/store/rksi78f7vq2xrfghg6jfg1r5dsa8lbv7-source
256M    /nix/store/8sm7wycza5fl6lnsmw11sn4vqkvw4xyh-source
210M    /nix/store/aafdki1nf49k5vxq6gx2yabiybk2bjmw-gcc-12.2.0
183M    /nix/store/aywlyk2f8fpf48wzb3z48q2hwcjg9w0i-ghc-lib-parser-9.4.4.20221225-doc
182M    /nix/store/k4pbsvv217rkx8skfp6lwdk7vqsi9189-cabal-install-3.10.1.0
177M    /nix/store/crb94039800bw4myx5jk53gww4vaif4d-lsp-types-1.6.0.0
175M    /nix/store/wp1sq1cshmxmbh90wpx03xiwpqx33vzk-Cabal-syntax-3.10.1.0
162M    /nix/store/wh2d3syhmb9h7abi01x5pg844l02a2l4-retrie-1.2.2
144M    /nix/store/cid5975yr4kl744vm1daggrd9g4sx1xx-ghcide-1.10.0.0
139M    /nix/store/ka5mfzdhifvbbxz4kw8rl8fn2hpmjv0h-haskell-src-exts-1.23.1
112M    /nix/store/zjvzqrpsg5g3xiaw4rksx7sczw8f1lcm-ihp-v1.1.0-doc
107M    /nix/store/qi33wzcgzn8kvqsjnrmkwwv70d4i91qz-Cabal-3.10.1.0
107M    /nix/store/iqn44pgsygndqqvwc70z9z1ig9fdadbz-ghc-9.4.4-with-packages
92M     /nix/store/fdqpyj613dr0v1l1lrzqhzay7sk4xg87-python3-3.10.10
82M     /nix/store/jhflvwr40xbb0xr6jx4311icp9cym1fp-python3-3.10.12
77M     /nix/store/hl4cak1f0rq6yf29xjymba5iis4cd0i7-apply-refact-0.11.0.0
76M     /nix/store/iyjaqpz6knr9pifqnal2wyfjrz65avqi-hie-bios-0.12.0
62M     /nix/store/952nmbf1jaq1sq800kkvsz6ck7l526zi-lens-5.2.2
61M     /nix/store/76q8jdf5m134zz7430hhi5dril6nkhc2-fourmolu-0.10.0.0
60M     /nix/store/zxhdmxwlq3wvji307nsam38k9i763wdc-bhxvnjlx8py6350dmkf325rbiwvb24v3-source
60M     /nix/store/pprfx9ffvkng8b4x4mzx4h2q2q5hln3r-ghcide-1.10.0.0-doc
60M     /nix/store/bhxvnjlx8py6350dmkf325rbiwvb24v3-source
59M     /nix/store/m6kc0wg6zii4bcw0fqxmclgy27ph09va-perl-5.36.0
59M     /nix/store/74x7gb001dl7rh7js2aa7vrb5hsz2wx8-perl-5.36.0
57M     /nix/store/p5j4dhr8pr6nfi0b1d9fzdpi97hj86al-cryptonite-0.30
57M     /nix/store/lly2yvq694sh7yc8mr3kna2zcqm4zl7x-hlint-3.5
56M     /nix/store/14cy8ka7r0ma7pjh7k87ym2p41d560f9-vector-0.12.3.1
55M     /nix/store/phdkw08437b5jsjs34xlksszjjxb72cm-aeson-2.1.2.1
53M     /nix/store/z3krm0kbya3x172jakm93g3792j1vqs1-ormolu-0.5.3.0
50M     /nix/store/dz2jvs0p5afc3c2l6y7x12z4q86i05dv-ghc-exactprint-1.6.1.1
46M     /nix/store/y3prildfqfhz6pjw15yvdcf9ixg03mpy-floskell-0.10.7
46M     /nix/store/p3wmg9a2gg8x6xf62q16inbd6pcmbyh7-cabal-install-3.10.1.0-doc
45M     /nix/store/v4j8pc3a38v1whlwncz9mwc6vzlqkwgs-Cabal-syntax-3.10.1.0-doc
42M     /nix/store/2jfscfcaifwasx0mi60bwblg2k2a6jnv-hiedb-0.4.3.0
41M     /nix/store/zdfahcwijrlr2k23rainfkszazab2nmi-git-2.41.0
38M     /nix/store/5kxqiwzdip2i3yhd55bwimjfjijql9lq-tls-1.5.8
37M     /nix/store/7xba7v9vibmfa1wif5lf5li5rzi7yacj-icu4c-72.1
36M     /nix/store/fw8igjrlwll5pj7gvz5wqszypv67q1hv-lens-5.2.2-doc
34M     /nix/store/62l162qm16j43pi3g3w7nnqp1l4b7rlq-Cabal-3.10.1.0-doc
34M     /nix/store/28njqxn2gywvz45pfgwim5b2g1dqdymv-systemd-253.2
33M     /nix/store/7djy8yqx8hlqvk1cdi2qw9qgw8yzl2vy-basement-0.0.15-doc
32M     /nix/store/97ks7rgz4m97vl8j34yc6racmx489yzl-haskell-src-exts-1.23.1-doc
31M     /nix/store/1x4ijm9r1a88qk7zcmbbfza324gx1aac-glibc-2.37-8
31M     /nix/store/1n2l5law9g3b77hcfyp50vrhhssbrj5g-glibc-2.37-8
30M     /nix/store/kh6fg6n5189n7k6v1srl8l951hh4hv6a-stylish-haskell-0.14.4.0
30M     /nix/store/8mjm7frm8xg3xhshi2brzy1kimibbdf1-basement-0.0.15
30M     /nix/store/31kgniiyi2xsidd4rnhgrlr4ls8y6ggq-blaze-html-0.9.1.2
29M     /nix/store/rd7vavkbr9h6ms1k4q38jgbxxb56xfjv-hls-refactor-plugin-1.2.0.0
29M     /nix/store/f4qnwzv6y0nq8lix33jr5ykkyybs6fxf-binutils-2.40
28M     /nix/store/97nla4xnjxn5gi4rfvqx5cdrmvw1sqyj-cabal-install-solver-3.10.1.0
27M     /nix/store/y257186v2h7gbsrj0vp6yfh3f568i3ii-ListLike-4.7.8
27M     /nix/store/bi66z837fx8zfyms008kbjrxq32sr21s-generic-deriving-1.14.3
26M     /nix/store/z44kwkx2893pgmwhsq7gl3mlwsz6lfs5-monoid-subclasses-1.1.3
26M     /nix/store/jlfdd87nfb0gi34g7ppxlhbz8gqynych-postgresql-14.7
26M     /nix/store/178kjh02vs7742m6d7nd7mzlwvn3kzx9-stack-2.9.1
25M     /nix/store/jmrvcdyy92895psz5z6iixh2caa0jjar-algebraic-graphs-0.6.1
25M     /nix/store/akklkz061wkajq8kjywl66wragx7vmsz-cabal-install-solver-3.10.1.0-doc
25M     /nix/store/4bds9hkfjyqxdax4rkskqr2dbjff4sjf-nixexprs.tar.xz
24M     /nix/store/ksv5ib9nyv6wp6n4b7gc00j7arh2wbim-postgresql-13.10
24M     /nix/store/8r50kv7qqs38ynbjmlzlicqvdqyja5zi-mono-traversable-1.0.15.3
23M     /nix/store/vgjkvix3gvgid5jzr69h9wqjb7yclk0f-postgresql-simple-0.6.4
23M     /nix/store/h5pjcpqin401br7z3c7q37bzdgxmg631-ihp-hsx-v1.1.0
23M     /nix/store/6hcj2bzx06axlmbn2pdp1a0znfahfzl9-postgresql-13.10-debug
22M     /nix/store/rhy1q3hwzk0sir13v1xcyv646mli3g4z-vector-0.12.3.1-doc
22M     /nix/store/l1s3p2pdbarlilnwxixlp24rq66m3wh5-free-5.1.10
22M     /nix/store/kf0psq8gfjsycq41sj28qy9fgcph1pkp-minio-hs-1.6.0
20M     /nix/store/vnh3xlgvg0sjdj20gs3gw64b72mg7xxv-http2-3.0.3
20M     /nix/store/kmr71c1xb2309zz7r58dcvkds6nwsjn0-cabal-install-3.10.1.0
20M     /nix/store/dmx4rf6gy2slzhyg1aa8izap883ylrac-cachix-1.6
20M     /nix/store/3hrvhnba3zkspyc2659ak5qc7lf2xxzh-QuickCheck-2.14.2
20M     /nix/store/0rkzs37kqp3vsx2ijay5mfp3a7rwlb9p-HsYAML-0.2.1.1
19M     /nix/store/xa9w9nisvp4fjc4z87c22cn706mp60p1-regex-tdfa-1.3.2
19M     /nix/store/38xnnsgz3fy901hsnnvh3k0rcwi6f4ln-hackage-security-0.6.2.3
19M     /nix/store/2jcy8643apn2p4gwfm25cvyfldvzi3xn-hspec-core-2.10.10
18M     /nix/store/a9h0s5x0na38wl2rjqym6wdffshpavlp-attoparsec-0.14.4
18M     /nix/store/3wqasl97rjiza3vd7fxjnvli2w9l30mk-nix-2.17.0
18M     /nix/store/233cpkbrgh4axicgw9rl6npv8skx45nm-cryptonite-0.30-doc
17M     /nix/store/gqvnvzv8r5x60fmix56alhnbq4ih1r9w-postgresql-13.10-doc
17M     /nix/store/aaaxdfsw4gfpm8xy8xmsin5vndzmnwf8-hls-eval-plugin-1.5.0.0
17M     /nix/store/1x6hmi7yj8kfmfxzmig642xrihyhy22d-lsp-types-1.6.0.0-doc
16M     /nix/store/npq3fym27zpd14fnqjwxvqyhw0s82v5c-git-2.41.0-doc
16M     /nix/store/7xqgzmjl2j1ds100af5ly5fmjbm5z7pg-bifunctors-5.5.15
16M     /nix/store/6sm81qw470pg0viqprhycgns6vww7r2w-vector-algorithms-0.8.0.4
16M     /nix/store/4nlgxhb09sdr51nc9hdm8az5b08vzkgx-glibc-2.35-163
15M     /nix/store/fc45k2askr2gi7xwyyzkw3mr1qnvkr4r-megaparsec-9.2.2
15M     /nix/store/cgan9crcc31v0b6ddfgnb6d7hfprhzjb-relude-1.1.0.0-doc
15M     /nix/store/75qxmyz1g4zlrl06pabw7zv8bblk5xwq-aeson-2.1.2.1-doc
14M     /nix/store/v85s2wqc9mshfa3hyvbq5za32xgn6q56-xml-conduit-1.9.1.2
14M     /nix/store/s6b3nh66p6rg1zclrs5wp9dmyn2igfr6-cmdargs-0.10.22
14M     /nix/store/n9l9gi3rim9i1hw043bfn9s5g0khph33-semigroupoids-5.3.7
14M     /nix/store/cqzx3mjycr8gnbkr53whjkvjdcgmj3cy-classy-prelude-1.5.0.2-doc
14M     /nix/store/7kf6zyynraia2mcnz3k6z5xr9p3nds12-systemd-minimal-253.2
14M     /nix/store/72fkfq7yncf6jjpmlcqc53b6w2kd8agj-haskell-lexer-1.1.1
14M     /nix/store/3h39sadqn486i80zkgqnsp7jkr890qhg-conduit-1.3.4.3
14M     /nix/store/1bcx26cr3dah148p41v4c7g2vfh2ajdr-retrie-1.2.2-doc
13M     /nix/store/929nivdrkpl0d7qbl7x7hg1vnpxjc3sk-direct-sqlite-2.3.28
12M     /nix/store/zlv7s5ghsszdhcixvj8nyzwqc6qrc17i-polyparse-1.13
12M     /nix/store/w3lxa9rsb96kwn2873nyca95q813h03g-mime-types-0.1.0.9
12M     /nix/store/kln5fj0gz4sp44sidx6drrqbkj1wvvr9-profunctors-5.6.2
12M     /nix/store/j52nkd7h7d0p8sm4j9vi81isql2rswg1-algebraic-graphs-0.6.1-doc
12M     /nix/store/f36sxag0ij1b8sffpixnqgflfaafifyl-nix-2.14.1
12M     /nix/store/b0b27kmdiz1fz6vsvpks0af1mzp9l5l9-http-client-0.7.13.1
12M     /nix/store/6y5rqs0mi0ppdnw4sqv1ba0rd3gzvmnp-HTTP-4000.4.1
11M     /nix/store/ykd3rl3ww5mhr3az5bqsbyvlr4ir4rhq-resolv-0.1.2.0
11M     /nix/store/sw0785x1pfvg15lh1rllkn4460w3cw1s-crypto-pubkey-types-0.4.3
11M     /nix/store/hjybnkwbpqlif1vg90lf1lj9gqm5zyw7-apply-refact-0.11.0.0-doc
11M     /nix/store/g8n2hhxcrz4b5j0j3i285jp920zb6cbi-tls-1.5.8-doc
11M     /nix/store/9c58ab6p53zlmh07zg91xxblkay1rls0-devenv-profile
11M     /nix/store/0g4k2xhywbqw2hzbxw12xqlx8kww7wdz-blaze-html-0.9.1.2-doc
10M     /nix/store/02c5jc8i87wicxvgljvx9jhrmiz8svwf-ip-1.7.6