@@ -629,13 +629,15 @@ def _collect_architecture_components(ctx):
629629
630630 return all_components
631631
632- def _run_validation (ctx , arch_json , static_fbs_files ):
632+ def _run_validation (ctx , arch_json , static_fbs_files , dynamic_fbs_files , unit_static_fbs_files ):
633633 """Run the architecture verifier tool against a pre-built JSON file.
634634
635635 Args:
636636 ctx: Rule context
637637 arch_json: The architecture JSON File object (already declared and written)
638- static_fbs_files: List of static FlatBuffer files to verify against
638+ static_fbs_files: List of static component-diagram FlatBuffer files
639+ dynamic_fbs_files: List of dynamic component-diagram FlatBuffer files
640+ unit_static_fbs_files: List of static class-diagram FlatBuffer files
639641
640642 Returns:
641643 validation_log File object
@@ -645,15 +647,21 @@ def _run_validation(ctx, arch_json, static_fbs_files):
645647
646648 validation_args = ctx .actions .args ()
647649 validation_args .add ("--architecture-json" , arch_json )
648- validation_args .add_all ("--component-fbs" , static_fbs_files )
650+ if static_fbs_files :
651+ validation_args .add_all ("--component-fbs" , static_fbs_files )
652+ if dynamic_fbs_files :
653+ validation_args .add_all ("--sequence-fbs" , dynamic_fbs_files )
654+
655+ # if unit_static_fbs_files:
656+ # validation_args.add_all("--class-fbs", unit_static_fbs_files)
649657 validation_args .add ("--output" , validation_log )
650658 validation_args .add ("--log-level" , get_log_level (ctx ))
651659 if ctx .attr .maturity == "development" :
652660 validation_args .add ("--warn-on-errors" )
653661
654662 # ctx.actions.run will fail the build if validation_cli returns non-zero exit code
655663 ctx .actions .run (
656- inputs = [arch_json ] + static_fbs_files ,
664+ inputs = [arch_json ] + static_fbs_files + dynamic_fbs_files + unit_static_fbs_files ,
657665 outputs = [validation_log ],
658666 executable = ctx .executable ._validation_cli ,
659667 arguments = [validation_args ],
@@ -815,12 +823,20 @@ def _dependable_element_index_impl(ctx):
815823 # Collect static FlatBuffers from architectural_design targets (the expected
816824 # static architecture) and verify them against the current architecture.
817825 static_fbs_files = []
826+ dynamic_fbs_files = []
818827 for ad in ctx .attr .architectural_design :
819828 if ArchitecturalDesignInfo in ad :
820829 static_fbs_files .extend (ad [ArchitecturalDesignInfo ].static .to_list ())
830+ dynamic_fbs_files .extend (ad [ArchitecturalDesignInfo ].dynamic .to_list ())
831+
832+ # Collect class-diagram FBS files produced by unit_design targets.
833+ unit_static_fbs_files = []
834+ for unit_target in all_units .values ():
835+ unit_info = unit_target [UnitInfo ]
836+ unit_static_fbs_files .extend (unit_info .unit_design_static_fbs .to_list ())
821837
822838 # Run validation; build fails automatically on non-zero exit
823- validation_log = _run_validation (ctx , arch_json , static_fbs_files )
839+ validation_log = _run_validation (ctx , arch_json , static_fbs_files , dynamic_fbs_files , unit_static_fbs_files )
824840
825841 # Both outputs are included so validation always runs in a default build.
826842 # validation_log is also exposed in the debug output group for explicit access.
0 commit comments