Skip to content

Commit b7eec8a

Browse files
committed
Build and maintain a full set of bibxml-ids documents.
- Legacy-Id: 19782
1 parent 54fc036 commit b7eec8a

5 files changed

Lines changed: 30 additions & 4 deletions

File tree

bin/hourly

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,9 @@ CHARTER=/a/www/ietf-ftp/charter
9292
wget -q https://datatracker.ietf.org/wg/1wg-charters-by-acronym.txt -O $CHARTER/1wg-charters-by-acronym.txt
9393
wget -q https://datatracker.ietf.org/wg/1wg-charters.txt -O $CHARTER/1wg-charters.txt
9494

95+
# Regenerate the last week of bibxml-ids
96+
$DTDIR/ietf/manage.py generate_draft_bibxml_files
97+
9598
# Create and update group wikis
9699
#$DTDIR/ietf/manage.py create_group_wikis
97100

ietf/doc/management/commands/generate_draft_bibxml_files.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def handle(self, *args, **options):
6161
process_all = options.get("all")
6262
days = options.get("days")
6363
#
64-
bibxmldir = os.path.join(settings.BIBXML_BASE_PATH, 'bibxml3')
64+
bibxmldir = os.path.join(settings.BIBXML_BASE_PATH, 'bibxml-ids')
6565
if not os.path.exists(bibxmldir):
6666
os.makedirs(bibxmldir)
6767
#

ietf/settings.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1016,8 +1016,8 @@ def skip_unreadable_post(record):
10161016
# Generation of pdf files
10171017
GHOSTSCRIPT_COMMAND = "/usr/bin/gs"
10181018

1019-
# Generation of bibxml files for xml2rfc
1020-
BIBXML_BASE_PATH = '/a/www/ietf-ftp/xml2rfc'
1019+
# Generation of bibxml files for internet-drafts
1020+
BIBXML_BASE_PATH = '/a/ietfdata/derived/bibxml'
10211021

10221022
# Timezone files for iCalendar
10231023
TZDATA_ICS_PATH = BASE_DIR + '/../vzic/zoneinfo/'

ietf/submit/tests.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
from ietf.utils.accesstoken import generate_access_token
4040
from ietf.utils.mail import outbox, empty_outbox, get_payload_text
4141
from ietf.utils.models import VersionInfo
42-
from ietf.utils.test_utils import login_testing_unauthorized, TestCase
42+
from ietf.utils.test_utils import login_testing_unauthorized, TestCase, unicontent
4343
from ietf.utils.draft import Draft
4444

4545

@@ -256,6 +256,12 @@ def extract_confirmation_url(self, confirmation_email):
256256

257257
return confirmation_url
258258

259+
def verify_bibxml_ids_creation(self, draft):
260+
url = urlreverse('ietf.doc.views_doc.document_bibxml', kwargs=dict(name=draft.name, rev=draft.rev))
261+
r = self.client.get(url)
262+
self.assertEqual(r.status_code, 200)
263+
self.assertIn(draft.name, unicontent(r))
264+
259265
def submit_new_wg(self, formats):
260266
# submit new -> supply submitter info -> approve
261267
GroupFactory(type_id='wg',acronym='ames')
@@ -374,6 +380,8 @@ def submit_new_wg(self, formats):
374380
self.assertContains(r, 'Yang Validation')
375381
self.assertContains(r, 'WG Document')
376382

383+
self.verify_bibxml_ids_creation(draft)
384+
377385
def test_submit_new_wg_txt(self):
378386
self.submit_new_wg(["txt"])
379387

@@ -685,6 +693,7 @@ def inspect_docevents(docevents, event_delta, event_type, be_in_desc, by_name):
685693
self.assertContains(r, draft.title)
686694
# Check submission settings
687695
self.assertEqual(draft.submission().xml_version, "3" if 'xml' in formats else None)
696+
self.verify_bibxml_ids_creation(draft)
688697

689698
def test_submit_existing_txt(self):
690699
self.submit_existing(["txt"])
@@ -839,6 +848,7 @@ def submit_new_individual(self, formats):
839848
new_revision = draft.latest_event()
840849
self.assertEqual(new_revision.type, "new_revision")
841850
self.assertEqual(new_revision.by.name, "Submitter Name")
851+
self.verify_bibxml_ids_creation(draft)
842852

843853
def test_submit_new_individual_txt(self):
844854
self.submit_new_individual(["txt"])
@@ -879,6 +889,7 @@ def submit_new_draft_no_org_or_address(self, formats):
879889
self.assertEqual(docauth.person, author)
880890
self.assertEqual(docauth.affiliation, '')
881891
self.assertEqual(docauth.country, '')
892+
self.verify_bibxml_ids_creation(doc)
882893

883894
def test_submit_new_draft_no_org_or_address_txt(self):
884895
self.submit_new_draft_no_org_or_address(['txt'])
@@ -1015,6 +1026,7 @@ def submit_new_individual_logged_in(self, formats):
10151026

10161027
# Check submission settings
10171028
self.assertEqual(draft.submission().xml_version, "3" if 'xml' in formats else None)
1029+
self.verify_bibxml_ids_creation(draft)
10181030

10191031
def test_submit_new_logged_in_txt(self):
10201032
self.submit_new_individual_logged_in(["txt"])
@@ -1058,6 +1070,7 @@ def test_submit_new_logged_in_with_extresources(self):
10581070
[str(r) for r in resources],
10591071
)
10601072
self._assert_extresource_change_event(draft, is_present=True)
1073+
self.verify_bibxml_ids_creation(draft)
10611074

10621075
def test_submit_update_individual(self):
10631076
IndividualDraftFactory(name='draft-ietf-random-thing', states=[('draft','rfc')], other_aliases=['rfc9999',], pages=5)
@@ -1115,6 +1128,7 @@ def test_submit_update_individual(self):
11151128
self.assertContains(r, draft.name)
11161129
self.assertContains(r, draft.title)
11171130
self._assert_extresource_change_event(draft, is_present=False)
1131+
self.verify_bibxml_ids_creation(draft)
11181132

11191133
def submit_existing_with_extresources(self, group_type, stream_type='ietf'):
11201134
"""Submit a draft with external resources
@@ -1390,6 +1404,7 @@ def test_edit_submission_and_force_post(self):
13901404
draft = Document.objects.get(docalias__name=name)
13911405
self.assertEqual(draft.rev, rev)
13921406
self.assertEqual(draft.docextresource_set.count(), 0)
1407+
self.verify_bibxml_ids_creation(draft)
13931408

13941409
def test_search_for_submission_and_edit_as_secretariat(self):
13951410
# submit -> edit

ietf/submit/utils.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
from django.db import transaction
1818
from django.http import HttpRequest # pyflakes:ignore
1919
from django.utils.module_loading import import_string
20+
from django.template.loader import render_to_string
2021

2122
import debug # pyflakes:ignore
2223

@@ -449,6 +450,13 @@ def post_submission(request, submission, approved_doc_desc, approved_subm_desc):
449450
submission.save()
450451

451452
create_submission_event(request, submission, approved_subm_desc)
453+
454+
# Create bibxml-ids entry
455+
ref_text = '%s' % render_to_string('doc/bibxml.xml', {'name':draft.name, 'doc': draft, 'doc_bibtype':'I-D'})
456+
ref_file_name = os.path.join(os.path.join(settings.BIBXML_BASE_PATH, 'bibxml-ids'), 'reference.I-D.%s.xml' % (draft.name[6:], ))
457+
with io.open(ref_file_name, "w", encoding='utf-8') as f:
458+
f.write(ref_text)
459+
452460
log.log(f"{submission.name}: done")
453461

454462

0 commit comments

Comments
 (0)