-
Notifications
You must be signed in to change notification settings - Fork 165
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
Add support for standalone application installers #211
Comments
@tjd2002 I know this is an older issue but I've tagged it as an enhancement, and with this stale issue sweep I'm doing perhaps it will get some attention. I think there is genuine potential here for this to be useful if carefully crafted. On Windows, we have the For Linux and macOS you'd have to think of something different—perhaps installing scripts into |
A closely related issue from @raphaeljolivet #330
Effectively, this is the same because the "application" in question is just |
Hi there, thank you for your contribution! This issue has been automatically marked as stale because it has not had recent activity. It will be closed automatically if no further activity occurs. If you would like this issue to remain open please:
NOTE: If this issue was closed prematurely, please leave a comment. Thanks! |
Please reopen: enhancement request still valuable |
With the impending return of
conda-run
in conda 4.6 (PR at conda/conda#7320; discussion at conda/conda#2379 and conda/conda#2682 ), I think it would be wildly useful if constructor could be used to build installers that expose only a limited set of entry points to a packaged app. I.e. allow installed software to be run without needing to activate the underlying conda env.Motivation: I am packaging a scientific software suite with Python, NodeJS, and Qt components (https://github.com/flatironinstitute/mountainlab-js). It runs magically from a conda env (recipes at: https://github.com/flatironinstitute/mountainlab-conda) and from from a constructor installer. I would love to use these tools to provide a standalone installer for users who do not already use conda (or who may not want to). However after running the constructor installer, ~200 extra binaries are added to the user's path in addition to the app I am trying to install (clobbering, among other things, the user's Python, Pip, NodeJS, npm, qmake, Qt-designer, bzip2, and conda).
Using @kalefranz's experimental
conda-run
(or @gqmelo's exec-wrappers? ), one could instead expose only a limited set of binaries, via some simple wrapper scripts. This would allow the constructor-built installer to function as a standalone app installer (albeit one backed by a conda env).One implementation of this would be to add an 'entry_points' key in
construct.yaml
(a list of binary names to wrap), and the construction of a directory of wrapper scripts corresponding to each entry point. This directory could then be added to the path upon installation, rather than the$PREFIX/bin
directory.Does this use case go against the intended purpose of constructor as a way to distribute Conda distributions? (An end user would not necessarily even be aware they were installing a Conda env). If so, it might be possible to build this functionality separately.
The text was updated successfully, but these errors were encountered: