versioningの話:VRChat SDKアップデートで起きた問題とセマンティックバージョニングの運用方法
詳細情報
発表のハイライト
- VRChatのSDKアップデートをきっかけに、アバター開発などで使用されるツールがバージョン不整合を起こし、正常に動作しなくなる事例が発生
- 原因はセマンティックバージョニングの誤解や、運用方法が適切でなかったこと
- VRChat向け開発でアバターやツールを公開する開発者は、セマンティックバージョニングを正しく理解し、利用者に迷惑をかけないよう注意喚起
VRChat SDKアップデートで発生した問題
2023年9月28日に行われたVRChatの「個人開発集会」にて、anatawa12さんが「バージョニングの話」というテーマでLT発表を行いました。
anatawa12さんは、ご自身が開発しているアバター最適化ツール「アバターオプティマイザー」の開発経験を踏まえ、VRChat向け開発におけるバージョン管理の重要性について解説しました。
発表では、VRChatのSDKバージョンが3.2.0、3.3.0とアップデートされる中で、バージョニングの不整合によって様々なツールが動作しなくなる事例を紹介しました。
具体的には、VRChat SDK 3.1.12のアップデートにおいて、バグ修正版であるパッチバージョンにも関わらず、新規APIの追加が行われていました。
これはセマンティックバージョニングに違反する変更であり、anatawa12さんが「アドバンスドブール事件」と呼ぶ問題を引き起こしました。
この変更により、VRChat SDKのバージョン管理に依存しているツールは、想定外のエラーやコンパイルエラーが発生し、正常に動作しなくなりました。
セマンティックバージョニングとは?
セマンティックバージョニングとは、ソフトウェアのバージョン番号を「メジャー.マイナー.パッチ」の形式で記述し、変更内容に応じて番号を上げていくルールです。
- メジャーバージョン: APIの破壊的な変更があった場合にインクリメント
- マイナーバージョン: 後方互換性を保った機能追加があった場合にインクリメント
- パッチバージョン: 後方互換性を保ったバグ修正があった場合にインクリメント
セマンティックバージョニングに従うことで、開発者はバージョン番号を見るだけで、ソフトウェアの変更内容を把握することができます。
VRChat SDKで何が問題だったのか?
VRChat SDKは、公式ドキュメント上でセマンティックバージョニングに従うと宣言していました。
しかし、実際にはパッチバージョンである3.1.12で、セマンティックバージョニングに違反する破壊的な変更が行われていました。
この食い違いが、開発者やユーザーに混乱を招き、様々な問題を引き起こす原因となりました。
バージョニングを正しく運用するために
anatawa12さんは、VRChat向け開発でアバターやツールを公開する開発者に向けて、以下の3点を呼びかけました。
- バージョニングを宣言する: どのようなルールでバージョン番号を付けているのかを明確に示す
- 宣言したバージョニングを守る: 宣言したルールに従って、バージョン番号を正しく更新する
- 破壊的変更を行う場合の対応:
- 可能であれば、破壊的変更を避ける
- やむを得ず破壊的変更を行う場合は、メジャーバージョンを上げる
- ユーザーに分かりやすく、変更内容を伝える
セマンティックバージョニングの注意点
発表では、セマンティックバージョニングを実践する上での注意点も紹介されました。
- 破壊的変更の定義: どこまでの変更を破壊的変更とするかは、明確な定義がないため、開発者間で認識を合わせることが重要
- プレリリース版の扱い: プレリリース版のバージョン番号の付け方や、比較方法には注意が必要
- 開発初期段階での運用: 開発初期段階では、破壊的変更が多発しがちですが、可能な限りルールを決めて運用することが重要
まとめ
VRChat向け開発において、セマンティックバージョニングは重要な役割を担っています。
開発者の方は、今回の発表を参考に、セマンティックバージョニングを正しく理解し、適切に運用することで、ユーザーに安心して利用してもらえるアバターやツールを提供できるように心がけましょう。
個人開発集会の他の発表もチェック!
個人開発集会の開催情報・参加方法

個人開発集会
開催日: 2023年09月28日
開催時間: 21:00 - 22:00
開催曜日: 木曜日開催周期: 隔週(グループA)
個人開発にまつわる話でワイワイする集会です。 個人開発をやっている方も初めてみたい方も大歓迎! 企画・技術・マーケティング・保守・運用など 技術的なことに限らない幅広い分野を想定しています。 個人開発に興味がある方はぜひ遊びに来てください!