Skip to content

0.1.1

Choose a tag to compare

@tobrien tobrien released this 15 Feb 19:50
· 3 commits to master since this release
0eb4adf

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.
  • 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.