開発者向けガイド (Development)
以下は Python最終版 v0.9.1 の手順です。Rustのチェックアウトでは実行せず、保存したタグを別ディレクトリへ取得してから使用してください。
git clone --branch v0.9.1 https://github.com/youtube-at-vach/MeasureLab.git MeasureLab-python
cd MeasureLab-python
概要
ソースコードからの実行や、開発環境のセットアップ方法について説明します。
🐍 ソースコードから実行する場合
[!IMPORTANT] Python 3.12 以上
🚀 自動セットアップスクリプト(推奨)
Linux(apt環境)および macOS 向けに、OSパッケージのインストールから仮想環境(.venv)の構築、必要なPython依存パッケージやNode.jsなどの開発ツールのインストールまでを自動化する便利なスクリプトが用意されています。
ターミナルを開き、リポジトリのルートディレクトリで以下のコマンドを実行するだけで準備が整います:
Linux で apt が使えない環境(例: Gentoo)や管理者権限が使えない環境では、スクリプトは OS パッケージの自動導入をスキップし、必要パッケージの案内を表示した上で venv/pip セットアップを続行します。
実行中、macOS では MacPorts のデフォルト設定など、いくつかの確認が求められる場合があります。
セットアップ完了後は、以下のコマンドで仮想環境を有効化してからアプリケーションを起動してください。
🛠️ 手動でセットアップする場合
自動スクリプトを使用せず、各環境に合わせて手動で構築したい場合は、以下の手順を参照してください。
Linux / Ubuntu: 手動で仮想環境 (venv) を構築する
リリース版(AppImage/ZIP)はそのまま動作しますが、ソースコードから実行する場合に APT(OSパッケージ)の Python 依存(例: PyQt6 など)が古くて動かないことがあります。 そのため Linux では、システムの Python はそのまま使いつつ、依存パッケージは venv + pip で入れる運用を推奨します。
-
OS 依存ライブラリ(最低限)を入れます。
sounddeviceは PortAudio を利用するため、実行時にlibportaudio2が必要です。soundfileは libsndfile を利用するため、実行時にlibsndfile1が必要です。
もし
pip installでビルドエラーが出る場合のみ、追加で開発ヘッダ等を入れてください: -
仮想環境を作成して有効化します(例: リポジトリ直下に
.venv)。以降は
python/pipが venv を指します(sudo pipは使わないでください)。activateを使わずに実行したい場合は、常に venv の Python を直接呼び出してもOKです: -
リポジトリをクローンします。
-
依存関係をインストールします(再現性のため constraints を利用):
-
アプリケーションを起動します:
macOS: MacPorts + Python 3.12 + pyFFTW を使用する場合
(macOS 13 以降で動作確認済み)
macOS で pyFFTW をインストールする場合、パッケージマネージャ(MacPorts 推奨)でインストールした FFTW ライブラリを明示的に指定する必要があります。
-
MacPorts の更新と必要パッケージのインストール:
-
Python のバージョン選択:
設定後、ターミナルを再起動してください。
-
仮想環境の作成と有効化:
-
pyFFTW のインストール(FFTW のパスを明示指定):
-
依存パッケージのインストール:
🛠️ 開発向けセットアップ
テストやLint/型チェック、ドキュメントのビルドを実行する場合は追加のパッケージをインストールしてください。
-
コード開発(テスト/Lintなど):
zsh を使用している場合は
.[dev]を".[dev]"のように引用符で囲む必要があります。 -
ドキュメント開発(MkDocs):
-
Lint:
ruff check . - Format check:
ruff format --check .ruff format .による全体フォーマットは通常実行せず、確認に失敗した場合も変更したファイルだけを必要に応じてフォーマットします。 - Type check:
mypy src - Tests:
pytest(ハードウェア/GUI依存テストは環境変数が必要; CIではデフォルトでスキップ)
🤖 開発支援スキル拡張 (Skill Extensions)
MeasureLabのプロジェクトでは、開発ワークフローを自動化・支援するためのプロジェクトレベルのスキル拡張機能(Slash Commands)が用意されています。これらはGitHub Copilot CLIなどのMCP対応ツールから利用できます。
- /ci-prechecker: PR作成前に、Ruff(Lint)、Mypy(型チェック)、翻訳キー整合性、Markdown Lint、Pytestなどをローカルで一括実行し、CI要件を満たしているか事前検証します。
- /multilingual-translator: プロジェクト全体の翻訳ファイルの整合性をチェックし、不足しているキーの追加から翻訳の最終検証までを自動で行います。
- /pr-reviewer: Pull Requestのコード変更を取得し、ロジックの正確性、スタイル、テスト・ドキュメント、CI/安全性の観点からコードレビューを自動実施します。
- /release-manager: CHANGELOGの更新、ドキュメントの記述確認、バージョン番号の同期、UI変更時のスクリーンショット更新、リリースPRの作成など、リリース準備を支援します。
仕様詳細や各スキルの使い方については、リポジトリ内の .github/extensions/ 以下のMarkdownファイルを参照してください。
Windowsインストーラーのビルド
Windows配布方式の比較、Inno Setupによるビルド、更新・削除時のデータ保持、CIでの検証は Windows配布方式とビルド を参照してください。