Developer
Éamonn McManus
emcmanus@google.com
Performance
YoY:+225%Key patterns and highlights from this developer's activity.
Breakdown of growth, maintenance, and fixes effort over time.
Bugs introduced vs. fixed over time.
No bugs introduced or fixed in this period.
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 |
|---|---|---|---|---|
| 3550b98 | This commit **updates the documentation** within the **`LongMath`** class by adding a crucial comment to the `lessThanBranchFree` method. The new comment explains the use of double negation (`~~`) to ensure **GWT compatibility** for this branch-free comparison. This **maintenance** task improves code clarity, helping developers understand the specific implementation detail and its rationale for cross-platform compilation. | Mar 9 | 2 | maint |
| 07ad9fe | This commit **fixes a potential hash collision issue** within the **Guava library's `CaseFormat` utility**. It **improves the `hashCode` implementation** for objects returned by the `CaseFormat.converterTo` method, which previously used an XOR-based calculation. The old approach could lead to identical hash codes for `A.converterTo(B)` and `B.converterTo(A)`, and zero for `A.converterTo(A)`. This **maintenance improvement** ensures better distribution and uniqueness of hash codes, preventing unexpected behavior or performance degradation when these converter objects are used in hash-based collections. | Dec 3 | 2 | waste |
| c91bd2a | This commit **refactors** the `toString()` implementations within the **`com.google.common.base.CharMatcher`** class, specifically for its `And` and `Or` nested types. Previously, these methods produced output that incorrectly suggested static method calls; they now accurately reflect their instance-based composition, consistent with `CharMatcher.negate()`. This **maintenance** change improves the clarity and consistency of debugging information without altering functional behavior. Corresponding **unit tests** in `CharMatcherTest.java` have been updated to assert the new `toString()` formats and utilize `Truth.assertThat`. | Nov 7 | 4 | maint |
| 201c950 | This commit performs a **refactoring** within the **`com.google.common.net.MediaType`** class, affecting both the core Guava and Android Guava implementations. It renames a local variable from `builder` to `updatedParameters` inside the `withParameters` method to enhance **code clarity and readability**. This change is purely an internal code improvement, ensuring **no functional impact** or alteration of the public API for users of the `MediaType` class. | Oct 2 | 2 | maint |
| 087f2c4 | This commit **fixes** several issues related to **exception handling** within the **`com.google.common.cache`** module, specifically for methods like `Cache.asMap().computeIfAbsent`. It refines the `LocalCache` implementation by **moving the evaluation of the compute function to occur before any potential entry creation**, ensuring that if an exception is thrown, no incomplete or erroneous cache entry is ever created. Additionally, the commit **removes the unnecessary storage of exceptions** within `ComputingValueReference`, as these stored exceptions were not utilized. This change provides more robust and predictable behavior for cache users when compute functions encounter errors. | Sep 11 | 2 | waste |
| 148cea0 | This commit **fixes a potential `ArrayStoreException`** within the **Guava `Strings.lenientFormat` method**. Previously, `lenientFormat` could attempt to assign `String` values back into its varargs array argument, which is problematic if the array was explicitly passed and its component type was incompatible (e.g., `Object[]` of `Integer`s). The **bug fix** modifies `lenientFormat` to prevent this assignment, instead applying `lenientToString` directly when appending arguments. This ensures **more robust and predictable behavior** for all callers, especially when passing explicitly typed arrays, and is verified by new test cases. | Aug 27 | 4 | waste |
| a6e9317 | This commit introduces a **readability improvement** within the **`UnsignedLongs` utility class** in the **Guava primitives library**. It **refactors** the initialization of the internal `overflow` `BigInteger` constant, which represents 2^64. The change replaces a hexadecimal string literal `new BigInteger("10000000000000000", 16)` with the more semantically clear `BigInteger.ONE.shiftLeft(64)`. This internal **maintenance** update enhances code clarity by explicitly showing the constant's value, without altering any runtime behavior or external API. | Jun 16 | 2 | maint |
| f780e2e | This commit **updates the Javadoc documentation** for the `checkedCast` method within the **`com.google.common.primitives.Ints`** utility class. The updated documentation clarifies that `Ints.checkedCast` is functionally equivalent to `Math.toIntExact`, with the primary difference being the type of exception thrown on overflow. This **maintenance** change improves developer understanding of the method's behavior and its relationship to standard library functions. It also notes that a **future deprecation** of `Ints.checkedCast` is being considered due to this overlap, though not yet implemented, affecting both the core Guava and Android versions of the `Ints` class. | Jun 2 | 2 | maint |
| 69cad18 | This commit **refactors** the `IntMath.mod` and `LongMath.mod` methods within the **`com.google.common.math` package** to internally use `Math.floorMod`, ensuring consistent "floor" modulo behavior. It also **enhances the documentation** for `IntMath.divide` and `LongMath.divide`, clarifying their behavior for `DOWN` and `FLOOR` rounding modes by providing equivalent standard operations. New tests have been added to `IntMathTest` and `LongMathTest` to verify these documented equivalences. This work improves the **robustness and clarity** of Guava's mathematical utilities, particularly concerning integer division and modulo operations. | May 14 | 8 | maint |
| 2aaa454 | This commit **updates the GitHub Actions versions** within the **Scorecard workflow** defined in `.github/workflows/scorecard.yml`. It specifically upgrades the `upload-artifact` and `codeql-action/upload-sarif` actions to their latest compatible versions. This is a **maintenance patch**, manually applying a Dependabot suggestion, to ensure the continuous integration pipeline remains secure and functional. The update prevents potential issues with outdated action versions, thereby keeping the project's security scanning infrastructure current and reliable. | Mar 24 | 1 | maint |
| d0de930 | This commit **refactors** the **test suite** for the `CaseFormat` utility by converting its assertions to use the **Truth assertion library**. Specifically, the `CaseFormatTest.java` files in both the `android/guava-tests` and `guava-tests` modules have been updated. This **maintenance** effort improves the **readability and expressiveness** of the tests, making them easier to understand and maintain. The change has no impact on the runtime behavior or functionality of the `CaseFormat` utility itself, only on its **testing infrastructure**. | Mar 14 | 2 | maint |
This commit **updates the documentation** within the **`LongMath`** class by adding a crucial comment to the `lessThanBranchFree` method. The new comment explains the use of double negation (`~~`) to ensure **GWT compatibility** for this branch-free comparison. This **maintenance** task improves code clarity, helping developers understand the specific implementation detail and its rationale for cross-platform compilation.
This commit **fixes a potential hash collision issue** within the **Guava library's `CaseFormat` utility**. It **improves the `hashCode` implementation** for objects returned by the `CaseFormat.converterTo` method, which previously used an XOR-based calculation. The old approach could lead to identical hash codes for `A.converterTo(B)` and `B.converterTo(A)`, and zero for `A.converterTo(A)`. This **maintenance improvement** ensures better distribution and uniqueness of hash codes, preventing unexpected behavior or performance degradation when these converter objects are used in hash-based collections.
This commit **refactors** the `toString()` implementations within the **`com.google.common.base.CharMatcher`** class, specifically for its `And` and `Or` nested types. Previously, these methods produced output that incorrectly suggested static method calls; they now accurately reflect their instance-based composition, consistent with `CharMatcher.negate()`. This **maintenance** change improves the clarity and consistency of debugging information without altering functional behavior. Corresponding **unit tests** in `CharMatcherTest.java` have been updated to assert the new `toString()` formats and utilize `Truth.assertThat`.
This commit performs a **refactoring** within the **`com.google.common.net.MediaType`** class, affecting both the core Guava and Android Guava implementations. It renames a local variable from `builder` to `updatedParameters` inside the `withParameters` method to enhance **code clarity and readability**. This change is purely an internal code improvement, ensuring **no functional impact** or alteration of the public API for users of the `MediaType` class.
This commit **fixes** several issues related to **exception handling** within the **`com.google.common.cache`** module, specifically for methods like `Cache.asMap().computeIfAbsent`. It refines the `LocalCache` implementation by **moving the evaluation of the compute function to occur before any potential entry creation**, ensuring that if an exception is thrown, no incomplete or erroneous cache entry is ever created. Additionally, the commit **removes the unnecessary storage of exceptions** within `ComputingValueReference`, as these stored exceptions were not utilized. This change provides more robust and predictable behavior for cache users when compute functions encounter errors.
This commit **fixes a potential `ArrayStoreException`** within the **Guava `Strings.lenientFormat` method**. Previously, `lenientFormat` could attempt to assign `String` values back into its varargs array argument, which is problematic if the array was explicitly passed and its component type was incompatible (e.g., `Object[]` of `Integer`s). The **bug fix** modifies `lenientFormat` to prevent this assignment, instead applying `lenientToString` directly when appending arguments. This ensures **more robust and predictable behavior** for all callers, especially when passing explicitly typed arrays, and is verified by new test cases.
This commit introduces a **readability improvement** within the **`UnsignedLongs` utility class** in the **Guava primitives library**. It **refactors** the initialization of the internal `overflow` `BigInteger` constant, which represents 2^64. The change replaces a hexadecimal string literal `new BigInteger("10000000000000000", 16)` with the more semantically clear `BigInteger.ONE.shiftLeft(64)`. This internal **maintenance** update enhances code clarity by explicitly showing the constant's value, without altering any runtime behavior or external API.
This commit **updates the Javadoc documentation** for the `checkedCast` method within the **`com.google.common.primitives.Ints`** utility class. The updated documentation clarifies that `Ints.checkedCast` is functionally equivalent to `Math.toIntExact`, with the primary difference being the type of exception thrown on overflow. This **maintenance** change improves developer understanding of the method's behavior and its relationship to standard library functions. It also notes that a **future deprecation** of `Ints.checkedCast` is being considered due to this overlap, though not yet implemented, affecting both the core Guava and Android versions of the `Ints` class.
This commit **refactors** the `IntMath.mod` and `LongMath.mod` methods within the **`com.google.common.math` package** to internally use `Math.floorMod`, ensuring consistent "floor" modulo behavior. It also **enhances the documentation** for `IntMath.divide` and `LongMath.divide`, clarifying their behavior for `DOWN` and `FLOOR` rounding modes by providing equivalent standard operations. New tests have been added to `IntMathTest` and `LongMathTest` to verify these documented equivalences. This work improves the **robustness and clarity** of Guava's mathematical utilities, particularly concerning integer division and modulo operations.
This commit **updates the GitHub Actions versions** within the **Scorecard workflow** defined in `.github/workflows/scorecard.yml`. It specifically upgrades the `upload-artifact` and `codeql-action/upload-sarif` actions to their latest compatible versions. This is a **maintenance patch**, manually applying a Dependabot suggestion, to ensure the continuous integration pipeline remains secure and functional. The update prevents potential issues with outdated action versions, thereby keeping the project's security scanning infrastructure current and reliable.
This commit **refactors** the **test suite** for the `CaseFormat` utility by converting its assertions to use the **Truth assertion library**. Specifically, the `CaseFormatTest.java` files in both the `android/guava-tests` and `guava-tests` modules have been updated. This **maintenance** effort improves the **readability and expressiveness** of the tests, making them easier to understand and maintain. The change has no impact on the runtime behavior or functionality of the `CaseFormat` utility itself, only on its **testing infrastructure**.
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.