Skip to content

Modernize the lint and format toolchain (eslint, prettier, solhint) #4214

Open

Description

@mswilkison

Both packages are several majors behind on everything that lints or formats:

Package random-beacon ecdsa Current
eslint ^7.32.0 ^7.32.0 10.8.0 — long past EOL
prettier ^2.4.1 ^2.5.1 3.9.6
solhint ^3.3.6 ^3.3.6 6.2.3
prettier-plugin-solidity ^1.0.0-beta.18 ^1.0.0-beta.19 2.3.1 — four-year-old beta

Probably three PRs rather than one, since the costs differ:

  • eslint 7 → 10 crosses the flat-config break at 9, and @thesis-co/eslint-config (a git tarball) has to come along. This is the real work.
  • prettier 2 → 3 reformats both trees. Best as its own commit containing nothing else, so review is git diff --stat. Note prettier 3 changed the default trailingComma to "all".
  • solhint 3 → 6 plus solhint-config-keep, also a git tarball.

Both packages currently pass lint with 0 errors and a pile of warnings (18 + 13 in random-beacon, 103 + 9 in ecdsa). Worth deciding whether to fix or formally accept those while in here.

Same work in tbtc-v2: threshold-network/tbtc-v2#1077.

Activity

  1. linear commented on Jul 27, 2026

    @linear
  2. mswilkison commented on Sep 8, 2026

    @mswilkison
    ContributorAuthor

    Closing PR: #4304, with prerequisite PRs #4302 (ESLint 10 flat configs) and #4303 (Prettier 3 plus a separate formatting-only commit). The Git-pinned shared lint configs are replaced with explicit local policy. All lint/format checks pass; existing warnings remain deliberately non-blocking, with the error rules preserved. Fresh TypeChain generation succeeds, all 159 compiled contract ABIs/runtimes match after stripping compiler metadata, and all 108 reformatted TypeScript files preserve emitted JavaScript behavior. Coordinate #4205 and #4217 with this stack.

    The issue is left open until the closing PR and its prerequisites land.

    Follow-up #4306 preserves generated TypeChain overloads in the lint TypeScript programs while generated output remains excluded from lint targets.

  3. added 3 commits that reference this issue on Sep 13, 2026
    a5ec7cf
    7d83971
    bbda6be
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions