summaryrefslogtreecommitdiff
path: root/README.md
blob: 0debed20570e0973369086367f3dade5a5727a71 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# CommitFest

This application manages commitfests for the PostgreSQL community.

A commitfest is a collection of patches and reviews for a project and is part of the PostgreSQL development process.

## The Application

This is a Django 1.8 application backed by PostgreSQL and running on Python 2.7.

## Getting Started

### Ubuntu instructions

First, prepare your development environment by installing pip, virtualenv, and postgresql-server-dev-X.Y.

```
$ sudo apt install python-pip postgresql-server-dev-9.6

$ pip install virtualenv
```

Next, configure your local environment with virtualenv and install local dependencies.

```
$ virtualenv env
$ source env/bin/activate
$ pip install -r requirements.txt
```

Now prepare the application to run locally.

Configure the app to match your local installation by creating a
`local_settings.py` with the following content in the `pgcommitfest` directory.
Change the values for the database connection adequately.

```
# Enable more debugging information
DEBUG = True
# Prevent logging to try to send emails to postgresql.org admins.
# Use the default Django logging settings instead.
LOGGING = None

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'pgcommitfest',
        'USER': 'postgres',
        'PASSWORD': 'postgres',
        'HOST': '0.0.0.0',
    }
}

# Disables the PostgreSQL.ORG authentication.
# Use the default built-in Django authentication module.
AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.ModelBackend']
```

Provided that you created a database matching the above settings, you can
now create the required tables.

```
$ python manage.py migrate
```

You'll need either a database dump of the actual server's data or else to create a superuser:

```
$ python manage.py createsuperuser
```

Finally, you're ready to start the application:

```
$ python manage.py runserver
```

To authenticate you'll first have to remove the customized login template.
Remember not to commit this modification.

```
$ rm -rf global_templates/admin/login.html
```

Then open http://localhost:8000/admin to log in. Once redirected to the Django
admin interface, go back to the main interface. You're now logged in.