Skip to content

feat(engine): implement PLATEAU6 01-01-common quality-check workflow#2133

Merged
n4to4 merged 14 commits into
mainfrom
qc-common-1
Jun 4, 2026
Merged

feat(engine): implement PLATEAU6 01-01-common quality-check workflow#2133
n4to4 merged 14 commits into
mainfrom
qc-common-1

Conversation

@n4to4
Copy link
Copy Markdown
Contributor

@n4to4 n4to4 commented Jun 3, 2026

Overview

Implements the PLATEAU6 (CityGML 3.0 / i-UR 4.0) 01-01-common quality-check workflow, introducing a version-agnostic CityGML profile layer so the common checks can be shared across PLATEAU generations.

What I've done

  • Added a citygml/ module with CityGmlSpec and CITYGML2 / CITYGML3 namespace constants (CityGML 3.0 adds con, drops pbase / tex).
  • Extracted domain_of_definition_validator and udx_folder_extractor from plateau4 into a shared common/ layer parameterized by PlateauProfile (CityGML spec + iur namespaces + action prefix).
  • Added the plateau6 module (PLATEAU6 profile) and registered its actions; reworked plateau4 to use the PLATEAU4 profile.
  • Added plateau6/01-01-common test fixtures and the 01-01-common workflow / graph YAML.
  • Bumped fastxml 0.8.10.8.2.

What I haven't done

  • Only 01-01-common is covered; other PLATEAU6 quality-check modules are out of scope.
  • C01, L05, L06, T03_*, X-invalid-gml-id, Z-common-01_xlink_* ship as README.md placeholders only.

How I tested

cargo make test — added workflow-tests fixtures for L01L04 and Z-common-00_no-error with expected CSV/JSON.

Screenshot

Which point I want you to review particularly

The CityGmlSpec / PlateauProfile boundary (spec-level vs. PLATEAU product-spec-level), and the redundant second #[allow(clippy::large_enum_variant)] added in forwarder.rs.

Memo

Copilot AI review requested due to automatic review settings June 3, 2026 06:50
@n4to4 n4to4 requested review from asrcpq and shunski as code owners June 3, 2026 06:50
@github-actions github-actions Bot added the engine label Jun 3, 2026
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

Implements the PLATEAU6 (CityGML 3.0 / i-UR 4.0) 01-01-common quality-check workflow and refactors the existing PLATEAU4 implementation to share version-agnostic “common” validation actions via a new CityGML spec layer (CityGmlSpec) and PLATEAU generation profile (PlateauProfile).

Changes:

  • Added a CityGML-spec namespace layer (CityGML 2.0 vs 3.0) and a PLATEAU profile abstraction used by shared common processors.
  • Introduced plateau6 processor action mappings and fixture workflows/graphs for 01-common + testcase fixtures for 01-01-common.
  • Updated the shared DomainOfDefinitionValidator/UDXFolderExtractor to be profile-driven and registered PLATEAU6 actions; bumped fastxml to 0.8.2.

Reviewed changes

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

Show a summary per file
File Description
engine/testing/data/testcases/quality-check/plateau6/01-01-common/Z-common-01_xlink_03/README.md Placeholder note explaining why PLATEAU6 fixture is skipped for this case
engine/testing/data/testcases/quality-check/plateau6/01-01-common/Z-common-01_xlink_02/README.md Placeholder note explaining why PLATEAU6 fixture is skipped for this case
engine/testing/data/testcases/quality-check/plateau6/01-01-common/Z-common-01_xlink_01/README.md Placeholder note explaining why PLATEAU6 fixture is skipped for this case
engine/testing/data/testcases/quality-check/plateau6/01-01-common/Z-common-00_no-error/workflow_test.json PLATEAU6 “no error” workflow test definition
engine/testing/data/testcases/quality-check/plateau6/01-01-common/Z-common-00_no-error/udx/bldg/49303425_bldg_6697_op.gml CityGML 3.0 minimal “no error” GML fixture
engine/testing/data/testcases/quality-check/plateau6/01-01-common/Z-common-00_no-error/summary_common.json Expected summary counts for “no error” case
engine/testing/data/testcases/quality-check/plateau6/01-01-common/Z-common-00_no-error/01_共通.csv Expected per-file summary CSV for “no error” case
engine/testing/data/testcases/quality-check/plateau6/01-01-common/X-invalid-gml-id/README.md Placeholder note explaining why PLATEAU6 fixture is skipped for this case
engine/testing/data/testcases/quality-check/plateau6/01-01-common/T03_02/README.md Placeholder note explaining why PLATEAU6 fixture is skipped for this case
engine/testing/data/testcases/quality-check/plateau6/01-01-common/T03_01/README.md Placeholder note explaining why PLATEAU6 fixture is skipped for this case
engine/testing/data/testcases/quality-check/plateau6/01-01-common/L06/README.md Placeholder note explaining why PLATEAU6 fixture is skipped for this case
engine/testing/data/testcases/quality-check/plateau6/01-01-common/L05/README.md Placeholder note explaining why PLATEAU6 fixture is skipped for this case
engine/testing/data/testcases/quality-check/plateau6/01-01-common/L04_02/workflow_test.json PLATEAU6 L04 #2 workflow test definition
engine/testing/data/testcases/quality-check/plateau6/01-01-common/L04_02/udx/bldg/54377074_bldg_6697_op.gml CityGML 3.0 fixture for invalid codeSpace resolution
engine/testing/data/testcases/quality-check/plateau6/01-01-common/L04_02/summary_common.json Expected summary counts for L04 #2
engine/testing/data/testcases/quality-check/plateau6/01-01-common/L04_02/01_共通.csv Expected per-file summary CSV for L04 #2
engine/testing/data/testcases/quality-check/plateau6/01-01-common/L04_02/01_共通_不正なcodeSpace.csv Expected detailed CSV output for invalid codeSpace findings
engine/testing/data/testcases/quality-check/plateau6/01-01-common/L04_01/workflow_test.json PLATEAU6 L04 #1 workflow test definition
engine/testing/data/testcases/quality-check/plateau6/01-01-common/L04_01/udx/bldg/54377074_bldg_6697_op.gml CityGML 3.0 fixture for invalid code value (resolvable codeSpace)
engine/testing/data/testcases/quality-check/plateau6/01-01-common/L04_01/summary_common.json Expected summary counts for L04 #1
engine/testing/data/testcases/quality-check/plateau6/01-01-common/L04_01/01_共通.csv Expected per-file summary CSV for L04 #1
engine/testing/data/testcases/quality-check/plateau6/01-01-common/L04_01/01_共通_L04エラー.csv Expected detailed CSV output for L04 error findings
engine/testing/data/testcases/quality-check/plateau6/01-01-common/L03/workflow_test.json PLATEAU6 L03 workflow test definition
engine/testing/data/testcases/quality-check/plateau6/01-01-common/L03/udx/bldg/54377074_bldg_6697_op.gml CityGML 3.0 fixture for invalid feature type placement
engine/testing/data/testcases/quality-check/plateau6/01-01-common/L03/summary_common.json Expected summary counts for L03
engine/testing/data/testcases/quality-check/plateau6/01-01-common/L03/01_共通.csv Expected per-file summary CSV for L03
engine/testing/data/testcases/quality-check/plateau6/01-01-common/L02/workflow_test.json PLATEAU6 L02 workflow test definition
engine/testing/data/testcases/quality-check/plateau6/01-01-common/L02/udx/bldg/54377074_bldg_6697_op.gml CityGML 3.0 fixture with schema-invalid date value
engine/testing/data/testcases/quality-check/plateau6/01-01-common/L02/summary_common.json Expected summary counts for L02
engine/testing/data/testcases/quality-check/plateau6/01-01-common/L02/01_共通.csv Expected per-file summary CSV for L02
engine/testing/data/testcases/quality-check/plateau6/01-01-common/L02/01_共通_L02エラー.csv Expected detailed CSV output for L02 schema errors
engine/testing/data/testcases/quality-check/plateau6/01-01-common/L01/workflow_test.json PLATEAU6 L01 workflow test definition
engine/testing/data/testcases/quality-check/plateau6/01-01-common/L01/udx/bldg/54377074_bldg_6697_op.gml CityGML 3.0 fixture with malformed XML (syntax error)
engine/testing/data/testcases/quality-check/plateau6/01-01-common/L01/summary_common.json Expected summary counts for L01
engine/testing/data/testcases/quality-check/plateau6/01-01-common/L01/01_共通.csv Expected per-file summary CSV for L01
engine/testing/data/testcases/quality-check/plateau6/01-01-common/L01/01_共通_L01エラー.csv Expected detailed CSV output for L01 parse errors
engine/testing/data/testcases/quality-check/plateau6/01-01-common/L-frn-01/README.md Notes documenting why the existing L-frn-01 approach doesn’t port 1:1 to CityGML 3.0
engine/testing/data/testcases/quality-check/plateau6/01-01-common/C01/README.md Placeholder note explaining why PLATEAU6 fixture is skipped for this case
engine/testing/data/fixtures/plateau6-citymodel/z16211_imizu-shi_city_2024_citygml_1_op/schemas/iur/uro/4.0/urbanObject.xsd Added i-UR 4.0 (prototype) Urban Object ADE schema fixture
engine/testing/data/fixtures/plateau6-citymodel/z16211_imizu-shi_city_2024_citygml_1_op/codelists/Room_function.xml Added PLATEAU6 codelist fixture
engine/testing/data/fixtures/plateau6-citymodel/z16211_imizu-shi_city_2024_citygml_1_op/codelists/Room_class.xml Added PLATEAU6 codelist fixture
engine/testing/data/fixtures/plateau6-citymodel/z16211_imizu-shi_city_2024_citygml_1_op/codelists/BuildingDetailAttribute_fireproofStructureType.xml Added PLATEAU6 codelist fixture
engine/testing/data/fixtures/plateau6-citymodel/z16211_imizu-shi_city_2024_citygml_1_op/codelists/BuildingDetailAttribute_buildingStructureType.xml Added PLATEAU6 codelist fixture
engine/testing/data/fixtures/plateau6-citymodel/z16211_imizu-shi_city_2024_citygml_1_op/codelists/Building_usage.xml Added PLATEAU6 codelist fixture
engine/testing/data/fixtures/plateau6-citymodel/z16211_imizu-shi_city_2024_citygml_1_op/codelists/Building_class.xml Added PLATEAU6 codelist fixture
engine/runtime/runtime/src/forwarder.rs Added redundant clippy allow attribute (needs cleanup)
engine/runtime/examples/fixture/workflow/quality-check/plateau6/01-common/workflow.yml New PLATEAU6 01-common workflow wiring 01-01-common subgraph
engine/runtime/examples/fixture/graphs/plateau6/xml_validator.yml New PLATEAU6 XML validator graph fixture
engine/runtime/examples/fixture/graphs/plateau6/domain_of_definition_validator.yml New PLATEAU6 domain-of-definition validator graph fixture
engine/runtime/action-plateau-processor/src/types/mod.rs Added module export (types/dictionary)
engine/runtime/action-plateau-processor/src/tests/mod.rs Added module export for test utils
engine/runtime/action-plateau-processor/src/plateau6/profile.rs Defined PLATEAU6 PlateauProfile instance
engine/runtime/action-plateau-processor/src/plateau6/mod.rs Added PLATEAU6 module wiring
engine/runtime/action-plateau-processor/src/plateau6/mapping.rs Registered PLATEAU6 action factories
engine/runtime/action-plateau-processor/src/plateau4/profile.rs Defined PLATEAU4 PlateauProfile instance
engine/runtime/action-plateau-processor/src/plateau4/mod.rs Updated plateau4 module exports (profile handling for tests)
engine/runtime/action-plateau-processor/src/plateau4/mapping.rs Updated plateau4 mappings to use common/profile-based factories
engine/runtime/action-plateau-processor/src/plateau4/attribute_flattener/mod.rs Added module declarations (mod split)
engine/runtime/action-plateau-processor/src/plateau3/mod.rs Added/updated plateau3 module declarations
engine/runtime/action-plateau-processor/src/mapping.rs Extended global action mapping to include PLATEAU6
engine/runtime/action-plateau-processor/src/lib.rs Exported new citygml and common modules + plateau6
engine/runtime/action-plateau-processor/src/common/udx_folder_extractor.rs Refactored extractor factory to be profile-based (action name)
engine/runtime/action-plateau-processor/src/common/profile.rs Added PlateauProfile abstraction for generation-specific settings
engine/runtime/action-plateau-processor/src/common/mod.rs Introduced common module exports
engine/runtime/action-plateau-processor/src/common/errors.rs Added shared error types for common processors
engine/runtime/action-plateau-processor/src/common/domain_of_definition_validator.rs Refactored validator to be profile-driven + CityGML 2/3 aware
engine/runtime/action-plateau-processor/src/citygml/v3.rs Added CityGML 3.0 namespace spec
engine/runtime/action-plateau-processor/src/citygml/v2.rs Added CityGML 2.0 namespace spec
engine/runtime/action-plateau-processor/src/citygml/spec.rs Added CityGmlSpec and fixed GML dictionary namespace constant
engine/runtime/action-plateau-processor/src/citygml/mod.rs Added citygml module exports
engine/Cargo.toml Bumped fastxml dependency to 0.8.2
engine/Cargo.lock Updated lockfile for fastxml 0.8.2

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread engine/runtime/runtime/src/forwarder.rs Outdated
@n4to4 n4to4 force-pushed the qc-common-1 branch 2 times, most recently from a2a4044 to f70dbae Compare June 3, 2026 08:15
@codecov
Copy link
Copy Markdown

codecov Bot commented Jun 3, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 7.86%. Comparing base (070257c) to head (ceb43b5).
⚠️ Report is 15 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@          Coverage Diff          @@
##            main   #2133   +/-   ##
=====================================
  Coverage   7.86%   7.86%           
=====================================
  Files        224     224           
  Lines      37600   37600           
=====================================
  Hits        2956    2956           
  Misses     34391   34391           
  Partials     253     253           
Flag Coverage Δ
api 7.86% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@n4to4 n4to4 merged commit e24bec0 into main Jun 4, 2026
21 checks passed
@n4to4 n4to4 deleted the qc-common-1 branch June 4, 2026 01:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants