Hoofdstuk 11. Omgaan met afhankelijkheden (dependencies) en compatibiliteitsproblemen.

Versie-compatibiliteit van RKWard

We doen ons best, ervoor te zorgen dat een plugin, gemaakt voor een oude versie van RKWard, ook werkt in latere versies. Echter, het omgekeerde is niet altijd het geval, omdat nieuwe eigenschappen zijn toegevoegd. Omdat niet iedereen de laatste versie van RKWard gebruikt, betekent dit dat uw plugin niet voor iedereen werkt.

Indien u weet heeft van zulke problemen met compatibiliteit, moet u dit melden in de documentatie in uw.pluginmap-bestand, met het <dependencies> (afhankelijkheden)-element. De <dependencies> kunnen ofwel worden opgegeven als .pluginmap's <document>-element, of als een child element van afzonderlijke <component>-definities. In het eerste geval zijn afhankelijkheden van toepassing op alle plugins in de map. In het andere geval alleen maar op het/de afzonderlijke <component>(en). U kunt ook top "globale" en "specifieke" afhankelijkheden mixen. In dat geval worden de "globale" afhankelijkheden toegevoegd aan die van de afzonderlijke component.

Bekijken we een klein voorbeeld:

<document ...>
        <dependencies rkward_min_version="0.5.0c" />
        <components ...>
                <component id="mijnplugin" file="gereduceerde_versie_van_mijnplugin.xml" ...>
                        <dependencies rkward_max_version="0.6.0z" />
                </component>
                <component id="mijnplugin" file="fantasie_version_van_mijnplugin.xml" ...>
                        <dependencies rkward_min_version="0.6.1" />
                </component>
                ...
x        </components ...>
</document>
        

In dit voorbeeld werken alle plugins alleen in versies 0.5.0c of later van RKWard. Een plugin, met id="mijnplugin" wordt beschikbaar gesteld in twee alternatieve varianten. De eerste, uitgeklede, versie wordt gebruikt in versies van RKWard eerder dan 0.6.1. De tweede gebruikt eigenschappen die nieuw zijn in versies 0.6.1 van RKWard.

Het beschikbaar maken van alternatieve varianten als deze is een erg gebruiksvriendelijke manier van het gebruik maken van nieuwe eigenschappen, terwijl toch de eerdere versies van RKWard bruikbaar blijven. Alternatieve versies moeten de zelfde id delen (anders komen er waarschuwingen), en kunnen alleen in hetzelfde .pluginmap-bestand worden gedefinieerd.

Plugins die niet compatibel zijn met (niet werken in) de gebruikte versie van RKWard, en die geen alternatieve versie bevatten, worden genegeerd met een waarschuwing.

Opmerking

In werkelijkheid is RKWard 0.6.1 de eerste versie die sowieso afhankelijkheden herkent - en die meldt met foutmeldingen - . Dus, in tegenstelling tot wat het voorbeeld misschien suggereert, zal het opgeven van eerdere versies in de afhankelijkheden niet direct effect hebben (maar toch wel een goed idee zijn voor documentatie-doeleinden).

Soms is het zelfs mogelijk om met incompatibiliteitsproblemen van versies om te gaan in een enkel .pluginmap-bestand met het <dependency_check>-element, dat in de volgende sectie wordt beschreven.