Skip to content

0.4.14

Choose a tag to compare

@github-actions github-actions released this 03 May 14:26
· 325 commits to main since this release
1594d3e
release: 0.4.14 — self uninstall + projectScope fall-through fix (#262)

Bumps VERSION 0.4.13 → 0.4.14. Highlights since 0.4.13:

  * #259 — `load_project_config_` falls through to XLINGS_PROJECT_DIR
    env after a projectScope:false skip. Fixes "no version set for
    gcc-specs-config" in installs where the cwd traversal happens to
    hit a projectScope:false `.xlings.json` (e.g. xlings's own repo
    when E2E tests run from inside `tests/e2e/runtime/...`) before
    reaching the real project root. Concrete impact: gcc.lua's
    config hook spawning the gcc-specs-config script-type shim now
    resolves the project workspace correctly via env fallback.

  * #260 — CI bumps XIM_PKGINDEX_REF to xim-pkgindex main HEAD
    (19f4383), now including:
      - #110 / #111 namespace bare-name deps
      - #116 standalone xim:gcc-runtime (~25 MB, vs full xim:gcc ~1.1 GB)
      - #117 ninja/node/mdbook switched to xim:gcc-runtime
      - #118 gcc-runtime declares correct exports.runtime.libdirs
    End-to-end E2E-05 now exercises the full predicate-driven
    elfpatch + script-as-runtime-dep flow without sidestep workarounds.

  * #261 — `xlings self uninstall` is now a real command.
    Previously the dispatcher silently fell through to help and
    exited 0, even though user-facing hints (and the
    `xlings remove xim:xlings` single-version guard) explicitly
    routed users here. Implements:
      - `xlings self uninstall` (interactive [y/N])
      - `-y` / `--yes` for automation
      - `--keep-data` to preserve `data/` for quick reinstall
      - `--dry-run` to print plan without changes
    Cross-platform self-deletion: Linux/macOS use the kernel's
    open-file-vs-dirent decoupling to unlink the running binary;
    Windows moves xlings.exe to %TEMP% and schedules delete-on-
    reboot for the temp copy (XLINGS_HOME is fully gone immediately).
    Safety invariants: refuses XLINGS_HOME=/, =$HOME, common system
    paths; refuses if `.lock` present; always prints summary even
    with `-y`. Bonus: `xlings self <unknown-action>` now exits 2
    instead of silent 0.

Migration: 0.4.13 → 0.4.14 is binary-compatible. self-update via
`xself install` / quick_install handles the upgrade.

Verified locally: 8/8 isolated-XLINGS_HOME tests pass; system
/home/speak/.xlings sha256 + pkg count untouched across runs. CI
three-platform green on PR #261.