Skip to content

openkal-musl 0.3.1: name the implementation by version, because a published package must - #3

Merged
Sunrisepeak merged 1 commit into
mainfrom
release/0.3.1
Aug 20, 2026
Merged

openkal-musl 0.3.1: name the implementation by version, because a published package must#3
Sunrisepeak merged 1 commit into
mainfrom
release/0.3.1

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

The manifest named the implementation of openkal for each system by a path.
That is right in a working tree that has the three repositories side by side, and
it is wrong in a package: a path names a directory that exists where the manifest
was written and nowhere else.

A consumer resolving this package from the index was therefore handed a
dependency pointing at nothing:

error: path dependency 'openkal-linux'
       (at '~/.mcpp/registry/data/xpkgs/mcpplibs-x-openkal-musl/0.3.0/openkal-linux')
       has no mcpp.toml
-openkal-linux = { path = "../openkal-linux", features = ["standalone"] }
+openkal-linux = { version = "0.5.1", features = ["standalone"] }

The feature travels beside the version, because a program above this library
carries no other runtime and that is what the feature states.

How it was found

By resolving the package the way a stranger would — from a store with every local
copy of it deleted. That check exists for exactly this: a working tree masks every
mistake in a manifest's dependencies, because the tree is what the manifest was
written against.

tools/working-trees.sh now rewrites the implementation reference as well as the
specification's, so continuous integration goes on asserting what it is for —
that these sources and that implementation as written today work together —
while the published manifest says what a published manifest must.

…lished package must

The manifest named the implementation of openkal for each system by a path. That
is right in a working tree that has the three repositories side by side, and it
is wrong in a package: a path names a directory that exists where the manifest
was written and nowhere else, so a consumer resolving this package from the index
was handed a dependency pointing at nothing --- reported as "path dependency
'openkal-linux' has no mcpp.toml", inside the registry's own store.

It is named by version now, with the feature travelling beside it, because a
program above this library carries no other runtime and that is what the feature
states.

The defect was found by resolving the package the way a stranger would, from a
store with no local copy of it. That check exists for exactly this: a working
tree masks every mistake in a manifest's dependencies, because the tree is what
the manifest was written against.

tools/working-trees.sh rewrites the implementation reference as well as the
specification's, so that continuous integration goes on asserting what it is for
--- that these sources and that implementation as written today work together ---
while the published manifest says what a published manifest must.
@Sunrisepeak
Sunrisepeak merged commit eccc6dc into main Aug 20, 2026
4 checks passed
@Sunrisepeak
Sunrisepeak deleted the release/0.3.1 branch August 20, 2026 04:10
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