atomvm/atomvm_rebar3_plugin
58.0
Adequate · 17 September 2026
2.7k
lines of production code
Erlang
primary language
1
measurement over time
What this system is
This system is a development toolkit for AtomVM, providing a rebar3 plugin to build, test, and deploy Erlang-based applications to embedded hardware. It supports the creation of OTP applications and generates binary packbeams for deployment to devices such as ESP32, STM32, and Raspberry Pi Pico. The toolkit also includes scaffolding templates, example projects, and test drivers to facilitate the development workflow.
Features
Add OTP application example for AtomVM
Added a new example demonstrating an OTP application structure within AtomVM, including the application callback, a supervisor with a one-for-one strategy, and a gen\_server worker that logs periodic ticks and simulates a crash after a configurable interval.
_examples/otp\application · high confidence
Add initial application structure and license metadata
The example application now includes a standard Erlang application resource file (myapp.app.src) that defines the application name, version (0.1.0), dependencies (kernel, stdlib), and license information (Apache-2.0), alongside a basic module file (myapp.erl) with a start/0 entry point. This change ensures the application is properly structured for building and resolves Hex package warnings by explicitly declaring the license.
examples/myapp · high confidence
Added AtomVM application project template
The priv directory now includes a template for generating new AtomVM application projects. This template provides the necessary boilerplate files, including a .gitignore, Apache 2.0 LICENSE, README, rebar.config, and source files (atomvm\_app.erl and atomvm\_app.app.src), allowing users to scaffold new applications with standard structure and licensing.
priv · high confidence
Added OTP application boot shim for AtomVM
A new Erlang module, init\_shim, has been added to the assets directory to support the OTP application framework in AtomVM. This shim provides a start/0 function that invokes init:boot(), enabling proper initialization of OTP applications within the AtomVM environment.
assets · high confidence
New AtomVM rebar3 plugin providers for building, dialyzing, and flashing embedded devices
This release introduces a comprehensive set of new providers under the \atomvm\ namespace to streamline the AtomVM development workflow. The \atomvm bootstrap\ task now compiles special bootstrap modules into a dedicated \bootstrap\_ebin\ directory to prevent rebar build conflicts. The \atomvm packbeam\ task creates AtomVM application files, supporting OTP application structures and external AVM modules. A new \atomvm dialyzer\ provider enables type checking for AtomVM applications using source files for the base PLT. For deployment, new providers allow flashing to various hardware: \atomvm esp32\_flash\ and \atomvm stm32\_flash\ write packbeams to ESP32 and STM32 devices respectively, while \atomvm pico\_flash\ and \atomvm uf2create\ handle Raspberry Pi Pico (RP2040) deployment by converting packbeams to UF2 format. Additionally, \atomvm escriptize\ creates standalone executables by embedding the AVM into the AtomVM binary. Legacy providers (e.g., \esp32\_flash\, \packbeam\) are retained but deprecated, warning users to migrate to the new \atomvm\ namespace tasks.
src · high confidence
New example applications for AtomVM
Added two new example projects, \myapp\ and \otp\_application\, to demonstrate building and deploying AtomVM applications. The \myapp\ example shows a basic setup using the \atomvm\_rebar3\_plugin\ with a custom start entrypoint, while the \otp\_application\ example demonstrates leveraging the OTP application framework, including Application, Supervisor, and GenServer behaviors, with automatic dependency management.
examples · high confidence
Behavioural changes
Plugin tasks moved to atomvm namespace and dependency configuration updated
The rebar3 plugin tasks (such as packbeam, esp32\_flash, and pico\_flash) have been moved from the default rebar3 namespace to the atomvm namespace (e.g., rebar3 atomvm packbeam). The legacy tasks in the default namespace are now deprecated and will trigger warnings. Additionally, the plugin now depends on atomvm\_packbeam version 0.8.1 and uf2tool version 1.1.0, replacing the previous git-based packbeam dependency. Documentation generation has also been switched from edoc to ex\_doc.
(repo-wide) · high confidence
Test coverage
Added test driver apps for packbeam, ESP32, and STM32 operations; Added test driver for AtomVM rebar3 plugin tasks.
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 58.
Lenses
- Code Health 98
- Architecture 100
- Maturity 55
- Readiness 55
- Security 50
Changes since last survey
- 145 commits — 126 feature/other, 19 fixes
By area
- (root) — 50 commits
- (repo) — 49 commits
- test/driver — 9 commits
- src/atomvm_dialyzer_provider.erl — 7 commits
- .github/workflows — 6 commits
- src/atomvm_packbeam_provider.erl — 3 commits
- src/atomvm_pico_flash_provider.erl — 3 commits
- src/atomvm_esp32_flash_provider.erl — 2 commits
- src/atomvm_uf2create_provider.erl — 2 commits
- src/esp32_flash_provider.erl — 2 commits
- src/packbeam_provider.erl — 2 commits
- example/mylib — 1 commit
- examples/myapp — 1 commit
- examples/mylib — 1 commit
- examples/otp_application — 1 commit
- priv/README.md — 1 commit
- priv/rebar.config — 1 commit
- src/atomvm_bootstrap_provider.erl — 1 commit
- src/atomvm_escriptize_provider.erl — 1 commit
- src/atomvm_rebar3_plugin.app.src — 1 commit
Notable commits
- fix: Fix bug in plt check
- fix: Fix bug when generating app PTL for the first time
- fix: Fix bug when using AtomVM/build as source beams for building base PLT
- fix: Fix dialyzer warning in uf2create provider
- fix: Fix external inculdes in rebar.conf
- fix: Fix new atomvm_app name in rebar.config
- fix: Fix publish-docs workflow
- fix: Fix tests for atomvm_packbeam 0.8.0
- fix: Fix workflow for OTP 25
- fix: Fixed README
- fix: Fixed a bug accidentally introduced in the uf2create provider.
- fix: Fixed a bug whereby a missing atomvm_rebar3_plugin entry in rebar.config would crash the packbeam task
- fix: Fixed hex dependency on atomvm_packbeam (requires 0.5.0)
- fix: Fixes a bug that prevented files in directories inside of the priv directory to be included in packbeam files.
- fix: Hotfix for hex publish
- fix: Merge pull request #13 from atomvm/fix-rebar-config-missing-entry
- fix: Merge pull request #22 from atomvm/bootstrap-fixes
- fix: Merge pull request #61 from pguyot/w49/fix-tests-for-packbeam-0.8.0
- fix: Prepare for release 0.7.1 (hotfix)
- change: Abort on errors
- …and 125 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
atomvm/atomvm_rebar3_plugin was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 17 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit ad82c28269bb7649bcddbb86f0fbf293fd3f4e39 — the exact code this score is about.
- Scored under rubric-2026.09.12 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-f94092f054c1.