IO-SDK come si procede

Ciao, molti mi chiedono ovviamente: cosa è l’IO-SDK, cosa c’è da fare e come si procede?

Intanto per vederlo potete andare su questo video.

La cosa da fare semplicissima è quello di andare dal proprio comune e dirgli che se vogliono mandare delle notifiche ai cittadini tramite l’app IO e implementare servizi possono usare questo SDK. E se vi offrite per aiutarli e vi fate pagare per questo è perfettamente lecito. Open Source non è mai stato “lavorare gratis”.

Molto lavoro consisterà nell’effettuare delle integrazioni con i vari gestionali dei vari comuni, e questo richiederà la collaborazione delle software house. Sappiamo che dovremo fare del lavoro per convincerle a rilasciare i connettori come open source ma il kit è predisposto per usare qualunque connettore vogliano mettere su GitHub.

Il kit essenzialmente importa per ora dati da file excel e li manda a IO, ci sarà un connettore anche per database e uno per generici servizi rest ma questi connettori sono solo esempi.

Occorrono scrivere connettori per ogni possibile caso. I connettori sono semplici script che possono essere scritti in poche ore, leggono dei dati e li formattano nel formato che si attende l’SDK, che è molto semplice.

Dal punto di vista dello sviluppo, oltre a scrivere i connettori per ogni possibile fonte dati ci sarà da migliorare il tutto, aggiungendo funzioni all’SDK stesso.

L’admin è una app in javascript, scritta in Svelte (che è di gran lunga a quello che ho trovato l’ambiente che richiede meno studio). Le API sono azioni serveless Python, sostanzialmente singole funzioni senza framework in vari linguaggio. La cli è scritta in Go, ed è un binario portabile Windows/Mac/Linux con installer per i principali sistemi (Windows,Mac,Debian,RedHat).

Io sto per forkare il kit e portare il tutto su NoiOpen e poi farò una call per spiegare come funziona il tutto e come si sviluppa.

7 Mi Piace

Oggi ho speso non so quante ore a…

  • sistemare i test nella continuous integrations (ci sono 3 livelli di test)
  • eliminare le vulnerabilità segnalate
  • chiudere i bugs segnalati nelle issues…

Il tutto per preparare la release 0.5.1 di cui farò uno snapshot e chiederò di testarmelo prima che la porto nel repo della community.

Speriamo questa cosa insegni qualcosa a qualcuno…

5 Mi Piace

Io, se ritenuto utile, posso contattare alcuni Comuni e verificarne l’interesse. Poi passo la palla qui nella Community. Tra le due fasi, però, potrebbe porsene un’intermedia: il Comune potrebbe voler sapere che tipo di impegno serve, in termini finanziari. In genere si risponde (se non si tratta di medio grandi progetti) proponendo un’analisi più o meno approfondita. In questo caso come dovremmo procedere?

L’sdk ha come obiettivo che se ricadi in uno dei casi noti (fogli di excel, database, fonti dati rest) dovresti riuscire a inviare dati in un giorno! Da parte mia posso garantire il mio supporto a titolo gratuito almeno per i prossimi mesi usando la community (chat, forum) e farò delle presentazioni su YouTube. Il video già dovrebbe dare una idea di come funziona.

Ok. Allora aspetto il video per farmi un’idea e poi ci muoviamo.

Sta qui

Ciao a tutti,
premetto che non conosco GO, svelte, OpenWisk e GNU Make, ciononostante mi sono avventurato nell’installazione dell’ambiente.

eh… SI, prima che qualcuno lo chieda il PATH è a posto (ogni riferimento a cose persone o fatti realmente accaduti è puramente casuale :D)

quando lancio

make build

ottengo questo errore

PS C:\Drive\Job\AtomProject\io-sdk> make build
C:/Program Files (x86)/GnuWin32/bin/make -C admin 
make[1]: Entering directory `C:/Drive/Job/AtomProject/io-sdk/admin'
node -v | grep v10
"grep" non è riconosciuto come comando interno o esterno,
 un programma eseguibile o un file batch.
make[1]: *** [public/build/bundle.js] Error 255
make[1]: Leaving directory `C:/Drive/Job/AtomProject/io-sdk/admin'
make: *** [build] Error 2

Ora due domande :slight_smile:

  1. Come lo risolvo? :smiley:
  2. perchè il make build (si può dire di root? ovvero padre) nella sua catena di build (altri makefile dipendenti) ne chiama uno in ambiente windows che ha un riferimento al comando grep di linux?

Di seguito le linee incriminate nel file .\io-sdk\admin\Makefile

public/build/bundle.js: $(wildcard src/*.svelte)
    node -v | grep v10
    npm install
    npm run build

Non ho ancora provato nè su Linux né su Win, ma sono abbastanza sicuro che ti basti aggiungere C:/Program Files (x86)/GnuWin32/bin in PATH.

GS

Ciao GS,

il PATH è configurato correttemante ho anche RI-verificato e la bin di GnuWin32 è presente

A questo punto mi sorge un’altra domanda, la GnuWin32 contiene anche il comando “grep”?

PS: comunque si fa per ridere ma come disclaimer avevo specificato che il PATH era a posto perchè Michele ha scritto nel README

and be sure it is available on the path. If you don't know how to install all of this, well, I doubt you can develop IO-SDK

OK, so che avevi scritto che era a posto, ma il fatto che non lo trovi significa che non è nel PATH, quindi:

  • o il PATH non è a posto, e a questo punto lo possiamo escludere,
  • o come dici tu manca grep, e questo puoi verificarlo guardando se grep è presente in C:/Program Files (x86)/GnuWin32/bin.

GS

ok guarda io come specificato non conosco make for windows (GnuWin32) ma nella cartella che d’installazione io trovo solo

libiconv2.dll
libintl3.dll
make.exe

per confermare che il PATH è ok ti metto output del -version

PS C:\Drive\Job\AtomProject\io-sdk> make -version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for i386-pc-mingw32

GnuWin32 ha una lista di pacchetti (vedi http://gnuwin32.sourceforge.net/packages.
Da quel che posso capire hai installato solo make e invece ci sono altri pacchetti che devono essere installati (tra cui ad es. grep).
Immagino che da qualche parte durante l’installazione di GnuWin32 era necessario selezionare quali pacchetti installare, ma sto andando alla cieca. Magari do un’occhiata anch’io alla guida di installazione di IO-SDK per capirne di più.

GS

La guida non dice poi molto

- a recent version of GNU MAKE

Cito tuttavia http://getgnuwin32.sourceforge.net/ :

The gnuwin32 project makes available a huge number of packages for download. 
But every package must be chosen carefully, because there are new 
as well as old versions on the server, there are sources, binaries, documentation 
and installer packages etc.
Even worse: You must download and install every package on its own.
This is really hard work!

@msciab: Direi che a questo punto @ImLearning si è guadagnata di diritto il task di aggiornare la documentazione di installazione di IO-SDK :slight_smile:

ok ora ho capito qualcosa in più… GnuWin32 contiene i comandi che sono installabili separatamente infatti adesso ho installato anche il pacchetto per il comando grep e l’errore è cambiato

PS C:\Drive\Job\AtomProject\io-sdk> make build
C:/Program Files (x86)/GnuWin32/bin/make -C admin
make[1]: Entering directory `C:/Drive/Job/AtomProject/io-sdk/admin'
node -v | grep v10
make[1]: *** [public/build/bundle.js] Error 1
make[1]: Leaving directory `C:/Drive/Job/AtomProject/io-sdk/admin'
make: *** [build] Error 2

@msciab: inclusività dicevamo… :sweat_smile:
If you don't know how to install all of this, well, I doubt you can develop IO-SDK

So che gli sviluppatori a questo mondo pensano che non esistano altre categorie che abbiano interesse ad installare/compilare un SW, ma non hai affatto considerato quelli che sviluppano su altri SO (a ragion veduta a dire il vero :upside_down_face:).

@ImLearning ho aperto un nuovo thread per la compilazione sotto Win (Build IO-SDK su WIN), mi sono reso conto tardi che non era questo il posto adatto per questa discussione. Spostiamoci di là.

Aspetta… su Windows siccome tutti gli script sono bash, occorre eseguire il tutto con la Git Bash, mi pare ci sia scritto.

La GitBash include il comand grep. L’unico comando che manca e’ appunto make che va preso a parte. Se esegui le instalazioni come deiscritto te la ritrovi nel path di Bash,

Poi ti occorrono i 3 linugaggi usati: nodejs versione 10, go 1.14 e python 3

Quel check fa confondere le idee, io controllo che nodejs sia alla versione 10 undando nvm, che e’ come installo io node sul mac, ma faccio meglio a cambiarlo (e lo faccio).

Bene, vedo che appunto le magagne vengono subuto fuori. Ci sto provando. La cosa si sta muovendo molto il fretta e io prima di portare il software su NoiOpen sto verificando che tutte le dipendenze vulnerabili siano risolte e che tutti i test passano e ieri ho perso letteralmente 10 ore a litigare con le GitHub actions (ci sono i log sotto actions) per sistemare queste magagne. I test in locale passano ma non nel CI, ma per problemi di timing e dipendenze varie.
La frase suonera’ infelice ma e’ vero che ci sono dei prerequisiti di competenze. Abbiamo fatto di tutto per rendere il kit piu’ approcciabile possibile ma non si puo’ arrivare allo zero assoluto di prerequisiti purtroppo.

Ho aggiornato un pochettino la documentazione anche se non ho avuto modo di provare il tutto sotto Windows di nuovo. Per ora ci lavoriamo su Mac e Linux, anche se Windows lo abbiamo dovuto usare per eseguire dei test.

Capisco che non tutti hanno un Mac o usano Linux quindi in qualche modo dobbiamo fare.

Volendo su Windows si può usare anche WSL, in modo da avere Linux sotto Windows.

2 Mi Piace