Skip to content

pyproject.tomlのバージョン管理問題をなんとかしたい #1797

@Hiroshiba

Description

@Hiroshiba

内容

現在、バージョン情報が2箇所に定義されており、混乱や誤用の原因となる問題があります:

  • pyproject.toml:3version = "0.24.0" # TODO: できればversionを自動管理する
  • voicevox_engine/__init__.py:3__version__ = "latest"

ビルドワークフロー(.github/workflows/build-engine.yml:401)では__init__.py__version__が実際のバージョンに置き換えられ、真のバージョン管理は__init__.pyで行われています。

問題点:
pyproject.tomlに固定のバージョン値(現在0.24.0)が存在するため、誤ってこちらを参照するコードを書いてしまう危険性があります。

Pros 良くなる点

  • バージョン管理の混乱解消
  • 誤用による予期しないバグの防止
  • 開発者の認識統一

Cons 悪くなる点

  • 良い解決策が見つからない
  • PEP 621の制約により理想的な実装が困難

実現方法

  1. 調べる: より良い解決策を調査・検討する
  2. 暫定対応: pyproject.tomlのversionを0.0.0などのダミー値に変更し、コメントで意図を明記する(誤用した場合に問題が明確になる)

VOICEVOXのバージョン

engine 0.24.0

その他

この問題は過去のPR #1658 でも議論されていました。

いくつかの解決策を試してみましたが、いずれも問題がありました:

  • versionのコメントアウト → PEP 621の仕様によりエラー([project]テーブル使用時はversion必須)
  • uvの非パッケージモード → 設定の複雑化と既存システムへの影響

PEP 621の制約により根本的な解決は困難ですが、現状の混乱を放置するわけにもいかないため、何らかの対策が必要です。

Metadata

Metadata

Assignees

No one assigned

    Labels

    状態:設計設計をおこなっている状態

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions