chore(deps): update dependency errata-ai/vale to v3.20.0 #178
No reviewers
Labels
No labels
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
shivering-isles/infrastructure-gitops!178
Loading…
Reference in a new issue
No description provided.
Delete branch "renovate/errata-ai-vale-3.x"
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?
This PR contains the following updates:
v3.18.0→v3.20.0Release Notes
errata-ai/vale (errata-ai/vale)
v3.20.0Compare Source
Vale 3.20.0 ships a set of features aimed at style authoring at library scale. Std, the new standard library, is built on all three and walks through each; Voices is the first package to consume them.
A rule can extend another rule
An
extendsvalue containing a dot names a rule rather than a check: the new rule starts from that rule's full definition and lays its own keys on top. Two styles can share one carefully built pattern and disagree only about message, level, or a handful of entries:Three lines, your name on the alert, the parent's machinery underneath — including every false-positive guard it ever gains. The parent has to be present on the
StylesPath, not enabled: inheritance is a file reference, andvale syncis what puts the file there. A child can itself be extended, up to ten rules deep. The one thing you can't extend is aVale.*built-in, which is generated at runtime and has no file.A bare key replaces the parent's value outright. Lists and maps also take overlay edits:
key+appends to a parent list, or merges into a parent map with the child's entries winning;key-removes entries by their source text, or the named keys from a map. Removing something the parent doesn't have is a compile error, on purpose: if upstream renames an entry your child was removing, you hear about it when the rule compiles instead of diverging silently. Writing bothkeyandkey+in one file is refused.A directory whose name starts with
_or.is skipped at load time but stays visible toextends, so a pattern shared by several rules can live in one file without itself becoming a rule. A fragment is validated as the chain's root, so it must carry amessage— even one no alert will show.Docs: Extending another rule
Nested rule directories
A style can organize its rules in subdirectories, and the path joins the name:
Std/Grammar/PassiveVoice.ymlisStd.Grammar.PassiveVoiceeverywhere a rule name goes — alerts, configuration, in-text comments, filters, andextends. There is no depth limit, and directories prefixed with.or_are inert, so drafts and shared fragments can sit inside a style without loading.Docs: Nested directories
Tune a rule's scalars from configuration
A bracketed key overrides one scalar on a rule you have enabled, keeping the rule's identity:
The word in brackets is the key as it appears in the rule's YAML, so any scalar a rule declares is a dial. Values coerce at compile time, and an unknown parameter fails the rule's compilation rather than being silently dropped. Structural fields —
tokens,swap,message— are refused with a pointer at extending the rule in a style, which is what authoring is for;[level]is refused because the classicStyle.Rule = errorsyntax already says that.Docs: Parameters
Changelog
fdc4cc7fix: report an occurrence shortfall at the scope that fell shortd978056feat: add an apply mode to vale fix58392fffix: honor comment directives at any indentfcd23e6feat: report per-check alert counts under--counts2545b00docs: add contributor license agreement and PR comments9972e93docs: add AI-Assisted Contributions33f473dix: mask an inline element in SkippedScopes instead of dropping it03e45eefeat(spell): honor Hunspell BREAK rules29e67d2fix(config): keep escaped commas in TokenIgnores and BlockIgnores71b13cafix(spell): narrow COMPOUNDMIN inside its range check8bd83b5chore: bump golang.org/x/crypto to v0.55.0af123f4feat: tune a rule's scalars from configuration05875a9feat: a rule can extend another rule6d97c2dfeat: nested rule directories, and test cases in-source5d33823feat: satisfy negated sequence tokens at boundaries; add region exceptionse9caf5fSatisfy negated sequence tokens at sentence boundariesc62d75ffix: parse a compound stanza at a fixed width, not the target's (#1159)6d22b96refactor: other org refs3f26c98refactor: migrate orgb8560d8fix: read a self-closing tag as the boundary it is (#1157)v3.19.0Compare Source
MDX: JSX children are now linted
Vale now reads a JSX element's children as the Markdown they are — matching MDX's own grammar, where only tags, attributes, and
{...}expressions are JavaScript. The prose inside wrapping components like<Steps>,<Tabs>, or<Aside>is linted at its exact source position, as is the text of inline elements (<abbr>HTML</abbr>— "HTML" is read as part of its sentence). For documentation built on component-heavy frameworks like Astro Starlight, this can mean a quarter of your prose is now covered.Children carry the element's name as a class scope, the same way MyST and Quarto directives work — so a rule can target one component's content (
scope: text.class.Aside), and a component whose content shouldn't be linted can be excluded by name:That's also the escape hatch if you preferred the old skip-everything behavior. Attribute values, expressions, self-closing elements, and elements opened and closed on a single standalone line are still treated as code.
Changelog
405a7dafix: strip a comment's delimiters, not its prose's (#1151)7766415feat(code): add Elixir comment and doc-attribute extraction (#1151)055db43feat: let a sequence token ask for repeated occurrences (#899)9ba5deafeat: lint a JSX element's children as the Markdown they are (#1155)8702043fix: lint a block title as written, without its generated label (#1152)d0e65f4docs: update contributing for native MDX and TypstConfiguration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot. The local configuration can be found in the SI Renovate Bot repository.
317c436a52c7667b633ac7667b633a412648707141264870715f34b8e4e7chore(deps): update dependency errata-ai/vale to v3.19.0to chore(deps): update dependency errata-ai/vale to v3.20.0View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.