Should the serialized params schema name the kinds of reference?
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 25/100
- Issue 类型
- 功能
- 描述清晰度
- 需要澄清
- 活跃度
- 活跃
- 技术栈
- python
调研方向
Read SerializedWorkflowSpec.params_schema, the pydantic models that generate the form, and the backend field_types.fits logic. The form-generator spike is a prerequisite; this issue leaves two schema designs and output matching behavior undecided. Done means those questions have a decision and the schema and service behavior reflect it.
由索引模型根据 Issue 内容生成。
描述
In SerializedWorkflowSpec.params_schema, each place that takes a reference to an output lists the kinds of reference by name:
"beam_centre": {"anyOf": [{"$ref": "#/$defs/BeamCentre", "not": {"required": ["@ref"]}},
{"anyOf": [{"$ref": "#/$defs/OutputRef"}, {"$ref": "#/$defs/AccumulatorRef"}],
"dataType": "BeamCentre"}]}
So every spec's schema contains framework concepts (records, accumulators). A UI generated from the schema offers an accumulator picker even if the app has no accumulators. Adding a kind of reference would change the schema of every spec.
Alternative. The spec says only "data of type X, by reference": one generic reference form with dataType. The framework decides which kinds of reference can supply that data. Counterpoint: the schema also validates request JSON, which holds concrete @ref objects. A generic {"@ref": <kind>, ...} form could still do that job, but it would validate less strictly.
Related: matching outputs to places by name. dataType is the bare class name (field_types.type_name). The backend uses field_types.fits, which accepts a subclass of the class at the place. Matching on the dataType string cannot see subclass fits, and two packages that each define a Sample get the same name. A UI without the workflow package could ask the backend which records have outputs that fit a place, instead of comparing names. The service has the packages installed, so it can run fits itself.
To be decided after the form-generator spike. The spike generates the form from the pydantic models, so it does not run into either question.
- 主要语言
- Python
- 星标
- 0
- 派生
- 1
- 平均合并
- 9 小时 23 分钟
- 30 天内合并 PR
- 65
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
scipp/essapps 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 62/100
维护者通常 1 天内回复
-
A number that is not finite is stored as None at a field that accepts None可能已有人在做 @jeevanabhi-r 于 6 天前认领。 未关闭bug
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
难度 5/5 一周以上 新手友好度 25/100
维护者通常 1 天内回复
-
Technique apps: the batch as the main page, and inspecting a value before a long reduction可能已有人在做 @SimonHeybrock 于 1 天前认领。 未关闭
难度 5/5 一周以上 新手友好度 25/100
维护者通常 1 天内回复
-
难度 5/5 一周以上 新手友好度 25/100
维护者通常 1 天内回复
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 77/100
Significant-Gravitas/AutoGPT#16733 ·
维护者通常 1 天内回复
-
changelog investigate
难度 1/5 1 小时以内 新手友好度 74/100
ramnes/notion-sdk-py#444 ·
-
documentation
难度 2/5 1-3 小时 新手友好度 69/100
Judgment-Pack/judgment-pack-spec#299 ·
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 90/100
QuantConnect/Documentation#2858 ·
维护者通常 1 天内回复
-
good first issue
难度 2/5 1-3 小时 新手友好度 90/100
btclib-org/btclib#3047 ·
维护者通常 1 天内回复