From ac1a31aa95b9e696fd423807a7af172897744b57 Mon Sep 17 00:00:00 2001 From: Wes John-Alder Date: Wed, 28 Oct 2026 08:22:50 -0400 Subject: [PATCH 1/3] PNE-9647: Say how the server fills allowed_names The ProcessTemplate docstring states that the Citrine Platform ignores a supplied allowed_names list and fills the field on read with the distinct names from the template's ingredient specs. Co-Authored-By: Claude Fable 5.1 --- gemd/__version__.py | 2 +- gemd/entity/template/process_template.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/gemd/__version__.py b/gemd/__version__.py index 3d67cd6..54499df 100644 --- a/gemd/__version__.py +++ b/gemd/__version__.py @@ -1 +1 @@ -__version__ = "2.4.0" +__version__ = "2.4.1" diff --git a/gemd/entity/template/process_template.py b/gemd/entity/template/process_template.py index b31ba52..3f7a2b0 100644 --- a/gemd/entity/template/process_template.py +++ b/gemd/entity/template/process_template.py @@ -32,7 +32,9 @@ class ProcessTemplate( are hierarchical strings that store information about an entity. They can be used for filtering and discoverability. allowed_names: List[str], optional - The set of names that a process' ingredients are allowed to use in their name field. + A list of ingredient names, kept for compatibility with existing code and stored JSON. + The Citrine Platform ignores a supplied list and fills this field on read with the + distinct names found in the ingredient specs that use the template. allowed_labels: List[str], optional The set of labels that a process' ingredients are allowed to use in their labels field. conditions: List[~gemd.entity.template.condition_template.ConditionTemplate] or \ From 6d3d4ec85dbd6083a49bc92ce10b3d4dd84e8598 Mon Sep 17 00:00:00 2001 From: Wes John-Alder Date: Wed, 28 Oct 2026 08:37:57 -0400 Subject: [PATCH 2/3] PNE-9647: clarify allowed_names deprecation --- gemd/entity/template/process_template.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gemd/entity/template/process_template.py b/gemd/entity/template/process_template.py index 3f7a2b0..77cf514 100644 --- a/gemd/entity/template/process_template.py +++ b/gemd/entity/template/process_template.py @@ -32,9 +32,11 @@ class ProcessTemplate( are hierarchical strings that store information about an entity. They can be used for filtering and discoverability. allowed_names: List[str], optional - A list of ingredient names, kept for compatibility with existing code and stored JSON. - The Citrine Platform ignores a supplied list and fills this field on read with the - distinct names found in the ingredient specs that use the template. + Deprecated. This field does not limit ingredient names. + The Citrine Platform ignores this list when you save a template. When you fetch a + template, this list has the distinct ingredient names from process specs that use + the template. Names come from datasets you can read. GEMD Python keeps this field + so code and JSON that use it keep working. allowed_labels: List[str], optional The set of labels that a process' ingredients are allowed to use in their labels field. conditions: List[~gemd.entity.template.condition_template.ConditionTemplate] or \ From 71e001ca9722856c8fb3a3e153f89a4df4818332 Mon Sep 17 00:00:00 2001 From: Wes John-Alder Date: Wed, 28 Oct 2026 08:45:50 -0400 Subject: [PATCH 3/3] PNE-9647: explain migration purpose of deprecated field --- gemd/entity/template/process_template.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gemd/entity/template/process_template.py b/gemd/entity/template/process_template.py index 77cf514..443f406 100644 --- a/gemd/entity/template/process_template.py +++ b/gemd/entity/template/process_template.py @@ -36,7 +36,7 @@ class ProcessTemplate( The Citrine Platform ignores this list when you save a template. When you fetch a template, this list has the distinct ingredient names from process specs that use the template. Names come from datasets you can read. GEMD Python keeps this field - so code and JSON that use it keep working. + to give users time to migrate code and JSON away from it. allowed_labels: List[str], optional The set of labels that a process' ingredients are allowed to use in their labels field. conditions: List[~gemd.entity.template.condition_template.ConditionTemplate] or \