{"action":"opened","issue":{"url":"https://api.github.com/repos/PecanProject/pecan/issues/1088","repository_url":"https://api.github.com/repos/PecanProject/pecan","labels_url":"https://api.github.com/repos/PecanProject/pecan/issues/1088/labels{/name}","comments_url":"https://api.github.com/repos/PecanProject/pecan/issues/1088/comments","events_url":"https://api.github.com/repos/PecanProject/pecan/issues/1088/events","html_url":"https://github.com/PecanProject/pecan/issues/1088","id":183280144,"number":1088,"title":"`Imports` versus `Depends` in DESCRIPTION files","user":{"login":"bpbond","id":1956468,"avatar_url":"https://avatars.githubusercontent.com/u/1956468?v=3","gravatar_id":"","url":"https://api.github.com/users/bpbond","html_url":"https://github.com/bpbond","followers_url":"https://api.github.com/users/bpbond/followers","following_url":"https://api.github.com/users/bpbond/following{/other_user}","gists_url":"https://api.github.com/users/bpbond/gists{/gist_id}","starred_url":"https://api.github.com/users/bpbond/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bpbond/subscriptions","organizations_url":"https://api.github.com/users/bpbond/orgs","repos_url":"https://api.github.com/users/bpbond/repos","events_url":"https://api.github.com/users/bpbond/events{/privacy}","received_events_url":"https://api.github.com/users/bpbond/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-10-16T17:51:01Z","updated_at":"2016-10-16T17:51:01Z","closed_at":null,"body":"The PEcAn packages all seem to use `Depends:` exclusively in their NAMESPACE files, and none uses `Imports:`; furthermore, there are many `library` calls throughout the packages' code. Finally, none of the `Depends:` specifies any version number restrictions. All this runs against CRAN suggested practice, and contributes to vulnerability w.r.t. namespace clashes.\r\n\r\nFrom http://stackoverflow.com/questions/8637993/better-explanation-of-when-to-use-imports-depends :\r\n\r\n>\"Imports\" is safer than \"Depends\" (and also makes a package using it a 'better citizen' with respect to other packages that do use \"Depends\").\r\n\r\nFrom https://cran.r-project.org/doc/manuals/r-release/R-exts.html#Package-Dependencies :\r\n\r\n>Packages whose namespace only is needed to load the package using library(pkgname) should be listed in the ‘Imports’ field and not in the ‘Depends’ field. Packages listed in imports or importFrom directives in the NAMESPACE file should almost always be in ‘Imports’ and not ‘Depends’.\r\n\r\nand \r\n\r\n>Field ‘Depends’ should nowadays be used rarely, only for packages which are intended to be put on the search path to make their facilities available to the end user (and not to the package itself): for example it makes sense that a user of package latticeExtra would want the functions of package lattice made available.\r\n\r\nand\r\n\r\n>R code in the package should call library or require only exceptionally. Such calls are never needed for packages listed in ‘Depends’ as they will already be on the search path. It used to be common practice to use require calls for packages listed in ‘Suggests’ in functions which used their functionality, but nowadays it is better to access such functionality via :: calls.\r\n"}}
{"actor":{"display_login":"bpbond"}}