diff --git a/ietf/doc/migrations/0026_add_draft_rfceditor_state.py b/ietf/doc/migrations/0026_add_draft_rfceditor_state.py new file mode 100644 index 000000000..9f51f1529 --- /dev/null +++ b/ietf/doc/migrations/0026_add_draft_rfceditor_state.py @@ -0,0 +1,25 @@ +# Copyright The IETF Trust 2019, All Rights Reserved +# -*- coding: utf-8 -*- + +from __future__ import absolute_import, print_function, unicode_literals + +from django.db import migrations + +def forward(apps, schema_editor): + State = apps.get_model('doc','State') + State.objects.get_or_create(type_id='draft-rfceditor', slug='tooling-issue', name='TI', + desc='Tooling Issue; an update is needed to one or more of the tools in the publication pipeline before this document can be published') + +def reverse(apps, schema_editor): + State = apps.get_model('doc','State') + State.objects.filter(type_id='draft-rfceditor', slug='tooling-issue').delete() + +class Migration(migrations.Migration): + + dependencies = [ + ('doc', '0025_ianaexpertdocevent'), + ] + + operations = [ + migrations.RunPython(forward,reverse) + ] diff --git a/ietf/name/fixtures/names.json b/ietf/name/fixtures/names.json index d0ebca2b5..93f889299 100644 --- a/ietf/name/fixtures/names.json +++ b/ietf/name/fixtures/names.json @@ -2183,6 +2183,71 @@ "model": "doc.state", "pk": 150 }, + { + "fields": { + "desc": "One or more registries need experts assigned", + "name": "Need IANA Expert(s)", + "next_states": [], + "order": 0, + "slug": "need-experts", + "type": "draft-iana-experts", + "used": true + }, + "model": "doc.state", + "pk": 151 + }, + { + "fields": { + "desc": "One or more expert reviews have been assigned", + "name": "Reviews assigned", + "next_states": [], + "order": 1, + "slug": "reviews-assigned", + "type": "draft-iana-experts", + "used": true + }, + "model": "doc.state", + "pk": 152 + }, + { + "fields": { + "desc": "Some expert reviewers have identified issues", + "name": "Issues identified", + "next_states": [], + "order": 2, + "slug": "expert-issues", + "type": "draft-iana-experts", + "used": true + }, + "model": "doc.state", + "pk": 153 + }, + { + "fields": { + "desc": "All expert reviews have been completed with no blocking issues", + "name": "Expert Reviews OK", + "next_states": [], + "order": 2, + "slug": "reviewers-ok", + "type": "draft-iana-experts", + "used": true + }, + "model": "doc.state", + "pk": 154 + }, + { + "fields": { + "desc": "Tooling Issue; an update is needed to one or more of the tools in the publication pipeline before this document can be published", + "name": "TI", + "next_states": [], + "order": 0, + "slug": "tooling-issue", + "type": "draft-rfceditor", + "used": true + }, + "model": "doc.state", + "pk": 155 + }, { "fields": { "label": "State" @@ -2232,6 +2297,13 @@ "model": "doc.statetype", "pk": "draft-iana-action" }, + { + "fields": { + "label": "IANA Experts State" + }, + "model": "doc.statetype", + "pk": "draft-iana-experts" + }, { "fields": { "label": "IANA Review state" @@ -2688,7 +2760,7 @@ "groupman_roles": "[\"chair\",\"delegate\"]", "has_chartering_process": false, "has_default_jabber": false, - "has_documents": false, + "has_documents": true, "has_meetings": false, "has_milestones": false, "has_nonsession_materials": false, @@ -13463,7 +13535,7 @@ "fields": { "command": "xym", "switch": "--version", - "time": "2019-06-28T00:12:25.320", + "time": "2019-08-28T00:12:18.148", "used": true, "version": "xym 0.4" }, @@ -13474,7 +13546,7 @@ "fields": { "command": "pyang", "switch": "--version", - "time": "2019-06-28T00:12:26.510", + "time": "2019-08-28T00:12:19.512", "used": true, "version": "pyang 1.7.8" }, @@ -13485,7 +13557,7 @@ "fields": { "command": "yanglint", "switch": "--version", - "time": "2019-06-28T00:12:26.755", + "time": "2019-08-28T00:12:19.751", "used": true, "version": "yanglint 0.14.80" }, @@ -13496,9 +13568,9 @@ "fields": { "command": "xml2rfc", "switch": "--version", - "time": "2019-06-28T00:12:28.742", + "time": "2019-08-28T00:12:20.931", "used": true, - "version": "xml2rfc 2.22.3" + "version": "xml2rfc 2.23.1" }, "model": "utils.versioninfo", "pk": 4 diff --git a/ietf/sync/rfceditor.py b/ietf/sync/rfceditor.py index 8a5f41610..9fb094c2f 100644 --- a/ietf/sync/rfceditor.py +++ b/ietf/sync/rfceditor.py @@ -147,6 +147,7 @@ def update_drafts_from_queue(drafts): 'ISR-AUTH': slookup['isr-auth'], 'REF': slookup['ref'], 'RFC-EDITOR': slookup['rfc-edit'], + 'TI': slookup['tooling-issue'], 'TO': slookup['timeout'], 'MISSREF': slookup['missref'], } @@ -300,7 +301,6 @@ def parse_index(response): wg = None l = [] - pages = "" for fmt in node.getElementsByTagName("format"): l.append(get_child_text(fmt, "file-format")) file_formats = (",".join(l)).lower() diff --git a/ietf/sync/tests.py b/ietf/sync/tests.py index df2d33a53..fa7e70386 100644 --- a/ietf/sync/tests.py +++ b/ietf/sync/tests.py @@ -288,9 +288,8 @@ class RFCSyncTests(TestCase): ASCII - 12345 - 42 + 42 test @@ -401,6 +400,11 @@ class RFCSyncTests(TestCase): self.assertEqual(len(drafts), 1) self.assertEqual(len(warnings), 0) + # Test with TI state introduced 11 Sep 2019 + t = t.replace("EDIT*R*A(1G)", "TI") + __, warnings = rfceditor.parse_queue(io.StringIO(t)) + self.assertEqual(len(warnings), 0) + draft_name, date_received, state, tags, missref_generation, stream, auth48, cluster, refs = drafts[0] # currently, we only check what we actually use