44e45dfb00
Релизный флоу переведён на линейную fast-forward модель — устраняет регулярные конфликты на 20 package.json при релизе. Корень проблемы: publish-alpha.sh/publish-prod.sh бампали версию НА КАЖДОЙ ветке (alpha-N на testnet, чистую на main) через `git merge -X theirs` + back-merge. Два независимых bump-коммита за цикл + merge'и плодили расхождение веток → конфликты (особенно при гонке push/pull). Новая модель: - Версию бампает lerna ОДИН раз на dev (scripts/cut-release.sh). - Тот же коммит едет вверх по FF: scripts/promote.sh testnet|main (server-side fast-forward push, рабочее дерево не трогается). - testnet/main не несут своих коммитов → ветки не диверджатся → конфликты структурно невозможны. release.yaml: - Триггер: push в testnet/main с изменением lerna.json (вместо тега v*). Окружение определяет ВЕТКА (main→prod, testnet→staging), не суффикс -alpha. - Версия читается из закоммиченного lerna.json (едет с коммитом по FF). - Гейты npm-publish/доки: branch == main (вместо !contains '-alpha'). - Образы/webhook по-прежнему версия-тегированы → playbooks/приёмник деплоя не затрагиваются. Удалены publish-alpha.sh/publish-prod.sh и мёртвые дубли тех же merge-X-theirs скриптов (root sync:main, components/contracts production/testnet/docs-publish). Документация — scripts/RELEASE.md + CLAUDE.md PR-flow. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
79 lines
3.2 KiB
JSON
79 lines
3.2 KiB
JSON
{
|
|
"name": "monocoop",
|
|
"packageManager": "pnpm@10.33.0",
|
|
"pnpm": {
|
|
"onlyBuiltDependencies": [
|
|
"@apollo/protobufjs",
|
|
"@eosrio/node-abieos",
|
|
"@nestjs/core",
|
|
"@parcel/watcher",
|
|
"@scarf/scarf",
|
|
"core-js",
|
|
"cpu-features",
|
|
"electron",
|
|
"esbuild",
|
|
"libxmljs2",
|
|
"msgpackr-extract",
|
|
"nx",
|
|
"protobufjs",
|
|
"puppeteer",
|
|
"simple-git-hooks",
|
|
"ssh2",
|
|
"unrs-resolver",
|
|
"vue-demi"
|
|
]
|
|
},
|
|
"dependencies": {
|
|
"@coopenomics/boot": "workspace:*",
|
|
"@coopenomics/cleos": "workspace:*",
|
|
"@coopenomics/contracts": "workspace:*",
|
|
"@coopenomics/controller": "workspace:*",
|
|
"@coopenomics/desktop": "workspace:*",
|
|
"@coopenomics/factory": "workspace:*",
|
|
"@coopenomics/notifications": "workspace:*",
|
|
"@coopenomics/parser": "workspace:*",
|
|
"@coopenomics/sdk": "workspace:*",
|
|
"@coopenomics/setup": "workspace:*",
|
|
"@coopenomics/inter": "workspace:*",
|
|
"@coopenomics/blago-cli": "workspace:*",
|
|
"commitgpt": "^2.0.0",
|
|
"cooptypes": "workspace:*",
|
|
"eslint": "^9.9.1",
|
|
"gh-pages": "^6.1.1",
|
|
"lerna": "^8.1.8",
|
|
"lint-staged": "^15.2.10",
|
|
"migrator": "workspace:*"
|
|
},
|
|
"scripts": {
|
|
"setup": "lerna run setup --scope @coopenomics/setup",
|
|
"boot": "lerna run boot --scope @coopenomics/boot",
|
|
"reboot": "cd components/boot/scripts && bash reboot.sh",
|
|
"reboot:clean": "cd components/boot/scripts && bash clean_reboot.sh",
|
|
"reboot:extra": "cd components/boot/scripts && bash extra_reboot.sh",
|
|
"deploy": "lerna run deploy --scope @coopenomics/boot --",
|
|
"clear": "lerna run clear --scope @coopenomics/boot",
|
|
"enter": "lerna run run --scope @coopenomics/cleos",
|
|
"build:lib": "lerna run build --scope @coopenomics/factory --scope @coopenomics/cooptypes",
|
|
"build:contracts:all": "lerna run build:all --scope @coopenomics/contracts",
|
|
"build:contract": "lerna run build:one --scope @coopenomics/contracts --",
|
|
"build:contracts:all:test": "lerna run build:all:test --scope @coopenomics/contracts",
|
|
"build:contract:test": "lerna run build:one:test --scope @coopenomics/contracts --",
|
|
"dev:desktop": "lerna run dev --parallel --scope @coopenomics/desktop",
|
|
"dev:backend": "lerna run dev --parallel --scope @coopenomics/parser --scope @coopenomics/controller",
|
|
"dev:lib": "lerna run dev --parallel --scope @coopenomics/factory --scope cooptypes",
|
|
"dev:all": "lerna run dev --parallel",
|
|
"gpt-commit": "git add . && commitgpt",
|
|
"cut": "bash scripts/cut-release.sh",
|
|
"testnet": "bash scripts/promote.sh testnet",
|
|
"production": "bash scripts/promote.sh main",
|
|
"docs-publish": "pnpm gh-pages --nojekyll -d docs/site --repo git@github.com:coopenomics/monocoop.git",
|
|
"test": "pnpm run test:unit && pnpm run test:component && pnpm run test:integration",
|
|
"test:unit": "pnpm --filter cooptypes run test && pnpm --filter @coopenomics/parser run test && pnpm --filter @coopenomics/notifications run test",
|
|
"test:component": "SOURCE=local NODE_ENV=test SKIP_BLOCK_FETCH=TRUE pnpm --filter @coopenomics/factory run test",
|
|
"test:integration": "bash scripts/run-integration-tests.sh"
|
|
},
|
|
"devDependencies": {
|
|
"typescript": "^5.9.3"
|
|
}
|
|
}
|