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
>>
>

Reply via email to