Skip to content

fix: switch yaml-lint to ryl#226

Merged
zeitlinger merged 5 commits intomainfrom
fix/yaml-lint-release-backend
Apr 24, 2026
Merged

fix: switch yaml-lint to ryl#226
zeitlinger merged 5 commits intomainfrom
fix/yaml-lint-release-backend

Conversation

@zeitlinger
Copy link
Copy Markdown
Member

@zeitlinger zeitlinger commented Apr 24, 2026

What changed

  • switched yaml-lint from cargo:yaml-lint = "0.1.0" to github:owenlamont/ryl = "v0.6.0"
  • added .github/config/.yamllint.yml with YAML-specific settings, including line-length.max = 130
  • updated flint's built-in registry so the yaml-lint check runs the ryl binary from the GitHub-backed tool
  • added obsolete-key migration for cargo:yaml-lint to github:owenlamont/ryl
  • updated repo docs and the affected list fixture / tracked dependency snapshot

Why

The crates.io yaml-lint 0.1.0 build does not honor structured .yamllint.yml rule options like line-length.max and indentation.spaces. The ryl release line does, publishes Windows assets, and supports --fix, so it works across this repo's CI platforms while keeping yaml-lint as the stable flint check name.

Impact

  • flint uses the released GitHub binary that supports YAML config options
  • repo YAML linting can allow longer workflow lines without disabling the rule entirely
  • Renovate-managed workflow updates stop fighting the YAML linter at the previous 80-character default
  • existing repos with cargo:yaml-lint get a clear obsolete-key failure and can migrate via flint update

Validation

  • cargo test -q find_obsolete_key_detects_legacy_yaml_lint_backend
  • cargo test -q linter_keys_include_mise_and_bare_tool_names
  • cargo test -q readme_linter_table_in_sync
  • mise run lint:fix
  • mise exec -- cargo test -q

Copy link
Copy Markdown
Member Author

Putting this PR on hold for now.

The current github:hiromaily/[email protected] release does not publish a Windows asset, so the Windows CI job cannot install it via mise:

Failed to install github:hiromaily/[email protected]: No matching asset found for platform windows-x64

Linux/macOS and lint were passing on the pushed head, but we should not merge a linter backend that is not supported across the repo's CI platforms. Next step is either to wait for upstream Windows release assets or choose a different YAML linter backend with Windows support.

@zeitlinger zeitlinger force-pushed the fix/yaml-lint-release-backend branch from 6a4fade to d7069db Compare April 24, 2026 11:37
Copy link
Copy Markdown
Member Author

Updated this PR to use github:owenlamont/ryl = "v0.6.0" instead of github:hiromaily/yaml-lint-rs.

Why this unblocks the earlier hold:

  • ryl v0.6.0 publishes Windows release assets, including ryl-x86_64-pc-windows-msvc.zip.
  • mise exec github:owenlamont/[email protected] -- ryl --version works locally.
  • ryl -c .github/config/.yamllint.yml .github/workflows/*.yml respects the current YAML config, including the 130-char line-length setting.
  • ryl supports --fix, so the yaml-lint check can remain a formatter/fixer in flint.

Local validation before pushing:

  • mise run lint:fix passed with isolated mise state
  • mise exec -- cargo test passed

New CI is queued on head d7069db.

@zeitlinger zeitlinger force-pushed the fix/yaml-lint-release-backend branch from d7069db to 2fe0a68 Compare April 24, 2026 11:42
Copy link
Copy Markdown
Member Author

Rebased the ryl update onto current main after the taplo formatter landed. New head is 2fe0a68.

Validation after the rebase:

  • mise run lint:fix passed
  • mise exec -- cargo test passed

This keeps main's github:tamasfe/taplo changes and switches YAML linting to github:owenlamont/ryl = "v0.6.0".

@zeitlinger zeitlinger marked this pull request as ready for review April 24, 2026 11:54
@zeitlinger zeitlinger requested a review from a team as a code owner April 24, 2026 11:54
Copilot AI review requested due to automatic review settings April 24, 2026 11:54
@zeitlinger zeitlinger changed the title fix: use released yaml-lint binary with yaml config fix: use github:owenlamont/ryl Apr 24, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates Flint’s built-in YAML linting to use a GitHub-backed tool/binary that supports structured .yamllint.yml options, and adds a repo-level Yamllint config to allow longer lines.

Changes:

  • Switch the yaml-lint registry check to run the ryl binary and activate via github:owenlamont/ryl.
  • Add .github/config/.yamllint.yml with YAML rule options (e.g., line-length.max = 130).
  • Update fixtures, Renovate config, and docs to reflect the new tool key/binary.

Reviewed changes

Copilot reviewed 20 out of 20 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
tests/cases/yaml-lint/failure/test.toml Updates fake binary name to ryl for failure case.
tests/cases/yaml-lint/failure/files/mise.toml Updates test mise tool key to github:owenlamont/ryl.
tests/cases/yaml-lint/clean/test.toml Updates fake binary name to ryl for clean case.
tests/cases/yaml-lint/clean/files/mise.toml Updates test mise tool key to github:owenlamont/ryl.
tests/cases/yaml-lint/auto-fix/test.toml Updates fake binary name to ryl for auto-fix case.
tests/cases/yaml-lint/auto-fix/files/mise.toml Updates test mise tool key to github:owenlamont/ryl.
tests/cases/general/list/test.toml Adjusts “linters” output fixture and fake bins to show yaml-lint → binary ryl.
tests/cases/general/list/files/mise.toml Updates list fixture toolchain snapshot from cargo:yaml-lint to github:owenlamont/ryl.
tests/cases/general/init-rust/test.toml Updates init fixture to emit github:owenlamont/ryl under linters.
tests/cases/general/init-idempotent/files/mise.toml Updates idempotent init fixture to include github:owenlamont/ryl.
src/registry/tests.rs Updates registry key tests to assert ryl tool keys are present.
src/registry/mise.rs Updates docs comment examples for alias normalization.
src/registry/checks.rs Switches yaml-lint check command/binary to ryl and mise tool to github:owenlamont/ryl.
mise.toml Updates this repo’s tool pin from cargo:yaml-lint to github:owenlamont/ryl.
docs/linters.md Updates yaml-lint docs to list binary ryl.
default.json Updates Renovate preset package list to track github:owenlamont/ryl.
README.md Updates example mise tool list to use github:owenlamont/ryl.
.github/renovate.json5 Adds github:owenlamont/ryl to Renovate grouping list.
.github/renovate-tracked-deps.json Updates tracked dependency snapshot to include github:owenlamont/ryl.
.github/config/.yamllint.yml Adds Yamllint config with max line length and indentation settings.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/registry/checks.rs
Comment thread src/registry/checks.rs
Comment thread src/registry/checks.rs Outdated
Signed-off-by: Gregor Zeitlinger <[email protected]>
@zeitlinger zeitlinger changed the title fix: use github:owenlamont/ryl fix: switch yaml-lint to ryl Apr 24, 2026
@zeitlinger zeitlinger enabled auto-merge (squash) April 24, 2026 13:14
@zeitlinger zeitlinger merged commit 85ac4c3 into main Apr 24, 2026
13 checks passed
@zeitlinger zeitlinger deleted the fix/yaml-lint-release-backend branch April 24, 2026 13:23
zeitlinger added a commit that referenced this pull request Apr 27, 2026
### Added

- add flint setup preflight migrations
([#233](#233))
- support managed linter configs and aqua-backed tool keys
([#228](#228))
- switch xmloxide to github backend
([#229](#229))
- add taplo formatter check
([#224](#224))
- *(init)* configure line length during init
([#218](#218))

### Fixed

- support renovate v43.136.3
([#223](#223))
- switch yaml-lint to ryl
([#226](#226))
- *(ruff)* install via github releases
([#227](#227))
- resolve init rollout regressions
([#220](#220))

### Other

- reduce fake-bin fixture coverage
([#240](#240))
- *(deps)* update dependency npm:renovate to v43.141.1
([#221](#221))
- guard fixture case groups
([#238](#238))
- *(deps)* update dependency grafana/flint to v0.20.4
([#235](#235))
- *(deps)* lock file maintenance
([#237](#237))
- *(deps)* update dependency mise to v2026.4.19
([#236](#236))
- *(deps)* update rust crate json5 to v1
([#232](#232))
- *(deps)* update taiki-e/install-action digest to 787505c
([#219](#219))
- *(deps)* update dependency grafana/flint to v0.20.3
([#225](#225))

> [!IMPORTANT]
> Close and reopen this PR to trigger CI checks.

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Gregor Zeitlinger <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants