Предстоящие изменения NAMESPACE, Depends, Imports для 2.14.0 (некоторые определения / использование, пожалуйста)

Если вы являетесь автором пакета, вы, надеюсь, хорошо осведомлены о предстоящих изменениях в структуре пакета, когда мы перейдем на 2.14 примерно через неделю. Одно из изменений заключается в том, что для всех пакетов потребуется NAMESPACE, и один будет сгенерирован для вас, если вы его не сделаете (R-эквивалент ваших прав Miranda в США). Так что, будучи хорошим гражданином, я пытался понять это. Вот раздел из R-exts:

1.6.5 Резюме - преобразование существующего пакета

Подводя итог, преобразование существующего пакета для использования пространства имен включает несколько простых шагов:

Идентификация общедоступные определения и поместите их в директивы экспорта. Определите определения методов в стиле S3 и напишите соответствующие объявления S3method . Определите зависимости и замените все вызовы require директивами import (и внесите соответствующие изменения в поля Depends и Imports файла DESCRIPTION). Замените функции .First.lib функциями .onLoad или директивами useDynLib.

Чтобы убедиться, что я поступаю правильно, может ли кто-нибудь дать краткое четкое определение / ответ (нарушаю ли я правило, задавая несколько небольших, но связанных вопросов вместе?). Во всех ответах следует принимать во внимание 2.14, пожалуйста:

  1. Определение NAMESPACE, используемое R
  2. Есть ли способ сгенерировать NAMESPACE перед построением и проверкой, или мы должны выполнить b / c один раз, а затем отредактировать NAMESPACE создается автоматически?
  3. Разница между «Зависит:» и «Импорт:» в файле ОПИСАНИЯ. В частности, зачем мне помещать пакет в «Depends:» вместо «Imports:» или наоборот?
  4. Похоже, «require» больше не используется, хотя в нем не говорится об этом. Это правильная интерпретация?

Спасибо!

12
задан Bryan Hanson 24 October 2011 в 18:50
поделиться