587ff2cf47
Publish snapshot / snapshot (push) Failing after 1m58s
Publishing infrastructure - Three Gitea workflows: ci.yml (PRs, non-main pushes), publish-snapshot.yml (main -> Gitea under dist-tag @main) and release.yml (tags -> Gitea + npmjs) - Tag-driven releases as <package-dir>-v<version>; the manifest stays the source of truth and release.yml refuses to run if tag and manifest disagree - Every publish is idempotent: each step checks the registry first, so a run that fails on the second registry can simply be re-run - Hard coverage gate (85% branches) shared by CI, the pre-push hook and local runs, since the thresholds live in vitest.config.ts rather than a CI flag - README.PUBLISH.md documents the whole mechanism Toolchain - TypeScript 7 native compiler; drop tsgo and ts-node, use tsx for dev runs - Biome 1.9 -> 2.x, Vitest 1 -> 4, zod 3 -> 4, inquirer 8 -> 14, pnpm 11.17.0 - Replace inquirer-checkbox-plus-prompt, which is peer-capped at inquirer <9, with enquirer's AutoComplete; the CubeSelection contract is unchanged - Stand in for zod 4's removed z.AnyZodObject with a local AnyObjectSchema Repo hygiene - Stop tracking dist/; ignore coverage/, *.tsbuildinfo, .npmrc* and release.json - Drop package-lock.json in favour of pnpm-lock.yaml Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1.9 KiB
1.9 KiB
Nopy Refactoring Plan
This document tracks the major refactoring of the nopy package.
Refactoring Items
1. Remove parallel execution
- Status: ✅ Completed
- Goal: Remove all logic supporting parallel execution of cubes to simplify the execution flow and improve reliability.
- Context:
- Parallelism removed from
NopyConfig,NopyOptions, andexecuteDeployCalls. buildExecutionStagesdeleted.- CLI flags
--paralleland--concurrencyremoved.
- Parallelism removed from
- Proposed Solution: (Done)
2. Rework cube building process & Dependency Resolution
- Status: ✅ Completed
- Goal: Allow dependencies to be defined as a function of the collected variables.
- New Signature:
dependencies?: (variables: CubeVariables) => DependencySpec[] - Architectural Change: Implement a clean, step-based resolution mechanism using a
BuildContext. - Context:
- Introduced
BuildContextincubes/dependencies.tswhich handles recursive resolution, variable collection, and hook execution. - Resolution is now dynamic: variables are collected for a cube before its dependencies are resolved.
- Introduced
- Proposed Solution: (Done)
3. Remove env property from cube Manifest
- Status: ✅ Completed
- Goal: Remove the
envproperty from the cube manifest. - Context:
envremoved fromManifestandEnvtypes.- Responsibility for defaults shifted entirely to Zod schema defaults and
getDefaults().
- Proposed Solution: (Done)
4. Redesign Manifest and Cube types
- Status: ✅ Completed
- Goal: Transition from
Env -> Manifest -> Cubeinheritance to a cleanerManifest(specification) andCube(runtime) separation. - Context:
Manifestis now a clean interface with a factory namespace.Cubeis a class encapsulating aManifestand runtime info (dir,deployScript).
- Proposed Solution: (Done)