Since these will be implemented separately and possibly very differently by OEMs, I'm slightly nervous about having a common module that they both employ, but otherwise, we're just dealing with lots of copied code, which is problematic.
Examples:
Completely identical:
Metadata validation in:
primary.get_validated_target_info
secondary.get_validated_target_info
Common pieces:
Higher level validation in:
primary.primary_update_cycle
secondary.fully_validate_metadata
I thought about the Primary class inheriting from the Secondary class and adding functionality, which makes a lot of sense in the abstract, but... we have a certain aversion to complex object-oriented code.
Since these will be implemented separately and possibly very differently by OEMs, I'm slightly nervous about having a common module that they both employ, but otherwise, we're just dealing with lots of copied code, which is problematic.
Examples:
primary.get_validated_target_info
secondary.get_validated_target_info
primary.primary_update_cycle
secondary.fully_validate_metadata
I thought about the Primary class inheriting from the Secondary class and adding functionality, which makes a lot of sense in the abstract, but... we have a certain aversion to complex object-oriented code.