0.1.1
Release 0.1.1
Summary
- This release primarily contains packaging and repository maintenance changes needed to publish and maintain the package reliably.
- No runtime/source API changes were made to the engine code (no JS/TS exports or function signatures changed). The release focuses on metadata, CI, and package management.
Why this release matters
- Prepares the package for proper publishing to npm (version set to 0.1.1).
- Standardises developer tooling and CI for tests and publishing.
- Clarifies supported Node and build tool versions so consumers and contributors have a known baseline.
What changed (high level)
- package.json
- Bumped package version to 0.1.1 (this is the release version).
- Clarified metadata (description, repository path, exports, files).
- Declared engines: node >= 24.0.0.
- Maintains the same public dependencies/devDependencies used to build and run tests (no functional dependency changes to runtime code).
- Scripts: build, dev, watch, test, lint, clean, precommit and prepublishOnly targets are present (lint → TypeScript checks → vite build pipeline).
- package-lock.json
- The lockfile present in the working tree was removed/overhauled in the change set. The repository now ignores package-lock.json via .gitignore and .npmignore (package-lock.json is not tracked).
- package-lock contents in the diff showed a large deletion; effective policy is to not commit a lockfile for this package (the repo-level config/ignore files reflect that).
- Repository and packaging files
- .npmignore and .gitignore updated to exclude development artifacts and package-lock.json.
- .npmrc added (provenance=true).
- CI and GitHub Actions
- Added/updated two workflows:
- .github/workflows/test.yml — CI job to run lint, build, and tests on pushes/PRs (targets branches main, working, release/, feature/, dependabot/**). It enforces a clean npm install step and ensures tests/lint/build run in CI.
- .github/workflows/npm-publish.yml — Publish workflow that:
- Determines whether to publish as a production release (latest tag) or pre-release/dev (dev tag) based on package.json version and the GitHub event (supports stamping pre-release dev versions with timestamp+SHA).
- Publishes to npm with appropriate tag and uses NODE_AUTH_TOKEN from secrets when publishing.
- Workflow steps assume Node 24 for setup.
- Added/updated two workflows:
- Project-level ignores and packaging behavior
- .npmignore updated to avoid shipping source and dev artifacts.
- package files list only "dist" (so only built artifacts are published).
- package-lock.json and node_modules are excluded from the repository to avoid platform-specific lock issues and to ensure CI performs clean installs.
Commit and contributor summary
- 4 commits by a single contributor (Tim O'Brien).
- Changes are concentrated in packaging and CI; there are no large codebase changes to the library's runtime code.
Problems this release solves
- Removes ambiguity about the package version and publishing strategy (explicit version in package.json + publish workflow).
- Ensures CI runs lint, build, and tests consistently and that release publishing follows a deterministic process.
- Prevents accidental publishing of unbuilt source by listing only "dist" in files and providing prepublish/build scripts.
- Avoids committing a platform-specific package-lock.json which can cause CI/install inconsistencies.
New capabilities
- Automated publish workflow supporting:
- Production publish on GitHub release events (publishes version from package.json).
- Pre-release "dev" publishes automatically for pre-release versions with timestamp+SHA tagging.
- CI test workflow that runs lint, build (tsc/vite), and tests on relevant branches/PRs.
- Standardized packaging metadata and Node engine requirement declared.
Impact on users and developers
- Consumers:
- The runtime package is still exported the same way; no API/behavior changes are expected in this release.
- Node 24 (>=24.0.0) is now the declared supported engine. Users running older Node versions may need to upgrade to install/build from source.
- Maintainers and contributors:
- When contributing, expect CI to run lint, build, and tests; adhere to linting and TypeScript rules.
- package-lock.json is intentionally ignored in the repository — local reproducible installs may require you to generate your own lockfile locally if desired; CI performs a clean install to resolve platform-specific optional deps.
- The npm publish workflow will only publish production (non-pre-release) versions when a GitHub release event is created; pre-release/dev builds are published under a dev tag and get a timestamped version when package.json contains a pre-release segment.
- Build and tests must pass in CI for PRs to merge cleanly if precommit or branch protection rules are enforced.
Breaking changes and important considerations
- Node engine bump: package.json declares "node": ">=24.0.0". This is the primary breaking consideration — older Node runtimes (Node 20/18, etc.) may no longer be supported for building or running local development. There are no source API signature changes.
- package-lock.json is not tracked: builds and contributors should rely on CI for consistent installs, or generate their own lockfiles locally. This can change how reproducible installs are performed across different environments.
- No runtime API or type signature changes were introduced in this set of commits; however, the lockfile diff included many dev dependency entries — that reflects removal/cleanup of lockfile rather than dependency upgrades affecting the published package.json.
Practical notes / Developer checklist
- Upgrade your local Node to >=24 to match the declared engines if you haven't already.
- Use npm install in CI or locally to produce a lockfile if you depend on reproducible installs; do not expect a repository lockfile to exist.
- The publish workflow requires NPM_TOKEN in repository secrets to publish to npm.
- For any future changes that alter exports or runtime API, follow semantic versioning; this release (0.1.1) is packaging/metadata-only.
If you need a changelog entry targeted at end users:
- 0.1.1 — Packaging and CI: prepare package for npm publish; require Node >=24; add test and publish GitHub Actions; remove package-lock from repository.
End of notes.