whitfin/local-cluster
57.0
Adequate · 18 September 2026
597
lines of production code
Elixir
primary language
1
measurement over time
What this system is
This system is an Elixir library designed for managing local cluster lifecycles, specifically handling the startup, supervision, and teardown of child nodes. It provides a GenServer-based API for controlling node states, loading code, and managing application configurations within a cluster environment. The library integrates with Elixir's supervision trees to simplify process management and cleanup.
Behavioural changes
Local cluster management refactored to use GenServer supervision
The local cluster implementation has been significantly restructured to manage nodes via a GenServer process rather than starting them as independent linked processes. This change introduces a new \start\_link/2\ API that accepts an amount and a keyword list of options, including \:applications\ for controlling startup sequences, \:environment\ for overriding application settings, and \:files\ for loading additional code onto remote nodes. The previous \start\_nodes/2\ function is replaced by this more flexible supervision model, which also provides new functions like \nodes/1\, \members/1\, and \pids/1\ to retrieve cluster details, and supports registering the cluster under a specific name via the \:name\ option.
lib · high confidence
Major API overhaul to v2.0 with new cluster lifecycle management
The library has been upgraded to version 2.0, introducing a breaking change in how clusters are managed. The previous API functions \start\_nodes\ and \stop\_nodes\ have been replaced by \start\_link\ and \stop\, which now return a cluster process identifier (PID) that must be used to manage the lifecycle of child nodes. This change allows for better integration with Elixir's supervision trees and simplifies cleanup. The README has been updated to reflect these new usage patterns and setup instructions.
(repo-wide) · high confidence
Removal of legacy config/config.exs file
The project has removed the legacy \config/config.exs\ file, which previously used the deprecated \Mix.Config\ module. This change eliminates the default configuration template and any associated environment-specific import logic (e.g., \import\_config\), indicating a shift in how application configuration is managed, likely moving towards \config.exs\ with \Config\ or external configuration sources.
config · high confidence
Test coverage
Expanded test coverage for local cluster lifecycle and configuration
Added comprehensive tests for the local cluster functionality, covering cluster creation, node management (starting, stopping, and adding members), and verification of node states. The new tests also validate configuration options such as loading specific applications, spawning tasks across nodes, and overriding environment variables for child nodes.
test · high confidence
Dependencies
Upgrade to Elixir 1.7+ and add global\_flags dependency
The project now requires Elixir version 1.7 or higher, dropping support for earlier versions. It introduces a new production dependency on the \global\_flags\ library (version \~1.0) and registers it as an extra application, enabling the use of global flags for initialization. Additionally, optional development dependencies for Credo, ExDoc, and ExCoveralls are explicitly defined, and the GitHub repository URL has been corrected to use a hyphenated name.
(dependencies) · 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
Baseline
- First survey — no prior run to compare against. CAI 57.
Lenses
- Code Health 100
- Architecture 69
- Maturity 50
- Readiness 50
- Security 78
Changes since last survey
- 59 commits — 54 feature/other, 5 fixes
By area
- (root) — 44 commits
- lib/local_cluster.ex — 11 commits
- .github/workflows — 2 commits
- (repo) — 1 commit
- test/test_helper.exs — 1 commit
Notable commits
- fix: Fix Hex links due to underscores
- fix: Fix a missing :ok in tests
- fix: Fix an issue with repeated inclusions
- fix: Fix param for setting remote log level (#12)
- fix: Fix unit tests on older Elixir versions
- change: Add an ex_doc dependency for releases
- change: Add epmd setup to CI builds
- change: Add first implementation of local_cluster
- change: Add further documentation examples
- change: Add load/2 to enable bootstrapping of additional files
- change: Add missing Credo dependency
- change: Add support for spawning new members in a cluster
- change: Added logger level to to start_nodes/2
- change: Added option to specify applications to start on cluster nodes (#15)
- change: Allow environment overrides on child nodes
- change: Attempt to resolve an issue in CI
- change: Automatically include logger applications as necessary
- change: Bump to v1.0.1
- change: Bump to v1.0.2
- change: Bump to v1.0.3
- …and 39 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
whitfin/local-cluster 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 18 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 365fea56a47f4d908c3cb76447a98aa51cb3126e — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-5d04157a340d.