-
Notifications
You must be signed in to change notification settings - Fork 22
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
install optional dependencies by default #397
Comments
Hi @pmeier, I'm not sure if I should be giving my opinion on an Issue labelled as After reading through this issue I did a bit of a web digging to know how others might be doing it and if there are some best practices that's need to be followed along the way. While doing this I found about this interesting package:
I also found about this:
I'd be happy to work around this issue and I'd personally prefer to divide the problem statement into 2-3 smaller chunks & thus target it as a whole, i.e.:
In addition to this I feel other than I'd love to start working around on #367 upon your directive. Thanks a lot 💐 |
You absolutely should. RFD is short for "request for discussion".
You mixed something up here. "fine grained control" means the bare bones version, since the user now is in total control which dependencies they want to install. The This way, a new user has all the builtin features available right from the start and only when you have a more serious use case for Ragna, you can install the
Sounds good in general. Let me ask for some feedback on this offline before we start though to make sure we aren't going into a direction that users actually don't want. Furthermore, I would not start with the release workflow. Let's create a proof of concept for the two packages |
Emoji vote for the bare bones postfix. Multiple votes allowed per person. Option with most votes wins.
|
How about |
Thanks for the suggestion @hameerabbasi but in Philip's comment above:
|
Let's make a decision.
@arjxn-py You can go ahead and send a PoC PR to have the two packages. If we have that we can decide on a release workflow. |
Hi, I've already started trying out things and digging about the same. Hopefully I'll be able to raise a PoC PR this week only, I'll also let you know in case i'd want to discuss something specific or require help. |
@arjxn-py I realized we haven't written down exactly what we want to achieve. So here it is:
|
No worries, as the good thing is that I've been already working with keeping just the same thing in mind as you suggested. Thanks for further clarifying :), tbh the issue was very well written and self-explanatory 🚀. Kudos |
@arjxn-py Just thought of another requirement that we have: when inside the project root, Meaning one of the |
I'll make sure that this particular requirement also fulfills by testing it on my fork's poc branch. Although I'm still WIP with shim
I'm also in favor of having the one with batteries included, you can confirm the decision :) (It'll be a small change even if we change our minds in future) |
We currently suggest people install
ragna[all]
by default and only drop the[all]
extra if they want fine-grained controlragna/docs/install.md
Lines 9 to 23 in e0fe014
pip install ragna
, which is what most people will try first, will only give them a bare bones version, i.e. almost no builtin components other than the demo ones. Meaning, new users will have to consult the documentation to get Ragna in a reasonable state. Since "fine-grained control" is a power user feature, the difficulty with installing Ragna is flipped.We could create a
ragna-base
package, which corresponds to what we currently have forragna
and make the defaultragna
what is currentlyragna[all]
. Note that we need to do something like that for other package managers, i.e.conda
anyway, since optional dependencies are not supported. See #396 for a discussion (cc @kklein).This of course has the downside that the packaging configuration and release workflow will get more complicated as we now have to release two packages in unison rather than one. We have #367 to automate the release process so this in theory shouldn't be too bad.
Regarding naming, I've borrowed the
-base
postfix from conda-store packages. Thecore
postfix, e.g.botocore
orpydantic-core
is not really an option, since we already have aragna.core
namespace and I don't want to associate this single namespace with the package. I'm open for other suggestions though.The text was updated successfully, but these errors were encountered: