[Bioc-devel] package RBGL requires CRAN dependency on devel branch

Kasper Daniel Hansen k@@perd@n|e|h@n@en @end|ng |rom gm@||@com
Mon Mar 25 15:57:28 CET 2019


There are no issues with depending on CRAN packages.

But I would advise caution. On one hand it is great that boost gets updated
regularly. On the other hand, it could lead to incompatibilities with RBGL
and then you have to update that package rapidly. Also - and this is
something we could consider addressing - the CRAN imports of Bioc are not
locked down. By which I mean, you release RBGL in Bioconductor X. After
release (or perhaps even after next Bioc release) BH is updated in a
non-backwards compatible way and now the old code is hosed. Having said
that, so far we have been ignoring it (I think) and the same issue arises
with Rcpp.

Do you have any idea how often Boost breaks compatibility?  I would
strongly advise to download the last couple of BH releases and test with
RBGL. While kind of irrelevant in some sense, it will give you an idea of
how fast Boost / BH evolves.

On Mon, Mar 25, 2019 at 8:03 AM Martin Morgan <mtmorgan.bioc using gmail.com>
wrote:

> ...also Bioconductor knows all about CRAN -- see the repositories returned
> by
>
> > BiocManager::repositories()
>                                                BioCsoft
>            "https://bioconductor.org/packages/3.9/bioc"
>                                                 BioCann
> "https://bioconductor.org/packages/3.9/data/annotation"
>                                                 BioCexp
> "https://bioconductor.org/packages/3.9/data/experiment"
>                                           BioCworkflows
>       "https://bioconductor.org/packages/3.9/workflows"
>                                                    CRAN
>                              "https://cran.rstudio.com"
> >
>
> On 3/25/19, 7:42 AM, "Martin Morgan" <mtmorgan.bioc using gmail.com> wrote:
>
>     I think the usual incantation in configure files is ${R_HOME}/bin/R
> ... R_HOME is the path to R set by the command that starts to build or
> install the package, whereas Rscript is found on the search path.
>
>     Martin
>
>     On 3/25/19, 7:33 AM, "Bioc-devel on behalf of Vincent Carey" <
> bioc-devel-bounces using r-project.org on behalf of stvjc using channing.harvard.edu>
> wrote:
>
>         The error on linux for 3.9:
>
>
> ##############################################################################
>
> ##############################################################################
>         ###
>         ### Running command:
>         ###
>         ###   /home/biocbuild/bbs-3.9-bioc/R/bin/R CMD INSTALL RBGL
>         ###
>
> ##############################################################################
>
> ##############################################################################
>
>
>         * installing to library ‘/home/biocbuild/bbs-3.9-bioc/R/library’
>         * installing *source* package ‘RBGL’ ...
>         ** using staged installation
>         checking R package BH ... no
>         configure: error: R package BH not found.
>         ERROR: configuration failed for package ‘RBGL’
>         * removing ‘/home/biocbuild/bbs-3.9-bioc/R/library/RBGL’
>         * restoring previous ‘/home/biocbuild/bbs-3.9-bioc/R/library/RBGL’
>
>         Note that BiocParallel also uses BH and succeeds
>
>         configure: creating ./config.status
>         config.status: creating src/Makevars
>         ** libs
>         g++ -std=gnu++11 -I"/home/biocbuild/bbs-3.9-bioc/R/include"
> -DNDEBUG
>         -I"/home/biocbuild/bbs-3.9-bioc/R/library/BH/include"
>         -I/usr/local/include  -fpic  -g -O2  -Wall -c ipcmutex.cpp -o
>         ipcmutex.o
>         In file included from
>
> /home/biocbuild/bbs-3.9-bioc/R/library/BH/include/boost/random/detail/integer_log2.hpp:19:0,
>                          from
>
> /home/biocbuild/bbs-3.9-bioc/R/library/BH/include/boost/random/detail/large_arithmetic.hpp:19,
>                          from
>
> /home/biocbuild/bbs-3.9-bioc/R/library/BH/include/boost/random/detail/const_mod.hpp:23,
>                          from
>
> /home/biocbuild/bbs-3.9-bioc/R/library/BH/include/boost/random/detail/seed_impl.hpp:26,
>                          from
>
> /home/biocbuild/bbs-3.9-bioc/R/library/BH/include/boost/random/mersenne_twister.hpp:30,
>                          from
>
> /home/biocbuild/bbs-3.9-bioc/R/library/BH/include/boost/uuid/random_generator.hpp:17,
>
>         So could it be an issue with the configure script?
>
>
>         On Mon, Mar 25, 2019 at 7:22 AM Samuela Pollack <
> spollack using jimmy.harvard.edu>
>         wrote:
>
>         > Dear Bioconductor,
>         >
>         > The devel version of package RBGL is flunking build.
>         >
>         > This package has been modified to include header files in the
> CRAN
>         > package 'BH' instead of using a local tarball of the header
> files. We
>         > consider this an improvement because the 'BH' maintainers update
> their
>         > package every time a new version of boost is released, but
> rebuilding
>         > the included tarball is unreliable.
>         >
>         > Is it possible to request inclusion of a CRAN package dependency
> in a
>         > Bioconductor package? If not, how would Bioconductor recommend
> we handle
>         > this?
>         >
>         > (Full disclosure: the BH package has all the header files for
> all of
>         > boost. This is a lot more disk space then we need, because we
> only need
>         > the BGL.)
>         >
>         > thanks,
>         >
>         > - Sam
>         >
>         >
>         >
>         > On 3/22/19 7:28 AM, Morgan, Martin wrote:
>         > >          External Email - Use Caution
>         > >
>         > > Thanks for the explanation and exemplary detective work. Will
> you push
>         > these changes to the release and devel branches of RBGL? I've
> given you
>         > permissions... Martin
>         > >
>         > > On 3/22/19, 5:15 AM, "Samuela Pollack" <
> spollack using jimmy.harvard.edu>
>         > wrote:
>         > >
>         > >      We have a temporary fix which we believe will alleviate
> the
>         > difficulty.
>         > >
>         > >      The only routine in RBGL that does not compile under the
> LLVM-9.0
>         > system
>         > >      is the routine that implements betweenness connectivity
> clustering.
>         > This
>         > >      seems to be a rarely-used routine, so we have temporarily
> removed it
>         > >      from RBGL and put in a message explaining how users may
> replace it
>         > easily.
>         > >
>         > >      I have contacted Professor Jeremy Siek at in Bloomington
> to discuss
>         > how
>         > >      best to proceed. It is possible this will have to be
> fixed in BGL,
>         > >      probably not in time for boost 1.70.
>         > >
>         > >      For clarity: the incompatibility is not in clang. The
>         > incompatibility is
>         > >      in the llvm c++ standard library. Mac users who build
> with clang
>         > will be
>         > >      fine, as long as they don't link in the llvm C++ stdlib,
> which most
>         > >      wouldn't think to do and Apple does not encourage.
>         > >
>         > >      We hope this will be sufficient for now.
>         > >
>         > >      - Sam
>         > >
>         > >
>         > >      On 3/22/19 4:18 AM, Morgan, Martin wrote:
>         > >      >          External Email - Use Caution
>         > >      >
>         > >      > What's the status for RBGL?
>         > >      >
>         > >      > Thanks, Martin
>         > >      >
>         > >      > On 3/22/19, 3:57 AM, "Prof Brian Ripley" <
> ripley using stats.ox.ac.uk>
>         > wrote:
>         > >      >
>         > >      >      clang 8.0.0 is now released, and these fail there
> too (and
>         > break about
>         > >      >      50 CRAN packages which depend on them).
>         > >      >
>         > >      >      Reminder: this is with clang's native libc++, as
> documented
>         > at
>         > >      >
>         >
> https://www.stats.ox.ac.uk/pub/bdr/Rconfig/r-devel-linux-x86_64-fedora-clang
>         > >      >
>         > >      >      We really need fixes in both 3.8 and 3.9.
>         > >      >
>         > >      >      BDR
>         > >      >
>         > >      >      On 28/02/2019 18:52, Prof Brian Ripley wrote:
>         > >      >      > These packages fail to install with clang
> 8.0.0rc3, which
>         > is supposed to
>         > >      >      > be near-final (it is overdue for release).
> (AFAIR they
>         > did install with
>         > >      >      > rc1.)  In both cases the problems are with Boost.
>         > >      >      >
>         > >      >      > RBGL 1.95.1
>         > >      >      >
>         > >      >      > In file included from bbc.cpp:1:
>         > >      >      > In file included from ./RBGL.hpp:7:
>         > >      >      > In file included from
>         > /usr/local/clang8/bin/../include/c++/v1/iostream:38:
>         > >      >      > In file included from
>         > /usr/local/clang8/bin/../include/c++/v1/ios:216:
>         > >      >      > In file included from
>         > /usr/local/clang8/bin/../include/c++/v1/__locale:15:
>         > >      >      > In file included from
>         > /usr/local/clang8/bin/../include/c++/v1/string:505:
>         > >      >      > In file included from
>         > >      >      >
> /usr/local/clang8/bin/../include/c++/v1/string_view:176:
>         > >      >      > In file included from
>         > /usr/local/clang8/bin/../include/c++/v1/__string:57:
>         > >      >      >
> /usr/local/clang8/bin/../include/c++/v1/algorithm:2494:5:
>         > error:
>         > >      >      > static_assert
>         > >      >      >        failed due to requirement
>         > >      >      >
>         > >      >      >
>         >
> '__is_forward_iterator<boost::detail::undirected_edge_iter<std::__1::__list_iterator<boost::list_edge<unsigned
>         > >      >      >
>         > >      >      >        long,
> boost::property<boost::edge_weight_t, double,
>         > >      >      >        boost::property<boost::edge_centrality_t,
> double,
>         > >      >      > boost::no_property> > >,
>         > >      >      >        void *>,
>         > boost::detail::edge_desc_impl<boost::undirected_tag,
>         > >      >      > unsigned
>         > >      >      >        long>, long> >::value' "std::max_element
> requires a
>         > ForwardIterator"
>         > >      >      >
>         > static_assert(__is_forward_iterator<_ForwardIterator>::value,
>         > >      >      >      ^
>         >  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>         > >      >      >
>         > rbgl_trimmed_boost_1_61_0/boost/graph/bc_clustering.hpp:132:26:
> note: in
>         > >      >      >        instantiation of function template
> specialization
>         > >      >      >
>         > >      >      >
>         >
> 'std::__1::max_element<boost::detail::undirected_edge_iter<std::__1::__list_iterator<boost::list_edge<unsigned
>         > >      >      >
>         > >      >      >        long,
> boost::property<boost::edge_weight_t, double,
>         > >      >      >        boost::property<boost::edge_centrality_t,
> double,
>         > >      >      > boost::no_property> > >,
>         > >      >      >        void *>,
>         > boost::detail::edge_desc_impl<boost::undirected_tag,
>         > >      >      > unsigned
>         > >      >      >        long>, long>,
>         > >      >      >
>         > >      >      >
>         >
> boost::indirect_cmp<boost::adj_list_edge_property_map<boost::undirected_tag,
>         > >      >      >
>         > >      >      >        double, double &, unsigned long,
>         > >      >      > boost::property<boost::edge_weight_t,
>         > >      >      >        double,
> boost::property<boost::edge_centrality_t,
>         > double,
>         > >      >      >        boost::no_property> >,
> boost::edge_centrality_t>,
>         > >      >      > std::__1::less<double> >
>         > >      >      >        >' requested here
>         > >      >      >      edge_descriptor e =
> *max_element(edges_iters.first,
>         > >      >      > edges_iters.seco...
>         > >      >      >
>         > rbgl_trimmed_boost_1_61_0/boost/graph/bc_clustering.hpp:146:3:
> note: in
>         > >      >      >        instantiation of function template
> specialization
>         > >      >      >
>         > >      >      >
>         >
> 'boost::betweenness_centrality_clustering<boost::adjacency_list<boost::vecS,
>         > >      >      >
>         > >      >      >        boost::vecS, boost::undirectedS,
>         > >      >      > boost::property<boost::vertex_index_t,
>         > >      >      >        int,
> boost::property<boost::vertex_centrality_t,
>         > double,
>         > >      >      >        boost::no_property> >,
>         > boost::property<boost::edge_weight_t, double,
>         > >      >      >        boost::property<boost::edge_centrality_t,
> double,
>         > >      >      > boost::no_property> >,
>         > >      >      >        boost::no_property, boost::listS>,
>         > clustering_threshold,
>         > >      >      >
>         > boost::adj_list_edge_property_map<boost::undirected_tag, double,
>         > >      >      > double &,
>         > >      >      >        unsigned long,
>         > boost::property<boost::edge_weight_t, double,
>         > >      >      >        boost::property<boost::edge_centrality_t,
> double,
>         > >      >      > boost::no_property> >,
>         > >      >      >        boost::edge_centrality_t>,
>         > >      >      >
>         > >      >      >
>         >
> boost::vec_adj_list_vertex_id_map<boost::property<boost::vertex_index_t,
>         > >      >      >        int,
> boost::property<boost::vertex_centrality_t,
>         > double,
>         > >      >      >        boost::no_property> >, unsigned long> >'
> requested
>         > here
>         > >      >      >    betweenness_centrality_clustering(g, done,
>         > edge_centrality,
>         > >      >      >    ^
>         > >      >      > bbc.cpp:122:3: note: in instantiation of
> function template
>         > specialization
>         > >      >      >
>         > >      >      >
>         >
> 'boost::betweenness_centrality_clustering<boost::adjacency_list<boost::vecS,
>         > >      >      >
>         > >      >      >        boost::vecS, boost::undirectedS,
>         > >      >      > boost::property<boost::vertex_index_t,
>         > >      >      >        int,
> boost::property<boost::vertex_centrality_t,
>         > double,
>         > >      >      >        boost::no_property> >,
>         > boost::property<boost::edge_weight_t, double,
>         > >      >      >        boost::property<boost::edge_centrality_t,
> double,
>         > >      >      > boost::no_property> >,
>         > >      >      >        boost::no_property, boost::listS>,
>         > clustering_threshold,
>         > >      >      >
>         > boost::adj_list_edge_property_map<boost::undirected_tag, double,
>         > >      >      > double &,
>         > >      >      >        unsigned long,
>         > boost::property<boost::edge_weight_t, double,
>         > >      >      >        boost::property<boost::edge_centrality_t,
> double,
>         > >      >      > boost::no_property> >,
>         > >      >      >        boost::edge_centrality_t> >' requested
> here
>         > >      >      >
> betweenness_centrality_clustering(g,
>         > >      >      >                  ^
>         > >      >      >
>         > >      >      > mzR 2.17.1
>         > >      >      >
>         > >      >      > In file included from
>         > pwiz/data/identdata/Serializer_pepXML.cpp:25:
>         > >      >      > In file included from
>         > pwiz/data/identdata/Serializer_pepXML.hpp:27:
>         > >      >      > In file included from
> pwiz/data/identdata/IdentData.hpp:29:
>         > >      >      > In file included from
> ./pwiz/utility/misc/Exception.hpp:29:
>         > >      >      > In file included from
>         > /usr/local/clang8/bin/../include/c++/v1/string:505:
>         > >      >      > In file included from
>         > >      >      >
> /usr/local/clang8/bin/../include/c++/v1/string_view:176:
>         > >      >      > In file included from
>         > /usr/local/clang8/bin/../include/c++/v1/__string:57:
>         > >      >      >
> /usr/local/clang8/bin/../include/c++/v1/algorithm:2428:5:
>         > error:
>         > >      >      > static_assert
>         > >      >      >        failed due to requirement
>         > >      >      >
>         > >      >      >
>         >
> '__is_forward_iterator<boost::iterators::transform_iterator<pwiz::identdata::(anonymous
>         > >      >      >
>         > >      >      >        namespace)::EnzymePtr_specificity,
>         > std::__1::__wrap_iter<const
>         > >      >      >
> boost::shared_ptr<pwiz::identdata::Enzyme> *>,
>         > >      >      >        boost::iterators::use_default,
>         > boost::iterators::use_default>
>         > >      >      >  >::value'
>         > >      >      >        "std::min_element requires a
> ForwardIterator"
>         > >      >      >
>         > static_assert(__is_forward_iterator<_ForwardIterator>::value,
>         > >      >      >      ^
>         >  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>         > >      >      >
> /usr/local/clang8/bin/../include/c++/v1/algorithm:2445:19:
>         > note: in
>         > >      >      >        instantiation of function template
> specialization
>         > >      >      >
>         > >      >      >
>         >
> 'std::__1::min_element<boost::iterators::transform_iterator<pwiz::identdata::(anonymous
>         > >      >      >
>         > >      >      >        namespace)::EnzymePtr_specificity,
>         > std::__1::__wrap_iter<const
>         > >      >      >
> boost::shared_ptr<pwiz::identdata::Enzyme> *>,
>         > >      >      >        boost::iterators::use_default,
>         > boost::iterators::use_default>,
>         > >      >      >        std::__1::__less<int, int> >' requested
> here
>         > >      >      >      return _VSTD::min_element(__first, __last,
>         > >      >      >                    ^
>         > >      >      >
> ./boost/boost/range/algorithm/min_element.hpp:44:17: note:
>         > in
>         > >      >      > instantiation of
>         > >      >      >        function template specialization
>         > >      >      >
>         > >      >      >
>         >
> 'std::__1::min_element<boost::iterators::transform_iterator<pwiz::identdata::(anonymous
>         > >      >      >
>         > >      >      >        namespace)::EnzymePtr_specificity,
>         > std::__1::__wrap_iter<const
>         > >      >      >
> boost::shared_ptr<pwiz::identdata::Enzyme> *>,
>         > >      >      >        boost::iterators::use_default,
>         > boost::iterators::use_default> >'
>         > >      >      > requested
>         > >      >      >        here
>         > >      >      >      return std::min_element(boost::begin(rng),
>         > boost::end(rng));
>         > >      >      >
>         > >      >      >
>         > >      >      >
>         > >      >      >
> pwiz/data/identdata/Serializer_pepXML.cpp:418:41: note: in
>         > instantiation of
>         > >      >      >        function template specialization
>         > >      >      >
>         > >      >      >
>         >
> 'boost::range::min_element<boost::range_detail::transformed_range<pwiz::identdata::(anonymous
>         > >      >      >
>         > >      >      >        namespace)::EnzymePtr_specificity, const
>         > >      >      >
>         > std::__1::vector<boost::shared_ptr<pwiz::identdata::Enzyme>,
>         > >      >      >
>         > std::__1::allocator<boost::shared_ptr<pwiz::identdata::Enzyme> >
>         > >      >      >  > > >'
>         > >      >      >        requested here
>         > >      >      >      int minSpecificity =
>         > *boost::range::min_element(sip.enzymes.enzymes
>         > >      >      > ...
>         > >      >      >                                          ^
>         > >      >      > In file included from
>         > pwiz/data/identdata/Serializer_pepXML.cpp:25:
>         > >      >      > In file included from
>         > pwiz/data/identdata/Serializer_pepXML.hpp:27:
>         > >      >      > In file included from
> pwiz/data/identdata/IdentData.hpp:29:
>         > >      >      > In file included from
> ./pwiz/utility/misc/Exception.hpp:29:
>         > >      >      > In file included from
>         > /usr/local/clang8/bin/../include/c++/v1/string:505:
>         > >      >      > In file included from
>         > >      >      >
> /usr/local/clang8/bin/../include/c++/v1/string_view:176:
>         > >      >      > In file included from
>         > /usr/local/clang8/bin/../include/c++/v1/__string:57:
>         > >      >      >
> /usr/local/clang8/bin/../include/c++/v1/algorithm:2494:5:
>         > error:
>         > >      >      > static_assert
>         > >      >      >        failed due to requirement
>         > >      >      >
>         > >      >      >
>         >
> '__is_forward_iterator<boost::iterators::transform_iterator<pwiz::identdata::(anonymous
>         > >      >      >
>         > >      >      >        namespace)::EnzymePtr_missedCleavages,
>         > std::__1::__wrap_iter<const
>         > >      >      >
> boost::shared_ptr<pwiz::identdata::Enzyme> *>,
>         > >      >      >        boost::iterators::use_default,
>         > boost::iterators::use_default>
>         > >      >      >  >::value'
>         > >      >      >        "std::max_element requires a
> ForwardIterator"
>         > >      >      >
>         > static_assert(__is_forward_iterator<_ForwardIterator>::value,
>         > >      >      >      ^
>         >  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>         > >      >      >
> /usr/local/clang8/bin/../include/c++/v1/algorithm:2512:19:
>         > note: in
>         > >      >      >        instantiation of function template
> specialization
>         > >      >      >
>         > >      >      >
>         >
> 'std::__1::max_element<boost::iterators::transform_iterator<pwiz::identdata::(anonymous
>         > >      >      >
>         > >      >      >        namespace)::EnzymePtr_missedCleavages,
>         > std::__1::__wrap_iter<const
>         > >      >      >
> boost::shared_ptr<pwiz::identdata::Enzyme> *>,
>         > >      >      >        boost::iterators::use_default,
>         > boost::iterators::use_default>,
>         > >      >      >        std::__1::__less<int, int> >' requested
> here
>         > >      >      >      return _VSTD::max_element(__first, __last,
>         > >      >      >                    ^
>         > >      >      >
> ./boost/boost/range/algorithm/max_element.hpp:44:17: note:
>         > in
>         > >      >      > instantiation of
>         > >      >      >        function template specialization
>         > >      >      >
>         > >      >      >
>         >
> 'std::__1::max_element<boost::iterators::transform_iterator<pwiz::identdata::(anonymous
>         > >      >      >
>         > >      >      >        namespace)::EnzymePtr_missedCleavages,
>         > std::__1::__wrap_iter<const
>         > >      >      >
> boost::shared_ptr<pwiz::identdata::Enzyme> *>,
>         > >      >      >        boost::iterators::use_default,
>         > boost::iterators::use_default> >'
>         > >      >      > requested
>         > >      >      >        here
>         > >      >      >      return std::max_element(boost::begin(rng),
>         > boost::end(rng));
>         > >      >      > ...
>         > >      >      >
>         > >      >
>         > >      >
>         > >      >      --
>         > >      >      Brian D. Ripley,
> ripley using stats.ox.ac.uk
>         > >      >      Emeritus Professor of Applied Statistics,
> University of
>         > Oxford
>         > >      >
>         > >      >
>         > >      >
>         > >      >
>         > >      > This email message may contain legally privileged and/or
>         > confidential information.  If you are not the intended
> recipient(s), or the
>         > employee or agent responsible for the delivery of this message
> to the
>         > intended recipient(s), you are hereby notified that any
> disclosure,
>         > copying, distribution, or use of this email message is
> prohibited.  If you
>         > have received this message in error, please notify the sender
> immediately
>         > by e-mail and delete this email message from your computer.
> Thank you.
>         > >
>         > >
>         > >
>         > >
>         > > This email message may contain legally privileged and/or
> confidential
>         > information.  If you are not the intended recipient(s), or the
> employee or
>         > agent responsible for the delivery of this message to the
> intended
>         > recipient(s), you are hereby notified that any disclosure,
> copying,
>         > distribution, or use of this email message is prohibited.  If
> you have
>         > received this message in error, please notify the sender
> immediately by
>         > e-mail and delete this email message from your computer. Thank
> you.
>         >
>
>         --
>         The information in this e-mail is intended only for the
> ...{{dropped:18}}
>
>         _______________________________________________
>         Bioc-devel using r-project.org mailing list
>         https://stat.ethz.ch/mailman/listinfo/bioc-devel
>
>
> _______________________________________________
> Bioc-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>

	[[alternative HTML version deleted]]



More information about the Bioc-devel mailing list