exercism / exercism/configlet

lint: consider scope of markdown linting in configlet

Open
#562 3 comments 0 reactions 0 assignees View on GitHub
cmd: lint kind: design
Dominant language
Nim
Stars
23
Forks
17
Avg merge
13h 57m
Merged PRs (30d)
1

Description

Follow-up on some discussions with Erik, starting from implementation options for https://github.com/exercism/configlet/issues/328.

I suggested that for a first implementation of markdown linting, we could consider adding `markdownlint` as an org-wide workflow (rather than adding it to `configlet lint`).

The downside: running `configlet lint` locally runs a smaller subset of checks that occur in CI. But `configlet lint` is not supposed to be the only CI check for every track, and even for `configlet lint` JSON checking we might add CI-only checks anyway (e.g. for Exercise-wide checks - see #178).

---

@ee7 wrote:
> There is some question about how to separate things. For a simpler example, it's probably nice to have org-wide whitespace checking. So should `configlet lint` do that, or an org-wide workflow?
>
> There we might argue that:
> 1. The scope of `configlet lint` is track repos
> 2. Exercism has more than just track repos
> 3. Other repos might have whitespace problems
> 4. Therefore whitespace checking should be done outside of `configlet lint`
>
> Regarding the `markdownlint` option, I guess it depends on how many rules we have that `markdownlint` cannot catch. That is, things that are valid markdown, but violate some Exercism-specific linting rule.
>
> By the same reasoning, it makes sense to have the JSON linting in `configlet lint` (as we have already), because:
> 1. The scope of `configlet lint` is track repos
> 2. Only track repos have certain JSON files
> 3. Parsing JSON (and confirming that it's valid) is easy
> 4. We're checking lots of Exercism-specific rules that are not about JSON validity, and are even difficult/impossible to express in e.g. JSON schema
> 5. With those files, it's more useful to have fast local linting without installing dependencies (which configlet provides)
>
> But if we want lots of the checks that `markdownlint` provides, it's probably a significant amount of work to essentially reimplement `markdownlint` in pure Nim

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.