Skip to content

[R-pkg-devel] Warnings with reverse dependencies in mutually dependend packages?

6 messages · Duncan Murdoch, Dirk Eddelbuettel, Daniel Lüdecke

#
I maintain two packages, which are kind of "mutually depending" on each 
other. Now I have updated package A, like to submit it - however, it 
produces warnings (in my package B) when doing the reverse dependency 
check. Yet I cannot fix the warnings in package B and submit it, since 
it relies on new functions of package A, which has to be submitted 
first... and so on.

My question: is it ok to submit package A, saying that I'm aware of the 
warnings in package B, which are already fixed, and that I would submit 
package B after package A has been released on CRAN?

Best
Daniel
--

_____________________________________________________________________

Universit?tsklinikum Hamburg-Eppendorf; K?rperschaft des ?ffentlichen Rechts; Gerichtsstand: Hamburg | www.uke.de
Vorstandsmitglieder: Prof. Dr. Burkhard G?ke (Vorsitzender), Prof. Dr. Dr. Uwe Koch-Gromus, Joachim Pr?l?, Rainer Schoppik
_____________________________________________________________________

SAVE PAPER - THINK BEFORE PRINTING
#
On 25/08/2015 9:48 AM, Daniel L?decke wrote:
It's not clear to me whether both packages will work in the time when
you've updated A but not B.  If not, this is a bad idea:  users of your
packages will be left with broken systems.

If you want to make incompatible changes to A, and B is the only reverse
dependency, then you could update both at once.  When you submit the
first one, say that the other submission is coming as well.

You should also be making use of version specifiers in your DESCRIPTION
file.  If B version 2 won't work with A version 1, then say that, via

Depends:  A (>=2.0.0)

Duncan Murdoch
#
Thanks for the quick reply. Yes, both packages will work. It's just that I renamed some functions in package B (e.g. `get_val_labels` to `get_labels`) and calling `get_val_labels` now throws a "deprecated"-warning (I'm using `.Deprecated` in that function call).

Thus, checking reverse dependencies, my current package A on CRAN will of course give warnings due to calling old function names, however, I already updated package A accordingly, which will no longer throw warnings once both packages A and B are updated on CRAN.

Also, I'm already using version identifiers in my DESCRIPTION file, so depend packages with correct required versions should be installed.

I guess it's not important, but the packages I'm talking about are `sjPlot` and `sjmisc`.

Best
Daniel

Am 25.08.2015 um 16:56 schrieb Duncan Murdoch <murdoch.duncan at gmail.com>:
--

_____________________________________________________________________

Universit?tsklinikum Hamburg-Eppendorf; K?rperschaft des ?ffentlichen Rechts; Gerichtsstand: Hamburg | www.uke.de
Vorstandsmitglieder: Prof. Dr. Burkhard G?ke (Vorsitzender), Prof. Dr. Dr. Uwe Koch-Gromus, Joachim Pr?l?, Rainer Schoppik
_____________________________________________________________________

SAVE PAPER - THINK BEFORE PRINTING
#
Short addition: and I can't update package A first, because package B also got a new function, which I'm also using in package A. So, the update of package A requires a function which will first be available in the update of package B...


Am 25.08.2015 um 19:39 schrieb Daniel L?decke <d.luedecke at uke.de>:
--

_____________________________________________________________________

Universit?tsklinikum Hamburg-Eppendorf; K?rperschaft des ?ffentlichen Rechts; Gerichtsstand: Hamburg | www.uke.de
Vorstandsmitglieder: Prof. Dr. Burkhard G?ke (Vorsitzender), Prof. Dr. Dr. Uwe Koch-Gromus, Joachim Pr?l?, Rainer Schoppik
_____________________________________________________________________

SAVE PAPER - THINK BEFORE PRINTING
#
Daniel,

That whole setup sounds somewhat messy.  I would either

 -  merge sjPlot and sjmisc, possibly into sjPlot and just deprecate the
    then-redundant sjmisc
    
 -  define sjbase, upload it, and have both sjPlot and sjmisc depend on it

Dirk
#
Merging sjPlot and sjmisc is no real option, because I just split the packages, since the amount of functions became too large, and the original package was no longer focussing on its initial intention. That's why I decided to split the packages.

I simply could wait with the renaming of functions and the deprecated-warning for a later update of package B, and everything would be fine - however, to reduce submission frequency, I just thought that there might be a solution for my problem.

Daniel

Am 25.08.2015 um 20:43 schrieb Dirk Eddelbuettel <edd at debian.org>:
-------------- next part --------------
--

_____________________________________________________________________

Universit?tsklinikum Hamburg-Eppendorf; K?rperschaft des ?ffentlichen Rechts; Gerichtsstand: Hamburg | www.uke.de
Vorstandsmitglieder: Prof. Dr. Burkhard G?ke (Vorsitzender), Prof. Dr. Dr. Uwe Koch-Gromus, Joachim Pr?l?, Rainer Schoppik
_____________________________________________________________________

SAVE PAPER - THINK BEFORE PRINTING