swarm-lab / ROpenCVLite

Utility package to install OpenCV in R
https://swarm-lab.github.io/ROpenCVLite/
GNU General Public License v3.0
53 stars 17 forks source link

Allow installation via non-interactive mode #17

Closed muschellij2 closed 4 years ago

muschellij2 commented 4 years ago

Need non-interactive mode for Rvision as it requires opencvlite to be installed

sjmgarnier commented 4 years ago

@muschellij2 I cannot merge this commit as it would create a conflict with CRAN's policy. There used to be a non-interactive installation mode in ROpenCVLite but it prevented the package from being accepted on CRAN because the user has to be able to decide on the installation of a third-party program (OpenCV) on their machine.

The relevant bit in CRAN's policy:

"- Packages should not write in the user’s home filespace (including clipboards), nor anywhere else on the file system apart from the R session’s temporary directory (or during installation in the location pointed to by TMPDIR: and such usage should be cleaned up). Installing into the system’s R installation (e.g., scripts to its bin directory) is not allowed. Limited exceptions may be allowed in interactive sessions if the package obtains confirmation from the user."

muschellij2 commented 4 years ago

I agree - but the flag is FALSE by default, which aligns with the policy. The defaults is the same as before, but for CI tests, this allows a flag to enable this. Best, John

On Wed, Oct 23, 2019 at 12:30 PM Simon Garnier notifications@github.com wrote:

@muschellij2 https://github.com/muschellij2 I cannot merge this commit as it would create a conflict with CRAN's policy. There used to be a non-interactive installation mode in ROpenCVLite but it prevented the package from being accepted on CRAN because the user has to be able to decide on the installation of a third-party program (OpenCV) on their machine.

The relevant bit in CRAN's policy:

"- Packages should not write in the user’s home filespace (including clipboards), nor anywhere else on the file system apart from the R session’s temporary directory (or during installation in the location pointed to by TMPDIR: and such usage should be cleaned up). Installing into the system’s R installation (e.g., scripts to its bin directory) is not allowed. Limited exceptions may be allowed in interactive sessions if the package obtains confirmation from the user."

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/swarm-lab/ROpenCVLite/pull/17?email_source=notifications&email_token=AAIGPLVDCMFX6YFMKO7A6RTQQB32NA5CNFSM4JED74HKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOECCBSFY#issuecomment-545528087, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAIGPLUV6AHU5PD4RFEAVI3QQB32NANCNFSM4JED74HA .

sjmgarnier commented 4 years ago

@muschellij2 Do you know examples of CRAN packages using this approach? I don't want to do another round of back and forth with the CRAN maintainers to have them tell me to roll this back again.

muschellij2 commented 4 years ago

I do not. I don't know the right answer, but the fact that installOpenCV behavior is exactly the same default behavior as before would seemingly be fine. I would say the other option is to put a CI check inside the installOpenCV function (or check options) to do it.

For example:

installOpenCV = function() {
force_install = getOption("install_open_cv", FALSE)
install = ifelse(force_install, 0, 1)
}

Where someone can set options(install_open_cv = TRUE) to have this function to work.

muschellij2 commented 4 years ago

Any thoughts on this? I've set it up for only to work on the CI systems.

muschellij2 commented 4 years ago

Not all are not for this package. They are part of our default Neuroconductor build on Appveyor, but the Python/Conda stuff can be disregarded but the

NOT_CRAN: true R_REMOTES_NO_ERRORS_FROM_WARNINGS: true

are set to 1) be more like CRAN build and 2) allow remotes installations not break a build simply due to a warning.

Best, John

On Tue, Dec 17, 2019 at 11:19 PM Simon Garnier notifications@github.com wrote:

@sjmgarnier commented on this pull request.

Why are these necessary?

  • "set PATH=%MINICONDA%;%MINICONDA%\Scripts;%PATH%"

and

NOT_CRAN: true R_REMOTES_NO_ERRORS_FROM_WARNINGS: true PYTHON_VERSION: 3.6 MINICONDA: C:\Miniconda3-x64

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/swarm-lab/ROpenCVLite/pull/17?email_source=notifications&email_token=AAIGPLVAMREDRWXXJAY4BL3QZDUXLA5CNFSM4JED74HKYY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCPPI7EY#pullrequestreview-333352851, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAIGPLVTOEM6EQKSFO3E3KTQZDUXLANCNFSM4JED74HA .

sjmgarnier commented 4 years ago

@muschellij2 I merged the PR. I will now update the package to work with the latest version of OpenCV and push it to CRAN today if everything works.

sjmgarnier commented 4 years ago

@muschellij2 ROpenCVLite 0.3.412 is on CRAN now. Thanks for your help! On to Rvision now!