Basically I agree with Stephanie, Martin, and Michael. I'm probably
a little biased when I'm advocating the "import all" approach.
I must also admit that I use a few selective imports in the
packages I maintain, exactly in the situations you guys describe,
that is, when I just need very few things from some other packages
(however these packages are base packages hence very stable).
Advantage: if I make a change in my package and don't need that
only function I import from the foo package anymore, then I
can remove that importFrom(foo, bar) line and hopefully will
also remember to remove foo from the Imports field, so I don't
depend on foo anymore.

So thanks for your more nuanced view on the "import all vs import
selectively" question.

@Leo: Try to update VariantAnnotation directly from svn. It was
updated in svn to reflect the changes in IRanges/S4Vectors but
didn't propagate because of other problems that prevent it from
propagating. Let me know if that still doesn't solve the problem.

Cheers,
H.


On 07/16/2014 12:38 PM, Michael Lawrence wrote:
I think it's a per-dependency judgement call. If you're making broad use of
a package, then it makes sense to import(), but if the dependency on some
package is minimal, it makes sense to specify symbols with importFrom(), as
the link is more tenuous and there is less risk to things moving around.




On Wed, Jul 16, 2014 at 11:59 AM, Martin Morgan <mtmor...@fhcrc.org> wrote:

On 07/16/2014 11:39 AM, Leonardo Collado Torres wrote:

Hi Tengfei and BioC-devel,

ggbio 1.13.11 fails to load due to recent changes in IRanges'
namespace as shown further below. Basically, some of IRanges previous
code now lives in S4Vectors.

On a recent thread Hervé exposed his view on specific imports versus
importing the whole package (see
https://stat.ethz.ch/pipermail/bioc-devel/2014-July/005943.html and
Stephanie's reply
https://stat.ethz.ch/pipermail/bioc-devel/2014-July/005948.html ).

I have been using specific imports because I thought it was the best
practice and that it would also help me learn more about what are the
functions/methods I'm relying on exactly. But as Hervé exposed, using
specific imports involves a lot of maintenance overhead. That is why,
in general I'll try to use general imports now.


That should really be a judgement call -- a nice tidy package might well
import a very limited number of functions from a small number of packages,
with the use of each function limited to specific and well-know locations,
and with changes to the code being very considered -- I no longer need to
import pkg::foo because I made a very specific change to the code. Indeed
for less experienced developers it might be worth focusing on this as a
kind of discipline -- write code that _is_ restricted in this way, doing a
small number of tasks well rather than trying to do everything.

For the large and comprehensive packages Herve and others work on, this
will certainly get tedious. For a more focused developer it is perhaps not
so bad.

Martin



Cheers,
Leo



  library(ggbio)

Loading required package: BiocGenerics
Loading required package: parallel

Attaching package: ‘BiocGenerics’

The following objects are masked from ‘package:parallel’:

      clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
clusterExport, clusterMap, parApply, parCapply, parLapply,
      parLapplyLB, parRapply, parSapply, parSapplyLB

The following object is masked from ‘package:stats’:

      xtabs

The following objects are masked from ‘package:base’:

      anyDuplicated, append, as.data.frame, as.vector, cbind, colnames,
do.call, duplicated, eval, evalq, Filter, Find, get,
      intersect, is.unsorted, lapply, Map, mapply, match, mget, order,
paste, pmax, pmax.int, pmin, pmin.int, Position, rank,
      rbind, Reduce, rep.int, rownames, sapply, setdiff, sort, table,
tapply, union, unique, unlist

Loading required package: ggplot2
No methods found in "IRanges" for requests: Rle, substring, ifelse,
as.factor
Error : object ‘runValue’ is not exported by 'namespace:IRanges'
Error: package or namespace load failed for ‘ggbio’

traceback()

2: stop(gettextf("package or namespace load failed for %s",
sQuote(package)),
         call. = FALSE, domain = NA)
1: library(ggbio)

sessionInfo()

R version 3.1.0 (2014-04-10)
Platform: x86_64-apple-darwin10.8.0 (64-bit)

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] parallel  stats     graphics  grDevices utils     datasets
methods   base

other attached packages:
[1] ggplot2_1.0.0       BiocGenerics_0.11.3

loaded via a namespace (and not attached):
   [1] AnnotationDbi_1.27.8     BatchJobs_1.3            BBmisc_1.7
           Biobase_2.25.0           BiocParallel_0.7.7
   [6] biomaRt_2.21.1           Biostrings_2.33.12       bitops_1.0-6
           brew_1.0-6               BSgenome_1.33.8
[11] checkmate_1.1            cluster_1.15.2           codetools_0.2-8
           colorspace_1.2-4         DBI_0.2-7
[16] dichromat_2.0-0          digest_0.6.4             fail_1.2
           foreach_1.4.2            Formula_1.1-2
[21] GenomeInfoDb_1.1.12      GenomicAlignments_1.1.21
GenomicFeatures_1.17.12  GenomicRanges_1.17.24    GGally_0.4.6
[26] grid_3.1.0               gridExtra_0.9.1          gtable_0.1.2
           Hmisc_3.14-4             IRanges_1.99.22
[31] iterators_1.0.7          lattice_0.20-29
latticeExtra_0.6-26      MASS_7.3-33              munsell_0.4.2
[36] plyr_1.8.1               proto_0.3-10
RColorBrewer_1.0-5       Rcpp_0.11.2              RCurl_1.95-4.1
[41] reshape_0.8.5            reshape2_1.4
Rsamtools_1.17.31        RSQLite_0.11.4           rtracklayer_1.25.13
[46] S4Vectors_0.1.2          scales_0.2.4             sendmailR_1.1-2
           splines_3.1.0            stats4_3.1.0
[51] stringr_0.6.2            survival_2.37-7          tools_3.1.0
           XML_3.98-1.1             XVector_0.5.7
[56] zlibbioc_1.11.1


packageVersion("ggbio")

[1] ‘1.13.11’



_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel



--
Computational Biology / Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N.
PO Box 19024 Seattle, WA 98109

Location: Arnold Building M1 B861
Phone: (206) 667-2793


_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel


        [[alternative HTML version deleted]]



_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel


--
Hervé Pagès

Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M1-B514
P.O. Box 19024
Seattle, WA 98109-1024

E-mail: hpa...@fhcrc.org
Phone:  (206) 667-5791
Fax:    (206) 667-1319

_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel

Reply via email to