You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When rebar3 is bootstrapped with relx as a checkout dependency (symlink in _checkouts/relx), running rebar3 release crashes.
Background
When working on a relx fix and testing it through rebar3, I made relx a checkout dependency. However, it appears to have triggered a crash when using the bootstrapped rebar3.
I'm guessing that this is unique to rebar3 and its bootstrapping process, rather than a general issue with checkout dependencies.
Though I'm unfamiliar with the rebar3 internals, I'd be open to help out with this issue. 🙂
For rebar3 release to print out Thank you for developing with a checkout version of relx and run to completion 😛
(just kidding on the printing part)
If there's a better way to develop a dependency of rebar3 which is to be tested with rebar3, perhaps there can be a small blurb about it on the rebar3 README or documentation website?
Workaround
A workaround for this which I ended up using was modifying rebar3's own rebar.config
and running rebar3 unlock relx before ./bootstrap to pick up the latest local changes from relx.
Further considerations
If relx was already fetched (e.g. with rebar3 get-deps) prior to it being symlinked to _checkouts, running ./bootstrap generates a rebar3 build which seemingly uses the non-development version of relx. (Isn't that odd?)
To reproduce:
cd rebar3
Remove _build and _checkouts, if they exist
Use existing version of rebar3 to fetch dependencies: rebar3 get-deps
Symlink _checkouts/relx to a development version
./bootstrap
Run rebar3 release (using the rebar3 just bootstrapped) on another project
Observe the output is not from the development version of relx
The text was updated successfully, but these errors were encountered:
mxxk
changed the title
rebar3 release crashes when bootstrapped with relx as a checkout dependencyrebar3 release crashes when bootstrapped with relx as a checkout dependency
Jul 27, 2021
Turns out the rootcause here is that when relx is a checkout dependency, its output directory is _build/<profile>/checkouts, not _build/<profile>/lib, so the lines
When
rebar3
is bootstrapped withrelx
as a checkout dependency (symlink in_checkouts/relx
), runningrebar3 release
crashes.Background
When working on a
relx
fix and testing it throughrebar3
, I maderelx
a checkout dependency. However, it appears to have triggered a crash when using the bootstrappedrebar3
.I'm guessing that this is unique to
rebar3
and its bootstrapping process, rather than a general issue with checkout dependencies.Though I'm unfamiliar with the
rebar3
internals, I'd be open to help out with this issue. 🙂Environment
The environment below is from the Docker container repro in https://gist.github.com/mxxk/d986422a77806cb81bc760f4c97afa80. (The repro was originally obtained on macOS 10.15.7.)
Current behaviour
A repro of this issue is available in the form of a
Dockerfile
which fails at therebar3 release
step: https://gist.github.com/mxxk/d986422a77806cb81bc760f4c97afa80Expected behaviour
rebar3 release
to print outThank you for developing with a checkout version of relx
and run to completion 😛rebar3
which is to be tested withrebar3
, perhaps there can be a small blurb about it on therebar3
README or documentation website?Workaround
A workaround for this which I ended up using was modifying
rebar3
's ownrebar.config
and running
rebar3 unlock relx
before./bootstrap
to pick up the latest local changes fromrelx
.Further considerations
relx
was already fetched (e.g. withrebar3 get-deps
) prior to it being symlinked to_checkouts
, running./bootstrap
generates arebar3
build which seemingly uses the non-development version ofrelx
. (Isn't that odd?)cd rebar3
_build
and_checkouts
, if they existrebar3
to fetch dependencies:rebar3 get-deps
_checkouts/relx
to a development version./bootstrap
rebar3 release
(using therebar3
just bootstrapped) on another projectrelx
The text was updated successfully, but these errors were encountered: