Capítol 11. Gestió de dependències i problemes de compatibilitat

Compatibilitat de la versió del RKWard

Fem tot el possible per a assegurar-nos que els connectors desenvolupats per a una versió antiga del RKWard romandran funcionals en versions posteriors del RKWard. No obstant això, el contrari no sempre és cert, ja que s'han afegit característiques noves. Com que no tots els usuaris estan executant l'última versió del RKWard, això vol dir que el vostre connector podria no funcionar per a tothom.

Quan tingueu coneixement d'aquests problemes de compatibilitat, haureu d'assegurar-vos de documentar aquest fet en el fitxer .pluginmap, utilitzant l'element <dependencies>. Les <dependencies> es poden especificar com un fill directe de l'element <document> del .pluginmap, o com a element fill de definicions de <component> individual. En el primer cas, les dependències s'apliquen a tots els connectors del mapa. En l'últim cas només per al <component> individual. També podeu barrejar dependències "global" i "specific". En aquest cas, les dependències "globals" s'afegeixen a les del component individual.

Mirem un petit exemple:

<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>
        

En aquest exemple, se sap que tots els connectors requereixen almenys la versió 0.5.0c del RKWard. Un connector, amb id="myplugin" es proporciona en dues variants alternatives. La primera versió, reduïda, s'utilitzarà per a les versions del RKWard abans de la 0.6.1. L'últim utilitza característiques que són noves en el RKWard 0.6.1, i només s'utilitzaran a partir del RKWard 0.6.1 i posteriors.

Proporcionar variants alternatives com aquesta és una manera molt fàcil d'usar per a fer ús de característiques noves, tot i que encara manté el suport per a versions anteriors del RKWard. Les versions alternatives haurien de compartir el mateix id (en cas contrari es produiran avisos), i només es poden definir dins del mateix fitxer .pluginmap.

El connector que no és compatible amb la versió en execució del RKWard, i que no ve amb una versió alternativa s'ignorarà amb un avís.

Nota

En realitat, el RKWard 0.6.1 és la primera versió per a interpretar les dependències i per a informar dels errors de dependències. Per tant, contràriament al que l'exemple pot suggerir, especificar versions anteriors en les dependències no tindrà cap efecte directe (però pot ser una bona idea per a propòsits de documentació).

De vegades fins i tot serà possible gestionar els problemes d'incompatibilitat de versions dins d'un únic fitxer .pluginmap, utilitzant l'element <dependency_check>, descrit a la secció següent.