chore: packaging for release#11
Merged
Merged
Conversation
- Remove console.log/console.error from loadSpecConfig() that corrupted stdout JSON output for CLI and programmatic consumers - Introduce getSpecConfig() lazy singleton to cache YAML file reads - Add 3 new tests: no-stdout-pollution, lazy-load validity, cache identity Fixes Critical Blockers #1 and #2 from pre-publish analysis.
- Add engines field to package.json (node >= 18) - Add prepublishOnly script to enforce build before publish - Add Node.js smoke test to CI workflow - Clean up unused SPEC_VERSION import in test
Version: - Create src/version.ts that reads ../package.json using import.meta.url - Path is stable across source, bundle, installed, and npx contexts because npm always includes package.json in the published tarball - Replace hardcoded '0.1.0' in index.ts with dynamic VERSION import - Add 3 tests: matches package.json, valid semver, not fallback spec.md path resolution: - Reduce 5 shotgun candidate paths to 2 deterministic strategies: 1. Bundle path: ./spec.md (build copies it alongside entry points) 2. Dev path: ../../../../../docs/spec.md (relative to source) - Add explicit specPath parameter for callers who know the path - Update build script to copy spec.md to both dist/ and dist/linter/ - Add 3 tests: consistency, content length, explicit path contract
1. Move build-only deps to devDependencies (keep zod for type compat) - citty, mdast, remark-*, unified, unist-util-visit, yaml all bundled - Zero runtime require() calls to any npm dependency 2. Add 'designmd' bin alias for Windows shell compatibility - cmd.exe confuses .md extension with file association 3. Add ./package.json to exports map - Prevents ERR_PACKAGE_PATH_NOT_EXPORTED in strict ESM bundlers 4. Remove stale @types/react from devDependencies 5. Add tarball smoke test to CI workflow - Packs, installs in clean dir, runs CLI + programmatic import - Catches 'works in monorepo, breaks when installed' bugs
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.
Harden
@google/design.mdfor npm publish.loadSpecConfig()wrote to stdout/stderr, corrupting JSON output for agent consumers.getSpecConfig()replaces the module-levelloadSpecConfig()call that crashed on import if the YAML was missing.enginesfield.node >= 22.prepublishOnlyscript. Enforcesbun run buildbefore every publish.node dist/index.js lintafter build.react,ink,@json-render/core,@json-render/inkremoved fromdependencies.src/version.tsreads../package.jsonviaimport.meta.url. Stable across source, bundle, npm install, and npx contexts.specPathoverride.designmdbin alias. Windowscmd.execonfuses.mdextension with file associations.devDependencies(keepzodfor type compat). Bundle has zero runtimerequire()calls to npm packages../package.jsonto exports map (preventsERR_PACKAGE_PATH_NOT_EXPORTED).@types/react./tmp→ run CLI + programmatic import.Test coverage
9 new tests across 3 files.
spec-config.test.tsversion.test.tsspec-helpers.test.tsTarball