Developer
benoit-nexthop
benoit@nexthop.ai
Performance
Key patterns and highlights from this developer's activity.
Breakdown of growth, maintenance, and fixes effort over time.
Bugs introduced vs. fixed over time.
Reclassifies engineering effort based on bug attribution. Commits that introduced bugs are retrospectively counted as poor investments.
Investment Quality reclassifies engineering effort based on bug attribution data. Commits identified as buggy origins (those that introduced bugs later fixed by someone) have their grow and maintenance time moved into the Wasted Time category. Their waste (fix commits) remains counted as productive. All other commits retain their standard classification: grow is productive, maintenance is maintenance, and waste (fixes) is productive.
The standard model classifies commits as Growth, Maintenance, or Fixes. Investment Quality adds a quality lens: a commit that introduced a bug is retrospectively counted as a poor investment — the engineering time spent on it was wasted because it ultimately required additional fix work. Fix commits (Fixes in the standard model) are reframed as productive, because fixing bugs is valuable work.
Currently computed client-side from commit and bug attribution data. Ideal server-side endpoint:
POST /v1/organizations/{orgId}/investment-quality
Content-Type: application/json
Request:
{
"startTime": "2025-01-01T00:00:00Z",
"endTime": "2025-12-31T23:59:59Z",
"bucketSize": "BUCKET_SIZE_MONTH",
"groupBy": ["repository_id" | "deliverer_email"]
}
Response:
{
"productivePct": 74,
"maintenancePct": 18,
"wastedPct": 8,
"buckets": [
{
"bucketStart": "2025-01-01T00:00:00Z",
"productive": 4.2,
"maintenance": 1.8,
"wasted": 0.6
}
]
}Latest analyzed commits from this developer.
| Hash | Message | Date | Files | Effort |
|---|---|---|---|---|
| 198545d | This commit **enhances the `fboss2` CLI's config session commit functionality** by preventing the creation of **empty Git commits**. Previously, consecutive commits could result in a useless Git commit; now, the system **detects when there are no pending changes** and informs the user, avoiding unnecessary history. This **bug fix and usability improvement** primarily affects the **`ConfigSession` module** and the **`CmdConfigSessionCommit` command**, ensuring a cleaner and more intuitive user experience for configuration management. New unit tests have been added to validate this behavior. | Mar 31 | 6 | maint |
| a167e15 | This commit **fixes a critical bug** in the `fboss2` CLI where the **config session state** was not updated after a `config rollback`, leaving `~/.fboss2/agent.conf` out of sync and requiring manual workarounds. The `ConfigSession::rollback()` function now correctly **synchronizes the session state** by updating the base SHA1, copying the rolled-back configuration, and saving new metadata, while also logging a warning if pending changes exist. This **improves the reliability and user experience** of config management by eliminating the need for manual `config session clear` or `rebase` commands after a rollback. Additionally, a new **`Git::shortSha1()` helper** was introduced to standardize SHA1 abbreviations across various CLI commands, and rollback tests were enhanced for robust verification of session state synchronization. | Mar 30 | 8 | maint |
| cfacfd1 | This commit **refactors** the **FBOSS CLI configuration test infrastructure** by relocating existing test files, such as `CmdConfigL2LearningModeTest.cpp`, into the dedicated `fboss/cli/fboss2/test/config` directory. It updates the `cmake` and `BUCK` build configurations to correctly include these moved tests, ensuring they are properly built and executed. Additionally, the tests are adjusted to inherit from the new `CmdConfigTestBase` class, which **simplifies test setup** and **improves maintainability** for the `fboss2` command-line interface configuration tests. This **maintenance** task addresses an oversight from a previous refactoring, ensuring proper organization and adherence to the new test base class for the **CLI config subsystem**. | Mar 26 | 6 | maint |
| bc4b447 | This commit introduces **new CLI commands** to enable comprehensive configuration of **Quality of Service (QoS) maps** within a `QosPolicy` object. It allows users to define bidirectional mappings for **DSCP, MPLS EXP, and DOT1P/PCP codepoints** to internal traffic classes, supporting both ingress classification and egress rewrite. This **feature addition** significantly enhances the **QoS policy configuration** capabilities in the `fboss/cli/fboss2` module. The new commands provide granular control over traffic prioritization and marking, facilitating precise network traffic management by allowing administrators to tailor QoS behavior based on various packet headers. | Mar 26 | 6 | grow |
| 1821087 | This commit **fixes missing dependencies in the CMake build configuration** for several FBOSS agent components. Specifically, it adds `agent_features` and `switch_asics` to the `dsfnode_utils` target, `fib_helpers` to the `fib_updater` target, and `aqm_test_utils` to the `agent_qos_test_src` target. This **maintenance** work ensures that the **CMake build system** correctly reflects the dependencies defined in Buck, preventing build issues and maintaining **consistency between the two build systems**. The changes directly impact the **DSF node utilities**, **FIB updater**, and **QoS hardware tests** within the agent, ensuring their proper compilation and linking. | Mar 26 | 3 | maint |
| 06ff27b | This commit **rewrites** the `fboss2-dev CLI` end-to-end tests from Python to C++ using gtest, enabling more robust and efficient testing. It involves significant **refactoring** of the **`fboss2-dev CLI`**'s internal architecture, specifically `CmdHandler` and `ConfigSession`, to allow multiple CLI commands to execute within a single process. Key changes include removing static state from `CmdHandler`, throwing exceptions instead of `exit(1)`, and ensuring the `ConfigSession` singleton can be properly reused across command invocations. This work introduces **new C++ end-to-end testing capabilities** for the CLI, improving test reliability and laying the foundation for migrating all existing Python tests. | Mar 23 | 13 | maint |
| b36bd06 | This commit introduces **new CLI commands** to configure **QoS policy maps** within the FBOSS system. It adds the `fboss2-dev config qos policy <name> map <map-type> <key> <value>` command, enabling users to define mappings for traffic class to queue, PFC priority to queue, traffic class to port group, and PFC priority to port group. This **new capability** significantly enhances the **FBOSS CLI** by providing granular control over Quality of Service settings. The work involves integrating new command handlers and argument parsing into the CLI framework, implementing the core logic for these QoS map configurations, and adding a new end-to-end test. This allows network administrators to precisely manage traffic prioritization and flow control directly from the command line. | Mar 19 | 10 | grow |
| b62ac48 | This commit introduces a **new capability** to the **`fboss2` CLI**, enabling users to assign a **queuing policy** to a physical network interface. A new command, `fboss2 config interface <name> queuing-policy <policy-name>`, is added to the **`config interface`** subsystem. This command validates the existence of the specified policy in `portQueueConfigs` before setting the `portQueueConfigName` attribute on the port. This significantly enhances **network interface configuration** by providing direct CLI control over QoS queuing policy assignments, streamlining network management. | Mar 19 | 7 | grow |
| 96c99bd | This commit introduces **Active Queue Management (AQM) support** to the `fboss2 config qos queuing-policy queue-id` CLI command, enabling users to configure advanced congestion management for port queues. This **new capability** allows specifying `congestion-behavior` (ECN or EARLY_DROP) and `detection linear` parameters like minimum-length, maximum-length, and probability directly via the command line. The change primarily affects the **`fboss/cli` module**, specifically the `CmdConfigQosQueuingPolicyQueueId` component, and updates the `QueueConfig` data structure to accommodate AQM attributes. This enhancement provides **fine-grained control over network QoS configuration**, allowing administrators to better manage queue congestion. | Mar 18 | 4 | grow |
| 3acc4b9 | This commit introduces **new CLI commands** to the **fboss2-dev CLI**, enabling users to configure **port queue parameters** under QoS queuing policies. This **new capability** allows granular control over network traffic management by setting queue scheduling, weights, buffer sizes, and other attributes via commands like `config qos queuing-policy <name> queue-id <id>`. The change significantly enhances the **QoS configuration capabilities** available through the CLI, providing detailed control over traffic shaping. Additionally, it **refactors** the `cleanup_config()` helper function into `cli_test_lib.py` to improve test code maintainability and reduce duplication across CLI tests. | Mar 18 | 12 | grow |
| a28f479 | This commit introduces a **new capability** to the **fboss2-dev CLI**, enabling comprehensive configuration of **per-port Priority Flow Control (PFC)** settings. Users can now utilize the `config interface <port> pfc-config` command to enable/disable PFC transmission and reception, define watchdog parameters like detection and recovery times, and associate priority group policies with specific interfaces. This **feature enhancement** significantly improves network control by providing direct command-line management for critical QoS and congestion control mechanisms. The changes primarily affect the **CLI configuration subsystem** and are validated by new end-to-end tests, ensuring robust operational flexibility for network administrators. | Mar 17 | 12 | grow |
| edf7d84 | This commit introduces **new CLI commands** to the **fboss2-dev CLI** for configuring **PFC priority group policies** (`portPgConfigs`). This **new capability** allows users to define per-port settings for traffic prioritization and buffer management, including attributes like `min-limit-bytes`, `headroom-limit-bytes`, and `buffer-pool-name`. The changes extend the **QoS configuration** subsystem, providing granular control over network traffic behavior. Additionally, `ConfigSession::restartAgent()` is updated to use `sudo` for `systemctl restart`, improving usability for non-root users. | Mar 14 | 10 | grow |
| 762c8eb | This commit introduces a **new capability** to the **`fboss2` CLI** by adding the `config session rebase` command, designed to resolve **concurrent configuration session conflicts**. This command addresses the issue where multiple users committing changes based on stale configurations could lead to errors or overwrites. It implements a **recursive 3-way merge algorithm** within the `ConfigSession` module to re-apply a session's changes on top of the current HEAD, detecting and reporting conflicts at specific JSON paths. This significantly improves multi-user configuration workflows by enabling users to resolve conflicts and update their sessions, preventing accidental overwrites and ensuring configuration consistency. Comprehensive unit and end-to-end tests have been added to validate the rebase functionality and conflict detection. | Mar 5 | 11 | maint |
| 307355c | This commit introduces a **major refactoring** of the **CLI configuration versioning system**, replacing the custom file-based `rN` revision mechanism with a robust **Git-based approach**. It integrates a new `Git` class (`fboss/cli/fboss2/session/Git.cpp`) to manage a local Git repository for `agent.conf`, providing atomic writes and leveraging Git's native capabilities for history, diff, and rollback. Consequently, **CLI commands** like `config history`, `config session diff`, `config session commit`, and `config rollback` are updated to interact with Git SHAs as revision identifiers, significantly enhancing the reliability and functionality of configuration management. This change provides a more powerful and standard version control experience for **FBOSS CLI users**, with automatic Git repository initialization and initial commit handling. | Mar 3 | 21 | maint |
| 9816430 | This commit introduces a **new capability** to the **CLI configuration management** system by recording all executed config commands within a session. Each command is now stored in the `ConfigSession`'s metadata and is **persisted to disk** alongside the configuration upon session commit, enhancing auditability. This change primarily affects the `ConfigSession` logic in `ConfigSession.cpp` and `ConfigSession.h`, updates the `cli_metadata.thrift` schema to include a `commands` field, and adds extensive unit tests in `CmdConfigSessionTest.cpp` and other test files. This foundational work enables future improvements, such as more intelligent rollback mechanisms that can leverage the stored command history. | Feb 20 | 9 | maint |
| 1e8ce1e | This commit delivers a **bug fix** and an **enhancement** to the **CMake test runner** and **build system**, specifically addressing issues with `getdeps` and test execution. It resolves a problem where running specific test targets would remove a crucial build marker, preventing subsequent test runs, and also corrects an erroneous zero exit code that previously masked this issue. The **test runner** is now improved to **automatically detect and build missing test executables** when tests are invoked, streamlining the **developer workflow** by enabling single CMake test targets to be rebuilt and re-run efficiently. This change significantly enhances the reliability and usability of the **test execution process**. | Feb 19 | 3 | – |
| 9334d0b | This commit **enhances the `getdeps.py` test runner** to automatically build missing test executables, addressing a common issue where `getdeps` would fail to run tests after partial CMake builds. It **fixes a bug** where `getdeps` would incorrectly exit with a success code (0) when it couldn't find built projects, making failures confusing. This **maintenance improvement** ensures proper error propagation and **streamlines the developer workflow** by allowing seamless re-testing of individual CMake test targets without manual rebuilds. This significantly improves the reliability and usability of the test execution process within the **build system**. | Feb 19 | 3 | – |
| 4679571 | Build missing test binaries automatically when running tests | Feb 19 | 1 | – |
| 1a0dca9 | This commit **introduces a new unit test** within the `fboss2` **CLI module** to validate the command tree and prevent the registration of duplicate subcommand names. This **enhances test coverage** and serves as a **regression prevention** measure, ensuring the stability and correctness of the CLI by catching potential command conflicts early. The changes involve adding `CmdListConfigTest.cpp` to the `fboss2_cmd_test` executable target in `cmake/CliFboss2Test.cmake` and updating the `fboss/cli/fboss2/test/BUCK` build file. This work is essential for maintaining a robust and unambiguous command-line interface. | Feb 18 | 3 | maint |
| 0ab7c19 | This commit introduces a **new feature** to the **fboss2 CLI**, providing operators with the ability to **configure the access VLAN for a network interface** using the command `config interface <name> switchport access vlan <N>`. This enhances the **network interface configuration** subsystem by allowing direct management of **switchport access VLAN assignments**. The change includes new command handlers and argument validation for VLAN IDs, with comprehensive unit and end-to-end tests ensuring its correctness. Notably, applying these VLAN membership changes requires an **agent warmboot** to take effect, as dynamic application is not supported. | Feb 17 | 16 | maint |
This commit **enhances the `fboss2` CLI's config session commit functionality** by preventing the creation of **empty Git commits**. Previously, consecutive commits could result in a useless Git commit; now, the system **detects when there are no pending changes** and informs the user, avoiding unnecessary history. This **bug fix and usability improvement** primarily affects the **`ConfigSession` module** and the **`CmdConfigSessionCommit` command**, ensuring a cleaner and more intuitive user experience for configuration management. New unit tests have been added to validate this behavior.
This commit **fixes a critical bug** in the `fboss2` CLI where the **config session state** was not updated after a `config rollback`, leaving `~/.fboss2/agent.conf` out of sync and requiring manual workarounds. The `ConfigSession::rollback()` function now correctly **synchronizes the session state** by updating the base SHA1, copying the rolled-back configuration, and saving new metadata, while also logging a warning if pending changes exist. This **improves the reliability and user experience** of config management by eliminating the need for manual `config session clear` or `rebase` commands after a rollback. Additionally, a new **`Git::shortSha1()` helper** was introduced to standardize SHA1 abbreviations across various CLI commands, and rollback tests were enhanced for robust verification of session state synchronization.
This commit **refactors** the **FBOSS CLI configuration test infrastructure** by relocating existing test files, such as `CmdConfigL2LearningModeTest.cpp`, into the dedicated `fboss/cli/fboss2/test/config` directory. It updates the `cmake` and `BUCK` build configurations to correctly include these moved tests, ensuring they are properly built and executed. Additionally, the tests are adjusted to inherit from the new `CmdConfigTestBase` class, which **simplifies test setup** and **improves maintainability** for the `fboss2` command-line interface configuration tests. This **maintenance** task addresses an oversight from a previous refactoring, ensuring proper organization and adherence to the new test base class for the **CLI config subsystem**.
This commit introduces **new CLI commands** to enable comprehensive configuration of **Quality of Service (QoS) maps** within a `QosPolicy` object. It allows users to define bidirectional mappings for **DSCP, MPLS EXP, and DOT1P/PCP codepoints** to internal traffic classes, supporting both ingress classification and egress rewrite. This **feature addition** significantly enhances the **QoS policy configuration** capabilities in the `fboss/cli/fboss2` module. The new commands provide granular control over traffic prioritization and marking, facilitating precise network traffic management by allowing administrators to tailor QoS behavior based on various packet headers.
This commit **fixes missing dependencies in the CMake build configuration** for several FBOSS agent components. Specifically, it adds `agent_features` and `switch_asics` to the `dsfnode_utils` target, `fib_helpers` to the `fib_updater` target, and `aqm_test_utils` to the `agent_qos_test_src` target. This **maintenance** work ensures that the **CMake build system** correctly reflects the dependencies defined in Buck, preventing build issues and maintaining **consistency between the two build systems**. The changes directly impact the **DSF node utilities**, **FIB updater**, and **QoS hardware tests** within the agent, ensuring their proper compilation and linking.
This commit **rewrites** the `fboss2-dev CLI` end-to-end tests from Python to C++ using gtest, enabling more robust and efficient testing. It involves significant **refactoring** of the **`fboss2-dev CLI`**'s internal architecture, specifically `CmdHandler` and `ConfigSession`, to allow multiple CLI commands to execute within a single process. Key changes include removing static state from `CmdHandler`, throwing exceptions instead of `exit(1)`, and ensuring the `ConfigSession` singleton can be properly reused across command invocations. This work introduces **new C++ end-to-end testing capabilities** for the CLI, improving test reliability and laying the foundation for migrating all existing Python tests.
This commit introduces **new CLI commands** to configure **QoS policy maps** within the FBOSS system. It adds the `fboss2-dev config qos policy <name> map <map-type> <key> <value>` command, enabling users to define mappings for traffic class to queue, PFC priority to queue, traffic class to port group, and PFC priority to port group. This **new capability** significantly enhances the **FBOSS CLI** by providing granular control over Quality of Service settings. The work involves integrating new command handlers and argument parsing into the CLI framework, implementing the core logic for these QoS map configurations, and adding a new end-to-end test. This allows network administrators to precisely manage traffic prioritization and flow control directly from the command line.
This commit introduces a **new capability** to the **`fboss2` CLI**, enabling users to assign a **queuing policy** to a physical network interface. A new command, `fboss2 config interface <name> queuing-policy <policy-name>`, is added to the **`config interface`** subsystem. This command validates the existence of the specified policy in `portQueueConfigs` before setting the `portQueueConfigName` attribute on the port. This significantly enhances **network interface configuration** by providing direct CLI control over QoS queuing policy assignments, streamlining network management.
This commit introduces **Active Queue Management (AQM) support** to the `fboss2 config qos queuing-policy queue-id` CLI command, enabling users to configure advanced congestion management for port queues. This **new capability** allows specifying `congestion-behavior` (ECN or EARLY_DROP) and `detection linear` parameters like minimum-length, maximum-length, and probability directly via the command line. The change primarily affects the **`fboss/cli` module**, specifically the `CmdConfigQosQueuingPolicyQueueId` component, and updates the `QueueConfig` data structure to accommodate AQM attributes. This enhancement provides **fine-grained control over network QoS configuration**, allowing administrators to better manage queue congestion.
This commit introduces **new CLI commands** to the **fboss2-dev CLI**, enabling users to configure **port queue parameters** under QoS queuing policies. This **new capability** allows granular control over network traffic management by setting queue scheduling, weights, buffer sizes, and other attributes via commands like `config qos queuing-policy <name> queue-id <id>`. The change significantly enhances the **QoS configuration capabilities** available through the CLI, providing detailed control over traffic shaping. Additionally, it **refactors** the `cleanup_config()` helper function into `cli_test_lib.py` to improve test code maintainability and reduce duplication across CLI tests.
This commit introduces a **new capability** to the **fboss2-dev CLI**, enabling comprehensive configuration of **per-port Priority Flow Control (PFC)** settings. Users can now utilize the `config interface <port> pfc-config` command to enable/disable PFC transmission and reception, define watchdog parameters like detection and recovery times, and associate priority group policies with specific interfaces. This **feature enhancement** significantly improves network control by providing direct command-line management for critical QoS and congestion control mechanisms. The changes primarily affect the **CLI configuration subsystem** and are validated by new end-to-end tests, ensuring robust operational flexibility for network administrators.
This commit introduces **new CLI commands** to the **fboss2-dev CLI** for configuring **PFC priority group policies** (`portPgConfigs`). This **new capability** allows users to define per-port settings for traffic prioritization and buffer management, including attributes like `min-limit-bytes`, `headroom-limit-bytes`, and `buffer-pool-name`. The changes extend the **QoS configuration** subsystem, providing granular control over network traffic behavior. Additionally, `ConfigSession::restartAgent()` is updated to use `sudo` for `systemctl restart`, improving usability for non-root users.
This commit introduces a **new capability** to the **`fboss2` CLI** by adding the `config session rebase` command, designed to resolve **concurrent configuration session conflicts**. This command addresses the issue where multiple users committing changes based on stale configurations could lead to errors or overwrites. It implements a **recursive 3-way merge algorithm** within the `ConfigSession` module to re-apply a session's changes on top of the current HEAD, detecting and reporting conflicts at specific JSON paths. This significantly improves multi-user configuration workflows by enabling users to resolve conflicts and update their sessions, preventing accidental overwrites and ensuring configuration consistency. Comprehensive unit and end-to-end tests have been added to validate the rebase functionality and conflict detection.
This commit introduces a **major refactoring** of the **CLI configuration versioning system**, replacing the custom file-based `rN` revision mechanism with a robust **Git-based approach**. It integrates a new `Git` class (`fboss/cli/fboss2/session/Git.cpp`) to manage a local Git repository for `agent.conf`, providing atomic writes and leveraging Git's native capabilities for history, diff, and rollback. Consequently, **CLI commands** like `config history`, `config session diff`, `config session commit`, and `config rollback` are updated to interact with Git SHAs as revision identifiers, significantly enhancing the reliability and functionality of configuration management. This change provides a more powerful and standard version control experience for **FBOSS CLI users**, with automatic Git repository initialization and initial commit handling.
This commit introduces a **new capability** to the **CLI configuration management** system by recording all executed config commands within a session. Each command is now stored in the `ConfigSession`'s metadata and is **persisted to disk** alongside the configuration upon session commit, enhancing auditability. This change primarily affects the `ConfigSession` logic in `ConfigSession.cpp` and `ConfigSession.h`, updates the `cli_metadata.thrift` schema to include a `commands` field, and adds extensive unit tests in `CmdConfigSessionTest.cpp` and other test files. This foundational work enables future improvements, such as more intelligent rollback mechanisms that can leverage the stored command history.
This commit delivers a **bug fix** and an **enhancement** to the **CMake test runner** and **build system**, specifically addressing issues with `getdeps` and test execution. It resolves a problem where running specific test targets would remove a crucial build marker, preventing subsequent test runs, and also corrects an erroneous zero exit code that previously masked this issue. The **test runner** is now improved to **automatically detect and build missing test executables** when tests are invoked, streamlining the **developer workflow** by enabling single CMake test targets to be rebuilt and re-run efficiently. This change significantly enhances the reliability and usability of the **test execution process**.
This commit **enhances the `getdeps.py` test runner** to automatically build missing test executables, addressing a common issue where `getdeps` would fail to run tests after partial CMake builds. It **fixes a bug** where `getdeps` would incorrectly exit with a success code (0) when it couldn't find built projects, making failures confusing. This **maintenance improvement** ensures proper error propagation and **streamlines the developer workflow** by allowing seamless re-testing of individual CMake test targets without manual rebuilds. This significantly improves the reliability and usability of the test execution process within the **build system**.
Build missing test binaries automatically when running tests
This commit **introduces a new unit test** within the `fboss2` **CLI module** to validate the command tree and prevent the registration of duplicate subcommand names. This **enhances test coverage** and serves as a **regression prevention** measure, ensuring the stability and correctness of the CLI by catching potential command conflicts early. The changes involve adding `CmdListConfigTest.cpp` to the `fboss2_cmd_test` executable target in `cmake/CliFboss2Test.cmake` and updating the `fboss/cli/fboss2/test/BUCK` build file. This work is essential for maintaining a robust and unambiguous command-line interface.
This commit introduces a **new feature** to the **fboss2 CLI**, providing operators with the ability to **configure the access VLAN for a network interface** using the command `config interface <name> switchport access vlan <N>`. This enhances the **network interface configuration** subsystem by allowing direct management of **switchport access VLAN assignments**. The change includes new command handlers and argument validation for VLAN IDs, with comprehensive unit and end-to-end tests ensuring its correctness. Notably, applying these VLAN membership changes requires an **agent warmboot** to take effect, as dynamic application is not supported.
Commit activity distribution by hour and day of week. Shows when this developer is most active.
Developers who frequently work on the same files and symbols. Higher score means stronger code collaboration.