Skip to content

[Open for discussion] Refine dependencies#897

Open
zxzxwu wants to merge 1 commit into
google:mainfrom
zxzxwu:dependency
Open

[Open for discussion] Refine dependencies#897
zxzxwu wants to merge 1 commit into
google:mainfrom
zxzxwu:dependency

Conversation

@zxzxwu

@zxzxwu zxzxwu commented Mar 6, 2026

Copy link
Copy Markdown
Collaborator

(I haven't updated documentation because I think there will be some discussions)

Our dependency groups is a bit complicated right now. There have been some small problems like:

  1. The number of optional dependency group is increasing
  2. Divergent cryptography version requirement
  3. Highly specialized dependencies for Emscripten
  4. Apps dependencies are marked mandatory
  5. Not everyone needs all transports

So here we apply some changes:

  • Move dev-only deps to [dependency-groups]
  • Add a all option including all other options
  • Add app and transport options
    • This might be debatable?
  • Replace appdirs with platformdirs

Also some questions:

@zxzxwu zxzxwu requested a review from barbibulle March 6, 2026 18:01
@zxzxwu

zxzxwu commented Mar 6, 2026

Copy link
Copy Markdown
Collaborator Author

Maybe avatar and pandora should be removed from all option since most users don't need them. I am planning to remove them from Bumble (including bumble.pandora) later this year since we have almost stopped maintaining them publicly.

@barbibulle

Copy link
Copy Markdown
Collaborator

I think it's a great idea to make the dependencies more modular. It seems that dependency groups are usually intended for developer-focused options (doc, tests, ...) not end users. So, for instance, transports would not really be a dependency group. Those would be optional dependencies.
I'll play around with different variants and see if I can recommend some alternatives.

@zxzxwu zxzxwu force-pushed the dependency branch 6 times, most recently from 803c6c6 to ffcd751 Compare July 1, 2026 14:22
@barbibulle

Copy link
Copy Markdown
Collaborator

I think this PR goes in the right direction. It is unfortunate that there isn't a way to specify a "default" for when no optional dependencies are specified, so this will create a breaking change for users, which we'll have to deal with by documenting the change well, and maybe also trying to print out useful errors when we can.
I suggest that for optional transports, which users won't get by default anymore, we use a try/except when importing the optional dependencies and print out the proper message (like "please install bumble[xyz]") to be helpful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants