Hey Manu, Thanks for suggesting this, and I strongly support using a linter. Recently I noticed that we use different flavors of Markdown <https://github.com/apache/iceberg/pull/13181#pullrequestreview-3106017612> in the table, and the linter would take care of that.
I do have a similar remark as Eduard. If Spotless supports this, I think that would be the easiest. Otherwise, I think pre-commit would also be a good option within the Java repo as this is also easy to run locally. Using pre-commit we can also add other linters (shell, end-of-line, detecting debug statements, credential detection, spell-checker, etc). The biggest downside is that we might lose some version history due to just reformatting. For example, if you widen a column in a table, I think the linter will realign the whole table. However, through GitHub we can easily track down the lineage. Kind regards, Fokko Off-topic: At some point, we can replace pre-commit by prek <https://github.com/j178/prek> when it gets mature enough. As Atwood's law states; Any application that can be written in Rust, will eventually be written in Rust (slightly adapted). Op do 21 aug 2025 om 17:59 schreef Eduard Tudenhöfner < [email protected]>: > We're already using spotless to format Java code and spotless also > supports markdown files > <https://github.com/diffplug/spotless/tree/main/plugin-gradle> so maybe > worth exploring how we could achieve this through spotless? > The main advantage would be that people would be able to catch linting > errors already locally before CI runs. > > On Thu, Aug 21, 2025 at 5:38 PM Manu Zhang <[email protected]> > wrote: > >> Hi all, >> >> What do you think of adding a GitHub action to lint markdown files? It >> can catch markdown rendering issues early and ensure a consistent style >> across markdown files. iceberg-python has already included markdown lint[1] >> in pre-commit hook. (Thanks Fokko for the suggestion!) >> >> I've a draft PR[2] that adds a Docs CI triggered on changes to any >> markdown files. The lint rules are highly customizable via a config >> file[3]. While fixing existing issues spotted by the CI, I'd like to get >> early feedback from the community. >> >> 1. >> >> https://github.com/apache/iceberg-python/blob/main/.pre-commit-config.yaml#L41 >> <https://github.com/apache/iceberg-python/blob/main/.pre-commit-config.yaml#L41> >> 2. https://github.com/apache/iceberg/pull/13826 >> 3. >> https://github.com/manuzhang/iceberg/blob/markdownlint/.markdownlint.jsonc >> >> Regards, >> Manu >> >
