# 環境構築手順 (Environment Setup)

新しいデバイスで開発を始める・環境を作り直すときの手順．**どのデバイスでも clone から数分で開発再開できる**ことを目標とし，環境の定義（Python バージョン・依存パッケージ）はすべてリポジトリ内（`pyproject.toml` / `uv.lock`）で管理する．

## 前提ツールのインストール (Prerequisites)

デバイスに必要なのは以下の 3 ツールのみ．Python 本体は不要（uv がリポジトリ指定のバージョンを自動取得する）．

### Windows

```powershell
winget install Git.Git GitHub.cli astral-sh.uv
```

### macOS

```bash
brew install git gh uv
```

インストール確認: `git --version` / `gh --version` / `uv --version`

## セットアップ手順 (Steps)

OS を問わず同一の手順．

```bash
# 1. GitHub 認証（初回のみ．ブラウザが開く）
gh auth login

# 2. リポジトリを取得
gh repo clone <オーナー名>/TIASjudge
cd TIASjudge

# 3. 依存パッケージを同期（Python 3.12 も自動取得される）
uv sync

# 4. 動作確認
uv run pytest
```

以上で完了．アプリの起動やテスト等の日常コマンドは `ENV_04_開発コマンド.md` を参照する．

## 環境再現性のルール (Reproducibility Rules)

どのデバイスでも同じ環境になることを守るため，以下を徹底する．

- 依存パッケージの追加は必ず `uv add <パッケージ>` で行い，`pyproject.toml` と `uv.lock` の変更をコミットする（`pip install` を直接使わない）
- コード・設定に**デバイス固有の絶対パスを書かない**（旧実装で `C:\opencv-2.4.13.6` 直書きにより再現性が失われた反省による）
- OS 依存の処理（パス区切り・フォント等）を避け，Windows / macOS 両方で動く書き方をする

## 補足 (Notes)

- エディタは任意．VS Code を使う場合は Python + Ruff 拡張を推奨
- 旧実装（`org/`）は Git 管理外．参照したい場合は管理者からバックアップを受け取り，リポジトリ直下に `org/` として配置する（無くても開発は可能）
