Skip to content

chore: smoother dev workflow, release script and package READMEs - #62

Merged
BatLeDev merged 9 commits into
mainfrom
chore-dev-tooling
Oct 16, 2026
Merged

BatLeDev merged 9 commits into
mainfrom
chore-dev-tooling

Conversation

@BatLeDev

Copy link
Copy Markdown
Member

Makes the lib easier to build, test, release and read, separately from the dev-env work.

Build

  • build-types compiles the generator's own imports: a fresh checkout, or a new file imported by build.ts, no longer fails with ERR_MODULE_NOT_FOUND (the manual build-tsc bootstrap is gone from CONTRIBUTING).
  • build-tsc removes the build outputs whose source was deleted (scripts/clean-orphans.mts): tsc never does it and npm publish ships every **/*.js, so a deleted module (e.g. lib-vue selection-filters) would have been published again.
  • build no longer runs eslint --fix.

Hooks and CI

  • husky 8 → 9; commit-msg passes "$1".
  • quality = build + lint + test, in that order: tests import the built .js, the old pre-push tested a possibly stale build. Used by pre-push, prepublishOnly and the new pull request workflow.
  • lint no longer fixes files (fixes made at commit time were not staged); lint-fix does.
  • site.test.js was never run (the glob only takes .ts): now site.test.ts.
  • engines >=22.6, needed by --experimental-strip-types.

Release

  • npm run release <package> <patch|minor|major> bumps the version and creates the chore: release lib-<name> <version> commit (package.json + lockfile), then git push and npm publish -w packages/<package> as before. A plain npm version hook cannot do it: npm updates the lockfile after its version hooks.

Docs

  • A README per package (npm pages were empty), verified against the sources; the root README becomes an index. Removed APIs dropped (initSession, colors.js, Nuxt module, stringify export, old @data-fair/lib/... paths).
  • upgrade-scripts skill: locks.start(db), not locks.init(db). lib-vuetify description: Vuetify 4.

Fixes

  • Drop main: index.js from the packages without a root entry (common-types, node, processing-dev, utils, vue).
  • ESLint deprecation messages of lib-utils point to the lib-* packages.

Cleanup

  • Remove the stale installed skill copies (.agents/, .claude/skills/, skills-lock.json); skills/ is the source.
  • .gitignore: .superpowers/, .claude/settings.local.json.

Not included: debug (lib-node, lib-express, lib-vue) and prom-client (lib-express) are imported without being declared as dependencies.

skills/ is the source; .agents/skills, .claude/skills and skills-lock.json
were stale local installs (pr-ready, skill-creator).
A fresh checkout, or a new file imported by build.ts, failed with
ERR_MODULE_NOT_FOUND until a manual build-tsc bootstrap.
quality = build + lint + test: tests import the built .js, so build first.
lint no longer fixes files. site.test.js was never run, now site.test.ts.
engines >=22.6 for --experimental-strip-types.
The root README documented removed APIs (initSession, colors.js, Nuxt module,
stringify export, old @data-fair/lib paths). Its still valid content moved to
the package READMEs, verified against the sources; npm pages were empty.
common-types, node, processing-dev, utils and vue declared main: index.js
but ship no index, so a bare import failed with a misleading error.
tsc never removes them and npm publish ships every **/*.js: a deleted module
(e.g. lib-vue selection-filters) would have been published again.
@BatLeDev
BatLeDev merged commit 7adf6c8 into main Oct 16, 2026
1 check passed
@BatLeDev
BatLeDev deleted the chore-dev-tooling branch October 16, 2026 13:01
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.

1 participant