Skip to content

Commit 7e8efa5

Browse files
authored
Merge pull request #263 from tobami/django-21-compat
Django 2.1 compatibility
2 parents a0ee6d1 + d481eb5 commit 7e8efa5

File tree

7 files changed

+51
-34
lines changed

7 files changed

+51
-34
lines changed

.travis.yml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
language: python
2-
python:
3-
- 2.7
4-
- 3.5
52
branches:
63
only:
74
- master
85
env:
96
global:
107
- DJANGO_SETTINGS_MODULE=sample_project.settings
11-
matrix:
12-
- DJANGO_VERSION=1.8
13-
- DJANGO_VERSION=1.11
8+
matrix:
9+
include:
10+
- python: "2.7"
11+
env: DJANGO_VERSION=1.11
12+
- python: "3.5"
13+
env: DJANGO_VERSION=1.11
14+
- python: "3.5"
15+
env: DJANGO_VERSION=2.1
1416
install:
1517
- pip install flake8
1618
- pip install -q Django==$DJANGO_VERSION

CHANGELOG

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
== Change Log ==
22

3+
=== Version 0.13.0 ===
4+
* NEW #263: Added support for Django 2.1, drop support for Django 1.8
5+
6+
37
=== Version 0.12.0, November 11, 2017 ===
48
* NEW #230: Added support for Django 1.11
59
* NEW #226: Added previous and next commit navigation to the changes view

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ For an overview of some application concepts see the [wiki page](https://github.
1010

1111
# Installation
1212

13-
You will need Python 2.7 or 3.4+.
13+
You will need Python 2.7 or 3.5+.
1414

1515
To install dependencies and the codespeed Django app:
1616

codespeed/migrations/0001_initial.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class Migration(migrations.Migration):
2121
('units', models.CharField(default='seconds', max_length=20)),
2222
('lessisbetter', models.BooleanField(default=True, verbose_name='Less is better')),
2323
('default_on_comparison', models.BooleanField(default=True, verbose_name='Default on comparison page')),
24-
('parent', models.ForeignKey(default=None, to='codespeed.Benchmark', blank=True, help_text='allows to group benchmarks in hierarchies', null=True, verbose_name='parent')),
24+
('parent', models.ForeignKey(default=None, to='codespeed.Benchmark', on_delete=models.CASCADE, blank=True, help_text='allows to group benchmarks in hierarchies', null=True, verbose_name='parent')),
2525
],
2626
),
2727
migrations.CreateModel(
@@ -73,8 +73,8 @@ class Migration(migrations.Migration):
7373
('summary', models.CharField(max_length=64, blank=True)),
7474
('colorcode', models.CharField(default='none', max_length=10)),
7575
('_tablecache', models.TextField(blank=True)),
76-
('environment', models.ForeignKey(related_name='reports', to='codespeed.Environment')),
77-
('executable', models.ForeignKey(related_name='reports', to='codespeed.Executable')),
76+
('environment', models.ForeignKey(related_name='reports', to='codespeed.Environment', on_delete=models.CASCADE)),
77+
('executable', models.ForeignKey(related_name='reports', to='codespeed.Executable', on_delete=models.CASCADE)),
7878
],
7979
),
8080
migrations.CreateModel(
@@ -86,9 +86,9 @@ class Migration(migrations.Migration):
8686
('val_min', models.FloatField(null=True, blank=True)),
8787
('val_max', models.FloatField(null=True, blank=True)),
8888
('date', models.DateTimeField(null=True, blank=True)),
89-
('benchmark', models.ForeignKey(related_name='results', to='codespeed.Benchmark')),
90-
('environment', models.ForeignKey(related_name='results', to='codespeed.Environment')),
91-
('executable', models.ForeignKey(related_name='results', to='codespeed.Executable')),
89+
('benchmark', models.ForeignKey(related_name='results', to='codespeed.Benchmark', on_delete=models.CASCADE)),
90+
('environment', models.ForeignKey(related_name='results', to='codespeed.Environment', on_delete=models.CASCADE)),
91+
('executable', models.ForeignKey(related_name='results', to='codespeed.Executable', on_delete=models.CASCADE)),
9292
],
9393
),
9494
migrations.CreateModel(
@@ -100,29 +100,29 @@ class Migration(migrations.Migration):
100100
('date', models.DateTimeField(null=True)),
101101
('message', models.TextField(blank=True)),
102102
('author', models.CharField(max_length=100, blank=True)),
103-
('branch', models.ForeignKey(related_name='revisions', to='codespeed.Branch')),
104-
('project', models.ForeignKey(related_name='revisions', blank=True, to='codespeed.Project', null=True)),
103+
('branch', models.ForeignKey(related_name='revisions', to='codespeed.Branch', on_delete=models.CASCADE)),
104+
('project', models.ForeignKey(related_name='revisions', blank=True, to='codespeed.Project', on_delete=models.CASCADE, null=True)),
105105
],
106106
),
107107
migrations.AddField(
108108
model_name='result',
109109
name='revision',
110-
field=models.ForeignKey(related_name='results', to='codespeed.Revision'),
110+
field=models.ForeignKey(related_name='results', to='codespeed.Revision', on_delete=models.CASCADE),
111111
),
112112
migrations.AddField(
113113
model_name='report',
114114
name='revision',
115-
field=models.ForeignKey(related_name='reports', to='codespeed.Revision'),
115+
field=models.ForeignKey(related_name='reports', to='codespeed.Revision', on_delete=models.CASCADE),
116116
),
117117
migrations.AddField(
118118
model_name='executable',
119119
name='project',
120-
field=models.ForeignKey(related_name='executables', to='codespeed.Project'),
120+
field=models.ForeignKey(related_name='executables', to='codespeed.Project', on_delete=models.CASCADE),
121121
),
122122
migrations.AddField(
123123
model_name='branch',
124124
name='project',
125-
field=models.ForeignKey(related_name='branches', to='codespeed.Project'),
125+
field=models.ForeignKey(related_name='branches', to='codespeed.Project', on_delete=models.CASCADE),
126126
),
127127
migrations.AlterUniqueTogether(
128128
name='revision',

codespeed/models.py

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,8 @@ def is_less_important_than(self, val, color):
105105
@python_2_unicode_compatible
106106
class Branch(models.Model):
107107
name = models.CharField(max_length=32)
108-
project = models.ForeignKey(Project, related_name="branches")
108+
project = models.ForeignKey(
109+
Project, on_delete=models.CASCADE, related_name="branches")
109110

110111
def __str__(self):
111112
return self.project.name + ":" + self.name
@@ -122,10 +123,12 @@ class Revision(models.Model):
122123
tag = models.CharField(max_length=20, blank=True)
123124
date = models.DateTimeField(null=True)
124125
message = models.TextField(blank=True)
125-
project = models.ForeignKey(Project, related_name="revisions",
126-
null=True, blank=True)
126+
project = models.ForeignKey(
127+
Project, on_delete=models.CASCADE, related_name="revisions",
128+
null=True, blank=True)
127129
author = models.CharField(max_length=100, blank=True)
128-
branch = models.ForeignKey(Branch, related_name="revisions")
130+
branch = models.ForeignKey(
131+
Branch, on_delete=models.CASCADE, related_name="revisions")
129132

130133
def get_short_commitid(self):
131134
return self.commitid[:10]
@@ -160,7 +163,8 @@ def clean(self):
160163
class Executable(models.Model):
161164
name = models.CharField(max_length=30)
162165
description = models.CharField(max_length=200, blank=True)
163-
project = models.ForeignKey(Project, related_name="executables")
166+
project = models.ForeignKey(
167+
Project, on_delete=models.CASCADE, related_name="executables")
164168

165169
class Meta:
166170
unique_together = ('name', 'project')
@@ -182,7 +186,7 @@ class Benchmark(models.Model):
182186

183187
name = models.CharField(unique=True, max_length=100)
184188
parent = models.ForeignKey(
185-
'self', verbose_name="parent",
189+
'self', on_delete=models.CASCADE, verbose_name="parent",
186190
help_text="allows to group benchmarks in hierarchies",
187191
null=True, blank=True, default=None)
188192
benchmark_type = models.CharField(max_length=1, choices=B_TYPES, default='C')
@@ -225,10 +229,14 @@ class Result(models.Model):
225229
q1 = models.FloatField(blank=True, null=True)
226230
q3 = models.FloatField(blank=True, null=True)
227231
date = models.DateTimeField(blank=True, null=True)
228-
revision = models.ForeignKey(Revision, related_name="results")
229-
executable = models.ForeignKey(Executable, related_name="results")
230-
benchmark = models.ForeignKey(Benchmark, related_name="results")
231-
environment = models.ForeignKey(Environment, related_name="results")
232+
revision = models.ForeignKey(
233+
Revision, on_delete=models.CASCADE, related_name="results")
234+
executable = models.ForeignKey(
235+
Executable, on_delete=models.CASCADE, related_name="results")
236+
benchmark = models.ForeignKey(
237+
Benchmark, on_delete=models.CASCADE, related_name="results")
238+
environment = models.ForeignKey(
239+
Environment, on_delete=models.CASCADE, related_name="results")
232240

233241
def __str__(self):
234242
return u"%s: %s" % (self.benchmark.name, self.value)
@@ -239,9 +247,12 @@ class Meta:
239247

240248
@python_2_unicode_compatible
241249
class Report(models.Model):
242-
revision = models.ForeignKey(Revision, related_name="reports")
243-
environment = models.ForeignKey(Environment, related_name="reports")
244-
executable = models.ForeignKey(Executable, related_name="reports")
250+
revision = models.ForeignKey(
251+
Revision, on_delete=models.CASCADE, related_name="reports")
252+
environment = models.ForeignKey(
253+
Environment, on_delete=models.CASCADE, related_name="reports")
254+
executable = models.ForeignKey(
255+
Executable, on_delete=models.CASCADE, related_name="reports")
245256
summary = models.CharField(max_length=64, blank=True)
246257
colorcode = models.CharField(max_length=10, default="none")
247258
_tablecache = models.TextField(blank=True)

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
Django>=1.7,<2.0
1+
Django>=1.11,<2.2
22
isodate>=0.4.7,<0.6
33
matplotlib>=1.4.3,<2.0

sample_project/urls.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from django.contrib import admin
66

77
urlpatterns = [
8-
url(r'^admin/', include(admin.site.urls)),
8+
url(r'^admin/', admin.site.urls),
99
url(r'^', include('codespeed.urls'))
1010
]
1111

0 commit comments

Comments
 (0)