Skip to content

Fjell Client API v4.4.x Development Cycle Refresh and Dependency Hygiene

Choose a tag to compare

released this 13 Oct 21:30
· 41 commits to working since this release

This release represents a large, multi-faceted refresh across dependencies, tooling, and core utilities, aligned with the ongoing development cycle. It consolidates a significant dependency bump strategy, enhances developer tooling, simplifies internal path construction logic, and updates CI/publish workflows. The release focuses on stabilizing lockfiles, improving linting/ESLint tooling, and preparing for subsequent feature work without changing user-facing APIs.

Overview and context

  • Initiates and stabilizes the next development cycle across the Fjell family of packages, bumping core runtime packages and aligning development tooling. This includes multiple patches and dev-cycle transitions (e.g., moving from 4.4.31 and later development builds to 4.4.32-dev.0 and beyond).
  • Substantial lockfile hygiene updates across package.json and package-lock.json to ensure deterministic installs and reduce merge conflicts in future iterations.
  • A broad set of internal code improvements, including a major refactor of the path-building logic in Utilities.ts to simplify branching, remove duplicated code, and improve maintainability without changing external behavior.
  • Developer tooling and CI/publish workflow changes, including ESLint tooling upgrades and removal of a dedicated CI build step from the npm-publish workflow.
  • Tests and linting adjustments to align with stricter lint rules and streamlined pre-commit behavior.

Breaking changes

  • Removal of the dedicated CI build job from the npm-publish workflow. The publish step no longer depends on a separate build job, which changes the publish pipeline sequencing and may affect how builds are validated in CI.
  • No public API changes announced; changes are primarily internal, configuration, and tooling related. Users should expect more consistent installs and stricter code quality checks during development.

What changed, organized by topic

New Features

  • None directly in the public API. The changes are focused on development tooling, lockfile hygiene, and internal code cleanup. The development cycle identifiers (e.g., 4.4.32-dev.0 and similar) indicate ongoing progression toward future feature work.

Improvements

  • Utilities.ts refactor: Simplified and consolidated path-building logic to remove duplicated branches, reduce complexity, and ensure a single, predictable matching/fallback flow. This improves readability and future maintainability without altering external behavior.
  • Lockfile and dependency hygiene:
    • Bumped and aligned core runtime dependencies across packages: @fjell/core, @fjell/http-api, @fjell/logging, and @fjell/registry to patch/feature levels as part of the ongoing cycle.
    • Updated package.json entries to reflect new ranges and exact versions, with trailing newline normalization where applicable.
    • Synchronized package-lock.json blocks to reflect updated versions, resolved tarball URLs, and integrity checksums, and removed duplicated or conflicting lines to improve determinism.
  • ESLint tooling upgrades:
    • Upgraded/added ESLint-related tooling: @eslint/eslintrc, @eslint/js, and @fjell/eslint-config to align with current lint rules and ensure consistent linting across projects.
    • Updated project configuration to accommodate the new tooling and ensure compatibility with strict linting standards.
  • Development workflow and tooling:
    • Removed the precommit script to decouple local pre-commit steps from the overall CI/publish flow.
    • Adjusted test configuration to remove a test-level ESLint override and align tests with stricter linting rules.
    • Removed a dedicated CI build job from npm-publish workflow, decoupling build/test/coverage steps from the publish action.
  • Versioning and development cycle management:
    • Initiated and progressed development cycle bumps (e.g., 4.4.32-dev.0, 4.4.33-dev.0, etc.), including renumbering and normalizing version entries in package.json and lockfiles.
    • Ensured EOF/formatting consistency for package.json (trailing newline handling) to maintain clean diffs and stable merges.

Bug Fixes

  • No user-facing bug fixes were introduced in terms of runtime behavior. The changes are primarily internal or tooling-focused (linting, lockfile determinism, and code simplification). Any issues resolved are reflected by aligning dependency versions and removing duplication in the lockfile to prevent install-time inconsistencies.

Documentation Updates

  • Release notes here describe the changes in depth and provide guidance on impact for developers. For detailed up-to-date guidance, refer to the repository documentation and the PRs that correspond to the dependency bumps, ESLint tooling updates, and the Utilities.ts refactor.

Developer Experience

  • Better maintainability and predictability for developers due to:
    • Simpler, cleaner Utilities.ts path-building logic
    • More deterministic lockfiles with cleaned dependency blocks
    • Updated ESLint tooling and config to catch issues earlier in the development process
    • Removal of the precommit hook and streamlining of CI/publish workflow to reduce friction during development

Configuration Changes

  • package.json and package-lock.json:
    • Updated runtime dependencies for core Fjell packages to newer patch versions and cleaned up formatting.
    • Normalized EOF handling (ensuring trailing newlines where appropriate) to improve diffs and consistency.
    • Version management across development cycles (e.g., 4.4.32-dev.0 and subsequent bumps) to reflect ongoing work.
  • .github/workflows/npm-publish.yml:
    • Removed the standalone CI build job and decoupled the publish-npm step from a dedicated build job, simplifying the publish workflow.

How this affects you

  • If you work with the Fjell client-api and related packages, you can expect more consistent and reproducible installs due to better lockfile hygiene and updated patch-level dependencies.
  • Development experience should improve with reduced complexity in path construction logic, stricter linting, and a more streamlined publish workflow.
  • There is no change to the public API surface, but internal changes may influence how you contribute (e.g., committing changes, running local lint/test, and generating releases).

Notes

  • The release is a large, multi-area update focused on internal quality, tooling, and development workflow improvements rather than user-facing feature changes.
  • For detailed, itemized changes, refer to the individual PRs and commit messages linked to this release stream (dependency bumps, ESLint tooling upgrades, Utilities.ts refactor, and CI workflow changes).