gleam-lang/gleam

Compilation breaks when renaming project directory

Aberta

#5.430 aberto em 5 de mar. de 2026

 (3 comentários) (0 reação) (0 responsável)Rust (960 forks)batch import
help wanted

Métricas do repositório

Stars
 (21.417 estrelas)
Métricas de merge de PR
 (Mesclagem média 10d 19h) (69 fundiu PRs em 30d)

Description

Renaming a gleam project directory causes a compilation error. Running the following shell commands (on Arch Linux):

gleam new repro
cd repro
gleam add lustre
gleam build
cd ..
mv repro repro_broken
cd repro_broken
gleam build

Result in the following error:

error: File IO failure

An error occurred while trying to link this file:

    /tmp/tmp.QzSnQdYrRy/repro_broken/build/dev/erlang/lustre/priv

The error message from the file IO library was:

    File exists (os error 17)

Running gleam build a second time seems to fix the error.

I routinely run into this because I run gleam projects via bind mounts in various development containers. It's a bit of a weird setup :D

I didn't do a super deep investigation but it seems related to the symlinks to priv, e.g. in build/dev/erlang/lustre:

ll build/dev/erlang/lustre
Permissions Size User   Group  Date Modified Name
...
lrwxrwxrwx     - rafael rafael  5 Mär 11:50  priv -> /tmp/tmp.QzSnQdYrRy/repro/build/packages/lustre/priv

Would it be an option to use relative links instead? Or to find broken symlinks and recreate them?

In both cases, this seems like an easy issue to fix, if someone is interested in giving some hints I'd like to make a PR :)

Guia do colaborador