Remove install-dev.sh and merge its functionality into each service daemons
- 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
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