There are two ways to bootstrap a Bodhi development environment. You can use Vagrant, or you can use virtualenv on an existing host.
To use Vagrant, please read the instructions at https://pagure.io/fedora-apps-vagrantfiles/blob/master/f/bodhi/README.md
The code from your development host will be mounted in /vagrant in the guest, and you can run the unit tests with nosetests:
cd /vagrant nosetests
Virtualenv is another option for building a development environment.
sudo dnf install libffi-devel openssl-devel koji pcaro-hermit-fonts freetype-devel libjpeg-turbo-devel python-pillow
sudo dnf -y install python-virtualenvwrapper python-createrepo_c
Add the following to your ~/.bashrc:
export WORKON_HOME=$HOME/.virtualenvs source /usr/bin/virtualenvwrapper.sh
Add the following to your ~/.bashrc
export PYTHONPATH=$PYTHONPATH:$HOME/.virtualenv
Then on the terminal
source ~/.bashrc
git clone https://github.com/fedora-infra/bodhi.git cd bodhi
./bootstrap.py workon bodhi-python2.7
python setup.py develop
pip install psycopg2
python setup.py test
curl -O https://infrastructure.fedoraproject.org/infra/db-dumps/bodhi2.dump.xz sudo -u postgres createdb bodhi2 xzcat bodhi2.dump.xz | sudo -u postgres psql bodhi2
Note
If you do not have a PostgreSQL server running, please see the instructions at the bottom of the file.
Create and adjust the development.ini file
Copy development.ini.example
to development.ini
:
cp development.ini.example development.ini
Now adjust the configuration key sqlalchemy.url to point to the postgresql database. Something like:
sqlalchemy.url = postgresql://postgres:anypasswordworkslocally@localhost/bodhi2
pserve development.ini --reload
dnf install postgresql-server
As a privileged user on a Fedora system run the following:
sudo postgresql-setup initdb
As a privileged user on a Fedora system modify the pg_hba.conf file:
vi /var/lib/pgsql/data/pg_hba.conf
Then adjust the content at the bottom of the file to match the following.
# TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all peer # IPv4 local connections are *trusted*, any password will work. host all all 127.0.0.1/32 trust # IPv6 local connections are *trusted*, any password will work. host all all ::1/128 trust
If you need to make other modifications to postgresql please make them now.
As a privileged user on a Fedora system run the following:
sudo systemctl start postgresql.service