Skip to content

Commit 086366f

Browse files
authored
ci: merge main to release (Merge pull request ietf-tools#7089 from ietf-tools/main)
ci: merge main to release
2 parents b06fe7d + f86a803 commit 086366f

4 files changed

Lines changed: 126 additions & 19 deletions

File tree

ietf/group/management/commands/import_iesg_appeals.py

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Copyright The IETF Trust 2023, All Rights Reserved
22

3+
import csv
34
import datetime
45
import re
56
import shutil
@@ -148,9 +149,9 @@ def handle(self, *args, **options):
148149
part_times["klensin-2023-08-15.txt"] = "2023-08-15 15:03:55 -0400"
149150
part_times["response-to-klensin-2023-08-15.txt"] = "2023-08-24 18:54:13 +0300"
150151
part_times["hardie-frindell-2023-07-19.txt"] = "2023-07-19 07:17:16PDT"
151-
part_times[
152-
"response-to-hardie-frindell-2023-07-19.txt"
153-
] = "2023-08-15 11:58:26PDT"
152+
part_times["response-to-hardie-frindell-2023-07-19.txt"] = (
153+
"2023-08-15 11:58:26PDT"
154+
)
154155
part_times["mcsweeney-2020-07-08.txt"] = "2020-07-08 14:45:00 -0400"
155156
part_times["response-to-mcsweeney-2020-07-08.pdf"] = "2020-07-28 12:54:04 -0000"
156157
part_times["gont-2020-04-22.txt"] = "2020-04-22 22:26:20 -0400"
@@ -200,9 +201,9 @@ def handle(self, *args, **options):
200201
part_times["response-to-sayre-2006-08-29.txt"] = "2006-10-16 13:07:18 -0400"
201202
part_times["morfin-2006-08-16.pdf"] = "2006-08-16 18:28:19 -0400"
202203
part_times["response-to-morfin-2006-08-17.txt"] = "2006-08-22 12:05:42 -0400"
203-
part_times[
204-
"response-to-morfin-2006-08-17-part2.txt"
205-
] = "2006-11-07 13:00:58 -0500"
204+
part_times["response-to-morfin-2006-08-17-part2.txt"] = (
205+
"2006-11-07 13:00:58 -0500"
206+
)
206207
# part_times["anderson-2006-06-13.txt"]="2006-06-13 21:51:18EDT"
207208
part_times["anderson-2006-06-13.txt"] = "2006-06-13 21:51:18 -0400"
208209
part_times["response-to-anderson-2006-06-14.txt"] = "2006-07-10 14:31:08 -0400"
@@ -279,14 +280,15 @@ def handle(self, *args, **options):
279280
bits=bits,
280281
)
281282
redirects.append(
282-
(
283-
part.replace(".md", ".html")
284-
if part.endswith(".md")
285-
else part,
286-
artifact.pk,
287-
)
283+
[
284+
f'www6.ietf.org/iesg/appeal/{part.replace(".md", ".html") if part.endswith(".md") else part}',
285+
f"https://datatracker.ietf.org/group/iesg/appeals/artifact/{artifact.pk}",
286+
302,
287+
]
288288
)
289289

290290
shutil.rmtree(tmpdir)
291-
with open("iesg_appeal_redirects.txt", "w") as f:
292-
f.write(str(redirects))
291+
with open("iesg_appeal_redirects.csv", "w", newline="") as f:
292+
csvwriter = csv.writer(f)
293+
for row in redirects:
294+
csvwriter.writerow(row)

ietf/group/management/commands/import_iesg_statements.py

Lines changed: 88 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import debug # pyflakes:ignore
44

5+
import csv
56
import datetime
67
import os
78
import shutil
@@ -41,8 +42,11 @@ def handle(self, *args, **options):
4142
self.stdout.write(f"Clean up {tmpdir} manually")
4243
exit(-1)
4344

45+
redirects = []
4446
for item in self.get_work_items():
45-
replaced = item.title.endswith(" SUPERSEDED") or item.doc_time.date() == datetime.date(2007,7,30)
47+
replaced = item.title.endswith(
48+
" SUPERSEDED"
49+
) or item.doc_time.date() == datetime.date(2007, 7, 30)
4650
title = item.title
4751
if title.endswith(" - SUPERSEDED"):
4852
title = title[: -len(" - SUPERSEDED")]
@@ -93,20 +97,34 @@ def handle(self, *args, **options):
9397
os.makedirs(dest.parent, exist_ok=True)
9498
shutil.copy(source, dest)
9599

100+
redirects.append(
101+
[
102+
f"www.ietf.org/about/groups/iesg/statements/{item.slug}",
103+
f"https://datatracker.ietf.org/group/iesg/statements/{name}",
104+
302,
105+
]
106+
)
107+
96108
shutil.rmtree(tmpdir)
109+
with open("iesg_statement_redirects.csv", "w", newline="") as f:
110+
csvwriter = csv.writer(f)
111+
for row in redirects:
112+
csvwriter.writerow(row)
97113

98114
def get_work_items(self):
99-
Item = namedtuple("Item", "doc_time source_filename title")
115+
Item = namedtuple("Item", "doc_time source_filename title slug")
100116
items = []
101117
dressed_rows = " ".join(
102118
self.cut_paste_from_www().expandtabs(1).split(" ")
103119
).split("\n")
120+
old_slugs = self.get_old_slugs()
104121
# Rube-Goldberg-esque dance to deal with conflicting directions of the scrape and
105122
# what order we want the result to sort to
106123
dressed_rows.reverse()
124+
old_slugs.reverse()
107125
total_times_date_seen = Counter([row.split(" ")[0] for row in dressed_rows])
108126
count_date_seen_so_far = Counter()
109-
for row in dressed_rows:
127+
for row, slug in zip(dressed_rows, old_slugs):
110128
date_part = row.split(" ")[0]
111129
title_part = row[len(date_part) + 1 :]
112130
datetime_args = list(map(int, date_part.replace("-0", "-").split("-")))
@@ -120,6 +138,7 @@ def get_work_items(self):
120138
doc_time,
121139
f"{date_part}-{total_times_date_seen[date_part] - count_date_seen_so_far[date_part]}.md",
122140
title_part,
141+
slug,
123142
)
124143
)
125144
return items
@@ -187,3 +206,69 @@ def cut_paste_from_www(self):
187206
2000-11-20 A New IETF Work Area
188207
2000-08-29 Guidance on Interim IETF Working Group Meetings and Conference Calls - SUPERSEDED
189208
2000-08-29 IESG Guidance on the Moderation of IETF Working Group Mailing Lists"""
209+
210+
def get_old_slugs(self):
211+
return [
212+
"support-documents",
213+
"interim-meetings-guidance",
214+
"ethertypes",
215+
"second-report-on-the-rfc-8989-experiment",
216+
"interim-meetings-guidance-2023-01-27",
217+
"statement-on-restricting-access",
218+
"handling-ballot-positions",
219+
"report-on-rfc8989-experiment",
220+
"email-addresses-ietf-domain",
221+
"on-inclusive-language",
222+
"internet-draft-authorship",
223+
"processing-errata-ietf-stream",
224+
"last-call-guidance",
225+
"statement-on-oppressive-exclusionary-language",
226+
"interim-meetings-guidance-2020-05-01",
227+
"meeting-photography-policy",
228+
"interim-meetings-guidance-2018-01-11",
229+
"open-source-repositories-license",
230+
"support-documents-2016-11-13",
231+
"interim-meetings-guidance-2016-02-05",
232+
"interim-meetings-guidance-2016-01-11",
233+
"maximizing-encrypted-access",
234+
"internet-draft-authorship-2015-06-11",
235+
"designating-rfcs-historic",
236+
"iesg-discuss-criteria",
237+
"writable-mib-module",
238+
"anti-harassment-policy",
239+
"ethertypes-2012-10-25",
240+
"internet-draft-removal",
241+
"designating-rfcs-historic-2011-10-20",
242+
"designating-rfcs-historic-2011-06-27",
243+
"rfc-metadata-errata",
244+
"document-shepherds",
245+
"assignable-codepoints-addresses-names",
246+
"nomcom-eligibility-day-passes",
247+
"copyright-2009-09-08",
248+
"reserving-resources-examples",
249+
"interim-meetings-guidance-2008-09-02",
250+
"processing-rfc-errata",
251+
"spam-control-2008-04-14",
252+
"registration-requests-uris",
253+
"urn-namespaces-registry",
254+
"off-topic-postings",
255+
"appeals-actions-decisions",
256+
"experimental-congestion-control",
257+
"area-director-sponsoring-documents",
258+
"last-call-guidance-2007-01-15",
259+
"normative-informative-references",
260+
"disruptive-posting",
261+
"spam-control-2006-01-09",
262+
"auth48",
263+
"syntax-format-definitions",
264+
"idn",
265+
"copyright-2002-11-27",
266+
"spam-control-2002-03-13",
267+
"design-teams",
268+
"formal-languages-use",
269+
"sub-ip-area-2001-03-21",
270+
"sub-ip-area-2000-11-20",
271+
"sub-ip-area-2000-12-06",
272+
"interim-meetings-guidance-2000-08-29",
273+
"mailing-lists-moderation",
274+
]

ietf/group/views.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2209,7 +2209,6 @@ def statements(request, acronym, group_type=None):
22092209
)
22102210
.order_by("-published")
22112211
)
2212-
debug.show("statements.first().status")
22132212
return render(
22142213
request,
22152214
"group/statements.html",

ietf/meeting/management/commands/import_iesg_minutes.py

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Copyright The IETF Trust 2023, All Rights Reserved
22

33
from collections import namedtuple
4+
import csv
45
import datetime
56
import os
67
import re
@@ -158,6 +159,7 @@ def handle(self, *args, **options):
158159
minutes_dir = Path(old_minutes_root)
159160
date_re = re.compile(r"\d{4}-\d{2}-\d{2}")
160161
meeting_times = set()
162+
redirects = []
161163
for file_prefix in ["minutes", "narrative"]:
162164
paths = list(minutes_dir.glob(f"[12][09][0129][0-9]/{file_prefix}*.txt"))
163165
paths.extend(
@@ -259,6 +261,13 @@ def handle(self, *args, **options):
259261
else:
260262
os.makedirs(dest.parent, exist_ok=True)
261263
shutil.copy(source, dest)
264+
redirects.append(
265+
[
266+
f"www6.ietf.org/iesg/minutes/{dt.year}/{bof_coord_data[dt].source_name}",
267+
f"https://datatracker.ietf.org/doc/{doc_name}",
268+
302,
269+
]
270+
)
262271
else:
263272
for type_id in ["minutes", "narrativeminutes"]:
264273
source_file_prefix = (
@@ -334,10 +343,22 @@ def handle(self, *args, **options):
334343
html_content = re.sub(
335344
'<a href="http://validator.w3.org/[^>]*> *<img[^>]*></a>',
336345
"",
337-
html_content
346+
html_content,
338347
)
339348
dest.write_text(html_content, encoding="utf-8")
340349
else:
341350
shutil.copy(txt_source, dest)
351+
redirects.append(
352+
[
353+
f"www6.ietf.org/iesg/minutes/{dt.year}/{txt_source.name if txt_source.exists() else html_source.name}",
354+
f"https://datatracker.ietf.org/doc/{doc_name}",
355+
302,
356+
]
357+
)
342358

343359
counter += 1
360+
361+
with open("iesg_minutes_redirects.csv", "w", newline="") as f:
362+
csvwriter = csv.writer(f)
363+
for row in redirects:
364+
csvwriter.writerow(row)

0 commit comments

Comments
 (0)