docs(runbook): sched — fresh repo schedjs/schedjs (1 root commit, no history), MIGRATION.md excluded, URLs → /schedjs/
This commit is contained in:
@@ -22,12 +22,12 @@ private-dev-public-publish: разработка в приватном Gitea, н
|
|||||||
| Роль | Папка | Origin | Мета |
|
| Роль | Папка | Origin | Мета |
|
||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
| dev | `~/projects/sched` | `git.kzntsv.site/victor/sched` (Gitea) | `.wiki/.tasks/.agents` внутри |
|
| dev | `~/projects/sched` | `git.kzntsv.site/victor/sched` (Gitea) | `.wiki/.tasks/.agents` внутри |
|
||||||
| pub | `~/projects/sched-upstream` | `github.com/schedjs/sched` (main) | нет |
|
| pub | `~/projects/sched-upstream` | `github.com/schedjs/schedjs` (main) | нет |
|
||||||
|
|
||||||
## Артефакты
|
## Артефакты
|
||||||
|
|
||||||
- **Репо pub:** `schedjs/sched` (PUBLIC, MIT, 12 topics: cron/scheduler/job-queue/task-scheduler/background-jobs/self-hosted/nodejs/typescript/queue/devtools/mcp/docker; description+homepage `https://schedjs.github.io/sched`).
|
- **Репо pub:** `schedjs/schedjs` (PUBLIC, MIT, 12 topics: cron/scheduler/job-queue/task-scheduler/background-jobs/self-hosted/nodejs/typescript/queue/devtools/mcp/docker; description+homepage `https://schedjs.github.io/sched`).
|
||||||
- **Сайт доков:** `https://schedjs.github.io/sched/` (Pages, workflow `ci.yml` → docs job; llms.txt/llms-full.txt).
|
- **Сайт доков:** `https://schedjs.github.io/schedjs/` (Pages, workflow `ci.yml` → docs job; llms.txt/llms-full.txt).
|
||||||
- **CI:** `.github/workflows/ci.yml` — test (unit, без БД) + docs (Pages). Конфиг юнит-сьюта: `vitest.ci.config.ts`.
|
- **CI:** `.github/workflows/ci.yml` — test (unit, без БД) + docs (Pages). Конфиг юнит-сьюта: `vitest.ci.config.ts`.
|
||||||
- **Доки:** `docs/` (Docus 5.12.3 на Nuxt), dist = `docs/dist` (трекается, Pages-сборка).
|
- **Доки:** `docs/` (Docus 5.12.3 на Nuxt), dist = `docs/dist` (трекается, Pages-сборка).
|
||||||
- **Storage-тесты с БД:** локально (docker: mongo 27017, pg 5433 `postgres:test`, mysql 3308 `root:test`, mariadb 3307 `root:test`).
|
- **Storage-тесты с БД:** локально (docker: mongo 27017, pg 5433 `postgres:test`, mysql 3308 `root:test`, mariadb 3307 `root:test`).
|
||||||
@@ -35,12 +35,12 @@ private-dev-public-publish: разработка в приватном Gitea, н
|
|||||||
## Синк dev → pub (курируемая копия)
|
## Синк dev → pub (курируемая копия)
|
||||||
|
|
||||||
1. **Список файлов:** `git -C ~/projects/sched ls-files` минус исключения:
|
1. **Список файлов:** `git -C ~/projects/sched ls-files` минус исключения:
|
||||||
`^\.wiki/|^\.tasks/|^\.agents/|^AGENTS\.md$|^CLAUDE\.md$|^branding/pora-|^pngtree-|^327274997_|^cat-clock-`.
|
`^\.wiki/|^\.tasks/|^\.agents/|^AGENTS\.md$|^CLAUDE\.md$|^branding/pora-|^pngtree-|^327274997_|^cat-clock-|^MIGRATION\.md$`.
|
||||||
Untracked в dev (canva/istock/logo.ai/logo.png/logo.svg/черновики) НЕ копируются.
|
Untracked в dev (canva/istock/logo.ai/logo.png/logo.svg/черновики) НЕ копируются.
|
||||||
2. **Копировать** в `~/projects/sched-upstream` (mkdir -p + cp по списку).
|
2. **Копировать** в `~/projects/sched-upstream` (mkdir -p + cp по списку).
|
||||||
3. **Выбелить** (dev-приватное → публичное), файлы в pub-копии:
|
3. **Выбелить** (dev-приватное → публичное), файлы в pub-копии:
|
||||||
- `.yarnrc.yml` → `npmRegistryServer: "https://registry.npmjs.org"`, без токена;
|
- `.yarnrc.yml` → `npmRegistryServer: "https://registry.npmjs.org"`, без токена;
|
||||||
- `docs/nuxt.config.ts` + `docs/modules/sched-links.ts` → дефолты `github.com/schedjs/sched`, `registry.npmjs.org`, `ghcr.io/schedjs` (env-оверрайд сохранён);
|
- `docs/nuxt.config.ts` + `docs/modules/sched-links.ts` → дефолты `github.com/schedjs/schedjs`, `registry.npmjs.org`, `ghcr.io/schedjs` (env-оверрайд сохранён);
|
||||||
- `apps/daemon/Dockerfile` → секрет `id=npm_token` (не verdaccio_token), комменты;
|
- `apps/daemon/Dockerfile` → секрет `id=npm_token` (не verdaccio_token), комменты;
|
||||||
- `docker-compose.dev.yml` → убрать NPM_REGISTRY/NPM_TOKEN (публичный npm);
|
- `docker-compose.dev.yml` → убрать NPM_REGISTRY/NPM_TOKEN (публичный npm);
|
||||||
- `CHANGELOG.md` → «→ npm» вместо verdaccio, docker-образ без registry.kzntsv;
|
- `CHANGELOG.md` → «→ npm» вместо verdaccio, docker-образ без registry.kzntsv;
|
||||||
@@ -52,12 +52,12 @@ private-dev-public-publish: разработка в приватном Gitea, н
|
|||||||
## CI (workflow ci.yml)
|
## CI (workflow ci.yml)
|
||||||
|
|
||||||
- **test (unit):** checkout → setup-node 24 → corepack enable → `yarn install --immutable` → `yarn workspaces foreach --all -pt --exclude docs run build` → `yarn tsc --noEmit` → `yarn vitest run --config vitest.ci.config.ts` (исключает `packages/storage-*/test/**` — им нужны живые БД).
|
- **test (unit):** checkout → setup-node 24 → corepack enable → `yarn install --immutable` → `yarn workspaces foreach --all -pt --exclude docs run build` → `yarn tsc --noEmit` → `yarn vitest run --config vitest.ci.config.ts` (исключает `packages/storage-*/test/**` — им нужны живые БД).
|
||||||
- **docs:** на push в main: install → `yarn workspace docs build` → upload-pages-artifact (docs/dist) → deploy-pages. Pages включён (`gh api repos/schedjs/sched/pages -X POST -f build_type=workflow`).
|
- **docs:** на push в main: install → `yarn workspace docs build` → upload-pages-artifact (docs/dist) → deploy-pages. Pages включён (`gh api repos/schedjs/schedjs/pages -X POST -f build_type=workflow`).
|
||||||
- **Ручной запуск:** `workflow_dispatch`.
|
- **Ручной запуск:** `workflow_dispatch`.
|
||||||
|
|
||||||
## Verify (после синка/деплоя)
|
## Verify (после синка/деплоя)
|
||||||
|
|
||||||
- `https://schedjs.github.io/sched/` → meta-refresh на `/sched/docs/introduction` (200), CSS (`/sched/_nuxt/…`), favicon (`/sched/favicon.ico` 200), лого (full URL `https://schedjs.github.io/sched/logo.png` 200), llms.txt 200.
|
- `https://schedjs.github.io/schedjs/` → meta-refresh на `/schedjs/docs/introduction` (200), CSS (`/schedjs/_nuxt/…`), favicon (`/schedjs/favicon.ico` 200), лого (full URL `https://schedjs.github.io/schedjs/logo.png` 200), llms.txt 200.
|
||||||
- Футер: 1 иконка GitHub (не 2).
|
- Футер: 1 иконка GitHub (не 2).
|
||||||
- `gh run list` зелёный; `gh repo view` topics/description.
|
- `gh run list` зелёный; `gh repo view` topics/description.
|
||||||
|
|
||||||
@@ -69,8 +69,8 @@ private-dev-public-publish: разработка в приватном Gitea, н
|
|||||||
|
|
||||||
## Gotchas
|
## Gotchas
|
||||||
|
|
||||||
1. **`app.baseURL: '/sched/'`** обязателен (Pages-subpath), но Docus игнорирует его для двух ссылок: index meta-refresh (`url=/docs/introduction`) и favicon (`href="/favicon.ico"`) → пост-фикс в `scripts/docs-dist.mjs` (запускается после generate; срабатывает и в CI).
|
1. **`app.baseURL: '/schedjs/'`** обязателен (Pages-subpath), но Docus игнорирует его для двух ссылок: index meta-refresh (`url=/docs/introduction`) и favicon (`href="/favicon.ico"`) → пост-фикс в `scripts/docs-dist.mjs` (запускается после generate; срабатывает и в CI).
|
||||||
2. **NuxtImg двойная база лого:** header logo `'/logo.png'` → `/_ipx/_/sched/logo.png` (404, _ipx не генерится статически). Фикс: полный URL в `header.logo.light/dark` (`https://schedjs.github.io/sched/logo.png`) — ipx пропускает внешние.
|
2. **NuxtImg двойная база лого:** header logo `'/logo.png'` → `/_ipx/_/schedjs/logo.png` (404, _ipx не генерится статически). Фикс: полный URL в `header.logo.light/dark` (`https://schedjs.github.io/schedjs/logo.png`) — ipx пропускает внешние.
|
||||||
3. **Футер: 2 GitHub-иконки** — Docus сам подставляет github из git-remote + explicit `socials.github`. Убрать explicit (pub remote = github.com → 1 иконка). В dev-сборке (Gitea remote) футер покажет Gitea-ссылку — при синке dist скрабить.
|
3. **Футер: 2 GitHub-иконки** — Docus сам подставляет github из git-remote + explicit `socials.github`. Убрать explicit (pub remote = github.com → 1 иконка). В dev-сборке (Gitea remote) футер покажет Gitea-ссылку — при синке dist скрабить.
|
||||||
4. **`docs/dist/logo.svg` регенерируется** из `docs/public/logo.svg` при каждой сборке (2026-08-27: вынесен в корень dev, untracked) — не коммитить в pub.
|
4. **`docs/dist/logo.svg` регенерируется** из `docs/public/logo.svg` при каждой сборке (2026-08-27: вынесен в корень dev, untracked) — не коммитить в pub.
|
||||||
5. **CI: dist нет в git** (gitignored) → `build` до `tsc` (cross-package types через dist).
|
5. **CI: dist нет в git** (gitignored) → `build` до `tsc` (cross-package types через dist).
|
||||||
@@ -81,6 +81,8 @@ private-dev-public-publish: разработка в приватном Gitea, н
|
|||||||
|
|
||||||
## Осталось (на 2026-08-27)
|
## Осталось (на 2026-08-27)
|
||||||
|
|
||||||
|
- **Чистый старт репо 2026-08-27:** `schedjs/sched` удалён → создан `schedjs/schedjs` с ОДНИМ root-коммитом (нет истории доко-сборки). MIGRATION.md исключён из паблик-сета (история миграций — dev-only). Все URL/бейджи/baseURL переведены на `schedjs.github.io/schedjs/` + `github.com/schedjs/schedjs`. Синк: `git checkout --orphan` + копия + выбеливание + один коммит + push.
|
||||||
|
|
||||||
- ~~npm-паблиш~~ **СДЕЛАНО 2026-08-27: скоуп `@schedjs/*`, НЕ `@sched`** (имя `sched` занято на npmjs юзером-профилем → оргу `@sched` создать нельзя; `@schedjs` свободен и совпадает с GitHub-org). Опубликованы все 9 пакетов: `@schedjs/{core,admin-api,cli,mcp,storage-mongo,storage-mysql,storage-postgres,ui,daemon}`. В dev-манифестах/доках/README тоже переименовано `@sched/*` → `@schedjs/*` (коммит 137f78b). npm-токен — `npm/admin-npm-token` (pass), owner org schedjs, bypass 2FA; старый apilki-токен удалён из pass.
|
- ~~npm-паблиш~~ **СДЕЛАНО 2026-08-27: скоуп `@schedjs/*`, НЕ `@sched`** (имя `sched` занято на npmjs юзером-профилем → оргу `@sched` создать нельзя; `@schedjs` свободен и совпадает с GitHub-org). Опубликованы все 9 пакетов: `@schedjs/{core,admin-api,cli,mcp,storage-mongo,storage-mysql,storage-postgres,ui,daemon}`. В dev-манифестах/доках/README тоже переименовано `@sched/*` → `@schedjs/*` (коммит 137f78b). npm-токен — `npm/admin-npm-token` (pass), owner org schedjs, bypass 2FA; старый apilki-токен удалён из pass.
|
||||||
- docker-образ daemon: НЕ паблишен (publish-check ругается на `registry.kzntsv.site/sched-daemon`); цель — `ghcr.io/schedjs/sched-daemon` (как в выбеленных publish-check/Dockerfile).
|
- docker-образ daemon: НЕ паблишен (publish-check ругается на `registry.kzntsv.site/sched-daemon`); цель — `ghcr.io/schedjs/sched-daemon` (как в выбеленных publish-check/Dockerfile).
|
||||||
- task:720 `pkg-repo-metadata` — **сделано** (repository/homepage/bugs/author добавлены во все 9 манифестов в волне переименования);
|
- task:720 `pkg-repo-metadata` — **сделано** (repository/homepage/bugs/author добавлены во все 9 манифестов в волне переименования);
|
||||||
|
|||||||
Reference in New Issue
Block a user