-
Notifications
You must be signed in to change notification settings - Fork 33
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
Dependencies of Plugins and OutputStreams #352
Comments
What happens if someone installs a package that conflicts with another plugin, or worse, with one of Snowfakery's own dependencies? Why a separate command? Can we do this without making it a requirement to have pip installed at runtime for anything that depends on Snowfakery? |
There is no universal solution to dependency hell but I expect that the overall complexity of Snowfakery environments (i.e. the set of recipes and their dependencies needed on any one user's computer) will be substantially simpler than full-blow-general-purpose software engineering environments for the foreseeable future.
I think so. It's not necessarily the case that every context that embeds Snowfakery needs to support recipes that depend on packages. We can decide on a case by case basis. By analogy, Jython is a Python context that does not support NumPy. "You can use Oracle in Snowfakery or you can use Snowfakery from a UI directly inside of your Salesforce org, but you can't do both at the same time." Sort of like how some Postgres extensions don't work in Heroku. It's like the Rolling Stones say... |
Sure. My point is just that we should warn users things could break, and tell them how to recover. |
Proposal:
Implementation:
sys.path.append("~/.snowfakery/site-packages")
os.environ["PIP_TARGET"]="~/.snowfakery/site-packages"
import pip
pip.main(sys.argv[1:])
The text was updated successfully, but these errors were encountered: