diff --git a/meson.build b/meson.build
index fa7045f..248ef7f 100644
--- a/meson.build
+++ b/meson.build
@@ -1,13 +1,14 @@
 project(
-    'phosphor-inventory-manager', 'cpp',
-    version : '1.0.0',
+    'phosphor-inventory-manager',
+    'cpp',
+    version: '1.0.0',
     meson_version: '>=1.1.1',
     default_options: [
         'warning_level=3',
         'werror=true',
         'cpp_std=c++23',
         'buildtype=debugoptimized',
-    ]
+    ],
 )
 
 conf_data = configuration_data()
@@ -15,12 +16,13 @@
 conf_data.set_quoted('INVENTORY_ROOT', '/xyz/openbmc_project/inventory')
 conf_data.set_quoted('IFACE', 'xyz.openbmc_project.Inventory.Manager')
 conf_data.set_quoted('PIM_PERSIST_PATH', '/var/lib/phosphor-inventory-manager')
-conf_data.set_quoted('ASSOCIATIONS_FILE_PATH', '/usr/share/phosphor-inventory-manager/associations.json')
+conf_data.set_quoted(
+    'ASSOCIATIONS_FILE_PATH',
+    '/usr/share/phosphor-inventory-manager/associations.json',
+)
 conf_data.set('CLASS_VERSION', 2)
 conf_data.set('CREATE_ASSOCIATIONS', get_option('associations').allowed())
-configure_file(output: 'config.h',
-    configuration: conf_data
-)
+configure_file(output: 'config.h', configuration: conf_data)
 
 cpp = meson.get_compiler('cpp')
 # Get Cereal dependency.
@@ -29,19 +31,23 @@
     '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
 
-sdbusplus_dep = dependency('sdbusplus', required : false)
+sdbusplus_dep = dependency('sdbusplus', required: false)
 phosphor_dbus_interfaces_dep = dependency('phosphor-dbus-interfaces')
 phosphor_logging_dep = dependency('phosphor-logging')
 
@@ -50,13 +56,9 @@
 sources = []
 deps = []
 if get_option('associations').allowed()
-    sources += [
-        'association_manager.cpp',
-    ]
+    sources += ['association_manager.cpp']
     nlohmann_json_dep = dependency('nlohmann_json', include_type: 'system')
-    deps += [
-        nlohmann_json_dep,
-    ]
+    deps += [nlohmann_json_dep]
 endif
 
 ifacesdir = get_option('IFACES_PATH')
@@ -68,36 +70,48 @@
 if not sdbusplus_dep.found()
     sdbusplus_proj = subproject('sdbusplus')
     sdbusplus_dep = sdbusplus_proj.get_variable('sdbusplus_dep')
-    sdbusplus_python_env = {'PYTHONPATH': meson.current_source_dir() / 'subprojects' / 'sdbusplus' / 'tools'}
+    sdbusplus_python_env = {
+        'PYTHONPATH': meson.current_source_dir() / 'subprojects' / 'sdbusplus' / 'tools',
+    }
 endif
 
 generated_cpp = custom_target(
     'generated.cpp',
-    command : [
+    command: [
         prog_python,
         meson.project_source_root() + '/pimgen.py',
-        '-i', ifacesdir,
-        '-d', get_option('YAML_PATH'),
-        '-o', meson.current_build_dir(),
-        '-b', conf_data.get_unquoted('BUSNAME'),
-        'generate-cpp'
+        '-i',
+        ifacesdir,
+        '-d',
+        get_option('YAML_PATH'),
+        '-o',
+        meson.current_build_dir(),
+        '-b',
+        conf_data.get_unquoted('BUSNAME'),
+        'generate-cpp',
     ],
     env: sdbusplus_python_env,
-    output : 'generated.cpp')
+    output: 'generated.cpp',
+)
 
 gen_serialization_hpp = custom_target(
     'gen_serialization.hpp',
-    command : [
+    command: [
         prog_python,
         meson.project_source_root() + '/pimgen.py',
-        '-i', ifacesdir,
-        '-d', get_option('YAML_PATH'),
-        '-o', meson.current_build_dir(),
-        '-b', conf_data.get_unquoted('BUSNAME'),
-        'generate-serialization'
+        '-i',
+        ifacesdir,
+        '-d',
+        get_option('YAML_PATH'),
+        '-o',
+        meson.current_build_dir(),
+        '-b',
+        conf_data.get_unquoted('BUSNAME'),
+        'generate-serialization',
     ],
     env: sdbusplus_python_env,
-    output : 'gen_serialization.hpp')
+    output: 'gen_serialization.hpp',
+)
 
 sources += [
     generated_cpp,
diff --git a/meson.options b/meson.options
index 3c8b28b..0b93618 100644
--- a/meson.options
+++ b/meson.options
@@ -1,22 +1,21 @@
+option('tests', type: 'feature', value: 'enabled', description: 'Build tests')
+
 option(
-    'tests', type : 'feature',
+    'associations',
+    type: 'feature',
     value: 'enabled',
-    description : 'Build tests'
+    description: 'Enable creating D-Bus associations from a JSON definition',
 )
 
 option(
-    'associations', type : 'feature',
-    value: 'enabled',
-    description : 'Enable creating D-Bus associations from a JSON definition'
-)
-
-option(
-    'YAML_PATH', type: 'string',
+    'YAML_PATH',
+    type: 'string',
     value: '/usr/share/phosphor-inventory-manager',
-    description: 'The path to the yaml config files.'
+    description: 'The path to the yaml config files.',
 )
 
 option(
-    'IFACES_PATH', type: 'string',
-    description: 'The path to the interfaces PIM can create.'
-)
\ No newline at end of file
+    'IFACES_PATH',
+    type: 'string',
+    description: 'The path to the interfaces PIM can create.',
+)
diff --git a/test/meson.build b/test/meson.build
index a0e0124..e6a0f95 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -8,13 +8,13 @@
                 dependency('threads'),
                 gtest_proj.dependency('gtest'),
                 gtest_proj.dependency('gtest_main'),
-            ]
+            ],
         )
         gmock_dep = gtest_proj.dependency('gmock')
     else
         assert(
             not get_option('tests').enabled(),
-            'Googletest is required if tests are enabled'
+            'Googletest is required if tests are enabled',
         )
     endif
 endif
@@ -42,17 +42,19 @@
     phosphor_dbus_interfaces_dep,
     phosphor_logging_dep,
     nlohmann_json_dep,
-    cereal_dep
+    cereal_dep,
 ]
 
 foreach t : tests
-    test(t, executable(t.underscorify(), t,
-                     test_sources,
-                     include_directories: ['..'],
-                     dependencies: [
-                         gtest_dep,
-                         gmock_dep,
-                         test_deps,
-                         ]),
-        workdir: meson.current_source_dir())
+    test(
+        t,
+        executable(
+            t.underscorify(),
+            t,
+            test_sources,
+            include_directories: ['..'],
+            dependencies: [gtest_dep, gmock_dep, test_deps],
+        ),
+        workdir: meson.current_source_dir(),
+    )
 endforeach
