Fjell Client API v4.4.x Development Cycle Refresh and Dependency Hygiene
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).