lrascao/rebar3_appup_plugin
65.6
Adequate · 2 October 2026
1.9k
lines of production code
Erlang
primary language
2
measurements over time
What this system is
This system is a Rebar3 plugin designed to automate the generation of application upgrade and downgrade scripts (.appup files) for Erlang releases. It specifically handles the automatic migration of gen\_server state records between versions, eliminating the need for manual intervention during release updates. The tool also provides infrastructure for managing release notes and includes a comprehensive test suite to verify version matching and instruction merging logic.
Features
Automatic gen\_server state record migration during release upgrades
The plugin now automatically detects changes in gen\_server state records between release versions and injects the necessary migration code into the generated .appup files. This allows applications to upgrade and downgrade without manual intervention when the internal state structure of a gen\_server changes. The feature is implemented via the new \rebar3\_appup\_tar\ provider, which instruments the release to handle these migrations, and updates the \rebar3\_appup\_compile\ and \rebar3\_appup\_generate\ providers to identify and process state record differences.
src · high confidence
Behavioural changes
License changed from MIT to Apache 2.0 and CI migrated to GitHub Actions
The project license has been updated from MIT to Apache 2.0, and the continuous integration system has switched from Travis CI to GitHub Actions. The build configuration now enforces warnings as errors, includes the \string\_compat\ dependency alongside \bbmustache\, and adds a \pr2relnotes.sh\ script to generate release notes from pull requests.
(repo-wide) · high confidence
Refactored state record conversion and appup template generation
The internal template system for generating application upgrade/downgrade scripts has been restructured. New templates in the priv/templates directory now handle state record conversion logic, specifically supporting the migration of state records between versions by mapping old and new field definitions and handling default values for new fields. Additionally, the appup template has been updated to use Mustache-style variable syntax (e.g., {{{new\_vsn}}}) for better escaping and clarity, and the generation process now merges pre- and post-source files into the final generated appup.
priv · medium confidence
Updated remark.js to latest version for EUC 2016 presentation
The \doc/euc-2016/js/remark-latest.min.js\ file has been added, providing the latest version of the remark.js library. This update ensures that the slide deck rendered in the browser uses the most current parsing and rendering capabilities for the EUC 2016 lightning talk materials.
doc/euc-2016 · high confidence
Test coverage
Add comprehensive test suite for appup generation and version matching
Added Common Test (CT) and EUnit test suites to verify the rebar3 appup plugin's behavior. The CT suite (\rebar3\_appup\_plugin\_SUITE\) covers end-to-end release upgrade scenarios, including empty appups, supervisor and gen\_server state changes, dependency management, and \.appup.src\ scripting support. The EUnit tests (\rebar3\_appup\_plugin\_eunit\_tests\) validate the core version matching logic and instruction merging for upgrade/downgrade paths, ensuring correct handling of version patterns and post-condition filtering.
test · high confidence
Housekeeping
Added empty 'include/keepme' file
An empty file named 'include/keepme' was added to the repository. This change appears to be a placeholder or a mechanism to ensure the 'include' directory is tracked by version control, rather than a functional code change.
include · high confidence
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
Score
- CAI 63 → 66 (+2.6)
- Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 96 → 96 (+0.0)
- Architecture 100 → 100 (+0.0)
- Maturity 48 → 45 (-2.3)
- Readiness 78 → 80 (+1.7)
- Security 67 → 80 (+13.3)
Resolved (1)
- Coverage not measured — no coverage collector is wired up
New (4)
- Documentation: no contributor guidance (README.md)
- Documentation: no installation or build instructions (README.md)
- Orphaned files with no living knowledge
- Unbounded dependency requirement: string_compat
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
lrascao/rebar3_appup_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 2 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 8a75277297ec0a3b80315467e6097899b14de094 — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.