Skip to content

Commit 0068975

Browse files
authored
Merge pull request tobami#271 from mattip/historical-graphs
MAINT: more deeply embed DEFAULT_EXECUTABLE into historical data plots
2 parents 46a3dd5 + cbe5458 commit 0068975

3 files changed

Lines changed: 29 additions & 19 deletions

File tree

codespeed/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -475,7 +475,7 @@ def get_changes_table(self, trend_depth=10, force_save=False):
475475
val_max = "-"
476476

477477
# Calculate percentage change relative to previous result
478-
result = resobj.value
478+
result = max(resobj.value, 0)
479479
change = "-"
480480
if len(change_list):
481481
c = change_list.filter(benchmark=bench)

codespeed/views.py

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -91,38 +91,49 @@ def gethistoricaldata(request):
9191
else:
9292
env = env.first()
9393

94-
# Fetch Baseline data
94+
# Fetch Baseline data, filter by executable
9595
baseline_exe = Executable.objects.get(
9696
name=settings.DEF_BASELINE['executable'])
97-
baseline_lastrev = Revision.objects.filter(
98-
branch__project=baseline_exe.project).order_by('-date')[0]
97+
baseline_revs = Revision.objects.filter(
98+
branch__project=baseline_exe.project).order_by('-date')
99+
baseline_lastrev = baseline_revs[0]
100+
for rev in baseline_revs:
101+
baseline_results = Result.objects.filter(
102+
executable=baseline_exe, revision=rev, environment=env)
103+
if baseline_results:
104+
baseline_lastrev = rev
105+
break
106+
if len(baseline_results) == 0:
107+
logger.error('Could not find results for {} rev="{}" env="{}"'.format(
108+
baseline_exe, baseline_lastrev, env))
99109
data['baseline'] = '{} {}'.format(
100110
settings.DEF_BASELINE['executable'], baseline_lastrev.tag)
101-
baseline_results = Result.objects.filter(
102-
executable=baseline_exe, revision=baseline_lastrev, environment=env)
103111

104112
default_exe = Executable.objects.get(name=settings.DEF_EXECUTABLE)
105113
default_branch = Branch.objects.get(
106114
name=default_exe.project.default_branch,
107115
project=default_exe.project)
108116

109-
# Fetch tagged revisions for default executable
117+
# Fetch tagged revisions for executable
110118
default_taggedrevs = Revision.objects.filter(
111-
branch=default_branch
112-
).exclude(tag="").order_by('date')
113-
data['tagged_revs'] = [rev.tag for rev in default_taggedrevs]
119+
branch=default_branch
120+
).exclude(tag="").order_by('date')
114121
default_results = {}
115122
for rev in default_taggedrevs:
116-
default_results[rev.tag] = Result.objects.filter(
123+
res = Result.objects.filter(
117124
executable=default_exe, revision=rev, environment=env)
118-
125+
if not res:
126+
logger.info('no results for %s %s %s' % (str(default_exe), str(rev), str(env)))
127+
continue
128+
default_results[rev.tag] = res
129+
data['tagged_revs'] = [rev.tag for rev in default_taggedrevs if rev.tag in default_results]
119130
# Fetch data for latest results
120131
revs = Revision.objects.filter(
121132
branch=default_branch).order_by('-date')[:5]
122133
default_lastrev = None
123134
for i in range(4):
124135
default_lastrev = revs[i]
125-
if default_lastrev.results.filter(executable=default_exe):
136+
if default_lastrev.results.filter(executable=default_exe, environment=env):
126137
break
127138
default_lastrev = None
128139
if default_lastrev is None:
@@ -892,7 +903,6 @@ def add_result(request):
892903
return HttpResponseBadRequest(response)
893904
else:
894905
create_report_if_enough_data(response[0], response[1], response[2])
895-
logger.debug("add_result: completed")
896906
return HttpResponse("Result data saved successfully", status=202)
897907

898908

@@ -917,15 +927,11 @@ def add_json_results(request):
917927
else:
918928
unique_reports.add(response)
919929

920-
logger.debug("add_json_results: about to create reports")
921930
for rep in unique_reports:
922931
create_report_if_enough_data(rep[0], rep[1], rep[2])
923932

924-
logger.debug("add_json_results: completed")
925-
926933
return HttpResponse("All result data saved successfully", status=202)
927934

928-
929935
def django_has_content_type():
930936
return (django.VERSION[0] > 1 or
931937
(django.VERSION[0] == 1 and django.VERSION[1] >= 6))

sample_project/templates/home.html

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,9 @@ <h3>How has {{ default_exe.project }} performance evolved over time?</h3>
179179
renderer:$.jqplot.BarRenderer,
180180
showMarker: false
181181
},
182+
axesDefaults: {
183+
tickRenderer: $.jqplot.CanvasAxisTickRenderer
184+
},
182185
series:[
183186
{
184187
pointLabels:{labels:geolabels}
@@ -187,7 +190,8 @@ <h3>How has {{ default_exe.project }} performance evolved over time?</h3>
187190
axes: {
188191
xaxis: {
189192
renderer: $.jqplot.CategoryAxisRenderer,
190-
ticks: ticks
193+
ticks: ticks,
194+
tickOptions: {angle: -40}
191195
},
192196
yaxis:{
193197
min: 0,

0 commit comments

Comments
 (0)