lablup / lablup/backend.ai

Remove install-dev.sh and merge its functionality into each service daemons

Open
#975 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

Let's take a lesson from what Elastic does: Open-source developers should be able to see the first running screen with just one command.

- Auto-populate etcd/toml configs, directories, and databases when they don't exist and there is no explicit configs.\* We need to include sample configs and fixtures in the distributed wheel packages so that package-based installation could also do the same.

- Distinguish whether it's a dev-mode or not by checking the current service IP is 127.0.0.1 or something else.
- In the dev-mode, automatically run `./py -m alembic upgrade head` or `./backend.ai mgr schema oneshot` with fixture population depending on the database state, upon the manager startup.
We may need some guidance for Pants setup and leave some bits of Python 3.9 detection and Pants runtime setup as a helper script for source installations.

JIRA Issue: BA-226

Contributor guide

Open the contributing guide

Research direction

Start by reviewing install-dev.sh and the manager startup path, then trace the existing ./py -m alembic upgrade head and ./backend.ai mgr schema oneshot flows. Identify how source and distributed wheel installations currently provide configs, directories, databases, samples, and fixtures. Done means the functionality is handled by the service daemons with dev-mode detection and the required database initialization, while any retained source-installation helper scope is documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend, database, devops
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.