Upgrading to Harper v5#1
Open
Upgrading to Harper v5#1
Conversation
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
…ION_TEST_INSTALL_SCRIPT env var The existing test script hardcodes the harper binary path, preventing the external HARPER_INTEGRATION_TEST_INSTALL_SCRIPT env var from being used. Added a separate test:integration script that defers binary resolution to the environment variable. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Bump harper ^5.0.11 -> ^5.0.28 and @harperfast/integration-testing ^0.3.1 -> ^0.4.0 - Apply mandatory harperBinPath fix in integration test (harper exports only "."), replacing the HARPER_INTEGRATION_TEST_INSTALL_SCRIPT env-var workaround in the test script - Add pinned-hash Integration Tests CI workflow (Node 22/24/26, ubuntu-latest) - Branding: harperdb CLI -> harper, HarperDB -> HarperFast org in README deploy example Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…npm ci bufferutil and utf-8-validate are optionalDependencies of harper. The lockfile generated on macOS arm64 pruned them, breaking `npm ci` on the Linux CI runners (Node 24/26: "Missing: bufferutil ... from lock file"). Regenerated with a full `npm install --include=optional` so the entries are recorded platform-agnostically. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Upgrades basic-data-example to Harper v5 (Lincoln) and completes the integration-test + CI scaffolding. This is a config/schema-only example (a
dataLoader+ GraphQL-schema demo) — there is no application JS/TS source that imports Harper, so most code-level migration items are N/A.Changes
harper^5.0.11→^5.0.28; dev@harperfast/integration-testing^0.3.1→^0.4.0.harperpackage'sexportsmap only exposes".", so the harness's auto-resolution ofharper/dist/bin/harper.jsthrowsERR_PACKAGE_PATH_NOT_EXPORTED. The test now resolves the CLI from the package's main entry and passes it explicitly asharperBinPath. This replaces the priorHARPER_INTEGRATION_TEST_INSTALL_SCRIPTenv-var workaround in thetestscript (now simplified tonpm run test:integration).integrationTests/dog-crud.test.tsexercises REST CRUD on theDogtable — pre-seeded reads (Lincoln/Max + full collection fromdogs.json),PUTcreate,GETby id,PUTupdate,DELETE, and a 404 path..github/workflows/integration-tests.yml(Node 22/24/26 matrix onubuntu-latest, actions pinned to commit hashes, Harper log artifact upload on failure).harperdbCLI →harper;package=HarperDB/...→package=HarperFast/.... Livedocs.harperdb.io/github.com/harperdbURLs left intact.Migration items (per v5 migration guide)
All code-level items are N/A — this repo contains no Harper application code (no
from 'harper'/harperdb'imports, noharperdbglobals, noharperdb-config.yaml, noblob.save, nowasLoadedFromSource, no spawned processes). Only the package name (harperdb→harper) and CLI name applied, both addressed above.config.yaml(dataLoader+graphqlSchema) andschema.graphqlrequire no v5 changes.Test results
LoopbackAddressValidationError/EADDRNOTAVAILon 127.0.0.x — macOS loopback aliases are not configured on the dev machine (requires interactive sudo). This is environmental, not a code bug: theharperBinPathfix is confirmed working (Harper resolves the CLI, loads the fixture, and proceeds to the bind step before failing on the missing loopback alias).ubuntu-latestacross Node 22, 24, and 26 (run 27036286307). CI is the authoritative test gate; it supports the full 127.0.0.0/8 loopback range with no aliasing.Lockfile fix
harper'sbufferutil/utf-8-validateoptional native deps were pruned from the lockfile when generated on macOS arm64, which brokenpm cion the Linux CI runners (Node 24/26). Regenerated withnpm install --include=optionalso the entries are recorded platform-agnostically.Notes / flags
harpershould export itsbinpath (or the harness should resolve via the package root) so consumers don't need theharperBinPathescape hatch. Flagged for the master plan.basic-data-example(private: true); no scope migration is in scope here.🤖 Generated with Claude Code