Skip to content

ci: add dylint check using perfectionist#406

Merged
KSXGitHub merged 3 commits into
masterfrom
claude/setup-dylint-linting-4HpsQ
May 10, 2026
Merged

ci: add dylint check using perfectionist#406
KSXGitHub merged 3 commits into
masterfrom
claude/setup-dylint-linting-4HpsQ

Conversation

@KSXGitHub

Copy link
Copy Markdown
Owner

No description provided.

Wire up the `perfectionist` dylint library so its lints run alongside the
existing fmt and clippy checks. The library is referenced via git in
`dylint.toml`, pinned to the commit that matches the published
`0.0.0-rc.0` release on crates.io; `cargo-dylint` does not currently
support registry sources.

`test.sh` gains a `DYLINT` toggle (default `false`) that runs
`cargo dylint --all -- --all-features --all-targets` once, outside the
per-feature `unit` loop, since the lints inspect source style and a
single `--all-features` pass already covers conditional code. CI runs
this through a dedicated `dylint.yaml` workflow that installs
`cargo-dylint` and `dylint-link`, matching the project's convention of
one workflow per concern.
@github-actions

github-actions Bot commented May 10, 2026

Copy link
Copy Markdown

Performance Regression Reports

commit: 6538608

--quantity=apparent-size --max-depth=1 --min-ratio=0.01 --progress
Command Mean [ms] Min [ms] Max [ms] Relative
pdu 112.8 ± 31.2 102.2 203.4 1.10 ± 0.31
pdu-0.20.0 102.3 ± 0.0 102.2 102.4 1.00
Logs
Benchmark 1: pdu
  Time (mean ± σ):     112.8 ms ±  31.2 ms    [User: 53.2 ms, System: 303.6 ms]
  Range (min … max):   102.2 ms … 203.4 ms    29 runs
 
  Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options.
 
Benchmark 2: pdu-0.20.0
  Time (mean ± σ):     102.3 ms ±   0.0 ms    [User: 54.6 ms, System: 299.4 ms]
  Range (min … max):   102.2 ms … 102.4 ms    29 runs
 
Summary
  pdu-0.20.0 ran
    1.10 ± 0.31 times faster than pdu
JSON
{
  "results": [
    {
      "command": "pdu",
      "mean": 0.11276324715793101,
      "stddev": 0.031216042834741036,
      "median": 0.10235504702,
      "user": 0.05316148482758621,
      "system": 0.30359381931034474,
      "min": 0.10223236202000001,
      "max": 0.20344198202000002,
      "times": [
        0.10235331102,
        0.10243091002,
        0.10234009602000001,
        0.10239104102,
        0.10237954902,
        0.10236045502,
        0.10235634402,
        0.10230845102000001,
        0.10233988102000001,
        0.10228686402,
        0.10237289902,
        0.20344198202000002,
        0.10229802302,
        0.10239662002000001,
        0.10235310302,
        0.10231348102,
        0.10232951802000001,
        0.10239427702000001,
        0.10232529602000001,
        0.10237196802000001,
        0.10234492802,
        0.10235914902,
        0.10235659902000001,
        0.10228207302,
        0.20265445502,
        0.20308914502,
        0.10223236202000001,
        0.10235504702,
        0.10231634002000001
      ],
      "exit_codes": [
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ]
    },
    {
      "command": "pdu-0.20.0",
      "mean": 0.10229393284758621,
      "stddev": 0.00003433261054748042,
      "median": 0.10229850402,
      "user": 0.05464369172413792,
      "system": 0.2994437158620689,
      "min": 0.10221929702,
      "max": 0.10237007502,
      "times": [
        0.10229254002,
        0.10236177102,
        0.10233739202,
        0.10230763002,
        0.10229850402,
        0.10225903302,
        0.10224383602,
        0.10227032002,
        0.10224255302,
        0.10230125102000001,
        0.10230676002,
        0.10230642902,
        0.10230332602,
        0.10230750202000001,
        0.10229771502,
        0.10226338002,
        0.10230913902000001,
        0.10237007502,
        0.10231551702000001,
        0.10230690902,
        0.10229073202000001,
        0.10230868702000001,
        0.10228260402,
        0.10221929702,
        0.10226508202000001,
        0.10228710102,
        0.10234071102,
        0.10227735502,
        0.10225090102
      ],
      "exit_codes": [
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ]
    }
  ]
}

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds a Dylint-based CI check (using the perfectionist lint set) and wires it into the project’s local/CI guidance so contributors can run the same linting flow.

Changes:

  • Add DYLINT support to test.sh to optionally run cargo dylint.
  • Introduce dylint.toml pinning the perfectionist dylint library by git revision.
  • Add a dedicated GitHub Actions workflow for dylint, and update contributor / AI instruction docs to include DYLINT=true usage and setup.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
test.sh Adds optional cargo dylint step gated by DYLINT.
dylint.toml Declares the perfectionist dylint library (pinned rev).
.github/workflows/dylint.yaml New CI job to run dylint via ./test.sh with DYLINT=true.
CONTRIBUTING.md Documents installing dylint tooling and running DYLINT=true ./test.sh.
template/ai-instructions/shared.md Updates shared AI quick-reference to include dylint tooling and DYLINT=true run.
CLAUDE.md Mirrors shared AI instructions update for Claude.
AGENTS.md Mirrors shared AI instructions update for agents.
.github/copilot-instructions.md Mirrors shared AI instructions update for GitHub Copilot.

Comment thread .github/workflows/dylint.yaml
Comment thread .github/workflows/dylint.yaml Outdated
Comment thread dylint.toml Outdated
Comment thread dylint.toml
@KSXGitHub KSXGitHub marked this pull request as ready for review May 10, 2026 17:29
@KSXGitHub KSXGitHub merged commit 082a51c into master May 10, 2026
14 of 15 checks passed
@KSXGitHub KSXGitHub deleted the claude/setup-dylint-linting-4HpsQ branch May 10, 2026 17:30
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