Atomic, lock-safe writes for config.yaml, config.user.yaml, module-help.csv and .memlog.md
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
Direzione di ricerca
Start by reading merge-config.py, merge-help-csv.py, and memlog.py to compare their current write paths, then trace how each script reads and rewrites shared files. The issue calls for a shared atomic-write helper and platform-specific advisory locking around read-modify-write operations. Done means the named files use this approach and interrupted or concurrent writes do not truncate or lose updates; the issue does not name tests to run.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe your idea
Use one write_atomic(path, text) (unique temp in the same dir + fsync + os.replace) and an advisory lock for every shared file the scripts rewrite.
Why is this needed?
merge-config.py and merge-help-csv.py open their targets with "w", so an interrupted install truncates the shared _bmad/config.yaml or module-help.csv. memlog.py has an atomic write, but with a shared temp name and no lock it loses entries under concurrency (separate bug report).
How should it work?
Shared helper vendored like the others: mkstemp(dir=target.parent), write, flush, fsync, os.replace, plus fcntl.flock / msvcrt.locking around read-modify-write. Install-time config is read by every skill, so a truncated file breaks the whole BMad setup until the installer is re-run.
PR
Happy to help implement this if the direction is agreed.
- Lingua principale
- Python
- Stelle
- 220
- Fork
- 54
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di bmad-code-org/bmad-builder
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
bmad-code-org/bmad-builder#157 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
bmad-code-org/bmad-builder#153 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
bmad-code-org/bmad-builder#151 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
bmad-code-org/bmad-builder#127 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
bmad-code-org/bmad-builder#123 ·
Tutte le issue di bmad-code-org/bmad-builder
Issue simili
-
namespace
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 68/100
EclipseFdn/open-vsx.org#15604 ·
I maintainer di solito rispondono entro 1 giorno
-
app: scripts severity: low status: backlog type: bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
netbox-community/netbox-scripts#164 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 5 giorni
-
Public function to read participants.tsvForse già presa @bruAristimunha l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 85/100
huggingface/tau#799 ·
I maintainer di solito rispondono entro 2 giorni