csunibo / config

Una raccolta centralizzata delle configurazioni per CSUnibo.
https://csunibo.students.cs.unibo.it/wiki/infrastruttura/configurazioni/index.html
GNU Affero General Public License v3.0
0 stars 3 forks source link

refactor: ♻️ teachings & degrees #20

Closed ali-benny closed 8 months ago

ali-benny commented 8 months ago

Per migliorare i corsi generici come discusso in csunibo/dynamik#122 e #17, ho creato 2 file separati:


Osservazione: teachings.json mi è venuto naturale suddividerlo per anni dato che si trattava di insegnamenti, ho il dubbio però che forse l'idea originale era di organizzarlo per id insegnamento (?)

This close #17

VaiTon commented 8 months ago

TLDR: File teachings.json array di oggetti con

File courses.json: array di oggetti con

VaiTon commented 8 months ago

@ali-benny @foxyseta confermate?

foxyseta commented 8 months ago

teachings: array di stringhe che si riferiscono all'id in teachings.json

Non un array di coppie id + booleano optional? Siccome un insegnamento opzionale per noi potrebbe non esserlo per voi e viceversa.

tutte le altre info (icone, ...)

Queste includono anche un id univoco giusto? Che nel caso di lab deve coincidere con il nome della repo? E lab ha un campo groupchat che gli altri CdL propriamente detti non hanno?

ali-benny commented 8 months ago

teachings: array di stringhe che si riferiscono all'id in teachings.json

Non un array di coppie id + booleano optional? Siccome un insegnamento opzionale per noi potrebbe non esserlo per voi e viceversa.

tutte le altre info (icone, ...)

Queste includono anche un id univoco giusto? Che nel caso di lab deve coincidere con il nome della repo? E lab ha un campo groupchat che gli altri CdL propriamente detti non hanno?

confermo

VaiTon commented 8 months ago

Non un array di coppie id + booleano optional? Siccome un insegnamento opzionale per noi potrebbe non esserlo per voi e viceversa.

A questo punto direi di fare due fields in teachings: mandatory and optional

Queste includono anche un id univoco giusto? Che nel caso di lab deve coincidere con il nome della repo? E lab ha un campo groupchat che gli altri CdL propriamente detti non hanno?

Forse sto capendo male io, ma l'id univoco non potrebbe essere il nome del repository? Riguardo alla groupchat, non dovrebbe essere specificata per tutti gli insegnamenti?

ali-benny commented 8 months ago

Forse sto capendo male io, ma l'id univoco non potrebbe essere il nome del repository?

Sisi infatti.

Riguardo alla groupchat, non dovrebbe essere specificata per tutti gli insegnamenti?

Penso di sì. Solo voi di ing-info fate eccezione quindi lascerei come ora questo campo.

foxyseta commented 8 months ago

Forse sto capendo male io, ma l'id univoco non potrebbe essere il nome del repository? Riguardo alla groupchat, non dovrebbe essere specificata per tutti gli insegnamenti?

@VaiTon @ali-benny Si stava parlando dei CdL nella parte di messaggio a cui ho risposto, non di insegnamenti.

ali-benny commented 8 months ago

Forse sto capendo male io, ma l'id univoco non potrebbe essere il nome del repository? Riguardo alla groupchat, non dovrebbe essere specificata per tutti gli insegnamenti?

@VaiTon @ali-benny Si stava parlando dei CdL nella parte di messaggio a cui ho risposto, non di insegnamenti.

ops, comunque sì, riconfermo la frase. Per quanto riguarda l'id dei teachings potrebbe essere utile per non scrivere doppioni e richiamare con ref [credo di averlo già scritto, mi sto un po' perdendo tra i messaggi]

foxyseta commented 8 months ago

TLDR2: File teachings.json array di oggetti con

File courses.json: array di oggetti con

foxyseta commented 8 months ago

Siccome il pulsante della chat vogliamo già aggiungerlo al "CdL" lab, lo facciamo anche per gli altri CdL che hanno una comunità Whatsapp/chat Telegram del CdL? Per chi come informatica invece ha gruppi degli anni vogliamo fare anche le chat degli anni?

foxyseta commented 8 months ago

OT: impostata questa PR come "bozza" siccome:

ali-benny commented 8 months ago

Siccome il pulsante della chat vogliamo già aggiungerlo al "CdL" lab, lo facciamo anche per gli altri CdL che hanno una comunità Whatsapp/chat Telegram del CdL? Per chi come informatica invece ha gruppi degli anni vogliamo fare anche le chat degli anni?

Mi sembrano ottime idee

ali-benny commented 8 months ago

btw attualmente il "nome repo" è già assegnato al campo "url", possiamo sfruttare questo campo o lo duplichiamo in un nuovo "id"?

ali-benny commented 8 months ago

TLDR2: File teachings.json array di oggetti con

  • id (che è uguale a quello della repo)
  • nome
  • chat (opzionale)
  • ...

File courses.json: array di oggetti con

  • id (nel caso di lab coincide con il nome della repo)
  • nome
  • chat (opzionale: lab e ingegneria-informatica lo hanno, informatica no)
  • years: array di oggetti con

    • index
    • chat (opzionale: informatica/1 lo ha, ingegneria-informatica no)
    • mandatory: array di stringhe che si riferiscono all'id in teachings.json
    • electives: array di stringhe che si riferiscono all'id in teachings.json
  • tutte le altre info (icons, ...)

NOTA: dividendo year così perdiamo però quali insegnamenti sono in quali anni...

foxyseta commented 8 months ago

btw attualmente il "nome repo" è già assegnato al campo "url", possiamo sfruttare questo campo o lo duplichiamo in un nuovo "id"?

Come detto sopra io rimuoverei l'attuale campo id degli insegnamenti (in realtà è l'id del CdL, e sono i CdL a puntare agli insegnamenti, non viceversa), e poi url scegli pure se rinominarlo in id o repo o lasciarlo così.

NOTA: dividendo year così perdiamo però quali insegnamenti sono in quali anni...

Ogni anno contiene un elenco di insegnamenti obbligatori e opzionali. Non basta vedere lì?

ali-benny commented 8 months ago

NOTA: dividendo year così perdiamo però quali insegnamenti sono in quali anni...

Ogni anno contiene un elenco di insegnamenti obbligatori e opzionali. Non basta vedere lì?

Okay, ma così per aggiungere un nuovo insegnamento devo modificare sia degrees che teachings

foxyseta commented 8 months ago

Vedi: https://github.com/csunibo/config/pull/20#discussion_r1371533638

VaiTon commented 8 months ago

Okay, ma così per aggiungere un nuovo insegnamento devo modificare sia degrees che teachings

Sinceramente va bene così secondo me

foxyseta commented 8 months ago

Ho menzionato l'ultimo TLDR dove ho integrato tutti i vostri commenti nella issue collegata in modo da documentare lo schema desiderato. @ali-benny se è troppo pesante/tedioso come lavoro dimmi pure che quando avrò più tempo potrò darti una mano.

ali-benny commented 8 months ago

Domanda: ho riadattato i file in base al TLDR 2. A questo punto la repo csunibo/lab come la gestiamo? metto l'id del teaching all'interno della mandatory?

foxyseta commented 8 months ago

Se ho capito bene lab è solo un CdL e non un insegnamento. Quindi scompare dal file teachings.json e quando lo dichiari in courses.json non definisci un campo years. Usiamo il "non c'è un campo years" per capire che linka direttamente al listing della sua repo.

foxyseta commented 8 months ago

Ho creato una branch https://github.com/csunibo/config/tree/stable dove aggiungere i nuovi insegnamenti nel vecchio formato finché dynamik non supporta quello nuovo. Questo nel caso ci mettiamo tanto ad aggiornare dynamik per qualche motivo o se la gente ha fretta di vedere i nuovi insegnamenti in produzione per motivi di pubbliche relazioni.

@csunibo/ingegneria-informatica @csunibo/artificial-intelligence-1 questa modifica impatterà il leggermente il vostro flusso di lavoro per la creazione di nuove repo, ma aggiorneremo la documentazione. Nulla di preoccupante!

foxyseta commented 8 months ago

@VaiTon durante il rebase non hai lasciato fuori uno dei due insegnamenti di IA?

VaiTon commented 8 months ago

@foxyseta non ho fatto rebase ma merge, quindi mi sembra strano che abbia tolto roba. Potrebbe essere che non erano ancora stati convertiti al nuovo "formato"?

foxyseta commented 8 months ago

Sì scusa devo smettere di usare rebase per intendere "merge/rebase da main verso branch secondaria". È sbagliato.

Comunque l'idea è che tutto quello che è su main è nel vecchio formato, quindi chiunque faccia il merge per ora deve per forza riportare tutte le modifiche nel nuovo (in questo caso è solo un insegnamento quindi ci metti un secondo).

foxyseta commented 8 months ago

Ho visto che hai specificato il degree anche per il laboratorio di amm. sistemi. È perché vuoi aggiungere pure quello agli opzionali di informatica (assumendo ci siano persone di informatica che lo facciano davvero)?

ali-benny commented 8 months ago

Ho visto che hai specificato il degree anche per il laboratorio di amm. sistemi. È perché vuoi aggiungere pure quello agli opzionali di informatica (assumendo ci siano persone di informatica che lo facciano davvero)?

sì, so di diverse persone al 3 che lo seguiranno

foxyseta commented 8 months ago

Ottimo. ALlora lo aggiungerei agli opzionali di informatica in degrees.json. E poi mi sembra tutto giusto.

foxyseta commented 8 months ago

@ali-benny quando vuoi puoi unire a main per me.