# Управление версиями

В процессе разработки и обновления подключаемого модуля может потребоваться присвоить коду номер версии.

Например, API-интерфейсы FormIt могут меняться от версии к версии. И хотя вы можете предпочитать, чтобы новая версия подключаемого модуля использовала новые API-интерфейсы FormIt или WSM, вам также может понадобиться, чтобы подключаемый модуль работал и в более старых клиентах.

Начиная с версии FormIt **v18.0**, управление версиями подключаемого модуля можно реализовать за 3 простые действия.

* Добавьте файл *versions.json* в корневую папку подключаемого модуля.
* Укажите каждую совместимую версию FormIt и каталог, содержащий файлы подключаемых модулей, в файле *versions.json*.
* Используйте внутренний номер версии 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://911479504-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTy1RB39tHrJIZ4W3sCan%2Fuploads%2Fgit-blob-74facd349e832da75d7062473545012e480e9a7a%2Fi1.png?alt=media)

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

![](https://911479504-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTy1RB39tHrJIZ4W3sCan%2Fuploads%2Fgit-blob-522558d34053d7036564ddd03ebe214ec2b004fb%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 будут загружать подключаемый модуль из папки, которая может быть устаревшей или предназначенной для более ранней версии.
