Bugs when sharing modules

Everything related to the development of modules in jamovi
Post Reply
Hark
Posts: 9
Joined: Mon Jun 12, 2023 5:45 am

Bugs when sharing modules

Post by Hark »

Hello, I'm trying to develop an expansion package for RSA analysis on my side. I can run the program and the analysis of the package successfully on my own computer and in jamovi software.
However, when I share the package with others using jmo, they get the following error when using the package. '

Wrong: object ‘A' not found

‘A' is the name of variable.

Is there any solution for this? any suggestions on how to check the error?
User avatar
jonathon
Posts: 2627
Joined: Fri Jan 27, 2017 10:04 am

Re: Bugs when sharing modules

Post by jonathon »

hi,

i'm not sure what the issue may be here. generally speaking, .jmo files aren't compatible across operating systems, so if you build for windows, it won't work on macOS for example. could that be the issue here?

kind regards
Hark
Posts: 9
Joined: Mon Jun 12, 2023 5:45 am

Re: Bugs when sharing modules

Post by Hark »

Not really, we're all on windows and even have the same version of jamovi as well. Is it possible that when the jmv file asks for variables, you need to define the relevant file paths? Because different paths to read variables may be set on different computers? This is just my guess, but there doesn't seem to be a place to set the paths inside the b.R file.
User avatar
jonathon
Posts: 2627
Joined: Fri Jan 27, 2017 10:04 am

Re: Bugs when sharing modules

Post by jonathon »

hi,

i think you'd need to commit your module somewhere for us to take a look -- can you push it to github? i'm not familiar with this particular R error message.

cheers
Hark
Posts: 9
Joined: Mon Jun 12, 2023 5:45 am

Re: Bugs when sharing modules

Post by Hark »

Thanks, I have uploaded some module code on the github. [https://github.com/LuckyHark/superRSA.git]
I'm not sure this code is enough?
User avatar
jonathon
Posts: 2627
Joined: Fri Jan 27, 2017 10:04 am

Re: Bugs when sharing modules

Post by jonathon »

when you enable dev mode (under the kebab menu) where abouts is the error occuring?

cheers
Hark
Posts: 9
Joined: Mon Jun 12, 2023 5:45 am

Re: Bugs when sharing modules

Post by Hark »

Debug

Error in eval(predvars, data, env): object 'UseTime' not found

eval(ev)
eval(ev)
private$.plot(image, theme = t$theme, ggtheme = t$ggtheme, ...)
persp(rsm::rsm(as.formula(paste(self$options$dep, "~SO(", self$options$groupA, ",", self$options$groupB, ")")), plotData), as.formula(paste(self$options$groupA, "~", self$options$groupB)), zlab = "X", contours = list(z = "top"), col = hcl.colors(50), border = NULL)
rsm::rsm(as.formula(paste(self$options$dep, "~SO(", self$options$groupA, ",", self$options$groupB, ")")), plotData)
eval(CALL, parent.frame())
eval(CALL, parent.frame())
lm(formula = UseTime ~ FO(Length, Num) + TWI(Length, Num) + PQ(Length, Num), data = plotData)
eval(mf, parent.frame())
eval(mf, parent.frame())
stats::model.frame(formula = UseTime ~ FO(Length, Num) + TWI(Length, Num) + PQ(Length, Num), data = plotData, drop.unused.levels = TRUE)
model.frame.default(formula = UseTime ~ FO(Length, Num) + TWI(Length, Num) + PQ(Length, Num), data = plotData, drop.unused.levels = TRUE)
eval(predvars, data, env)
eval(predvars, data, env)

Thanks,it might be some problems with passing variable.
User avatar
jonathon
Posts: 2627
Joined: Fri Jan 27, 2017 10:04 am

Re: Bugs when sharing modules

Post by jonathon »

could you provide a data set that will let me reproduce this?

pro-tip, i think you'll want to assemble formulas using jmvcore::constructFormula() rather than paste ... it automagically deals with variable names with spaces in them:

https://www.rdocumentation.org/packages ... uctFormula

cheers

jonathon
User avatar
jonathon
Posts: 2627
Joined: Fri Jan 27, 2017 10:04 am

Re: Bugs when sharing modules

Post by jonathon »

hi hark,

it looks as though we’re seeing a subsequent error. the analysis fails because it can’t load tcl/tk, and so it doesn’t complete successfully, and then it enters the plot phase, but because they earlier phase didn’t complete, the plot fails, and that’s the error we’re seeing.

jamovi should probably be smarter here, and not enter the plot phase if the run phase errors.

but if you comment out the renderFun line in the .a.yaml file, it won’t plot, and we can see the original error message.

anyhow, the issue stems from the RSA package wanting to use tcl/tk, and tcl/tk module not working ... i’m not sure why this is ... tcl/tk is a *very old* library, and it does tend to be a bit problematic.

take a look and see if there’s a way to achieve what you’re trying to achieve without tcl/tk

if you *have* to use tcl/tk then come back to me, and i’ll spend some time seeing if i can find a way to make it work ... but there’s no guarantee i’ll be able to :/

jonathon
Post Reply