kestrel-lang
kestrel-lang copied to clipboard
Installing kestrel-lang requires stix-shifter, docker, etc.
kestrel_datasource_stixbundle and kestrel_analytics_docker are "built-ins" but some kestrel installations may not use them. Since the datasource and analytics interfaces are modular, we should not build these in as it makes container installations larger than they need to be.
pip supports extras_require in setup.cfg, and we will find if we can do something like not use some dependencies when doing pip install.
Reference:
- https://stackoverflow.com/questions/41268863/difference-between-extras-require-and-install-requires-in-setup-py
Two main options
- optional dep (dash or underscore is currently an issue: https://github.com/pypa/pip/issues/11649)
pip install kestrel-lang[stix-shifter, docker, jupyter]
- separate packages
pip install kestrel-lang kestrel-datasource-interface-stixshifter kestrel-analytics-interface-docker kestrel-jupyter
2.b. separate packages + meta package
pip install kestrel-lang
which is
pip install kestrel-core kestrel-datasource-interface-stixshifter kestrel-analytics-interface-docker kestrel-jupyter
Problems to solve
Drawback of 1: how does kestrel_datasource_stixshifter package handles the case with no stix-shifter dep
Drawback of 2: how to do versioning of all packages
I like the meta package idea. Though one thing to consider - if the vast majority of users will want to use Kestrel via Jupyter, then why not make the kestrel-jupyter package require everything (including stix-shifter)? Then the "easy" installation instructions are simply pip install kestrel-jupyter.
going to merge kestrel-jupyter into kestrel-lang using https://gfscott.com/blog/merge-git-repos-and-keep-commit-history/
fixed in release 2023-10-18