Skip to content

Compilation breaks when renaming project directory #5430

@raffomania

Description

@raffomania

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 :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedContributions encouraged

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions