-
Notifications
You must be signed in to change notification settings - Fork 305
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
#101 バージョン0.4.0未満のプロジェクトファイルへの対応 #102
Conversation
Error when the ProjectType changes.
2021年8月17日現在 mainブランチにおいてソフトウェアのバージョンは0.3.1と設定されており、プロジェクト形式の更新バージョンを0.4.0としています。従って現在のmainブランチから生成されたプロジェクトフォルダは形式が不正となり、自身で読み込むことができません. |
ソフトウェアのバージョンをプロジェクトファイルのバージョンにするとそういった煩わしさがあるんですね。なるほどです。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
やりたいこと(プロジェクトファイルのマイグレーションを型レベルで保証する)はとてもかっこいいと思うのですが、ライブラリを管理するくらいの気合が必要な実装だと感じました。
このプルリクエストには0.3.1のプロジェクトファイルを0.4.0へマイグレーションする機能と、マイグレーションのインターフェースの機能が備わっていて、前者は急ぎたい一方、後者は議論が必要で時間がかかるかもしれません。
とりあえずマイグレーションするだけ(load時のバージョンが0.4.0未満ならcharactorをcharacterにreplaceする)のコードをマージして、後者はゆっくり実装していくのはどうでしょう。
ひとまず全てのバリデーションチェックを捨て,charactorIndexをcharacterIndexに書き換えるだけのコードをに差し替えました. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
issueでの議論、良いと思います。
コードもすごくスッキリして良いと思います。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
先に入った https://github.com/Hiroshiba/voicevox/pull/114 が偶然コンフリクトしているようです。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove/addされた行数を比較して気づいたのですが、projectSchema
が消えてValidationがなくなっていそうです
意図を勘違いしていたようで申し訳ありません。 |
最新版になったものをバリデーションするのが良いのかな、と思っています。 最新版(0.4.0版)をロードした時 0.3.1版をロードした時 という感じです。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
プロジェクトファイルについての操作をstore内の
index.ts
からstore内のstore/project
フォルダに移し,store/project/version0.3.0.ts
,store/project/version0.4.0.ts
のようにプロジェクトファイルの形式を記述する構造にしてみました.前後のバージョン間のプロジェクトファイルの変換関数(
updater
)を記述することでマイグレーションを実現しています.fix #101