diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 2c22dc367c..9a5d44aacf 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -6,12 +6,12 @@ Eggjs is a progressive Node.js framework for building enterprise-class server-side applications. Built on top of Koa.js, it provides a plugin system, conventions over configuration, and enterprise-grade features like clustering, logging, and security. -This is a **pnpm monorepo** with multiple packages using pnpm workspaces and catalog mode for centralized dependency management. +This is a **utoo monorepo** with multiple packages using utoo workspaces and catalog mode for centralized dependency management. ## Prerequisites and Environment Setup -- **Node.js >= 20.19.0 required** - This is a hard requirement -- Enable pnpm first: `corepack enable pnpm` (installs pnpm v10.16.0) +- **Node.js >= 22.18.0 required** - This is a hard requirement +- Enable utoo first: `corepack enable utoo` (installs utoo v1.0.28) - **NEVER CANCEL** any build or test commands - they can take several minutes to complete ## Bootstrap and Build Process @@ -19,17 +19,17 @@ This is a **pnpm monorepo** with multiple packages using pnpm workspaces and cat **Always run these commands in sequence after fresh clone:** ```bash -# 1. Enable pnpm (required first) -corepack enable pnpm +# 1. Enable utoo (required first) +corepack enable utoo # 2. Install all dependencies - takes ~63 seconds. NEVER CANCEL. Set timeout to 120+ seconds. -pnpm install +ut install # 3. Build all packages - takes ~14 seconds. NEVER CANCEL. Set timeout to 60+ seconds. -pnpm run build +ut run build # 4. Run linting (optional but recommended) - takes ~2 seconds -pnpm run lint +ut run lint ``` ## Monorepo Structure @@ -48,51 +48,51 @@ pnpm run lint ### Supporting Directories - **`examples/`** - Two example apps: `helloworld-commonjs` and `helloworld-typescript` (currently have runtime issues) -- **`site/`** - Documentation website built with Dumi +- **`site/`** - Documentation website built with VitePress ## Essential Commands and Timing ### Build Commands -- `pnpm run build` - **Build all packages (~14 seconds). NEVER CANCEL. Set timeout to 60+ seconds.** -- `pnpm run clean` - Clean all dist directories +- `ut run build` - **Build all packages (~14 seconds). NEVER CANCEL. Set timeout to 60+ seconds.** +- `ut run clean-dist` - Clean all dist directories ### Testing Commands -- `pnpm run test` - **Run all tests (~2 minutes). NEVER CANCEL. Set timeout to 180+ seconds.** -- `pnpm run test:cov` - **Run tests with coverage (~2 minutes). NEVER CANCEL. Set timeout to 180+ seconds.** -- `pnpm run ci` - **Run test coverage + build (~2.1 minutes). NEVER CANCEL. Set timeout to 180+ seconds.** +- `ut run test` - **Run all tests (~2 minutes). NEVER CANCEL. Set timeout to 180+ seconds.** +- `ut run test:cov` - **Run tests with coverage (~2 minutes). NEVER CANCEL. Set timeout to 180+ seconds.** +- `ut run ci` - **Run tests with coverage (~2 minutes). NEVER CANCEL. Set timeout to 180+ seconds.** ### Linting Commands -- `pnpm run lint` - Run oxlint across all packages (~2 seconds) +- `ut run lint` - Run oxlint across all packages (~2 seconds) ### Documentation Commands -- `pnpm run site:dev` - Start documentation dev server at http://localhost:8000 -- `cd site && pnpm run build:skip` - **Build documentation site (~24 seconds). NEVER CANCEL. Set timeout to 60+ seconds.** +- `ut run site:dev` - Start documentation dev server (defaults to VitePress port 5173) +- `ut run site:build` - **Build documentation site (~24 seconds). NEVER CANCEL. Set timeout to 60+ seconds.** ### Example Applications (Currently Not Working) -- `pnpm run example:commonjs` - Start CommonJS example (has runtime issues) -- `pnpm run example:typescript` - Start TypeScript example (has runtime issues) +- `ut run example:dev:commonjs` - Start CommonJS example (has runtime issues) +- `ut run example:dev:typescript` - Start TypeScript example (has runtime issues) ## Package-Specific Commands -Run commands for specific packages using `pnpm --filter=`: +Run commands for specific packages using `ut --filter=`: ```bash # Examples -pnpm --filter=egg run test -pnpm --filter=@eggjs/core run build -pnpm --filter=site run dev +ut --filter=egg run test +ut --filter=@eggjs/core run build +ut --filter=site run dev ``` ## Development Workflow ### 1. Making Changes -- Always build packages first: `pnpm run build` +- Always build packages first: `ut run build` - Work primarily in `packages/egg/src/` for core framework features - Use TypeScript throughout - all packages are TypeScript-based - Follow the existing directory conventions in `packages/egg/src/`: @@ -108,16 +108,16 @@ pnpm --filter=site run dev ```bash # 1. Build all packages (required) -pnpm run build +ut run build # 2. Run linting -pnpm run lint +ut run lint # 3. Run tests (some failures are expected in fresh environment) -pnpm run test +ut run test # 4. Test documentation site -pnpm run site:dev +ut run site:dev ``` ### 3. Testing Strategy @@ -162,7 +162,7 @@ pnpm run site:dev - **All sub-project tsconfig.json files MUST extend from root:** `"extends": "../../tsconfig.json"` - Root tsconfig.json includes all packages in `references` array -## pnpm Workspace & Catalog Dependencies +## utoo Workspace & Catalog Dependencies - Dependencies defined in `pnpm-workspace.yaml` catalog section - Reference catalog entries: `"package-name": "catalog:"` @@ -179,7 +179,7 @@ pnpm run site:dev ### Build Issues -- Always run `pnpm run build` after making changes +- Always run `ut run build` after making changes - TypeScript compilation errors will show clearly - Build warnings are generally acceptable @@ -217,10 +217,10 @@ pnpm run site:dev After making changes, always verify: -1. **Build Success**: `pnpm run build` completes without errors -2. **Linting Passes**: `pnpm run lint` shows no new errors -3. **Documentation Loads**: `pnpm run site:dev` starts successfully and site loads at http://localhost:8000 -4. **Tests Run**: `pnpm run test` executes (some failures expected, focus on your changes) +1. **Build Success**: `ut run build` completes without errors +2. **Linting Passes**: `ut run lint` shows no new errors +3. **Documentation Loads**: `ut run site:dev` starts successfully and the printed VitePress URL responds +4. **Tests Run**: `ut run test` executes (some failures expected, focus on your changes) **Remember**: This is a complex enterprise framework. Always build first, validate incrementally, and focus on the core packages (`egg`, `core`, `utils`) for most development work. diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 863000fbc6..0fb13e46f0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,7 +37,8 @@ jobs: node-version: '24' - name: Install dependencies - run: ut install --from pnpm + # Retry to absorb transient `exit 141` (SIGPIPE) from `ut install`. + run: ut install --from pnpm || (sleep 5 && ut install --from pnpm) || (sleep 10 && ut install --from pnpm) - name: Run lint run: ut run lint @@ -160,7 +161,7 @@ jobs: node-version: ${{ matrix.node }} - name: Install dependencies - run: ut install --from pnpm + run: ut install --from pnpm || (sleep 5 && ut install --from pnpm) || (sleep 10 && ut install --from pnpm) - name: Run tests run: ut run ci @@ -204,7 +205,7 @@ jobs: node-version: ${{ matrix.node }} - name: Install dependencies - run: ut install --from pnpm + run: ut install --from pnpm || (sleep 5 && ut install --from pnpm) || (sleep 10 && ut install --from pnpm) - name: Run tests run: | @@ -245,7 +246,7 @@ jobs: node-version: ${{ matrix.node }} - name: Install dependencies - run: ut install --from pnpm + run: ut install --from pnpm || (sleep 5 && ut install --from pnpm) || (sleep 10 && ut install --from pnpm) - name: Run tests run: | diff --git a/.github/workflows/e2e-test.yml b/.github/workflows/e2e-test.yml index 3ab3c54181..d695ab53a6 100644 --- a/.github/workflows/e2e-test.yml +++ b/.github/workflows/e2e-test.yml @@ -141,8 +141,8 @@ jobs: with: ecosystem-ci-project: ${{ matrix.project.name }} - - name: Install pnpm - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4 + - name: Install utoo + uses: utooland/setup-utoo@3a51006d0b66afcc32d1b9177a4b200b74f4a8cb # main - name: Set up Node.js uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6 @@ -150,18 +150,37 @@ jobs: node-version: ${{ matrix.project.node-version }} - name: Install dependencies - run: pnpm install --no-frozen-lockfile + run: ut install --from pnpm || (sleep 5 && ut install --from pnpm) || (sleep 10 && ut install --from pnpm) - name: Build all packages - env: - # publint pack defaults to npm (main CI env has no pnpm); in E2E we - # already have pnpm installed and npm pack against pnpm's symlinked - # node_modules is ~10x slower, so prefer pnpm pack here - PUBLINT_PACK: pnpm - run: pnpm build + run: ut run build + + - name: Install pnpm (for `pnpm -r pack`) + # utoo's `ut pm-pack` does not resolve `workspace:` / `catalog:` + # protocols inside the packed manifests, so downstream `npm install` + # in the ecosystem-ci projects fails with EUNSUPPORTEDPROTOCOL. + # Keep pnpm available just for the pack step. The explicit `version` + # is required because `packageManager` in package.json now points at + # utoo, so the action can't infer the pnpm version itself. + # Setup must come AFTER `ut install`: action-setup exports PNPM_HOME, + # which makes utoo's install path read pnpm config and crash with + # exit 141 (SIGPIPE). + uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4 + with: + version: 10 - name: Pack packages into tgz + # `pnpm -r pack` resolves workspace:/catalog: deps in the emitted + # manifests, which `ut pm-pack` does not yet do. pnpm refuses to + # run when `packageManager` points at another tool, so disable + # that strict check for just this step. pnpm needs its own + # node_modules layout to resolve `workspace:` versions, so run + # `pnpm install --no-frozen-lockfile` first (cheap on top of the + # ut install since the deps are already in the global store). + env: + NPM_CONFIG_PACKAGE_MANAGER_STRICT: 'false' run: | + pnpm install --no-frozen-lockfile --ignore-scripts pnpm -r pack - name: Override dependencies from tgz in ${{ matrix.project.name }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2dac019c96..4956f0d8e8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -62,8 +62,8 @@ jobs: fetch-depth: 0 token: ${{ secrets.GIT_TOKEN }} - - name: Setup pnpm - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4 + - name: Setup utoo + uses: utooland/setup-utoo@3a51006d0b66afcc32d1b9177a4b200b74f4a8cb # main - name: Setup Node.js uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6 @@ -72,7 +72,7 @@ jobs: registry-url: 'https://registry.npmjs.org' - name: Install dependencies - run: pnpm install --no-frozen-lockfile + run: ut install --from pnpm - name: Configure Git run: | @@ -149,7 +149,7 @@ jobs: git push origin ${{ github.event.inputs.branch }} --tags - name: Run build - run: pnpm build + run: ut run build - name: Publish packages (dry run) if: ${{ github.event.inputs.dry_run == 'true' }} diff --git a/AGENTS.md b/AGENTS.md index 30ce7bc48c..36c6548c9c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -6,7 +6,7 @@ If another agent-specific file exists, it should import or defer to this file fo ## Project Map -Egg is maintained as a pnpm monorepo. +Egg is maintained as a utoo monorepo. - `packages/` contains core framework packages and shared internals. - `plugins/` contains optional Egg integrations. @@ -18,12 +18,13 @@ Egg is maintained as a pnpm monorepo. ## Core Commands -- `pnpm install` hydrates the workspace. -- `pnpm run build` builds all packages. -- `pnpm run test` runs the main test suite. -- `pnpm run lint` runs linting. -- `pnpm run typecheck` runs TypeScript checking. -- use filtered commands for focused work, for example `pnpm --filter=egg run test` or `pnpm --filter=site run dev`. +- `corepack enable utoo` enables the pinned utoo version on a clean machine. +- `ut install` hydrates the workspace. +- `ut run build` builds all packages. +- `ut run test` runs the main test suite. +- `ut run lint` runs linting. +- `ut run typecheck` runs TypeScript checking. +- use filtered commands for focused work, for example `ut --filter=egg run test` or `ut --filter=site run dev`. ### Local CI @@ -65,7 +66,7 @@ Then re-run tests. - review `SECURITY.md` before handling vulnerability-related work - do not commit secrets, credentials, or local-only URLs -- keep local Node.js and pnpm versions aligned with the repository configuration +- keep local Node.js and utoo versions aligned with the repository configuration ## Shared Knowledge Workflow diff --git a/README.md b/README.md index ed27699833..c928ebcaca 100644 --- a/README.md +++ b/README.md @@ -27,10 +27,11 @@ English | [简体中文](./README.zh-CN.md) Follow the commands listed below. ```bash +$ corepack enable utoo $ mkdir showcase && cd showcase -$ pnpm create egg@beta -$ pnpm install -$ pnpm run dev +$ ut create egg@beta +$ ut install +$ ut run dev $ open http://localhost:7001 ``` @@ -38,31 +39,31 @@ $ open http://localhost:7001 ## Monorepo Structure -This project is structured as a pnpm monorepo with the following packages: +This project is structured as a utoo monorepo with the following packages: - `packages/egg` - Main Eggjs framework - `examples/helloworld-commonjs` - CommonJS example application - `examples/helloworld-typescript` - TypeScript example application - `site` - Documentation website -The monorepo uses **pnpm catalog mode** for centralized dependency management, ensuring consistent versions across all packages. +The monorepo uses **utoo catalog mode** for centralized dependency management, ensuring consistent versions across all packages. ### Development Commands ```bash # Install dependencies for all packages -pnpm install +ut install # Build all packages -pnpm run build +ut run build # Test all packages -pnpm run test +ut run test # Run specific package commands -pnpm --filter=egg run test -pnpm --filter=@examples/helloworld-typescript run dev -pnpm --filter=site run dev +ut --filter=egg run test +ut --filter=@examples/helloworld-typescript run dev +ut --filter=site run dev ``` ### Local External Services @@ -70,7 +71,7 @@ pnpm --filter=site run dev Some DAL, ORM, Redis, and ecosystem benchmark paths need local MySQL and Redis services. Start the repository-aligned Docker services before running those tests on a clean machine: ```bash -utoo run dev:services:start +ut run dev:services:start ``` This starts MySQL 8 and Redis 7, matching the main CI service versions, and creates the databases used by local DAL/ORM/e2e fixtures: `test`, `apple`, `banana`, `test_runtime_datasource`, `test_runtime_dao`, `test_dal_plugin`, `test_dal_standalone`, `cnpmcore`, and `cnpmcore_unittest`. @@ -78,9 +79,9 @@ This starts MySQL 8 and Redis 7, matching the main CI service versions, and crea Useful commands: ```bash -utoo run dev:services:status -utoo run dev:services:stop -utoo run dev:services:reset +ut run dev:services:status +ut run dev:services:stop +ut run dev:services:reset ``` The default host ports are `127.0.0.1:3306` for MySQL and `127.0.0.1:6379` for Redis. If either port is already used, the start command stops before changing containers. Keep using the existing service if it is compatible with CI, or stop it and run the command again. You can change Docker host ports with `EGG_DEV_SERVICES_MYSQL_PORT` and `EGG_DEV_SERVICES_REDIS_PORT`; however, the full DAL/ORM/Redis local test path still expects the default host ports. @@ -88,11 +89,11 @@ The default host ports are `127.0.0.1:3306` for MySQL and `127.0.0.1:6379` for R Image overrides are available for compatibility checks: ```bash -EGG_DEV_SERVICES_MYSQL_IMAGE=mysql:5.7 utoo run dev:services:start -EGG_DEV_SERVICES_REDIS_IMAGE=redis:7 utoo run dev:services:start +EGG_DEV_SERVICES_MYSQL_IMAGE=mysql:5.7 ut run dev:services:start +EGG_DEV_SERVICES_REDIS_IMAGE=redis:7 ut run dev:services:start ``` -Run `utoo run dev:services:reset` before switching MySQL image families, for example between MySQL 8 and MySQL 5.7, because MySQL data directories are not downgrade-compatible across major versions. +Run `ut run dev:services:reset` before switching MySQL image families, for example between MySQL 8 and MySQL 5.7, because MySQL data directories are not downgrade-compatible across major versions. Current hard-coded service assumptions: diff --git a/README.zh-CN.md b/README.zh-CN.md index 3025d7bea8..345aca0f72 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -26,10 +26,11 @@ ## 快速开始 ```bash +corepack enable utoo mkdir showcase && cd showcase -pnpm create egg@beta -pnpm install -pnpm run dev +ut create egg@beta +ut install +ut run dev open http://localhost:7001 ``` diff --git a/package.json b/package.json index bbbfba3389..c7ef0c6220 100644 --- a/package.json +++ b/package.json @@ -90,5 +90,5 @@ "optionalDependencies": { "@utoo/utoo-mingw64_nt-10.0-26100-x64": "npm:@utoo/utoo-win32-x64@1.0.28" }, - "packageManager": "pnpm@10.28.0" + "packageManager": "utoo@1.0.28" } diff --git a/packages/egg/README.md b/packages/egg/README.md index d13350e60d..fca881d760 100644 --- a/packages/egg/README.md +++ b/packages/egg/README.md @@ -21,10 +21,11 @@ Follow the commands listed below. ```bash +$ corepack enable utoo $ mkdir showcase && cd showcase -$ npm init egg --type=simple # Optionally pnpm create egg --type=simple -$ pnpm install -$ pnpm run dev +$ npm init egg --type=simple # Optionally ut create egg --type=simple +$ ut install +$ ut run dev $ open http://localhost:7001 ``` diff --git a/plugins/redis/README.md b/plugins/redis/README.md index 1f8ad4c5ae..dd1e0ff477 100644 --- a/plugins/redis/README.md +++ b/plugins/redis/README.md @@ -268,7 +268,7 @@ docker compose -f docker-compose.yml up -d Run the unit tests ```bash -pnpm test +ut test ``` Stop test redis service diff --git a/scripts/dev-services.js b/scripts/dev-services.js index 037064465f..851570bbc3 100644 --- a/scripts/dev-services.js +++ b/scripts/dev-services.js @@ -131,7 +131,7 @@ async function assertPortAvailable(service, port, containerPort, running) { throw new Error( [ `${service} is already running for this compose project on ${current}, but this run requested 127.0.0.1:${port}.`, - 'Re-run with the same EGG_DEV_SERVICES_* port override, or use `utoo run dev:services:reset` before changing ports.', + 'Re-run with the same EGG_DEV_SERVICES_* port override, or use `ut run dev:services:reset` before changing ports.', ].join('\n'), ); } @@ -195,7 +195,7 @@ async function start() { [ message, 'The compose stack is still running so Docker health status and logs can be inspected.', - 'After fixing the issue, run `utoo run dev:services:reset` to clean up before starting again.', + 'After fixing the issue, run `ut run dev:services:reset` to clean up before starting again.', ].join('\n'), { cause: err }, ); diff --git a/scripts/publish.js b/scripts/publish.js index 90814bd95f..be75d393c4 100644 --- a/scripts/publish.js +++ b/scripts/publish.js @@ -3,7 +3,7 @@ /** * Resilient per-package publish script. * - * Unlike `pnpm -r publish`, this script: + * Unlike `ut -r publish`, this script: * - Skips packages that are already published on npm (safe for retries) * - Publishes each package individually so one failure doesn't block others * - Retries failed packages once @@ -54,16 +54,18 @@ function isPublished(name, version) { } /** - * Publish a single package using pnpm --filter (preserves workspace context - * so that workspace: protocol references are properly resolved). + * Publish a single package by running `ut publish` from the package + * directory. utoo's publish only documents --tag/--dry-run/--otp, so we + * keep the npm-standard --access/--provenance flags (forwarded to npm) + * and drop pnpm-only flags (--filter, --no-git-checks). */ function publishOne(pkg) { - const publishArgs = ['--filter', pkg.name, 'publish', '--no-git-checks', '--access', 'public', '--tag', npmTag]; + const publishArgs = ['publish', '--access', 'public', '--tag', npmTag]; if (useProvenance) publishArgs.push('--provenance'); if (isDryRun) publishArgs.push('--dry-run'); - execFileSync('pnpm', publishArgs, { - cwd: baseDir, + execFileSync('ut', publishArgs, { + cwd: path.join(baseDir, pkg.directory, pkg.folder), stdio: 'inherit', env: { ...process.env, NPM_CONFIG_LOGLEVEL: 'verbose' }, timeout: 120000, diff --git a/scripts/utils.js b/scripts/utils.js index 822889c384..8cb4e8b2cb 100644 --- a/scripts/utils.js +++ b/scripts/utils.js @@ -3,7 +3,8 @@ import path from 'node:path'; import yaml from 'js-yaml'; -// Get all publishable packages from pnpm workspace +// Get all publishable packages by reading pnpm-workspace.yaml +// (utoo consumes the same workspace manifest). export function getPublishablePackages(baseDir) { const workspaceFile = path.join(baseDir, 'pnpm-workspace.yaml'); diff --git a/scripts/version.js b/scripts/version.js index b17008d0c9..082249a160 100644 --- a/scripts/version.js +++ b/scripts/version.js @@ -121,7 +121,7 @@ if (eggVersion) { if (isDryRun) { console.log('\n✅ Dry run complete! No changes were made.'); console.log('\nTo apply these changes, run:'); - console.log(` pnpm run version:${versionType}`); + console.log(` ut run version:${versionType}`); process.exit(0); } diff --git a/tegg/CLAUDE.md b/tegg/CLAUDE.md index 6ce219b27b..78a27ca2cd 100644 --- a/tegg/CLAUDE.md +++ b/tegg/CLAUDE.md @@ -26,7 +26,7 @@ standalone/ # 1 standalone package - standalone runtime without Egg.js **Dependency Management:** -- Uses pnpm workspaces with `catalog:` protocol for shared external dependencies +- Uses utoo workspaces with `catalog:` protocol for shared external dependencies - Uses `workspace:*` protocol for internal monorepo dependencies (both tegg and egg packages) - All shared dependency versions centralized in the root `pnpm-workspace.yaml` (not in tegg/) - `catalogMode: prefer` set in root `.npmrc` for automatic catalog usage @@ -60,8 +60,8 @@ standalone/ # 1 standalone package - standalone runtime without Egg.js ### Build & Clean ```bash -pnpm run build # Build all packages including tegg (runs build in all workspaces) -pnpm run clean # Clean all build artifacts including tegg (removes dist, tsbuildinfo) +ut run build # Build all packages including tegg (runs build in all workspaces) +ut run clean-dist # Clean all build artifacts including tegg (removes dist, tsbuildinfo) ``` ### Testing @@ -69,9 +69,9 @@ pnpm run clean # Clean all build artifacts including tegg (removes All tegg packages use **Vitest** for testing and are integrated with the main Egg.js monorepo test suite. ```bash -pnpm test # Run vitest tests for all packages (from monorepo root) -pnpm run test:cov # Run tests with coverage -pnpm run ci # Full CI: vitest with coverage and bail on first failure +ut run test # Run vitest tests for all packages (from monorepo root) +ut run test:cov # Run tests with coverage +ut run ci # Full CI: vitest with coverage and bail on first failure ``` **Note:** Tests are configured in the monorepo root `vitest.config.ts` which includes all tegg packages (`tegg/core/*`, `tegg/plugin/*`, `tegg/standalone/*`). @@ -79,9 +79,9 @@ pnpm run ci # Full CI: vitest with coverage and bail on first f ### Type Checking & Linting ```bash -pnpm run typecheck # Clean and type check all workspaces (including tegg) -pnpm run lint # Run oxlint with type-aware checking on all packages -pnpm run fmtcheck # Check code formatting with oxfmt +ut run typecheck # Clean and type check all workspaces (including tegg) +ut run lint # Run oxlint with type-aware checking on all packages +ut run fmtcheck # Check code formatting with oxfmt ``` **Note:** oxlint automatically runs with `--type-aware` flag for enhanced TypeScript checking. @@ -91,15 +91,15 @@ pnpm run fmtcheck # Check code formatting with oxfmt **Note:** Run these commands from the monorepo root (`../egg`). ```bash -pnpm run version:patch # Bump patch version (0.0.X) -pnpm run version:minor # Bump minor version (0.X.0) -pnpm run version:major # Bump major version (X.0.0) -pnpm run version:prepatch # Bump to next prerelease patch version -pnpm run version:preminor # Bump to next prerelease minor version -pnpm run version:premajor # Bump to next prerelease major version -pnpm run version:alpha # Bump prerelease alpha version -pnpm run version:beta # Bump prerelease beta version -pnpm run version:rc # Bump prerelease rc version +ut run version:patch # Bump patch version (0.0.X) +ut run version:minor # Bump minor version (0.X.0) +ut run version:major # Bump major version (X.0.0) +ut run version:prepatch # Bump to next prerelease patch version +ut run version:preminor # Bump to next prerelease minor version +ut run version:premajor # Bump to next prerelease major version +ut run version:alpha # Bump prerelease alpha version +ut run version:beta # Bump prerelease beta version +ut run version:rc # Bump prerelease rc version ``` ### Working with Individual Packages @@ -108,18 +108,18 @@ pnpm run version:rc # Bump prerelease rc version ```bash # Install dependencies -pnpm install # Install all dependencies using catalog versions +ut install # Install all dependencies using catalog versions # Type check specific packages -pnpm -r run typecheck # Type check all packages recursively -pnpm --filter @eggjs/tegg-runtime run typecheck +ut -r run typecheck # Type check all packages recursively +ut --filter @eggjs/tegg-runtime run typecheck # Build specific packages -pnpm --filter @eggjs/metadata run build -pnpm --filter @eggjs/tegg-runtime run build +ut --filter @eggjs/metadata run build +ut --filter @eggjs/tegg-runtime run build # Clean specific package -pnpm --filter @eggjs/tegg-runtime run clean +ut --filter @eggjs/tegg-runtime run clean ``` **Note:** Individual tegg packages don't have test scripts in their package.json. Tests are run via the monorepo root vitest configuration. diff --git a/tools/create-egg/README.md b/tools/create-egg/README.md index c3d688552b..717c0ae30d 100644 --- a/tools/create-egg/README.md +++ b/tools/create-egg/README.md @@ -27,10 +27,10 @@ With Yarn: yarn create egg ``` -With PNPM: +With utoo: ```bash -pnpm create egg +ut create egg ``` Then follow the prompts! @@ -44,8 +44,8 @@ npm create egg@latest my-egg-app -- --template tegg # yarn yarn create egg my-egg-app --template tegg -# pnpm -pnpm create egg my-egg-app --template tegg +# utoo +ut create egg my-egg-app --template tegg ``` Currently supported template presets include: diff --git a/wiki/concepts/repository-map.md b/wiki/concepts/repository-map.md index 7464dbbfaf..1c53650e02 100644 --- a/wiki/concepts/repository-map.md +++ b/wiki/concepts/repository-map.md @@ -15,7 +15,7 @@ status: active # Repository Map -This repo is a pnpm monorepo centered on the Egg.js framework and related packages. +This repo is a utoo monorepo centered on the Egg.js framework and related packages. ## Main Areas