Dear R-devels, We have encountered a problem concerning a dead lock in the dependency graph: We have two packages A1 and A2 where A2 extends A1. We have one package vignette for both packages, but which should be included into package A1. So in the "suggests" field of the DESCRIPTION file of A1 we suggest A2 to be able to produce the vignette at build/install time. On the other hand this means that A2 has to be installed before being able to check A1, and A1, of course, has to be installed before being able to check A2. How can this dead lock be resolved? Is this a case for a bundle? And can a bundle have its own vignette? Thanks for listening Peter, Matthias, Florian, Thomas
Peter Ruckdeschel <Peter.Ruckdeschel at uni-bayreuth.de> writes:> We have encountered a problem concerning a dead lock in the dependency graph: > > We have two packages A1 and A2 where A2 extends A1. > > We have one package vignette for both packages, but which should be included > into package A1. > > So in the "suggests" field of the DESCRIPTION file of A1 we suggest A2 > to be able to produce the vignette at build/install time. > > On the other hand this means that A2 has to be installed before being > able to check A1, and A1, of course, has to be installed before being > able to check A2. > > How can this dead lock be resolved?Is it really a deadlock? You can install A1 and then A2 and at that point you can check either one, right? You might also be able to make part of the vignette in A1 conditional on having A2 (or, of course, consider splitting the vignette or merging the packages). + seth
Dear Seth, thanks for your promptous response,> Peter Ruckdeschel <Peter.Ruckdeschel at uni-bayreuth.de> writes: >> We have encountered a problem concerning a dead lock in the dependency graph: >> >> We have two packages A1 and A2 where A2 extends A1. >> >> We have one package vignette for both packages, but which should be included >> into package A1. >> >> So in the "suggests" field of the DESCRIPTION file of A1 we suggest A2 >> to be able to produce the vignette at build/install time. >> >> On the other hand this means that A2 has to be installed before being >> able to check A1, and A1, of course, has to be installed before being >> able to check A2. >> >> How can this dead lock be resolved? > > Is it really a deadlock? You can install A1 and then A2 and at that > point you can check either one, right?right. Not a problem at all for us. But when submitting the package to CRAN this is a no-go condition ...> You might also be able to make part of the vignette in A1 conditional > on having A2Sorry, I am stuck here: I do not see how you could do this; could you help me there?> (or, of course, consider splitting the vignette or > merging the packages).We thought about this, too; our reasons not to do so were: merging the packages: our packages already have a considerable size, and the additional features provided for in the extension packages may not be needed by everybody; splitting the vignette: It seemed to be a good idea for us, (a) not to have to repeat explications in the extension packages and (b) to draw the reader's attention to the features provided for by the extensions. Thank you once again Peter
Peter Ruckdeschel wrote:> Dear R-devels, > > We have encountered a problem concerning a dead lock in the dependency graph: > > We have two packages A1 and A2 where A2 extends A1. > > We have one package vignette for both packages, but which should be included > into package A1. > > So in the "suggests" field of the DESCRIPTION file of A1 we suggest A2 > to be able to produce the vignette at build/install time. > > On the other hand this means that A2 has to be installed before being > able to check A1, and A1, of course, has to be installed before being > able to check A2. > > How can this dead lock be resolved? > > Is this a case for a bundle? And can a bundle have its own vignette?Vignettes just go in one of the packages. There is not really a "bundle vignette", and also no really good place to put vignettes if they are more general than one of the packages. I'm not sure if a bundle will resolve the deadlock. (Kurt might know if it should.) The way I have handle this problem in dse is to put pieces of the vignettes in different packages, so the part that requires the additional functionality goes in A2, and A1 does not require A2. That allows me to check the packages individually. Then when I build the bundle I splice together the pdf files and put the combined pdf in one of the packages (which I think users may find a bit confusing, but there is no other place). Paul> > Thanks for listening > Peter, Matthias, Florian, Thomas > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel=================================================================================== La version fran?aise suit le texte anglais. ------------------------------------------------------------------------------------ This email may contain privileged and/or confidential inform...{{dropped}}
Assuming you don't want to split it tup: In A1 place a file A1-packages.Rd which documents all sources of documentation for A1. That can refers the user to the vignette in A2. packages?A1 will bring it up this information help file. You could also considering having a one line vignette in A1 which just says see the vignette in A2 and/or which provides a link which when clicked gets it from the web. Another possibility is to include the vignette in A2 and just the pdf of it in A1. On 11/21/06, Peter Ruckdeschel <Peter.Ruckdeschel at uni-bayreuth.de> wrote:> Dear R-devels, > > We have encountered a problem concerning a dead lock in the dependency graph: > > We have two packages A1 and A2 where A2 extends A1. > > We have one package vignette for both packages, but which should be included > into package A1. > > So in the "suggests" field of the DESCRIPTION file of A1 we suggest A2 > to be able to produce the vignette at build/install time. > > On the other hand this means that A2 has to be installed before being > able to check A1, and A1, of course, has to be installed before being > able to check A2. > > How can this dead lock be resolved? > > Is this a case for a bundle? And can a bundle have its own vignette? > > Thanks for listening > Peter, Matthias, Florian, Thomas > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel >