Зміст
Ми намагаємося робити так, щоб додатки, які було створено для старих версій RKWard, могли працювати і у новіших версіях RKWard. Втім, зі зворотною сумісністю все не так добре, адже у програмі весь час з’являються нові можливості. Оскільки не усі користувачі працюють із найсвіжішою версією RKWard, ваш додаток може виявитися непрацездатним у деяких системах.
Якщо вам відомі такі проблеми сумісності, вам слід документувати їх у вашому файлі .pluginmap
за допомогою елемента <dependencies>. Елемент <dependencies> можна вказати або як безпосередній дочірній елемент елемента .pluginmap
<document>, або як дочірній елемент окремих визначень <component>. У першому випадку залежності буде застосовано до усіх додатків з карти. У другому випадку — лише до окремого <component>. Ви також можете визначити суміш верхніх «загальних» і «специфічних» залежностей. У цьому випадку загальні залежності буде додано до залежностей індивідуальних компонентів.
Розгляньмо невеличкий приклад:
<document ...> <dependencies rkward_min_version="0.5.0c" /> <components ...> <component id="myplugin" file="reduced_version_of_myplugin.xml" ...> <dependencies rkward_max_version="0.6.0z" /> </component> <component id="myplugin" file="fancy_version_of_myplugin.xml" ...> <dependencies rkward_min_version="0.6.1" /> </component> ... x </components ...> </document>
У цьому прикладі від усіх додатків вимагається, щоб було встановлено принаймні версію 0.5.0c RKWard. Один з додатків, з id="myplugin"
, постачається у двох альтернативних варіантах. Перший, спрощений, може бути використано для версій RKWard, які передували версії 0.6.1. Інший же використовує можливості, які з’явилися у RKWard, починаючи з версії 0.6.1, отже ним можна буде скористатися лише у RKWard 0.6.1 та наступних версіях.
Надання таких альтернативних варіантів, як у наведеному прикладі, є дружнім до користувача способом скористатися новими можливостями, зберігши можливість користування у попередніх версіях RKWard. У альтернативних версій має бути однакове значення id
(якщо вказати різні, програма показуватиме попередження). Крім того, їх можна визначити лише у межах одного файла .pluginmap
.
Додаток, який є несумісним із запущеною версією RKWard і який не має альтернативних версій, буде проігноровано із виведенням відповідного попередження.
Примітка
Насправді, RKWard 0.6.1 був першою версією, у якій можна було слідкувати за залежностями і повідомляти про проблеми із залежностями взагалі. Отже, на відміну від того, про що можна було б припустити з нашого прикладу, визначення будь-яких версій до 0.6.1 у описі залежностей не матиме ніякого безпосереднього впливу на працездатність додатка (втім, може бути корисним з міркувань документування).
Іноді навіть можна обробляти проблеми з несумісністю версій всередині єдиного файла .pluginmap
за допомогою елемента <dependency_check>, описаного у наступному розділі.