Generated copies against the nodes
sheriff binding generates in memory the copies the nodes produce, and compares them with what is committed.
- The copies are the files the technical appendix lists for the types and runtime checks (§s-pvzms7d8kxb8dk2), and those each of the project's own generators prints, run as
sheriff typesruns it (§s-km4x4s26kv7pjze). - Each copy is compared with what the last commit holds instead while a node it waits for is unchecked (§s-f5rz6b7dhxejjts). Each such node is reported.
It refuses:
- a list of the files for the types and runtime checks naming a file of another extension or a path outside the repository;
- a path a project's generator prints outside the repository or under
specs/; - two rules of the stack each defining such a list;
- a name that cannot be generated (§s-suv42g8r3ra2h6b);
- a RecordType holding two fields of type variant, its inherited ones counted.
The links it makes
The links made to it
The decisions taken on it
- Problem
The row of generated copies did not name the refusal of a listed path that leaves the repository, which the tools make because each path of the list is taken from the root of the repository.
- Ruling
Carrying out the owner's rule on where the generated files are written (§s-pvzms7d8kxb8dk2): the row names that refusal.
- Problem
The check compared each kept generated copy with what the nodes produce now, while code generated from the nodes now waits for them to be checked.
- Ruling
Following the owner's ruling on §s-kh8qcd5kxgh9z3j: code generated from the nodes waits until every node it is generated from is checked, no commit changing it meanwhile, and its lag is reported.
- Problem
Every copy was compared with the last commit while any RecordType, any node a project's generator writes from or any rule listing a generator was unchecked, though each copy is generated from nodes of its own.
- Ruling
Carrying out the owner's rule that what is generated waits for the nodes it is generated from (§s-kh8qcd5kxgh9z3j): each copy waits only for the nodes it is generated from, as
sheriff typeswrites it (§s-f5rz6b7dhxejjts).
The work deferred on it
Two of a project's generators, or a generator and the list of the files for the types and runtime checks, may print the same path; each copy is then compared with what one of them writes, and the mismatch never clears. Refuse a path printed twice.
The tests bound to it
- skills/tools/test/unit/binding.test.ts · s-dbk2vyeg8z5jxna compares the files a project's own generator prints with what is committed, and refuses one edited by hand
- skills/tools/test/unit/binding.test.ts · s-dbk2vyeg8z5jxna holds a generated copy to what the last commit holds while a RecordType is unchecked, reporting the node
- skills/tools/test/unit/binding.test.ts · s-dbk2vyeg8z5jxna passes the generated copies the RecordTypes produce, and refuses one edited by hand, left behind or missing
- skills/tools/test/unit/binding.test.ts · s-dbk2vyeg8z5jxna refuses a name that cannot be generated, and a second list of the files of the types