From a2fa1dee32e728348db53eaaaae1d74e54ff5c77 Mon Sep 17 00:00:00 2001 From: implementer Date: Thu, 27 Aug 2026 23:07:58 +0000 Subject: [PATCH] chore: bootstrap pnpm workspace and package manifests E00-S01-T01: create workspace/package manifests - root package.json pins packageManager pnpm@11.23.0 - pnpm-workspace.yaml separates apps/*, packages/*, extensions/* entries - skeleton manifests for apps/server, packages/core, extensions/example - committed frozen lockfile generated by pnpm 11.23.0 - minimal CI: pnpm install --frozen-lockfile + workspace verification --- .gitea/workflows/ci.yml | 23 +++++++++++++++++++++++ .gitignore | 17 +++++++++++++++++ apps/server/package.json | 6 ++++++ extensions/example/package.json | 6 ++++++ package.json | 7 +++++++ packages/core/package.json | 6 ++++++ pnpm-lock.yaml | 15 +++++++++++++++ pnpm-workspace.yaml | 4 ++++ 8 files changed, 84 insertions(+) create mode 100644 .gitea/workflows/ci.yml create mode 100644 .gitignore create mode 100644 apps/server/package.json create mode 100644 extensions/example/package.json create mode 100644 package.json create mode 100644 packages/core/package.json create mode 100644 pnpm-lock.yaml create mode 100644 pnpm-workspace.yaml diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml new file mode 100644 index 0000000..6d10a90 --- /dev/null +++ b/.gitea/workflows/ci.yml @@ -0,0 +1,23 @@ +name: CI + +on: + pull_request: + push: + branches: [main] + +jobs: + frozen-install: + name: Frozen lockfile install + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Install Node.js 24 + uses: actions/setup-node@v4 + with: + node-version: '24' + - name: Enable pnpm (corepack, pinned to 11.23.0 via packageManager) + run: corepack enable + - name: Install dependencies (frozen lockfile) + run: pnpm install --frozen-lockfile + - name: Verify workspace groups + run: pnpm -r list --depth -1 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1656103 --- /dev/null +++ b/.gitignore @@ -0,0 +1,17 @@ +# Dependencies +node_modules/ +.pnpm-store/ + +# Build output +dist/ +coverage/ + +# Local environment files (a committed .env.example lands in E00-S04) +.env +.env.* + +# Logs +*.log + +# OS / editor +.DS_Store diff --git a/apps/server/package.json b/apps/server/package.json new file mode 100644 index 0000000..1001a58 --- /dev/null +++ b/apps/server/package.json @@ -0,0 +1,6 @@ +{ + "name": "@personal-blog/server", + "version": "0.0.0", + "private": true, + "description": "EPPP public server application. Bootstrap placeholder — the Fastify 5 application shell lands in a later story." +} diff --git a/extensions/example/package.json b/extensions/example/package.json new file mode 100644 index 0000000..da0975c --- /dev/null +++ b/extensions/example/package.json @@ -0,0 +1,6 @@ +{ + "name": "@personal-blog/example-extension", + "version": "0.0.0", + "private": true, + "description": "Placeholder extension that exercises the extensions/ workspace group. Real extensions (e.g. theme-amber) replace it in later stories." +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..9f23a70 --- /dev/null +++ b/package.json @@ -0,0 +1,7 @@ +{ + "name": "personal-blog", + "version": "0.0.0", + "private": true, + "description": "EPPP — a modular personal blogging platform. Workspace bootstrap (E00-S01).", + "packageManager": "pnpm@11.23.0" +} diff --git a/packages/core/package.json b/packages/core/package.json new file mode 100644 index 0000000..7293fc5 --- /dev/null +++ b/packages/core/package.json @@ -0,0 +1,6 @@ +{ + "name": "@personal-blog/core", + "version": "0.0.0", + "private": true, + "description": "EPPP application core. Bootstrap placeholder — owns application lifecycle, site identity and content primitives in later stories." +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..708f202 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,15 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: {} + + apps/server: {} + + extensions/example: {} + + packages/core: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..9cf8977 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,4 @@ +packages: + - 'apps/*' + - 'packages/*' + - 'extensions/*' -- 2.54.0