diff --git a/control/meson.build b/control/meson.build
index 6aa8143..cbbea54 100644
--- a/control/meson.build
+++ b/control/meson.build
@@ -1,10 +1,7 @@
 
-include_dirs=[
-    '.',
-    '..'
-]
+include_dirs = ['.', '..']
 
-deps=[
+deps = [
     phosphor_dbus_interfaces_dep,
     phosphor_logging_dep,
     sdbusplus_dep,
@@ -16,11 +13,7 @@
 
 if conf.has('CONTROL_USE_JSON')
     deps += nlohmann_json_dep
-    include_dirs += [
-        './json',
-        './json/actions',
-        './json/triggers'
-    ]
+    include_dirs += ['./json', './json/actions', './json/triggers']
     sources += [
         'json/dbus_zone.cpp',
         'json/event.cpp',
@@ -49,27 +42,33 @@
         'json/triggers/init.cpp',
         'json/triggers/parameter.cpp',
         'json/triggers/signal.cpp',
-        'json/triggers/timer.cpp'
+        'json/triggers/timer.cpp',
     ]
 else
     fan_zone_defs_cpp_dep = custom_target(
         'fan_zone_defs.cpp',
         input: files(
-            './gen-fan-zone-defs.py',
             conf.get_unquoted('FAN_DEF_YAML_FILE'),
             conf.get_unquoted('FAN_ZONE_YAML_FILE'),
             conf.get_unquoted('ZONE_EVENTS_YAML_FILE'),
-            conf.get_unquoted('ZONE_CONDITIONS_YAML_FILE')
+            conf.get_unquoted('ZONE_CONDITIONS_YAML_FILE'),
+            './gen-fan-zone-defs.py',
         ),
         command: [
-            python_prog, '@INPUT0@',
-            '-f','@INPUT1@',
-            '-z','@INPUT2@',
-            '-e','@INPUT3@',
-            '-c','@INPUT4@',
-            '-o', 'control'
+            python_prog,
+            '@INPUT0@',
+            '-f',
+            '@INPUT1@',
+            '-z',
+            '@INPUT2@',
+            '-e',
+            '@INPUT3@',
+            '-c',
+            '@INPUT4@',
+            '-o',
+            'control',
         ],
-        output: 'fan_zone_defs.cpp'
+        output: 'fan_zone_defs.cpp',
     )
 
     sources += [
@@ -80,7 +79,7 @@
         'preconditions.cpp',
         'triggers.cpp',
         'utility.cpp',
-        'zone.cpp'
+        'zone.cpp',
     ]
 
 endif
@@ -89,21 +88,21 @@
 phosphor_fan_control = executable(
     'phosphor-fan-control',
     sources,
-    dependencies:deps,
+    dependencies: deps,
     implicit_include_directories: false,
     include_directories: phosphor_fan_control_include_directories,
-    install: true
+    install: true,
 )
 
 fanctl = executable(
-  'fanctl',
-  'fanctl.cpp',
-      dependencies: [
-          cli11_dep,
-          nlohmann_json_dep,
-          phosphor_logging_dep,
-          sdbusplus_dep,
-      ],
-  include_directories: phosphor_fan_control_include_directories,
-  install: true
+    'fanctl',
+    'fanctl.cpp',
+    dependencies: [
+        cli11_dep,
+        nlohmann_json_dep,
+        phosphor_logging_dep,
+        sdbusplus_dep,
+    ],
+    include_directories: phosphor_fan_control_include_directories,
+    install: true,
 )
diff --git a/cooling-type/meson.build b/cooling-type/meson.build
index 6b79046..e56a7dc 100644
--- a/cooling-type/meson.build
+++ b/cooling-type/meson.build
@@ -1,19 +1,12 @@
-phosphor_fan_sensor_monitor_include_directories = include_directories(
-    '.',
-    '..'
-)
+phosphor_fan_sensor_monitor_include_directories = include_directories('.', '..')
 
-source=[
-    'cooling_type.cpp',
-    'cooling_type.hpp',
-    'main.cpp'
-]
+source = ['cooling_type.cpp', 'cooling_type.hpp', 'main.cpp']
 
-deps=[
+deps = [
     libevdev_dep,
     phosphor_dbus_interfaces_dep,
     phosphor_logging_dep,
-    sdeventplus_dep
+    sdeventplus_dep,
 ]
 
 phosphor_fan_cooling_type = executable(
@@ -22,5 +15,5 @@
     dependencies: deps,
     implicit_include_directories: false,
     include_directories: ['..'],
-    install: true
+    install: true,
 )
diff --git a/meson.build b/meson.build
index 731d85f..d2cc75d 100644
--- a/meson.build
+++ b/meson.build
@@ -6,7 +6,7 @@
         'werror=true',
         'cpp_std=c++23',
         'buildtype=debugoptimized',
-        'prefix=/usr'
+        'prefix=/usr',
     ],
     license: 'Apache-2.0',
     version: '1.0',
@@ -23,8 +23,9 @@
     'CLI/CLI.hpp',
     'CLI::App',
     dependencies: cli11_dep,
-    required: false)
-    cli11_proj = subproject('cli11', required:false)
+    required: false,
+)
+    cli11_proj = subproject('cli11', required: false)
     assert(cli11_proj.found(), 'CLI11 is required')
     cli11_dep = cli11_proj.get_variable('CLI11_dep')
 endif
@@ -34,14 +35,18 @@
     'cereal/cereal.hpp',
     'cereal::specialize',
     dependencies: cereal_dep,
-    required: false)
+    required: false,
+)
 if not has_cereal
     cereal_opts = import('cmake').subproject_options()
-    cereal_opts.add_cmake_defines({'BUILD_TESTS': 'OFF', 'SKIP_PERFORMANCE_COMPARISON': 'ON'})
+    cereal_opts.add_cmake_defines(
+        {'BUILD_TESTS': 'OFF', 'SKIP_PERFORMANCE_COMPARISON': 'ON'},
+    )
     cereal_proj = import('cmake').subproject(
         'cereal',
         options: cereal_opts,
-        required: false)
+        required: false,
+    )
     assert(cereal_proj.found(), 'cereal is required')
     cereal_dep = cereal_proj.dependency('cereal')
 endif
@@ -54,7 +59,7 @@
 stdplus_dep = dependency('stdplus')
 systemd_dep = dependency('systemd')
 
-if(get_option('tests').allowed())
+if (get_option('tests').allowed())
     gmock_dep = dependency('gmock', disabler: true, required: false)
     gtest_dep = dependency('gtest', main: true, disabler: true, required: false)
 
@@ -66,13 +71,13 @@
                     dependency('threads'),
                     gtest_proj.dependency('gtest'),
                     gtest_proj.dependency('gtest_main'),
-                ]
+                ],
             )
             gmock_dep = gtest_proj.dependency('gmock')
         else
             assert(
                 not get_option('tests').allowed(),
-                'Googletest is required if tests are enabled'
+                'Googletest is required if tests are enabled',
             )
         endif
     endif
@@ -87,17 +92,20 @@
 
 # Control
 conf.set_quoted(
-    'CONTROL_PERSIST_ROOT_PATH', get_option('control-persist-root-path'))
+    'CONTROL_PERSIST_ROOT_PATH',
+    get_option('control-persist-root-path'),
+)
 conf.set_quoted(
-    'CONTROL_PERSIST_ROOT_PATH', get_option('control-persist-root-path'))
+    'CONTROL_PERSIST_ROOT_PATH',
+    get_option('control-persist-root-path'),
+)
+conf.set_quoted('FAN_DEF_YAML_FILE', get_option('fan-def-yaml-file'))
+conf.set_quoted('FAN_ZONE_YAML_FILE', get_option('fan-zone-yaml-file'))
+conf.set_quoted('ZONE_EVENTS_YAML_FILE', get_option('zone-events-yaml-file'))
 conf.set_quoted(
-    'FAN_DEF_YAML_FILE', get_option('fan-def-yaml-file'))
-conf.set_quoted(
-    'FAN_ZONE_YAML_FILE', get_option('fan-zone-yaml-file'))
-conf.set_quoted(
-    'ZONE_EVENTS_YAML_FILE', get_option('zone-events-yaml-file'))
-conf.set_quoted(
-    'ZONE_CONDITIONS_YAML_FILE', get_option('zone-conditions-yaml-file'))
+    'ZONE_CONDITIONS_YAML_FILE',
+    get_option('zone-conditions-yaml-file'),
+)
 
 # Fan control can be in YAML mode when everything else is in JSON mode
 control_conf_type = 'yaml'
@@ -106,10 +114,8 @@
 endif
 
 # Monitor
-conf.set(
-    'NUM_MONITOR_LOG_ENTRIES', get_option('num-monitor-log-entries'))
-conf.set_quoted(
-    'FAN_MONITOR_YAML_FILE', get_option('fan-monitor-yaml-file'))
+conf.set('NUM_MONITOR_LOG_ENTRIES', get_option('num-monitor-log-entries'))
+conf.set_quoted('FAN_MONITOR_YAML_FILE', get_option('fan-monitor-yaml-file'))
 conf.set('DELAY_HOST_CONTROL', get_option('delay-host-control'))
 if get_option('monitor-use-host-state').allowed()
     conf.set('MONITOR_USE_HOST_STATE', '')
@@ -129,8 +135,10 @@
 endif
 
 # Sensor Monitor
-conf.set_quoted('SENSOR_MONITOR_PERSIST_ROOT_PATH',
-                get_option('sensor-monitor-persist-root-path'))
+conf.set_quoted(
+    'SENSOR_MONITOR_PERSIST_ROOT_PATH',
+    get_option('sensor-monitor-persist-root-path'),
+)
 
 if get_option('use-host-power-state').allowed()
     conf.set('ENABLE_HOST_STATE', '')
@@ -141,15 +149,17 @@
 endif
 
 conf.set(
-    'SHUTDOWN_ALARM_HARD_SHUTDOWN_DELAY_MS', get_option('sensor-monitor-hard-shutdown-delay'))
+    'SHUTDOWN_ALARM_HARD_SHUTDOWN_DELAY_MS',
+    get_option('sensor-monitor-hard-shutdown-delay'),
+)
 conf.set(
-    'SHUTDOWN_ALARM_SOFT_SHUTDOWN_DELAY_MS', get_option('sensor-monitor-soft-shutdown-delay'))
+    'SHUTDOWN_ALARM_SOFT_SHUTDOWN_DELAY_MS',
+    get_option('sensor-monitor-soft-shutdown-delay'),
+)
 
 # Presence
-conf.set(
-    'NUM_PRESENCE_LOG_ENTRIES', get_option('num-presence-log-entries'))
-conf.set_quoted(
-    'PRESENCE_YAML_FILE', get_option('presence-config'))
+conf.set('NUM_PRESENCE_LOG_ENTRIES', get_option('num-presence-log-entries'))
+conf.set_quoted('PRESENCE_YAML_FILE', get_option('presence-config'))
 
 configure_file(output: 'config.h', configuration: conf)
 
@@ -187,8 +197,10 @@
 
 if get_option('sensor-monitor-service').allowed()
     subdir('sensor-monitor')
-    install_data('sensor-monitor/service_files/sensor-monitor.service',
-        install_dir: servicedir)
+    install_data(
+        'sensor-monitor/service_files/sensor-monitor.service',
+        install_dir: servicedir,
+    )
 endif
 
 foreach service : services
@@ -199,17 +211,23 @@
     endif
 
     foreach service_file : service[1]
-        install_data(service[0] / 'service_files' / this_conf_type / service_file,
-                     install_dir: servicedir)
+        install_data(
+            service[0] / 'service_files' / this_conf_type / service_file,
+            install_dir: servicedir,
+        )
     endforeach
 
     if this_conf_type == 'json'
         fs = import('fs')
-        dir = meson.current_source_dir() / service[0] / 'config_files' / get_option('machine-name')
+        dir = meson.current_source_dir() / service[0] / 'config_files' / get_option(
+            'machine-name',
+        )
         if fs.is_dir(dir)
-            install_subdir(service[0] / 'config_files' / get_option('machine-name'),
-                          install_dir: usr_share_dir / service[0],
-                          strip_directory: true)
+            install_subdir(
+                service[0] / 'config_files' / get_option('machine-name'),
+                install_dir: usr_share_dir / service[0],
+                strip_directory: true,
+            )
         endif
     endif
 endforeach
diff --git a/meson.options b/meson.options
index 21e3362..1664f04 100644
--- a/meson.options
+++ b/meson.options
@@ -1,136 +1,181 @@
 
+option('tests', type: 'feature', value: 'enabled', description: 'Build tests.')
+
 option(
-    'tests', type: 'feature', value: 'enabled', description: 'Build tests.',
+    'json-config',
+    type: 'feature',
+    value: 'enabled',
+    description: 'Use json at runtime to configure fan packages.',
 )
 
 option(
-    'json-config', type: 'feature', value: 'enabled',
-    description: 'Use json at runtime to configure fan packages.'
-)
-
-option(
-    'machine-name', type: 'string', value: '',
-    description: 'Machine name being built. Used to install the proper JSON config files.'
+    'machine-name',
+    type: 'string',
+    value: '',
+    description: 'Machine name being built. Used to install the proper JSON config files.',
 )
 
 # Control
 
 option(
-    'control-service', type: 'feature', value: 'enabled',
-    description: 'Build fan control service.'
+    'control-service',
+    type: 'feature',
+    value: 'enabled',
+    description: 'Build fan control service.',
 )
 
 option(
-    'json-control', type: 'feature', value: 'enabled',
+    'json-control',
+    type: 'feature',
+    value: 'enabled',
     description: '''This can only be used to disable JSON based fan control
                     (using json-control=disabled) when json-config is enabled.
                     If json-control=enabled and json-config=disabled it will
-                    not do anything.'''
+                    not do anything.''',
 )
 
 option(
-    'control-persist-root-path', type: 'string', value: '/var/lib/phosphor-fan-presence/control',
-    description: 'Base location to persist zone property states'
+    'control-persist-root-path',
+    type: 'string',
+    value: '/var/lib/phosphor-fan-presence/control',
+    description: 'Base location to persist zone property states',
 )
 
 option(
-    'fan-def-yaml-file', type: 'string', value: 'example/fans.yaml',
-    description: 'Build time fan configuration file'
+    'fan-def-yaml-file',
+    type: 'string',
+    value: 'example/fans.yaml',
+    description: 'Build time fan configuration file',
 )
 option(
-    'fan-zone-yaml-file', type: 'string', value: 'example/zones.yaml',
-    description: 'Build time fan configuration file'
+    'fan-zone-yaml-file',
+    type: 'string',
+    value: 'example/zones.yaml',
+    description: 'Build time fan configuration file',
 )
 option(
-    'zone-events-yaml-file', type: 'string', value: 'example/events.yaml',
-    description: 'Build time fan configuration file'
+    'zone-events-yaml-file',
+    type: 'string',
+    value: 'example/events.yaml',
+    description: 'Build time fan configuration file',
 )
 option(
-    'zone-conditions-yaml-file', type: 'string', value: 'example/zone_conditions.yaml',
-    description: 'Build time fan configuration file'
+    'zone-conditions-yaml-file',
+    type: 'string',
+    value: 'example/zone_conditions.yaml',
+    description: 'Build time fan configuration file',
 )
 
 # Monitor
 
 option(
-    'monitor-service', type: 'feature', value: 'enabled',
-    description: 'Build fan monitor service'
+    'monitor-service',
+    type: 'feature',
+    value: 'enabled',
+    description: 'Build fan monitor service',
 )
 
 option(
-    'fan-monitor-yaml-file', type: 'string', value: 'example/monitor.yaml',
-    description: 'Location of the config file'
+    'fan-monitor-yaml-file',
+    type: 'string',
+    value: 'example/monitor.yaml',
+    description: 'Location of the config file',
 )
 
 option(
-    'num-monitor-log-entries', type: 'integer', value: 75,
-    description: 'Maximum number of entries in the monitor log.'
+    'num-monitor-log-entries',
+    type: 'integer',
+    value: 75,
+    description: 'Maximum number of entries in the monitor log.',
 )
 
 option(
-    'delay-host-control', value : '0', type: 'integer',
-    description: 'Delay host control when the power is on and the fan sensors are offline.'
+    'delay-host-control',
+    value: '0',
+    type: 'integer',
+    description: 'Delay host control when the power is on and the fan sensors are offline.',
 )
 
 option(
-    'monitor-use-host-state', value : 'disabled', type: 'feature',
-    description: 'Use CurrentHostState for fan monitor to decide power state.'
+    'monitor-use-host-state',
+    value: 'disabled',
+    type: 'feature',
+    description: 'Use CurrentHostState for fan monitor to decide power state.',
 )
 
 # Presence
 
 option(
-    'presence-service', type: 'feature', value: 'enabled',
-    description: 'Build fan presence service.'
+    'presence-service',
+    type: 'feature',
+    value: 'enabled',
+    description: 'Build fan presence service.',
 )
 
 option(
-    'presence-config', type: 'string', value: 'example/example.yaml',
-    description: 'Location of the config file'
+    'presence-config',
+    type: 'string',
+    value: 'example/example.yaml',
+    description: 'Location of the config file',
 )
 
 option(
-    'num-presence-log-entries', type: 'integer', value: 50,
-    description: 'Maximum number of entries in the presence log.'
+    'num-presence-log-entries',
+    type: 'integer',
+    value: 50,
+    description: 'Maximum number of entries in the presence log.',
 )
 
 # Sensor Monitor
 
 option(
-    'sensor-monitor-service', type: 'feature', value: 'enabled',
-    description: 'Build sensor monitor.'
+    'sensor-monitor-service',
+    type: 'feature',
+    value: 'enabled',
+    description: 'Build sensor monitor.',
 )
 
 option(
-    'sensor-monitor-persist-root-path', type: 'string',
+    'sensor-monitor-persist-root-path',
+    type: 'string',
     value: '/var/lib/phosphor-fan-presence/sensor-monitor',
-    description: 'Root path for persisting sensor monitor data.'
+    description: 'Root path for persisting sensor monitor data.',
 )
 
 option(
-    'sensor-monitor-hard-shutdown-delay', type: 'integer', value: 23000,
-    description: 'Milliseconds to delay the alarm before hard shutdown.'
+    'sensor-monitor-hard-shutdown-delay',
+    type: 'integer',
+    value: 23000,
+    description: 'Milliseconds to delay the alarm before hard shutdown.',
 )
 
 option(
-    'sensor-monitor-soft-shutdown-delay', type: 'integer', value: 900000,
-    description: 'Milliseconds to delay the alarm before soft shutdown.'
+    'sensor-monitor-soft-shutdown-delay',
+    type: 'integer',
+    value: 900000,
+    description: 'Milliseconds to delay the alarm before soft shutdown.',
 )
 
 # Other
 
 option(
-    'cooling-type-service', type: 'feature', value: 'disabled',
-    description: 'Build cooling-type package.'
+    'cooling-type-service',
+    type: 'feature',
+    value: 'disabled',
+    description: 'Build cooling-type package.',
 )
 
 option(
-    'use-host-power-state', type: 'feature', value: 'disabled',
-    description: 'Enable using the host power state for power state checks.'
+    'use-host-power-state',
+    type: 'feature',
+    value: 'disabled',
+    description: 'Enable using the host power state for power state checks.',
 )
 
 option(
-    'skip-power-checking', type: 'feature', value: 'disabled',
-    description: 'Skip power state checking while sending threshold alarm event.'
+    'skip-power-checking',
+    type: 'feature',
+    value: 'disabled',
+    description: 'Skip power state checking while sending threshold alarm event.',
 )
 
diff --git a/monitor/meson.build b/monitor/meson.build
index 7ceed5b..28cd3ab 100644
--- a/monitor/meson.build
+++ b/monitor/meson.build
@@ -1,9 +1,6 @@
-phosphor_fan_monitor_include_directories = include_directories(
-    '.',
-    '..'
-)
+phosphor_fan_monitor_include_directories = include_directories('.', '..')
 
-sources=[
+sources = [
     'conditions.cpp',
     'fan.cpp',
     'fan_error.cpp',
@@ -13,15 +10,15 @@
     'power_interface.cpp',
     'system.cpp',
     'tach_sensor.cpp',
-    '../hwmon_ffdc.cpp'
+    '../hwmon_ffdc.cpp',
 ]
 
-deps=[
+deps = [
     nlohmann_json_dep,
     phosphor_dbus_interfaces_dep,
     phosphor_logging_dep,
     sdbusplus_dep,
-    sdeventplus_dep
+    sdeventplus_dep,
 ]
 
 # Only needed for YAML config
@@ -29,15 +26,11 @@
     fan_monitor_defs_cpp_dep = custom_target(
         'fan_monitor_defs.cpp',
         input: files(
-            './gen-fan-monitor-defs.py',
             conf.get_unquoted('FAN_MONITOR_YAML_FILE'),
+            './gen-fan-monitor-defs.py',
         ),
-        command: [
-            python_prog, '@INPUT0@',
-            '-m','@INPUT1@',
-            '-o','monitor'
-        ],
-        output: 'fan_monitor_defs.cpp'
+        command: [python_prog, '@INPUT0@', '-m', '@INPUT1@', '-o', 'monitor'],
+        output: 'fan_monitor_defs.cpp',
     )
 
     sources += fan_monitor_defs_cpp_dep
@@ -49,10 +42,10 @@
     dependencies: deps,
     implicit_include_directories: false,
     include_directories: phosphor_fan_monitor_include_directories,
-    install: true
+    install: true,
 )
 
-if(get_option('tests').allowed())
+if (get_option('tests').allowed())
     subdir('test')
 endif
 
diff --git a/monitor/test/meson.build b/monitor/test/meson.build
index 51faaef..77a6e51 100644
--- a/monitor/test/meson.build
+++ b/monitor/test/meson.build
@@ -1,39 +1,33 @@
-phosphor_fan_monitor_test_include_directories = include_directories(
-    '../..'
-)
+phosphor_fan_monitor_test_include_directories = include_directories('../..')
 
-test_deps=[
+test_deps = [
     gmock_dep,
     gtest_dep,
     nlohmann_json_dep,
     phosphor_logging_dep,
-    sdeventplus_dep
+    sdeventplus_dep,
 ]
 
-test_sources=[
-    files(
-        '../logging.cpp',
-    )
-]
+test_sources = [files('../logging.cpp')]
 
 test(
     'power_off_cause',
     executable(
         'power_off_cause',
         'power_off_cause_test.cpp',
-        dependencies:test_deps,
+        dependencies: test_deps,
         implicit_include_directories: false,
-        include_directories: [phosphor_fan_monitor_test_include_directories]
-    )
+        include_directories: [phosphor_fan_monitor_test_include_directories],
+    ),
 )
 
 test(
     'power_off_rule_test',
     executable(
         'power_off_rule_test',
-        sources:test_sources,
+        sources: test_sources,
         dependencies: test_deps,
         implicit_include_directories: false,
         include_directories: phosphor_fan_monitor_test_include_directories,
-    )
+    ),
 )
diff --git a/presence/meson.build b/presence/meson.build
index 42c32a4..11db05a 100644
--- a/presence/meson.build
+++ b/presence/meson.build
@@ -1,10 +1,7 @@
 
-phosphor_fan_presence_include_directories = include_directories(
-    '.',
-    '..'
-)
+phosphor_fan_presence_include_directories = include_directories('.', '..')
 
-sources=[
+sources = [
     'anyof.cpp',
     'error_reporter.cpp',
     'fallback.cpp',
@@ -15,10 +12,10 @@
     'logging.cpp',
     'psensor.cpp',
     'tach.cpp',
-    'tach_detect.cpp'
+    'tach_detect.cpp',
 ]
 
-deps=[
+deps = [
     libevdev_dep,
     nlohmann_json_dep,
     phosphor_dbus_interfaces_dep,
@@ -31,17 +28,10 @@
 if get_option('json-config').disabled()
     generated_hpp_dep = custom_target(
         'generated.hpp',
-        input: files(
-            './pfpgen.py',
-            conf.get_unquoted('PRESENCE_YAML_FILE')
-        ),
-        command: [
-            python_prog, '@INPUT0@',
-            'generate-cpp',
-            '-i', '@INPUT1@'
-        ],
+        input: files(conf.get_unquoted('PRESENCE_YAML_FILE'), './pfpgen.py'),
+        command: [python_prog, '@INPUT0@', 'generate-cpp', '-i', '@INPUT1@'],
         capture: true,
-        output: 'generated.hpp'
+        output: 'generated.hpp',
     )
 
     sources += generated_hpp_dep
@@ -50,9 +40,9 @@
 phosphor_fan_presence = executable(
     'phosphor-fan-presence-tach',
     sources,
-    dependencies : deps,
+    dependencies: deps,
     implicit_include_directories: false,
     include_directories: phosphor_fan_presence_include_directories,
-    install: true
+    install: true,
 )
 
diff --git a/presence/test/meson.build b/presence/test/meson.build
index 15de777..5970431 100644
--- a/presence/test/meson.build
+++ b/presence/test/meson.build
@@ -1,20 +1,15 @@
 
-test_include_directories = include_directories(
-    '../..'
-)
+test_include_directories = include_directories('../..')
 
-test_deps=[
-    gmock_dep,
-    gtest_dep,
-]
+test_deps = [gmock_dep, gtest_dep]
 
 test(
     'logger_test',
     executable(
         'logger_test',
         'fallbacktest.cpp',
-        dependencies:test_deps,
+        dependencies: test_deps,
         implicit_include_directories: false,
-        include_directories: [test_include_directories]
-    )
+        include_directories: [test_include_directories],
+    ),
 )
diff --git a/sensor-monitor/meson.build b/sensor-monitor/meson.build
index adaa653..e17bc65 100644
--- a/sensor-monitor/meson.build
+++ b/sensor-monitor/meson.build
@@ -1,15 +1,12 @@
-phosphor_fan_sensor_monitor_include_directories = include_directories(
-    '.',
-    '..'
-)
+phosphor_fan_sensor_monitor_include_directories = include_directories('.', '..')
 
-source=[
+source = [
     'main.cpp',
     'shutdown_alarm_monitor.cpp',
-    'threshold_alarm_logger.cpp'
+    'threshold_alarm_logger.cpp',
 ]
 
-deps=[
+deps = [
     phosphor_dbus_interfaces_dep,
     phosphor_logging_dep,
     sdeventplus_dep,
@@ -22,5 +19,5 @@
     dependencies: deps,
     implicit_include_directories: false,
     include_directories: ['..'],
-    install: true
+    install: true,
 )
diff --git a/test/meson.build b/test/meson.build
index 5002167..9358c28 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -1,15 +1,13 @@
 
-test_include_directories = include_directories(
-    '..'
-)
+test_include_directories = include_directories('..')
 
-test_deps=[
+test_deps = [
     gmock_dep,
     gtest_dep,
     nlohmann_json_dep,
     phosphor_dbus_interfaces_dep,
     phosphor_logging_dep,
-    sdbusplus_dep
+    sdbusplus_dep,
 ]
 
 test(
@@ -17,8 +15,8 @@
     executable(
         'logger_test',
         'logger_test.cpp',
-        dependencies:test_deps,
+        dependencies: test_deps,
         implicit_include_directories: false,
-        include_directories: [test_include_directories]
-    )
+        include_directories: [test_include_directories],
+    ),
 )
