Skip to content

Enforce standard lint rules in tests, remove precommit hook, and update dev deps (v1.0.38)

Choose a tag to compare

released this 02 Oct 17:39
· 98 commits to working since this release
8039929

This release tightens developer checks and simplifies the publish pipeline while bringing several devDependencies up to date. The primary user-visible effects are stricter linting (test files no longer get a relaxed "no-undefined" rule), removal of the repo-level precommit npm script, and an upgrade of the local ESLint config package used during development. The release also updates package metadata (version bump to 1.0.38), refreshes the lockfile to match dependency bumps, and includes a small set of repository housekeeping changes (EOF normalization and deterministic dependency pinning in prior commits reflected in the lockfile).

Summary

  • Enforced the standard no-undefined ESLint rule for test files by removing the test-specific override. Tests that previously relied on no-undefined: off will now be linted against the standard rule.
  • Removed the precommit npm script from package.json (previously ran clean, lint, build, test). The prepublishOnly script remains.
  • Bumped devDependency @fjell/eslint-config to ^1.1.25 and updated package-lock.json to match the new resolved package artifact and integrity hash.
  • Bumped package version to 1.0.38 and normalized end-of-file formatting in package.json.
  • Continued a series of repository maintenance commits reflected in the history: earlier dependency bumps and lockfile updates, pinning of esbuild in prior commits, and workflow simplification for npm publish.

New Features

(No new runtime or user-facing features were added in this release.)

Improvements

  • Dev dependency upgrades

    • Updated devDependency @fjell/eslint-config from earlier ranges to ^1.1.25. The lockfile was regenerated to reference the 1.1.25 tarball and integrity hash to ensure deterministic installs.
    • Prior commits in this release series also included pinning esbuild to 0.25.9 (exact version) to remove range ambiguity in installs.
  • Package metadata and formatting

    • Bumped package.json version to 1.0.38 (from a -dev.0 pre-release in the working branch).
    • Normalized package.json end-of-file (EOF) formatting in multiple commits to ensure a consistent final newline state across edits.
  • CI / publishing workflow simplification (context from recent commits)

    • The separate build job was removed from the npm-publish workflow and the publish-npm job was simplified to run without depending on a dedicated build job. This reduces workflow complexity for publishing runs (publish now runs independently in the workflow). See .github/workflows/npm-publish.yml for the updated job layout.

Bug Fixes

  • No direct runtime bug fixes are included in the change set. The lockfile updates ensure the repository installs the intended patched devDependencies (including lint rule fixes delivered by @fjell/eslint-config updates).

Breaking Changes (Attention Required)

  • ESLint stricter enforcement in test files

    • Removed the ESLint override that turned off no-undefined for files matching tests/**/*.ts and tests/**/*.tsx. Test code that previously relied on undefined values without handling them may now fail linting. Action: run the project's lint command locally and address any no-undefined violations in test sources.
  • Local precommit workflow change

    • The precommit npm script has been removed from package.json. Developers who relied on the repository-provided precommit script (which ran clean, lint, build, and test) need to update their local workflows or git hooks. The prepublishOnly script remains and still runs clean and build during publish time.
  • Publish workflow expectations

    • The GitHub Actions workflow for npm publishing was simplified to remove a separate build job and to allow the publish job to run without needing a prior build job. If CI previously relied on the removed build job's artifacts or side effects, pipeline adjustments may be necessary.

Developer Experience

  • Linting

    • Tests are now validated by the same no-undefined rule that applies to the rest of the codebase. This encourages consistent detection of undefined usage across code and tests but may require small fixes in test suites.
  • Local hooks and scripts

    • With precommit removed, there is no longer a repository-defined single-step precommit script. Developers should add their own git hooks or adapt local tooling to reproduce desired precommit behavior (lint, build, test) where needed.
  • Deterministic installs

    • The lockfile was updated to reflect the bumped devDependencies and pinned versions, improving reproducibility of npm ci/npm install in development and CI.

Files and components changed

  • eslint.config.mjs

    • Removed the override block that matched test files (tests/**/*.ts, tests/**/*.tsx) and set no-undefined to off. Test files will now be checked by the base rule set.
  • package.json

    • Version set to 1.0.38.
    • Removed precommit npm script (previously: npm run clean && npm run lint && npm run build && npm run test).
    • Bumped devDependency @fjell/eslint-config to ^1.1.25.
    • Other housekeeping: EOF normalization.
  • package-lock.json

    • Updated entries to reflect @fjell/eslint-config@1.1.25 (resolved URL and integrity hash) and other dependency resolution changes introduced by the devDependency bumps.
  • .github/workflows/npm-publish.yml (reflected in recent commits)

    • Removed the separate build job and simplified the publish job so it no longer needs: build.

Migration notes / actions for consumers and contributors

  • Run linters locally

    • After pulling this release, run npm run lint (or your standard lint command) and fix any no-undefined violations in tests.
  • Adjust local precommit setups if needed

    • If the earlier precommit npm script was relied upon, recreate the desired precommit behavior using a custom git hook, Husky, or an equivalent tool.
  • CI and publish checks

    • If CI or internal tooling relied on the removed build job in the npm-publish workflow, update workflows to provide the necessary build or test steps prior to publish.

Additional context

  • This release continues an ongoing effort to keep linting rules, dev tooling, and CI configuration consistent and deterministic. Upgrading @fjell/eslint-config consolidates recent lint rule fixes into the development environment; removing the test-specific override brings tests under the same linting standards applied to production code.

If issues appear after upgrading, check lint output for no-undefined violations in test files, verify local hook configurations, and ensure CI workflows match the updated publish expectations.