Split BakeryConfig into a document model, CRUD manager, and build service
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Refactor
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- python
- Domain
- build-system, tooling
Research direction
Start by reading config/config.py, config/image/image.py, and RFC-TARGET-SELECTION.md, with select_targets() as the prerequisite entry point. Map the existing configuration parsing, CRUD, target generation, build orchestration, and registry cleanup responsibilities before splitting them. Done means the document model, YAML manager, and build orchestration are separated and configuration tests are no longer entangled with orchestration tests.
Written by the indexing model from the issue text.
Description
`config/config.py` (1,210 LOC) mixes five distinct responsibilities in one file: YAML lifecycle, CRUD operations, target generation, build orchestration, and registry cleanup. It imports from `image.bake.bake`, `registry_management.ghcr`, and `image.image_target`, coupling config parsing to build and registry concerns. Tests for config parsing are entangled with tests for build orchestration.
Split into:
- `BakeryConfigDocument` — pure Pydantic model (already exists in name)
- `BakeryConfigManager` — YAML CRUD, stays in `config/`
- Build orchestration service — moves to `image/` or a new `orchestration/` module
The target-generation slice maps to `select_targets()` from `RFC-TARGET-SELECTION.md`, which is a prerequisite for the full split.
Files: `config/config.py`, `config/image/image.py`
- Dominant language
- Python
- Stars
- 2
- Forks
- 0
- Avg merge
- 4d 11h
- Merged PRs (30d)
- 24
Getting set up
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from posit-dev/images-shared
-
cvp:0 docker tdp:1
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
posit-dev/images-shared#757 · 2 comments ·
Maintainers usually reply within 1 day
-
bug cvp:0 docker priority/medium python tdp:1
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
posit-dev/images-shared#685 ·
Maintainers usually reply within 1 day
-
slack-build-notify: no persisted alert state — causes suppressed repeat-failure and recovery alertsOpenbug cicd cvp:0 docker needs discussion observability tdp:2
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
posit-dev/images-shared#677 ·
Maintainers usually reply within 1 day
-
cvp:0 docker tdp:2 tech debt
Difficulty 4/5 3-5 days Newbie friendliness 48/100
posit-dev/images-shared#795 ·
Maintainers usually reply within 1 day
-
cicd cvp:0 docker enhancement tdp:2
Difficulty 5/5 Over a week Newbie friendliness 35/100
posit-dev/images-shared#773 ·
Maintainers usually reply within 1 day
All issues in posit-dev/images-shared
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
solana-foundation/pay-kit#341 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
nasa/python_cmr#123 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
EleutherAI/lm-evaluation-harness#4243 ·
Maintainers usually reply within 1 day
-
area: dashboard bug perceived difficulty: 3
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Nitjsefnie-Harness-Commons/daedalus#1179 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
cusp-ai-oss/tojax#17 ·