Skip to content

gwt-spec: リリース・配布 #157

@akiojin

Description

@akiojin

Spec

Background

ドメイン仕様書: リリース・配布

作成日: 2026-04-05
ステータス: active

4 層リリースフロー(feature → develop → release/* → main)、PR ベースの自動マージ、semantic-release によるバージョン管理と成果物配信、OpenUPM 署名対応、HTTP/プロキシ対応とテレメトリ透明性、Node/Unity パッケージバージョン不一致検出を統合するドメイン。リリースプロセスの自動化・信頼性・配布品質を一元管理する。

Ubiquitous Language

TODO

User Stories

TODO

Acceptance Scenarios

TODO

Edge Cases

TODO

Functional Requirements

TODO

Non-Functional Requirements

TODO

Success Criteria

TODO


Domain-Specific Details

対象コマンド群・機能

  • 4 層ブランチフロー: finish-feature.sh, /release コマンド, publish.sh
  • CI/CD ワークフロー: auto-merge.yml, release.yml, release-lsp.yml, unity-cli-publish.yml, prebuild.yml
  • semantic-release: .releaserc.json, バージョン同期スクリプト
  • OpenUPM 署名: 署名付き tarball 生成・公開
  • HTTP トランスポート: --http 起動モード、/healthz エンドポイント
  • テレメトリ制御: UNITY_CLI_TELEMETRY 環境変数
  • バージョン不一致検出: UNITY_CLI_VERSION_MISMATCH 環境変数

完了済み機能

Plan

PR ベース自動マージ(旧 #92 -- 下書き)

以下のテスト・ドキュメント項目が未完了:

  • CHANGELOG 生成テスト
  • semantic-release 設定統合テスト
  • リリースワークフロー統合テスト
  • リリースフロー E2E テスト

ただし、コア実装(.releaserc.json、ワークフロー、スクリプト、ドキュメント)は完了しており、旧 #69 で実運用済み。テスト追加は品質強化として扱う。

OpenUPM 署名対応(旧 #79 -- 下書き)

Unity 6.3+ で署名警告を出さずに OpenUPM パッケージを提供するための CI パイプラインを構築する:

  1. リリースタグ vX.Y.Z で署名付き UPM tarball (.tgz + .attestation.p7m) を生成
  2. OpenUPM レジストリへ自動公開
  3. ローカル署名再現スクリプト提供

HTTP/プロキシ対応(旧 #87 -- 下書き)

企業ネットワーク向けに HTTP/JSON-RPC トランスポートを追加し、テレメトリ挙動を透明化する:

  1. Node.js 標準 http による HTTP リスナー追加(/healthz エンドポイント)
  2. ポート競合検知と代替ポート提案
  3. テレメトリ: デフォルト無効、UNITY_CLI_TELEMETRY=on で明示的有効化

Tasks

PR ベース自動マージ テスト補完(旧 #92

  • T002: CHANGELOG 生成テスト (tests/unit/changelog.test.js)
  • T003: semantic-release 設定統合テスト (tests/integration/semantic-release.test.js)
  • T004: リリースワークフロー統合テスト (tests/integration/release-workflow.test.js)
  • T005: リリースフロー E2E テスト (tests/e2e/release-flow.test.js)

OpenUPM 署名対応(旧 #79

  • 署名付き tarball 生成の CI ワークフロー追加
  • OpenUPM publish ステップ追加
  • ローカル署名再現スクリプト (--dry-run 対応)
  • ユニットテスト: 引数検証・コマンド生成

HTTP/プロキシ対応(旧 #87

  • T001: src/core/httpServer.js フォルダ追加
  • T003: GET /healthz contract test
  • T004: HTTP 起動/停止・ポート競合シナリオテスト
  • T005: EADDRINUSE/invalid-port ユニットテスト
  • T006: telemetry on/off ログ出力・送信ゼロ検証
  • T007: httpServer.js 実装(healthz, graceful shutdown, port check)
  • T008: server.js に HTTP 起動オプション追加
  • T009: CLI オプション / README に --http, telemetry 設定追記
  • T010: ポート競合時の代替ポート提案ロジック
  • T011: テレメトリ設定ログ出力・外向き通信ブロック確認

TDD

OpenUPM 署名

  • RED: 署名生成スクリプトの --dry-run 引数検証テスト
  • GREEN: スクリプト実装
  • REFACTOR: CI ワークフロー統合

HTTP/プロキシ

  • RED: /healthz contract test、ポート競合テスト、telemetry off テスト
  • GREEN: httpServer.js 実装
  • REFACTOR: stdio/TCP 共存整理

旧Issue参照

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions