feat(services): install a service package, and create a service (T31a) - #1
Merged
Conversation
…ice (T31a) Record what a package.* surface and service.create|delete mean before writing either: package listings split by what is knowable, a service's package read off its own id, instancing and smoke tests answered by the recipe, and a delete that keeps the data directory it names.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Roadmap task T31a — a service package can now be installed from the signed index, and a service
can be created from it. Before this,
package.installdid not exist and the only way aservicesrow came into being was a test writing it by hand.
What lands
package.*—list,available,install,uninstall. A second producer for the T22 jobsystem, sharing one index client and one downloads directory with
runtime.*through a newFetcher. An install ends with the recipe's own smoke test; an uninstall refuses while a serviceis an instance of the package, and names the services holding it.
service.create/service.delete— a declaration goes in, a spec comes out; a deleteanswers with the data directory it kept rather than removing it.
Recipe::instancing()— a recipe now states whether it isSingleorNamed, which is whatdecides the default data directory for a row that did not name one, and
smoke_test()is wherean install's proof of life comes from.
PackageVersion/PackageChannel— theRuntimeprefix described the only caller therehappened to be; both move to
proto::versionwith their tests.mixengine_testkit::createdeclares a fixture service over the socket throughservice.create, so the row every supervision test runs against is one shipped code produced.declare::installedanddeclare::declareare gone.Notes
0003_package_size.sqladdspackages.size_bytes— the table was described in0001ahead of its first writer.
cargo update -p h2for RUSTSEC-2026-0258, which failscargo-denyonmastertoo.CI green on the branch: lint, test on all three OSes, and bench.