Contribuir para o Nominatim
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
- Fork p/ a nossa conta
- clone localmente
- Criar um branch local
- Fazer as contribuições e testar
- Commit & push
- 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:
- upstream: nome para o repositório https://github.com/openstreetmap/Nominatim
- origin: nome para a nossa cópia https://github.com/jgrocha/Nominatim
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 -s jgr
Enter password for new role: nominatim
Enter it again: nominatim
exit
echo "localhost:5432:*: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
Undo
sudo su postgres
psql
postgres=# DROP DATABASE nominatim;
DROP DATABASE
postgres=# DROP ROLE jgr;
DROP ROLE
postgres=# \q