Skip to content

Lint locally with make lint instead of in CI - #12

Merged
t4k merged 6 commits into
mainfrom
claude/trim-lint
Nov 4, 2026
Merged

t4k merged 6 commits into
mainfrom
claude/trim-lint

Conversation

@t4k

@t4k t4k commented Nov 4, 2026 •

Copy link
Copy Markdown
Member

Makes linting optional and local, with nothing new to install, and removes linting and the docs build on pull requests from CI. Lint failures in CI only showed up after a push, and the Lint workflow was one more entry in the Actions list.

Changes

  • make lint runs jshint on Code.js and markdownlint-cli2 on the Markdown files through npx, at pinned versions. It needs only Node.js, which clasp needs too. If actionlint is installed, it also checks the GitHub Actions workflows; if not, it says so and still succeeds.
  • htmlhint, jsonlint, and yamllint no longer run. They checked HTML templates that rarely change, a codemeta.json that the release scripts already parse, and YAML syntax that actionlint covers for the workflows.
  • jshint accepts ES2020, so ?. and ??, which Apps Script’s V8 runtime runs, no longer fail. jshint 2.13 can’t parse anything newer at any setting.
  • .github/actionlint.yaml ignores two problems that bad-link-reporter.yml and iga.yml copy from the Baler and IGA sample workflows, so those copies can stay identical to upstream.
  • The Lint workflow is removed, with .htmlhintrc, .jsonlintrc.json, and .yamllint.yml.
  • The Docs workflow no longer runs on pull requests. It reported only whether the site built, with no preview. A build that fails on main isn’t deployed, so the live site stays at its last good version.
  • The Makefile requires only git and jq up front. make help works without clasp; watch, lint, report, and joke each check for the program they use.
  • Docs: CONTRIBUTING.md has a “Checking your changes” section, with the npx commands to run directly on macOS, whose make is too old for this Makefile. docs/releasing.md and the [Unreleased] section of CHANGELOG.md are updated.

Testing

  • make lint passes with and without actionlint installed. With it installed, a workflow error planted for the test made make lint fail.
  • make help runs with only git and jq on PATH. watch, lint, and joke each name the program they’re missing.
  • The npx commands in CONTRIBUTING.md pass when run directly.
  • The docs build without new warnings.

🤖 Generated with Claude Code

t4k and others added 6 commits November 4, 2026 09:41
With esversion 6, jshint rejected syntax such as ?. and ?? that Apps
Script's V8 runtime runs. 11 (ES2020) is the highest jshint 2.13 can
parse: it fails on ES2021's ||= and ES2022's class fields at any
esversion.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
make lint needed jshint, htmlhint, markdownlint, yamllint, and jsonlint
installed globally. It now runs jshint and markdownlint-cli2 through
npx at pinned versions, so it needs only Node.js, which clasp needs
too. htmlhint, yamllint, and jsonlint no longer run: they checked
templates that rarely change, YAML syntax, and a codemeta.json that the
release scripts already parse.

actionlint checks the GitHub Actions workflows, which yamllint couldn't.
It is a separate program, so make lint runs it when it is installed and
says it was skipped when it isn't. .github/actionlint.yaml ignores two
problems that bad-link-reporter.yml and iga.yml copy from the Baler and
IGA sample workflows, so the copies can stay identical to the samples.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Linting in CI found problems only after they were pushed. make lint
checks Code.js, the Markdown files, and the workflows before a push,
needs only Node.js, and is optional. The workflow and the htmlhint,
jsonlint, and yamllint configuration files that only it used are gone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Makefile stopped before running any target, even "make help",
unless curl, git, jq, clasp, and npx were all installed. Now only git
and jq, which set the variables every target uses, are required up
front. watch requires clasp, lint requires npx, and report and joke
require curl, each when it runs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
CONTRIBUTING.md describes make lint, what it needs, and the commands to
run directly where the system make is older than GNU Make 3.82, as on
macOS. docs/releasing.md and the [Unreleased] entry in CHANGELOG.md
describe linting as it works now.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The build on pull requests reported only whether the site built, with
no preview, and its failures showed up after pushing. A build that
breaks on main is harmless: deploy-site refuses to publish it, so the
site stays at its last good version until a fix lands.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@t4k
t4k merged commit 8989afa into main Nov 4, 2026
@t4k
t4k deleted the claude/trim-lint branch November 4, 2026 17:55
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.

1 participant