Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

A non-converging file is skipped with a zero exit, so spotlessCheck reports success for a file it did not check

Đang mở
#3,143 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
28/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
java
Lĩnh vực
build-system, ci-cd

Hướng nghiên cứu

Start from the 'Skipping ... because it does not converge' message and find where the Gradle check task decides a non-converging file is skipped rather than failed. Reproduce with a markdown file that has a six-space-indented fenced block under a checklist item, using Prettier 3.9.6, then run spotlessMarkdownCheck. Done means a green check implies every target file was checked, through a failOnSkip-style option or a non-zero exit, and the maintainers still need to agree on the design first.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

What happens

For a file the formatter cannot converge on, Spotless prints

Skipping '<path>' because it does not converge.  Run {@code spotlessDiagnose} to understand why

and the check task passes — exit 0, BUILD SUCCESSFUL. The file is neither formatted nor reported as a violation,
so a green spotlessCheck is not evidence about that file at all.

Why it matters

In CI the file is silently ungated: the gate reports success while the file may be arbitrarily unformatted. A formatter
or plugin bump can also turn a previously-formatted file non-convergent with no signal — the gate goes from green to
green. It took a review of ours to notice a file was being skipped, and only because the message happened to be read.

Reproduction

Spotless 8.10.4 (Gradle plugin), format("markdown") with Prettier pinned at 3.9.6 — the trigger: the same file
converges under 3.9.10, so a reader on 3.9.10 sees no skip:

  1. Add a markdown file whose fenced block is indented six spaces under a checklist item:

    - [ ] a task
    
          ```bash
          echo hi
          ```
    
  2. ./gradlew spotlessMarkdownCheck --rerun-tasks prints the Skipping '<path>' because it does not converge. line
    above and exits 0.

With Prettier 3.9.10 the same file converges and no skip is printed; with 3.9.6 it does not. So the trigger in this case
is a version difference, but the silent skip is the gap either way — nothing about the message or the exit status
distinguishes "checked and formatted" from "not checked".

What would help

A way to make a skip fail the check — a failOnSkip-style option on the check task, or a non-zero exit when a target
file was not checked. A warning would help a human but not CI; the property worth having is that a green check means
every target file was actually checked
.

Related, but a different ask: #1689 reports a convergence failure for ktlint — that the formatter converge on a
construct, not that a skip be visible.

Ngôn ngữ chính
Java
Star
5.7k
Fork
562
Merge trung bình
3 ngày 2 giờ
Pull request đã merge (30 ngày)
14

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của diffplug/spotless

Tất cả issue của diffplug/spotless

Issue tương tự

Thêm issue về Java

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.