Difference between revisions of "Contribuir para o Nominatim"

From Geomaster, Lda
Jump to navigation Jump to search
Line 97: Line 97:
  
 
==== Teste do build ====
 
==== Teste do build ====
 +
 +
<syntaxhighlight lang="bash">
 +
sudo su postgres
 +
createuser --createdb --pwprompt jgr
 +
Enter password for new role: nominatim
 +
Enter it again: nominatim
 +
exit
 +
</syntaxhighlight>
 +
 +
<syntaxhighlight lang="bash">
 +
echo "localhost:5432:nominatim:jgr:nominatim" >> ~/.pgpass
 +
</syntaxhighlight>
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">

Revision as of 23:14, 5 March 2018

Nominatim

O código fonte do projeto Nominatim está disponível no GitHub.

Antes de qualquer contribuição, deve-se ler o documento CONTRIBUTING.

Procurar issues que estejam marcados como simple:

is:open label:simple

Ciclo de vida

  1. Fork p/ a nossa conta
  2. clone localmente
  3. Criar um branch local
  4. Fazer as contribuições e testar
  5. Commit & push
  6. Fazer o Pull Request

Fork

Faz-se na interface do GitHub.

Por uma questão de nomenclatura, os repositórios para a ter os seguintes nomes:

Clone

Fazemos o clone do nosso repositório no GitHub

mkdir -p ~/dev
cd dev
git clone git@github.com:jgrocha/Nominatim.git
git clone --recursive git@github.com:jgrocha/Nominatim.git
cd Nominatim
git remote -v
origin	git@github.com:jgrocha/Nominatim.git (fetch)
origin	git@github.com:jgrocha/Nominatim.git (push)

Foi criado automaticamente a referência para o nosso repositório do GitHub com o nome origin. Falta criar um referência com o nome upstream para o repositório oficial do Nominatim.

git remote add upstream git@github.com:openstreetmap/Nominatim.git
git remote -v
origin	git@github.com:jgrocha/Nominatim.git (fetch)
origin	git@github.com:jgrocha/Nominatim.git (push)
upstream	git@github.com:openstreetmap/Nominatim.git (fetch)
upstream	git@github.com:openstreetmap/Nominatim.git (push)

Branch

git checkout -b issue823
Switched to a new branch 'issue823'

Garantir que o projeto compila direito (na linha de comandos). Corrigir dependências, se necessário.

mkdir build
cd build
cmake ..
make

Opcionalmente, deve-se abrir e usar o projeto num IDE que suporte C. CLion can be used for open source project, according to it's license.

Dependências

sudo apt install libboost-system-dev libboost-filesystem-dev python-pyosmium python3-pyosmium
sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_python-py35.so.1.58.0 /usr/lib/x86_64-linux-gnu/libboost_python-py35.so
sudo ldconfig
sudo su
pip3 install osmium
sudo apt-get install php-pear
sudo pear install DB

Teste do build

sudo su postgres
createuser --createdb --pwprompt jgr
Enter password for new role: nominatim
Enter it again: nominatim
exit
echo "localhost:5432:nominatim:jgr:nominatim" >> ~/.pgpass
cd ..
./build/utils/setup.php --osm-file portugal-latest.osm.pbf --all
jgr@dusseldorf:~/dev/Nominatim$ ./build/utils/setup.php --osm-file portugal-latest.osm.pbf --all
2018-03-04 19:40:14 == Create DB
createdb: could not connect to database template1: FATAL:  role "jgr" does not exist
ERROR: Error executing external command: createdb -E UTF-8 -p 5432 nominatim
Error executing external command: createdb -E UTF-8 -p 5432 nominatim

Contribuições

Commit and push

Pull request