Skip to content

DYN-: Dyn 9663 fix missing data from node help data documentation#17208

Merged
jasonstratton merged 3 commits into
DynamoDS:masterfrom
Chloepeg:DYN-9663-Fix-missing-data-from-node-help-data-documentation
Jul 14, 2026
Merged

DYN-: Dyn 9663 fix missing data from node help data documentation#17208
jasonstratton merged 3 commits into
DynamoDS:masterfrom
Chloepeg:DYN-9663-Fix-missing-data-from-node-help-data-documentation

Conversation

@Chloepeg

@Chloepeg Chloepeg commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Purpose

This PR addresses DYN-9663.

The changes in the code aim to ensure output port types are resolved correctly when building OpenNodeAnnotationEventArgs for the Documentation Browser. PortModel.GetInputPortType() and GetOutPortType() are the source of InputTypes / OutputTypes; when they returned null, the inputs/outputs tables showed blank type cells.

Before :

missingType

After : String.Concat and String.Join

string concat example

Curve Mapper :

curve mapper fix

String :

string fix

changes :

Update PortModel.GetInputPortType() and GetOutPortType() to handle DSFunctionBase (not only DSFunction), so variadic zero-touch nodes such as String.Concat and String.Join are included.
For DSVarArgFunction nodes, map extra UI ports to the last parameter’s type when port index does not match the underlying FunctionDescriptor parameter list (e.g. multiple string inputs backed by a single string[] parameter).
Add [OutPortTypes("double[]", "double[]")] to CurveMapperNodeModel so both output ports report their data type in node documentation.
Add [OutPortTypes("string")] to the String input node so its output Data type appears in the Documentation Browser.
Add unit tests DSVarArgFunctionPortsReportInputAndOutputTypes, CurveMapperOutputsReportPortTypes, and StringInputOutputReportsPortType in CoreTests.cs to cover the same port-type resolution path used by the Documentation Browser.

Declarations

Check these if you believe they are true

Release Notes

Fixed missing input and output data types in the Documentation Browser for variadic library nodes such as String.Concat, and String.Join and Curve Mapper, and String input node

Reviewers

@zeusongit
@DynamoDS/eidos

FYIs

@dnenov
@johnpierson
@jnealb
@jasonstratton

Chloepeg added 2 commits June 30, 2026 11:13
Ensures ZeroTouch vararg nodes like String.Concat and String.Join report input and output port types correctly in the documentation browser by resolving types through DSFunctionBase and mapping expanded variadic ports back to the params parameter.
Added a regression test for DSVarArgFunction port type reporting, covering String.Concat, String.Join, and an added variadic input port.
Adds missing output port type metadata for Curve Mapper so the documentation browser can display double[] for both y-Values and x-Values outputs. Adds regression coverage for the two output ports
@github-actions github-actions Bot changed the title Dyn 9663 fix missing data from node help data documentation DYN-: Dyn 9663 fix missing data from node help data documentation Jul 6, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See the ticket for this pull request: https://jira.autodesk.com/browse/DYN-9663

Adds [OutPortTypes("string")] to StringInput so the documentation browser can show string in the output Data type column. Adds regression coverage for the String input node output port.
@sonarqubecloud

sonarqubecloud Bot commented Jul 9, 2026

Copy link
Copy Markdown

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes missing input/output data types shown in the Documentation Browser by improving how port types are resolved for variadic zero-touch nodes and by adding missing OutPortTypes metadata for a couple of NodeModel-based nodes.

Changes:

  • Update PortModel.GetInputPortType() / GetOutPortType() to handle DSFunctionBase (including DSVarArgFunction) and map extra variadic UI ports to the final underlying parameter type.
  • Add OutPortTypes attributes to CurveMapperNodeModel and StringInput so their output port types appear in node documentation.
  • Add NUnit unit tests covering the same port-type resolution path used by the Documentation Browser.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

File Description
test/DynamoCoreTests/CoreTests.cs Adds unit tests validating port-type resolution for DSVarArgFunction, CurveMapperNodeModel, and StringInput.
src/Libraries/CoreNodeModels/Input/BaseTypes.cs Adds [OutPortTypes("string")] to StringInput so its output type appears in documentation.
src/Libraries/CoreNodeModels/CurveMapperNodeModel.cs Adds [OutPortTypes("double[]", "double[]")] so both output ports report types in documentation.
src/DynamoCore/Graph/Nodes/PortModel.cs Extends port-type resolution to DSFunctionBase and fixes variadic port indexing for DSVarArgFunction.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

Comment on lines 478 to 482
var fd = ztNode.Controller.Definition;
string type;
var parameters = fd.Parameters.ToList();
// In the case of a node for an instance method, the first port
// type is the declaring class type of the method itself.

@jasonstratton jasonstratton left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thank you.

@jasonstratton jasonstratton merged commit 1875d20 into DynamoDS:master Jul 14, 2026
31 of 32 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants