This guide helps you migrate from rebar3_lfe 0.4.x to 0.5.0.
If you installed the plugin globally:
# Remove old version
rm -rf ~/.cache/rebar3/plugins/*rebar3_lfe*
rm -rf ~/.config/rebar3/plugins/rebar3_lfe
# Reinstall
rebar3 lfe version # Downloads new pluginCommands remain the same:
# All these still work:
rebar3 lfe compile
rebar3 lfe clean
rebar3 lfe repl
rebar3 lfe ltestMost configurations remain compatible:
%% Still works in 0.5.0
{lfe_opts, [
debug_info,
verbose
]}.
{lfe_first_files, [
"src/records.lfe"
]}.The following undocumented options were removed:
%% ❌ No longer supported
{lfe_opts, [
{special_internal_option, true} % Was never documented
]}.If you used any undocumented options, please file an issue.
0.4.x behavior:
- Header file changes were ignored
- Required manual
rebar3 cleanbefore rebuild
0.5.0 behavior:
- Header changes automatically trigger recompilation
- No manual clean needed
0.4.x behavior:
- Temporary files sometimes left behind
- Race conditions in concurrent builds
0.5.0 behavior:
- Temporary files always cleaned up
- Safe for parallel compilation
- Better error messages
0.5.0 is much faster:
0.4.x: 10 seconds (always full rebuild)
0.5.0: 10 seconds (first build)
0.3 seconds (incremental, no changes)
2 seconds (incremental, 1 file changed)
cd your-project
# Backup
cp rebar.config rebar.config.bak
# Edit rebar.config
vim rebar.configChange:
{plugins, [
{rebar3_lfe, "0.4.12"}
]}.To:
{plugins, [
{rebar3_lfe, "0.5.0"}
]}.# Remove old build artifacts
rm -rf _build
rm -rf rebar.lock
# Remove old global plugin
rm -rf ~/.cache/rebar3/plugins/*rebar3_lfe*# Download new plugin and compile
rebar3 lfe compile
# Verify beam files created
ls -la ebin/*.beam
# Test incremental compilation
touch src/some_file.lfe
rebar3 lfe compile
# Should be fast!GitHub Actions:
# Before
- name: Compile
run: rebar3 compile
# After (same, but faster!)
- name: Compile
run: rebar3 lfe compileError: Plugin r3lfe not found
Solution: Clear cache and retry:
rm -rf ~/.cache/rebar3/plugins/*
rebar3 lfe compileCheck: Do you have debug logging enabled?
# Disable debug logging
unset DEBUG
rebar3 lfe compileSolution: Ensure LFE 2.2+ is in deps:
{deps, [
{lfe, "2.2.0"} % Minimum version
]}.Solution: Use rebar3 lfe repl instead of just lfe:
# ❌ Wrong (old way)
lfe -pa ebin -pa deps/*/ebin
# ✅ Correct (new way)
rebar3 lfe replIncremental compilation is 10-30x faster.
Header changes now properly detected.
Clear, actionable error messages.
90% test coverage, tested on OTP 24-28.
Modern codebase, easier to maintain and extend.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Chat: LFE Slack
If you need to rollback:
# In rebar.config
{plugins, [
{rebar3_lfe, "0.4.12"}
]}.
# Clear cache
rm -rf _build
rm -rf ~/.cache/rebar3/plugins/*
# Rebuild
rebar3 compileWe'd love to know why you rolled back - please file an issue!