chore: remove the plugin and customize packages superseded by cli-kintone - #3954
Conversation
d26b10c to
95dae76
Compare
| "path-browserify": "1.0.1", | ||
| "postcss": "8.5.26", | ||
| "postcss-cli": "11.0.1", | ||
| "process": "0.11.10", |
There was a problem hiding this comment.
この行が repo 内で唯一の process の宣言であり、packages/dts-gen が宣言なしでこれに依存している。plugin-packer を削除すると pnpm build が失敗する。
packages/dts-gen/webpack.config.js は ProvidePlugin({ process: "process/browser" }) を宣言するが、packages/dts-gen/package.json は process を dependencies にも devDependencies にも書いていない。pnpm の hoist store が解決を成立させていた。lockfile から process@0.11.10 が落ちると、@kintone/dts-gen の postbuild → build:integration が Module not found: Error: Can't resolve 'process/browser' で失敗する。
確認した内容:
- このブランチで
pnpm install --frozen-lockfileは成功し、pnpm buildはpackages/dts-genの解決エラー 6 件で失敗する origin/mainでは同じ 2 コマンドが成功する(exit 0)。ローカル環境の問題ではなく、この PR による regression であるpnpm -r --parallel --no-bail run postbuildで失敗するのは dts-gen のみ。pnpm lintとpnpm testは通る
.github/workflows/test.yml(Node 20/22/24 × ubuntu/windows/macos の 9 ジョブ)と .github/workflows/lint.yml はどちらも pnpm build を実行する。CI が動けば必ず失敗する。現在 checks が出ていないのは draft のためである。
対応: packages/dts-gen/package.json の devDependencies に process を追加し、lockfile を再生成する。同ファイルで assert を resolve.fallback 向けに宣言しているのと同じ形になる。integration test の bundle が polyfill を必要としないなら、ProvidePlugin の項目を削除する選択肢もある。
There was a problem hiding this comment.
Thanks — confirmed and fixed in 25fe088.
packages/dts-gen/package.json now declares process@0.11.10 in devDependencies, next to the assert entry that backs resolve.fallback. I kept the ProvidePlugin entry: the integration bundle still needs the polyfill.
Verified on this branch: pnpm install --frozen-lockfile and pnpm build both succeed, and the lockfile diff is limited to the process entry.
…tone @kintone/create-plugin, @kintone/customize-uploader, @kintone/plugin-packer and @kintone/plugin-uploader are replaced by the plugin and customize commands of cli-kintone, which ships a migration guide at https://cli.kintone.dev/guide/migration/migration-from-js-sdk. Removing them from the repository also closes the publishing path: they leave the release-please configuration and the pnpm workspace, so no further version can be released for them. They are marked as deprecated on the npm registry separately, the same way @kintone/data-loader was handled in #1804.
…n bundle webpack.config.js provides process/browser through ProvidePlugin, but the package never declared process. It resolved only because @kintone/plugin-packer declared process@0.11.10 and pnpm hoisted it. Removing that package breaks build:integration with "Can't resolve 'process/browser'", so declare it here, next to the assert entry that backs resolve.fallback.
25fe088 to
7e00c27
Compare
Why
@kintone/create-plugin,@kintone/customize-uploader,@kintone/plugin-packerand@kintone/plugin-uploaderare replaced by thepluginandcustomizecommands of cli-kintone, which ships a migration guide.These packages will be marked as deprecated on the npm registry. Keeping their sources here would leave them in CI, in the dependency update rotation, and — more importantly — in the release path: a dependency update alone is enough for release-please to bump one of them and publish a version that carries no deprecation. Removing them closes that path.
@kintone/data-loaderwas retired the same way in #1804.What
Removes the four package directories and every reference to them left in the repository:
release-please-config.jsonand.release-please-manifest.json: the four entries. This is what stops further releases; the packages also leave the pnpm workspace with their directories.renovate.json5: thenpm.fileMatchfor the create-plugin template and the custom manager that tracked the@kintone/plugin-manifest-validatorversion embedded inpackages/create-plugin/src/manifest.ts, together with the package rule that only applied to that manager..github/workflows/release.yml: the four npmjs/accesslinks in the header comment..github/labeler-config.ymland both issue templates: the per-package labels and the package options.README.mdandpackages/tsconfig.json: the package table rows and the TypeScript project references.packages/webpack-plugin-kintone-plugin/tsconfig.json: the project reference to../plugin-packer. The package already depends on@kintone/cliinstead, and itspackage.jsondeclares no dependency on plugin-packer; the only mention left in its sources is an attribution comment insrc/plugin.ts, which is not a build dependency. The project reference was stale.packages/plugin-manifest-validator/README.md: its Node.js badge readengines.nodefromcreate-plugin/package.json, so it now reads the value from its ownpackage.json. The line naming plugin-packer as the consumer now names cli-kintone, which depends on this package.packages/dts-gen/package.jsongains aprocessdevDependency.dts-gen/webpack.config.jsprovidesprocess/browserthroughProvidePluginbut never declared the package; it resolved only because plugin-packer declaredprocess@0.11.10and pnpm hoisted it. Without the declaration,build:integrationfails withCan't resolve 'process/browser'.pnpm-lock.yamlis regenerated.Follow-ups, not included here:
npm deprecatefor the four packages (all versions) with a message pointing at the migration guide. Trusted publishing cannot do it: the OIDC credential coversnpm publishonly.How to test
pnpm install --frozen-lockfilesucceeds, thenpnpm buildandpnpm testpass on the root directory. The TypeScript project references are the part worth watching:packages/tsconfig.jsonandpackages/webpack-plugin-kintone-plugin/tsconfig.jsonboth pointed at removed packages.prettier --checkpasses for the changed JSON, Markdown and YAML files.Checklist
pnpm lintandpnpm teston the root directory.