Compatibilidade de versão do R

Semelhante a rkward_min_version e rkward_max_version, o elemento <dependencies> permite a especificação dos atributos R_min_version e R_max_version. No entanto, existem as seguintes diferenças:

  • Plugins que não atendem ao requisito de versão R não são ignorados atualmente ao ler um arquivo .pluginmap. O usuário ainda pode chamar o plugin e não verá nenhum aviso imediato (em versões futuras, provavelmente uma mensagem de aviso será exibida).

  • Consequentemente, também não é possível definir versões alternativas de um plugin dependendo da versão em execução do R.

  • No entanto, muitas vezes é fácil obter compatibilidade com versões anteriores, como mostrado abaixo. Se você estiver ciente de problemas de compatibilidade com o R, considere usar este método, em vez de definir uma dependência em uma versão específica do R.

Em muitos casos, é facilmente possível fornecer funcionalidade reduzida, se um determinado recurso não estiver disponível na versão em execução do R. Considere o seguinte exemplo curto de um arquivo de plugin .xml:

<dialog [...]>
        <logic>
                <dependency_check id="ris210" R_min_version="2.10.0"/>
                <connect client="compression.xz.enabled" governor="ris210"/>
        </logic>
        [...]
        <radio id="compression" label="Método abrangente">
                <option label="Nenhum" value="">
                <option label="gzip" value="gzip">
                <option id="xz" label="xz" value="xz">
        </radio>
        [...]
</dialog>
        

Neste exemplo, a opção de compressão "xz" será simplesmente desativada quando a versão do runtime do R for anterior à 2.10.0 (que não suportava compressão xz). O elemento <dependency_check> suporta os mesmos atributos que o elemento <dependencies> nos arquivos .pluginmap. Ele cria uma propriedade booleana, que é verdadeira se as dependências especificadas forem atendidas e falsa caso contrário.