Skip to content

Conversation

@shabaraba
Copy link
Member

@shabaraba shabaraba commented Dec 15, 2025

Why

Configuration files for ESLint, TypeScript, Renovate, license-manager, and commitlint were scattered across the js-sdk monorepo, leading to duplicated settings in each project.

Centralizing these configurations provides the following benefits:

  • Easier to understand the impact of configuration changes
  • Keeps each project's configuration files concise
  • Facilitates sharing of configuration best practices across projects

What

Added a new internal shared configuration package @kintone/configs.

Note: This is an internal package for the kintone development team. It is not intended for public use, and breaking changes may occur without notice.

Included configurations

  • ESLint: Common configuration based on @cybozu/eslint-config
  • TypeScript: Shared tsconfig settings
  • Renovate: Common dependency update settings
  • license-manager: Common OSS license validation settings
  • commitlint: Commit message validation settings

Updated root configuration files

  • eslint.config.mjs: Now references @kintone/configs/eslint-config
  • tsconfig.json: Now extends @kintone/configs/tsconfig
  • renovate.json5: Now references @kintone/configs/renovate-config
  • license-manager.config.js: Now references @kintone/configs/license-manager

How to test

  • pnpm install
  • pnpm build
  • pnpm lint
  • pnpm test

Checklist

  • Read CONTRIBUTING.md
  • Updated documentation if it is required.
  • Added tests if it is required.
  • Passed pnpm lint and pnpm test on the root directory.

@shabaraba shabaraba force-pushed the chore/add-configs-internal-package branch from 6b427a9 to 93cd13f Compare December 15, 2025 04:58
@shabaraba shabaraba changed the title chore: add private package chore: add configs private package Dec 23, 2025
@shabaraba shabaraba marked this pull request as ready for review December 23, 2025 05:54
@shabaraba shabaraba requested a review from a team as a code owner December 23, 2025 05:54
@shabaraba shabaraba requested review from chihiro-adachi, Copilot and tasshi-me and removed request for a team December 23, 2025 05:54
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a new internal shared configuration package @kintone/configs to centralize configuration files (ESLint, TypeScript, Renovate, license-manager, and commitlint) across the js-sdk monorepo. This consolidation reduces duplication and provides a single source of truth for development tool configurations.

Key changes:

  • Created new internal package @kintone/configs with shared configurations for all development tools
  • Updated root configuration files to reference the new shared package
  • Added comprehensive documentation including ADRs explaining design decisions

Reviewed changes

Copilot reviewed 27 out of 29 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
packages/configs/package.json Defines the new shared configs package with proper exports for each configuration type
packages/configs/tsconfig/tsconfig.json Provides modern TypeScript configuration with ES2024 target and node16 module resolution
packages/configs/eslint/config.js Centralizes ESLint rules based on @cybozu/eslint-config with project-specific customizations
packages/configs/renovate/default.json5 Shares Renovate settings including automerge rules and security practices for GitHub Actions
packages/configs/license-manager/base.cjs Consolidates allowed licenses and override configurations for OSS license validation
packages/configs/commitlint/config.cjs Enforces Semantic Commit Messages with conventional commits format
packages/configs/scripts/init.js Provides CLI tool to initialize configuration files in new projects
tsconfig.json Updated to extend shared config while overriding for legacy CommonJS compatibility
eslint.config.mjs Simplified by importing shared config with js-sdk specific overrides
renovate.json5 Now extends shared config with project-specific settings
license-manager.config.js Uses shared license lists from configs package
pnpm-lock.yaml Adds workspace dependency and new transitive dependencies
__tests__/lib/workspace.ts Excludes configs package from workspace tests
Various README and ADR files Comprehensive documentation of configurations and design decisions
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

"dependencies": {
"@cybozu/eslint-config": "^24.3.0",
"eslint-plugin-package-json": "^0.29.1",
"globals": "^16.4.0"
Copy link

Copilot AI Dec 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The package.json specifies "globals": "^16.4.0", but the lockfile resolves this to version 16.5.0. While this is within the semver range, for consistency and reproducibility, consider updating the package.json to specify "^16.5.0" to match the resolved version.

Suggested change
"globals": "^16.4.0"
"globals": "^16.5.0"

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants