From 26db200518a7a1b8bd5fb738fcac630d449f80f8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 8 Nov 2025 01:22:35 +0000 Subject: [PATCH] chore: version packages --- .changeset/normalized-audit-schema.md | 97 ----------------------- .changeset/update-readmes.md | 22 ------ packages/cli/CHANGELOG.md | 107 ++++++++++++++++++++++++++ packages/cli/package.json | 2 +- packages/core/CHANGELOG.md | 104 +++++++++++++++++++++++++ packages/core/package.json | 2 +- packages/preset-basic/CHANGELOG.md | 7 ++ packages/preset-basic/package.json | 2 +- 8 files changed, 221 insertions(+), 122 deletions(-) delete mode 100644 .changeset/normalized-audit-schema.md delete mode 100644 .changeset/update-readmes.md diff --git a/.changeset/normalized-audit-schema.md b/.changeset/normalized-audit-schema.md deleted file mode 100644 index 3494c64..0000000 --- a/.changeset/normalized-audit-schema.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -"@effect-migrate/core": minor -"@effect-migrate/cli": minor ---- - -Add normalized schema for 40-70% audit.json size reduction and move business logic to core - -**Breaking Changes:** - -1. **Schema version 0.1.0 → 0.2.0** (audit.json - no backwards compatibility) - - Replace `byFile`/`byRule` with deduplicated `rules[]`, `files[]`, `results[]` arrays - - Add index-based groupings in `groups` field for O(1) lookup - - Implement deterministic ordering (sorted rules/files) for reproducible output - - Add stable content-based keys for cross-checkpoint delta computation - - Compact range representation using tuples instead of objects - - Add separate `info` counter to FindingsSummary (previously counted as warnings) - -2. **CLI loaders removed** - business logic moved to @effect-migrate/core - - ❌ Removed `@effect-migrate/cli/loaders/config` - use `@effect-migrate/core` exports instead - - ❌ Removed `@effect-migrate/cli/loaders/presets` - use `PresetLoader` service instead - -**New @effect-migrate/core exports:** - -Config utilities: - -- `mergeConfig(defaults, userConfig)` - Merge preset defaults with user config -- `deepMerge(target, source)` - Deep merge plain objects (arrays replaced, not concatenated) -- `isPlainObject(value)` - Type guard for plain objects - -Preset loading: - -- `PresetLoader` - Context.Tag for preset loading service -- `PresetLoaderService` - Service interface -- `PresetLoaderNpmLive` - Default Layer for npm-based preset resolution -- `PresetLoadError` - Tagged error for preset loading failures -- `Preset` - Preset type (rules + optional defaults) -- `LoadPresetsResult` - Result of loading multiple presets - -Rule construction: - -- `rulesFromConfig(config)` - Build rules from config (pattern + boundary) - -Schema enhancements: - -- Config now supports `presets?: string[]` field for preset names - -Normalizer utilities: - -- `normalizeResults(results, config, threads?)` - Convert to normalized schema -- `expandResult(normalized)` - Convert back to flat format -- `deriveResultKey(result)` - Generate stable content-based key - -**@effect-migrate/cli changes:** - -New workspace-aware preset resolution: - -- `PresetLoaderWorkspaceLive` - Layer that tries workspace path first, falls back to npm -- Supports monorepo development with automatic workspace preset detection -- Windows-compatible file URL handling with `pathToFileURL()` - -Refactored loaders: - -- `loadRulesAndConfig()` now orchestrates core services instead of implementing logic -- Uses `Effect.catchTag("PresetLoadError")` for precise error handling -- Reduced CLI code by ~1291 lines (60% reduction in loaders) - -**Build improvements:** - -- Implement TypeScript Project References (src/test separation) for proper type checking -- Fix NodeNext module resolution (.js extension requirements) -- Consolidate test organization (all tests in `test/` directories) -- Fix barrel import violations (use direct imports from @effect/platform) -- Remove duplicate utils folder (merged util/ into utils/) - -**Migration guide:** - -If you were importing from CLI loaders: - -```typescript -// Before -import { loadConfig } from "@effect-migrate/cli/loaders/config" -import { loadPresets } from "@effect-migrate/cli/loaders/presets" - -// After -import { loadConfig, PresetLoader } from "@effect-migrate/core" - -const config = yield * loadConfig(configPath) -const loader = yield * PresetLoader -const { rules, defaults } = yield * loader.loadPresets(config.presets ?? []) -``` - -**Test coverage:** - -- 50 new tests for core utilities (config merge, preset loading, rule builders) -- 6 new tests for CLI workspace preset resolution -- 40+ tests for normalized schema -- Total: 308 tests passing diff --git a/.changeset/update-readmes.md b/.changeset/update-readmes.md deleted file mode 100644 index 5b16f5c..0000000 --- a/.changeset/update-readmes.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -"@effect-migrate/core": patch -"@effect-migrate/cli": patch ---- - -Update all READMEs to reflect current architecture and published usage - -**Documentation improvements:** - -- Root README: Accurate CLI commands, output schemas (index.json, audit.json, metrics.json, threads.json), real rule examples, proper roadmap -- CLI README: Complete options documentation (--strict, --log-level, --amp-out), troubleshooting guide, local development instructions -- Core README: Comprehensive exported API documentation, service architecture, Layer patterns, real rule examples from preset-basic - -**Key updates:** - -- Reflect dogfooding status and unstable API warnings across all packages -- Document complementary relationship with @effect/language-service -- Add proper roadmap with planned features (SQLite, Polars, OpenTelemetry, MCP server, workflow orchestration) -- User-focused: Published npm usage as primary, local development as secondary -- Real examples from actual codebase (patterns.ts, boundaries.ts) - -Resolves #24 diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 5ca11c2..717950d 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,112 @@ # @effect-migrate/cli +## 0.4.0 + +### Minor Changes + +- [#41](https://github.com/aridyckovsky/effect-migrate/pull/41) [`f22c2dd`](https://github.com/aridyckovsky/effect-migrate/commit/f22c2dd9e1872c4147cced57b22545bc8a48bc95) Thanks [@aridyckovsky](https://github.com/aridyckovsky)! - Add normalized schema for 40-70% audit.json size reduction and move business logic to core + + **Breaking Changes:** + 1. **Schema version 0.1.0 → 0.2.0** (audit.json - no backwards compatibility) + - Replace `byFile`/`byRule` with deduplicated `rules[]`, `files[]`, `results[]` arrays + - Add index-based groupings in `groups` field for O(1) lookup + - Implement deterministic ordering (sorted rules/files) for reproducible output + - Add stable content-based keys for cross-checkpoint delta computation + - Compact range representation using tuples instead of objects + - Add separate `info` counter to FindingsSummary (previously counted as warnings) + 2. **CLI loaders removed** - business logic moved to @effect-migrate/core + - ❌ Removed `@effect-migrate/cli/loaders/config` - use `@effect-migrate/core` exports instead + - ❌ Removed `@effect-migrate/cli/loaders/presets` - use `PresetLoader` service instead + + **New @effect-migrate/core exports:** + + Config utilities: + - `mergeConfig(defaults, userConfig)` - Merge preset defaults with user config + - `deepMerge(target, source)` - Deep merge plain objects (arrays replaced, not concatenated) + - `isPlainObject(value)` - Type guard for plain objects + + Preset loading: + - `PresetLoader` - Context.Tag for preset loading service + - `PresetLoaderService` - Service interface + - `PresetLoaderNpmLive` - Default Layer for npm-based preset resolution + - `PresetLoadError` - Tagged error for preset loading failures + - `Preset` - Preset type (rules + optional defaults) + - `LoadPresetsResult` - Result of loading multiple presets + + Rule construction: + - `rulesFromConfig(config)` - Build rules from config (pattern + boundary) + + Schema enhancements: + - Config now supports `presets?: string[]` field for preset names + + Normalizer utilities: + - `normalizeResults(results, config, threads?)` - Convert to normalized schema + - `expandResult(normalized)` - Convert back to flat format + - `deriveResultKey(result)` - Generate stable content-based key + + **@effect-migrate/cli changes:** + + New workspace-aware preset resolution: + - `PresetLoaderWorkspaceLive` - Layer that tries workspace path first, falls back to npm + - Supports monorepo development with automatic workspace preset detection + - Windows-compatible file URL handling with `pathToFileURL()` + + Refactored loaders: + - `loadRulesAndConfig()` now orchestrates core services instead of implementing logic + - Uses `Effect.catchTag("PresetLoadError")` for precise error handling + - Reduced CLI code by ~1291 lines (60% reduction in loaders) + + **Build improvements:** + - Implement TypeScript Project References (src/test separation) for proper type checking + - Fix NodeNext module resolution (.js extension requirements) + - Consolidate test organization (all tests in `test/` directories) + - Fix barrel import violations (use direct imports from @effect/platform) + - Remove duplicate utils folder (merged util/ into utils/) + + **Migration guide:** + + If you were importing from CLI loaders: + + ```typescript + // Before + import { loadConfig } from "@effect-migrate/cli/loaders/config" + import { loadPresets } from "@effect-migrate/cli/loaders/presets" + + // After + import { loadConfig, PresetLoader } from "@effect-migrate/core" + + const config = yield * loadConfig(configPath) + const loader = yield * PresetLoader + const { rules, defaults } = yield * loader.loadPresets(config.presets ?? []) + ``` + + **Test coverage:** + - 50 new tests for core utilities (config merge, preset loading, rule builders) + - 6 new tests for CLI workspace preset resolution + - 40+ tests for normalized schema + - Total: 308 tests passing + +### Patch Changes + +- [#41](https://github.com/aridyckovsky/effect-migrate/pull/41) [`cbd8eb9`](https://github.com/aridyckovsky/effect-migrate/commit/cbd8eb9f44505ca2bfeff235cdd6cf5c90a9bc74) Thanks [@aridyckovsky](https://github.com/aridyckovsky)! - Update all READMEs to reflect current architecture and published usage + + **Documentation improvements:** + - Root README: Accurate CLI commands, output schemas (index.json, audit.json, metrics.json, threads.json), real rule examples, proper roadmap + - CLI README: Complete options documentation (--strict, --log-level, --amp-out), troubleshooting guide, local development instructions + - Core README: Comprehensive exported API documentation, service architecture, Layer patterns, real rule examples from preset-basic + + **Key updates:** + - Reflect dogfooding status and unstable API warnings across all packages + - Document complementary relationship with @effect/language-service + - Add proper roadmap with planned features (SQLite, Polars, OpenTelemetry, MCP server, workflow orchestration) + - User-focused: Published npm usage as primary, local development as secondary + - Real examples from actual codebase (patterns.ts, boundaries.ts) + + Resolves #24 + +- Updated dependencies [[`f22c2dd`](https://github.com/aridyckovsky/effect-migrate/commit/f22c2dd9e1872c4147cced57b22545bc8a48bc95), [`cbd8eb9`](https://github.com/aridyckovsky/effect-migrate/commit/cbd8eb9f44505ca2bfeff235cdd6cf5c90a9bc74)]: + - @effect-migrate/core@0.4.0 + ## 0.3.0 ### Minor Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index f208ecc..08b63d8 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@effect-migrate/cli", - "version": "0.3.0", + "version": "0.4.0", "description": "CLI tool for Effect migration", "license": "MIT", "repository": { diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index 613392d..a5a8ada 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,109 @@ # @effect-migrate/core +## 0.4.0 + +### Minor Changes + +- [#41](https://github.com/aridyckovsky/effect-migrate/pull/41) [`f22c2dd`](https://github.com/aridyckovsky/effect-migrate/commit/f22c2dd9e1872c4147cced57b22545bc8a48bc95) Thanks [@aridyckovsky](https://github.com/aridyckovsky)! - Add normalized schema for 40-70% audit.json size reduction and move business logic to core + + **Breaking Changes:** + 1. **Schema version 0.1.0 → 0.2.0** (audit.json - no backwards compatibility) + - Replace `byFile`/`byRule` with deduplicated `rules[]`, `files[]`, `results[]` arrays + - Add index-based groupings in `groups` field for O(1) lookup + - Implement deterministic ordering (sorted rules/files) for reproducible output + - Add stable content-based keys for cross-checkpoint delta computation + - Compact range representation using tuples instead of objects + - Add separate `info` counter to FindingsSummary (previously counted as warnings) + 2. **CLI loaders removed** - business logic moved to @effect-migrate/core + - ❌ Removed `@effect-migrate/cli/loaders/config` - use `@effect-migrate/core` exports instead + - ❌ Removed `@effect-migrate/cli/loaders/presets` - use `PresetLoader` service instead + + **New @effect-migrate/core exports:** + + Config utilities: + - `mergeConfig(defaults, userConfig)` - Merge preset defaults with user config + - `deepMerge(target, source)` - Deep merge plain objects (arrays replaced, not concatenated) + - `isPlainObject(value)` - Type guard for plain objects + + Preset loading: + - `PresetLoader` - Context.Tag for preset loading service + - `PresetLoaderService` - Service interface + - `PresetLoaderNpmLive` - Default Layer for npm-based preset resolution + - `PresetLoadError` - Tagged error for preset loading failures + - `Preset` - Preset type (rules + optional defaults) + - `LoadPresetsResult` - Result of loading multiple presets + + Rule construction: + - `rulesFromConfig(config)` - Build rules from config (pattern + boundary) + + Schema enhancements: + - Config now supports `presets?: string[]` field for preset names + + Normalizer utilities: + - `normalizeResults(results, config, threads?)` - Convert to normalized schema + - `expandResult(normalized)` - Convert back to flat format + - `deriveResultKey(result)` - Generate stable content-based key + + **@effect-migrate/cli changes:** + + New workspace-aware preset resolution: + - `PresetLoaderWorkspaceLive` - Layer that tries workspace path first, falls back to npm + - Supports monorepo development with automatic workspace preset detection + - Windows-compatible file URL handling with `pathToFileURL()` + + Refactored loaders: + - `loadRulesAndConfig()` now orchestrates core services instead of implementing logic + - Uses `Effect.catchTag("PresetLoadError")` for precise error handling + - Reduced CLI code by ~1291 lines (60% reduction in loaders) + + **Build improvements:** + - Implement TypeScript Project References (src/test separation) for proper type checking + - Fix NodeNext module resolution (.js extension requirements) + - Consolidate test organization (all tests in `test/` directories) + - Fix barrel import violations (use direct imports from @effect/platform) + - Remove duplicate utils folder (merged util/ into utils/) + + **Migration guide:** + + If you were importing from CLI loaders: + + ```typescript + // Before + import { loadConfig } from "@effect-migrate/cli/loaders/config" + import { loadPresets } from "@effect-migrate/cli/loaders/presets" + + // After + import { loadConfig, PresetLoader } from "@effect-migrate/core" + + const config = yield * loadConfig(configPath) + const loader = yield * PresetLoader + const { rules, defaults } = yield * loader.loadPresets(config.presets ?? []) + ``` + + **Test coverage:** + - 50 new tests for core utilities (config merge, preset loading, rule builders) + - 6 new tests for CLI workspace preset resolution + - 40+ tests for normalized schema + - Total: 308 tests passing + +### Patch Changes + +- [#41](https://github.com/aridyckovsky/effect-migrate/pull/41) [`cbd8eb9`](https://github.com/aridyckovsky/effect-migrate/commit/cbd8eb9f44505ca2bfeff235cdd6cf5c90a9bc74) Thanks [@aridyckovsky](https://github.com/aridyckovsky)! - Update all READMEs to reflect current architecture and published usage + + **Documentation improvements:** + - Root README: Accurate CLI commands, output schemas (index.json, audit.json, metrics.json, threads.json), real rule examples, proper roadmap + - CLI README: Complete options documentation (--strict, --log-level, --amp-out), troubleshooting guide, local development instructions + - Core README: Comprehensive exported API documentation, service architecture, Layer patterns, real rule examples from preset-basic + + **Key updates:** + - Reflect dogfooding status and unstable API warnings across all packages + - Document complementary relationship with @effect/language-service + - Add proper roadmap with planned features (SQLite, Polars, OpenTelemetry, MCP server, workflow orchestration) + - User-focused: Published npm usage as primary, local development as secondary + - Real examples from actual codebase (patterns.ts, boundaries.ts) + + Resolves #24 + ## 0.3.0 ### Minor Changes diff --git a/packages/core/package.json b/packages/core/package.json index 7cdf597..c920478 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@effect-migrate/core", - "version": "0.3.0", + "version": "0.4.0", "description": "Core engine for Effect migration tooling", "license": "MIT", "repository": { diff --git a/packages/preset-basic/CHANGELOG.md b/packages/preset-basic/CHANGELOG.md index ebee9c9..f52ce08 100644 --- a/packages/preset-basic/CHANGELOG.md +++ b/packages/preset-basic/CHANGELOG.md @@ -1,5 +1,12 @@ # @effect-migrate/preset-basic +## 0.3.1 + +### Patch Changes + +- Updated dependencies [[`f22c2dd`](https://github.com/aridyckovsky/effect-migrate/commit/f22c2dd9e1872c4147cced57b22545bc8a48bc95), [`cbd8eb9`](https://github.com/aridyckovsky/effect-migrate/commit/cbd8eb9f44505ca2bfeff235cdd6cf5c90a9bc74)]: + - @effect-migrate/core@0.4.0 + ## 0.3.0 ### Minor Changes diff --git a/packages/preset-basic/package.json b/packages/preset-basic/package.json index d62e72a..f66f277 100644 --- a/packages/preset-basic/package.json +++ b/packages/preset-basic/package.json @@ -1,6 +1,6 @@ { "name": "@effect-migrate/preset-basic", - "version": "0.3.0", + "version": "0.3.1", "description": "Basic preset for Effect migration patterns", "license": "MIT", "repository": {