Some notes I took while submitting my first PR to the Elixir repo.
Local development of Elixir with ASDF
First clone (following the README):
git clone https://github.com/elixir-lang/elixir
cd elixir
make
Takes a minute to compile, then binaries sit in bin/
. I like it a lot that the whole build process is only a make
away, refreshing!
Configuring asdf
Now we want to use that version in our project. Our project uses ASDF to manage our tools, so we need to tell ASDF about the local version.
Edit .tools-version
like so:
diff --git a/.tool-versions b/.tool-versions
index 0a011338b4..d5ecff1f5a 100644
--- a/.tool-versions
+++ b/.tool-versions
@@ -1,3 +1,3 @@
-elixir 1.15.6-otp-26
+elixir path:../elixir
erlang 26.1
Here I cloned the Elixir repo in the parent directory of my project, so I can use a relative path. You can use an absolute path too.
Testing
In your repo, run iex
, and you should see the version you just compiled:
~/git/elixir-dev elixir-dev*
❯ iex
Erlang/OTP 26 [erts-14.1] [source] [64-bit] [smp:20:20] [ds:20:20:10] [async-threads:1] [jit:ns]
Interactive Elixir (1.17.0-dev) - press Ctrl+C to exit (type h() ENTER for help)
^^^
|
+-- here!