Most git forges offer their tarballs prefixed with their repo name, but tangled does not. This can cause bugs with tools that expect tarballs from git forges to prefix their tarballs, for example, this breaks lix as in https://git.lix.systems/lix-project/lix/issues/1177:
$ nix flake metadata https://tangled.org/@althaea.zone/candy/archive/trunk.tar.gz
error:
โฆ while fetching the input 'https://tangled.org/@althaea.zone/candy/archive/trunk.tar.gz'
error: tarball 'https://tangled.org/@althaea.zone/candy/archive/trunk.tar.gz' contains an unexpected number of top-level files
As a comparison, heres gitlab, forgejo, and github's tarballs, which are prefixed:
$ curl --silent https://gitlab.winehq.org/wine/wine/-/archive/master/wine-master.tar.gz | tar -tzf - | head -n 3
wine-master/
wine-master/.editorconfig
wine-master/.gitattributes
$ curl --silent https://git.lix.systems/lix-project/lix/archive/main.tar.gz | tar -tzf - | head -n 3
lix/
lix/.clang-format
lix/.clang-tidy
$ curl --silent https://codeload.github.com/torvalds/linux/tar.gz/refs/heads/master | tar -tzf - | head -n 3
linux-master/
linux-master/.clang-format
linux-master/.clippy.toml
The default tangled behavior is quite unconventional. It lists all the files at the top of the tarball:
$ curl --silent https://tangled.org/tangled.org/core/archive/master | tar -tzf - | head -n 6
.air/
.air/appview.toml
.air/blog.toml
.air/knot.toml
.air/spindle.toml
.editorconfig
I think it would make sense for tangled to adhere to this convention across other forges, for compatibility across tools.