Feature #2671
closedВерсионирование формата TreeDB
100%
Description
Поскольку у Requality уже появилось большое количество пользователей, включая нашу вчерашнюю поставку, то необходимо обеспечить, чтобы Requality проекты, созданные в текущих версиях инструмента, можно было безболезненно использовать в дальнейшем.
Для этого необходимо запретить изменять формат представления TreeDB на диске, без крайней необходимости. А в случае, изменения формата, необходимо обеспечить, чтобы пользователи от этого не пострадали.
Печальным примером, как НЕ НАДО делать является переименование атрибута TestPurpose из expectedResults в _expectedResults, которое поломало существующие проекты.
Для исправления глобальной ситуации предлагаю ввести версионирования формата хранения TreeDB на диске, которое бы покрывало как физический уровень, так и уровень системных атрибутов.
Какие есть соображения на этот счет.
1. При открытии проекта проверять версию формата и если она меньше текущий, предлагать провести обновление данных. Иначе отказываться работать, если старый формат не поддерживается в новой версии.
2. При обновлении из svn/git/etc. отслеживать изменение версии и прекращать какую-либо работу с базой до обновления инструмента.
3. Ввести обязательное тестирование работоспособности с уже существующими проектами при выпуске новых версий.
4. Завести wiki страничку или файл в репозитории с описанием истории изменений в формате.
5. Возможно необходимо предоставить поддержку, чтобы внешние плагины к Requality, типа АРМ ПТ, также могли иметь свою версию формата.