Skip to content

Add gdzig-zlint with the 0.6.1 ruleset - #7

Merged
deevus merged 1 commit into
mainfrom
install-gdzig-zlint
Oct 25, 2026
Merged

deevus merged 1 commit into
mainfrom
install-gdzig-zlint

Conversation

@deevus

@deevus deevus commented Oct 25, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Adds gdzig-zlint (ZLint 0.10.0 with the gdzig CODE_STYLE rules) and wires it
into mise and CI. Follow-up to gdzig/gdzig#290.

  • Installs github:gdzig/gdzig-zlint 0.6.1 through mise.toml and updates the tracked lockfile.
  • Adds zlint.json unchanged from the 0.6.1 template, preserving all rule levels, including the warn levels for gdzig-public-docs and line-length.
  • Adds mise run lint and a Lint workflow for pushes to main, pull requests, and manual dispatch.
  • Applies safe lint fixes across the tree: inferred initializers, a trailing comma, and import placement/sorting. Formats only touched Zig files.
  • Updates the existing hk.pkl step to use gdzig-zlint without denying warnings.

Verification

  • gdzig-zlint .: 0 errors, 43 warnings (before: 0 errors, 52 warnings).
  • zig build test with the repository's locked Zig binary: passes on both the fresh main baseline and this branch.
  • zig fmt --check on changed Zig files: passes. The fresh main baseline also passes zig fmt --check ..
  • mise install && mise run lint: runs successfully (0 errors). mise install re-resolves zig = "master" in the lockfile, so the original Zig 0.17.0-dev.2251+1175a3e99 lock entries were restored afterward.
  • Remaining warnings: 27 public-docs need substantive API documentation; 8 line-length include long BBCode prose and signatures that should not be mechanically altered; 3 import sorting, 2 import placement, and 2 tests-last require broader declaration rearrangement; 1 import-alias-case requests renaming the public fmt.md API, which would break consumers. None are errors.

Notes

  • --deny-warnings is intentionally not enabled yet because the existing documentation and line length diagnostics still need cleanup.
  • The lockfile contains only the regenerated gdzig-zlint checksum/URL block in place of the old DonIsaac/zlint block; the existing Zig pin and unrelated tool entries remain untouched.

Pre-existing CI failures

The Tests workflow's master matrix fails on this branch. It is not caused by
this change: main already references std.ArrayListUnmanaged at
src/tokenizer.zig:129-130 and src/Node.zig:352, and Zig master
0.18.0-dev.567 removed that member (error: root source file struct 'std' has no member named 'ArrayListUnmanaged'). Reproduced locally on an unmodified
main checkout with the same zig 0.18.0-dev.567+7f0281900 binary: zig build test fails with the identical errors at the same lines. The 0.16.0 matrix
passes, build-docs passes, and the new gdzig-zlint job passes.

@deevus
deevus marked this pull request as ready for review October 25, 2026 10:56
@deevus
deevus merged commit cea68f7 into main Oct 25, 2026
6 of 9 checks passed
@deevus
deevus deleted the install-gdzig-zlint branch October 25, 2026 10:56
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.

1 participant