Repository navigation
fix: an example in a contract shows the form of the value, and a form sent back is refused by name - #145
Merged
Conversation
… sent back is refused by name A contract is read by every session before it knows what it will be asked to build. Where `make` and `artifact:contract` showed an argument with a real name — an entity, a route, a list of fields — the contract had chosen a domain. Each example now shows the form of the value: <Entity>, /<path>, <name>:string. So do the two refusals that say what a page needs. An example is copied letter for letter, so a form can come back as it was shown. `make` answers that by name, before anything is scaffolded: which argument, and what to write where the placeholder is. Two forms used to get through: fields named <name> died later as "class not found", and domain:verb became an operation. The rule is tested positively and holds no list of names to avoid: across every operation's contract, what follows an example is made of placeholders, or is a name this package can vouch for.
A house that installs this package received its tests too: as many bytes as the code it runs, and never run there. They are marked out of the archive Composer downloads. Nothing else is: the tools and the workflows of a package can be read by others from that same archive.
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.
A contract is read by every session before it knows what it will be
asked to build. Where
makeandartifact:contractshowed an argumentwith a real name (an entity, a route, a list of fields) the contract
had chosen a domain, and whoever was later asked for that domain had
been handed part of the answer. Each example now shows the form of the
value:
<Entity>,/<path>,<name>:string. So do the two refusalsthat say what a page needs.
An example is copied letter for letter, so a form can come back as it
was shown.
makeanswers that by name, before anything is scaffolded:which argument, and what to write where the placeholder is. Two forms
used to get through: fields named
<name>died later as "class notfound", and
domain:verbbecame an operation.The rule is tested positively and holds no list of names to avoid:
across every operation's contract, what follows an example is made of
placeholders, or is a name this package can vouch for. With the
contracts as they were, that test is red.
The second commit keeps
tests/out of the archive Composer installs.Only
tests/: the workflows and the tools stay, because the messagegate's action is fetched from this repository as an archive.