Bioconductor / Contributions

Contribute Packages to Bioconductor
135 stars 33 forks source link

geneXtendeR #64

Closed Bohdan-Khomtchouk closed 8 years ago

Bohdan-Khomtchouk commented 8 years ago

Update the following URL to point to the GitHub repository of the package you wish to submit to Bioconductor

Confirm the following by editing each check box to '[x]'

I am familiar with the essential aspects of Bioconductor software management, including:

For help with submitting your package, please subscribe and post questions to the bioc-devel mailing list.

bioc-issue-bot commented 8 years ago

Hi @Bohdan-Khomtchouk

Thanks for submitting your package. We are taking a quick look at it and you will hear back from us soon.

The DESCRIPTION file for this package is:

Package: geneXtendeR
Type: Package
Version: 0.99.2
Title: Optimal Gene Extensions From Histone Modification ChIP-seq Data
Description: geneXtendeR is designed to optimally annotate a histone modification ChIP-seq peak input file with functionally important genomic features (e.g., genes associated with peaks) based on optimization calculations.  geneXtendeR optimally extends the boundaries of every gene in a
    genome by some genomic distance (in DNA base pairs) for the purpose of flexibly
    incorporating cis-regulatory elements (CREs), such as enhancers and promoters,
    as well as downstream elements that are important to the function of the gene
    relative to an epigenetic histone modification ChIP-seq dataset. geneXtender
    computes optimal gene extensions tailored to the broadness of the specific
    epigenetic mark (e.g., H3K9me1, H3K27me3), as determined by a user-supplied
    ChIP-seq peak input file. As such, geneXtender maximizes the signal-to-noise
    ratio of locating genes closest to and directly under peaks. By performing a
    computational expansion of this nature, ChIP-seq reads that would initially not
    map strictly to a specific gene can now be optimally mapped to the regulatory
    regions of the gene, thereby implicating the gene as a potential candidate, and
    thereby making the ChIP-seq experiment more successful. Such an approach becomes
    particularly important when working with epigenetic histone modifications that
    have inherently broad peaks.
Authors@R: person("Bohdan", "Khomtchouk", email = "khomtchoukmed@gmail.com", role = c("aut", "cre"))
Maintainer: Bohdan Khomtchouk <khomtchoukmed@gmail.com>
URL: https://github.com/Bohdan-Khomtchouk/geneXtendeR
BugReports: https://github.com/Bohdan-Khomtchouk/geneXtendeR/issues
Depends:
    rtracklayer,
    R (>= 3.3)
Imports:
    data.table,
    dplyr
SystemRequirements: bedtools
Suggests: knitr, rmarkdown
VignetteBuilder: knitr
License: GPL (>= 3)
LazyData: TRUE
biocViews: Genetics, Annotation, GenomeAnnotation, DifferentialPeakCalling, Coverage, PeakDetection
RoxygenNote: 5.0.1
mtmorgan commented 8 years ago

@hpages will review the package, but while moderating I noticed that your package creates variables in the global name space and writes files to the user name spaces without asking for file paths. Both of these practices should be avoided -- return results as a named list or other data structure; allow the user to specify a file path with default that does minimal damage to the inattentive user's work space, e.g., tempdir().

bioc-issue-bot commented 8 years ago

Dear Package contributor,

This is the automated single package builder at bioconductor.org.

Your package has been built on Linux, Mac, and Windows.

On one or more platforms, the build results were: "skipped, WARNINGS, ERROR". This may mean there is a problem with the package that you need to fix. Or it may mean that there is a problem with the build system itself.

Please see the following build report for more details:

http://bioconductor.org/spb_reports/geneXtendeR_buildreport_20160719092645.html

Bohdan-Khomtchouk commented 8 years ago

@mtmorgan geneXtendeR users are prompted early on to set their working directory to their ChIP-seq peaks file (a large 3-column .txt file). Thus, all ensuing files that are generated by the geneXtendeR package are written locally to this wd.

Also, the global variables are used throughout the entire analysis (i.e., in various functions), which IMHO is better software design than copy-pasting blocks of code repeatedly throughout the different "function".r files. This do-not-repeat-yourself principle conveniently creates global variables in the namespace and makes for greater readability of the src files, including convenient visualization of global variables in the R Studio IDE (under the Environment tab). I picked this advice of adding a call to globalVariables() at the top of R package files from @hadley (Hadley Wickham): http://stackoverflow.com/a/12429344/3878253. In general though, I think I would have to agree with the sentiment that "global variables are evil" (source: http://stackoverflow.com/questions/12598242/global-variables-in-packages-in-r). But for now, I picked what I judged to be the lesser of two evils, and if @hadley gets away with it, I think it's fine (and he explicitly notes in his comments that he thinks it's fine, too). But I am, of course, open to further suggestions.

mtmorgan commented 8 years ago

Remember that people will use your package as part of more comprehensive work flows, so (a) you can't rely on a strictly linear walk through your code and (b) it pays to play by the same rules as everyone else, so that it is easy for your user to adapt to your package.

A different approach would define a package-local cache and accessors. At least this way you are limiting damage to overwriting your own results rather than arbitrary parts of the user work space. Record the file path there, too, and fail if it has not been set.

.cache = new.env(parent=emptyenv())

getResult = function(key) 
    ## is 'what' valid / defined in cache? if so...
    .cache[[key]]

.setResult = function(key, value)
    .cache[[key]] = value
Bohdan-Khomtchouk commented 8 years ago

@mtmorgan These are excellent points you make. Even though globalVariables() is a seemingly grey area in the R package community (at least on CRAN), I completely agree with your points (a) and (b).

bioc-issue-bot commented 8 years ago

We only start builds when the Version field in the DESCRIPTION file is incremented. For example, by changing

Version: 0.99.0

to

Version 0.99.1

If you did not intend to start a build, you don't need to do anything. If you did want to start a build, increment the Version: field and try again.

bioc-issue-bot commented 8 years ago

Received a valid push; starting a build. Commits are:

2720492 v0.99.3 release

bioc-issue-bot commented 8 years ago

Dear Package contributor,

This is the automated single package builder at bioconductor.org.

Your package has been built on Linux, Mac, and Windows.

On one or more platforms, the build results were: "skipped, ERROR". This may mean there is a problem with the package that you need to fix. Or it may mean that there is a problem with the build system itself.

Please see the following build report for more details:

http://bioconductor.org/spb_reports/geneXtendeR_buildreport_20160719214726.html

bioc-issue-bot commented 8 years ago

Received a valid push; starting a build. Commits are:

75333c8 eliminating WARNINGs and NOTEs

bioc-issue-bot commented 8 years ago

Dear Package contributor,

This is the automated single package builder at bioconductor.org.

Your package has been built on Linux, Mac, and Windows.

On one or more platforms, the build results were: "skipped, ERROR". This may mean there is a problem with the package that you need to fix. Or it may mean that there is a problem with the build system itself.

Please see the following build report for more details:

http://bioconductor.org/spb_reports/geneXtendeR_buildreport_20160720020942.html

hpages commented 8 years ago

Hi Bohdan,

Thanks for submitting geneXtendeR thru the new tracker.

Unfortunately geneXtendeR is missing a fundamental requirement of any Bioconductor package which is that the code in the vignette and examples must be evaluated by R CMD build and R CMD check (respectively).

More precisely:

1) Because you're using \dontrun everywhere, none of your man pages contain "running examples" i.e. examples that the user can run and that are run by R CMD check.

2) Because you're using eval=FALSE everywhere, none of the code chunks in your vignette is evaluated (except the 1st) when the vignette is compiled by R CMD build.

Please re-read our package guidelines carefully about 1) and 2) and understand the importance of providing running examples and "live" code chunks as a way to guarantee reproducibility and enhance usability of your software.

Other issues:

3) Please put informative colnames on data frame 'samplepeaksinput'. The Bioconductor naming convention for these columns is chrom, start, end.

4) In the man page for 'samplepeaksinput', instead of "along a genome", which is too vague, please say what genome it is exactly (i.e. organism and assembly).

5) install.packages("geneXtendeR") is for CRAN packages, not for Bioconductor packages. The right way to install a Bioconductor package is with biocLite(). Please correct the vignette.

6) Also in the vignette, no need to say "Then loads the rtracklayer R package, which contains...". There is no need to load rtracklayer explicitly because geneXtendeR depends on rtracklayer so loading geneXtendeR automatically loads rtracklayer.

7) It is not good practice to use an image to show the commands for installing bedtools. The standard way to do this in a LaTeX document is to place the commands inside \begin{verbatim} ... \end{verbatim}.

8) When I try to run annotate(), I get:

    Error in system(onecmd, intern = TRUE, ignore.stderr = TRUE) : 
      error in running command

How is the user supposed to know what's going on? Generally speaking, error messages should be as informative as possible.

9) You call the generate() function in the vignette. But when I try this I get:

Error: could not find function "generate" Also it will need to have a man page.

10) Once you have "live" code chunks in your vignette, you shouldn't use pre-computed figures like you do right now. All the figures generated by the various calls to barChart() and linePlot() should be generated and included in the PDF when the vignette is compiled by R CMD build.

Because of these problems, it's very hard for me to use the package right now. Once they are addressed, it will be easier for me to actually start using the package and I might come up with more feedback.

Thanks, H.

bioc-issue-bot commented 8 years ago

Received a valid push; starting a build. Commits are:

a2bbfcd remove BEDTools dependency

bioc-issue-bot commented 8 years ago

Dear Package contributor,

This is the automated single package builder at bioconductor.org.

Your package has been built on Linux, Mac, and Windows.

On one or more platforms, the build results were: "WARNINGS, skipped, ERROR". This may mean there is a problem with the package that you need to fix. Or it may mean that there is a problem with the build system itself.

Please see the following build report for more details:

http://bioconductor.org/spb_reports/geneXtendeR_buildreport_20160911164449.html

Bohdan-Khomtchouk commented 8 years ago

Hi Herve,

All your comments have now been adequately addressed. In addition, I have removed the BEDTools dependency from SystemRequirements by writing and integrating my own C scripts (located in /src) natively into the geneXtendeR R package. This has been done in an effort to make the package standalone and to successfully pass all the Bioconductor checks. Indeed, I have succeeded in doing so locally:

bohdankhomtchouk$ R CMD BiocCheck geneXtendeR_0.99.5.tar.gz
* This is BiocCheck, version 1.8.2.
* BiocCheck is a work in progress. Output and severity of issues may
  change.
* Installing package...
Warning: package ‘rtracklayer’ was built under R version 3.3.1
Warning: package ‘S4Vectors’ was built under R version 3.3.1
Warning: package ‘GenomeInfoDb’ was built under R version 3.3.1
Warning: replacing previous import ‘data.table::between’ by ‘dplyr::between’ when loading ‘geneXtendeR’
Warning: replacing previous import ‘data.table::last’ by ‘dplyr::last’ when loading ‘geneXtendeR’
* Checking for version number mismatch...
* Checking if other packages can import this one...
* Checking to see if we understand object initialization....
    * CONSIDER: Clarifying how objects ‘type, seqid, gene_id,
      gene_name, write.table, write.table, type, seqid’ (used in
      annotate, annotate, barChart, barChart, distinct, linePlot,
      linePlot, peaksInput) were initialized. Maybe they are part of a
      data set loaded with data(), or perhaps part of an object
      referenced in with() or within().
* Checking vignette directory...
* This is a software package, checking vignette directories...
      # of chunks: 12, # of eval=FALSE: 1 (8%)
* Checking version number...
* Checking version number validity...
    * RECOMMENDED: y of x.y.z version should be even in release
* Checking R Version dependency...
* Checking biocViews...
* Checking that biocViews are present...
* Checking for non-trivial biocViews...
* Checking that biocViews come from the same category...
* Checking biocViews validity...
* Checking for recommended biocViews...
* Checking build system compatibility...
* Checking for blank lines in DESCRIPTION...
* Checking for whitespace in DESCRIPTION field names...
* Checking that Package field matches dir/tarball name...
* Checking for Version field...
* Checking for valid maintainer...
* Checking unit tests...
    * CONSIDER: Adding unit tests.  We strongly encourage them. See
      http://bioconductor.org/developers/how-to/unitTesting-guidelines/.
* Checking native routine registration...
* Checking for deprecated package usage...
* Checking parsed R code in R directory, examples, vignettes...
* Checking for direct slot access...
* Checking for T...
* Checking for F...
* Checking for browser()...
* Checking for <<-...
* Checking for library/require of geneXtendeR...
* Checking DESCRIPTION/NAMESPACE consistency...
* Checking function lengths.............
  The longest function is 69 lines long
  The longest 5 functions are:
      linePlot() (R/linePlot.r, line 20): 69 lines
      annotate() (R/annotate.r, line 18): 66 lines
      barChart() (R/barChart.r, line 22): 63 lines
      distinct() (R/distinct.r, line 22): 61 lines
      geneXtender() (R/annotate.r, line 20): 38 lines
* Checking man pages...
* Checking exported objects have runnable examples...
* Checking package NEWS...
    * CONSIDER: Adding a NEWS file, so your package news will be
      included in Bioconductor release announcements.
* Checking formatting of DESCRIPTION, NAMESPACE, man pages, R source,
  and vignette source...
    * CONSIDER: Shortening lines; 172 lines (23%) are > 80 characters
      long.
    * CONSIDER: Replacing tabs with 4 spaces; 51 lines (6%) contain
      tabs.
    * CONSIDER: Indenting lines with a multiple of 4 spaces; 44 lines
      (5%) are not.
  See http://bioconductor.org/developers/how-to/coding-style/
* Checking for canned comments in man pages...
* Checking if package already exists in CRAN...
* Checking for support site registration...
* Maintainer is registered at support site!

Summary:
REQUIRED count: 0
RECOMMENDED count: 1
CONSIDERATION count: 6
For detailed information about these checks, see the BiocCheck
vignette, available at
http://bioconductor.org/packages/3.3/bioc/vignettes/BiocCheck/inst/doc/BiocCheck.html#interpreting-bioccheck-output

However, after pushing to Github and going through the automated single package builder, I have received build errors on some of the systems (http://bioconductor.org/spb_reports/geneXtendeR_buildreport_20160911164449.html), despite the fact that I'm following standard protocol: https://cran.r-project.org/doc/manuals/r-release/R-exts.html#useDynLib.

In addition, the build fails because geneXtendeR has been cleverly designed to accept peaks files DIRECTLY. I.e., the user does not need to go through the additional step of loading their peaks file into an object, since they can just do peaksInput("somepeaksfile.txt") where somepeaksfile.txt is the peaks file of interest in the user's working directory.

Clearly, despite the win-win for the user in both of these cases described above, the Bioconductor build system is complaining.

Please advise.

Thank you & kind regards, Bohdan Khomtchouk

bioc-issue-bot commented 8 years ago

We only start builds when the Version field in the DESCRIPTION file is incremented. For example, by changing

Version: 0.99.0

to

Version 0.99.1

If you did not intend to start a build, you don't need to do anything. If you did want to start a build, increment the Version: field and try again.

bioc-issue-bot commented 8 years ago

Received a valid push; starting a build. Commits are:

ee2ecb6 clean up lingering .o and .so files in /src

bioc-issue-bot commented 8 years ago

Dear Package contributor,

This is the automated single package builder at bioconductor.org.

Your package has been built on Linux, Mac, and Windows.

On one or more platforms, the build results were: "WARNINGS, skipped, ERROR". This may mean there is a problem with the package that you need to fix. Or it may mean that there is a problem with the build system itself.

Please see the following build report for more details:

http://bioconductor.org/spb_reports/geneXtendeR_buildreport_20160911173333.html

bioc-issue-bot commented 8 years ago

We only start builds when the Version field in the DESCRIPTION file is incremented. For example, by changing

Version: 0.99.0

to

Version 0.99.1

If you did not intend to start a build, you don't need to do anything. If you did want to start a build, increment the Version: field and try again.

hpages commented 8 years ago

Hi Bohdan,

Thanks for the revised version of the package. Unfortunately the package is very broken, I can't install it on my 64-bit Ubuntu 14.04 laptop:

hpages@latitude:~/pkgreviews/geneXtendeR.review/github$ Rbiocdev CMD INSTALL geneXtendeR
* installing to library ‘/home/hpages/R/R-3.3.r70604/library’
* installing *source* package ‘geneXtendeR’ ...
** libs
** arch - 
R CMD SHLIB extract_peaks.c
WARNING: ignoring environment value of R_HOME
make[1]: Entering directory `/home/hpages/pkgreviews/geneXtendeR.review/github/geneXtendeR/src'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/hpages/pkgreviews/geneXtendeR.review/github/geneXtendeR/src'
R CMD SHLIB extract_number.c
WARNING: ignoring environment value of R_HOME
make[1]: Entering directory `/home/hpages/pkgreviews/geneXtendeR.review/github/geneXtendeR/src'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/hpages/pkgreviews/geneXtendeR.review/github/geneXtendeR/src'
R CMD SHLIB annotate.c 
WARNING: ignoring environment value of R_HOME
make[1]: Entering directory `/home/hpages/pkgreviews/geneXtendeR.review/github/geneXtendeR/src'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/hpages/pkgreviews/geneXtendeR.review/github/geneXtendeR/src'
installing to /home/hpages/R/R-3.3.r70604/library/geneXtendeR/libs
** R
** data
*** moving datasets to lazyload DB
** inst
** preparing package for lazy loading
Warning: replacing previous import ‘data.table::between’ by ‘dplyr::between’ when loading ‘geneXtendeR’
Warning: replacing previous import ‘data.table::last’ by ‘dplyr::last’ when loading ‘geneXtendeR’
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded
Warning: replacing previous import ‘data.table::between’ by ‘dplyr::between’ when loading ‘geneXtendeR’
Warning: replacing previous import ‘data.table::last’ by ‘dplyr::last’ when loading ‘geneXtendeR’
Error in dyn.load(file, DLLpath = DLLpath, ...) : 
  unable to load shared object '/home/hpages/R/R-3.3.r70604/library/geneXtendeR/libs/annotate.so':
  /home/hpages/R/R-3.3.r70604/library/geneXtendeR/libs/annotate.so: invalid ELF header
Error: loading failed
Execution halted
ERROR: loading failed
* removing ‘/home/hpages/R/R-3.3.r70604/library/geneXtendeR’
* restoring previous ‘/home/hpages/R/R-3.3.r70604/library/geneXtendeR’

2 issues that are probably causing this: (1) You have a Makefile in the src/ folder. Note that most packages that contain native code do NOT need a Makefile. Only include a Makefile if you have a good reason to do so. Including a Makefile without a good reason is only going to cause you trouble. (2) You have compilation products (.o and .so files) in your src/ folder. Never include compilation products in the source tree of your package.

About this:

In addition, the build fails because geneXtendeR has been cleverly designed to accept peaks files DIRECTLY. I.e., the user does not need to go through the additional step of loading their peaks file into an object, since they can just do peaksInput("somepeaksfile.txt") where somepeaksfile.txt is the peaks file of interest in the user's working directory.

Clearly, despite the win-win for the user in both of these cases described above, the Bioconductor build system is complaining.

We like cleverly designed packages and win-win for the user :-) But the build system is just a machine and doesn't have emotions: it simply runs R CMD check on your package. Which seems to fail here because the examples in the annotate.Rd man page fails:

rat <- readGFF("ftp://ftp.ensembl.org/pub/release-84/gtf/rattus_norvegicus/Rattus_norvegicus.Rnor_6.0.84.gtf.gz")
peaksInput("somepeaksfile.txt")
annotate(rat, 2500)

The above code fails because peaksInput("somepeaksfile.txt") cannot find the somepeaksfile.txt file. It's clearly an issue with the package. And you should be able to reproduce this by running R CMD check on your own machine. Look, the way we play this game is very simple: you need to put valid code in your examples, that is, code that anybody will be able to run (e.g. by copying and pasting it in his/her own session). Running R CMD check is one way to make sure that this is the case. And the Bioconductor build system is making sure that this is the case by running R CMD check on your package.

Hope that makes sense, H.

Bohdan-Khomtchouk commented 8 years ago

Hi Herve,

A few questions:

1) Could you please clarify your point regarding the .o and .so files? The .o and .so files in the /src folder are generated automatically during the build process. The makefile is there to ensure that these files are produced, which is necessary to integrate the C code into R (e.g., see: http://www.biostat.jhsph.edu/~rpeng/docs/interface.pdf). Then we use useDynLib to link the DLL (https://cran.r-project.org/doc/manuals/r-release/R-exts.html#useDynLib), instead of dyn.load().

2) You said: "The above code fails because peaksInput("somepeaksfile.txt") cannot find the somepeaksfile.txt file. It's clearly an issue with the package." However, as I mentioned in my previous posting, the user needs to set their working directory to point to the location of the file. This is the reason for the Bioconductor build errors (i.e., why the examples don't work). One obvious way to avoid this would be to load the peaks file into an object, and work directly with the object. Such an object could be stored in /data. This is one very reasonable way to successfully pass the Bioconductor checks, but at the user's expense: i.e., the user will have to deal with an extra step (loading the file into an object) instead of directly doing peaksInput("somepeaksfile.txt") on the file itself (i.e., no intermediate object creation necessary). Theoretically speaking, if there was a way to make somepeaksfile.txt visible to Bioconductor during the checks, then it would work fine (i.e., all the examples would work fine during the Bioconductor checks). As you saw from my bohdankhomtchouk$ R CMD BiocCheck geneXtendeR_0.99.5.tar.gz posting above, it works just fine. Any suggestions for how to do this would be appreciated. Otherwise, the /data approach will have to do.

Thanks, Bohdan

P.S. If you want to use geneXtendeR, may I suggest you install directly from Github (as specified in the README.md of the geneXtendeR repository), not Rbiocdev CMD INSTALL geneXtendeR. Your installation command is failing due to the issues outlined above, but this in no way reflects the functionality of the package. geneXtendeR has already been used in multiple publications, e.g.: http://www.nature.com/mp/journal/vaop/ncurrent/full/mp2016131a.html.

hpages commented 8 years ago

I don't know about http://www.biostat.jhsph.edu/~rpeng/docs/interface.pdf and I don't really have time to go thru this document. All I know is that nobody should ever commit the compilation products found in the src/ to git or svn. That's because the compilation products don't belong to the package source tree, by definition. If you put them there, people that checkout the source tree of your package won't be able to compile it, unless they clean the src/ folder first. These compilation products are platform specific. They work for you, but not for me, because I'm on a different platform than you.

I also know that your package should just compile when doing R CMD INSTALL geneXtendeR. Sorry, this the standard way to install/compile a local package. Installing directly from Github (as specified in your README.md file) doesn't work for me either:

> library(devtools)
> devtools::install_github("Bohdan-Khomtchouk/geneXtendeR")
Downloading GitHub repo Bohdan-Khomtchouk/geneXtendeR@master
from URL https://api.github.com/repos/Bohdan-Khomtchouk/geneXtendeR/zipball/master
Installing geneXtendeR
'/home/hpages/R/R-3.3.r70604/bin/R' --no-site-file --no-environ --no-save  \
  --no-restore --quiet CMD INSTALL  \
  '/tmp/RtmpHIBnU9/devtools1250770017cc/Bohdan-Khomtchouk-geneXtendeR-bf25733'  \
  --library='/home/hpages/R/R-3.3.r70604/library' --install-tests 

* installing *source* package ‘geneXtendeR’ ...
** libs
** arch - 
R CMD SHLIB extract_peaks.c
WARNING: ignoring environment value of R_HOME
make[1]: Entering directory `/tmp/RtmpHIBnU9/devtools1250770017cc/Bohdan-Khomtchouk-geneXtendeR-bf25733/src'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/tmp/RtmpHIBnU9/devtools1250770017cc/Bohdan-Khomtchouk-geneXtendeR-bf25733/src'
R CMD SHLIB extract_number.c
WARNING: ignoring environment value of R_HOME
make[1]: Entering directory `/tmp/RtmpHIBnU9/devtools1250770017cc/Bohdan-Khomtchouk-geneXtendeR-bf25733/src'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/tmp/RtmpHIBnU9/devtools1250770017cc/Bohdan-Khomtchouk-geneXtendeR-bf25733/src'
R CMD SHLIB annotate.c 
WARNING: ignoring environment value of R_HOME
make[1]: Entering directory `/tmp/RtmpHIBnU9/devtools1250770017cc/Bohdan-Khomtchouk-geneXtendeR-bf25733/src'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/tmp/RtmpHIBnU9/devtools1250770017cc/Bohdan-Khomtchouk-geneXtendeR-bf25733/src'
installing to /home/hpages/R/R-3.3.r70604/library/geneXtendeR/libs
** R
** data
*** moving datasets to lazyload DB
** inst
** preparing package for lazy loading
Warning: replacing previous import ‘data.table::between’ by ‘dplyr::between’ when loading ‘geneXtendeR’
Warning: replacing previous import ‘data.table::last’ by ‘dplyr::last’ when loading ‘geneXtendeR’
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded
Warning: replacing previous import ‘data.table::between’ by ‘dplyr::between’ when loading ‘geneXtendeR’
Warning: replacing previous import ‘data.table::last’ by ‘dplyr::last’ when loading ‘geneXtendeR’
Error in dyn.load(file, DLLpath = DLLpath, ...) : 
  unable to load shared object '/home/hpages/R/R-3.3.r70604/library/geneXtendeR/libs/annotate.so':
  /home/hpages/R/R-3.3.r70604/library/geneXtendeR/libs/annotate.so: invalid ELF header
Error: loading failed
Execution halted
ERROR: loading failed
* removing ‘/home/hpages/R/R-3.3.r70604/library/geneXtendeR’
* restoring previous ‘/home/hpages/R/R-3.3.r70604/library/geneXtendeR’
Error: Command failed (1)

But even if it worked, that doesn't mean that R CMD INSTALL geneXtendeR shouldn't.

Finally, did you run R CMD check geneXtendeR_0.99.5.tar.gz ? It needs to succeed. You said you've successfully run R CMD BiocCheck geneXtendeR_0.99.5.tar.gz, which is good, but that's a different thing. Before you run R CMD BiocCheck, you first need to make sure that your package passes R CMD check. R CMD check is not a Bioconductor tool, it's the standard built-in quality control tool managed by the R project itself. They use it on CRAN to check contributed packages. R CMD BiocCheck is a Bioconductor-specific tool that performs some additional quality control checks.

You shouldn't hesitate to seek help from some experienced R package developer around you to help you with the basic concepts of R package developments.

Regards, H.

bioc-issue-bot commented 8 years ago

We only start builds when the Version field in the DESCRIPTION file is incremented. For example, by changing

Version: 0.99.0

to

Version 0.99.1

If you did not intend to start a build, you don't need to do anything. If you did want to start a build, increment the Version: field and try again.

bioc-issue-bot commented 8 years ago

We only start builds when the Version field in the DESCRIPTION file is incremented. For example, by changing

Version: 0.99.0

to

Version 0.99.1

If you did not intend to start a build, you don't need to do anything. If you did want to start a build, increment the Version: field and try again.

bioc-issue-bot commented 8 years ago

Received a valid push; starting a build. Commits are:

2a7f3b7 v0.99.7

bioc-issue-bot commented 8 years ago

Dear Package contributor,

This is the automated single package builder at bioconductor.org.

Your package has been built on Linux, Mac, and Windows.

On one or more platforms, the build results were: "skipped, WARNINGS, ERROR". This may mean there is a problem with the package that you need to fix. Or it may mean that there is a problem with the build system itself.

Please see the following build report for more details:

http://bioconductor.org/spb_reports/geneXtendeR_buildreport_20160916223801.html

bioc-issue-bot commented 8 years ago

Received a valid push; starting a build. Commits are:

1a08cdd add somepeaksfile.txt into /inst

bioc-issue-bot commented 8 years ago

Dear Package contributor,

This is the automated single package builder at bioconductor.org.

Your package has been built on Linux, Mac, and Windows.

On one or more platforms, the build results were: "skipped, WARNINGS, ERROR". This may mean there is a problem with the package that you need to fix. Or it may mean that there is a problem with the build system itself.

Please see the following build report for more details:

http://bioconductor.org/spb_reports/geneXtendeR_buildreport_20160916234632.html

bioc-issue-bot commented 8 years ago

Received a valid push; starting a build. Commits are:

ffdb0af fix somepeaksfile.txt error

bioc-issue-bot commented 8 years ago

Dear Package contributor,

This is the automated single package builder at bioconductor.org.

Your package has been built on Linux, Mac, and Windows.

On one or more platforms, the build results were: "skipped, ERROR". This may mean there is a problem with the package that you need to fix. Or it may mean that there is a problem with the build system itself.

Please see the following build report for more details:

http://bioconductor.org/spb_reports/geneXtendeR_buildreport_20160917022634.html

Bohdan-Khomtchouk commented 8 years ago

Hi Herve,

Great news: I have successfully fixed the aforementioned somepeaksfile.txt error and am now build: passing on Travis CI: https://travis-ci.org/Bohdan-Khomtchouk/geneXtendeR. The only REQUIRED note I received was: * REQUIRED: Maintainer should subscribe to the bioc-devel mailing list. Subscribe here: https://stat.ethz.ch/mailman/listinfo/bioc-devel. I have now done this as well. As such, even though the current report is saying that geneXtendeR failed the R CMD check, this should no longer be the case (since I subscribed to the mailing list). However, I would appreciate it if you could recommend how to submit the next version of geneXtendeR (since I've made it to 0.99.9... I don't think I can go 1.0 yet (since that's reserved for released packages). I tried 0.99.9.1, but it didn't work... also going backwards in version number didn't work either). Anyway...

The only remaining hurdle is moscato1 BUILD SRC output, which is currently throwing an error:

Error in library.dynam(lib, package, package.lib) : 
  DLL 'annotate' not found: maybe not installed for this architecture?
Error: loading failed
Execution halted 

I've made certain that the /src folder is clean of any lingering .o or .so files. Also, the build worked successfully on the other two platforms. Hence, I do not understand why the build failed on moscato1 (Windows Server 2008 R2 Standard (64-bit)/x64) or how I can fix this. Any suggestions would be appreciated.

Please advise.

Thanks & kind regards, Bohdan Khomtchouk

hpages commented 8 years ago

Hi Bohdan, Please bump the version to 0.99.10 in order to trigger a new build. Thanks, H.

bioc-issue-bot commented 8 years ago

Received a valid push; starting a build. Commits are:

38d901e trigger new build v0.99.10

bioc-issue-bot commented 8 years ago

Dear Package contributor,

This is the automated single package builder at bioconductor.org.

Your package has been built on Linux, Mac, and Windows.

On one or more platforms, the build results were: "skipped, ERROR, WARNINGS". This may mean there is a problem with the package that you need to fix. Or it may mean that there is a problem with the build system itself.

Please see the following build report for more details:

http://bioconductor.org/spb_reports/geneXtendeR_buildreport_20160919113418.html

Bohdan-Khomtchouk commented 8 years ago

Hi Herve,

Yup, just did. As I expected, it worked well, only received some WARNINGs. E.g., * RECOMMENDED: Import dplyr in NAMESPACE as well as DESCRIPTION is actually not a good recommendation, as doing so will throw warnings during loading of the library. In other words, I've already tried this advice before, it's no good.

Still wondering about the moscato1 BUILD SRC output though, if you have any suggestions there. Looking forward to your input.

Many thanks, Bohdan

hpages commented 8 years ago

Hi Bohdan,

We're making progress.

The Windows issue is caused by your Makefile. As I said earlier, this file is not needed, and, when written incorrectly (as is the case with yours), causes all sorts of problems. All these problems can be avoided by not using a Makefile in the first place. Most packages with native code don't need one. And your package falls into this category. So please remove (and replace the 3 useDynLib directives in your NAMESPACE with useDynLib(geneXtendeR)).

Also please get rid of the 2 the warnings issued by R CMD check on Linux (zin1). The 1st one ("Subdirectory geneXtendeR/src contains apparent object files/libraries") is also a consequence of you using a poorly written Makefile.

About the BiocCheck recommendation to import dplyr. I guess you tried to put import(dplyr) in your NAMESPACE and that gave you warnings because this directive imports all the dplyr symbols and some of them conflict with other symbols imported from other packages. But did you try to import only the dplyr symbols that you actually need? E.g. with importFrom(dplyr, filter, select, arrange).

Cheers, H.

bioc-issue-bot commented 8 years ago

Received a valid push; starting a build. Commits are:

32c34cb remove makefile and import dplyr

bioc-issue-bot commented 8 years ago

Dear Package contributor,

This is the automated single package builder at bioconductor.org.

Your package has been built on Linux, Mac, and Windows.

On one or more platforms, the build results were: "ERROR". This may mean there is a problem with the package that you need to fix. Or it may mean that there is a problem with the build system itself.

Please see the following build report for more details:

http://bioconductor.org/spb_reports/geneXtendeR_buildreport_20160919151829.html

bioc-issue-bot commented 8 years ago

We only start builds when the Version field in the DESCRIPTION file is incremented. For example, by changing

Version: 0.99.0

to

Version 0.99.1

If you did not intend to start a build, you don't need to do anything. If you did want to start a build, increment the Version: field and try again.

bioc-issue-bot commented 8 years ago

Received a valid push; starting a build. Commits are:

2c68908 v0.99.12

bioc-issue-bot commented 8 years ago

Dear Package contributor,

This is the automated single package builder at bioconductor.org.

Your package has been built on Linux, Mac, and Windows.

On one or more platforms, the build results were: "ERROR". This may mean there is a problem with the package that you need to fix. Or it may mean that there is a problem with the build system itself.

Please see the following build report for more details:

http://bioconductor.org/spb_reports/geneXtendeR_buildreport_20160919153606.html

bioc-issue-bot commented 8 years ago

Received a valid push; starting a build. Commits are:

d16a867 @importFrom dplyr filter select arrange

bioc-issue-bot commented 8 years ago

Dear Package contributor,

This is the automated single package builder at bioconductor.org.

Your package has been built on Linux, Mac, and Windows.

On one or more platforms, the build results were: "WARNINGS". This may mean there is a problem with the package that you need to fix. Or it may mean that there is a problem with the build system itself.

Please see the following build report for more details:

http://bioconductor.org/spb_reports/geneXtendeR_buildreport_20160919161312.html

bioc-issue-bot commented 8 years ago

We only start builds when the Version field in the DESCRIPTION file is incremented. For example, by changing

Version: 0.99.0

to

Version 0.99.1

If you did not intend to start a build, you don't need to do anything. If you did want to start a build, increment the Version: field and try again.

bioc-issue-bot commented 8 years ago

Received a valid push; starting a build. Commits are:

40399b5 v0.99.14

bioc-issue-bot commented 8 years ago

Dear Package contributor,

This is the automated single package builder at bioconductor.org.

Your package has been built on Linux, Mac, and Windows.

On one or more platforms, the build results were: "WARNINGS". This may mean there is a problem with the package that you need to fix. Or it may mean that there is a problem with the build system itself.

Please see the following build report for more details:

http://bioconductor.org/spb_reports/geneXtendeR_buildreport_20160919165112.html

bioc-issue-bot commented 8 years ago

Received a valid push; starting a build. Commits are:

df57c79 remove unused but set C variables

bioc-issue-bot commented 8 years ago

Dear Package contributor,

This is the automated single package builder at bioconductor.org.

Your package has been built on Linux, Mac, and Windows.

On one or more platforms, the build results were: "skipped, ERROR". This may mean there is a problem with the package that you need to fix. Or it may mean that there is a problem with the build system itself.

Please see the following build report for more details:

http://bioconductor.org/spb_reports/geneXtendeR_buildreport_20160919171211.html

bioc-issue-bot commented 8 years ago

Received a valid push; starting a build. Commits are:

75273d7 v0.99.16

bioc-issue-bot commented 8 years ago

Dear Package contributor,

This is the automated single package builder at bioconductor.org.

Your package has been built on Linux, Mac, and Windows.

On one or more platforms, the build results were: "WARNINGS". This may mean there is a problem with the package that you need to fix. Or it may mean that there is a problem with the build system itself.

Please see the following build report for more details:

http://bioconductor.org/spb_reports/geneXtendeR_buildreport_20160919173752.html