Release 4.4.37 — dependency updates, test config simplification, and release packaging
This release finalizes the 4.4.37 cycle and consolidates a set of dependency bumps, test configuration simplifications, package metadata tidying, and lockfile updates. The primary goals reflected in these changes are: (1) publish the 4.4.37 release, (2) align runtime and dev dependencies to recent patch/minor releases, (3) simplify the Vitest/test setup, and (4) ensure package metadata and lockfile are consistent for reproducible installs.
Summary of impact for users and developers
- Consumers: No API or runtime behavioral changes are introduced by this release. The runtime dependency @fjell/logging was bumped; ensure your dependency resolution accepts the updated semver range if you pin exact versions.
- Maintainers & contributors: Test configuration and repository package files were simplified and normalized. Run npm install (or your package manager) after updating — package-lock.json was updated to reflect the new resolved dependency tree.
- CI/Build: The docs copy script and test setup paths changed; CI or custom build scripts that invoke the previous npx-based docs copy or vitest setup path should be adjusted if they rely on old locations.
New Features
- None. This release is focused on stabilization, dependency updates, and infrastructure/configuration simplification rather than adding feature functionality.
Improvements
-
Release/version handling
- Bumped package version to 4.4.37 to mark the formal release (package.json updated from a dev pre-release to 4.4.37).
- The release cycle had preparatory bumps to dev versions earlier in the branch history; this commit marks the publish-ready version.
-
Dependency updates
- @fjell/logging: upgraded runtime dependency version ranges to pick up recent fixes and compatibility updates (moved to ^4.4.45 in this release). This consolidates multiple prior incremental bumps.
- @fjell/eslint-config: updated devDependency to ^1.1.23 to align lint rules and toolchain updates.
- esbuild: devDependency bumped from ^0.25.8 → 0.25.9 in both root package.json and docs/public/package.json.
- Other dev deps (eslint, typescript, vitest-related packages) were present in package.json updates to align with the repository's test and dev toolchain (versions updated across commits to keep tooling coherent).
- Note: one commit changed the @fjell/logging and @fjell/eslint-config ranges earlier in the history to simpler ranges (e.g., ^4.4 and ^1.1), but the release pins concrete bump values in package.json for this release line.
-
Test and test config simplification
- Vitest setup file renamed and relocated: vitest.setup.ts → tests/setup.ts. The test bootstrap now lives under tests/, and fetch mock setup is moved accordingly (ensures fetchMocker.enableMocks() is properly terminated).
- vitest.config.ts simplified:
- Added reference comment for vitest types and enabled globals.
- Removed custom __dirname/alias resolution and the path alias for '@fjell/http-api'.
- Removed per-metric coverage thresholds and complex coverage/checkCoverage blocks.
- Removed extra testTimeout and coverage exclude blocks to reduce config complexity.
- Purpose: reduce custom configuration that previously required project-specific path handling and threshold tuning, making the test runner easier to maintain and reason about.
-
Docs and scripts
- docs package script for copying docs changed from an npx invocation to an explicit node call to the installed template script: node node_modules/@fjell/docs-template/dist/scripts/copy-docs.js. This avoids reliance on npx at runtime and makes invocation explicit.
-
Package metadata tidying
- Added/standardized "type": "module" and adjusted exports/browser fields in package.json as part of housekeeping.
- Adjusted trailing newline usage across package files (some commits add trailing newlines for consistency; others removed them to follow current formatting choices). Several commits explicitly normalize EOF newline behavior across package.json and docs/public/package.json.
Lockfile and packaging
- package-lock.json regenerated to reflect the updated dependency graph and the bumped dependency versions. This ensures reproducible installs that match the package.json dependency updates.
- The release commit sequence includes an explicit package-lock.json update to match the published package.json state.
Bug Fixes
-
File formatting/EOF newline consistency
- Multiple small commits correct trailing newline presence/absence in package.json and docs/public/package.json. These are formatting-only changes to ensure consistent file endings across environments and tooling.
-
Packaging / build reliability
- The explicit docs copy script change reduces ambiguity and potential failure when npx is not available or resolves different package versions in CI environments.
Developer experience
- Consolidated and simplified test configuration removes project-specific path aliasing and complex coverage rules — this reduces cognitive overhead for contributors running or modifying tests.
- Moving test setup to tests/setup.ts centralizes test bootstrapping, making it clearer where test-related global setup lives.
- Updated dev dependencies to recent published versions to match linting and build tools used by the project; developers should run a fresh install and validate local tooling after upgrading.
Breaking Changes
- None intentional. There are no source-level, API, or runtime-breaking changes in this release. Dependency bumps follow semver and are intended to be compatible. However, note:
- If downstream projects pin exact versions of @fjell/logging or other dependencies, they may need to update their pinned patterns to accept the new minor/patch versions.
- If any custom tooling relied on the previous docs copy invocation via npx or on the old vitest setup path, those integrations must be updated to the new script path and the new tests/setup.ts location.
Deprecations
- None declared in code. Some previous custom configs and path aliases were removed from vitest config — if any internal tooling depended on those aliases, consider migrating to standard import paths.
Security
- No explicit security fixes are recorded in the commit messages. Dependency bumps may include transitive fixes; review the updated package-lock.json for updated transitive packages if specific security auditing is required.
Testing Improvements
- Simplified vitest configuration and consolidated test setup should make tests easier to maintain and reduce fragile configuration-induced failures. No test behavior changes are expected aside from the setup path update.
Migration notes and actions for users
- If you are upgrading a local checkout or a deployment that pins dependencies:
- Run a fresh npm install (or yarn/npm equivalent) to pick up package-lock.json changes.
- If you have CI scripts that invoked the docs copy command via npx, update them to call the explicit node script path documented in docs/package.json scripts or continue to call the top-level npm script.
- Update any tooling or scripts that assumed the old vitest setup path; replace references to vitest.setup.ts with tests/setup.ts.
- Verify linter and editor integrations — eslint config version changed; ensure recommended plugins/settings in the editor are compatible with @fjell/eslint-config ^1.1.23.
Files/areas affected (high level)
- package.json (root): version bumped to 4.4.37, dependency and devDependency bumps (@fjell/logging, @fjell/eslint-config, esbuild, other dev tooling versions), metadata tidying.
- docs/public/package.json: esbuild bumped and EOF newline changes.
- package-lock.json: regenerated to align with package.json changes.
- vitest configuration and test setup: vitest.config.ts simplified, vitest.setup.ts renamed/moved to tests/setup.ts and test bootstrap logic adjusted.
- docs/package.json scripts: copy-docs script changed to explicit node invocation.
If anything in this release affects your automation (scripts, CI, editor integrations) or dependency pinning, update the relevant references and re-run the test suite. For reproducibility, install using the updated lockfile included in this release.
For more detail, inspect the repository commits that accompany this release (version bump, dependency updates, vitest simplification, and lockfile regeneration) to see exact diffs for each changed file.