Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: root 下のファイルを移動して整理 #1408

Open
tarepan opened this issue Jun 19, 2024 · 5 comments
Open

refactor: root 下のファイルを移動して整理 #1408

tarepan opened this issue Jun 19, 2024 · 5 comments
Labels
機能向上 状態:設計 設計をおこなっている状態 要議論 実行する前に議論が必要そうなもの

Comments

@tarepan
Copy link
Contributor

tarepan commented Jun 19, 2024

(追記)
現状は コチラ
アイデア募集中です!

内容

概要: レポジトリ root 直下のファイルを移動してリファクタリング

現在の VOICEVOX ENGINE は レポジトリ root 直下に 24 個のファイル・ディレクトリを配置している。
数の多さゆえに root 下に何があるかブラウザで確認するにはスクロールが必要である。重要なエントリーポイントである run.py も下に埋もれおり一見して見つけられない。設定等をとりあえず root へファイルを置く方針がスケールしなくなっているといえる。このことは各所で指摘されている(例: #1368 (comment) by @Hiroshiba)。

一方で各ファイルごとに build_util 等へ移動していくと設定ファイルの配置箇所に統一性がなくなり、全体として見た DX が低下する懸念がある(参考: #1368, #1376, #1388)。
よってゴール像をこの issue で検討し、それに従って各ファイルの具体的対処をおこなうのが望ましい。

このような背景から、レポジトリ root 直下のファイルを移動するリファクタリングについて、指針の議論を提案します。

移動対象

現時点で移動/削除が検討されている root 直下のファイル・ディレクトリは以下になります(括弧内は個別 PR):

指針案

@tarepan の提案する基本指針は「自転車置場の議論を避け、細かい不整合に目を瞑って tools/ へ一括移動する」です。

開発者にとっての理想的ディレクトリ構造は以下の概形をもつと考えます:

  • /
    • production_things
    • development_things

ここで Python の慣習として以下の制約があります:

  • 製品用の Python コードとリソースを分ける
  • root 直下に /test を置く
  • ドキュメントは製品とも開発系とも分離する

これを反映すると以下の概形を持ちます:

  • /
    • voicevox_engine: 製品コード
    • resources: 製品リソース
    • docs: ドキュメント
    • test: 開発系のうちテスト
    • development_things: 開発系その他

development_things はビルド用スクリプト・ビルド用設定ファイル・開発用スクリプト・開発用設定ファイルを含みます。.pre-commit-config.yamlrun.spec がこれに該当し、ディレクトリ名は tools が適切と考えます。
「対応するスクリプトがないのに設定ファイルだけある」「ビルドと開発は段階がズレているんじゃないか」等の細かい不整合はあります。しかしここで得たい利益は「root 直下の見通し」であり、この利益は多少意味がズレる不利益を上回ると考えます。
また意味のズレを厳密にコストかけて整理しても、root 下のディレクトリが増えてしまえば本当に欲しかった利益が失われます。厳密にするだけならいくらでも細かく分けられるため、"自転車置場の議論" に陥る懸念もあります。

このような論理から、基本指針として「自転車置場の議論を避け、細かい不整合に目を瞑って tools/ へ一括移動する」を提案します。

@Hiroshiba
Copy link
Member

Hiroshiba commented Jun 19, 2024

rootを片付けたい気持ちは賛成です!

このような論理から、基本指針として「自転車置場の議論を避け、細かい不整合に目を瞑って tools/ へ一括移動する」を提案します。

なるほどです。確かに細かい部分を議論しまくるのは微妙な気がします。

全部toolsに置くのは、次はtools/がごちゃごちゃになる気するのでだいぶ反対です・・・ 🙇

一旦run.pyだけであれば、run.pyがエントリーポイントであるということをドキュメントに書くことで入口を作ってあげるのはありかもです。

@tarepan
Copy link
Contributor Author

tarepan commented Jun 19, 2024

全部toolsに置くのは、次はtools/がごちゃごちゃになる気するのでだいぶ反対

👍️
1 つの方針として妥当だと思います。
となると「今後ツール等の設定ファイルは root 直下の肥大を恐れずに配置していく」という方針になる感じでしょうか?

@Hiroshiba
Copy link
Member

現段階だと、toolsよりはrootにあったほうがまあマシかなと感じます。
というのもルートにある大事なファイルでドキュメントがないのはrun.pyだけなので、それをドキュメントにすれば良いだけだと感じるためです。

でも「今後ツール等の設定ファイルは root 直下の肥大を恐れずに配置していく」は極論な気がします。
良い方法があれば募集した方が良いと思います。

@tarepan
Copy link
Contributor Author

tarepan commented Jun 19, 2024

現段階だと、toolsよりはrootにあったほうがまあマシかな ... 良い方法があれば募集

👍️
現状維持で、より良いアイデア募集ということですね。

現状

現状、root 直下が散らかっていることに課題感はあるが解決策が見つけられていない状態です。
良いアイデアのある方は気軽にこちらの issue でご提案ください!

@tarepan tarepan added 状態:設計 設計をおこなっている状態 要議論 実行する前に議論が必要そうなもの labels Jun 19, 2024
@Hiroshiba
Copy link
Member

詳しく考えれてないので「そうしましょう」という提案ではないのですが、アイデアだけ。。

miscディレクトリを作るのは手かも?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
機能向上 状態:設計 設計をおこなっている状態 要議論 実行する前に議論が必要そうなもの
Projects
None yet
Development

No branches or pull requests

2 participants