Skip to content

Release 4.4.38 — version bump, dependency updates, test/config simplifications, and CI publish workflow changes

Choose a tag to compare

released this 04 Sep 04:44
· 43 commits to working since this release

This release marks the 4.4.38 production tag and consolidates a set of dependency updates, test configuration simplifications, packaging metadata tidying, and a streamlined GitHub Actions workflow for npm publishing. The primary goals reflected in these changes are: bring runtime and linting dependencies up to current patch/minor releases, simplify test setup and Vitest configuration, and reduce complexity in the npm-publish CI workflow by removing a separate build job.

Key points at a glance

  • Package version advanced to 4.4.38 (release) and package-lock updated to match resolved dependency versions.
  • Runtime dependency @fjell/logging updated to ^4.4.46 (lockfile reflects 4.4.46 resolved version).
  • Dev dependency @fjell/eslint-config updated to ^1.1.24 (lockfile updated accordingly).
  • GitHub Actions: the separate CI build job was removed from .github/workflows/npm-publish.yml; the publish-npm job no longer needs/depends on a prior build job and runs with a checkout step.
  • Test setup and Vitest config simplified: test setup file path changed and vestigial complex coverage/alias configuration removed.
  • Minor build tooling bumps (esbuild) and package.json metadata tidies (EOF/newline and "type": "module").

Detailed changes

New release metadata

  • package.json: version set to 4.4.38 to mark a release build (file: package.json).
    • Earlier dev iteration versions (4.4.38-dev.0) were replaced with the release version.
    • Several commits also show the regular bumping pattern used to begin/close development cycles (dev.* -> release -> dev.* for next cycle).

Dependency updates and lockfile changes

  • Runtime dependency updates (package.json):

    • @fjell/logging updated from earlier ranges to ^4.4.46 in this release cycle. The lockfile was updated to reflect the resolved 4.4.46 package (package-lock.json).
    • Rationale: pick up bug fixes and compatibility updates from the shared logging package (changes are lockfile and dependency spec updates only; no source changes in this package).
  • Dev dependency updates (package.json):

    • @fjell/eslint-config bumped to ^1.1.24 with lockfile updates capturing resolved metadata.
    • Purpose: align lint rules with the current shared configuration and compatibility.
  • package-lock.json: regenerated/updated entries to reflect the bumped resolved versions and updated integrity/resolved URLs for the above packages. These changes are lockfile metadata only and do not alter source code logic.

Build and CI workflow changes

  • .github/workflows/npm-publish.yml:
    • Removed the separate build job and all of its steps (checkout, setup-node, npm ci, lint, build, test, and codecov upload).
    • The publish-npm job no longer depends on build (needs: build removed) and runs on ubuntu-latest with a checkout step.
    • Impact: the publish workflow is simplified and will run without performing local build/test steps in this workflow. Teams relying on that job to run tests/builds should ensure those steps are performed elsewhere (a different workflow, CI pipeline, or external process) before publish runs.
    • Recommendation: if a gated build/test step is required before publishing, reintroduce those steps into a pre-publish workflow or make sure a separate pipeline enforces the checks; otherwise publishing will proceed assuming those checks are handled externally.

Testing and configuration simplifications

  • Vitest and test setup:
    • tests/setup.ts: moved from vitest.setup.ts to tests/setup.ts; fetch mock setup moved/centralized into tests/setup.ts and fetchMocker.enableMocks() is properly terminated in the new location.
    • vitest.config.ts: simplified configuration — added /// and enabled globals; removed custom __dirname/alias resolution and removed the path alias for '@fjell/http-api'.
    • Removed complex coverage thresholds and per-metric settings, along with extra testTimeout and coverage exclude blocks. The vitest config was simplified to reduce maintenance overhead and avoid brittle, per-metric coverage enforcement in this repository.
    • Impact: test setup is easier to understand and maintain; if any external scripts or tooling depended on the old alias or nonstandard config, those integrations need to be updated to the simplified paths.

Package metadata and tooling updates

  • package.json metadata changes:

    • Added "type": "module" to package.json to explicitly opt into ES module semantics.
    • Tidy of exports/browser fields and trailing newline/EOF formatting corrections across multiple commits.
    • These are packaging, formatting, and metadata changes; they do not change runtime behavior beyond module interpretation in environments that read "type".
  • esbuild bumps:

    • esbuild updated in both docs/public/package.json and the root package.json from ^0.25.8 → 0.25.9 in the docs/public package and root package files where applicable.
    • Purpose: pick up small fixes/compatibility improvements in esbuild used for docs or local tooling.

Docs and scripts updates

  • docs/package.json / docs scripts:
    • The docs "copy-docs" script was changed to call node node_modules/@fjell/docs-template/dist/scripts/copy-docs.js directly instead of using npx. This ensures the script uses the locally installed package copy-docs binary and avoids relying on npx behavior.

Other housekeeping

  • Multiple commits include routine formatting and EOF newline adjustments to package.json and other package files; these are non-functional cleanup changes to keep repository files consistent.

Impact and recommended follow-up actions

  • CI/publish flow:

    • Verify where build, lint, test, and coverage checks now run in your CI setup. This release removes those steps from the npm-publish workflow; if your release process relied on them to gate publish, add an explicit pre-publish check or ensure a separate workflow enforces them.
  • Testing configuration:

    • Update any local or CI references to the old vitest setup file path or path aliases. Tests now expect tests/setup.ts and a simplified vitest.config.ts with globals enabled.
  • Dependency management:

    • Lockfile and package.json were updated to newer resolved versions for @fjell/logging and @fjell/eslint-config. Consumers should run a fresh install (npm ci / npm install) to pick up the updated lockfile entries before building locally.
  • Module type change:

    • The addition of "type": "module" may change module resolution behavior for consumers and tooling that read package.json. If tooling expects CommonJS, verify compatibility or adjust tooling configuration accordingly.

Files changed (high level)

  • package.json — version bump to 4.4.38, dependency bumps, add "type": "module", metadata tidy and EOF changes.
  • package-lock.json — updated resolved versions/integrity to match dependency bumps.
  • .github/workflows/npm-publish.yml — removed build job and dependency on it; publish job simplified.
  • vitest.config.ts — simplified configuration, moved to globals and removed custom alias logic.
  • tests/setup.ts (new path for test setup) — moved fetch mock setup here.
  • docs/public/package.json and root package.json — esbuild bumped to 0.25.9 where applicable.
  • docs/package.json — copy-docs script updated to a direct node invocation.

Breaking changes and deprecations

  • No source-level API breaking changes were made in this release. However, the following operational changes may affect users and CI integrations:
    • CI: The npm publish workflow no longer performs build/test/lint steps; publishing now assumes those steps are handled elsewhere. This can affect any process that relied on the publish workflow as a gate for tests/builds.
    • Module semantics: adding "type": "module" affects how Node resolves files by default; confirm that your local tooling and consumers are compatible.

Bug fixes

  • This release contains no direct bug-fix code changes in the package source. The dependency bumps bring fixes and compatibility updates from external packages into the resolved dependency tree; refer to those packages' changelogs for their specific fixes.

Notes

  • All package.json and lockfile changes are intended to keep dependencies up to date and to tidy repository configuration. No behavioral changes were introduced to the package source code in this release.
  • If you maintain CI that expects per-metric coverage enforcement or special path aliasing for tests, plan to reintroduce those rules in a centralized CI job or adapt tests and tooling to the simplified configuration.

If additional detail is needed about any single change (specific lines in a workflow, exact vitest options removed, or lockfile entries), point to the changed files and the commits that update them for a line-by-line review.