Remove the service machine type #15
No reviewers
Labels
No labels
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
allod/inventory!15
Loading…
Reference in a new issue
No description provided.
Delete branch "agent/drop-service-type"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Removes the
servicemachine type. It has no users and will not get one: a rented host has none of this registry's facts, so it is anixosConfigurationsentry composed from the exported modules rather than a machine described here.allod/archetypes#60carries the full reasoning and was closed unmerged; this is the data-side half of that closure.nix flake checkpasses.scripts/vm-specs.jsonis untouched — no machine ever used the type, so nothing generated changes.What is removed
The
servicebranch of the schema and everything that existed only to serve it:servicePlatform,serviceGuestFields, theserviceForeignPlatformandserviceGuestSizingdiagnostics, theserviceShapeassertions, theserviceFixture, theservice-machine-mutationscheck, and the two service fixtures insideruntime-fact-mutations.runtimeFreeTypesgoes back to[ "hypervisor" ].The
lib.runtimeFreeTypesandlib.isGuestMachineexports go with it. They were added soarchetypescould stop keeping its own copy of the guest/non-guest split; with the service type gone that split is "is it a hypervisor", whicharchetypeshas always answered locally, and an exported function with no consumers is the dead weight principle 8 warns about.What is deliberately kept
The shape diagnostics that arrived in the same merge stay:
missingType,nonStringType,missingPlatformandinvalidPlatform, their assertions inmkVmSpecs, their fixtures, and the deriveddiagnosticFields.They are not service-specific and they closed a real hole. Platform validation used to hang off
lib.supportedPlatforms, which themachines/lib.machinessurface never forces — so a machine with noplatformreached consumers unvalidated, andarchetypesreads exactly that surface.typewas also read by the classifier before being checked, so a machine without one aborted with a rawattribute 'type' missingthatbuiltins.tryEvalcannot catch, which meant no fixture could pin it.The
builtins.seqchain inmkVmSpecsstays for the same reason: it is what makes the stated order real rather than a property of which binding happens to be forced first.runtimeFreeTypesremains a list with one member rather than collapsing to a string. The diagnostic message reads from it, so a second member later needs no other edit, and the comment records why the last attempt at one was reverted.Risk
R1. Removing a schema branch no machine uses, plus two exports with no consumers. Every remaining rule keeps its fixture, and the mutation check still proves each one fails on sabotaged input. Rollback is a straight revert.
Refs allod/archetypes#60, allod/inventory#13