[Bioc-devel] Old package versions / Bioc archive of package's *.tar.gz releases?

Gabe Becker becker.gabe at gene.com
Fri Oct 6 00:58:49 CEST 2017


Henrik et al.,

My switchr package (on CRAN, github at: http://github.com/gmbecker/switchr,
preprint of the paper here: https://arxiv.org/abs/1501.02284
<https://arxiv.org/abs/1501.02284>) can do this.

In fact, installing (cohorts of) old versions of packages is one of it's
primary purposes. Specifically, it can install old source versions of
packages from CRAN, Bioconductor, and general Git and SVN repos you tell it
about.

With the caveat that it's a bad idea in the general case to specify an old
version of one package without specifying versions of its dependencies
(switchr allows you to do this via a manifest, which can be constructed
from sessionInfo output or guessed in the case of a CRAN package), you can
just do

> man = PkgManifest(name="IRanges", type="bioc")

> install_packages("IRanges", man, versions = c(IRanges = "2.6.0"))


And you will successfully completely break your Bioc installation by
installing IRanges 2.6.0 into it. ;-)

Switchr also gives you tools to more easilly maintain multiple libraries
which contain, for example, different bioc versions in them.

NB: switchr is subject to the caveat Martin pointed out and will fail to
retrieve a buildable version of the package if said buildable version is
not the first commit in SCM bearing that version in its DESCRIPTION file.

Hope that helps.

Best,
~G

On Thu, Oct 5, 2017 at 2:21 PM, Martin Morgan <martin.morgan at roswellpark.org
> wrote:

> On 10/05/2017 05:14 PM, Henrik Bengtsson wrote:
>
>> On Thu, Oct 5, 2017 at 1:46 PM, Martin Morgan
>> <martin.morgan at roswellpark.org> wrote:
>>
>>> On 10/05/2017 01:50 PM, Henrik Bengtsson wrote:
>>>
>>>>
>>>> Is there an easily accessible archive for Bioconductor packages
>>>> similar to what is provided on CRAN where you can find all released
>>>> versions of a package, e.g.
>>>> https://cran.r-project.org/src/contrib/Archive/PSCBS/?
>>>>
>>>> Say I want to access the source code for affy 1.18.0.  Here are the
>>>> two approaches I'm aware of and none of them are particularly
>>>> appealing to me.  Does anyone know of a better approach?
>>>>
>>>
>>>
>>> The only option is to scrape, and that's approximate. One could build an
>>> archive
>>>
>>> pkg,version,branch,from_svn_rev,to_svn_rev
>>>
>>> and then consult that. Packages are supposed to increment the 'z' of
>>> x.y.z,
>>> but I'm sure there are many exceptions. I believe Jim Hester has an svn
>>> script for this, but I wasn't able to locate it; it would be fast in git.
>>>
>>
>> Thanks.  About 'z' not being increased.  Does the Bioc build servers
>> release (a) continuously or (b) only when it detects a version change
>> x.y.z -> x.y.z+1?  If it does it continuously, then what x.y.z is
>> installed does matter on when it was downloaded/installed, correct?
>> On the other hand, if it only builds in when a version bump is
>> detected, then one can at least narrow it down to a much narrow set of
>> x.y.z submits (if multiple exists).
>>
>
> The builder only pushes for upward increments, so a commit without a
> 'positive' version bump would be built but not pushed to the public
> repository. I'm not sure how rigorously this policy was enforced before,
> e.g., 2005.
>
> Of course there are exceptions, e.g., it is occasionally (at most one or
> two times a release cycle) necessary to flush the public repository
> entirely, and then whatever is built is pushed. And there is nothing
> stopping the user from doing a check-out from svn. Perhaps others will
> chime in with the gory / correct details.
>
> Martin
>
>
>
>>
>>> For your future self, this
>>>
>>>    https://bioconductor.org/packages/3.5/bioc/src/contrib/Arch
>>> ive/S4Vectors/
>>>
>>> provides a hint of a change coming with the next release -- archives of
>>> all
>>> RELEASE package versions, starting in Bioc 3.6. (Kudos to Val for
>>> implementing this)
>>>
>>
>> This is great!  Thanks Val for this.
>>
>> Thanks
>>
>> Henrik
>>
>>
>>> Martin
>>>
>>>
>>>>
>>>> # APPROACH 1: Download from http://bioconductor.org
>>>>
>>>> The best approach I know now is to try to guess the date when this was
>>>> released in order to identify the Bioconductor release version.
>>>> Something like this:
>>>>
>>>> 1. Guess around 2010.
>>>>
>>>> 2. Go to http://bioconductor.org/about/release-announcements/ and see
>>>> what R versions were in use during 2010.  I find R 2.6.x and R 2.7.x.
>>>> The Bioc version for those R versions (same URL) are Bioc 2.1 and Bioc
>>>> 2.2.  Let's focus on Bioc 2.2 (because I happen to know that is the
>>>> one)
>>>>
>>>> 3. Following the Bioc 2.2 link on above URL to get to
>>>> http://bioconductor.org/packages/2.2/BiocViews.html.
>>>>
>>>> 4. Click through, one eventually gets to
>>>> http://bioconductor.org/packages/2.2/bioc/html/affy.html
>>>>
>>>> 5. The "Source" link points to
>>>> http://bioconductor.org/packages/2.2/bioc/src/contrib/affy_
>>>> 1.18.2.tar.gz
>>>>
>>>> Say I wanted affy 1.16.0 instead and I made the wrong guess in Step 2,
>>>> I can extrapolate from (Bioc 2.2, affy 1.18.x) finding that I should
>>>> go to Bioc 2.1 to find affy 1.16.x (because releases have even minor
>>>> version numbers).   It works, but is a bit tedious if you need to do
>>>> this more than once.
>>>>
>>>> Also, I'm pretty sure I read somewhere that Bioc on archive the most
>>>> recent package version under each release, which means there is no
>>>> affy_1.18.0.tar.gz available for download.  Is that correct?
>>>>
>>>>
>>>> # APPROACH 2: Version control
>>>>
>>>> $ git clone https://git.bioconductor.org/packages/affy
>>>> $ cd affy
>>>>
>>>> # Package releases/versions are not tagged
>>>> $ git tag
>>>> [empty]
>>>>
>>>> # Check Bioc release branches
>>>> $ git branch -a
>>>> * master
>>>>     remotes/origin/HEAD -> origin/master
>>>>     remotes/origin/RELEASE_1_0
>>>>     remotes/origin/RELEASE_1_0_branch
>>>>     remotes/origin/RELEASE_1_4
>>>>     remotes/origin/RELEASE_1_4_branch
>>>>     remotes/origin/RELEASE_1_5
>>>> [...]
>>>>     remotes/origin/RELEASE_3_5
>>>>     remotes/origin/master
>>>>
>>>> That's back to above game of trying to narrow down which Bioc release
>>>> I should look at.  A similar approach is to look at the commit log:
>>>>
>>>> $ git log DESCRIPTION
>>>>
>>>> commit 35573048255b398f99ff1d3560906b2121912248
>>>> Author: Herve Pages <hpages at fhcrc.org>
>>>> Date:   Mon Apr 24 19:50:57 2017 +0000
>>>>
>>>>       bump x.y.z versions to odd y after creation of 3_5 branch
>>>>
>>>>       git-svn-id:
>>>>
>>>> file:///home/git/hedgehog.fhcrc.org/bioconductor/trunk/madma
>>>> n/Rpacks/affy at 129129
>>>> bc3139a8-67e5-0310-9ffc-ced21a209358
>>>>
>>>> commit aa4c2d648658e8c2cca2baf651aea92df55a4392
>>>> Author: Herve Pages <hpages at fhcrc.org>
>>>> Date:   Mon Apr 24 19:25:24 2017 +0000
>>>>
>>>>       bump x.y.z versions to even y prior to creation of 3_5 branch
>>>>
>>>>       git-svn-id:
>>>>
>>>> file:///home/git/hedgehog.fhcrc.org/bioconductor/trunk/madma
>>>> n/Rpacks/affy at 129126
>>>> bc3139a8-67e5-0310-9ffc-ced21a209358
>>>>
>>>> [...]
>>>>
>>>> and try to locate affy 1.18.0 by peeking at the DESCRIPTION file
>>>> history.
>>>>
>>>> Does anyone know of a better/more automated approach?
>>>>
>>>> Thanks,
>>>>
>>>> Henrik
>>>>
>>>> _______________________________________________
>>>> Bioc-devel at r-project.org mailing list
>>>> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>>>>
>>>>
>>>
>>> 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...{{dropped:2}}
>
>
> _______________________________________________
> Bioc-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>



-- 
Gabriel Becker, Ph.D
Associate Scientist
Bioinformatics and Computational Biology
Genentech Research

	[[alternative HTML version deleted]]



More information about the Bioc-devel mailing list