Comments (21)
Oops. Sorry. Reverted and will investigate.
from callr.
But then, how did an older devtools version fix this?
from callr.
Current devel devtools uses callr, older devtools does not!
from callr.
I just just don't see it. The new version of callr
will not require quoting external commands and arguments, but the only devtools
-related code that uses callr
with quoting is here: https://github.com/r-pkgs/pkgload/blob/master-clean-start/R/install-min.r#L15-L16
and it seems that this code was already removed from pkgload
.
Am I missing sg?
from callr.
Aha, I think I got it. Here:
https://github.com/r-pkgs/pkgbuild/blob/5ed87aa1c6f0482123d53a242df3dbc058e39f2c/R/compile-dll.r#L147-L148
and probably here as well:
https://github.com/r-pkgs/pkgbuild/blob/551a3c7e7f6f80dc8edc35039613c43f2a89e7fe/R/build.r#L71
Anyway, we need some (small) transitioning plan for these, because callr
will not work with quoting. So at some point we just need to remove the quoting from pkgbuild
, and I guess also add a remote to the newer callr
version.
from callr.
Yeah I think pinning devtools / pkgbuild to callr before the quoting, then we can fix pkgbuild /devtools and update the remote.
from callr.
@jimhester OK, here is the plan. Only pkgbuild
is affected. devtools
and pkgapi
and pkgdown
also use callr
, but they are not affected.
- I submit a PR to
pkgbuild
, that pinscallr
- @jimhester merges the PR
- I update
callr
to useprocessx
. - I submit a PR to
pkgbuild
that pinscallr
to the new version (?), and removes theshQuote()
. - @jimhester merges the PR
- ... time passes ...
- I put the new
callr
on CRAN (also needsprocessx
, etc. on CRAN) - I submit a PR to
pkgbuild
to remove the pinning and the callr remote entirely - @jimhester merges the PR
OK?
from callr.
👍 , it is up to you if we pin the new callr version or just let it track the head of callr, in some ways I prefer the latter so we uncover issues sooner, but it is your call.
from callr.
@jimhester pinning PR submitted.
from callr.
it is up to you if we pin the new callr version or just let it track the head of callr, in some ways I prefer the latter so we uncover issues sooner, but it is your call.
Can I pin to HEAD
? Just because if I just say r-pkgs/callr
, then nothing indicates that the old version is bad....
from callr.
Both r-pkgs/callr@HEAD
and r-pkgs/callr@master
seem to work
from callr.
Thanks, submitted another PR.
from callr.
Thanks again. It seems that actually devtools
needs a PR as well:
https://github.com/hadley/devtools/blob/2e3c4b692e3aecd7a4fd746e3000db1f4aa706bd/R/install.r#L158
from callr.
@jimhester PR for devtools: r-lib/devtools#1493
from callr.
This appears to still be broken, in some capacity. We're getting extra quotes in our devtools -> callr interactions:
> devtools::install_git('http://<our on-prem git solution>/dsc/coreFunctions.git', force = T)
Downloading git repo http://<our on-prem git solution>/dsc/coreFunctions.git
Installing coreFunctions
Running command /Library/Frameworks/R.framework/Resources/bin/R
Arguments:
CMD
INSTALL
/private/var/folders/f5/7fhn61rj61nfq4s29ww0sk5jrmxt2m/T/RtmpklYkmZ/fileb1b368156e15
--library='/Library/Frameworks/R.framework/Versions/3.3/Resources/library' --install-tests
Error: ERROR: cannot cd to directory ‘'/Library/Frameworks/R.framework/Versions/3.3/Resources/library' --install-tests’
Installation failed: NULL : Command failed:
Error: ERROR: cannot cd to directory ‘'/Library/Frameworks/R.framework/Versions/3.3/Resources/library' --install-tests’
Note that R CMD INSTALL
is trying to cd
to the ‘'/Library/Frameworks/R.framework/Versions/3.3/Resources/library' --install-tests’
directory, which is obviously a quoting problem.
from callr.
Yes, I think the shQuote
form here needs to be removed:
https://github.com/hadley/devtools/blob/90a866b594389bacb2e579c358fd71736410606a/R/install.r#L145
@jimhester can you remove it pls?
from callr.
I made that change in our local copy and it's still trying to include the entire opts
array in the cd
. It's hacky, but I had to also comment out the --install-tests
. I'm not sure why it's interpreting the entire opts
as a path.
from callr.
Should be fixed by r-lib/devtools@ab176e6
from callr.
from callr.
@jimhester great, thanks!
from callr.
Agreed, thanks to both of you for the quick turn-around!
from callr.
Related Issues (20)
- r_bg process stop after some time as session reload or closed HOT 9
- Subscript out of bounds error HOT 2
- system2("Rscript", args ="-e 1") via r_session$new(): Fatal error: creating temporary file for '-e' failed HOT 6
- Incompatible with websocket library HOT 1
- Release callr 3.7.3
- BATCH: outfile cannot have relative path with ~, while R CMD BATCH allows it? HOT 1
- rsession `get_running_time()` method HOT 1
- Feature request: Capture all R Console output with timestamp? HOT 6
- ignoring sigpipe signal HOT 2
- Wrong context for error handling? HOT 1
- Support `carrier::crate()` functions
- Set device for printing HOT 3
- Client library occasionally not found HOT 7
- Overwritten S3 methods when pak is loaded before callr
- Use library path of a fresh R session HOT 2
- Access original error HOT 2
- How do I pass object back to main session from `r_bg`. HOT 2
- Subprocess isolation HOT 6
- Reset non-set environment variables HOT 9
- How Do I Pass A Custom Function To callr::r()? HOT 10
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from callr.