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

Henrik Bengtsson henrik.bengtsson at gmail.com
Fri Oct 6 06:05:46 CEST 2017


That's really nice; I didn't know it could do all that.  For my
clarification, when using PkgManifest(..., type = "bioc") it'll search
(i) the CRAN archives, (ii) the Bioconductor repos(es), and then (iii)
the Bioconductor Git repos - is that a correct observation? (I
installed from https://github.com/gmbecker/switchr)

/Henrik




On Thu, Oct 5, 2017 at 4:15 PM, Gabe Becker <becker.gabe at gene.com> wrote:
> In point of fact, it looks like IRanges 2.6.0 is an instance of that
> weakness, so was probably a bad example. 2.6.1 installs correctly, or would
> in it's native R/base bioc environment... (it fails for me in the library I
> have...)
>
> Also, the version on CRAN uses the bioc SVN, so may not work for recent
> versions.
>
> On Thu, Oct 5, 2017 at 3:58 PM, Gabe Becker <beckerg4 at gene.com> wrote:
>>
>> 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) 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/Archive/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/madman/Rpacks/affy@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/madman/Rpacks/affy@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
>
>
>
>
> --
> Gabriel Becker, Ph.D
> Associate Scientist
> Bioinformatics and Computational Biology
> Genentech Research



More information about the Bioc-devel mailing list