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 26 (in 23 versioni)
Versione 3 del 15/07/2012 13.49.59
Dimensione: 4579
Commento:
Versione 26 del 01/07/2013 11.17.10
Dimensione: 8454
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'''
<<Include(GruppoAsk/Header)>>
<<Indice>>
Linea 8: Linea 6:
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>>
Per via delle dipendenze consigliato installarlo solo su Ubuntu 12.04 LTS, in quanto i pacchetti nelle altre release non sono nella versione corretta.

== 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 29:
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 42:
 * Assumiamo che per installare il database si usi l'utente ''postgres'', cambiare la sua password: {{{  * Impostare la password dell'utente ''postgres'': {{{
Linea 53: Linea 48:
 * Creiamo il database ''osqa'' con proprietario ''postgres'': {{{  * Creare il database ''osqa'' con proprietario ''postgres'': {{{
Linea 58: Linea 53:
= Apache = == Configurare apache ==

Assumiamo che il Virtual Host si chiami ''osqa'' e che la directory di installazione sia ''/var/www/osqa''.
Linea 64: Linea 61:
 * 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 100:
= 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 115:
        'USER': 'postgresql',         'USER': 'postgres',
Linea 90: Linea 117:
        'HOST': '',         'HOST': 'localhost',
Linea 97: Linea 124:
OSQA_DEFAULT_SKIN = 'light' OSQA_DEFAULT_SKIN = 'light' ## <-- è il tema di ubuntu-it, quello predefinito si chiama default
Linea 105: Linea 132:
 * Generare le ultime traduzioni (sempre da /var/www/osqa):  * Generare le ultime traduzioni (sempre da /var/www/osqa): {{{
Linea 111: Linea 138:
= 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 148:
= Prova = == Prova ==
Linea 122: Linea 151:

== 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 < 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 =

== Caricamento su launchpad ==

Per prima cosa assicurati di avere scaricato l'ultima revisione del nostro [[https://code.launchpad.net/ubuntu-it-ask|repository]].

Poi caricale:
{{{
bzr commit -m 'Descrivi le modifiche'
bzr push lp:~tuonome/ubuntu-it-ask/tuo-repository
}}}

== Presentazione delle modifiche ==

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

Uno o più amministratori applicheranno 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 poi 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.
Per via delle dipendenze consigliato installarlo solo su Ubuntu 12.04 LTS, in quanto i pacchetti nelle altre release non sono nella versione corretta.

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
  • Impostare la password dell'utente postgres:

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

    createdb -O postgres 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': 'postgres',
            '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 < 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

Caricamento su launchpad

Per prima cosa assicurati di avere scaricato l'ultima revisione del nostro repository.

Poi caricale:

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

Presentazione delle modifiche

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

Uno o più amministratori applicheranno 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 poi sul server di Chiedi.

Per chi vuole studiare


CategoryComunita