Skip to content
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

kobo should have separate eggs per component #77

Open
rohanpm opened this issue Nov 9, 2018 · 1 comment
Open

kobo should have separate eggs per component #77

rohanpm opened this issue Nov 9, 2018 · 1 comment

Comments

@rohanpm
Copy link
Member

rohanpm commented Nov 9, 2018

Currently, we release kobo to PyPI as a single egg containing all kobo components. This doesn't make much sense since kobo consists of at least the following components:

  • hub
  • worker
  • client
  • utility classes

These are generally deployed to different environments and it doesn't make sense to have them all packaged together as one "all or nothing" egg.

It means that we're discouraged from defining any requirements in the kobo egg, since anyone using that may be forced to pull in a lot more dependencies than they need. For example, somebody using some of the kobo utility classes shouldn't have to install Django; and it should not be necessary to install Django to (for example) create a container image for a kobo worker via pip.

We should instead be shipping separate eggs, probably at least 4 (plus one for backwards-compat), and these should define their dependencies correctly.

For example, we could release eggs:

  • kobo-hub
  • kobo-worker
  • kobo-client
  • kobo-utils
  • kobo (deprecated egg which simply depends on the other eggs)
@lubomir
Copy link
Contributor

lubomir commented Nov 9, 2018

For example see how the package is split in Fedora on RPM level: https://src.fedoraproject.org/rpms/kobo/blob/master/f/kobo.spec

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

No branches or pull requests

2 participants