> For the complete documentation index, see [llms.txt](https://windows.help.formit.autodesk.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://windows.help.formit.autodesk.com/pt-br/plugins/how-to-develop-plugins/advanced-development/versioning.md).

# Controle de versão

À medida que você desenvolve e atualiza o plug-in, em algum momento, pode ser necessário criar uma versão do código.

Por exemplo, as APIs do FormIt podem mudar entre versões e, embora você queira que a nova versão do plug-in use novas APIs do FormIt ou do WSM, também gostaria de manter o plug-in funcionando em clientes mais antigos.

A partir do FormIt **v18.0**, é possível implementar o controle de versão para o plug-in em três etapas simples:

* Adicione um arquivo *versions.json* à raiz do diretório de plug-in
* Especifique cada versão compatível do FormIt e o diretório que contém esses arquivos de plug-in, em *versions.json*
* Use o número de versão interna do FormIt (ou “Número de compilação”), encontrado no FormIt em Informações > Sobre.

### Como organizar o controle de versão para o plug-in

Organize os arquivos de plug-in e diretórios para que correspondam a *versions.json*

O arquivo *versions.json* deve ter esta aparência:

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

Os caminhos acima *v18\_0* e *v19\_0* devem ser subcaminhos válidos da raiz do diretório/repositório.

![](/files/3FXJE7wxvWqOdX4w1y8r)

![](/files/W5D2Uk08Xupoi9YAPF6u)

![](/files/TfpvdIWhHm7jj6aOFcNf)

Uma ótima maneira de lidar com isso é mover o código do plug-in para subdiretórios. Usando o arquivo *versions.json* acima, uma estrutura de diretórios seria semelhante a esta:

* **versions.json** (arquivo)
* **v18\_0** (diretório)
  * **manifest.json** (arquivo)
  * **plugin.html** (arquivo)
  * **plugin.js** (arquivo)
* **v19\_0** (diretório)
  * **manifest.json** (arquivo)
  * **plugin.html** (arquivo)
  * **plugin.js** (arquivo)

As propriedades opcionais na versão são “exactVersion” e “lastVersion”. “exactVersion” indica que a versão deve coincidir exatamente com a versão do FormIt. “lastVersion” indica a última versão com execução permitida no FormIt.\\

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

Também é possível usar ramificações/identificadores/confirmações de git para os caminhos.

Se você estiver trabalhando com uma versão de pré-lançamento ou beta do FormIt e desejar testar as alterações em um plug-in que só funciona com a versão de pré-lançamento:

* Siga as etapas acima, exceto usando o nome de arquivo *versions\_prerelease.json*
* Se você confirmar *versions\_prerrelease* para o repositório, será conveniente removê-lo quando a versão de pré-lançamento do FormIt for liberada
  * Caso contrário, as versões futuras do FormIt de pré-lançamento carregarão o plug-in de um local que pode ser obsoleto ou destinado a uma versão anterior
