Skip to content

Copy from Opc2Wot dev branch improvements for codegen from multiple TMs#1222

Merged
jrdouceur merged 4 commits intomainfrom
johndo/multi-thing-fixes
Feb 17, 2026
Merged

Copy from Opc2Wot dev branch improvements for codegen from multiple TMs#1222
jrdouceur merged 4 commits intomainfrom
johndo/multi-thing-fixes

Conversation

@jrdouceur
Copy link
Copy Markdown
Contributor

Several improvements that support codegen from multiple Thing Models, needed for converted OPC UA companion specs:

  • Add --prefixSchemas CLI option to avoid collisions when generating from multiple TMs
  • Don't warn on non-affordance TMs unless no affordances across entire TM collection
  • Extend support for underscores in 'title' values to JSON Schema definitions

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds support for generating code from multiple WoT Thing Models by introducing a --prefixSchemas CLI option to avoid naming collisions across Thing Models. It also extends support for underscores in 'title' values from Thing Models to JSON Schema definitions, and improves validation logic to only warn about missing affordances when no affordances exist across the entire Thing Model collection.

Changes:

  • Added --prefixSchemas CLI option to apply Thing Model prefixes to schema type names
  • Extended regex pattern to allow underscores in JSON Schema 'title' values (matching existing WoT Thing Model support)
  • Refactored validation to check for affordances across entire Thing Model collections rather than individual models

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
JsonSchemaStandardizer.cs Updated TitleRegex and error message to allow underscores in JSON Schema title values
OptionContainer.cs Added PrefixSchemas property for the new CLI option
Program.cs Added --prefixSchemas command-line option definition and wiring
CommandPerformer.cs Threading prefixSchemas parameter through ParseThings and TryGetSchemaNamer, plus calling ValidateThingCollection
ThingValidator.cs Added ValidateThingCollection method to aggregate affordances across multiple Thing Models before warning
SchemaNamer.cs Added prefix support throughout all schema naming methods with new Prefix helper

Comment thread codegen2/src/Azure.Iot.Operations.ProtocolCompilerLib/OptionContainer.cs Outdated
Comment thread codegen2/src/Azure.Iot.Operations.CodeGeneration/SchemaNamer.cs
Comment thread codegen2/src/Azure.Iot.Operations.CodeGeneration/SchemaNamer.cs Outdated
@jrdouceur jrdouceur merged commit bf7b636 into main Feb 17, 2026
11 checks passed
@jrdouceur jrdouceur deleted the johndo/multi-thing-fixes branch February 17, 2026 23:39
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