Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Upgrading to Harper v5#1

Open
BboyAkers wants to merge 5 commits into
mainHarperFast/basic-data-example:mainfrom
v5-upgradeHarperFast/basic-data-example:v5-upgradeCopy head branch name to clipboard
Open

Upgrading to Harper v5#1
BboyAkers wants to merge 5 commits into
mainHarperFast/basic-data-example:mainfrom
v5-upgradeHarperFast/basic-data-example:v5-upgradeCopy head branch name to clipboard

Conversation

@BboyAkers
Copy link
Copy Markdown
Member

@BboyAkers BboyAkers commented May 8, 2026

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

  • Dependency: harper ^5.0.11^5.0.28; dev @harperfast/integration-testing ^0.3.1^0.4.0.
  • Harness CLI fix (mandatory): the harper package's exports map only exposes ".", so the harness's auto-resolution of harper/dist/bin/harper.js throws ERR_PACKAGE_PATH_NOT_EXPORTED. The test now resolves the CLI from the package's main entry and passes it explicitly as harperBinPath. This replaces the prior HARPER_INTEGRATION_TEST_INSTALL_SCRIPT env-var workaround in the test script (now simplified to npm run test:integration).
  • Tests: integrationTests/dog-crud.test.ts exercises REST CRUD on the Dog table — pre-seeded reads (Lincoln/Max + full collection from dogs.json), PUT create, GET by id, PUT update, DELETE, and a 404 path.
  • CI: added .github/workflows/integration-tests.yml (Node 22/24/26 matrix on ubuntu-latest, actions pinned to commit hashes, Harper log artifact upload on failure).
  • Branding: README deploy example harperdb CLI → harper; package=HarperDB/...package=HarperFast/.... Live docs.harperdb.io / github.com/harperdb URLs 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, no harperdb globals, no harperdb-config.yaml, no blob.save, no wasLoadedFromSource, no spawned processes). Only the package name (harperdbharper) and CLI name applied, both addressed above. config.yaml (dataLoader + graphqlSchema) and schema.graphql require no v5 changes.

Test results

  • Local: blocked by LoopbackAddressValidationError / EADDRNOTAVAIL on 127.0.0.x — macOS loopback aliases are not configured on the dev machine (requires interactive sudo). This is environmental, not a code bug: the harperBinPath fix is confirmed working (Harper resolves the CLI, loads the fixture, and proceeds to the bind step before failing on the missing loopback alias).
  • CI: PASSING on ubuntu-latest across 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's bufferutil / utf-8-validate optional native deps were pruned from the lockfile when generated on macOS arm64, which broke npm ci on the Linux CI runners (Node 24/26). Regenerated with npm install --include=optional so the entries are recorded platform-agnostically.

Notes / flags

  • Upstream: harper should export its bin path (or the harness should resolve via the package root) so consumers don't need the harperBinPath escape hatch. Flagged for the master plan.
  • npm scope: package name is unscoped basic-data-example (private: true); no scope migration is in scope here.

🤖 Generated with Claude Code

BboyAkers and others added 5 commits May 8, 2026 13:17
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Morty Proxy This is a proxified and sanitized view of the page, visit original site.