> 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/pl/plugins/how-to-develop-plugins/advanced-development/versioning.md).

# Zarządzanie wersjami

Podczas tworzenia i aktualizowania wtyczki może być w pewnym momencie konieczne zarządzanie wersjami kodu.

Na przykład interfejsy API programu FormIt mogą się zmieniać w kolejnych wersjach, ale mimo że nowa wersja wtyczki może korzystać z nowych interfejsów API programu FormIt lub WSM, niekiedy warto zachować również możliwość używania wtyczki w starszych klientach.

Od wersji FormIt **18.0** można zaimplementować dla wtyczki zarządzanie wersjami w 3 prostych krokach:

* Dodaj plik *version.json* do katalogu głównego wtyczki.
* Określ w pliku *version.json* poszczególne zgodne wersje programu FormIt oraz katalogi zawierające te pliki wtyczek.
* Użyj wewnętrznego numeru wersji programu FormIt, czyli „numeru kompilacji”, który jest podany w programie FormIt w obszarze Informacje > Informacje o programie.

### Jak zorganizować zarządzanie wersjami dla wtyczki

Zorganizuj pliki i katalogi wtyczki tak, aby były zgodne z plikiem *version.json*

Plik *version.json* powinien wyglądać następująco:

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

Powyższe ścieżki *v18\_0* i *v19\_0* muszą być poprawnymi ścieżkami podrzędnymi z katalogu głównego danego katalogu/repozytorium.

![](/files/UAQQ4nFjJRomN1Hs8zJq)

![](/files/VzNAn7E2oV4jw4ILgNHL)

![](/files/tssXfpoYJvwpyjWGaZXk)

Dobrym rozwiązaniem jest przeniesienie kodu wtyczki do podkatalogów. W przypadku powyższego pliku *version.json* struktura katalogów wygląda następująco:

* **version.json** (plik)
* **v18\_0** (katalog)
  * **manifest.json** (plik)
  * **plugin.html** (plik)
  * **plugin.js** (plik)
* **v19\_0** (katalog)
  * **manifest.json** (plik)
  * **plugin.html** (plik)
  * **plugin.js** (plik)

Opcjonalne właściwości wersji to „exactVersion” i „lastVersion”. „exactVersion” wskazuje, że wersja musi być dokładnie zgodna z wersją programu FormIt. „lastVersion” wskazuje ostatnią wersję, którą można uruchomić w programie FormIt.\\

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

Można również używać rozgałęzień/oznaczeń/zatwierdzeń systemu git dla ścieżek.

Jeśli pracujesz z wersją wstępną lub beta programu FormIt i chcesz przetestować zmiany we wtyczce, która współdziała tylko z wersją wstępną:

* Wykonaj powyższe czynności, ale użyj nazwy pliku *versions\_prerelease.json*
* Jeśli zatwierdzisz w repozytorium wersję *versions\_prerelease*, usuń ją, gdy ta wersja wstępna programu FormIt zostanie opublikowana
  * W przeciwnym razie przyszłe wersje wstępne programu FormIt będą wczytywać wtyczkę z lokalizacji, która może być przestarzała lub przeznaczona dla starszej wersji.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://windows.help.formit.autodesk.com/pl/plugins/how-to-develop-plugins/advanced-development/versioning.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
