IRC channel logs

2023-06-21.log

back to list of logs

<rekado>PurpleSym: I built rstudio-server using your changes. It starts up fine with the commit that removed the pinyin dependency.
<rekado>it doesn’t solve the plots problem unfortunately; still says ‘R graphics engine version 16 is not supported by this version of RStudio. The Plots tab will be disabled until a newer version of RStudio is installed.’
<rekado>so we’ll have to upgrade further
<rekado>but your changes look fine to me
<rekado>you said you saw crashes with fuse-box. How can I reproduce those?
<PurpleSym>rekado: It should be in the logs. The build does not fail.
<PurpleSym>I wonder how the visual editor can work at all when building PanMirror fails.
<PurpleSym>(I mean, the cmake build will not fail. fuse-box backtraces for me.)
<rekado>ah, I see it in the gwt build output
<rekado>from what I understand this is the step for creating a source mapping
<rekado>that’s not a fatal error
<PurpleSym>Hm, okay.
<rekado>I mean, it’s not *right* that this fails, but … ¯\_(ツ)_/¯
<PurpleSym>Sure, if it’s just the source map then it doesn’t matter. I guess I was reading the error as “building the JavaScript” failed.
<PurpleSym>Moving all the patches to git is fine with you too? Makes rebasing onto a new version a little easier, imo.
<rekado>yes, sounds good
<rekado>my patches for multiversion support are also generated from a git repo that I update occasionally
<rekado>might as well get it directly from there
<PurpleSym>Sure. Or push them here: https://github.com/guix-science/rstudio
<rekado>okay!
<rekado>(still have to test them after rebase)
<rekado>would you like to go ahead and merge the two commits into the guix-science master branch?
<PurpleSym>rekado: Don’t you want to update the multi-version patches first?
<rekado>they can stick with the older version of rstudio for the time being
<rekado>you’re using a new source for the rstudio-server package
<rekado>the multiversion package can stick around on the upstream sources a few days longer
<PurpleSym>Okay. And the changes to node-build-system?
<rekado>the one line change should go to Guix proper.
<rekado>it looks rather uncontroversial
<rekado>best to post to the issue tracker and have Jelle Licht ack it
<PurpleSym>Yeah, that’s the way I think. I’ll add a branch to cuirass (if my cert works) too to see how big the impact is.
<PurpleSym>Which RStudio version is next? The latest?
<rekado>let me check
<rekado>I’d like to get the earliest version that supports version 16 of the graphics system
<rekado>this commit https://github.com/rstudio/rstudio/commit/564781875a172def5d28c4297b8b85355a583b9b
<rekado>it’s included in v2023.03.0+386, which is from March 9
<rekado>I don’t think it will be considerably easier to package than the latest from 3 weeks ago
<rekado>oh well.
<rekado>if the latest version is too difficult, we could fall back to v2023.03.0+386
<PurpleSym>Okay.
<PurpleSym>rekado: I double-checked and the current version of RStudio in guix-science (2021.09.2+382) definitely has a huge panmirror.js in www/js/panmirror, while 2022.12.0+353 does not. That means the error is not just about source maps.
<rekado>hmm
<rekado>okay, I’ll take a closer look at the processing of panmirror.js
<rekado>we know that the given source map is not null; we have different versions of node-source-map in the rstudio-node.scm file.
<rekado>I wonder if we’re using the correct version here.
<PurpleSym>The importer usually picks the correct version. Unless there’s a bug.
<rekado>yes, it looks fine
<rekado>node-fuse-box-3.7.1 bundles a copy of source-map in its node_modules/fuse-box/node-modules directory
<rekado>and that obviously has the correct interface
<rekado>similar error reports suggest that source-map changed from returning SourceMapConsumer to returning a promise.
<rekado>(I don’t get how this can be a problem when all these projects bundle versions that are known to work)
<rekado>fuse-concat-with-sourcemaps declares that it needs source-map 0.6.1
<rekado>whereas fuse-box uses 0.7.4
<PurpleSym>The bundling happens in node-build-system, afaik.
<rekado>it looks to me like fuse-box passes a source map in version 0.7 format to a library that only knows the 0.6 format
<PurpleSym>But previously it used 0.7.3 too.
<rekado>yeah
<rekado>I’m still in the “really confused” phase of debugging
<rekado>I’m looking into disabling source maps for panmirror
<rekado>e.g. patching out this line: https://github.com/rstudio/rstudio/blob/v2022.12.0%2B353/src/gwt/panmirror/src/editor/fuse.js#L37
<rekado>got past teh building of panmirror
<rekado>
<rekado>got a small error: Error: Cannot find module 'uglify-es', also from fuse-box
<rekado>we’ll see in a moment if that’s a problem
<rekado>yes, it’s a problem. Will try to track that one down too.
<rekado>oh, I see uglify-es was explicitly deleted from the dev dependencies
<rekado>in the fuse-box package
<PurpleSym>It should use terser instead.
<PurpleSym>But I guess the importer deleted that one too ☹️
<rekado>I’ll just disable uglification
<rekado>/gnu/store/b68bkrrql7ddvi9ip21d26kh0lrnf12b-rstudio-server-2022.12.0+353/www/js/panmirror/panmirror.js
<rekado>works
<rekado>that’s my diff: https://elephly.net/paste/1687342407.diff.html
<rekado>panmirror.js appears in the output and there are no build time backtraces
<rekado>pushed my changes to the rstudio-v2022.12.0+353 branch
<PurpleSym>I’ll give it a try.
<PurpleSym>Seems to work, although the resulting file is more than twice the size than the uglified one.
<rekado>we can uglify it manually using esbuild
<rekado>I can add another build phase to do that
<rekado>I’m trying to split out js-panmirror into its own package
<rekado>I find it strange that building panmirror works at all given that we have node 10 as an input
<rekado>it’s because we aren’t using the usual npm install workflow
<rekado>PurpleSym: I pushed my changes that move all the node stuff to js-panmirror and minify the JavaScript file.
<PurpleSym>rekado: Thanks. I guess if we’re going the esbuild route, we could also go it all the way and try to replace fuse-box altogether. I’ll have a look at that tomorrow.