Elda Release Log
May 30, 2026 ยท View on GitHub
This file is the public release-page source for Elda. It keeps the GitHub release body for the current tagged release and a condensed history of the development releases that led to it.
Repository: https://github.com/Mjoyufull/Elda
Current release title: [0.1.49-Sumomo]
Current git tag: 0.1.49
[0.1.49-Sumomo] Latest
Breaking Changes
- First public Sumomo baseline
0.1.49is the first tagged public release for the Rust Elda line.- Development roots, caches, journals, and SQLite databases from older unreleased builds should be backed up or recreated before testing this tag.
- Elda is pre-1.0. The package-manager paths below are real, but final live-host takeover is not done.
- System mode scope
- Elda has a first
/usrbackend slice, but the final host-state materialization model is still not implemented. - Prefer disposable roots and prefix roots for this release. Treat live
/usruse as experimental.
- Elda has a first
- pkgit compatibility
- Elda keeps the useful pkgit-style direct git workflow, but it does not use pkgit internals as runtime state.
pkgdeps,bldit, flat repo lists, cloned repositories as state, and raw copy/symlink installs are import or reference material only.
- First-time config
- Copy the root
config.tomlfor first-time setup. examples/config/config.tomlis an annotated reference with non-default choices. Review it before using it as a live host config.
- Copy the root
Added
- Workspace and binary
- Added the Rust workspace and the
eldaCLI binary. - Added crate boundaries for CLI, core runtime, recipes, repos, builds, install transactions, SQLite state, git inspection, AppImage handling, cache population, Linux helpers, Unix helpers, extension hooks, shared types, and maintainer tasks.
- Added
elda -Vandelda versionwith workspace version, schema, git commit, target, profile, and build date details.
- Added the Rust workspace and the
- Package definitions
- Added
pkg.luaparsing and validation for local recipes, maintained recipes, profile packages, meta packages, source lanes, binary lanes, dependencies, weak dependencies, conflicts, provides, replaces, conffiles, hooks, sysusers, tmpfiles, alternatives, provider assets, flags, subpackages, and profile policy. - Added
build.luasupport for explicit build logic. - Added
rc add,rc check,rc show,rc diff,rc publish-ready, and editor-backed local recipe flows. - Added pkgit-style import for
pkgdepsandblditinputs into Elda-native metadata.
- Added
- Source and binary lanes
- Added source builds for git and local recipes with Cargo, CMake, Meson, Make, Go, Python, Zig, and Nimble support.
- Added binary lane staging for URL archives, GitHub release assets, provider-neutral release assets, GPKG payloads, AppImages, and vendor-generated recipes.
- Added arch-specific release asset tables for maintained
github_releaserecipes. - Added direct git installs with commit-derived installed versions.
- Added explicit branch, tag, and revision selectors for git add, install, upgrade, and downgrade flows.
- AppImage lane
- Added
source.kind = "appimage"validation and staging. - Added stable launcher symlinks under
usr/bin/and payload storage underusr/lib/elda/appimages/. - Added read-only AppImage inspection and desktop/icon/metainfo integration from the embedded SquashFS payload.
- Added
- Solver and policy
- Added a Rust-native PubGrub-style solver for exact dependencies, versioned constraints, alternatives, virtual providers, conflicts, replaces, multi-target closure checks, and reverse-dependency safety.
- Added provider preferences through
[resolver.provider_preferences]. - Added global, profile, package, version-scoped package, and one-shot CLI flag layers.
- Added flag descriptions, implied flags, conflicting flags, required-one-of, required-at-most-one, required-any-of groups, and conditional dependencies.
- Added
variant_idrecording, source fallback for customized builds, and binary-lane blocking when a customized variant has no matching source lane. - Added pin, hold, weak dependency refresh, and variant-drift rebuild behavior.
- State and transactions
- Added SQLite installed-state storage with world anchors, dependency records, manifests, file ownership, policy state, provenance, journals, current state, and archived state metadata.
- Added manifest-backed install, remove, verify, reverify, recover, files, owner lookup, diff, rollback, and downgrade flows.
- Added conffile handling with
.eldanewand.eldasavefiles. - Added unmanaged-path collision checks before activation.
- Added archive-backed prefix rollback from cached payloads and manifests.
- Remotes, trust, and cache
- Added remote and cache documents under
/etc/elda/remotes.d/and/etc/elda/caches.d/. - Added signed remote index verification with pinned trust, TOFU trust, persisted key state, verified snapshots, stale snapshot fallback, offline sync, channel filtering, and explicit rotated-key acceptance.
- Added remote priority, channel selection, metadata URLs, package-definition URLs, and cache priority.
- Added secure payload signature verification for synced binary installs.
- Added cache-first binary installs, local content-addressed payload cache reuse, offline reinstall after a successful fetch, and cache cleanup that keeps installed and rollback payloads.
- Added
rmt ls,rmt add,rmt rm,rmt info,rmt trust,rmt preview,rmt enable,rmt disable,rmt set-priority, and targetedsync <remote...>.
- Added remote and cache documents under
- Interemotes and interbuilds
- Added dynamic Gentoo overlay and XBPS
srcpkgsinteremotes with preview, excludes, parser diagnostics, sync deltas, and targeted sync. - Added bounded parser-backed source-lane installs for Nix flakes, Gentoo overlays, AUR PKGBUILDs, and XBPS templates.
- Added metadata-only raw-link handling through
elda aandelda add, with strategy priority, list-options mode, explicit source option selection, field confidence, and review gates. - Added bounded report extraction for Gentoo, AUR, and XBPS phase commands, dependencies, licenses, checksums, arch-specific sources, VCS sources, and parser issues.
- Added dynamic Gentoo overlay and XBPS
- Git and releases
- Added
elda git tags,elda versions, andelda git releasesfor tag inspection, normalized version confidence, optional release joins, and release asset compatibility scoring. - Added GitHub, GitLab, Gitea, Forgejo, SourceHut, Codeberg, and direct manifest release asset classification.
- Added checksum sidecar matching for release assets, including uppercase
SHA256SUMSand per-asset sums files. - Added release signature sidecar parsing, metadata materialization, field validation, and install-time trust gating.
- Added
- Profiles and machine shape
- Added
pf show,pf apply,pf add,pf rm,pf set-init,pf clear-init,pf set-arch,pf add-foreign-arch, andpf remove-foreign-arch. - Added profile recipes with machine-shape defaults for native arch, foreign arches, and init provider.
- Added profile conflict checks and state export/import round trips for active profiles, init policy, native arch, and foreign arch policy.
- Added pending system-change reports for init-provider changes, foreign-arch policy, and unapplied profile selections.
- Added
- Linux system backend
- Added the first
/usrbackend slice with staged state roots, per-path file-switch activation,system-*state IDs, archived system metadata, internal trigger state, boot status, andlinux-copyactivation reporting. - Added sysusers, tmpfiles, alternatives, hooks, provider assets, and active init-provider materialization for disposable system roots.
- Added
fix-triggers, provider-asset visibility ininfo, and system rollback coverage for disposable roots. - Added snapshot request recording for install and remove transactions, with current support for
snapperand directbtrfs subvolume snapshot -r.
- Added the first
- Migration and adoption
- Added
elda adopt --from <pm> <pkg>andelda mg from <pm>. - Added bounded installed-state readers for pacman, apt/dpkg, apk, xbps, and portage.
- Added adopted package records with provenance, identity, version, architecture, file list, dependency text, source hints, and path-conflict checks.
- Added human and JSON reports for migration and adoption.
- Added
- CI, forge, QA, and cache population
- Added local filesystem-backed
ci sub,ci run,ci status,ci pr,ci retry,ci logs, andci batch new/add/push. - Added signed local index publishing,
lock-v1.json.zst, copied artifacts, minisign sidecars, SPDX sidecars, attestation sidecars, and indexed metadata URLs. - Added hosted review creation for GitHub, GitLab, and Gitea-style APIs with token, bearer, SSH, and no-auth modes where applicable.
- Added
forge search,forge browse,qa lint,qa build,qa smoke,qa stack,qa repro,qa diff, anddaemon runcurrent-slice behavior. - Added
elda-populatecache seeding with local installed payload push and synced remote mirror support.
- Added local filesystem-backed
- Human output and review gates
- Added framed human output for install, failure, search, info, list, recipe catalog, state, profiles, remotes, cache, config, triggers, migrations, review, and CI reports.
- Added live progress for install flows with TTY tree output, plain stream output, JSON event streams, and
--no-streamfinal-document behavior. - Added build output passthrough for source-lane builds when streaming.
- Added generated metadata and interbuild review gates with content-addressed stamps, pager support, edit recheck loops, and
review ls,review info,review diff, andreview forget. - Added
doctor, install dry-run preflight, release-readiness checks, conffile surfaces, privilege posture reporting, and post-transaction advisories.
Changed
- Elda is now a Rust package manager with explicit state, transactions, manifests, verification, rollback, signed remotes, and staged activation.
- Human output now uses command-specific reports instead of dumping generic machine reports.
- Root help now uses the Elda branded screen, grouped command sections, examples, and terminal styling.
- Installed provenance now uses canonical source kinds such as
local_recipe,git,repo_binary,interbuild, andadopted. - Privilege defaults now use
provider = "auto"with doas, sudo, run0, and su detection. - Live system mode now requires
defaults.allow_system_mode = trueor one-shotelda -S. - JSON and unattended sync no longer enroll TOFU trust implicitly.
- Offline sync now uses only cached verified snapshots.
--offlinenow applies to git and archive fetch paths.
Fixed
- Fixed dependency closure planning, weak dependency policy, provider ambiguity, conflicts, replaces, reverse-dependency checks, and versioned provider requests.
- Fixed duplicate install rendering when live progress already emitted the progress block.
- Fixed unmanaged terminfo handling for the current system backend.
- Fixed stale package records after remote removal.
- Fixed local metadata import so existing
pkg.lua,build.lua, patches, and source metadata are preserved unless--replaceis explicit. - Fixed synced source installs so companion files come from pinned
packages_urltrees instead of only indexedpkg_luatext. - Fixed adoption path checks so already-owned package identities and managed-path collisions fail before state is written.
- Fixed first-time config docs so users copy root
config.toml, not the annotated example config. - Fixed the man page entry for
[trust].release_keysso it is described as a TOML key, not a fake path. - Fixed test-only tree-style scoping so panic paths restore thread-local state.
- Fixed remove confirmation cleanup so stale
remove-confirm.jsoncannot bypass a later interactive remove gate. - Fixed current build warnings from unused code paths.
Technical Details
- The workspace currently builds version
0.1.49-Sumomowith Rust 1.94 or newer. - Installed state is SQLite-backed.
- Payloads are staged before activation and recorded with payload and manifest digests.
- Prefix roots and disposable system roots are the expected test targets for this release.
- Remote indexes support pinned and TOFU trust. Verified snapshots are persisted per remote.
- Release-asset signature sidecars use
[trust].release_keys. - Mutations use journals and block recovery-required states.
- Unsupported paths fail clearly instead of falling back to pkgit-style behavior.
- Interepo translation is architectural and partial. End-to-end foreign-index installation is not complete.
- Migration and adoption import metadata and ownership records. Live takeover and coexistence lock modes are not complete.
- Host-state materialization and atomic
/usrexchange are not implemented yet.
Documentation
- Updated
README.mdfor project identity, features, current status, build requirements, configuration, examples, and links. - Updated
USAGE.mdfor install, remotes, sync, review gates, trust, profiles, migration, CI, forge, cache, config, triggers, and first-time bootstrap. - Updated
SPEC.mdfor package identity, recipe schemas, flags, dependencies, state, transactions, remotes, trust, cache, interbuild, interepo, NixOS host refusal, release signatures, system activation, and CLI behavior. - Updated
config.toml,su/config.toml,examples/, andfixtures/for current config shape and test inputs. - Added
man/elda.1as the local man page source. - Added
eldaforgehosting/guides for native forge hosting, remotes, indexes, caches, publishing, platforms, and hosting patterns. - Updated
PROJECT_STANDARDS.md,CODE_STANDARDS.md,CONTRIBUTING.md,checklist.md, andphase.mdfor current release and contribution workflows.
Notes
- SemVer: this is a
0.1.xpre-1.0 release. By version number it is a patch release, but it is also the first public Sumomo baseline. - Tag:
0.1.49 - GitHub release title:
[0.1.49-Sumomo] - Repository: https://github.com/Mjoyufull/Elda
Contributors
@Mjoyufull
Compatibility
- Rust: 1.94 or newer.
- Platform target: Linux-first and Unix-first. macOS and Windows are not implementation or delivery targets for this line.
- Config: root
config.tomlis the conservative first-time setup sample. - Database and cache: no stable migration promise is made for unreleased development roots before this tag.
- System roots: prefix roots and disposable roots are recommended. Live
/usrremains experimental. - pkgit: Elda can import and replace parts of pkgit-style workflow, but pkgit is not a runtime dependency.
Previously Done
These releases were development checkpoints before the first public Sumomo tag. They are listed here so the GitHub release page has the build-up history in one place.
v0.1.48 - 2026-05-18
- Added Phase 13 planning for host-state materialization, atomic
/usrpromotion, ephemeral apply, and rename-based state archives. - Kept the native CLI slice marked as closed for the named runtime surfaces while leaving later polish tracked separately.
v0.1.47 - 2026-05-18
- Finalized the native hosting layout: recipe monorepo by default, one signed index per channel, dry-run test-tree flow, publish finalize URL rewrite, maintainer host profiles, and interemote handling at sync.
v0.1.46 - 2026-05-19
- Froze interepo and hosting contract answers in
SPEC.md, including foreign hook policy, RPM trigger input, ALPM target paths, SELinux handling, CachyOS microarch sync policy, NixOS host refusal, release-asset trust keys, SIGINT/recover behavior, and post-transaction advisories.
v0.1.45 - 2026-05-18
- Split native forge hosting docs into
eldaforgehosting/with guides for source-only remotes, binary remotes, caches, trust, interemotes, recipe-to-Git paths, supported forges, static HTTP, LAN mirrors, staging, and stable channels.
v0.1.44 - 2026-05-16
- Refreshed the public operator docs, config samples, config fixtures, remote examples, cache examples, extension examples, interemote examples, and the local man page.
v0.1.43 - 2026-05-13
- Started Phase 12 migration and adoption with
elda adopt --from <pm> <pkg>andelda mg from <pm>. - Added installed-state readers for pacman, apt/dpkg, apk, xbps, and portage.
- Added adopted package state, safety checks, and migration reports.
v0.1.42 - 2026-05-08
- Extended the recipe flag system with descriptions, cardinality groups, conditional dependencies, atom-versioned overrides, variant IDs,
fl check,fl diff, and variant-drift rebuilds.
v0.1.41 - 2026-05-04
- Completed the Phase 10 git/release UX pass with SourceHut and direct manifest release inspection, provider-neutral release assets, matching signature sidecars, list-options TTY selection, and source-ref downgrade.
v0.1.40 - 2026-05-04
- Made pinned ad hoc git upgrades show explicit keep-installed rows instead of hiding pinned no-ops.
v0.1.39 - 2026-05-01
- Added
metadata.link_option_mode, source-option reporting,elda git tags,elda versions,elda git releases, explicit git ref selectors, and checksum-backed release metadata conversion.
v0.1.38 - 2026-04-30
- Added bounded AUR PKGBUILD and XBPS template support, config-backed metadata strategy priority, safer generated metadata, and richer interbuild parser reports.
v0.1.37 - 2026-04-29
- Started Phase 10 with parser-backed Nix flake and Gentoo overlay source-lane installs.
- Added interbuild review gates, parser metadata, field provenance, and the metadata-first
elda a/elda addpath.
v0.1.36 - 2026-04-25
- Closed the current Phase 9 scheduler slice with queued
ci run, retry orchestration, richer status/log output, hosted-review configuration by remote, and clearer install progress shaping.
v0.1.35 - 2026-04-23
- Closed the current Phase 8 proof gap for profile state import and active profile replay.
- Landed the first local Phase 9 CI, forge, QA, and daemon runtime slice.
v0.1.34 - 2026-04-20
- Changed the
/usrbackend from direct copy-overwrite to staged per-path switch activation. - Added backend capability and boot-trigger reporting.
v0.1.33 - 2026-04-19
- Replaced recursive dependency planning with the Rust-native solver graph.
- Added provider policy, multi-target conflict handling, alternatives, dependency-driven upgrades, and weak dependency selection.
v0.1.32 - 2026-04-19
- Added exact dependency and versioned provider handling, including rejection of unversioned virtual providers for versioned requests.
v0.1.31 - 2026-04-17
- Added upgrade and install policy work around same-transaction replacements, reverse dependency checks, and provider resolution.
v0.1.30 - 2026-04-17
- Added more resolver and transaction coverage for installed dependency upgrades and closure consistency.
v0.1.29 - 2026-04-17
- Added package-level conflict and replacement behavior for install and upgrade planning.
v0.1.28 - 2026-04-14
- Added remote removal cleanup, target-specific sync, remote trust inspection, remote info, interemote preview details, and sync package delta reporting.
v0.1.27 - 2026-04-14
- Added selected remote channels, channel-filtered sync, and fail-closed offline/stale snapshot reuse across channel boundaries.
v0.1.26 - 2026-04-14
- Added source-capable synced remotes through
packages_urland pinned package-definition tree materialization.
v0.1.25 - 2026-04-14
- Added
elda-populatecache seeding for installed payloads and remote mirrors.
v0.1.24 - 2026-04-14
- Added local cache retention, cache entry access metadata, garbage collection, and cache policy reporting.
v0.1.23 - 2026-04-14
- Tightened first-use TOFU so unattended sync no longer auto-enrolls trust.
v0.1.22 - 2026-04-14
- Added cache-node priority, cache-first synced binary installs, local payload cache population, and offline reinstall from cache.
v0.1.21 - 2026-04-14
- Persisted remote trust keys and added secure remote payload signature verification for synced binary installs.
v0.1.20 - 2026-04-13
- Added the branded root help screen and filled in command descriptions and argument help.
v0.1.19 - 2026-04-13
- Removed hardcoded profile fallback shape and added real profile-state resolution and export/import persistence.
v0.1.18 - 2026-04-12
- Reworked human rendering for high-value inspection commands and added GitHub release asset auto-selection for vendor binaries.
v0.1.17 - 2026-04-12
- Added archived prefix-state capture and real
elda rollback.
v0.1.16 - 2026-04-12
- Added real
elda diffand candidate manifest comparison.
v0.1.15 - 2026-04-13
- Replaced install dry-run skeletons with closure-aware install plans, weak dependency handling, alternatives, virtual provides, conflicts, and closure-aware upgrades.
- Changed privilege defaults to
provider = "auto"and added provider detection for doas, sudo, run0, and su.
v0.1.14 - 2026-04-12
- Added live-host system-mode gating with
defaults.allow_system_modeand the one-shotelda -Soverride.
v0.1.13 - 2026-04-12
- Added desired-state export/import through the normal install path.
v0.1.12 - 2026-04-12
- Added dependency edge storage,
why,rdeps,autoremove, pin/hold policy, and reverse-dependency protection for remove.
v0.1.11 - 2026-04-12
- Added real remote snapshot sync, search, info, named package resolution, and first prefix upgrade execution.
v0.1.10 - 2026-04-11
- Added the first vendor binary workflow through
vendor add,vendor import, andvendor export.
v0.1.9 - 2026-04-11
- Added dual source/binary lane recipes,
ig,ib, and lane preference handling.
v0.1.8 - 2026-04-11
- Locked the maintained package contract for source and binary lanes in one package definition.
v0.1.7 - 2026-04-11
- Added transaction journals, recovery, manifest-backed verify/reverify, and journal-aware mutation blocking.
v0.1.6 - 2026-04-11
- Added the first git source build path, canonical staging, payload emission, manifest-backed prefix installs, file ownership, files queries, and remove.
v0.1.5 - 2026-04-11
- Added remote/cache documents and the first structured dry-run plan skeletons.
v0.1.4 - 2026-04-11
- Added real declarative
pkg.luaparsing, validation, recipe scaffolding, direct git-target scaffolding, and pkgit-style source import.
v0.1.3 - 2026-04-11
- Added the first
rc checkpath for local recipe directories.
v0.1.2 - 2026-04-11
- Added package identity/version parsing, config defaults, SQLite bootstrap, state layout, mutation lock, and structured empty-root output.
v0.1.1 - 2026-04-11
- Landed the Rust workspace, crate skeleton,
xtask, thin CLI binary, shared command/report types, and pkgit reference fixtures.
v0.1.0 - 2026-04-02
- Created the implementation-order phase plan and locked the hard-fork boundaries.