-
Notifications
You must be signed in to change notification settings - Fork 360
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Specifying multiple languages in a single environment #437
Comments
Nice to see your work on multi-languaging! I think the current "leader" for most different languages in one image is https://github.com/binder-examples/multi-language-demo. I'd look how things are solved there and see what you can learn and/or contribute to that example. I am -1 on making repo2docker (the software) more complex to facilitate extreme multi-languaging in one repository. If there are some simple, low maintenance changes we can make to help with multiple languages we should discuss those. Going beyond two or maybe three languages in one repository doesn't seem to be something a large number of people do in practice. Keeping things simple and mostly "zero config" for the common use cases at the expense of having to use a It could be that I am missing something here, if so please tell me! |
The The SoS approach allows the use of multiple kernels in one notebook, orchestrated by the SoS kernel, There is no need to learn multiple inter-language modules because SoS provides a universal way to exchange variables between live kernels of supported languages. This means multiple kernels need to be set up to be used in a SoS environment. I understand the difficulties to provide extreme multi-languaging in one repository. However, given that repo2docker currently only supports |
To be fair, composability is one of the primary design principles of repo2docker. From that design page:
|
We try build packs in turn until one of them matches. Currently the Julia build pack gets tried before the R one. A build pack can inherit from others and call its parents classes methods to collect scripts/steps for assembling the image. Both the Julia and R build packs inherit from the conda build pack, this means neither is a parent of the other. Experimenting with changing how things are composed by inheritance would not change how users specify things so it is worth experimenting with. |
+1 to making R+Julia work without resorting to postBuild. edit: conda doesn't cover cases where you need to install a development verion of a package... |
The SoS kernel allows the use of multiple Jupyter kernels in a single Jupyter notebook. When I tried to set up an environment that contains multiple languages (e.g. Julia and R) for a binder example (binder-examples/jupyter-sos), I noticed that
runtime.txt
is ignored with the presence ofREQUIRE
. It turned out that I could use configuration files for simple cases (e.g.environment.yml
andREQUIRE
for python-julia, andenvironment.yml
andruntime.txt
for python-r), but I had to use aDockerfile
to provide more kernels.It would be nice if
repo2docker
could allow the use of more configuration files simultaneously in a single environment. There can be compatibility issues between different languages, but perhaps certain level of isolation (e.g. put interpreters and their dependencies to their own directories) could help.The text was updated successfully, but these errors were encountered: