Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "GruppoAsk/Sviluppo"
Differenze tra le versioni 3 e 33 (in 30 versioni)
Versione 3 del 15/07/2012 13.49.59
Dimensione: 4579
Commento:
Versione 33 del 09/07/2013 15.50.13
Dimensione: 9154
Autore: pietroalbini
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
#acl GiuseppeTerrasi:admin,read,write,revert MirkoPizii:admin,read,write,revert MiloCasagrande:admin,read,write,revert RiccardoPadovani:admin,read,write,revert PietroAlbini:admin,read,write,revert -Known:read -All:read


'''BOZZA, LA PAGINA SARA' MOLTO LUNGA. PIÙ AVANTI SPEZZARLA IN SOTTOPAGINE'''
## page was renamed from GruppoAsk/Hack
<<Include(GruppoAsk/Header)>>
<<Indice>>
Linea 8: Linea 7:
Questa pagina contiene informazioni utili per coloro che vogliono partecipare allo sviluppo e al mantenimento del codice di chiedi.ubuntu-it.org

= Come si fa =

I passi sono:
 * Installare OSQA sul proprio computer;
 * Ottenere il nostro codice;
 * HACK!
 * Mandaci le tue modifiche.

= Prerequisiti =

Consigliamo l'uso di Ubuntu 11.10 o Ubuntu 12.04 (forse anche Ubuntu 11.04. Infatti queste due versioni di Ubuntu dispongono già di tutti i pacchetti necessari per una corretta installazione. Infatti, un prerequisito è che la versione in uso di python-django sia la 1.3. In versioni precedenti di Ubuntu, invece, si trova Django 1.1. In versioni successive Django 1.4.

Installare i seguenti pacchetti relativi a django, apache e il database postgresql: {{{
sudo apt-get install python-django python-django-south python-django-openid python-django-debug-toolbar python-migrate python-html5lib python-markdown python-elementtidy python-psycopg2 postgresql-9.1 libapache2-mod-wsgi subversion
}}}

= Database =

Configurare correttamente i permessi di postgresql.

 * Modificare il file /etc/postgresql/9.1/main/pg_hba.conf, sostituendo le ultime righe con questo {{{
Questa pagina contiene informazioni utili per coloro che vogliono partecipare allo sviluppo e al mantenimento del codice di Chiedi.

Per poter sviluppare funzionalità è richiesta una conoscenza di Python e Django, mentre per modifiche al tema di HTML e CSS.

= Scaricare una copia del sito in locale =

Per poter mandare le modifiche è necessario avere un'istanza locale su cui effettuarle.<<BR>>
Su Ubuntu 12.04 LTS tutte le dipendenze sono alla giusta versione, per le release successive si consiglia l'aggiunta del [[https://launchpad.net/~ubuntu-it-ask-devel/+archive/osqa-compatibility|PPA]] contenente le versioni corrette. *Il PPA non è ancora stato testato*.

== Prerequisiti ==

Installare i seguenti pacchetti relativi a django, apache, database postgresql, subverson, bazaar, gettext:

{{{
sudo apt-get install python-django python-django-south python-django-openid-auth python-django-debug-toolbar python-migrate python-html5lib python-markdown python-elementtidy python-psycopg2 postgresql-9.1 apache2 libapache2-mod-wsgi subversion bzr gettext
}}}

== Preparare il database ==

Assumiamo che l'utente proprietario del database sia ''postgresql''.

 * Configurare correttamente i permessi di postgresql modificando il file /etc/postgresql/9.1/main/pg_hba.conf, sostituendo le ultime righe con questo: {{{
Linea 32: Linea 30:
host all all 0.0.0.0 0.0.0.0 md5
host all all ::1/128 md5
local all all md5
host all all 192.168.1.20 255.255.255.0 md5 # <- 192.168.1.20 ip tua macchina
Linea 47: Linea 43:
 * Assumiamo che per installare il database si usi l'utente ''postgres'', cambiare la sua password: {{{  * Creare l'utente ''osqa'': {{{
Linea 49: Linea 45:
createuser osqa
Linea 50: Linea 47:
alter user postgres with password 'la_tua_password'; alter user osqa with password 'la_tua_password';
Linea 53: Linea 50:
 * Creiamo il database ''osqa'' con proprietario ''postgres'': {{{
createdb -O postgres osqa
 * Creare il database ''osqa'' con proprietario ''postgres'': {{{
createdb -O osqa osqa
Linea 58: Linea 55:
= Apache = == Configurare apache ==

Assumiamo che il Virtual Host si chiami ''osqa'' e che la directory di installazione sia ''/var/www/osqa''.
Linea 64: Linea 63:
 * Adattare il seguente VH: http://bazaar.launchpad.net/~ubuntu-it-ask/ubuntu-it-ask/dev/view/head:/00-apache_site_avaible_rules

 * Abilitare il virtualhost prcedente e riavviare {{{
sudo a2ensite nome_virtualhost
 * Copiare il seguente Virtual Host in ''/etc/apache2/sites-available/'' chiamandolo ''osqa'': {{{
WSGISocketPrefix ${APACHE_RUN_DIR}

<VirtualHost *:80>
        DocumentRoot /var/www/osqa/
        ServerName http://localhost
        ServerAlias http://localhost
 

        Alias /osqa/m/ "/var/www/osqa/forum/skins/"
        <Directory "/var/www/osqa/forum/skins">
                Order allow,deny
                Allow from all
        </Directory>

        Alias /osqa/upfiles/ "/var/www/osqa/forum/upfiles/"

        <Directory "/var/www/osqa/forum/upfiles">
                Order deny,allow
                Allow from all
        </Directory>

        Alias /admin_media/ /usr/lib/python2.7/dist-packages/django/contrib/admin/media/
        <Directory /usr/lib/python2.7/dist-packages/django/contrib/admin/media>
            Order allow,deny
            Allow from all
        </Directory>
        WSGIScriptAlias / /var/www/osqa/osqa.wsgi

        CustomLog ${APACHE_LOG_DIR}/osqa.access.log common
        ErrorLog ${APACHE_LOG_DIR}/osqa.error.log
</VirtualHost>
}}}

 * Abilitare il virtualhost e riavviare il servizio: {{{
sudo a2ensite osqa
Linea 71: Linea 102:
= Deploy =

= Deploy =

 * Scaricare il nostro branch in sviluppo: {{{
bzr branch lp:~ubuntu-it-ask/ubuntu-it-ask/dev
}}}
 * Copiarlo in /var/www/osqa (la cartella DEVE chiamarsi osqa)
== Installare osqa ==

 * Scaricare il branch di Chiedi Ubuntu-it e copiarlo poi in `/var/www`: {{{
bzr branch lp:ubuntu-it-ask
}}}
 * Rinominare la cartella `/var/www/ubuntu-it-ask` in `/var/www/osqa` (nota bene: la cartella DEVE chiamarsi per forza ''osqa'').
Linea 88: Linea 117:
        'USER': 'postgresql',         'USER': 'osqa',
Linea 90: Linea 119:
        'HOST': '',         'HOST': 'localhost',
Linea 97: Linea 126:
OSQA_DEFAULT_SKIN = 'light' OSQA_DEFAULT_SKIN = 'light' ## <-- è il tema di ubuntu-it, quello predefinito si chiama default
Linea 105: Linea 134:
 * Generare le ultime traduzioni (sempre da /var/www/osqa):  * Generare le ultime traduzioni (sempre da /var/www/osqa): {{{
Linea 111: Linea 140:
= Permessi = Nota sulle traduzioni: in realtà la traduzione più aggiornata è sempre [[http://bazaar.launchpad.net/~ubuntu-it-ask/ubuntu-it-ask/stable/view/head:/locale/it/LC_MESSAGES/it.po | questa]]. Per applicarla seguire gli stessi passi.

== Assegnare i permessi corretti ==
Linea 119: Linea 150:
= Prova = == Prova ==
Linea 122: Linea 153:

== Un passo in più ==

Non indispensabile, ma se si volesse utilizzare la medesima configurazione in uso su chiedi.ubuntu-it.org:
 * Fare un backup della tabella di configurazione: {{{
pg_dump osqa --clean -O -t forum_keyvalue -f mia_tabella.sql -U postgres -W
}}}
 * Importare il database in questo modo: {{{
psql -U postgres osqa -W < 00-forum_keyvalue.sql
}}}
 * Sync db: {{{
sudo python /var/www/osqa/manage.py syncdb
}}}

= Iniziare a sviluppare =

Benissimo, ora si può iniziare a sviluppare.

== Modificare il tema ==

Il tema di Chiedi è ben fatto, ma può essere migliorato.

I files del tema si trovano in `forum/skins/light`.

=== Modifica dello stile ===

Lo stile è presente in `forum/skins/light/media`, nelle sottocartelle `styles` e `images`.<<BR>>
Effettuare le modifiche ai files e controllare che non ci siano effetti inaspettati nelle pagine.

=== Modifica del contenuto delle pagine ===

Per prima cosa controllare in che file è posizionato il contenuto della pagina scelta guardando in `forum/skins/default/templates`. Poi guardare se il file è presente in `forum/skins/light/templates` e, in caso macasse, copiarlo.

Effettuare poi le modifiche nella copia del file presente in `forum/skins/light/templates`. '''Mai modificare i files in `forum/skins/default/templates`'''.

== Modifica del funzionamento della piattaforma ==

Per modificare il funzionamento della piattaforma agire sui files presenti in `forum` e `forum_modules`.

= Pubblica le tue modifiche =

== Preparazione del codice ==

Prima di caricare le modifiche è bene, oltre a testare i cambiamenti, pulire il codice.<<BR>>
Infatti non bisogna lasciare alcuna traccia di test o codici inutili.

È bene infatti scaricare l'ultima revisione del nostro [[https://code.launchpad.net/ubuntu-it-ask|repository]] e riapplicaci le modifiche, in modo da lasciare meno tracce possibili.

== Caricamento su launchpad ==

In caso che la modifica risolve un bug utilizzare i seguenti comandi sostituendo ####### con l'id del bug:
{{{
bzr commit --fixes lp:####### -m 'Descrivi le modifiche'
bzr push lp:~tuonome/ubuntu-it-ask/fix-lp#######
}}}

Altrimenti:
{{{
bzr commit -m 'Descrivi le tue modifiche'
bzr push lp:~tuonome/ubuntu-it-ask/nome_repo
}}}

== Presentazione delle modifiche ==

Fai una merge request via launchpad sui branch `lp:~ubuntu-it-ask/ubuntu-it-ask/stable` e `lp:~ubuntu-it-ask/ubuntu-ask/development`, poi scrivi in [[http://liste.ubuntu-it.org/cgi-bin/mailman/listinfo/devel-ask|mailing list]] presentando dettagliatamente le tue modifiche.

Uno o più amministratori testeranno le modifiche sulla loro istanza locale e poi comunicheranno il risultato dei test.

In caso positivo verranno caricate le modifiche sul server di test del gruppo, e dopo altri test sul server di Chiedi.

= Per chi vuole studiare =

 * Non conosci bazaar?
  * [[Programmazione/Bazaar|Guida su bazaar]]
  * [[http://wiki.bazaar.canonical.com/Scenarios|Casi d'uso]]
  * [[http://doc.bazaar.canonical.com/bzr.dev/en/|Guida ufficiale completa]]

 * Non conosci Django? [[https://docs.djangoproject.com/en/1.4/|Documentazione di Django]]

 * Non conosci OSQA?
  * [[http://meta.osqa.net/|Meta ufficiale]]
  * [[http://wiki.osqa.net|Wiki]]

Introduzione

Questa pagina contiene informazioni utili per coloro che vogliono partecipare allo sviluppo e al mantenimento del codice di Chiedi.

Per poter sviluppare funzionalità è richiesta una conoscenza di Python e Django, mentre per modifiche al tema di HTML e CSS.

Scaricare una copia del sito in locale

Per poter mandare le modifiche è necessario avere un'istanza locale su cui effettuarle.
Su Ubuntu 12.04 LTS tutte le dipendenze sono alla giusta versione, per le release successive si consiglia l'aggiunta del PPA contenente le versioni corrette. *Il PPA non è ancora stato testato*.

Prerequisiti

Installare i seguenti pacchetti relativi a django, apache, database postgresql, subverson, bazaar, gettext:

sudo apt-get install python-django python-django-south python-django-openid-auth python-django-debug-toolbar python-migrate python-html5lib python-markdown python-elementtidy python-psycopg2 postgresql-9.1 apache2 libapache2-mod-wsgi subversion bzr gettext

Preparare il database

Assumiamo che l'utente proprietario del database sia postgresql.

  • Configurare correttamente i permessi di postgresql modificando il file /etc/postgresql/9.1/main/pg_hba.conf, sostituendo le ultime righe con questo:

    # "local" is for Unix domain socket connections only
    host    all         all         192.168.1.20      255.255.255.0    md5 # <- 192.168.1.20 ip tua macchina
    local   all             all                                     peer
    # IPv4 local connections:
    host    all             all             127.0.0.1/32            md5
    # IPv6 local connections:
    host    all             all             ::1/128                 md5
    # Allow replication connections from localhost, by a user with the
    # replication privilege.
    #local   replication     postgres                                peer
    #host    replication     postgres        127.0.0.1/32            md5
    #host    replication     postgres        ::1/128                 md5
  • Creare l'utente osqa:

    sudo su postgres
    createuser osqa
    psql -d template1 -U postgres
    alter user osqa with password 'la_tua_password';
    \q
  • Creare il database osqa con proprietario postgres:

    createdb -O osqa osqa
    exit

Configurare apache

Assumiamo che il Virtual Host si chiami osqa e che la directory di installazione sia /var/www/osqa.

  • Assicurarsi di avere abilitato il modulo wsgi:

    sudo a2enmod wsgi
  • Copiare il seguente Virtual Host in /etc/apache2/sites-available/ chiamandolo osqa:

    WSGISocketPrefix ${APACHE_RUN_DIR}
    
    <VirtualHost *:80>
            DocumentRoot /var/www/osqa/
            ServerName http://localhost
            ServerAlias http://localhost
     
    
            Alias /osqa/m/ "/var/www/osqa/forum/skins/"
            <Directory "/var/www/osqa/forum/skins">
                    Order allow,deny
                    Allow from all
            </Directory>
    
            Alias /osqa/upfiles/ "/var/www/osqa/forum/upfiles/"
    
            <Directory "/var/www/osqa/forum/upfiles">
                    Order deny,allow
                    Allow from all
            </Directory>
    
            Alias /admin_media/ /usr/lib/python2.7/dist-packages/django/contrib/admin/media/
            <Directory /usr/lib/python2.7/dist-packages/django/contrib/admin/media>
                Order allow,deny
                Allow from all
            </Directory>
            WSGIScriptAlias / /var/www/osqa/osqa.wsgi
    
            CustomLog ${APACHE_LOG_DIR}/osqa.access.log common
            ErrorLog ${APACHE_LOG_DIR}/osqa.error.log
    </VirtualHost>
  • Abilitare il virtualhost e riavviare il servizio:

    sudo a2ensite osqa
    sudo service apache2 restart

Installare osqa

  • Scaricare il branch di Chiedi Ubuntu-it e copiarlo poi in /var/www:

    bzr branch lp:ubuntu-it-ask
  • Rinominare la cartella /var/www/ubuntu-it-ask in /var/www/osqa (nota bene: la cartella DEVE chiamarsi per forza osqa).

  • Rinominare osqa.wsgi.dist in osqa.wsgi, quindi cambiare i path:

    sys.path.append('/var/www')
    sys.path.append('/var/www/osqa')
  • modificare settings_local.py affinché rifletta la reale configurazione della propria macchina. A titolo di esempio:

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql_psycopg2',
            'NAME': 'osqa',
            'USER': 'osqa',
            'PASSWORD': 'la_password_dell'utente_postgres',
            'HOST': 'localhost',
            'PORT': '',
        }
    }
    
    APP_URL = 'http://localhost'
    
    OSQA_DEFAULT_SKIN = 'light' ## <-- è il tema di ubuntu-it, quello predefinito si chiama default
  • Popolare il database (comandi da dare in /var/www/osqa):

    sudo python manage.py syncdb --all (dire no alla richiesta di creare un super utente)
    sudo python manage.py migrate forum --fake
  • Generare le ultime traduzioni (sempre da /var/www/osqa):

    cp locale/it/LC_MESSAGES/it.po locale/it/LC_MESSAGES/django.po 
    msgfmt locale/it/LC_MESSAGES/django.po -o locale/it/LC_MESSAGES/django.mo
    sudo python manage.py makemessages -l it

Nota sulle traduzioni: in realtà la traduzione più aggiornata è sempre questa. Per applicarla seguire gli stessi passi.

Assegnare i permessi corretti

sudo chown -R www-data:www-data /var/www/osqa
sudo chmod -R g+w /var/www/osqa/forum/upfiles
sudo chmod -R g+w /var/www/osqa/log

Prova

Riavviare apache e postgres, per sicurezza per l'ultima volta e andare su http://localhost. Dovrebbe funzionare.

Un passo in più

Non indispensabile, ma se si volesse utilizzare la medesima configurazione in uso su chiedi.ubuntu-it.org:

  • Fare un backup della tabella di configurazione:

    pg_dump osqa --clean -O -t forum_keyvalue -f mia_tabella.sql -U postgres -W
  • Importare il database in questo modo:

    psql -U postgres osqa -W < 00-forum_keyvalue.sql
  • Sync db:

    sudo python /var/www/osqa/manage.py syncdb

Iniziare a sviluppare

Benissimo, ora si può iniziare a sviluppare.

Modificare il tema

Il tema di Chiedi è ben fatto, ma può essere migliorato.

I files del tema si trovano in forum/skins/light.

Modifica dello stile

Lo stile è presente in forum/skins/light/media, nelle sottocartelle styles e images.
Effettuare le modifiche ai files e controllare che non ci siano effetti inaspettati nelle pagine.

Modifica del contenuto delle pagine

Per prima cosa controllare in che file è posizionato il contenuto della pagina scelta guardando in forum/skins/default/templates. Poi guardare se il file è presente in forum/skins/light/templates e, in caso macasse, copiarlo.

Effettuare poi le modifiche nella copia del file presente in forum/skins/light/templates. Mai modificare i files in forum/skins/default/templates.

Modifica del funzionamento della piattaforma

Per modificare il funzionamento della piattaforma agire sui files presenti in forum e forum_modules.

Pubblica le tue modifiche

Preparazione del codice

Prima di caricare le modifiche è bene, oltre a testare i cambiamenti, pulire il codice.
Infatti non bisogna lasciare alcuna traccia di test o codici inutili.

È bene infatti scaricare l'ultima revisione del nostro repository e riapplicaci le modifiche, in modo da lasciare meno tracce possibili.

Caricamento su launchpad

In caso che la modifica risolve un bug utilizzare i seguenti comandi sostituendo ####### con l'id del bug:

bzr commit --fixes lp:####### -m 'Descrivi le modifiche'
bzr push lp:~tuonome/ubuntu-it-ask/fix-lp#######

Altrimenti:

bzr commit -m 'Descrivi le tue modifiche'
bzr push lp:~tuonome/ubuntu-it-ask/nome_repo

Presentazione delle modifiche

Fai una merge request via launchpad sui branch lp:~ubuntu-it-ask/ubuntu-it-ask/stable e lp:~ubuntu-it-ask/ubuntu-ask/development, poi scrivi in mailing list presentando dettagliatamente le tue modifiche.

Uno o più amministratori testeranno le modifiche sulla loro istanza locale e poi comunicheranno il risultato dei test.

In caso positivo verranno caricate le modifiche sul server di test del gruppo, e dopo altri test sul server di Chiedi.

Per chi vuole studiare


CategoryComunita