bluerobotics / bluerobotics/BlueOS
core: build: Improve current build times
- Dominant language
- Vue
- Stars
- 453
- Forks
- 151
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 174
Description
### Current behaviour
* Frontend build is already faster than current backend build, so the focus should be on backend building
* **Python Packages Caching Issue**: We have encountered difficulties with caching Python packages. Each rebuild of the image triggers a reinstallation of all packages, this repetitive process is currently slowing down our build.
* **Exploring Package Manager's "Host" Mode**: One potential solution to reduce build times would be investigate whether our package manager supports a "host" mode. This mode could allow us to share dependencies more effectively, minimizing the need for repetitive installations.
* **Shared Virtual Environment for Python Services**: Another approach to consider is the utilization of a shared virtual environment across Python services.
* **Investigation into Python UV**: We could investigate the potential use of [UV](https://astral.sh/blog/uv) if it integrates well with the project and maybe perform better
* **Selective Installation of Libraries and Services**:We should install the libraries but not the services and just move the services to the final docker build stage
### Expected or desired behaviour
Better building times
### Prerequisites
- [X] I have checked to make sure that a similar request has not already been filed or fixed.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by examining the backend Docker image build and how Python packages are installed during rebuilds. Compare package caching, the package manager's host mode, a shared virtual environment, UV, and moving services to the final Docker stage. Done means backend builds are measurably faster without omitting required libraries or services.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, python
- Domain
- backend, build-system, devops
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100