Skip to content

Commit 369219e

Browse files
fix: ensure version field in the pathogen.json of released datasets
fix: ensure versions in output `pathogen.json` This ensures that `version` field are added to the `pathogen.json` file during release process, when a versioned package is prepared
1 parent d9c298f commit 369219e

1 file changed

Lines changed: 25 additions & 14 deletions

File tree

scripts/rebuild

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,8 @@ def process_one_collection(collection_json_path, index_json, args, tag, updated_
336336
}
337337
json_write(collection_json, collection_json_path, no_sort_keys=True)
338338

339-
release_infos = prepare_dataset_release_infos(args, datasets_from_index_json, collection_dir, tag, updated_at)
339+
release_infos = prepare_dataset_release_infos(args, datasets, datasets_from_index_json, collection_dir, tag,
340+
updated_at)
340341
release_infos = sort_release_infos(release_infos, dataset_order)
341342

342343
collection_info = deepcopy(collection_json)
@@ -357,23 +358,28 @@ def get_datasets_from_index_json(index_json, collection_id):
357358
return dict_get(collection, ["datasets"]) or []
358359

359360

360-
def prepare_dataset_release_infos(args, datasets, collection_dir, tag, updated_at):
361+
def prepare_dataset_release_infos(args, datasets, datasets_from_index_json, collection_dir, tag, updated_at):
361362
release_infos = []
362363
for pathogen_json_path in find_files("pathogen.json", collection_dir):
363364
pathogen_json = json_read(pathogen_json_path)
364365
dataset_dir = dirname(pathogen_json_path)
365366
dataset_dir_rel = relpath(dataset_dir, args.input_dir)
366367

367-
i_dataset = find_index_by(lambda dataset: dataset["path"] == dataset_dir_rel, datasets)
368-
dataset = pathogen_json
368+
dataset_from_index = pathogen_json
369+
i_dataset = find_index_by(lambda dataset: dataset["path"] == dataset_dir_rel, datasets_from_index_json)
369370
if i_dataset is not None:
370-
dataset = datasets[i_dataset]
371-
372-
path = dict_get(dataset, ['path']) or dataset_dir_rel
371+
dataset_from_index = datasets_from_index_json[i_dataset]
373372

374-
if not dataset_has_changes(dataset, dataset_dir):
373+
if not dataset_has_changes(dataset_from_index, dataset_dir):
375374
continue
376375

376+
dataset_new = dataset_from_index
377+
i_dataset = find_index_by(lambda dataset: dataset["path"] == dataset_dir_rel, datasets)
378+
if i_dataset is not None:
379+
dataset_new = datasets[i_dataset]
380+
381+
path = dict_get(dataset_new, ['path']) or dataset_dir_rel
382+
377383
changelog_path = join(dataset_dir, "CHANGELOG.md")
378384
release_notes = changelog_get_unreleased_section(changelog_path)
379385
if len(release_notes) == 0:
@@ -386,14 +392,16 @@ def prepare_dataset_release_infos(args, datasets, collection_dir, tag, updated_a
386392
)
387393

388394
if args.release:
389-
_, last_version = dataset_get_versions(dataset)
390-
release_info = prepare_dataset_release_info(dataset_dir, dataset, dict_get(last_version, ["tag"]), updated_at)
395+
_, last_version = dataset_get_versions(dataset_from_index)
396+
release_info = prepare_dataset_release_info(
397+
dataset_dir, dataset_from_index, dict_get(last_version, ["tag"]), updated_at
398+
)
391399
if release_info is None:
392400
continue
393401

394402
release_infos.append(release_info)
395403

396-
create_dataset_package(args, dataset, path, tag, dataset_dir)
404+
create_dataset_package(args, dataset_new, path, tag, dataset_dir)
397405

398406
return release_infos
399407

@@ -443,8 +451,8 @@ def publish_to_github_releases(args, tag, commit_hash, release_notes):
443451

444452

445453
def prepare_dataset_release_info(dataset_dir, dataset, last_version, updated_at):
446-
modified_files = list(git_get_modified_files(from_revision=last_version, dirs=dataset_dir))
447-
modified_files = list(map(lambda f: realpath(f), modified_files))
454+
# modified_files = list(git_get_modified_files(from_revision=last_version, dirs=dataset_dir))
455+
# modified_files = list(map(lambda f: realpath(f), modified_files))
448456

449457
# if len(modified_files) == 0:
450458
# return None
@@ -468,7 +476,6 @@ def prepare_dataset_release_info(dataset_dir, dataset, last_version, updated_at)
468476
def create_dataset_package(args, dataset, path, tag, dataset_dir):
469477
files = dict_get_required(dataset, ["files"])
470478
dict_get_required(files, ["reference"])
471-
dict_get_required(files, ["pathogenJson"])
472479

473480
out_dir = join(args.output_dir, path, tag)
474481
for _, file in files.items():
@@ -477,6 +484,10 @@ def create_dataset_package(args, dataset, path, tag, dataset_dir):
477484
if file == "tree.json":
478485
# Minify tree.json
479486
json.dump(json_read(inpath), open(outpath, "w"), separators=(",", ":"), indent=None)
487+
elif file == "pathogen.json":
488+
pathogen_json = json_read(inpath)
489+
pathogen_json["version"] = dataset["version"]
490+
json_write(pathogen_json, outpath, no_sort_keys=True)
480491
else:
481492
copy(inpath, outpath)
482493

0 commit comments

Comments
 (0)