[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