Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

topiary: 0.3.0 → 0.4.0 #340964

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

topiary: 0.3.0 → 0.4.0 #340964

wants to merge 1 commit into from

Conversation

toastal
Copy link
Contributor

@toastal toastal commented Sep 10, 2024

Description of changes

A messy update to say the least. Topiary 0.4.0 was released a while
back, but the update was non-trivial. Not only did a bunch of Git
outputHashes SHAs need to get updated & a new, revendored Cargo.lock,
but a Git submodule in tree-sitter-bash, which is by Topiary referenced
at an arbitrary point in 0.19.0’s history, is now no longer up & needed
patching to remove it. To circumvent needing to learn how patch to a
Cargo dependency for this, I have forked the tree-sitter-bash project @
Topiary 0.4.0’s commit + cherry-picked the
b2959f8be16fa1e2ee88a560074527fdef05b328 patch which removes the
submodule dependencies (to check that this is indeed the case, you may
check the commit graph
https://codeberg.org/toastal/tree-sitter-bash/graph). I also opened an
upstream issue with Topiary
tweag/topiary#702 to hopefully in the future
start keeping these grammar queries updated more often than once every 3
years.

closes #312724

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

1

Footnotes

  1. Please consider giving up MS GitHub or offering a non-proprietary, non-US-corporate-controlled mirror for this free software project. I wish to delete this Microsoft account in the future, but I need more projects like this to support alternative methods to send patches & contribute.

A messy update to say the least. Topiary 0.4.0 was released a while
back, but the update was non-trivial. Not only did a bunch of Git
outputHashes SHAs need to get updated & a new, revendored Cargo.lock,
but a Git submodule in tree-sitter-bash, which is by Topiary referenced
at an arbitrary point in 0.19.0’s history, is now no longer up & needed
patching to remove it. To circumvent needing to learn how patch to a
Cargo dependency for this, I have forked the tree-sitter-bash project @
Topiary 0.4.0’s commit + cherry-picked the
b2959f8be16fa1e2ee88a560074527fdef05b328 patch which removes the
submodule dependencies (to check that this is indeed the case, you may
check the commit graph
<https://codeberg.org/toastal/tree-sitter-bash/graph>). I also opened an
upstream issue with Topiary
<tweag/topiary#734> to hopefully in the future
start keeping these grammar queries updated more often than once every 3
years.

Co-Authored-By: Avi Dessauer <avi.the.coder@gmail.com>
Copy link
Contributor

@nbraud nbraud left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since fetching the submodule is doable, avoid replacing the tree-sitter-bash's repository with your own.

This would make checking changes (and verifying that your repo matches upstream's contents) much more difficult, not to mention maintaining that repo creates an additional maintenance burden.

Comment on lines +7 to +20
-tree-sitter-bash = { git = "https://github.com/tree-sitter/tree-sitter-bash", rev = "1b0321ee85701d5036c334a6f04761cdc672e64c" }
+tree-sitter-bash = { git = "https://codeberg.org/toastal/tree-sitter-bash", rev = "7d944f110a29be19c727fdb08d0d2784e277a8de" }
tree-sitter-css = { git = "https://github.com/tree-sitter/tree-sitter-css.git", rev = "02b4ee757654b7d54fe35352fd8e53a8a4385d42" }
tree-sitter-json = { git = "https://github.com/tree-sitter/tree-sitter-json.git", rev = "3b129203f4b72d532f58e72c5310c0a7db3b8e6d" }
tree-sitter-nickel = { git = "https://github.com/nickel-lang/tree-sitter-nickel", rev = "43433d8477b24cd13acaac20a66deda49b7e2547" }

--- a/Cargo.lock 2024-09-10 11:56:50.347199224 +0700
+++ b/Cargo.lock 2024-09-10 11:54:37.112528333 +0700
@@ -1383,7 +1383,7 @@
[[package]]
name = "tree-sitter-bash"
version = "0.19.0"
-source = "git+https://github.com/tree-sitter/tree-sitter-bash?rev=1b0321ee85701d5036c334a6f04761cdc672e64c#1b0321ee85701d5036c334a6f04761cdc672e64c"
+source = "git+https://codeberg.org/toastal/tree-sitter-bash?rev=7d944f110a29be19c727fdb08d0d2784e277a8de#7d944f110a29be19c727fdb08d0d2784e277a8de"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@toastal I couldn't reproduce the issue with fetching from Savahna:

❯ git clone https://github.com/tree-sitter/tree-sitter-bash
Cloning into 'tree-sitter-bash'...
remote: Enumerating objects: 2580, done.
remote: Counting objects: 100% (1154/1154), done.
remote: Compressing objects: 100% (329/329), done.
remote: Total 2580 (delta 856), reused 988 (delta 778), pack-reused 1426 (from 1)
Receiving objects: 100% (2580/2580), 16.34 MiB | 16.78 MiB/s, done.
Resolving deltas: 100% (1651/1651), done.

❯ cd tree-sitter-bash
❯ git checkout 1b0321ee85701d5036c334a6f04761cdc672e64c
HEAD is now at 1b0321e Merge pull request #182 from amaanq/fix-conflicts

❯ git submodule init
Submodule 'examples/bash' (https://git.savannah.gnu.org/git/bash.git) registered for path 'examples/bash'
Submodule 'examples/bash-it' (https://github.com/Bash-it/bash-it.git) registered for path 'examples/bash-it'

❯ git submodule update
Cloning into '/tmp/tmp.knu8J5GK0a/tree-sitter-bash/examples/bash'...
Cloning into '/tmp/tmp.knu8J5GK0a/tree-sitter-bash/examples/bash-it'...
Submodule path 'examples/bash': checked out 'a99d905216cc0aac5de0c3050f4afc54e21c6bc5'
Submodule path 'examples/bash-it': checked out 'c3d9c46ef832f808c929a22b36c8ef6dd45cb98a'

❯ ll examples/bash*
examples/bash:
.rw-r--r--  94k nicoo 12 sept. 11:28 ABOUT-NLS
.rw-r--r--  57k nicoo 12 sept. 11:28 aclocal.m4
.rw-r--r--  15k nicoo 12 sept. 11:28 alias.c
.rw-r--r-- 2,3k nicoo 12 sept. 11:28 alias.h
[...]

examples/bash-it:
drwxr-xr-x    - nicoo 12 sept. 11:28 aliases
.rwxr-xr-x 3,0k nicoo 12 sept. 11:28 bash_it.sh
drwxr-xr-x    - nicoo 12 sept. 11:28 completion
[...]

git submodule update took 3m 21s, which should be no problem during builds, especially once Hydra caches it.

@toastal
Copy link
Contributor Author

toastal commented Sep 12, 2024 via email

@nbraud
Copy link
Contributor

nbraud commented Sep 12, 2024

Will check when I am back & I hope you are right since I don’t like or want this solution either, but it was failing otherwise in my sandbox due to the submodule.

Uh. You are correct, it does fail when building the drv:

error: Server does not allow request for unadvertised object a99d905216cc0aac5de0c3050f4afc54e21c6bc5 exporting https://github.com/tree-sitter/tree-sitter-bash (rev 1b0321ee85701d5036c334a6f04761cdc672e64c) into /nix/store/znbknz2j5li1f1y8nh8b8kvsa0ag24xl-tree-sitter-bash-1b0321e Initialized empty Git repository in /nix/store/znbknz2j5li1f1y8nh8b8kvsa0ag24xl-tree-sitter-bash-1b0321e/.git/ remote: Enumerating objects: 55, done.�[K remote: Counting objects: 1% (1/55)�[K remote: Counting objects: 3% (2/55)�[K remote: Counting objects: 5% (3/55)�[K remote: Counting objects: 7% (4/55)�[K remote: Counting objects: 9% (5/55)�[K remote: Counting objects: 10% (6/55)�[K remote: Counting objects: 12% (7/55)�[K remote: Counting objects: 14% (8/55)�[K remote: Counting objects: 16% (9/55)�[K remote: Counting objects: 18% (10/55)�[K remote: Counting objects: 20% (11/55)�[K remote: Counting objects: 21% (12/55)�[K remote: Counting objects: 23% (13/55)�[K remote: Counting objects: 25% (14/55)�[K remote: Counting objects: 27% (15/55)�[K remote: Counting objects: 29% (16/55)�[K remote: Counting objects: 30% (17/55)�[K remote: Counting objects: 32% (18/55)�[K remote: Counting objects: 34% (19/55)�[K remote: Counting objects: 36% (20/55)�[K remote: Counting objects: 38% (21/55)�[K remote: Counting objects: 40% (22/55)�[K remote: Counting objects: 41% (23/55)�[K remote: Counting objects: 43% (24/55)�[K remote: Counting objects: 45% (25/55)�[K remote: Counting objects: 47% (26/55)�[K remote: Counting objects: 49% (27/55)�[K remote: Counting objects: 50% (28/55)�[K remote: Counting objects: 52% (29/55)�[K remote: Counting objects: 54% (30/55)�[K remote: Counting objects: 56% (31/55)�[K remote: Counting objects: 58% (32/55)�[K remote: Counting objects: 60% (33/55)�[K remote: Counting objects: 61% (34/55)�[K remote: Counting objects: 63% (35/55)�[K remote: Counting objects: 65% (36/55)�[K remote: Counting objects: 67% (37/55)�[K remote: Counting objects: 69% (38/55)�[K remote: Counting objects: 70% (39/55)�[K remote: Counting objects: 72% (40/55)�[K remote: Counting objects: 74% (41/55)�[K remote: Counting objects: 76% (42/55)�[K remote: Counting objects: 78% (43/55)�[K remote: Counting objects: 80% (44/55)�[K remote: Counting objects: 81% (45/55)�[K remote: Counting objects: 83% (46/55)�[K remote: Counting objects: 85% (47/55)�[K remote: Counting objects: 87% (48/55)�[K remote: Counting objects: 89% (49/55)�[K remote: Counting objects: 90% (50/55)�[K remote: Counting objects: 92% (51/55)�[K remote: Counting objects: 94% (52/55)�[K remote: Counting objects: 96% (53/55)�[K remote: Counting objects: 98% (54/55)�[K remote: Counting objects: 100% (55/55)�[K remote: Counting objects: 100% (55/55), done.�[K remote: Compressing objects: 2% (1/48)�[K remote: Compressing objects: 4% (2/48)�[K remote: Compressing objects: 6% (3/48)�[K remote: Compressing objects: 8% (4/48)�[K remote: Compressing objects: 10% (5/48)�[K remote: Compressing objects: 12% (6/48)�[K remote: Compressing objects: 14% (7/48)�[K remote: Compressing objects: 16% (8/48)�[K remote: Compressing objects: 18% (9/48)�[K remote: Compressing objects: 20% (10/48)�[K remote: Compressing objects: 22% (11/48)�[K remote: Compressing objects: 25% (12/48)�[K remote: Compressing objects: 27% (13/48)�[K remote: Compressing objects: 29% (14/48)�[K remote: Compressing objects: 31% (15/48)�[K remote: Compressing objects: 33% (16/48)�[K remote: Compressing objects: 35% (17/48)�[K remote: Compressing objects: 37% (18/48)�[K remote: Compressing objects: 39% (19/48)�[K remote: Compressing objects: 41% (20/48)�[K remote: Compressing objects: 43% (21/48)�[K remote: Compressing objects: 45% (22/48)�[K remote: Compressing objects: 47% (23/48)�[K remote: Compressing objects: 50% (24/48)�[K remote: Compressing objects: 52% (25/48)�[K remote: Compressing objects: 54% (26/48)�[K remote: Compressing objects: 56% (27/48)�[K remote: Compressing objects: 58% (28/48)�[K remote: Compressing objects: 60% (29/48)�[K remote: Compressing objects: 62% (30/48)�[K remote: Compressing objects: 64% (31/48)�[K remote: Compressing objects: 66% (32/48)�[K remote: Compressing objects: 68% (33/48)�[K remote: Compressing objects: 70% (34/48)�[K remote: Compressing objects: 72% (35/48)�[K remote: Compressing objects: 75% (36/48)�[K remote: Compressing objects: 77% (37/48)�[K remote: Compressing objects: 79% (38/48)�[K remote: Compressing objects: 81% (39/48)�[K remote: Compressing objects: 83% (40/48)�[K remote: Compressing objects: 85% (41/48)�[K remote: Compressing objects: 87% (42/48)�[K remote: Compressing objects: 89% (43/48)�[K remote: Compressing objects: 91% (44/48)�[K remote: Compressing objects: 93% (45/48)�[K remote: Compressing objects: 95% (46/48)�[K remote: Compressing objects: 97% (47/48)�[K remote: Compressing objects: 100% (48/48)�[K remote: Compressing objects: 100% (48/48), done.�[K Unpacking objects: 1% (1/55) Unpacking objects: 3% (2/55) Unpacking objects: 5% (3/55) Unpacking objects: 7% (4/55) Unpacking objects: 9% (5/55) Unpacking objects: 10% (6/55) Unpacking objects: 12% (7/55) Unpacking objects: 14% (8/55) Unpacking objects: 16% (9/55) Unpacking objects: 18% (10/55) Unpacking objects: 20% (11/55) Unpacking objects: 21% (12/55) Unpacking objects: 23% (13/55) Unpacking objects: 25% (14/55) Unpacking objects: 27% (15/55) Unpacking objects: 29% (16/55) Unpacking objects: 30% (17/55) Unpacking objects: 32% (18/55) Unpacking objects: 34% (19/55) Unpacking objects: 36% (20/55) Unpacking objects: 38% (21/55) Unpacking objects: 40% (22/55) Unpacking objects: 41% (23/55) Unpacking objects: 43% (24/55) Unpacking objects: 45% (25/55) Unpacking objects: 47% (26/55) Unpacking objects: 49% (27/55) Unpacking objects: 50% (28/55) Unpacking objects: 52% (29/55) Unpacking objects: 54% (30/55) Unpacking objects: 56% (31/55) Unpacking objects: 58% (32/55) Unpacking objects: 60% (33/55) Unpacking objects: 61% (34/55) Unpacking objects: 63% (35/55) Unpacking objects: 65% (36/55) Unpacking objects: 67% (37/55) Unpacking objects: 69% (38/55) Unpacking objects: 70% (39/55) Unpacking objects: 72% (40/55) Unpacking objects: 74% (41/55) Unpacking objects: 76% (42/55) Unpacking objects: 78% (43/55) Unpacking objects: 80% (44/55) Unpacking objects: 81% (45/55) Unpacking objects: 83% (46/55) Unpacking objects: 85% (47/55) Unpacking objects: 87% (48/55) Unpacking objects: 89% (49/55) Unpacking objects: 90% (50/55) Unpacking objects: 92% (51/55) remote: Total 55 (delta 1), reused 32 (delta 0), pack-reused 0 (from 0)�[K Unpacking objects: 94% (52/55) Unpacking objects: 96% (53/55) Unpacking objects: 98% (54/55) Unpacking objects: 100% (55/55) Unpacking objects: 100% (55/55), 205.71 KiB | 586.00 KiB/s, done. From https://github.com/tree-sitter/tree-sitter-bash * branch 1b0321ee85701d5036c334a6f04761cdc672e64c -> FETCH_HEAD Switched to a new branch 'fetchgit' Submodule 'examples/bash' (https://git.savannah.gnu.org/git/bash.git) registered for path 'examples/bash' Submodule 'examples/bash-it' (https://github.com/Bash-it/bash-it.git) registered for path 'examples/bash-it' Cloning into '/nix/store/znbknz2j5li1f1y8nh8b8kvsa0ag24xl-tree-sitter-bash-1b0321e/examples/bash'... remote: Counting objects: 1479, done. remote: Compressing objects: 0% (1/1216) remote: Compressing objects: 1% (13/1216) remote: Compressing objects: 2% (25/1216) remote: Compressing objects: 3% (37/1216) remote: Compressing objects: 4% (49/1216) remote: Compressing objects: 5% (61/1216) remote: Compressing objects: 6% (73/1216) remote: Compressing objects: 7% (86/1216) remote: Compressing objects: 8% (98/1216) remote: Compressing objects: 9% (110/1216) remote: Compressing objects: 10% (122/1216) remote: Compressing objects: 11% (134/1216) remote: Compressing objects: 12% (146/1216) remote: Compressing objects: 13% (159/1216) remote: Compressing objects: 14% (171/1216) remote: Compressing objects: 15% (183/1216) remote: Compressing objects: 16% (195/1216) remote: Compressing objects: 17% (207/1216) remote: Compressing objects: 18% (219/1216) remote: Compressing objects: 19% (232/1216) remote: Compressing objects: 20% (244/1216) remote: Compressing objects: 21% (256/1216) remote: Compressing objects: 22% (268/1216) remote: Compressing objects: 23% (280/1216) remote: Compressing objects: 24% (292/1216) remote: Compressing objects: 25% (304/1216) remote: Compressing objects: 26% (317/1216) remote: Compressing objects: 27% (329/1216) remote: Compressing objects: 28% (341/1216) remote: Compressing objects: 29% (353/1216) remote: Compressing objects: 30% (365/1216) remote: Compressing objects: 31% (377/1216) remote: Compressing objects: 32% (390/1216) remote: Compressing objects: 33% (402/1216) remote: Compressing objects: 34% (414/1216) remote: Compressing objects: 35% (426/1216) remote: Compressing objects: 36% (438/1216) remote: Compressing objects: 37% (450/1216) remote: Compressing objects: 38% (463/1216) remote: Compressing objects: 39% (475/1216) remote: Compressing objects: 40% (487/1216) remote: Compressing objects: 41% (499/1216) remote: Compressing objects: 42% (511/1216) remote: Compressing objects: 43% (523/1216) remote: Compressing objects: 44% (536/1216) remote: Compressing objects: 45% (548/1216) remote: Compressing objects: 46% (560/1216) remote: Compressing objects: 47% (572/1216) remote: Compressing objects: 48% (584/1216) remote: Compressing objects: 49% (596/1216) remote: Compressing objects: 50% (608/1216) remote: Compressing objects: 51% (621/1216) remote: Compressing objects: 52% (633/1216) remote: Compressing objects: 53% (645/1216) remote: Compressing objects: 54% (657/1216) remote: Compressing objects: 55% (669/1216) remote: Compressing objects: 56% (681/1216) remote: Compressing objects: 57% (694/1216) remote: Compressing objects: 58% (706/1216) remote: Compressing objects: 59% (718/1216) remote: Compressing objects: 60% (730/1216) remote: Compressing objects: 61% (742/1216) remote: Compressing objects: 62% (754/1216) remote: Compressing objects: 63% (767/1216) remote: Compressing objects: 64% (779/1216) remote: Compressing objects: 65% (791/1216) remote: Compressing objects: 66% (803/1216) remote: Compressing objects: 67% (815/1216) remote: Compressing objects: 68% (827/1216) remote: Compressing objects: 69% (840/1216) remote: Compressing objects: 70% (852/1216) remote: Compressing objects: 71% (864/1216) remote: Compressing objects: 72% (876/1216) remote: Compressing objects: 73% (888/1216) remote: Compressing objects: 74% (900/1216) remote: Compressing objects: 75% (912/1216) remote: Compressing objects: 76% (925/1216) remote: Compressing objects: 77% (937/1216) remote: Compressing objects: 78% (949/1216) remote: Compressing objects: 79% (961/1216) remote: Compressing objects: 80% (973/1216) remote: Compressing objects: 81% (985/1216) remote: Compressing objects: 82% (998/1216) remote: Compressing objects: 83% (1010/1216) remote: Compressing objects: 84% (1022/1216) remote: Compressing objects: 85% (1034/1216) remote: Compressing objects: 86% (1046/1216) remote: Compressing objects: 87% (1058/1216) remote: Compressing objects: 88% (1071/1216) remote: Compressing objects: 89% (1083/1216) remote: Compressing objects: 90% (1095/1216) remote: Compressing objects: 91% (1107/1216) remote: Compressing objects: 92% (1119/1216) remote: Compressing objects: 93% (1131/1216) remote: Compressing objects: 94% (1144/1216) remote: Compressing objects: 95% (1156/1216) remote: Compressing objects: 96% (1168/1216) remote: Compressing objects: 97% (1180/1216) remote: Compressing objects: 98% (1192/1216) remote: Compressing objects: 99% (1204/1216) remote: Compressing objects: 100% (1216/1216) remote: Compressing objects: 100% (1216/1216), done. Receiving objects: 0% (1/1479) Receiving objects: 1% (15/1479), 172.00 KiB | 312.00 KiB/s Receiving objects: 2% (30/1479), 172.00 KiB | 312.00 KiB/s Receiving objects: 2% (43/1479), 364.00 KiB | 293.00 KiB/s Receiving objects: 3% (45/1479), 364.00 KiB | 293.00 KiB/s Receiving objects: 4% (60/1479), 364.00 KiB | 293.00 KiB/s Receiving objects: 5% (74/1479), 364.00 KiB | 293.00 KiB/s Receiving objects: 6% (89/1479), 364.00 KiB | 293.00 KiB/s Receiving objects: 7% (104/1479), 364.00 KiB | 293.00 KiB/s Receiving objects: 8% (119/1479), 364.00 KiB | 293.00 KiB/s Receiving objects: 9% (134/1479), 364.00 KiB | 293.00 KiB/s Receiving objects: 10% (148/1479), 1.14 MiB | 671.00 KiB/s Receiving objects: 10% (158/1479), 2.48 MiB | 905.00 KiB/s Receiving objects: 10% (162/1479), 3.89 MiB | 1.02 MiB/s Receiving objects: 11% (163/1479), 3.89 MiB | 1.02 MiB/s Receiving objects: 12% (178/1479), 4.58 MiB | 1.06 MiB/s Receiving objects: 13% (193/1479), 4.58 MiB | 1.06 MiB/s Receiving objects: 14% (208/1479), 4.58 MiB | 1.06 MiB/s Receiving objects: 15% (222/1479), 4.58 MiB | 1.06 MiB/s Receiving objects: 16% (237/1479), 4.58 MiB | 1.06 MiB/s Receiving objects: 17% (252/1479), 4.58 MiB | 1.06 MiB/s Receiving objects: 18% (267/1479), 4.58 MiB | 1.06 MiB/s Receiving objects: 19% (282/1479), 4.58 MiB | 1.06 MiB/s Receiving objects: 20% (296/1479), 4.58 MiB | 1.06 MiB/s Receiving objects: 21% (311/1479), 4.58 MiB | 1.06 MiB/s Receiving objects: 22% (326/1479), 5.32 MiB | 1.09 MiB/s Receiving objects: 23% (341/1479), 5.32 MiB | 1.09 MiB/s Receiving objects: 24% (355/1479), 5.32 MiB | 1.09 MiB/s Receiving objects: 25% (370/1479), 5.32 MiB | 1.09 MiB/s Receiving objects: 26% (385/1479), 5.32 MiB | 1.09 MiB/s Receiving objects: 27% (400/1479), 5.32 MiB | 1.09 MiB/s Receiving objects: 28% (415/1479), 5.32 MiB | 1.09 MiB/s Receiving objects: 28% (420/1479), 5.32 MiB | 1.09 MiB/s Receiving objects: 29% (429/1479), 5.32 MiB | 1.09 MiB/s Receiving objects: 30% (444/1479), 5.32 MiB | 1.09 MiB/s Receiving objects: 31% (459/1479), 5.32 MiB | 1.09 MiB/s Receiving objects: 32% (474/1479), 5.32 MiB | 1.09 MiB/s Receiving objects: 33% (489/1479), 5.32 MiB | 1.09 MiB/s Receiving objects: 34% (503/1479), 5.32 MiB | 1.09 MiB/s Receiving objects: 35% (518/1479), 5.32 MiB | 1.09 MiB/s Receiving objects: 36% (533/1479), 5.32 MiB | 1.09 MiB/s Receiving objects: 37% (548/1479), 5.32 MiB | 1.09 MiB/s Receiving objects: 38% (563/1479), 5.32 MiB | 1.09 MiB/s Receiving objects: 39% (577/1479), 5.32 MiB | 1.09 MiB/s Receiving objects: 40% (592/1479), 6.05 MiB | 1.22 MiB/s Receiving objects: 41% (607/1479), 6.05 MiB | 1.22 MiB/s Receiving objects: 42% (622/1479), 6.05 MiB | 1.22 MiB/s Receiving objects: 43% (636/1479), 6.05 MiB | 1.22 MiB/s Receiving objects: 44% (651/1479), 6.05 MiB | 1.22 MiB/s Receiving objects: 45% (666/1479), 6.05 MiB | 1.22 MiB/s Receiving objects: 46% (681/1479), 6.77 MiB | 1.38 MiB/s Receiving objects: 46% (684/1479), 6.77 MiB | 1.38 MiB/s Receiving objects: 47% (696/1479), 6.77 MiB | 1.38 MiB/s Receiving objects: 48% (710/1479), 7.49 MiB | 1.37 MiB/s Receiving objects: 49% (725/1479), 7.49 MiB | 1.37 MiB/s Receiving objects: 49% (732/1479), 8.24 MiB | 1.40 MiB/s Receiving objects: 50% (740/1479), 8.24 MiB | 1.40 MiB/s Receiving objects: 51% (755/1479), 8.77 MiB | 1.36 MiB/s Receiving objects: 52% (770/1479), 8.77 MiB | 1.36 MiB/s Receiving objects: 53% (784/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 54% (799/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 55% (814/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 56% (829/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 57% (844/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 58% (858/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 58% (868/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 59% (873/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 60% (888/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 61% (903/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 62% (917/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 63% (932/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 64% (947/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 65% (962/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 66% (977/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 67% (991/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 68% (1006/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 69% (1021/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 70% (1036/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 71% (1051/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 72% (1065/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 73% (1080/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 74% (1095/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 75% (1110/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 76% (1125/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 77% (1139/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 78% (1154/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 79% (1169/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 80% (1184/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 81% (1198/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 82% (1213/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 83% (1228/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 84% (1243/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 85% (1258/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 86% (1272/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 87% (1287/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 88% (1302/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 89% (1317/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 90% (1332/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 91% (1346/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 92% (1361/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 93% (1376/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 94% (1391/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 95% (1406/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 96% (1420/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 97% (1435/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 98% (1450/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 99% (1465/1479), 9.30 MiB | 1.32 MiB/s remote: Total 1479 (delta 346), reused 781 (delta 239) Receiving objects: 100% (1479/1479), 9.30 MiB | 1.32 MiB/s Receiving objects: 100% (1479/1479), 9.84 MiB | 1.18 MiB/s, done. Resolving deltas: 0% (0/346) Resolving deltas: 1% (4/346) Resolving deltas: 2% (7/346) Resolving deltas: 3% (11/346) Resolving deltas: 4% (14/346) Resolving deltas: 5% (19/346) Resolving deltas: 6% (21/346) Resolving deltas: 7% (25/346) Resolving deltas: 8% (28/346) Resolving deltas: 9% (32/346) Resolving deltas: 10% (35/346) Resolving deltas: 11% (39/346) Resolving deltas: 12% (42/346) Resolving deltas: 13% (45/346) Resolving deltas: 14% (49/346) Resolving deltas: 15% (53/346) Resolving deltas: 16% (56/346) Resolving deltas: 17% (59/346) Resolving deltas: 18% (63/346) Resolving deltas: 19% (66/346) Resolving deltas: 20% (72/346) Resolving deltas: 21% (73/346) Resolving deltas: 22% (77/346) Resolving deltas: 23% (80/346) Resolving deltas: 24% (84/346) Resolving deltas: 25% (87/346) Resolving deltas: 26% (90/346) Resolving deltas: 27% (94/346) Resolving deltas: 28% (99/346) Resolving deltas: 29% (101/346) Resolving deltas: 30% (104/346) Resolving deltas: 31% (108/346) Resolving deltas: 32% (112/346) Resolving deltas: 33% (115/346) Resolving deltas: 34% (118/346) Resolving deltas: 35% (122/346) Resolving deltas: 36% (125/346) Resolving deltas: 37% (129/346) Resolving deltas: 38% (132/346) Resolving deltas: 39% (135/346) Resolving deltas: 40% (139/346) Resolving deltas: 41% (142/346) Resolving deltas: 42% (146/346) Resolving deltas: 43% (149/346) Resolving deltas: 44% (153/346) Resolving deltas: 45% (156/346) Resolving deltas: 46% (161/346) Resolving deltas: 47% (163/346) Resolving deltas: 48% (167/346) Resolving deltas: 49% (170/346) Resolving deltas: 50% (173/346) Resolving deltas: 51% (177/346) Resolving deltas: 52% (180/346) Resolving deltas: 53% (184/346) Resolving deltas: 54% (187/346) Resolving deltas: 55% (191/346) Resolving deltas: 56% (194/346) Resolving deltas: 57% (198/346) Resolving deltas: 58% (201/346) Resolving deltas: 59% (206/346) Resolving deltas: 60% (209/346) Resolving deltas: 61% (212/346) Resolving deltas: 62% (215/346) Resolving deltas: 63% (218/346) Resolving deltas: 64% (222/346) Resolving deltas: 65% (225/346) Resolving deltas: 66% (229/346) Resolving deltas: 67% (232/346) Resolving deltas: 68% (236/346) Resolving deltas: 69% (239/346) Resolving deltas: 70% (243/346) Resolving deltas: 71% (246/346) Resolving deltas: 72% (250/346) Resolving deltas: 73% (253/346) Resolving deltas: 74% (257/346) Resolving deltas: 75% (260/346) Resolving deltas: 76% (264/346) Resolving deltas: 77% (267/346) Resolving deltas: 78% (270/346) Resolving deltas: 79% (274/346) Resolving deltas: 80% (277/346) Resolving deltas: 81% (281/346) Resolving deltas: 82% (284/346) Resolving deltas: 83% (288/346) Resolving deltas: 84% (291/346) Resolving deltas: 85% (295/346) Resolving deltas: 86% (298/346) Resolving deltas: 87% (302/346) Resolving deltas: 88% (305/346) Resolving deltas: 89% (308/346) Resolving deltas: 90% (312/346) Resolving deltas: 91% (315/346) Resolving deltas: 92% (319/346) Resolving deltas: 93% (322/346) Resolving deltas: 94% (326/346) Resolving deltas: 95% (329/346) Resolving deltas: 96% (334/346) Resolving deltas: 97% (336/346) Resolving deltas: 98% (340/346) Resolving deltas: 99% (343/346) Resolving deltas: 100% (346/346) Resolving deltas: 100% (346/346), done. Cloning into '/nix/store/znbknz2j5li1f1y8nh8b8kvsa0ag24xl-tree-sitter-bash-1b0321e/examples/bash-it'... remote: Enumerating objects: 599, done. remote: Counting objects: 0% (1/599) remote: Counting objects: 1% (6/599) remote: Counting objects: 2% (12/599) remote: Counting objects: 3% (18/599) remote: Counting objects: 4% (24/599) remote: Counting objects: 5% (30/599) remote: Counting objects: 6% (36/599) remote: Counting objects: 7% (42/599) remote: Counting objects: 8% (48/599) remote: Counting objects: 9% (54/599) remote: Counting objects: 10% (60/599) remote: Counting objects: 11% (66/599) remote: Counting objects: 12% (72/599) remote: Counting objects: 13% (78/599) remote: Counting objects: 14% (84/599) remote: Counting objects: 15% (90/599) remote: Counting objects: 16% (96/599) remote: Counting objects: 17% (102/599) remote: Counting objects: 18% (108/599) remote: Counting objects: 19% (114/599) remote: Counting objects: 20% (120/599) remote: Counting objects: 21% (126/599) remote: Counting objects: 22% (132/599) remote: Counting objects: 23% (138/599) remote: Counting objects: 24% (144/599) remote: Counting objects: 25% (150/599) remote: Counting objects: 26% (156/599) remote: Counting objects: 27% (162/599) remote: Counting objects: 28% (168/599) remote: Counting objects: 29% (174/599) remote: Counting objects: 30% (180/599) remote: Counting objects: 31% (186/599) remote: Counting objects: 32% (192/599) remote: Counting objects: 33% (198/599) remote: Counting objects: 34% (204/599) remote: Counting objects: 35% (210/599) remote: Counting objects: 36% (216/599) remote: Counting objects: 37% (222/599) remote: Counting objects: 38% (228/599) remote: Counting objects: 39% (234/599) remote: Counting objects: 40% (240/599) remote: Counting objects: 41% (246/599) remote: Counting objects: 42% (252/599) remote: Counting objects: 43% (258/599) remote: Counting objects: 44% (264/599) remote: Counting objects: 45% (270/599) remote: Counting objects: 46% (276/599) remote: Counting objects: 47% (282/599) remote: Counting objects: 48% (288/599) remote: Counting objects: 49% (294/599) remote: Counting objects: 50% (300/599) remote: Counting objects: 51% (306/599) remote: Counting objects: 52% (312/599) remote: Counting objects: 53% (318/599) remote: Counting objects: 54% (324/599) remote: Counting objects: 55% (330/599) remote: Counting objects: 56% (336/599) remote: Counting objects: 57% (342/599) remote: Counting objects: 58% (348/599) remote: Counting objects: 59% (354/599) remote: Counting objects: 60% (360/599) remote: Counting objects: 61% (366/599) remote: Counting objects: 62% (372/599) remote: Counting objects: 63% (378/599) remote: Counting objects: 64% (384/599) remote: Counting objects: 65% (390/599) remote: Counting objects: 66% (396/599) remote: Counting objects: 67% (402/599) remote: Counting objects: 68% (408/599) remote: Counting objects: 69% (414/599) remote: Counting objects: 70% (420/599) remote: Counting objects: 71% (426/599) remote: Counting objects: 72% (432/599) remote: Counting objects: 73% (438/599) remote: Counting objects: 74% (444/599) remote: Counting objects: 75% (450/599) remote: Counting objects: 76% (456/599) remote: Counting objects: 77% (462/599) remote: Counting objects: 78% (468/599) remote: Counting objects: 79% (474/599) remote: Counting objects: 80% (480/599) remote: Counting objects: 81% (486/599) remote: Counting objects: 82% (492/599) remote: Counting objects: 83% (498/599) remote: Counting objects: 84% (504/599) remote: Counting objects: 85% (510/599) remote: Counting objects: 86% (516/599) remote: Counting objects: 87% (522/599) remote: Counting objects: 88% (528/599) remote: Counting objects: 89% (534/599) remote: Counting objects: 90% (540/599) remote: Counting objects: 91% (546/599) remote: Counting objects: 92% (552/599) remote: Counting objects: 93% (558/599) remote: Counting objects: 94% (564/599) remote: Counting objects: 95% (570/599) remote: Counting objects: 96% (576/599) remote: Counting objects: 97% (582/599) remote: Counting objects: 98% (588/599) remote: Counting objects: 99% (594/599) remote: Counting objects: 100% (599/599) remote: Counting objects: 100% (599/599), done. remote: Compressing objects: 0% (1/472) remote: Compressing objects: 1% (5/472) remote: Compressing objects: 2% (10/472) remote: Compressing objects: 3% (15/472) remote: Compressing objects: 4% (19/472) remote: Compressing objects: 5% (24/472) remote: Compressing objects: 6% (29/472) remote: Compressing objects: 7% (34/472) remote: Compressing objects: 8% (38/472) remote: Compressing objects: 9% (43/472) remote: Compressing objects: 10% (48/472) remote: Compressing objects: 11% (52/472) remote: Compressing objects: 12% (57/472) remote: Compressing objects: 13% (62/472) remote: Compressing objects: 14% (67/472) remote: Compressing objects: 15% (71/472) remote: Compressing objects: 16% (76/472) remote: Compressing objects: 17% (81/472) remote: Compressing objects: 18% (85/472) remote: Compressing objects: 19% (90/472) remote: Compressing objects: 20% (95/472) remote: Compressing objects: 21% (100/472) remote: Compressing objects: 22% (104/472) remote: Compressing objects: 23% (109/472) remote: Compressing objects: 24% (114/472) remote: Compressing objects: 25% (118/472) remote: Compressing objects: 26% (123/472) remote: Compressing objects: 27% (128/472) remote: Compressing objects: 28% (133/472) remote: Compressing objects: 29% (137/472) remote: Compressing objects: 30% (142/472) remote: Compressing objects: 31% (147/472) remote: Compressing objects: 32% (152/472) remote: Compressing objects: 33% (156/472) remote: Compressing objects: 34% (161/472) remote: Compressing objects: 35% (166/472) remote: Compressing objects: 36% (170/472) remote: Compressing objects: 37% (175/472) remote: Compressing objects: 38% (180/472) remote: Compressing objects: 39% (185/472) remote: Compressing objects: 40% (189/472) remote: Compressing objects: 41% (194/472) remote: Compressing objects: 42% (199/472) remote: Compressing objects: 43% (203/472) remote: Compressing objects: 44% (208/472) remote: Compressing objects: 45% (213/472) remote: Compressing objects: 46% (218/472) remote: Compressing objects: 47% (222/472) remote: Compressing objects: 48% (227/472) remote: Compressing objects: 49% (232/472) remote: Compressing objects: 50% (236/472) remote: Compressing objects: 51% (241/472) remote: Compressing objects: 52% (246/472) remote: Compressing objects: 53% (251/472) remote: Compressing objects: 54% (255/472) remote: Compressing objects: 55% (260/472) remote: Compressing objects: 56% (265/472) remote: Compressing objects: 57% (270/472) remote: Compressing objects: 58% (274/472) remote: Compressing objects: 59% (279/472) remote: Compressing objects: 60% (284/472) remote: Compressing objects: 61% (288/472) remote: Compressing objects: 62% (293/472) remote: Compressing objects: 63% (298/472) remote: Compressing objects: 64% (303/472) remote: Compressing objects: 65% (307/472) remote: Compressing objects: 66% (312/472) remote: Compressing objects: 67% (317/472) remote: Compressing objects: 68% (321/472) remote: Compressing objects: 69% (326/472) remote: Compressing objects: 70% (331/472) remote: Compressing objects: 71% (336/472) remote: Compressing objects: 72% (340/472) remote: Compressing objects: 73% (345/472) remote: Compressing objects: 74% (350/472) remote: Compressing objects: 75% (354/472) remote: Compressing objects: 76% (359/472) remote: Compressing objects: 77% (364/472) remote: Compressing objects: 78% (369/472) remote: Compressing objects: 79% (373/472) remote: Compressing objects: 80% (378/472) remote: Compressing objects: 81% (383/472) remote: Compressing objects: 82% (388/472) remote: Compressing objects: 83% (392/472) remote: Compressing objects: 84% (397/472) remote: Compressing objects: 85% (402/472) remote: Compressing objects: 86% (406/472) remote: Compressing objects: 87% (411/472) remote: Compressing objects: 88% (416/472) remote: Compressing objects: 89% (421/472) remote: Compressing objects: 90% (425/472) remote: Compressing objects: 91% (430/472) remote: Compressing objects: 92% (435/472) remote: Compressing objects: 93% (439/472) remote: Compressing objects: 94% (444/472) remote: Compressing objects: 95% (449/472) remote: Compressing objects: 96% (454/472) remote: Compressing objects: 97% (458/472) remote: Compressing objects: 98% (463/472) remote: Compressing objects: 99% (468/472) remote: Compressing objects: 100% (472/472) remote: Compressing objects: 100% (472/472), done. Receiving objects: 0% (1/599) Receiving objects: 1% (6/599) Receiving objects: 2% (12/599) Receiving objects: 3% (18/599) Receiving objects: 4% (24/599) Receiving objects: 5% (30/599) Receiving objects: 6% (36/599) Receiving objects: 7% (42/599) Receiving objects: 8% (48/599) Receiving objects: 9% (54/599) Receiving objects: 10% (60/599) Receiving objects: 11% (66/599) Receiving objects: 12% (72/599) Receiving objects: 13% (78/599) Receiving objects: 14% (84/599) Receiving objects: 15% (90/599) Receiving objects: 16% (96/599) Receiving objects: 17% (102/599) Receiving objects: 18% (108/599) Receiving objects: 19% (114/599) Receiving objects: 20% (120/599) Receiving objects: 21% (126/599) Receiving objects: 22% (132/599) Receiving objects: 23% (138/599) Receiving objects: 24% (144/599) Receiving objects: 25% (150/599) Receiving objects: 26% (156/599) Receiving objects: 27% (162/599) Receiving objects: 28% (168/599) Receiving objects: 29% (174/599) Receiving objects: 30% (180/599) Receiving objects: 31% (186/599) Receiving objects: 32% (192/599) Receiving objects: 33% (198/599) Receiving objects: 34% (204/599) Receiving objects: 35% (210/599) Receiving objects: 36% (216/599) Receiving objects: 37% (222/599) Receiving objects: 38% (228/599) Receiving objects: 39% (234/599) Receiving objects: 40% (240/599) Receiving objects: 41% (246/599) Receiving objects: 42% (252/599) Receiving objects: 43% (258/599) Receiving objects: 44% (264/599) Receiving objects: 45% (270/599) Receiving objects: 46% (276/599) Receiving objects: 47% (282/599) Receiving objects: 48% (288/599) Receiving objects: 49% (294/599) Receiving objects: 50% (300/599) Receiving objects: 51% (306/599) Receiving objects: 52% (312/599) Receiving objects: 53% (318/599) Receiving objects: 54% (324/599) Receiving objects: 55% (330/599) Receiving objects: 56% (336/599) Receiving objects: 57% (342/599) Receiving objects: 58% (348/599) Receiving objects: 59% (354/599) Receiving objects: 60% (360/599) Receiving objects: 61% (366/599) Receiving objects: 62% (372/599) Receiving objects: 63% (378/599) Receiving objects: 64% (384/599) Receiving objects: 65% (390/599) Receiving objects: 66% (396/599) Receiving objects: 67% (402/599) Receiving objects: 68% (408/599) Receiving objects: 69% (414/599) Receiving objects: 70% (420/599) Receiving objects: 71% (426/599) Receiving objects: 72% (432/599) Receiving objects: 73% (438/599) Receiving objects: 74% (444/599) Receiving objects: 75% (450/599) Receiving objects: 76% (456/599) Receiving objects: 77% (462/599) Receiving objects: 78% (468/599) Receiving objects: 79% (474/599) Receiving objects: 80% (480/599) Receiving objects: 81% (486/599) Receiving objects: 82% (492/599) Receiving objects: 83% (498/599) Receiving objects: 84% (504/599) Receiving objects: 85% (510/599) Receiving objects: 86% (516/599) Receiving objects: 87% (522/599) Receiving objects: 88% (528/599) Receiving objects: 89% (534/599) Receiving objects: 90% (540/599) Receiving objects: 91% (546/599) Receiving objects: 92% (552/599) Receiving objects: 93% (558/599) Receiving objects: 94% (564/599) remote: Total 599 (delta 35), reused 435 (delta 26), pack-reused 0 (from 0) Receiving objects: 95% (570/599) Receiving objects: 96% (576/599) Receiving objects: 97% (582/599) Receiving objects: 98% (588/599) Receiving objects: 99% (594/599) Receiving objects: 100% (599/599) Receiving objects: 100% (599/599), 1.30 MiB | 4.01 MiB/s, done. Resolving deltas: 0% (0/35) Resolving deltas: 2% (1/35) Resolving deltas: 5% (2/35) Resolving deltas: 8% (3/35) Resolving deltas: 11% (4/35) Resolving deltas: 14% (5/35) Resolving deltas: 17% (6/35) Resolving deltas: 22% (8/35) Resolving deltas: 25% (9/35) Resolving deltas: 28% (10/35) Resolving deltas: 31% (11/35) Resolving deltas: 34% (12/35) Resolving deltas: 37% (13/35) Resolving deltas: 40% (14/35) Resolving deltas: 42% (15/35) Resolving deltas: 45% (16/35) Resolving deltas: 48% (17/35) Resolving deltas: 51% (18/35) Resolving deltas: 54% (19/35) Resolving deltas: 57% (20/35) Resolving deltas: 60% (21/35) Resolving deltas: 62% (22/35) Resolving deltas: 65% (23/35) Resolving deltas: 71% (25/35) Resolving deltas: 74% (26/35) Resolving deltas: 80% (28/35) Resolving deltas: 82% (29/35) Resolving deltas: 85% (30/35) Resolving deltas: 88% (31/35) Resolving deltas: 94% (33/35) Resolving deltas: 97% (34/35) Resolving deltas: 100% (35/35) Resolving deltas: 100% (35/35), done. remote: Total 0 (delta 0), reused 0 (delta 0)�[K error: Server does not allow request for unadvertised object a99d905216cc0aac5de0c3050f4afc54e21c6bc5 fatal: Fetched in submodule path 'examples/bash', but it did not contain a99d905216cc0aac5de0c3050f4afc54e21c6bc5. Direct fetching of that commit failed. error: Server does not allow request for unadvertised object a99d905216cc0aac5de0c3050f4afc54e21c6bc5 fatal: Fetched in submodule path 'examples/bash', but it did not contain a99d905216cc0aac5de0c3050f4afc54e21c6bc5. Direct fetching of that commit failed.

nix-prefetch-git has the same issue, but running the same commands as above works within the sandbox, so... it might be a bug in fetchgit 😬

❯ ll $(nix-build /tmp/test.nix)/examples/bash*
/nix/store/hm7c7mck3kkab5s9akj5dh9whf7fcakk-test-treesiter-bash-salted-dhinf3vdz2w1/examples/bash:
.r--r--r--  94k root  1 janv.  1970 ABOUT-NLS
.r--r--r--  57k root  1 janv.  1970 aclocal.m4
[...]

/nix/store/hm7c7mck3kkab5s9akj5dh9whf7fcakk-test-treesiter-bash-salted-dhinf3vdz2w1/examples/bash-it:
dr-xr-xr-x    - root  1 janv.  1970 aliases
.r-xr-xr-x 3,0k root  1 janv.  1970 bash_it.sh
[...]

@nbraud
Copy link
Contributor

nbraud commented Sep 12, 2024

Oh, this is even documented in fetchgit's source:

fetchgit has one problem: git fetch only works for refs.
This is because fetching arbitrary (maybe dangling) commits creates garbage collection risks and checking whether a commit belongs to a ref is expensive. This may change in the future when some caching is added to git (?)
Usually refs are either tags (refs/tags/) or branches (refs/heads/)
Cloning branches will make the hash check fail when there is an update.
But not all patches we want can be accessed by tags.

The workaround is getting the last n commits so that it's likely that they still contain the hash we want.

for now : increase depth iteratively (TODO)

TODO indeed 😹

PS: now reading fetchgit/builder.sh and regretting my life choices 😿

@toastal
Copy link
Contributor Author

toastal commented Sep 13, 2024

Sorry, I got back & forgot to try to rebuild. Is there a suggestion here now as it seems the conversation developed further?

You might be able to fetch & apply a singular patch to the tree-sitter-bash dependency & try to maybe reference it by file, but since this is embedded inside Rust Cargo.* files, it is out of my knowledge.

@toastal
Copy link
Contributor Author

toastal commented Sep 13, 2024

The interesting bit here is that upstream tree-sitter-bash has removed the submodule dependency altogether so it can be safely skipped/ignored for this specific package upgrade, but topiary won’t be the last package needing a submodule like this. The obvious solution is to replace submodules & language package managers with Nix but I am not yet the Dictator of Software.

@nbraud
Copy link
Contributor

nbraud commented Sep 13, 2024

topiary won’t be the last package needing a submodule like this.

Indeed. I believe the sensible thing to do here, is fix fetchgit to more reliably find a given commit hash from the remote repo. Unfortunately, I don't currently have the spoons to deal with its builder.sh, or to start a conversation about rewriting fetchgit's builder in a more-structured language.

Note that fetching based on a named reference is not affected, including anything using the common pattern rev = "refs/tags/{version}", which is likely why the issue isn't occuring more frequently.

@toastal
Copy link
Contributor Author

toastal commented Sep 14, 2024

So is there a reasonable way to move forward? I have a proposed fix even if it is certainly ugly.

@toastal
Copy link
Contributor Author

toastal commented Oct 7, 2024

@nbraud bump?

@toastal
Copy link
Contributor Author

toastal commented Oct 17, 2024

@Lassulus & by that I mean is this a good idea perhaps to circumvent the upstream bash dependency issue since cargo fetching submodules isn’t easy with nix?

@toastal
Copy link
Contributor Author

toastal commented Oct 25, 2024

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update request: topiary 0.3.0 → 0.5.1
2 participants