Conversation
🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
- Webサイト関連ファイルを削除 - .github/workflows/deploy-openjij-www.yml - www/ ディレクトリ全体 - プロジェクトメタファイルを削除 - CODE_OF_CONDUCT.md - CONTRIBUTING.md - oneAPI.repo 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- setup.cfg: python_requires >=3.9 - CI: Python 3.8 ジョブ削除 - テンプレートファイル削除 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- setup.cfg: python_requires <3.14、classifier追加 - pyproject.toml: black target-version py313追加 - CI: Python 3.13 テスト・ビルドジョブ追加 - ワークフロー: 不要なキャッシュ設定削除 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- cimod: v1.6.0 → v1.7.1 - googletest: v1.13.0 → v1.17.0 - nlohmann_json: v3.11.2 → v3.12.2 - pybind11_json: 0.2.13 → 0.2.15 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- 不要なバッジを削除(CodeQL、Codacy、Maintainability) - Coverage Graphセクションを削除 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- setup.cfg: requests >= 2.28.0, < 2.32.0 を削除 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- setup.cfg: typing-extensions >=4.2.0 依存削除 - sampler/: 条件付きimportを標準typingに変更 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- .pre-commit-config.yaml: 設定ファイル削除 - dev-requirements.in: pre-commit依存削除 - README.md: pre-commit文面を削除 - MANIFEST.in: pre-commit除外ルール削除 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- README.md: テスト実行例をpython -m pytestに更新 - setup.cfg: test=pytestエイリアス削除、pytest-runner依存削除 - dev-requirements.in: 重複pytest-runner削除 - setup.py: 条件付きpytest-runner追加コード削除 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- ワークフロー: format.yml削除、lint-format.yml追加 - 依存関係: format/lint-requirements.in削除、ruff追加 - 設定: pyproject.tomlをruff設定に更新 - 文書: README.mdをruffコマンドに更新 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- setup.py/setup.cfg: 削除 - pyproject.toml: scikit-build-core設定追加 - dev-requirements.in: 依存関係更新 - README.md: pyproject.tomlベース手順に更新 - CI: scikit-build-core対応 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- pyproject.toml: [project.optional-dependencies]に統合 - CI/CD: pip-tools → PEP 621方式に変更 - ドキュメント: 依存関係管理手順を更新 - 不要ファイル: pip-tools関連ファイルを削除 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- buid-doc.yml: 公開先をJij-Inc組織に変更 - json.cmake: nlohmann/json v3.12.0に調整 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- build_and_upload.yaml: pip install方式に変更 - auditwheel デバッグコマンドを削除 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- README.md: GitHub Actions badges組織変更、codecovバッジ削除、C++ Docs URL更新 - docs/en/intro.md: 古い組織バッジ削除、GitHubリポジトリリンク修正 - docs/ja/intro.md: 古い組織バッジ削除、GitHubリポジトリリンク修正 - external/cimod.cmake: cimodリポジトリをJij-Inc組織に変更 - pyproject.toml: Source・Reference URLをJij-Inc組織に変更 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- pyproject.toml: PEP 735 dependency-groupsに移行 - uv.lock: 依存関係ロックファイル追加 - README.md: uv開発環境手順に更新 - CI/CD: uv準拠ワークフローに変更 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR modernizes OpenJij's development environment by migrating from legacy build tools to modern Python packaging standards. The changes focus on improving developer experience through faster dependency resolution, unified tooling, and standardized configuration.
Key Changes
- UV Migration: Replaced pip-tools with uv for high-performance dependency management using PEP 735 dependency groups
- Build System Modernization: Migrated from setuptools to scikit-build-core for PEP 517/518 compliance
- Tooling Consolidation: Replaced multiple tools (black, isort, flake8) with ruff for unified linting and formatting
Reviewed Changes
Copilot reviewed 39 out of 56 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| pyproject.toml | Complete modernization with scikit-build-core, PEP 735 dependency groups, and ruff configuration |
| setup.py, setup.cfg | Removed legacy build configuration files |
| README.md | Updated development workflow documentation for uv-based environment |
| *.in files | Removed pip-tools requirement files |
| .github/workflows/ | Updated CI/CD to use uv and modern Python versions (3.9-3.13) |
| www/, project_template/ | Cleaned up unused website and template files |
| Various imports | Simplified typing imports by removing Python 3.8 compatibility code |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…ithub.com/Jij-Inc/OpenJij into feature/modernize-development-environment
j-i-k-o
reviewed
Jul 31, 2025
Collaborator
j-i-k-o
left a comment
There was a problem hiding this comment.
Checked the following:
- run the script in
README.md - check unintentional file deletion
It seems that the script uv run pip install -e . --no-build-isolation gives a following error:
.venv ❯ uv run pip install -e . --no-build-isolation
Obtaining file:///Users/kohjinishimura/workspace/Jij/OpenJij/OpenJij
Checking if build backend supports build_editable ... done
ERROR: Exception:
Traceback (most recent call last):
File "/Users/kohjinishimura/workspace/Jij/OpenJij/OpenJij/.venv/lib/python3.11/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper
status = run_func(*args)
^^^^^^^^^^^^^^^
File "/Users/kohjinishimura/workspace/Jij/OpenJij/OpenJij/.venv/lib/python3.11/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper
return func(self, options, args)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/kohjinishimura/workspace/Jij/OpenJij/OpenJij/.venv/lib/python3.11/site-packages/pip/_internal/commands/install.py", line 377, in run
requirement_set = resolver.resolve(
^^^^^^^^^^^^^^^^^
File "/Users/kohjinishimura/workspace/Jij/OpenJij/OpenJij/.venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 76, in resolve
collected = self.factory.collect_root_requirements(root_reqs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/kohjinishimura/workspace/Jij/OpenJij/OpenJij/.venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 534, in collect_root_requirements
reqs = list(
^^^^^
File "/Users/kohjinishimura/workspace/Jij/OpenJij/OpenJij/.venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 490, in _make_requirements_from_install_req
cand = self._make_base_candidate_from_link(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/kohjinishimura/workspace/Jij/OpenJij/OpenJij/.venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 207, in _make_base_candidate_from_link
self._editable_candidate_cache[link] = EditableCandidate(
^^^^^^^^^^^^^^^^^^
File "/Users/kohjinishimura/workspace/Jij/OpenJij/OpenJij/.venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 315, in __init__
super().__init__(
File "/Users/kohjinishimura/workspace/Jij/OpenJij/OpenJij/.venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 156, in __init__
self.dist = self._prepare()
^^^^^^^^^^^^^^^
File "/Users/kohjinishimura/workspace/Jij/OpenJij/OpenJij/.venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 222, in _prepare
dist = self._prepare_distribution()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/kohjinishimura/workspace/Jij/OpenJij/OpenJij/.venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 325, in _prepare_distribution
return self._factory.preparer.prepare_editable_requirement(self._ireq)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/kohjinishimura/workspace/Jij/OpenJij/OpenJij/.venv/lib/python3.11/site-packages/pip/_internal/operations/prepare.py", line 696, in prepare_editable_requirement
dist = _get_prepared_distribution(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/kohjinishimura/workspace/Jij/OpenJij/OpenJij/.venv/lib/python3.11/site-packages/pip/_internal/operations/prepare.py", line 71, in _get_prepared_distribution
abstract_dist.prepare_distribution_metadata(
File "/Users/kohjinishimura/workspace/Jij/OpenJij/OpenJij/.venv/lib/python3.11/site-packages/pip/_internal/distributions/sdist.py", line 67, in prepare_distribution_metadata
self.req.prepare_metadata()
File "/Users/kohjinishimura/workspace/Jij/OpenJij/OpenJij/.venv/lib/python3.11/site-packages/pip/_internal/req/req_install.py", line 571, in prepare_metadata
and self.supports_pyproject_editable()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/kohjinishimura/workspace/Jij/OpenJij/OpenJij/.venv/lib/python3.11/site-packages/pip/_internal/req/req_install.py", line 257, in supports_pyproject_editable
return "build_editable" in self.pep517_backend._supported_features()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/kohjinishimura/workspace/Jij/OpenJij/OpenJij/.venv/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_impl.py", line 153, in _supported_features
return self._call_hook('_supported_features', {})
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/kohjinishimura/workspace/Jij/OpenJij/OpenJij/.venv/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_impl.py", line 321, in _call_hook
raise BackendUnavailable(data.get('traceback', ''))
pip._vendor.pyproject_hooks._impl.BackendUnavailable: Traceback (most recent call last):
File "/Users/kohjinishimura/workspace/Jij/OpenJij/OpenJij/.venv/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 77, in _build_backend
obj = import_module(mod_path)
^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/kohjinishimura/.pyenv/versions/3.11.11/lib/python3.11/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
File "<frozen importlib._bootstrap>", line 1126, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
File "<frozen importlib._bootstrap>", line 1140, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'scikit_build_core'`uv run pip install . `
Member
Author
|
エディタブルインストールではなく、普通の
|
j-i-k-o
approved these changes
Aug 1, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
OpenJij開発環境の近代化
📋 概要
OpenJijの開発環境を近代化しました。依存関係管理、ビルドシステムのモダン化等が含まれます。
主要成果:
✨ 期待される改善効果
🚀 開発効率の向上
uv.lockによるバージョン固定化🛠️ 開発体験の改善
uv runによる一貫した実行環境🔍 主要な技術変更
1. UV移行による依存関係管理の現代化
変更内容:
技術的詳細:
2. ビルドシステムの現代化
変更内容:
3. 開発ツールの統合
変更内容:
変更が必要な開発コマンド
pip install -e .[dev]uv sync --group devblack . && isort . && flake8uv run ruff check . && uv run ruff format .pip-compile dev-requirements.inuv lockpytest tests/uv run pytest tests/📚 技術的背景
採用した標準・ツール
🔗 関連リソース