NavigaraNavigara
OrganizationsDistributionCompareResearch
NavigaraNavigara
OrganizationsDistributionCompareResearch
All developers

Maggie Moss

Developer

Maggie Moss

maggiemoss@meta.com

148 commits~3 files/commit

Performance

YoY:+746%
2026Previous year

Insights

Key patterns and highlights from this developer's activity.

Peak MonthNov'25189 performance
Growth Trend↓32%vs prior period
Avg Files/Commit3files per commit
Active Days74of 455 days
Top Repopyrefly145 commits

Effort Over Time

Breakdown of growth, maintenance, and fixes effort over time.

Bug Behavior

Beta

Bugs introduced vs. fixed over time.

Investment Quality

Beta

Reclassifies engineering effort based on bug attribution. Commits that introduced bugs are retrospectively counted as poor investments.

59%Productive TimeGrowth 43% + Fixes 57%
27%Maintenance Time
14%Wasted Time
How it works

Methodology

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.

Relationship to Growth / Maintenance / Fixes

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.

Proposed API Endpoint

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
    }
  ]
}

Recent Activity

Latest analyzed commits from this developer.

HashMessageDateFilesEffort
9d6b370This commit performs a **maintenance update** by incrementing the project's **version number**. Specifically, it updates the `VERSION` constant within the `version.bzl` file from `0.57.0` to `0.58.0`. This change signifies a new development milestone or release cycle for the project, impacting any build systems or external integrations that depend on this version identifier.Mar 2411maint
f7471efThis commit **fixes two critical bugs** in the **`pyrefly infer` command** that caused it to produce **invalid Python code** when generating type annotations. It corrects the import insertion logic to ensure new imports are placed *after* `__future__` statements, preventing syntax errors. Additionally, it prevents invalid `Overload[...]` annotation syntax by filtering out `Overload` types during hint formatting, aligning with existing filters for unrepresentable types. This significantly improves the correctness and usability of `pyrefly`'s inferred type annotations.Mar 231waste
cfb111aThis commit **updates the configuration** for **Pyrefly's `buck_check` command** to facilitate its rollout within fbcode. It specifically configures `buck_check` to **infer return types only for annotated functions**, disables checking unannotated definitions, and reduces the severity of the `UnusedIgnore` error. This **refactoring** of the type checking settings, primarily in `pyrefly/lib/commands/buck_check.rs`, enables a more controlled and gradual integration of Pyrefly's type inference capabilities across the fbcode monorepo. The changes allow for a smoother adoption by focusing on existing annotations and adjusting error handling.Mar 201maint
d3255c4This commit **extends the `pyrefly suppress --remove-unused` command** to identify and remove **unused Pyre-style suppression comments**, including `# pyre-fixme`, `# pyre-ignore`, and `# pyre: ignore`. This **new capability** is activated when `Tool::Pyre` is enabled in the configuration, updating the comment matching regex and removal logic within the `suppress` module. The `errors` module was updated to correctly collect these unused Pyre comments based on the module's `enabled_ignores` configuration. This **enhances code hygiene** by automatically cleaning up more types of dead suppression comments, improving code clarity and maintainability for projects using Pyre.Mar 192grow
6ddedd2This commit **refactors Pyre's type-checking configuration** by replacing the monolithic `untyped-def-behavior` option with two more granular and orthogonal settings: `--check-unannotated-defs` (boolean) and `--infer-return-types` (a 3-value enum). This **enhancement** provides **finer control** over how **unannotated function bodies are type-checked** and when **return types are inferred**, addressing limitations of the previous design which could not express all desired configuration states. The **configuration system** (`crates/pyrefly_config`) is updated to introduce these new fields and handle **backwards compatibility** for the deprecated option, while the **core type-checking logic** (`pyrefly/lib/binding/function.rs`) and various commands are adapted to utilize the new settings. This significantly improves the **flexibility of Pyre's analysis behavior**, allowing users to precisely configure type-checking and inference for Python functions.Mar 1913maint
c136f3dThis commit **optimizes the performance** of the **`pyrefly infer` command** and related LSP features. It **refactors** the `infer.rs` module to use `Require::Exports` for dependency modules and parallelizes handle processing, significantly speeding up the core inference logic. Additionally, the **LSP `inlay_hints`** functionality is improved by skipping inference for functions where all parameters are already annotated, reducing redundant computations. These targeted **performance optimizations** collectively result in **faster inference times** for users of `pyrefly`.Mar 122maint
83c6cb2This commit **refactors** the **`pyrefly infer` command** to resolve imports more efficiently and accurately. It **moves import resolution from a heuristic-based Phase 2 to a type-based Phase 1**, directly collecting `QName` information from inferred types to determine necessary imports. This change **fixes a duplicate import bug**, eliminates an expensive second type-checking pass, and makes import resolution more robust by leveraging precise type information instead of fragile heuristics. The `pyrefly/lib/commands/infer.rs` module is primarily affected, resulting in improved performance and correctness for type annotation generation.Mar 111waste
8bcf552This commit introduces a **feature enhancement** to the **PyreFly static analysis tool**, specifically improving the `infer` command's capabilities. It **forces the `infer` command** to utilize the more comprehensive `CheckAndInferReturnType` strategy for untyped definitions by default, unless explicitly overridden by the user. This change, primarily affecting `pyrefly/lib/commands/infer.rs` and supported by a new configuration function in `crates/pyrefly_config/src/args.rs`, significantly **improves the accuracy and completeness of inferred type annotations**. Consequently, users will now receive **substantially better type inference results** for their Python code, leading to more robust static analysis.Mar 112grow
5abe936This commit implements a **bug fix** within the **`pyrefly` build system** to prevent incorrect typeshed stubs from being processed. It **broadens the filter in `crates/pyrefly_build/src/source_db/buck_check.rs`** to correctly exclude Pyre-versioned typeshed stubs, including those provided via user overrides, from `pyrefly`'s dependency index. This ensures that `pyrefly` falls back to its own bundled typeshed, **resolving an issue where incorrect stubs caused a massive explosion of type errors** and improving the accuracy of type checking.Mar 91waste
b0e20f3This commit introduces a **new capability** to the **`pyrefly`** type checker, enabling explicit control over the reporting of "unused ignore" error codes. It configures and collects `UnusedIgnore` errors within the `pyrefly/lib/commands/buck_check.rs` module, specifically impacting the `compute_errors` function and enhancing the overall error reporting. This **feature enhancement** mimics Pyre's behavior of reporting but filtering these errors by default, which is crucial for simplifying the future implementation of a `remove-unused-ignores` flag without complex flag threading through BXL layers. The change provides more flexible error handling for `pyrefly` users.Feb 61grow
26570f7This commit performs a **maintenance** task by **bumping the Pyrefly project version** from `0.51.0` to `0.51.1` within the `version.bzl` file. This essential **release preparation** step is specifically undertaken to facilitate a new **PyPi release** of the Pyrefly library. The version increment ensures proper tracking and precedes upcoming, more substantial development work, including a significant PyTorch upgrade.Feb 512maint
e1dd007This commit provides a **bug fix** for the **PyreFly error suppression mechanism**, specifically addressing issues in `pyrefly/lib/error/suppress.rs`. It introduces a **new regular expression** to accurately parse and identify ignore comments, even when other comments are present on the same line. Functions like `update_ignore_comment_with_used_codes` and `remove_unused_ignores_from_serialized` are updated to leverage this improved parsing logic. This ensures more reliable and precise **removal of unused error suppression directives**, preventing incorrect modifications or retention of ignores within the codebase.Jan 301waste
67e5b08This commit introduces a **new feature** to the **`pyrefly` static analysis tool**, enhancing the **`suppress` command** with the ability to remove unused ignore comments. A `remove_unused` flag is added to the command-line arguments in `pyrefly/lib/commands/suppress.rs`, allowing users to specify this cleanup action. The underlying logic for identifying and removing these unused ignores is implemented in `pyrefly/lib/error/suppress.rs`, including a new public function `remove_unused_ignores_from_serialized` for processing serialized errors. This improvement helps maintain cleaner codebases by automatically eliminating obsolete suppression directives, thereby improving the accuracy and relevance of static analysis results.Jan 292grow
7f0e445This commit **refactors** the `pyrefly` library's **error handling system** by renaming the `SuppressableError` struct to `SerializedError` to better reflect its role in serializing various error types. This change, primarily in `pyrefly/lib/error/suppress.rs`, also enhances the `SerializedError` with a `message` field and introduces an `is_unused_ignore` method for improved error introspection. As a result, the `pyrefly/lib/commands/check.rs` and `pyrefly/lib/commands/suppress.rs` modules are updated to leverage the new `SerializedError` type. This ensures `UnusedIgnore` errors are consistently filtered and handled during both error checking and suppression processes, improving clarity and maintainability within the **error reporting and suppression logic**.Jan 293maint
4046719This commit introduces a **new `UnusedIgnore` error kind** to the `pyrefly_config` module, setting its default severity to `Ignore`. It enhances the **error reporting system** by adding methods to `pyrefly/lib/state/errors.rs` for collecting and filtering these new errors. The `pyrefly check` command is updated to integrate the display of these unused ignore errors, providing users with more comprehensive feedback. This **feature addition** also includes **documentation** for the new error kind and lays the groundwork for improved flexibility in managing and potentially surfacing unused ignores within the project and future IDE integrations.Jan 284grow
e712bd6This commit **refactors** the **unused suppression removal logic** within the `pyrefly` tool to enhance code sharing and prepare for future integrations. The `remove_unused_ignores` function in `pyrefly/lib/error/suppress.rs` has been significantly rewritten to accept a list of unused errors directly, streamlining its internal identification and removal process. This **refactoring** also updates the `check` command in `pyrefly/lib/commands/check.rs` to reflect these changes, removing an 'all' option and adjusting the call to the refactored function. The primary goal is to enable the system to eventually process JSON blobs of errors for silencing, which is crucial for an upcoming `arc pyre` integration.Jan 282maint
9d2d87aThis commit **fixes a critical bug** in the `pyrefly` library's **error suppression mechanism** by preventing it from suppressing `UnusedIgnore` errors. The `is_ignored` function in `pyrefly/lib/error/error.rs` now includes a check to avoid suppressing these specific errors, which previously could lead to an infinite loop within the system. Concurrently, the `from_error` function in `pyrefly/lib/error/suppress.rs` is modified to explicitly return `None` when encountering an `UnusedIgnore` error, ensuring it is never suppressed. This change guarantees the **stability and correctness of the error reporting system** by ensuring `UnusedIgnore` errors are always visible and not hidden by the suppression logic itself.Jan 282waste
4c95fadThis commit introduces a **new feature** to the **`pyrefly` tool's `suppress` command**, enabling it to consume error data directly from a JSON file. A new `--json` argument is added to the `suppress` command, allowing users to specify a JSON file containing errors, thereby bypassing the need to run a full type check. To facilitate this, the `SuppressableError` struct within `pyrefly/lib/error/suppress.rs` has been updated to derive `Deserialize`, making it compatible with JSON input. This enhancement provides a more flexible and potentially faster method for error suppression, particularly useful for integrating with external error reporting or pre-analyzed error lists.Jan 262grow
cb6768dThis commit introduces a **new `SuppressableError` abstraction** to unify error handling within the **`pyrefly` error suppression system**. It **refactors** the core `pyrefly/lib/error/suppress.rs` module, adapting functions like `dedup_errors` and `suppress_errors` to operate on this common error representation. Both the `pyrefly check` command (`pyrefly/lib/commands/check.rs`) and the `pyrefly suppress` command (`pyrefly/lib/commands/suppress.rs`) are updated to convert their errors into `SuppressableError` objects. This **refactoring** enables **reuse of existing suppression logic** across different error types, enhancing consistency and maintainability.Jan 233maint
2bdd0a1This commit **implements the core logic** for the new **`pyrefly suppress` command**, enabling it to **run checks and automatically apply suppressions** to identified errors. This **new feature** introduces a critical capability within the **`pyrefly` tool's command-line interface**, specifically affecting the `pyrefly/lib/commands/suppress.rs` module. By allowing the command to resolve files, execute checks, and then apply suppressions, it significantly streamlines the process of managing code quality issues. This enhancement provides users with a powerful mechanism to programmatically handle diagnostics, improving developer workflow and code maintenance.Jan 231grow
9d6b370Mar 24

This commit performs a **maintenance update** by incrementing the project's **version number**. Specifically, it updates the `VERSION` constant within the `version.bzl` file from `0.57.0` to `0.58.0`. This change signifies a new development milestone or release cycle for the project, impacting any build systems or external integrations that depend on this version identifier.

11 filesmaint
f7471efMar 23

This commit **fixes two critical bugs** in the **`pyrefly infer` command** that caused it to produce **invalid Python code** when generating type annotations. It corrects the import insertion logic to ensure new imports are placed *after* `__future__` statements, preventing syntax errors. Additionally, it prevents invalid `Overload[...]` annotation syntax by filtering out `Overload` types during hint formatting, aligning with existing filters for unrepresentable types. This significantly improves the correctness and usability of `pyrefly`'s inferred type annotations.

1 fileswaste
cfb111aMar 20

This commit **updates the configuration** for **Pyrefly's `buck_check` command** to facilitate its rollout within fbcode. It specifically configures `buck_check` to **infer return types only for annotated functions**, disables checking unannotated definitions, and reduces the severity of the `UnusedIgnore` error. This **refactoring** of the type checking settings, primarily in `pyrefly/lib/commands/buck_check.rs`, enables a more controlled and gradual integration of Pyrefly's type inference capabilities across the fbcode monorepo. The changes allow for a smoother adoption by focusing on existing annotations and adjusting error handling.

1 filesmaint
d3255c4Mar 19

This commit **extends the `pyrefly suppress --remove-unused` command** to identify and remove **unused Pyre-style suppression comments**, including `# pyre-fixme`, `# pyre-ignore`, and `# pyre: ignore`. This **new capability** is activated when `Tool::Pyre` is enabled in the configuration, updating the comment matching regex and removal logic within the `suppress` module. The `errors` module was updated to correctly collect these unused Pyre comments based on the module's `enabled_ignores` configuration. This **enhances code hygiene** by automatically cleaning up more types of dead suppression comments, improving code clarity and maintainability for projects using Pyre.

2 filesgrow
6ddedd2Mar 19

This commit **refactors Pyre's type-checking configuration** by replacing the monolithic `untyped-def-behavior` option with two more granular and orthogonal settings: `--check-unannotated-defs` (boolean) and `--infer-return-types` (a 3-value enum). This **enhancement** provides **finer control** over how **unannotated function bodies are type-checked** and when **return types are inferred**, addressing limitations of the previous design which could not express all desired configuration states. The **configuration system** (`crates/pyrefly_config`) is updated to introduce these new fields and handle **backwards compatibility** for the deprecated option, while the **core type-checking logic** (`pyrefly/lib/binding/function.rs`) and various commands are adapted to utilize the new settings. This significantly improves the **flexibility of Pyre's analysis behavior**, allowing users to precisely configure type-checking and inference for Python functions.

13 filesmaint
c136f3dMar 12

This commit **optimizes the performance** of the **`pyrefly infer` command** and related LSP features. It **refactors** the `infer.rs` module to use `Require::Exports` for dependency modules and parallelizes handle processing, significantly speeding up the core inference logic. Additionally, the **LSP `inlay_hints`** functionality is improved by skipping inference for functions where all parameters are already annotated, reducing redundant computations. These targeted **performance optimizations** collectively result in **faster inference times** for users of `pyrefly`.

2 filesmaint
83c6cb2Mar 11

This commit **refactors** the **`pyrefly infer` command** to resolve imports more efficiently and accurately. It **moves import resolution from a heuristic-based Phase 2 to a type-based Phase 1**, directly collecting `QName` information from inferred types to determine necessary imports. This change **fixes a duplicate import bug**, eliminates an expensive second type-checking pass, and makes import resolution more robust by leveraging precise type information instead of fragile heuristics. The `pyrefly/lib/commands/infer.rs` module is primarily affected, resulting in improved performance and correctness for type annotation generation.

1 fileswaste
8bcf552Mar 11

This commit introduces a **feature enhancement** to the **PyreFly static analysis tool**, specifically improving the `infer` command's capabilities. It **forces the `infer` command** to utilize the more comprehensive `CheckAndInferReturnType` strategy for untyped definitions by default, unless explicitly overridden by the user. This change, primarily affecting `pyrefly/lib/commands/infer.rs` and supported by a new configuration function in `crates/pyrefly_config/src/args.rs`, significantly **improves the accuracy and completeness of inferred type annotations**. Consequently, users will now receive **substantially better type inference results** for their Python code, leading to more robust static analysis.

2 filesgrow
5abe936Mar 9

This commit implements a **bug fix** within the **`pyrefly` build system** to prevent incorrect typeshed stubs from being processed. It **broadens the filter in `crates/pyrefly_build/src/source_db/buck_check.rs`** to correctly exclude Pyre-versioned typeshed stubs, including those provided via user overrides, from `pyrefly`'s dependency index. This ensures that `pyrefly` falls back to its own bundled typeshed, **resolving an issue where incorrect stubs caused a massive explosion of type errors** and improving the accuracy of type checking.

1 fileswaste
b0e20f3Feb 6

This commit introduces a **new capability** to the **`pyrefly`** type checker, enabling explicit control over the reporting of "unused ignore" error codes. It configures and collects `UnusedIgnore` errors within the `pyrefly/lib/commands/buck_check.rs` module, specifically impacting the `compute_errors` function and enhancing the overall error reporting. This **feature enhancement** mimics Pyre's behavior of reporting but filtering these errors by default, which is crucial for simplifying the future implementation of a `remove-unused-ignores` flag without complex flag threading through BXL layers. The change provides more flexible error handling for `pyrefly` users.

1 filesgrow
26570f7Feb 5

This commit performs a **maintenance** task by **bumping the Pyrefly project version** from `0.51.0` to `0.51.1` within the `version.bzl` file. This essential **release preparation** step is specifically undertaken to facilitate a new **PyPi release** of the Pyrefly library. The version increment ensures proper tracking and precedes upcoming, more substantial development work, including a significant PyTorch upgrade.

12 filesmaint
e1dd007Jan 30

This commit provides a **bug fix** for the **PyreFly error suppression mechanism**, specifically addressing issues in `pyrefly/lib/error/suppress.rs`. It introduces a **new regular expression** to accurately parse and identify ignore comments, even when other comments are present on the same line. Functions like `update_ignore_comment_with_used_codes` and `remove_unused_ignores_from_serialized` are updated to leverage this improved parsing logic. This ensures more reliable and precise **removal of unused error suppression directives**, preventing incorrect modifications or retention of ignores within the codebase.

1 fileswaste
67e5b08Jan 29

This commit introduces a **new feature** to the **`pyrefly` static analysis tool**, enhancing the **`suppress` command** with the ability to remove unused ignore comments. A `remove_unused` flag is added to the command-line arguments in `pyrefly/lib/commands/suppress.rs`, allowing users to specify this cleanup action. The underlying logic for identifying and removing these unused ignores is implemented in `pyrefly/lib/error/suppress.rs`, including a new public function `remove_unused_ignores_from_serialized` for processing serialized errors. This improvement helps maintain cleaner codebases by automatically eliminating obsolete suppression directives, thereby improving the accuracy and relevance of static analysis results.

2 filesgrow
7f0e445Jan 29

This commit **refactors** the `pyrefly` library's **error handling system** by renaming the `SuppressableError` struct to `SerializedError` to better reflect its role in serializing various error types. This change, primarily in `pyrefly/lib/error/suppress.rs`, also enhances the `SerializedError` with a `message` field and introduces an `is_unused_ignore` method for improved error introspection. As a result, the `pyrefly/lib/commands/check.rs` and `pyrefly/lib/commands/suppress.rs` modules are updated to leverage the new `SerializedError` type. This ensures `UnusedIgnore` errors are consistently filtered and handled during both error checking and suppression processes, improving clarity and maintainability within the **error reporting and suppression logic**.

3 filesmaint
4046719Jan 28

This commit introduces a **new `UnusedIgnore` error kind** to the `pyrefly_config` module, setting its default severity to `Ignore`. It enhances the **error reporting system** by adding methods to `pyrefly/lib/state/errors.rs` for collecting and filtering these new errors. The `pyrefly check` command is updated to integrate the display of these unused ignore errors, providing users with more comprehensive feedback. This **feature addition** also includes **documentation** for the new error kind and lays the groundwork for improved flexibility in managing and potentially surfacing unused ignores within the project and future IDE integrations.

4 filesgrow
e712bd6Jan 28

This commit **refactors** the **unused suppression removal logic** within the `pyrefly` tool to enhance code sharing and prepare for future integrations. The `remove_unused_ignores` function in `pyrefly/lib/error/suppress.rs` has been significantly rewritten to accept a list of unused errors directly, streamlining its internal identification and removal process. This **refactoring** also updates the `check` command in `pyrefly/lib/commands/check.rs` to reflect these changes, removing an 'all' option and adjusting the call to the refactored function. The primary goal is to enable the system to eventually process JSON blobs of errors for silencing, which is crucial for an upcoming `arc pyre` integration.

2 filesmaint
9d2d87aJan 28

This commit **fixes a critical bug** in the `pyrefly` library's **error suppression mechanism** by preventing it from suppressing `UnusedIgnore` errors. The `is_ignored` function in `pyrefly/lib/error/error.rs` now includes a check to avoid suppressing these specific errors, which previously could lead to an infinite loop within the system. Concurrently, the `from_error` function in `pyrefly/lib/error/suppress.rs` is modified to explicitly return `None` when encountering an `UnusedIgnore` error, ensuring it is never suppressed. This change guarantees the **stability and correctness of the error reporting system** by ensuring `UnusedIgnore` errors are always visible and not hidden by the suppression logic itself.

2 fileswaste
4c95fadJan 26

This commit introduces a **new feature** to the **`pyrefly` tool's `suppress` command**, enabling it to consume error data directly from a JSON file. A new `--json` argument is added to the `suppress` command, allowing users to specify a JSON file containing errors, thereby bypassing the need to run a full type check. To facilitate this, the `SuppressableError` struct within `pyrefly/lib/error/suppress.rs` has been updated to derive `Deserialize`, making it compatible with JSON input. This enhancement provides a more flexible and potentially faster method for error suppression, particularly useful for integrating with external error reporting or pre-analyzed error lists.

2 filesgrow
cb6768dJan 23

This commit introduces a **new `SuppressableError` abstraction** to unify error handling within the **`pyrefly` error suppression system**. It **refactors** the core `pyrefly/lib/error/suppress.rs` module, adapting functions like `dedup_errors` and `suppress_errors` to operate on this common error representation. Both the `pyrefly check` command (`pyrefly/lib/commands/check.rs`) and the `pyrefly suppress` command (`pyrefly/lib/commands/suppress.rs`) are updated to convert their errors into `SuppressableError` objects. This **refactoring** enables **reuse of existing suppression logic** across different error types, enhancing consistency and maintainability.

3 filesmaint
2bdd0a1Jan 23

This commit **implements the core logic** for the new **`pyrefly suppress` command**, enabling it to **run checks and automatically apply suppressions** to identified errors. This **new feature** introduces a critical capability within the **`pyrefly` tool's command-line interface**, specifically affecting the `pyrefly/lib/commands/suppress.rs` module. By allowing the command to resolve files, execute checks, and then apply suppressions, it significantly streamlines the process of managing code quality issues. This enhancement provides users with a powerful mechanism to programmatically handle diagnostics, improving developer workflow and code maintenance.

1 filesgrow

Work Patterns

Beta

Commit activity distribution by hour and day of week. Shows when this developer is most active.

Collaboration

Beta

Developers who frequently work on the same files and symbols. Higher score means stronger code collaboration.

NavigaraNavigara
OrganizationsDistributionCompareResearch