-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Provide exported function to determine BioC version for R version #164
Comments
Hi Hadley, Do you have a specific use case in mind? > .version_bioc_for_r_version("4.2")
[1] '3.15' '3.16' but I'm not sure how helpful that is. We could also just export the Best, |
I'm looking into this for the rsconnect package — there we have to generate a package "manifest" that describes the version and source of all packages so we can install the same version on the server. Sometime the user has installed BioConductor package but there isn't a BioC repo included in |
I am supportive of providing this information, and include the following narrative only to clarify need. How does rsconnect deal with the situation where a user has installed a package from, e.g., github, where there is no relationship between R and package version? It seems like the 'manifest' needs to record the version of all packages (and dependencies) in use, and then rsconnect needs to map package versions to possible source? I ask knowing that (a) there is not a 1:1 mapping between R version and Bioconductor version and (b) there is a 'release' and 'devel' branch of Bioconductor, with the devel branch anticipating the next R / Bioc release combination
Knowing that the user has R 4.2 tells us that the user could be using Bioc 3.15, 3.16, or perhaps pre-release 3.15. The version of R is not sufficient to know version of Bioconductor. It is not uncommon for support questions to indicate Bioc version mismatches -- Bioc packages have The 'z' version may no longer be available via Would it be sufficient for BiocManager to provide the output of something like
? |
Packages installed from GitHub are handled separately; we reinstall from the exact repo used. It doesn't appear that BioConductor provides enough information to record the exact version used (it would be nice if the repository automatically included that in the |
This is what I see for a package
The |
@mtmorgan ok, if we can rely on these fields, that makes life easier. I don't think we'll want to install every package from Git (since that means no binaries), but I can certainly use the |
I spoke a little more with people who are more intimately familiar with this than I am. There are three types of Bioconductor packages -- software, 'annotation data', and 'experiment data'. The good news is that the software and experiment data packages are under version control and include the git timestamps etc. The bad news is that the annotation packages are not all under version control and so do not contain the timestamps etc. Some (e.g., GO.db) follow a version number convention mirroring the Bioconductor version, but others (e.g., DO.db) are more-or-less arbitrary, e.g., the same package version distributed across Bioconductor and R versions. I notice in the issue that you link to that accessing 'Archive' directories of the annotation and experiment data repositories fails. I do not know whether this is because there are no annotation or experiment data archives for the six month duration of a Bioconductor release (could be -- the primary value of these packages is that they don't change) or whether in fact these types of packages are not archived. I'll check on this. UPDATE The annotation- and experiment-data packages never have an 'Archive' location associated with them. |
Thanks for looking into this further 😄 — I'm pretty sure the |
I know of at least two packages that have had to implement this themselves, so it would be useful for BiocManager to provide an exported interface.
The text was updated successfully, but these errors were encountered: