Dimensione: 6340
Commento:
|
Dimensione: 10248
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 = * Consigliato l'uso di Ubuntu 11.10 o Ubuntu 12.04 in quanto contengono i pacchetti necessari e nella giusta versione. * Installare i seguenti pacchetti relativi a django, apache, database postgresql, subverson: {{{ 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 libapache2-mod-wsgi subversion }}} = Database = |
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 == |
Linea 45: | Linea 43: |
* Impostare la password dell'utente ''postgres'': {{{ | * Creare l'utente ''osqa'': {{{ |
Linea 47: | Linea 45: |
createuser osqa | |
Linea 48: | Linea 47: |
alter user postgres with password 'la_tua_password'; | alter user osqa with password 'la_tua_password'; |
Linea 52: | Linea 51: |
createdb -O postgres osqa | createdb -O osqa osqa |
Linea 56: | Linea 55: |
= Apache = | == Configurare apache == |
Linea 64: | Linea 63: |
* Copiare il seguente Virtual Host in `/etc/apache2/site-available/ chiamandolo ''osqa'': {{{ | * Copiare il seguente Virtual Host in ''/etc/apache2/sites-available/'' chiamandolo ''osqa'': {{{ |
Linea 103: | Linea 102: |
= Deploy = * Scaricare il branch di sviluppo di Chiedi Ubuntu-it e copiarlo poi in `/var/www`: {{{ bzr branch lp:~ubuntu-it-ask/ubuntu-it-ask/dev }}} * Rinominare la cartella `/var/www/dev` in `/var/www/osqa` (nota bene: la cartella DEVE chiamarsi per forza ''osqa''). * Rinominare osqa.wsgi.dist in osqa.wsgi, quindi cambiare i path: {{{ |
== 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''). * Copiare osqa.wsgi.dist su osqa.wsgi, quindi cambiare i path: {{{ |
Linea 113: | Linea 112: |
* modificare settings_local.py affinché rifletta la reale configurazione della propria macchina. A titolo di esempio: {{{ | * Copiare settings_local.py.dist su settings_local.py e modificarlo affinché rifletta la reale configurazione della propria macchina. A titolo di esempio: {{{ # encoding:utf-8 import os.path SITE_SRC_ROOT = os.path.dirname(__file__) LOG_FILENAME = 'django.osqa.log' #for logging import logging logging.basicConfig( filename=os.path.join(SITE_SRC_ROOT, 'log', LOG_FILENAME), level=logging.ERROR, format='%(pathname)s TIME: %(asctime)s MSG: %(filename)s:%(funcName)s:%(lineno)d %(message)s', ) #ADMINS and MANAGERS ADMINS = () MANAGERS = ADMINS DEBUG = False DEBUG_TOOLBAR_CONFIG = { 'INTERCEPT_REDIRECTS': True } TEMPLATE_DEBUG = DEBUG INTERNAL_IPS = ('127.0.0.1',) |
Linea 118: | Linea 143: |
'USER': 'postgresql', 'PASSWORD': 'la_password_dell'utente_postgres', 'HOST': '', |
'USER': 'osqa', 'PASSWORD': 'password', 'HOST': 'localhost', |
Linea 125: | Linea 150: |
CACHE_BACKEND = 'file://%s' % os.path.join(os.path.dirname(__file__),'cache').replace('\\','/') #CACHE_BACKEND = 'dummy://' SESSION_ENGINE = 'django.contrib.sessions.backends.db' # This should be equal to your domain name, plus the web application context. # This shouldn't be followed by a trailing slash. # I.e., http://www.yoursite.com or http://www.hostedsite.com/yourhostapp |
|
Linea 127: | Linea 159: |
OSQA_DEFAULT_SKIN = 'light' ## <-- è il tema di ubuntu-it, quello predefinito si chiama default | #LOCALIZATIONS TIME_ZONE = 'Europe/Rome' #OTHER SETTINGS USE_I18N = True LANGUAGE_CODE = 'it' DJANGO_VERSION = 1.1 OSQA_DEFAULT_SKIN = 'light' DISABLED_MODULES = ['books', 'recaptcha', 'project_badges', 'mysqlfulltext'] |
Linea 141: | Linea 184: |
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]] del ramo stabile. Per applicarla seguire gli stessi passi. = 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 151: | Linea 194: |
= Prova = | == Prova == |
Linea 155: | Linea 198: |
= Un passo in più = '''BOZZA, DEVO PRIMA PREPARARE IL SQL GIUSTO''' |
== Un passo in più == |
Linea 163: | Linea 204: |
* Importare il [[http://wiki.ubuntu-it.org/GruppoAsk/Hack?action=AttachFile&do=get&target=forum_keyvalue.sql|seguente file]] in questo modo: {{{ psql -U postgres osqa -W < forum_keyvalue.sql |
* Importare il database in questo modo: {{{ psql -U postgres osqa -W < 00-forum_keyvalue.sql |
Linea 170: | Linea 211: |
= 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).
Copiare osqa.wsgi.dist su osqa.wsgi, quindi cambiare i path:
sys.path.append('/var/www') sys.path.append('/var/www/osqa')
Copiare settings_local.py.dist su settings_local.py e modificarlo affinché rifletta la reale configurazione della propria macchina. A titolo di esempio:
# encoding:utf-8 import os.path SITE_SRC_ROOT = os.path.dirname(__file__) LOG_FILENAME = 'django.osqa.log' #for logging import logging logging.basicConfig( filename=os.path.join(SITE_SRC_ROOT, 'log', LOG_FILENAME), level=logging.ERROR, format='%(pathname)s TIME: %(asctime)s MSG: %(filename)s:%(funcName)s:%(lineno)d %(message)s', ) #ADMINS and MANAGERS ADMINS = () MANAGERS = ADMINS DEBUG = False DEBUG_TOOLBAR_CONFIG = { 'INTERCEPT_REDIRECTS': True } TEMPLATE_DEBUG = DEBUG INTERNAL_IPS = ('127.0.0.1',) DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'osqa', 'USER': 'osqa', 'PASSWORD': 'password', 'HOST': 'localhost', 'PORT': '', } } CACHE_BACKEND = 'file://%s' % os.path.join(os.path.dirname(__file__),'cache').replace('\\','/') #CACHE_BACKEND = 'dummy://' SESSION_ENGINE = 'django.contrib.sessions.backends.db' # This should be equal to your domain name, plus the web application context. # This shouldn't be followed by a trailing slash. # I.e., http://www.yoursite.com or http://www.hostedsite.com/yourhostapp APP_URL = 'http://localhost' #LOCALIZATIONS TIME_ZONE = 'Europe/Rome' #OTHER SETTINGS USE_I18N = True LANGUAGE_CODE = 'it' DJANGO_VERSION = 1.1 OSQA_DEFAULT_SKIN = 'light' DISABLED_MODULES = ['books', 'recaptcha', 'project_badges', 'mysqlfulltext']
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
- Non conosci bazaar?
Non conosci Django? Documentazione di Django
- Non conosci OSQA?