Skip to content

portage-ng v1.4.0

Pre-release
Pre-release

Choose a tag to compare

@pvdabeel pvdabeel released this 08 Aug 09:43
· 14 commits to master since this release

What's Changed (since v1.3.0)

The headline of this release is tree-wide validation: on the latest full-tree tinderbox run (Aug 01, 19,384 packages, portage-ng and emerge building the same targets in identical fresh sessions), the "portage-ng FAIL / emerge OK" bucket dropped from 594 packages (3.1%) to zero. There is no longer a single package in the corpus that traditional Portage can build and portage-ng cannot — on this corpus portage-ng now builds a strict superset of what emerge builds (18,113 vs 14,590 packages).

Full-tree build outcomes (Aug 01 run vs Jul 13 run)

Outcome Aug 01 Jul 13 Δ
Both OK 14,590 (75.3%) 13,996 (72.2%) +594
portage-ng OK / emerge FAIL 3,523 (18.2%) 3,659 (18.9%) −136
Both FAIL 1,271 (6.6%) 1,135 (5.9%) +136
portage-ng FAIL / emerge OK 0 (0%) 594 (3.1%) −594

Both runs cover the same 19,384-package corpus (tinderbox-ng matrix runs, fresh OverlayFS session per engine per package).

Unmerge ordering (Kahn's last stand)

  • Depclean's uninstall order is now derived by the same proving pass as install ordering, using unmerge bindings (Rules/unmerging.pl): each removable package proves scheduled/1, requires/2 releases dependency claims so consumers unmerge before their dependencies, and cycles surface as explicit retained-claim assumptions
  • kahn.pl deleted — the last procedural scheduler is gone; every ordering decision in portage-ng is now proof-based

Packaging

  • portage-ng can now install itself: new live ebuild sys-apps/portage-ng-9999 in the bundled overlay (git-r3, Gentoo-oriented defaults, wrapper script), with the builder↔ebuild contract documented in the handbook

Robustness & output

  • Message output fixed on newer SWI-Prolog releases: own keep_line_pos/2 replaces the removed system predicate
  • --sync console output polished: profile and security-advisory (GLSA) sections print clean headers and friendlier summaries

Documentation

  • Handbook restructured around configuration proofs and plan proofs
  • Chapter 1 reworked: deduplicated introduction, version-agnostic EAPI wording, Simply-Logical-style explanation of terms, new closed-world/closure and Pengines illustrations, and the origin story of the ::- logo
  • The unmerge pass is documented in the handbook; the standalone ordering design doc is retired
  • AGENTS.md added for cloud agents (environment setup, sandbox limits)

Full Changelog: v1.3.0...v1.4.0