Skip to content

feat: sync datasets_in_use da DI catalog nel radar daily#228

Merged
Gabrymi93 merged 1 commit into
mainfrom
feat/auto-datasets_in_use-from-di
May 13, 2026
Merged

feat: sync datasets_in_use da DI catalog nel radar daily#228
Gabrymi93 merged 1 commit into
mainfrom
feat/auto-datasets_in_use-from-di

Conversation

@Gabrymi93
Copy link
Copy Markdown
Member

Cosa cambia

  • scripts/sync_datasets_in_use.py: legge clean_catalog.json da dataset-incubator, raggruppa dataset per source_id, aggiorna sources_registry.yaml
  • .github/workflows/radar.yml: step che esegue il sync dopo il radar check daily
  • .github/workflows/ci.yml: rimosso (radar e' il posto giusto per sync daily)
  • requirements.txt: aggiunto ruamel.yaml per roundtrip YAML

Come funziona

Ogni notte (radar 03:15)
  → python scripts/sync_datasets_in_use.py
  → legge DI catalog via raw.githubusercontent.com
  → se datasets_in_use differisce, lo aggiorna
  → radar commit include l'aggiornamento

Dipendenze

Richiede PR #285 di dataset-incubator (aggiunge source_id a clean_catalog.json).
Prima che quella PR sia mergiata, lo script non trova source_id e non fa nulla (idempotente).

Riferimenti

- scripts/sync_datasets_in_use.py: sync manuale datasets_in_use da DI clean_catalog.json
- radar.yml: step automatico dopo radar check daily
- ci.yml: rimosso check (troppo frequente, meglio radar)
- requirements.txt: aggiunto ruamel.yaml per roundtrip YAML
Copy link
Copy Markdown
Member Author

@Gabrymi93 Gabrymi93 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review: feat: sync datasets_in_use da DI catalog nel radar daily #228

Modalità: lite
Verdict: APPROVE

Gate passati

  • Root-cause gate: La PR risolve il problema reale (mantenere datasets_in_use allineato con DI era manuale). Non è un workaround — automatizza un sync che prima era operazione manuale.
  • sync_datasets_in_use.py: logica lineare — fetch DI catalog via urlopen (stdlib), raggruppa per source_id, roundtrip YAML con ruamel.yaml. Idempotente: se source_id non presente, il dataset viene skipato.
  • radar.yml: step sync POSIZIONATO correttamente — dopo radar_check.py, prima del commit. sources_registry.yaml è incluso sia in upload-artifact che in git add. Commit atomico con radar data.
  • requirements.txt: ruamel.yaml>=0.18.10,<1.0 aggiunto. Libreria standard per roundtrip YAML. Già installata nel workflow radar via pip install -r requirements.txt.
  • Cross-repo: dipende da DI PR #285 (source_id). Idempotente se #285 non è mergiata — ds.get("source_id") restituisce None, dataset skipato, nessuna modifica. Sicuro da mergeare prima di #285.
  • Nessuna duplicazione: script autonomo, non duplica logica esistente.
  • Nessun test richiesto: script operativo CI, logica banale (fetch + group + update YAML).

Warning

1. ci.yml: whitespace noise

  • Due righe vuote aggiunte prima di - name: Run tests. Nessun impatto funzionale, ma rumore nel diff.
  • Fix opzionale: rimuovere le righe extra.

2. fetch_di_catalog senza try/except

  • Se il fetch fallisce (rete down, DI catalog inaccessibile), lo script lancia eccezione non gestita e fallisce con traceback.
  • Accettabile: il fallimento è visibile nei log CI, e lo step non blocca altri step del workflow (successivi separatemente). Per script CI operativo è sufficiente.

Nota

  • urlopen vs requests: lo script usa urllib.request.urlopen (stdlib) invece di requests (già in requirements.txt). Scelta voluta: zero dipendenze per un fetch singolo. Coerente con lo spirito "leggero" dello script.
  • Commit messaggio: il commit radar dice chore(so): refresh radar status [ci skip] — non menziona datasets_in_use. Poiché il sync viene dopo radar_check e prima del commit, eventuali cambi a sources_registry.yaml vengono inclusi automaticamente. Il messaggio è generico ma corretto.

Verdetto

PR solida che chiude un gap operativo (sync datasets_in_use manuale → automatico via radar daily). Script pulito, posizionamento corretto nel workflow, idempotente rispetto alla dipendenza upstream (DI #285).

Next owner: maintainer
Next action: merge (può essere mergiato prima o dopo DI #285 — idempotente in entrambi i casi)

@Gabrymi93 Gabrymi93 merged commit fe0d5be into main May 13, 2026
1 check passed
@Gabrymi93 Gabrymi93 deleted the feat/auto-datasets_in_use-from-di branch May 13, 2026 08:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant