Skip to content

2026.10.28.1: emit xpkg entries xlings installs; SIGTERM's status; SPEC-014 1.2; the index bump - #854

Merged
Sunrisepeak merged 10 commits into
mainfrom
release/2026.10.28.1
Oct 28, 2026
Merged

Sunrisepeak merged 10 commits into
mainfrom
release/2026.10.28.1

Conversation

@Sunrisepeak

@Sunrisepeak Sunrisepeak commented Oct 28, 2026 •

Copy link
Copy Markdown
Member

The 2026.10.28.1 release: what the ecosystem check of 2026.10.27.1 found.

  • SPEC-014 1.2: a package name carries a mode's suffix (-bundle-all for self-contained), a single file's launcher exits 127 on its own failure, --merge takes its container from [pack] format before -o, and --linkage static moves this machine's row and each -linux-gnu --target to musl while a project's own [build] target is packed as it is.
  • mcpp emit xpkg --package: packages of several systems may place the program apart (openkal-image 0.1.3's okrun: okrun.exe at the root on Windows, bin/okrun elsewhere). The entry registered the first package's directory for every system; it now writes bindir[os.host()] from each system's directory when they differ. A word past the options (--package a.zip b.zip, a shell glob) was silently left out; it is refused with the repeated form. The install looked its directory up with os.dirs("<name>-0.1.3-*"), which libxpkg's os.dirs (it lists <base>/*, no name matching) never matched: no xlings install of an emitted entry succeeded. The directory is now the downloaded archive's name without its extension (as mcpp pack names it), valid for every system, architecture and later version; a renamed archive or a non-archive is refused. Verified in a clean XLINGS_HOME: okrun, okld and a universal package installed from emitted entries and run. The runner dependency is written xim:okrun: xim-pkgindex's check-dep-namespace refuses a bare name once the package is published. Unit XpkgDescriptorNamesEachSystemsProgramDirectory; e2e 957 C.
  • mcpp.run: a build ended by SIGTERM could exit 1 instead of 143 when the main thread, woken by its killed compiler, returned from main before the watcher ended mcpp (main CI 40671515047, e2e 936 H, the cancelled record in place). finish() runs once with later callers waiting for it, and main ends with end_if_requested().
  • Cache key: the provider of each module a package imports is an upstream of its key, a declared edge or not. The libraries of a build program import the engine interface (mcpp), which no manifest names; mcpp.plugins was served an entry compiled against another interface ("import 'mcpp' has CRC mismatch", measured in an ok-image build over a warm cache). An import a declared path runs the other way (a module generated for a dependency below its consumer, e2e 849) is not one. New e2e 959 (fails before, passes after); ci-upgrade gains a programs variant (an ok image over the previous release's cache).
  • archive_directory() is the one rule a package's directory takes from its archive (pack -o, --merge -o, emit xpkg); --merge -o names the merged directory after its output; emit xpkg reads .tgz.
  • finish() reached again from inside a cleanup returns at once.
  • upgrade-lane-logs/ (committed with 2026.10.17.1) leaves the tree and is ignored.
  • bump_index.sh: the updater opens auto/bump-xim-<project> (no version in the branch), so the release waited for a branch that never appears; the PR is found by its xpkgindex-update marker (open or merged). A refused dispatch names the permission the token lacks (Actions: write on openxlings/xim-pkgindex) and the command a maintainer runs. publish-ecosystem has failed at this step since 2026.10.24.1 (403 on the dispatch).

Co-authored-by: speak-agent 248744407+speak-agent@users.noreply.github.com

Sunrisepeak and others added 8 commits October 28, 2026 19:25
…le's launcher exits 127 on its own failure; --merge takes [pack] format; which rows --linkage static moves to musl

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
… says what a token that cannot dispatch lacks

The updater opens auto/bump-xim-<project> (no version in the branch), so
waiting for auto/bump-xim-<project>-<version> never found it; its body's
xpkgindex-update marker names the package and the candidate. A dispatch the
token is refused for names the permission (Actions: write) and the command a
maintainer runs.

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…not an option is refused

The okrun packages of openkal-image 0.1.3 place the program at the root on
Windows (okrun.exe) and under bin/ elsewhere; the entry registered bin/ for
every system. The entry now writes bindir[os.host()] from each system's
directory when they differ. `--package a.zip b.zip` described a.zip alone;
a word past the options is refused with the repeated form. SPEC-014 1.2.

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…:okrun)

xim-pkgindex's check-dep-namespace refuses a bare dependency name once a
package of that name is published: a second index the home lists that has
one makes it ambiguous. The entry a universal package depends through is
written as xim:<runner>.

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
… version

The entry moved <name>-0.1.3-* into place, which no longer matches once the
index appends a later version to the entry; the version in the directory's
name is written as pkginfo.version().

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
… archive's name

libxpkg's os.dirs lists <base>/* and matches no name, so the install's
os.dirs("<name>-<version>-*") found nothing and no xlings install of an
emitted entry succeeded (measured: okrun 0.1.3 in a clean XLINGS_HOME). The
directory is the downloaded archive's name without its extension, as mcpp
pack names it; an archive renamed since, or a file xim does not unpack, is
refused when the entry is written. Verified: okrun, okld and a universal
package installed and run through xlings from the emitted entries.

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
… from main too

The watcher ends the programs mcpp runs, writes the interrupt files, runs the
cleanups and ends mcpp; the main thread, woken by its compiler's end, could
return from main first with the build's own failure (e2e 936 H on main CI:
SIGTERM exited 1, expected 143, with the cancelled record in place). finish()
now runs once with later callers waiting for it, and the end of main calls
end_if_requested(): a request ends mcpp as it asks after the watcher has
finished.

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…EC-014 1.2; the index bump

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
Sunrisepeak and others added 2 commits October 29, 2026 00:37
… it imports; --merge names its directory after the output; finish() reached again from a cleanup returns; upgrade-lane-logs/ leaves the tree

- cache key (plan.cpp): the provider of each module a package imports is an
  upstream of its key, a declared edge or not. The libraries of a build
  program import the engine interface (mcpp), which no manifest names, and
  were served entries compiled against another interface ("import 'mcpp' has
  CRC mismatch", measured with mcpp.plugins in an ok-image build). An import
  a declared path runs the other way (a module generated for a dependency
  below its consumer, e2e 849) is not one. e2e 959 fails before and passes
  after; ci-upgrade gains a programs variant.
- pack: archive_directory() is the one rule a package's directory takes from
  its archive (pack -o, --merge -o, emit xpkg); --merge -o names the merged
  directory after its output; emit xpkg reads .tgz too.
- run: a cleanup that ends mcpp again from inside finish() returns at once
  instead of waiting on its own call_once.
- upgrade-lane-logs/, committed with 2026.10.17.1, is untracked and ignored.

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…ygiene); the descriptor states Windows too

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
@Sunrisepeak
Sunrisepeak merged commit d67b96f into main Oct 28, 2026
215 of 221 checks passed
@Sunrisepeak
Sunrisepeak deleted the release/2026.10.28.1 branch October 28, 2026 17:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant