Kompatibilitet med R-version

I likhet med rkward_min_version och rkward_max_version, tillåter elementet <dependencies> att egenskaperna R_min_version och R_max_version anges. Dock finns följande skillnader:

  • Insticksprogram som inte uppfyller kraven på R-version hoppas för närvarande inte över när en .pluginmap-fil läses. Användaren kan ändå anropa insticksprogrammet, och ser inte någon omedelbar varning (i framtida versioner kommer troligen ett varningsmeddelande visas).

  • Som en konsekvens är det alltså inte möjligt att definiera alternativa versioner av ett insticksprogram beroende på vilken version av R som kör.

  • Dock är det oftast enkelt att uppnå bakåtkompatibilitet som visas nedan. Om du är medveten om kompatibilitetsproblem med R, fundera på att använda den här metoden istället för att definiera ett beroende av en viss version av R.

I många fall är det lätt möjligt att tillhandahålla reducerad funktionalitet, om en viss funktion inte är tillgänglig i versionen av R som kör. Betrakta följande korta exempel på en .xml-fil för ett insticksprogram:

<dialog [...]>
        <logic>
                <dependency_check id="ris210" R_min_version="2.10.0"/>
                <connect client="compression.xz.enabled" governor="ris210"/>
        </logic>
        [...]
        <radio id="compression" label="Compression method">
                <option label="None" value="">
                <option label="gzip" value="gzip">
                <option id="xz" label="xz" value="xz">
        </radio>
        [...]
</dialog>
        

I exemplet inaktiveras helt enkelt komprimeringsalternativet "xz" när den körbara R-versionen är äldre än 2.10.0 (som inte stödde komprimering med xz). Elementet <dependency_check> stöder samma egenskaper som elementet <dependencies> i .pluginmap-filer. Det skapar en Boolesk egenskap, som är sann om de angivna beroendena är uppfyllda, och annars falsk.