[Phase 16] S13 — Packaging metadata, dependency single-source, container distribution
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 12/100
- Tipo de issue
- Refatoração
- Clareza
- Razoavelmente clara
- Status de atividade
- Ativa
- Stack de tecnologia
- docker, docker-compose, python
- Domínio
- build-system, devops, documentation
Direção de pesquisa
Blocked by #888, so start there; this step is reviewed against that standard. Begin with the roadmap plan at docs/roadmap/phase-16-trust-surface-hardening.md lines 682-721, then the cache mount in docker-compose.yaml (hf_cache at /root/.cache/huggingface versus USER forgelm). Done means the seven exit criteria pass, including the workflow_dispatch smoke job and twine check.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Roadmap · Phase 16, step S13 · size L · 7 unit(s) · planned in
docs/roadmap/phase-16-trust-surface-hardening.md:682-721
Summary
The distribution surface — what a user installs and what they run it in — with one root cause: hand-maintained duplicates of a single truth. docker-compose.yaml mounts hf_cache:/root/.cache/huggingface while the image drops to USER forgelm, so the cache never persists (an artifact defect, not only a documentation one). The manual advertises three image variants (latest, slim, airgap) that nothing builds, and every documented docker run … forgelm --config … resolves to forgelm forgelm … against the shipped ENTRYPOINT.
Units
| Unit | Tracked by (October 2026 review) |
|---|---|
C31-DOCKER-RUNBOOK (= DOCS-05 + OPS-13) |
#157 · #159 · #201 · #210 · #217 · #218 · #298 · #409 · #422 · #451 · #602 · #615 · #619 · #638 · #643 · #702 · #789 |
F-W20260729-OPS-11, F-W20260729-OPS-12, F-W20260729-OPS-14, F-W20260729-OPS-17, F-W20260729-OPS-18 |
#114 · #465 · #523 · #558 · #566 · #607 · #668 · #686 · #702 · #776 |
C31-DEPENDENCY-SOURCE (= OPS-07 + OPS-08) |
#537 · #686 · #702 |
Blocked by
#888 — the standard this step is reviewed against; write it first.
Decisions this step executes
- C-15 — container distribution: local
docker buildis the contract; a published image is tracked as a condition (deferred issue). - C-16 — fix the
docker-compose.yamlcache path in the same change, with a### Fixedentry naming the orphaned-volume effect.
Plan
- Delete the three phantom variants and re-derive README and both manuals from the artifacts on disk.
- Fix the compose cache path in the same change.
Exit criteria
- README and both manuals describe exactly one distribution path.
- A guard fails when a first-party registry reference has no backing publish workflow, when a compose file name in prose is absent from disk, or when a documented service name is absent from
services:. - The documented first container command succeeds in a
workflow_dispatchsmoke job. - Two disposable
docker compose run --rminvocations share one cached snapshot without root. - The documented wizard command leaves a validated YAML on the host after
--rmthat passespython3 -m forgelm --config <file> --dry-run. - A meta-test compares normalised direct dependencies between the nightly minimum-deps list and the package metadata.
- A clean isolated build emits no packaging-metadata deprecation warning and
twine check dist/*passes.
How to deliver
- One root-cause family, committed on its own; then an Opus review round and a Sonnet review round, each with verified findings fixed and committed before the next step begins.
- A reproducer that is red before the fix and green after; the full gauntlet from
CLAUDE.mdpasses under./.venv/bin/python. - Every English documentation edit ships with its Turkish mirror in the same commit; a new or renamed audit event gets its EN and TR catalog rows in the same PR.
- A step that grows a deferred module carries its
budget_historyjustification in the same diff; a widened guard rolls out non-strict first, then flips. - Commit bodies cite
Absorbs F-W20260729-…; the CHANGELOG[Unreleased]section gets an entry only for a change a user or library consumer can observe (decision C-20).
Planned in docs/roadmap/phase-16-trust-surface-hardening.md (read at f94595f). Unit IDs (F-W20260729-…) come from the 2026-07-29/30 full-project review; the issue numbers next to them are the October 2026 review's records of the same defects.
- Linguagem predominante
- Python
- Estrelas
- 9
- Forks
- 1
- Merge médio
- 9h 17min
- PRs com merge (30d)
- 60
Preparar o ambiente
- Inclui um Dockerfile ou arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de HodeTech/ForgeLM
-
area: site bug good first issue severity: low wave: 4
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
HodeTech/ForgeLM#961 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
-
area: dev-tooling bug severity: low source: roadmap wave: 4
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
Mantenedores costumam responder em até 1 dia
-
Trend-tracking jq recipe prints evaluation_completed=false as 'n/a', because jq's // operator treats false like null (F-W1-DOCS-TRAIN-16)Talvez já em andamento @yuefdev assumiu há 20 dias. Abertadocumentation good first issue severity: low source: review-2026-09 wave: 4
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 80/100
Mantenedores costumam responder em até 1 dia
-
documentation severity: medium source: review-2026-09 wave: 3
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
documentation good first issue severity: medium source: review-2026-09 wave: 3
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
Mantenedores costumam responder em até 1 dia
Todas as issues de HodeTech/ForgeLM
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
-
enhancement
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 66/100
RunestoneInteractive/rs#1661 ·
Mantenedores costumam responder em até 2 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 64/100
streamlink/streamlink#7192 · 4 comentários ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 75/100
Mantenedores costumam responder em até 2 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
aws-samples/sample-per-model-bedrock#795 ·
Mantenedores costumam responder em até 1 dia