lablup / lablup/backend.ai

Split out several packages from `ai.backend.common`

Open
#517 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
670
Forks
183
Avg merge
15h 13m
Merged PRs (30d)
368

Description

Currently `ai.backend.common` is for server-side components.Let's split it out to multiple `ai.backend` namespace packages so that it could be reused in client-side components without importing all the server-specific modules.

- [ ] `ai.backend.common.validators` → `ai.backend.validators`
- [ ] `ai.backend.common.files` → `ai.backend.asyncio.files`
- [x] `ai.backend.common.logging` → `ai.backend.logging`
- [x] `ai.backend.common.logging_utils` → `ai.backend.logging.utils`
- [ ] `ai.backend.common.types` → `ai.backend.types`
- [ ] `ai.backend.common.networking` → `ai.backend.netutils`
- [ ] `ai.backend.common.argparse` → `ai.backend.cli.argparse`
- [ ] `ai.backend.common.testutils` → `ai.backend.testutils`
- [x] `ai.backend.common.plugin` → `ai.backend.plugin`
Also let's migrate the following module so that the output framework could be reused in the server-side components as well.Later the output package may be further refactored to have a consistent serialization and deserialization of DTOs (data-transfer objects) in both the server side and the client side.

- `ai.backend.client.output` → `ai.backend.output`
I think it would be better to have separate PRs for each separation to minimze merge conflicts and ease the review process.

JIRA Issue: BA-261

Contributor guide

Open the contributing guide

Research direction

The issue identifies the remaining package moves from ai.backend.common and ai.backend.client.output, with separate pull requests preferred for each separation. Start by choosing one unchecked module and tracing its imports and server/client consumers; done means the selected package is reusable under its new namespace without breaking existing consumers.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.