.. _installation_guide/installation/framework_installation:
Installazione di Genropy
========================
.. raw:: html
Prerequisiti
------------
Prima di seguire le istruzioni di installazione è importante accertarsi di aver installato correttamente nel vostro ambiente di sviluppo:
- `Git `_
- `Python `_
- `pip `_
Troverete suggerimenti e consigli sull'installazione dei prerequisiti nell'apposita :ref:`appendice` di questa guida.
.. hint::
È bene assicurarsi, nel tempo, di avere sempre l'ultima versione disponibile di **pip**. Si può eseguire l'aggiornamento con il comando::
python3 -m pip install --upgrade pip
Versioni di Genropy
-------------------
Esistono due branch principali di **Genropy**:
- **master** è la versione stabile e consigliata, in Python3
- **develop** è il ramo di sviluppo, in cui è possibile testare nuove funzionalità prima che queste vengano rese disponibili sul ramo principale
.. hint::
È anche attualmente presente un ramo *legacy* non più aggiornato **py2**, compatibile con Python 2 ma che consigliamo di abbandonare.
I rami *master* e *develop* precedenti al rilascio della nuova modalità di installazione sono stati taggati come segue:
- **master-pre-243** è la versione *legacy* del ramo master a inizio marzo 2024, che utilizza la vecchia procedura di installazione
- **develop-pre-243** è la versione *legacy* del ramo develop a inizio marzo 2024, che utilizza la vecchia procedura di installazione
Per chi volesse tornare alla vecchia modalità di installazione è possibile effettuare il checkout con questi tag.
Creazione directory di sviluppo
-------------------------------
Questo passo è facoltativo, ma prima di iniziare suggeriamo di creare una *directory di sviluppo* dove andremo a clonare il repository di **Genropy** e che sarà l'ubicazione di default per tutti i progetti.
In questa guida creiamo a titolo esemplificativo una directory chiamata ``sviluppo`` ed andiamo a metterci dentro ad essa con la shell.
::
mkdir sviluppo
cd sviluppo
Clonare il progetto Genropy
----------------------------
Ora clonate il progetto usando il comando ``git clone``::
git clone https://bitbucket.org/genropy/genropy.git
Oppure::
git clone https://github.com/genropy/genropy.git
A questo punto dovreste trovarvi la directory ``genropy``, contenente tutti sorgenti del progetto all'ultimo aggiornamento.
Eseguire l'installazione
-------------------------
Dopo aver effettuato il clone del repository, è possibile entrare nella cartella ``genropy/gnrpy``::
cd genropy/gnrpy
e installare automaticamente le librerie richieste da Genropy eseguendo il comando::
sudo pip install .
.. hint::
Se si sta installando Genropy in un virtualenv è possibile omettere *sudo*.
Sono disponibili quattro profili di installazione, a seconda delle esigenze:
- ``pgsql`` - Per utilizzo con database PostgreSQL
- ``mysql`` - per utilizzo con database MySQL
- ``sqlite`` - per utilizzo con database SqLite
- ``developer`` - per installare una serie di strumenti extra utili per lo sviluppo con Genropy
L'installazione di uno o più profili permetterà di installare tutte le dipendenze necessarie. Per specificare i profili desiderati usare la sintassi::
sudo pip install --editable ".[pgsql,developer]"
.. hint::
L'attributo ``--editable`` è facoltativo, ma permette di creare un collegamento alla cartella corrente invece di installare i file. In questo modo facendo facendo il *pull* del repository sarà di volta in volta possibile eseguire gli aggiornamenti senza dover rieseguire il pip install di cui al punto precedente. È la **procedura consigliata per gli sviluppatori** nell'ambiente di lavoro.
Inizializzazione
----------------
A questo punto l'installazione è completata, ma per poter iniziare a creare progetti Genropy è necessario eseguire uno script che effettua una inizializzazione dell'ambiente di sviluppo. Lanciamo il comando::
gnr app initgenropy
Questo script genera un utente ``admin`` ed una password casuale per l'accesso alle applicazioni locali. Annotate la password e seguite le istruzioni riportate per modificare eventualente la password.
Sul terminale vi dovrebbe apparire in risposta il seguente messaggio
.. code ::
Default password for user admin is ****, you can change it by editing /../../.gnr/instanceconfig/default.xml
Lo script ``initgenropy.py`` crea alcuni file e directory necessarie al funzionamento di Genropy:
- la directory ``.gnr`` che contiene file di configurazione di default dell'ambiente di sviluppo
- la directory ``genropy_projects`` che sarà il luogo in cui verranno creati i vostri progetti, se manterrete la :ref:`configurazione di default`
.. hint::
In ambiente Windows, la directory con i file di configurazione si chiama gnr anziché .gnr e verrà comunque collocata nella home dell'utente. Sarà dunque ``C:\users\NOME_UTENTE\gnr``.
Ulteriori dettagli sono forniti nell' :ref:`appendice sulle configurazioni d'ambiente`
Per verificare di aver installato e configurato correttamente l'ambiente di sviluppo Genropy potete proseguire con la sezione dedicata all'applicazione di :ref:`collaudo` .
Aggiornare il progetto
----------------------
Ora che avete clonato il progetto potrete mantenere aggiornata la vostra installazione di Genropy, lanciando dalla directory ``genropy`` il seguente comando
::
git pull
.. hint::
Se l'installazione è stata eseguita con l'attributo ``--editable`` non è necessario eseguire altri passaggi. In caso contrario dopo il *pull* del repository sarà necessario ripetere la procedura di *pip install .* per eseguire la sincronizzazione dei file e delle librerie.
.. sectionauthor:: Davide Paci