[buildinfo.debian.net] 02/02: Support Format: 0.2 (Closes: #15)
Chris Lamb
chris at chris-lamb.co.uk
Mon Dec 5 09:17:17 UTC 2016
This is an automated email from the git hooks/post-receive script.
lamby pushed a commit to branch master
in repository buildinfo.debian.net.
commit eba2cc9f5535257df0f8b6164e0f8a945b0e5828
Author: Chris Lamb <lamby at debian.org>
Date: Sun Dec 4 19:33:05 2016 +0000
Support Format: 0.2 (Closes: #15)
Signed-off-by: Chris Lamb <lamby at debian.org>
---
bidb/api/utils.py | 11 ++++--
.../migrations/0002_auto_20161204_1921.py | 45 ++++++++++++++++++++++
bidb/buildinfo/models.py | 20 +++++++++-
requirements.txt | 1 +
templates/buildinfo/view.html | 26 +++++++++++--
5 files changed, 96 insertions(+), 7 deletions(-)
diff --git a/bidb/api/utils.py b/bidb/api/utils.py
index 42b3698..653e9b2 100644
--- a/bidb/api/utils.py
+++ b/bidb/api/utils.py
@@ -2,12 +2,13 @@ import re
import hashlib
from debian import deb822
+from dateutil.parser import parse
from django.db import transaction, IntegrityError
from bidb.keys.models import Key
from bidb.packages.models import Source, Architecture, Binary
-from bidb.buildinfo.models import Buildinfo
+from bidb.buildinfo.models import Buildinfo, Origin
re_binary = re.compile(
r'^(?P<name>[^_]+)_(?P<version>[^_]+)_(?P<architecture>[^\.]+)\.u?deb$',
@@ -66,8 +67,8 @@ def parse_submission(request):
except KeyError:
raise InvalidSubmission("Missing required field: {}".format(field))
- if data.get('Format') != '0.1':
- raise InvalidSubmission("Only Format: 0.1 is supported")
+ if data.get('Format') != '0.2':
+ raise InvalidSubmission("Only Format: 0.2 is supported")
buildinfo = Buildinfo.objects.create(
sha1=sha1,
@@ -78,7 +79,11 @@ def parse_submission(request):
version=data['Version'],
build_path=data.get('Build-Path', ''),
+ build_date=parse(data.get('Build-Date', '')),
+ build_origin=get_or_create(Origin, 'Build-Origin'),
build_architecture=get_or_create(Architecture, 'Build-Architecture'),
+
+ environment=data.get('Environment', ''),
)
## Parse binaries #########################################################
diff --git a/bidb/buildinfo/migrations/0002_auto_20161204_1921.py b/bidb/buildinfo/migrations/0002_auto_20161204_1921.py
new file mode 100644
index 0000000..17de07b
--- /dev/null
+++ b/bidb/buildinfo/migrations/0002_auto_20161204_1921.py
@@ -0,0 +1,45 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.11 on 2016-12-04 19:21
+from __future__ import unicode_literals
+
+import datetime
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('buildinfo', '0001_initial'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='Origin',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('name', models.CharField(max_length=255)),
+ ('created', models.DateTimeField(default=datetime.datetime.utcnow)),
+ ],
+ options={
+ 'ordering': ('name',),
+ 'get_latest_by': 'created',
+ },
+ ),
+ migrations.AddField(
+ model_name='buildinfo',
+ name='build_date',
+ field=models.DateTimeField(null=True),
+ ),
+ migrations.AddField(
+ model_name='buildinfo',
+ name='environment',
+ field=models.TextField(default=''),
+ preserve_default=False,
+ ),
+ migrations.AddField(
+ model_name='buildinfo',
+ name='build_origin',
+ field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='buildinfo.Origin'),
+ ),
+ ]
diff --git a/bidb/buildinfo/models.py b/bidb/buildinfo/models.py
index 955b707..cae495e 100644
--- a/bidb/buildinfo/models.py
+++ b/bidb/buildinfo/models.py
@@ -18,12 +18,15 @@ class Buildinfo(models.Model):
version = models.CharField(max_length=200)
build_path = models.CharField(max_length=512)
-
+ build_date = models.DateTimeField(null=True)
+ build_origin = models.ForeignKey('Origin', null=True)
build_architecture = models.ForeignKey(
'packages.Architecture',
related_name='buildinfos_build',
)
+ environment = models.TextField()
+
raw_text = models.TextField()
created = models.DateTimeField(default=datetime.datetime.utcnow)
@@ -107,6 +110,21 @@ class Checksum(models.Model):
self.filename,
)
+class Origin(models.Model):
+ name = models.CharField(max_length=255)
+
+ created = models.DateTimeField(default=datetime.datetime.utcnow)
+
+ class Meta:
+ ordering = ('name',)
+ get_latest_by = 'created'
+
+ def __unicode__(self):
+ return u"pk=%d name=%r" % (
+ self.pk,
+ self.name,
+ )
+
class InstalledBuildDepends(models.Model):
buildinfo = models.ForeignKey(
Buildinfo,
diff --git a/requirements.txt b/requirements.txt
index b703f30..9fd8ea0 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -11,3 +11,4 @@ sqlparse==0.1.18
python-debian==0.1.28
chardet==2.3.0
django-keyerror==2.1.4
+python-dateutil==2.6.0
diff --git a/templates/buildinfo/view.html b/templates/buildinfo/view.html
index 6e35a21..d44a697 100644
--- a/templates/buildinfo/view.html
+++ b/templates/buildinfo/view.html
@@ -33,10 +33,10 @@
<br>
- <dt>Build-Path</dt>
+ <dt>Build-Origin</dt>
<dd>
- {% if buildinfo.build_path %}
- <code>{{ buildinfo.build_path }}</code>
+ {% if buildinfo.build_origin %}
+ <code>{{ buildinfo.build_origin.name }}</code>
{% else %}
—
{% endif %}
@@ -45,6 +45,24 @@
<dt>Build-Architecture</dt>
<dd><code>{{ buildinfo.build_architecture.name }}</code></dd>
+ <dt>Build-Date</dt>
+ <dd>
+ {% if buildinfo.build_date %}
+ <code>{{ buildinfo.build_date }}</code>
+ {% else %}
+ —
+ {% endif %}
+ </dd>
+
+ <dt>Build-Path</dt>
+ <dd>
+ {% if buildinfo.build_path %}
+ <code>{{ buildinfo.build_path }}</code>
+ {% else %}
+ —
+ {% endif %}
+ </dd>
+
<br>
<dt>First submitted</dt>
@@ -144,5 +162,7 @@
{% endfor %}
</ul>
+<h3>Environment</h3>
+<code>{{ buildinfo.environment|linebreaksbr }}</code>
{% endblock%}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/buildinfo.debian.net.git
More information about the Reproducible-commits
mailing list