Skip to content

Commit 178d46c

Browse files
daveoconnorkarimarie67
authored andcommitted
Made shas unique when combined with version, added additional logging (boostorg#1736)
1 parent c7ef806 commit 178d46c

File tree

6 files changed

+50
-36
lines changed

6 files changed

+50
-36
lines changed

libraries/tasks.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ def get_and_store_library_version_documentation_urls_for_version(version_pk):
4848
try:
4949
version = Version.objects.get(pk=version_pk)
5050
except Version.DoesNotExist:
51+
logger.error(f"Version does not exist for {version_pk=}")
5152
raise
5253

5354
if version_missing_docs(version):

versions/management/commands/import_archives_release_data.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ def command(release: str, new: bool):
3636
it will import the release data for all releases that are greater than or equal to
3737
the minimum release defined in settings.MIN_ARCHIVES_RELEASE.
3838
"""
39+
logger.info(f"import_archive_release_data {release=} {new=}")
3940
last_release = settings.MIN_ARCHIVES_RELEASE
4041

4142
if release:
@@ -44,21 +45,23 @@ def command(release: str, new: bool):
4445
versions = [Version.objects.most_recent()]
4546
else:
4647
versions = Version.objects.filter(name__gte=last_release)
48+
logger.info(f"import_archive_release_data {versions=}")
4749

4850
for v in versions:
49-
logger.info(f"Processing release {v.name}")
51+
logger.info(f"Processing release {v.name=}")
5052
version_num = v.name.replace("boost-", "")
5153
try:
5254
archives_urls = get_archives_download_uris_for_release(version_num)
5355
binaries_urls = get_binary_download_uris_for_release(version_num)
5456
file_urls = archives_urls + binaries_urls
5557
except requests.exceptions.HTTPError:
56-
print(f"Skipping {version_num}, error retrieving release data")
58+
logger.info(f"Skipping {version_num}, error retrieving release data")
5759
continue
5860

5961
download_data = []
6062
checksums = dict()
6163
for url in file_urls:
64+
logger.info(f"Processing {v.name=} {url=}")
6265
try:
6366
if "/binaries/" in url:
6467
if not checksums:
@@ -70,6 +73,6 @@ def command(release: str, new: bool):
7073
except (requests.exceptions.HTTPError, ValueError):
7174
print(f"Skipping {url}; error retrieving download data")
7275
continue
73-
76+
logger.info(f"Data for {v.name=} at {url=}: {download_data=}")
7477
store_release_downloads_for_version(v, download_data)
75-
print(f"Stored download data for {v.name}")
78+
logger.info(f"Stored download data from {url=} for {v.name}")
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Generated by Django 4.2.16 on 2025-08-22 22:43
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
("versions", "0023_version_fully_imported"),
10+
]
11+
12+
operations = [
13+
migrations.AlterField(
14+
model_name="versionfile",
15+
name="checksum",
16+
field=models.CharField(default=None, max_length=64),
17+
),
18+
migrations.AlterUniqueTogether(
19+
name="versionfile",
20+
unique_together={("version", "checksum")},
21+
),
22+
]

versions/models.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,12 +221,15 @@ class VersionFile(models.Model):
221221
operating_system = models.CharField(
222222
choices=OPERATING_SYSTEM_CHOICES, max_length=15, default=Unix
223223
)
224-
checksum = models.CharField(max_length=64, unique=True, default=None)
224+
checksum = models.CharField(max_length=64, default=None)
225225
url = models.URLField()
226226
display_name = models.CharField(max_length=256, blank=True, null=True)
227227

228228
objects = VersionFileManager()
229229

230+
class Meta:
231+
unique_together = [["version", "checksum"]]
232+
230233

231234
# TODO: should this go in a new `reviews` app?
232235
class Review(models.Model):

versions/releases.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -380,6 +380,7 @@ def store_release_downloads_for_version(version, release_data):
380380
- display_name (str): The name of the release file.
381381
"""
382382
for data in release_data:
383+
logger.info(f"Storing download data for {version.name}: {data=}")
383384
VersionFile.objects.update_or_create(
384385
version=version,
385386
checksum=data["checksum"],

versions/tasks.py

Lines changed: 15 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -143,18 +143,7 @@ def import_version(
143143
},
144144
)
145145

146-
if created:
147-
logger.info(
148-
"import_versions_created_version",
149-
version_name=name,
150-
version_id=version.pk,
151-
)
152-
else:
153-
logger.info(
154-
"import_versions_updated_version",
155-
version_name=name,
156-
version_id=version.pk,
157-
)
146+
logger.info(f"import_versions_version {created=} {name=} {version.pk} ")
158147

159148
# Get the release date for the version
160149
if get_release_date and not version.release_date:
@@ -325,18 +314,12 @@ def import_library_versions(version_name, token=None, version_type="tag"):
325314
library_version = save_library_version_by_library_key(
326315
library_name, version, gitmodule
327316
)
328-
if library_version:
329-
logger.info(
330-
"import_library_versions_by_library_key",
331-
version_name=version_name,
332-
library_name=library_name,
333-
)
334-
else:
335-
logger.info(
336-
"import_library_versions_skipped_library",
337-
version_name=version_name,
338-
library_name=library_name,
339-
)
317+
318+
logger.info(
319+
f"import_library_versions_by_library {version_name=} "
320+
f"{library_name=} {library_version=} "
321+
)
322+
340323
continue
341324

342325
if not libraries_json:
@@ -345,11 +328,11 @@ def import_library_versions(version_name, token=None, version_type="tag"):
345328
library_version = save_library_version_by_library_key(
346329
library_name, version, gitmodule
347330
)
331+
348332
if not library_version:
349333
logger.info(
350-
"import_library_versions_skipped_library",
351-
version_name=version_name,
352-
library_name=library_name,
334+
f"import_library_versions_skipped_library "
335+
f"{version_name=} {library_name=}"
353336
)
354337
continue
355338

@@ -401,7 +384,7 @@ def import_library_versions(version_name, token=None, version_type="tag"):
401384
# For any libraries no longer in gitmodules we want to remove master and develop
402385
# references from the library_versions list.
403386
if version_name in ["master", "develop"]:
404-
logger.info("Triggering removed submodules garbage collection")
387+
logger.info("Triggering removed submodules garbage collection")
405388
gc_removed_submodules.delay(library_keys, version_name)
406389

407390
# Retrieve and store the docs url for each library-version in this release
@@ -413,16 +396,17 @@ def import_library_versions(version_name, token=None, version_type="tag"):
413396

414397
@app.task
415398
def import_release_downloads(version_pk):
399+
logger.info(f"import_release_downloads w/ {version_pk=}")
416400
version = Version.objects.get(pk=version_pk)
417401
version_num = version.name.replace("boost-", "")
418402
if version_num < "1.63.0":
419403
# Downloads are in Sourceforge for older versions, and that has
420404
# not been implemented yet
421-
logger.info("import_release_downloads_skipped", version_name=version.name)
405+
logger.info(f"import_release_downloads_skipped {version.name=}")
422406
return
423-
407+
logger.info(f"import_release_downloads starting {version.name=}")
424408
call_command("import_archives_release_data", release=version_num)
425-
logger.info("import_release_downloads_complete", version_name=version.name)
409+
logger.info(f"import_release_downloads_complete {version.name=}")
426410

427411

428412
@app.task

0 commit comments

Comments
 (0)