From 3e443d00cf1b4c6a2d344bcfbc8b1750fd3847dc Mon Sep 17 00:00:00 2001 From: Joel Dixon Date: Tue, 16 Dec 2025 14:20:26 -0600 Subject: [PATCH 1/6] Add a dependency graph so we can see package dependencies and know what to release in what order. --- DEPENDENCY GRAPH.md | 75 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 DEPENDENCY GRAPH.md diff --git a/DEPENDENCY GRAPH.md b/DEPENDENCY GRAPH.md new file mode 100644 index 00000000..68008eb1 --- /dev/null +++ b/DEPENDENCY GRAPH.md @@ -0,0 +1,75 @@ +# Hello + +```mermaid +graph TD + %% Proto packages (base level) + A[ni.datamonikers.v1.proto] + B[ni.grpcdevice.v1.proto] + C[ni.measurementlink.discovery.v1.proto] + D[ni.measurementlink.measurement.v1.proto] + E[ni.measurementlink.measurement.v2.proto] + F[ni.measurementlink.pinmap.v1.proto] + G[ni.measurementlink.proto] + H[ni.measurementlink.sessionmanagement.v1.proto] + I[ni.measurements.data.v1.proto] + J[ni.measurements.metadata.v1.proto] + K[ni.panels.v1.proto] + L[ni.protobuf.types] + + %% Extension packages + M[ni-grpc-extensions] + + %% Client packages (depend on proto packages) + N[ni.datamonikers.v1.client] + O[ni.measurementlink.discovery.v1.client] + P[ni.measurementlink.pinmap.v1.client] + Q[ni.measurementlink.sessionmanagement.v1.client] + R[ni.measurements.data.v1.client] + S[ni.measurements.metadata.v1.client] + + %% Dependencies + N --> A + N --> M + + O --> C + O --> M + + P --> F + P --> G + P --> M + + Q --> H + Q --> M + + R --> I + R --> M + + S --> J + S --> M + + %% Proto package dependencies (common patterns) + C --> L + D --> L + E --> L + F --> L + G --> L + H --> L + I --> L + J --> L + K --> L + + %% Measurement v2 depends on v1 + E --> D + + %% MeasurementLink proto depends on base proto types + G --> L + + %% Style classes + classDef protoPackage fill:#e1f5fe + classDef clientPackage fill:#f3e5f5 + classDef extensionPackage fill:#e8f5e8 + + class A,B,C,D,E,F,G,H,I,J,K,L protoPackage + class N,O,P,Q,R,S clientPackage + class M extensionPackage +``` \ No newline at end of file From 69492fd389ceb91a76906d8e1c9fd9a33b662c6c Mon Sep 17 00:00:00 2001 From: Joel Dixon Date: Tue, 16 Dec 2025 14:30:40 -0600 Subject: [PATCH 2/6] Change to a layered mermaid graph for readability --- DEPENDENCY GRAPH.md | 120 +++++++++++++++++--------------------------- 1 file changed, 47 insertions(+), 73 deletions(-) diff --git a/DEPENDENCY GRAPH.md b/DEPENDENCY GRAPH.md index 68008eb1..32fd1454 100644 --- a/DEPENDENCY GRAPH.md +++ b/DEPENDENCY GRAPH.md @@ -1,75 +1,49 @@ -# Hello - ```mermaid -graph TD - %% Proto packages (base level) - A[ni.datamonikers.v1.proto] - B[ni.grpcdevice.v1.proto] - C[ni.measurementlink.discovery.v1.proto] - D[ni.measurementlink.measurement.v1.proto] - E[ni.measurementlink.measurement.v2.proto] - F[ni.measurementlink.pinmap.v1.proto] - G[ni.measurementlink.proto] - H[ni.measurementlink.sessionmanagement.v1.proto] - I[ni.measurements.data.v1.proto] - J[ni.measurements.metadata.v1.proto] - K[ni.panels.v1.proto] - L[ni.protobuf.types] - - %% Extension packages - M[ni-grpc-extensions] - - %% Client packages (depend on proto packages) - N[ni.datamonikers.v1.client] - O[ni.measurementlink.discovery.v1.client] - P[ni.measurementlink.pinmap.v1.client] - Q[ni.measurementlink.sessionmanagement.v1.client] - R[ni.measurements.data.v1.client] - S[ni.measurements.metadata.v1.client] - - %% Dependencies - N --> A - N --> M - - O --> C - O --> M - - P --> F - P --> G - P --> M - - Q --> H - Q --> M - - R --> I - R --> M - - S --> J - S --> M - - %% Proto package dependencies (common patterns) - C --> L - D --> L - E --> L - F --> L - G --> L - H --> L - I --> L - J --> L - K --> L - - %% Measurement v2 depends on v1 - E --> D - - %% MeasurementLink proto depends on base proto types - G --> L - - %% Style classes - classDef protoPackage fill:#e1f5fe - classDef clientPackage fill:#f3e5f5 - classDef extensionPackage fill:#e8f5e8 - - class A,B,C,D,E,F,G,H,I,J,K,L protoPackage - class N,O,P,Q,R,S clientPackage - class M extensionPackage +graph TB + subgraph "Base Types" + PT[ni.protobuf.types] + end + + subgraph "gRPC Extensions" + GE[ni-grpc-extensions] + end + + subgraph "Proto Packages" + DP[ni.datamonikers.v1.proto] + GDP[ni.grpcdevice.v1.proto] + DISC[ni.measurementlink.discovery.v1.proto] + MEAS1[ni.measurementlink.measurement.v1.proto] + MEAS2[ni.measurementlink.measurement.v2.proto] + PIN[ni.measurementlink.pinmap.v1.proto] + ML[ni.measurementlink.proto] + SESS[ni.measurementlink.sessionmanagement.v1.proto] + DATA[ni.measurements.data.v1.proto] + META[ni.measurements.metadata.v1.proto] + PAN[ni.panels.v1.proto] + end + + subgraph "Client Packages" + DC[ni.datamonikers.v1.client] + DISCC[ni.measurementlink.discovery.v1.client] + PINC[ni.measurementlink.pinmap.v1.client] + SESSC[ni.measurementlink.sessionmanagement.v1.client] + DATAC[ni.measurements.data.v1.client] + METAC[ni.measurements.metadata.v1.client] + end + + %% Simple vertical dependencies + DC --> DP + DC --> GE + DISCC --> DISC + DISCC --> GE + PINC --> PIN + PINC --> GE + SESSC --> SESS + SESSC --> GE + DATAC --> DATA + DATAC --> GE + METAC --> META + METAC --> GE + + MEAS2 --> MEAS1 ``` \ No newline at end of file From 2548cf00e29a235335dd99725bd88dddee515534 Mon Sep 17 00:00:00 2001 From: Joel Dixon Date: Tue, 16 Dec 2025 14:48:10 -0600 Subject: [PATCH 3/6] Add Plant UML diagram --- DEPENDENCY GRAPH.html | 121 ++++++++++++++++++++++++++++++++++++++++++ DEPENDENCY-GRAPH.puml | 23 ++++++++ 2 files changed, 144 insertions(+) create mode 100644 DEPENDENCY GRAPH.html create mode 100644 DEPENDENCY-GRAPH.puml diff --git a/DEPENDENCY GRAPH.html b/DEPENDENCY GRAPH.html new file mode 100644 index 00000000..9182818c --- /dev/null +++ b/DEPENDENCY GRAPH.html @@ -0,0 +1,121 @@ + + DEPENDENCY GRAPH + + + + + + + + + + + + + +
+ +
graph TB + subgraph "Base Types" + PT[ni.protobuf.types] + end + + subgraph "gRPC Extensions" + GE[ni-grpc-extensions] + end + + subgraph "Proto Packages" + DP[ni.datamonikers.v1.proto] + GDP[ni.grpcdevice.v1.proto] + DISC[ni.measurementlink.discovery.v1.proto] + MEAS1[ni.measurementlink.measurement.v1.proto] + MEAS2[ni.measurementlink.measurement.v2.proto] + PIN[ni.measurementlink.pinmap.v1.proto] + ML[ni.measurementlink.proto] + SESS[ni.measurementlink.sessionmanagement.v1.proto] + DATA[ni.measurements.data.v1.proto] + META[ni.measurements.metadata.v1.proto] + PAN[ni.panels.v1.proto] + end + + subgraph "Client Packages" + DC[ni.datamonikers.v1.client] + DISCC[ni.measurementlink.discovery.v1.client] + PINC[ni.measurementlink.pinmap.v1.client] + SESSC[ni.measurementlink.sessionmanagement.v1.client] + DATAC[ni.measurements.data.v1.client] + METAC[ni.measurements.metadata.v1.client] + end + + %% Simple vertical dependencies + DC --> DP + DC --> GE + DISCC --> DISC + DISCC --> GE + PINC --> PIN + PINC --> GE + SESSC --> SESS + SESSC --> GE + DATAC --> DATA + DATAC --> GE + METAC --> META + METAC --> GE + + MEAS2 --> MEAS1 +
+
+ + + + + + + + + + \ No newline at end of file diff --git a/DEPENDENCY-GRAPH.puml b/DEPENDENCY-GRAPH.puml new file mode 100644 index 00000000..f302ff93 --- /dev/null +++ b/DEPENDENCY-GRAPH.puml @@ -0,0 +1,23 @@ +@startuml dependency-graph +!theme plain + +package "Base" { + [ni.protobuf.types] + [ni-grpc-extensions] +} + +package "Proto Packages" { + [ni.datamonikers.v1.proto] + [ni.measurements.data.v1.proto] +} + +package "Client Packages" { + [ni.datamonikers.v1.client] + [ni.measurements.data.v1.client] +} + +[ni.datamonikers.v1.client] --> [ni.datamonikers.v1.proto] +[ni.datamonikers.v1.client] --> [ni-grpc-extensions] +[ni.datamonikers.v1.proto] --> [ni.protobuf.types] + +@enduml \ No newline at end of file From af65eabd642df859d7bcb62289e9311fe1a791d5 Mon Sep 17 00:00:00 2001 From: Joel Dixon Date: Tue, 16 Dec 2025 14:56:18 -0600 Subject: [PATCH 4/6] Experiment with markdown containing plantuml --- DEPENDENCY-GRAPH.puml => dependencies.puml | 0 tryit.md | 5 +++++ 2 files changed, 5 insertions(+) rename DEPENDENCY-GRAPH.puml => dependencies.puml (100%) create mode 100644 tryit.md diff --git a/DEPENDENCY-GRAPH.puml b/dependencies.puml similarity index 100% rename from DEPENDENCY-GRAPH.puml rename to dependencies.puml diff --git a/tryit.md b/tryit.md new file mode 100644 index 00000000..c4c9f83b --- /dev/null +++ b/tryit.md @@ -0,0 +1,5 @@ +```plantuml +@startuml +alice -> bob:hello +@enduml +``` \ No newline at end of file From d06027d5acde0b49e636d8b63f709eb7147fd577 Mon Sep 17 00:00:00 2001 From: Joel Dixon Date: Tue, 16 Dec 2025 16:15:51 -0600 Subject: [PATCH 5/6] Make a AI-generated, hand-validated dependency graph in html --- DEPENDENCY GRAPH.html | 121 ---------- DEPENDENCY GRAPH.md | 49 ----- Intra-Repo-Dependencies.html | 415 +++++++++++++++++++++++++++++++++++ dependencies.puml | 23 -- 4 files changed, 415 insertions(+), 193 deletions(-) delete mode 100644 DEPENDENCY GRAPH.html delete mode 100644 DEPENDENCY GRAPH.md create mode 100644 Intra-Repo-Dependencies.html delete mode 100644 dependencies.puml diff --git a/DEPENDENCY GRAPH.html b/DEPENDENCY GRAPH.html deleted file mode 100644 index 9182818c..00000000 --- a/DEPENDENCY GRAPH.html +++ /dev/null @@ -1,121 +0,0 @@ - - DEPENDENCY GRAPH - - - - - - - - - - - - - -
- -
graph TB - subgraph "Base Types" - PT[ni.protobuf.types] - end - - subgraph "gRPC Extensions" - GE[ni-grpc-extensions] - end - - subgraph "Proto Packages" - DP[ni.datamonikers.v1.proto] - GDP[ni.grpcdevice.v1.proto] - DISC[ni.measurementlink.discovery.v1.proto] - MEAS1[ni.measurementlink.measurement.v1.proto] - MEAS2[ni.measurementlink.measurement.v2.proto] - PIN[ni.measurementlink.pinmap.v1.proto] - ML[ni.measurementlink.proto] - SESS[ni.measurementlink.sessionmanagement.v1.proto] - DATA[ni.measurements.data.v1.proto] - META[ni.measurements.metadata.v1.proto] - PAN[ni.panels.v1.proto] - end - - subgraph "Client Packages" - DC[ni.datamonikers.v1.client] - DISCC[ni.measurementlink.discovery.v1.client] - PINC[ni.measurementlink.pinmap.v1.client] - SESSC[ni.measurementlink.sessionmanagement.v1.client] - DATAC[ni.measurements.data.v1.client] - METAC[ni.measurements.metadata.v1.client] - end - - %% Simple vertical dependencies - DC --> DP - DC --> GE - DISCC --> DISC - DISCC --> GE - PINC --> PIN - PINC --> GE - SESSC --> SESS - SESSC --> GE - DATAC --> DATA - DATAC --> GE - METAC --> META - METAC --> GE - - MEAS2 --> MEAS1 -
-
- - - - - - - - - - \ No newline at end of file diff --git a/DEPENDENCY GRAPH.md b/DEPENDENCY GRAPH.md deleted file mode 100644 index 32fd1454..00000000 --- a/DEPENDENCY GRAPH.md +++ /dev/null @@ -1,49 +0,0 @@ -```mermaid -graph TB - subgraph "Base Types" - PT[ni.protobuf.types] - end - - subgraph "gRPC Extensions" - GE[ni-grpc-extensions] - end - - subgraph "Proto Packages" - DP[ni.datamonikers.v1.proto] - GDP[ni.grpcdevice.v1.proto] - DISC[ni.measurementlink.discovery.v1.proto] - MEAS1[ni.measurementlink.measurement.v1.proto] - MEAS2[ni.measurementlink.measurement.v2.proto] - PIN[ni.measurementlink.pinmap.v1.proto] - ML[ni.measurementlink.proto] - SESS[ni.measurementlink.sessionmanagement.v1.proto] - DATA[ni.measurements.data.v1.proto] - META[ni.measurements.metadata.v1.proto] - PAN[ni.panels.v1.proto] - end - - subgraph "Client Packages" - DC[ni.datamonikers.v1.client] - DISCC[ni.measurementlink.discovery.v1.client] - PINC[ni.measurementlink.pinmap.v1.client] - SESSC[ni.measurementlink.sessionmanagement.v1.client] - DATAC[ni.measurements.data.v1.client] - METAC[ni.measurements.metadata.v1.client] - end - - %% Simple vertical dependencies - DC --> DP - DC --> GE - DISCC --> DISC - DISCC --> GE - PINC --> PIN - PINC --> GE - SESSC --> SESS - SESSC --> GE - DATAC --> DATA - DATAC --> GE - METAC --> META - METAC --> GE - - MEAS2 --> MEAS1 -``` \ No newline at end of file diff --git a/Intra-Repo-Dependencies.html b/Intra-Repo-Dependencies.html new file mode 100644 index 00000000..670ef712 --- /dev/null +++ b/Intra-Repo-Dependencies.html @@ -0,0 +1,415 @@ + + + + NI APIs Python - Package Dependencies + + + +
+
+

NI APIs Python - Package Dependencies (19 Packages)

+
+ +
+
+ +
+
Base
+
ni.protobuf.types
+
+
Dependencies:
+
None (foundation package)
+
+
+ +
+
Base
+
ni-grpc-extensions
+
+
Dependencies:
+
None (foundation package)
+
+
+ + +
+
Proto
+
ni.datamonikers.v1.proto
+
+
Dependencies:
+
None
+
+
+ +
+
Proto
+
ni.measurementlink.discovery.v1.proto
+
+
Dependencies:
+
None
+
+
+ +
+
Proto
+
ni.measurementlink.proto
+
+
Dependencies:
+
None
+
+
+ +
+
Proto
+
ni.measurementlink.measurement.v1.proto
+
+
Dependencies:
+
ni.measurementlink.proto
+
+
+ +
+
Proto
+
ni.measurementlink.measurement.v2.proto
+
+
Dependencies:
+
ni.measurementlink.proto
+
+
+ +
+
Proto
+
ni.measurementlink.pinmap.v1.proto
+
+
Dependencies:
+
None
+
+
+ +
+
Proto
+
ni.measurementlink.sessionmanagement.v1.proto
+
+
Dependencies:
+
None
+
+
+ +
+
Proto
+
ni.measurements.metadata.v1.proto
+
+
Dependencies:
+
None
+
+
+ +
+
Proto
+
ni.measurements.data.v1.proto
+
+
Dependencies:
+
ni.protobuf.types
+
ni.measurements.metadata.v1.proto
+
ni.datamonikers.v1.proto
+
+
+ +
+
Proto
+
ni.grpcdevice.v1.proto
+
+
Dependencies:
+
None
+
+
+ +
+
Proto
+
ni.panels.v1.proto
+
+
Dependencies:
+
None
+
+
+ + +
+
Client
+
ni.datamonikers.v1.client
+
+
Dependencies:
+
ni-grpc-extensions
+
ni.datamonikers.v1.proto
+
+
+ +
+
Client
+
ni.measurementlink.discovery.v1.client
+
+
Dependencies:
+
ni-grpc-extensions
+
ni.measurementlink.discovery.v1.proto
+
+
+ +
+
Client
+
ni.measurementlink.pinmap.v1.client
+
+
Dependencies:
+
ni-grpc-extensions
+
ni.measurementlink.discovery.v1.client
+
ni.measurementlink.measurement.v1.proto
+
ni.measurementlink.measurement.v2.proto
+
ni.measurementlink.sessionmanagement.v1.client
+
ni.measurementlink.pinmap.v1.proto
+
+
+ +
+
Client
+
ni.measurementlink.sessionmanagement.v1.client
+
+
Dependencies:
+
ni.measurementlink.sessionmanagement.v1.proto
+
ni.measurementlink.pinmap.v1.proto
+
ni.measurementlink.proto
+
ni.grpcdevice.v1.proto
+
ni-grpc-extensions
+
ni.measurementlink.discovery.v1.client
+
+
+ +
+
Client
+
ni.measurements.metadata.v1.client
+
+
Dependencies:
+
ni.measurementlink.discovery.v1.client
+
ni.measurements.metadata.v1.proto
+
+
+ +
+
Client
+
ni.measurements.data.v1.client
+
+
Dependencies:
+
ni.measurementlink.discovery.v1.client
+
ni.measurements.data.v1.proto
+
+
+
+ + +
+
+ 🚀 Recommended Release Order +
+ +
+ 1 +
+
Release foundation packages
+
ni.protobuf.types and ni-grpc-extensions (can be released in parallel)
+
+
+ +
+ 2 +
+
Release independent proto packages
+
ni.datamonikers.v1.proto, ni.measurementlink.discovery.v1.proto, ni.measurementlink.proto, ni.measurementlink.pinmap.v1.proto, ni.measurementlink.sessionmanagement.v1.proto, ni.measurements.metadata.v1.proto, ni.grpcdevice.v1.proto, ni.panels.v1.proto (can be released in parallel)
+
+
+ +
+ 3 +
+
Release dependent proto packages
+
ni.measurementlink.measurement.v1.proto (depends on ni.measurementlink.proto)
+
ni.measurementlink.measurement.v2.proto (depends on ni.measurementlink.proto)
+
ni.measurements.data.v1.proto (depends on ni.measurements.metadata.v1.proto, ni.protobuf.types, ni.datamonikers.v1.proto)
+
+
+ +
+ 4 +
+
Release ni.measurementlink.discovery.v1.client
+
Other clients depend on this client
+
+
+ +
+ 5 +
+
Release remaining client packages
+
ni.datamonikers.v1.client
+
ni.measurementlink.pinmap.v1.client
+
ni.measurementlink.sessionmanagement.v1.client
+
ni.measurements.metadata.v1.client
+
ni.measurement.data.v1.client
+
+
+
+
+
+ + \ No newline at end of file diff --git a/dependencies.puml b/dependencies.puml deleted file mode 100644 index f302ff93..00000000 --- a/dependencies.puml +++ /dev/null @@ -1,23 +0,0 @@ -@startuml dependency-graph -!theme plain - -package "Base" { - [ni.protobuf.types] - [ni-grpc-extensions] -} - -package "Proto Packages" { - [ni.datamonikers.v1.proto] - [ni.measurements.data.v1.proto] -} - -package "Client Packages" { - [ni.datamonikers.v1.client] - [ni.measurements.data.v1.client] -} - -[ni.datamonikers.v1.client] --> [ni.datamonikers.v1.proto] -[ni.datamonikers.v1.client] --> [ni-grpc-extensions] -[ni.datamonikers.v1.proto] --> [ni.protobuf.types] - -@enduml \ No newline at end of file From b6d6c8a7ad258fa181217d3444caddfc0aa872f5 Mon Sep 17 00:00:00 2001 From: Joel Dixon Date: Tue, 16 Dec 2025 16:16:46 -0600 Subject: [PATCH 6/6] Remove experiment file --- tryit.md | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 tryit.md diff --git a/tryit.md b/tryit.md deleted file mode 100644 index c4c9f83b..00000000 --- a/tryit.md +++ /dev/null @@ -1,5 +0,0 @@ -```plantuml -@startuml -alice -> bob:hello -@enduml -``` \ No newline at end of file