# バージョン管理

プラグインの開発や更新の際に、ある時点でコードのバージョンの設定が必要となる場合があります。

たとえば、FormIt の API はリリースごとに変わる可能性があるため、新しいバージョンのプラグインでは新しい FormIt または WSM の API を使用しながら、古いクライアントでも引き続きそのプラグインが機能することが求められる場合があります。

FormIt **v18.0** から、3 つの簡単な手順でプラグインのバージョン管理を実装できるようになりました。

* プラグイン フォルダのルートに *versions.json* ファイルを追加します
* *versions.json* で、互換性のある各 FormIt バージョンと、対象のプラグイン ファイルを含むフォルダを指定します
* FormIt の内部バージョン番号つまり「ビルド番号」を使用します。これは、FormIt の\[情報] > \[FormIt について]で確認できます

### プラグインのバージョン管理を整理する方法

*versions.json* に一致するようにプラグインのファイルとフォルダを整理します。

*versions.json* は次のようになっているはずです。

```
        [
            {
                "version":{
                    "major":18,
                    "minor":0
                },
                "path":"v18_0"
            },
            {
                "version":{
                    "major":19,
                    "minor":1
                },
                "path":"v19_0"
            }
        ]
```

上記のパス *v18\_0* および *v19\_0* は、フォルダ/リポジトリのルートからの有効なサブパスである必要があります。

![](https://1042687263-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fi2QoKYmxiErmbCIxIwlZ%2Fuploads%2Fgit-blob-faafaadac5d2feefdcaddcbb1aba697f2d89a14f%2Fi1.png?alt=media)

![](https://1042687263-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fi2QoKYmxiErmbCIxIwlZ%2Fuploads%2Fgit-blob-6ddcda42f6935b6bfdce65a21daccbb71fd748c6%2Fi2.png?alt=media)

![](https://1042687263-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fi2QoKYmxiErmbCIxIwlZ%2Fuploads%2Fgit-blob-69d19408cbcc964c2f07edc6f2343ebfe2898343%2Fi3.png?alt=media)

適切に処理するには、プラグイン コードをサブフォルダに移動します。上記の *versions.json* を使用すると、フォルダ構造は次のようになります。

* **versions.json** (ファイル)
* **v18\_0** (フォルダ)
  * **manifest.json** (ファイル)
  * **plugin.html** (ファイル)
  * **plugin.js** (ファイル)
* **v19\_0** (フォルダ)
  * **manifest.json** (ファイル)
  * **plugin.html** (ファイル)
  * **plugin.js** (ファイル)

バージョンに関するオプションのプロパティは「exactVersion」と「lastVersion」です。「exactVersion」は、バージョンが FormIt のバージョンと完全に一致する必要があることを示します。「lastVersion」は、FormIt で実行できる最新バージョンを示します。\\

```
[
    {
      "version":{
        "major":18,
        "minor":0,
        "exactVersion":true
        },
        "path":"v18_0"
    },
    {
        "version":{
            "major":19,
            "minor":1,
            "lastVersion":true
       },
        "path":"v19_0"
    }
 ]
```

パスに git のブランチ、タグ、コミットを使用することもできます。

プレリリース、つまりベータ版ビルドの FormIt を使用していて、そのプレリリース版でのみ動作するプラグインへの変更をテストする場合は、次のようになります。

* *versions\_prerelease.json* というファイル名を使用すること以外は、上記の手順に従います
* *versions\_prerelease* をリポジトリにコミットした場合は、そのプレリリース版の FormIt がリリースされたときに削除する必要があります
  * リリースされない場合は、その後のプレリリース版の FormIt では古い場所(古いバージョン用の場所)からプラグインがロードされます
