Overview
File Change Frequency Overall
  • There are 37 files with 4,635 lines of code.
    • 0 files changed more than 100 times (0 lines of code)
    • 0 files changed 51-100 times (0 lines of code)
    • 7 files changed 21-50 times (2,089 lines of code)
    • 15 files changed 6-20 times (1,949 lines of code)
    • 15 files changed 1-5 times (597 lines of code)
0% | 0% | 45% | 42% | 12%
Legend:
101+
51-100
21-50
6-20
1-5

explore: grouped by folders | grouped by update frequency | data
Contributors Count Frequency Overall
  • There are 37 files with 4,635 lines of code.
    • 0 files changed by more than 25 contributors (0 lines of code)
    • 1 file changed by 11-25 contributors (28 lines of code)
    • 5 files changed by 6-10 contributors (889 lines of code)
    • 23 files changed by 2-5 contributors (3,437 lines of code)
    • 8 files changed by 1 contributor (281 lines of code)
0% | <1% | 19% | 74% | 6%
Legend:
26+
11-25
6-10
2-5
1

explore: grouped by folders | grouped by contributors count | data
File Change Frequency per File Extension
kt, txt, kts, yml, gitignore, py, md, properties, yaml, toml, bat, sh, json, swift
File Change Frequency per Extension
The number of recorded file updates
101+
51-100
21-50
6-20
1-5
kt0% | 0% | 43% | 45% | 10%
kts0% | 0% | 85% | 14% | 0%
toml0% | 0% | 100% | 0% | 0%
swift0% | 0% | 100% | 0% | 0%
py0% | 0% | 0% | 0% | 100%
yaml0% | 0% | 0% | 0% | 100%
File Change Frequency per Logical Decomposition
primary
primary (file change frequency)
The number of recorded file updates
101+
51-100
21-50
6-20
1-5
library0% | 0% | 46% | 43% | 10%
gradle0% | 0% | 100% | 0% | 0%
ROOT0% | 0% | 30% | 69% | 0%
density-data0% | 0% | 0% | 0% | 100%
terminology-resources0% | 0% | 0% | 0% | 100%
.github0% | 0% | 0% | 0% | 100%
Most Frequently Changed Files (Top 37)

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
16 - 2025-09-02 2026-08-27 50 7 +231 / -211 alex.dufournet 178160602+shamoon-guardian
28 - 2023-07-11 2026-09-16 49 11 +180 / -139 konstantin.tskhovrebov 178160602+shamoon-guardian
RenderTemplateTest.kt
in library/src/commonTest/kotlin/com/gu/recipe
629 - 2025-11-13 2026-07-09 31 6 +2093 / -555 alex.dufournet shamoon.ahmed
208 - 2023-07-11 2026-08-20 27 6 +514 / -153 konstantin.tskhovrebov fredex42
RenderRecipeTest.kt
in library/src/commonTest/kotlin/com/gu/recipe
958 2 2026-06-25 2026-08-27 23 4 +3334 / -192 divya.bhatt 178160602+shamoon-guardian
UnitConversions.kt
in library/src/commonMain/kotlin/com/gu/recipe/unit
119 1 2026-01-12 2026-07-09 21 5 +691 / -366 alex.dufournet shamoon.ahmed
TerminologyTable.kt
in library/src/commonMain/kotlin/com/gu/recipe/terminology
131 2 2026-05-29 2026-08-27 21 4 +842 / -292 divya.bhatt 178160602+shamoon-guardian
UnitConversionTest.kt
in library/src/commonTest/kotlin/com/gu/recipe/unit
197 - 2025-12-09 2026-07-09 20 4 +849 / -366 alex.dufournet shamoon.ahmed
RenderRecipe.kt
in library/src/commonMain/kotlin/com/gu/recipe
292 4 2026-06-25 2026-08-11 18 3 +1294 / -220 divya.bhatt mohammad.haque
20 - 2023-07-11 2026-09-16 17 7 +84 / -84 konstantin.tskhovrebov 178160602+shamoon-guardian
16 - 2023-07-11 2026-09-16 16 6 +33 / -29 konstantin.tskhovrebov 178160602+shamoon-guardian
DataLoader.kt
in library/src/commonMain/kotlin/com/gu/recipe/loader
54 1 2026-06-24 2026-09-09 11 3 +218 / -27 divya.bhatt mohammad.haque
DataLoaderTest.kt
in library/src/commonTest/kotlin/com/gu/recipe/loader
131 1 2026-06-24 2026-09-09 11 3 +581 / -79 divya.bhatt mohammad.haque
MeasurementUnit.kt
in library/src/commonMain/kotlin/com/gu/recipe/unit
289 1 2026-01-22 2026-07-09 11 5 +687 / -19 fredex42 shamoon.ahmed
Parser.kt
in library/src/commonMain/kotlin/com/gu/recipe/template
41 1 2025-10-07 2025-11-20 10 1 +124 / -20 alex.dufournet alex.dufournet
TemplateParserTest.kt
in library/src/commonTest/kotlin/com/gu/recipe/template
58 - 2025-10-07 2025-11-20 10 1 +166 / -36 alex.dufournet alex.dufournet
TemplateElement.kt
in library/src/commonMain/kotlin/com/gu/recipe/template
32 - 2025-10-07 2025-12-16 8 1 +80 / -6 alex.dufournet alex.dufournet
CookTimeUtils.kt
in library/src/commonMain/kotlin/com/gu/recipe
185 5 2026-02-23 2026-03-13 8 2 +915 / -251 mohammad.haque daniel.okoronkwo
CookTimeUtilsTest.kt
in library/src/commonTest/kotlin/com/gu/recipe
437 - 2026-02-23 2026-03-13 8 2 +1362 / -276 mohammad.haque daniel.okoronkwo
FormatUtils.kt
in library/src/commonMain/kotlin/com/gu/recipe
36 2 2025-12-09 2026-03-10 6 3 +198 / -82 alex.dufournet fredex42
FormatUtilsTest.kt
in library/src/commonTest/kotlin/com/gu/recipe
60 - 2025-12-09 2026-03-10 6 3 +153 / -8 alex.dufournet fredex42
TerminologyTableTest.kt
in library/src/commonTest/kotlin/com/gu/recipe/terminology
101 - 2026-07-22 2026-08-11 6 3 +336 / -24 mohammad.haque mohammad.haque
AndroidDataLoaderBridge.kt
in library/src/androidMain/kotlin/com/gu/recipe/loader
116 1 2026-06-25 2026-09-09 5 3 +393 / -2 divya.bhatt mohammad.haque
Amount.kt
in library/src/commonMain/kotlin/com/gu/recipe
8 - 2025-12-09 2026-01-22 4 2 +26 / -6 alex.dufournet alex.dufournet
DensityTableTest.kt
in library/src/commonTest/kotlin/com/gu/recipe/density
14 - 2026-01-27 2026-02-10 4 1 +68 / -34 fredex42 fredex42
DensityTable.kt
in library/src/commonMain/kotlin/com/gu/recipe/density
56 6 2026-01-26 2026-02-10 4 1 +282 / -142 fredex42 fredex42
RenderRecipeJsContract.kt
in library/src/jsMain/kotlin/com/gu/recipe/js
59 4 2026-06-25 2026-07-09 4 2 +226 / -4 divya.bhatt shamoon.ahmed
DataLoaderBridge.kt
in library/src/commonMain/kotlin/com/gu/recipe/loader
4 - 2026-06-24 2026-07-09 3 2 +15 / -0 divya.bhatt shamoon.ahmed
DataLoadResult.kt
in library/src/commonMain/kotlin/com/gu/recipe/loader
5 - 2026-06-24 2026-07-09 3 2 +18 / -0 divya.bhatt shamoon.ahmed
DataCacheEntry.kt
in library/src/commonMain/kotlin/com/gu/recipe/loader
7 - 2026-06-24 2026-07-09 3 2 +30 / -0 divya.bhatt shamoon.ahmed
dependabot.yml
in .github
23 - 2026-02-18 2026-03-26 3 2 +50 / -0 fredex42 79363218+adi-gnm
JsDataLoaderBridge.kt
in library/src/jsMain/kotlin/com/gu/recipe/loader
33 1 2026-06-24 2026-07-09 3 2 +117 / -0 divya.bhatt shamoon.ahmed
process-terminology-csv.py
in terminology-resources
53 - 2026-05-29 2026-07-09 3 2 +219 / -0 divya.bhatt shamoon.ahmed
74 1 2026-01-26 2026-02-10 3 1 +385 / -193 fredex42 fredex42
IosDataLoaderBridge.kt
in library/src/iosMain/kotlin/com/gu/recipe/loader
139 1 2026-06-25 2026-07-09 3 2 +477 / -0 divya.bhatt shamoon.ahmed
CacheFreshness.kt
in library/src/commonMain/kotlin/com/gu/recipe/loader
2 - 2026-04-08 2026-04-14 2 1 +8 / -0 mohammad.haque mohammad.haque
ParsedTemplate.kt
in library/src/commonMain/kotlin/com/gu/recipe/template
4 - 2025-12-09 2025-12-12 2 1 +10 / -0 alex.dufournet alex.dufournet
Files With Most Churn (Top 37)
Based on the number of lines added and deleted across all commits.

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
RenderRecipeTest.kt
in library/src/commonTest/kotlin/com/gu/recipe
958 2 2026-06-25 2026-08-27 23 4 +3334 / -192 divya.bhatt 178160602+shamoon-guardian
RenderTemplateTest.kt
in library/src/commonTest/kotlin/com/gu/recipe
629 - 2025-11-13 2026-07-09 31 6 +2093 / -555 alex.dufournet shamoon.ahmed
CookTimeUtilsTest.kt
in library/src/commonTest/kotlin/com/gu/recipe
437 - 2026-02-23 2026-03-13 8 2 +1362 / -276 mohammad.haque daniel.okoronkwo
RenderRecipe.kt
in library/src/commonMain/kotlin/com/gu/recipe
292 4 2026-06-25 2026-08-11 18 3 +1294 / -220 divya.bhatt mohammad.haque
UnitConversionTest.kt
in library/src/commonTest/kotlin/com/gu/recipe/unit
197 - 2025-12-09 2026-07-09 20 4 +849 / -366 alex.dufournet shamoon.ahmed
CookTimeUtils.kt
in library/src/commonMain/kotlin/com/gu/recipe
185 5 2026-02-23 2026-03-13 8 2 +915 / -251 mohammad.haque daniel.okoronkwo
TerminologyTable.kt
in library/src/commonMain/kotlin/com/gu/recipe/terminology
131 2 2026-05-29 2026-08-27 21 4 +842 / -292 divya.bhatt 178160602+shamoon-guardian
UnitConversions.kt
in library/src/commonMain/kotlin/com/gu/recipe/unit
119 1 2026-01-12 2026-07-09 21 5 +691 / -366 alex.dufournet shamoon.ahmed
MeasurementUnit.kt
in library/src/commonMain/kotlin/com/gu/recipe/unit
289 1 2026-01-22 2026-07-09 11 5 +687 / -19 fredex42 shamoon.ahmed
208 - 2023-07-11 2026-08-20 27 6 +514 / -153 konstantin.tskhovrebov fredex42
DataLoaderTest.kt
in library/src/commonTest/kotlin/com/gu/recipe/loader
131 1 2026-06-24 2026-09-09 11 3 +581 / -79 divya.bhatt mohammad.haque
74 1 2026-01-26 2026-02-10 3 1 +385 / -193 fredex42 fredex42
IosDataLoaderBridge.kt
in library/src/iosMain/kotlin/com/gu/recipe/loader
139 1 2026-06-25 2026-07-09 3 2 +477 / -0 divya.bhatt shamoon.ahmed
16 - 2025-09-02 2026-08-27 50 7 +231 / -211 alex.dufournet 178160602+shamoon-guardian
DensityTable.kt
in library/src/commonMain/kotlin/com/gu/recipe/density
56 6 2026-01-26 2026-02-10 4 1 +282 / -142 fredex42 fredex42
AndroidDataLoaderBridge.kt
in library/src/androidMain/kotlin/com/gu/recipe/loader
116 1 2026-06-25 2026-09-09 5 3 +393 / -2 divya.bhatt mohammad.haque
TerminologyTableTest.kt
in library/src/commonTest/kotlin/com/gu/recipe/terminology
101 - 2026-07-22 2026-08-11 6 3 +336 / -24 mohammad.haque mohammad.haque
28 - 2023-07-11 2026-09-16 49 11 +180 / -139 konstantin.tskhovrebov 178160602+shamoon-guardian
FormatUtils.kt
in library/src/commonMain/kotlin/com/gu/recipe
36 2 2025-12-09 2026-03-10 6 3 +198 / -82 alex.dufournet fredex42
DataLoader.kt
in library/src/commonMain/kotlin/com/gu/recipe/loader
54 1 2026-06-24 2026-09-09 11 3 +218 / -27 divya.bhatt mohammad.haque
RenderRecipeJsContract.kt
in library/src/jsMain/kotlin/com/gu/recipe/js
59 4 2026-06-25 2026-07-09 4 2 +226 / -4 divya.bhatt shamoon.ahmed
process-terminology-csv.py
in terminology-resources
53 - 2026-05-29 2026-07-09 3 2 +219 / -0 divya.bhatt shamoon.ahmed
TemplateParserTest.kt
in library/src/commonTest/kotlin/com/gu/recipe/template
58 - 2025-10-07 2025-11-20 10 1 +166 / -36 alex.dufournet alex.dufournet
20 - 2023-07-11 2026-09-16 17 7 +84 / -84 konstantin.tskhovrebov 178160602+shamoon-guardian
FormatUtilsTest.kt
in library/src/commonTest/kotlin/com/gu/recipe
60 - 2025-12-09 2026-03-10 6 3 +153 / -8 alex.dufournet fredex42
Parser.kt
in library/src/commonMain/kotlin/com/gu/recipe/template
41 1 2025-10-07 2025-11-20 10 1 +124 / -20 alex.dufournet alex.dufournet
JsDataLoaderBridge.kt
in library/src/jsMain/kotlin/com/gu/recipe/loader
33 1 2026-06-24 2026-07-09 3 2 +117 / -0 divya.bhatt shamoon.ahmed
DensityTableTest.kt
in library/src/commonTest/kotlin/com/gu/recipe/density
14 - 2026-01-27 2026-02-10 4 1 +68 / -34 fredex42 fredex42
TemplateElement.kt
in library/src/commonMain/kotlin/com/gu/recipe/template
32 - 2025-10-07 2025-12-16 8 1 +80 / -6 alex.dufournet alex.dufournet
16 - 2023-07-11 2026-09-16 16 6 +33 / -29 konstantin.tskhovrebov 178160602+shamoon-guardian
dependabot.yml
in .github
23 - 2026-02-18 2026-03-26 3 2 +50 / -0 fredex42 79363218+adi-gnm
Amount.kt
in library/src/commonMain/kotlin/com/gu/recipe
8 - 2025-12-09 2026-01-22 4 2 +26 / -6 alex.dufournet alex.dufournet
DataCacheEntry.kt
in library/src/commonMain/kotlin/com/gu/recipe/loader
7 - 2026-06-24 2026-07-09 3 2 +30 / -0 divya.bhatt shamoon.ahmed
DataLoadResult.kt
in library/src/commonMain/kotlin/com/gu/recipe/loader
5 - 2026-06-24 2026-07-09 3 2 +18 / -0 divya.bhatt shamoon.ahmed
DataLoaderBridge.kt
in library/src/commonMain/kotlin/com/gu/recipe/loader
4 - 2026-06-24 2026-07-09 3 2 +15 / -0 divya.bhatt shamoon.ahmed
ParsedTemplate.kt
in library/src/commonMain/kotlin/com/gu/recipe/template
4 - 2025-12-09 2025-12-12 2 1 +10 / -0 alex.dufournet alex.dufournet
CacheFreshness.kt
in library/src/commonMain/kotlin/com/gu/recipe/loader
2 - 2026-04-08 2026-04-14 2 1 +8 / -0 mohammad.haque mohammad.haque
Files With Most Contributors (Top 37)
Based on the number of unique email addresses found in commits.

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
28 - 2023-07-11 2026-09-16 49 11 +180 / -139 konstantin.tskhovrebov 178160602+shamoon-guardian
16 - 2025-09-02 2026-08-27 50 7 +231 / -211 alex.dufournet 178160602+shamoon-guardian
20 - 2023-07-11 2026-09-16 17 7 +84 / -84 konstantin.tskhovrebov 178160602+shamoon-guardian
RenderTemplateTest.kt
in library/src/commonTest/kotlin/com/gu/recipe
629 - 2025-11-13 2026-07-09 31 6 +2093 / -555 alex.dufournet shamoon.ahmed
208 - 2023-07-11 2026-08-20 27 6 +514 / -153 konstantin.tskhovrebov fredex42
16 - 2023-07-11 2026-09-16 16 6 +33 / -29 konstantin.tskhovrebov 178160602+shamoon-guardian
UnitConversions.kt
in library/src/commonMain/kotlin/com/gu/recipe/unit
119 1 2026-01-12 2026-07-09 21 5 +691 / -366 alex.dufournet shamoon.ahmed
MeasurementUnit.kt
in library/src/commonMain/kotlin/com/gu/recipe/unit
289 1 2026-01-22 2026-07-09 11 5 +687 / -19 fredex42 shamoon.ahmed
RenderRecipeTest.kt
in library/src/commonTest/kotlin/com/gu/recipe
958 2 2026-06-25 2026-08-27 23 4 +3334 / -192 divya.bhatt 178160602+shamoon-guardian
TerminologyTable.kt
in library/src/commonMain/kotlin/com/gu/recipe/terminology
131 2 2026-05-29 2026-08-27 21 4 +842 / -292 divya.bhatt 178160602+shamoon-guardian
UnitConversionTest.kt
in library/src/commonTest/kotlin/com/gu/recipe/unit
197 - 2025-12-09 2026-07-09 20 4 +849 / -366 alex.dufournet shamoon.ahmed
RenderRecipe.kt
in library/src/commonMain/kotlin/com/gu/recipe
292 4 2026-06-25 2026-08-11 18 3 +1294 / -220 divya.bhatt mohammad.haque
DataLoader.kt
in library/src/commonMain/kotlin/com/gu/recipe/loader
54 1 2026-06-24 2026-09-09 11 3 +218 / -27 divya.bhatt mohammad.haque
DataLoaderTest.kt
in library/src/commonTest/kotlin/com/gu/recipe/loader
131 1 2026-06-24 2026-09-09 11 3 +581 / -79 divya.bhatt mohammad.haque
FormatUtils.kt
in library/src/commonMain/kotlin/com/gu/recipe
36 2 2025-12-09 2026-03-10 6 3 +198 / -82 alex.dufournet fredex42
FormatUtilsTest.kt
in library/src/commonTest/kotlin/com/gu/recipe
60 - 2025-12-09 2026-03-10 6 3 +153 / -8 alex.dufournet fredex42
TerminologyTableTest.kt
in library/src/commonTest/kotlin/com/gu/recipe/terminology
101 - 2026-07-22 2026-08-11 6 3 +336 / -24 mohammad.haque mohammad.haque
AndroidDataLoaderBridge.kt
in library/src/androidMain/kotlin/com/gu/recipe/loader
116 1 2026-06-25 2026-09-09 5 3 +393 / -2 divya.bhatt mohammad.haque
CookTimeUtils.kt
in library/src/commonMain/kotlin/com/gu/recipe
185 5 2026-02-23 2026-03-13 8 2 +915 / -251 mohammad.haque daniel.okoronkwo
CookTimeUtilsTest.kt
in library/src/commonTest/kotlin/com/gu/recipe
437 - 2026-02-23 2026-03-13 8 2 +1362 / -276 mohammad.haque daniel.okoronkwo
Amount.kt
in library/src/commonMain/kotlin/com/gu/recipe
8 - 2025-12-09 2026-01-22 4 2 +26 / -6 alex.dufournet alex.dufournet
RenderRecipeJsContract.kt
in library/src/jsMain/kotlin/com/gu/recipe/js
59 4 2026-06-25 2026-07-09 4 2 +226 / -4 divya.bhatt shamoon.ahmed
IosDataLoaderBridge.kt
in library/src/iosMain/kotlin/com/gu/recipe/loader
139 1 2026-06-25 2026-07-09 3 2 +477 / -0 divya.bhatt shamoon.ahmed
DataLoaderBridge.kt
in library/src/commonMain/kotlin/com/gu/recipe/loader
4 - 2026-06-24 2026-07-09 3 2 +15 / -0 divya.bhatt shamoon.ahmed
DataCacheEntry.kt
in library/src/commonMain/kotlin/com/gu/recipe/loader
7 - 2026-06-24 2026-07-09 3 2 +30 / -0 divya.bhatt shamoon.ahmed
DataLoadResult.kt
in library/src/commonMain/kotlin/com/gu/recipe/loader
5 - 2026-06-24 2026-07-09 3 2 +18 / -0 divya.bhatt shamoon.ahmed
JsDataLoaderBridge.kt
in library/src/jsMain/kotlin/com/gu/recipe/loader
33 1 2026-06-24 2026-07-09 3 2 +117 / -0 divya.bhatt shamoon.ahmed
dependabot.yml
in .github
23 - 2026-02-18 2026-03-26 3 2 +50 / -0 fredex42 79363218+adi-gnm
process-terminology-csv.py
in terminology-resources
53 - 2026-05-29 2026-07-09 3 2 +219 / -0 divya.bhatt shamoon.ahmed
Parser.kt
in library/src/commonMain/kotlin/com/gu/recipe/template
41 1 2025-10-07 2025-11-20 10 1 +124 / -20 alex.dufournet alex.dufournet
TemplateParserTest.kt
in library/src/commonTest/kotlin/com/gu/recipe/template
58 - 2025-10-07 2025-11-20 10 1 +166 / -36 alex.dufournet alex.dufournet
TemplateElement.kt
in library/src/commonMain/kotlin/com/gu/recipe/template
32 - 2025-10-07 2025-12-16 8 1 +80 / -6 alex.dufournet alex.dufournet
DensityTable.kt
in library/src/commonMain/kotlin/com/gu/recipe/density
56 6 2026-01-26 2026-02-10 4 1 +282 / -142 fredex42 fredex42
DensityTableTest.kt
in library/src/commonTest/kotlin/com/gu/recipe/density
14 - 2026-01-27 2026-02-10 4 1 +68 / -34 fredex42 fredex42
74 1 2026-01-26 2026-02-10 3 1 +385 / -193 fredex42 fredex42
ParsedTemplate.kt
in library/src/commonMain/kotlin/com/gu/recipe/template
4 - 2025-12-09 2025-12-12 2 1 +10 / -0 alex.dufournet alex.dufournet
CacheFreshness.kt
in library/src/commonMain/kotlin/com/gu/recipe/loader
2 - 2026-04-08 2026-04-14 2 1 +8 / -0 mohammad.haque mohammad.haque
Files With Least Contributors (Top 37)
Based on the number of unique email addresses found in commits.

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
74 1 2026-01-26 2026-02-10 3 1 +385 / -193 fredex42 fredex42
TemplateParserTest.kt
in library/src/commonTest/kotlin/com/gu/recipe/template
58 - 2025-10-07 2025-11-20 10 1 +166 / -36 alex.dufournet alex.dufournet
DensityTable.kt
in library/src/commonMain/kotlin/com/gu/recipe/density
56 6 2026-01-26 2026-02-10 4 1 +282 / -142 fredex42 fredex42
Parser.kt
in library/src/commonMain/kotlin/com/gu/recipe/template
41 1 2025-10-07 2025-11-20 10 1 +124 / -20 alex.dufournet alex.dufournet
TemplateElement.kt
in library/src/commonMain/kotlin/com/gu/recipe/template
32 - 2025-10-07 2025-12-16 8 1 +80 / -6 alex.dufournet alex.dufournet
DensityTableTest.kt
in library/src/commonTest/kotlin/com/gu/recipe/density
14 - 2026-01-27 2026-02-10 4 1 +68 / -34 fredex42 fredex42
ParsedTemplate.kt
in library/src/commonMain/kotlin/com/gu/recipe/template
4 - 2025-12-09 2025-12-12 2 1 +10 / -0 alex.dufournet alex.dufournet
CacheFreshness.kt
in library/src/commonMain/kotlin/com/gu/recipe/loader
2 - 2026-04-08 2026-04-14 2 1 +8 / -0 mohammad.haque mohammad.haque
CookTimeUtilsTest.kt
in library/src/commonTest/kotlin/com/gu/recipe
437 - 2026-02-23 2026-03-13 8 2 +1362 / -276 mohammad.haque daniel.okoronkwo
CookTimeUtils.kt
in library/src/commonMain/kotlin/com/gu/recipe
185 5 2026-02-23 2026-03-13 8 2 +915 / -251 mohammad.haque daniel.okoronkwo
IosDataLoaderBridge.kt
in library/src/iosMain/kotlin/com/gu/recipe/loader
139 1 2026-06-25 2026-07-09 3 2 +477 / -0 divya.bhatt shamoon.ahmed
RenderRecipeJsContract.kt
in library/src/jsMain/kotlin/com/gu/recipe/js
59 4 2026-06-25 2026-07-09 4 2 +226 / -4 divya.bhatt shamoon.ahmed
process-terminology-csv.py
in terminology-resources
53 - 2026-05-29 2026-07-09 3 2 +219 / -0 divya.bhatt shamoon.ahmed
JsDataLoaderBridge.kt
in library/src/jsMain/kotlin/com/gu/recipe/loader
33 1 2026-06-24 2026-07-09 3 2 +117 / -0 divya.bhatt shamoon.ahmed
dependabot.yml
in .github
23 - 2026-02-18 2026-03-26 3 2 +50 / -0 fredex42 79363218+adi-gnm
Amount.kt
in library/src/commonMain/kotlin/com/gu/recipe
8 - 2025-12-09 2026-01-22 4 2 +26 / -6 alex.dufournet alex.dufournet
DataCacheEntry.kt
in library/src/commonMain/kotlin/com/gu/recipe/loader
7 - 2026-06-24 2026-07-09 3 2 +30 / -0 divya.bhatt shamoon.ahmed
DataLoadResult.kt
in library/src/commonMain/kotlin/com/gu/recipe/loader
5 - 2026-06-24 2026-07-09 3 2 +18 / -0 divya.bhatt shamoon.ahmed
DataLoaderBridge.kt
in library/src/commonMain/kotlin/com/gu/recipe/loader
4 - 2026-06-24 2026-07-09 3 2 +15 / -0 divya.bhatt shamoon.ahmed
RenderRecipe.kt
in library/src/commonMain/kotlin/com/gu/recipe
292 4 2026-06-25 2026-08-11 18 3 +1294 / -220 divya.bhatt mohammad.haque
DataLoaderTest.kt
in library/src/commonTest/kotlin/com/gu/recipe/loader
131 1 2026-06-24 2026-09-09 11 3 +581 / -79 divya.bhatt mohammad.haque
AndroidDataLoaderBridge.kt
in library/src/androidMain/kotlin/com/gu/recipe/loader
116 1 2026-06-25 2026-09-09 5 3 +393 / -2 divya.bhatt mohammad.haque
TerminologyTableTest.kt
in library/src/commonTest/kotlin/com/gu/recipe/terminology
101 - 2026-07-22 2026-08-11 6 3 +336 / -24 mohammad.haque mohammad.haque
FormatUtilsTest.kt
in library/src/commonTest/kotlin/com/gu/recipe
60 - 2025-12-09 2026-03-10 6 3 +153 / -8 alex.dufournet fredex42
DataLoader.kt
in library/src/commonMain/kotlin/com/gu/recipe/loader
54 1 2026-06-24 2026-09-09 11 3 +218 / -27 divya.bhatt mohammad.haque
FormatUtils.kt
in library/src/commonMain/kotlin/com/gu/recipe
36 2 2025-12-09 2026-03-10 6 3 +198 / -82 alex.dufournet fredex42
RenderRecipeTest.kt
in library/src/commonTest/kotlin/com/gu/recipe
958 2 2026-06-25 2026-08-27 23 4 +3334 / -192 divya.bhatt 178160602+shamoon-guardian
UnitConversionTest.kt
in library/src/commonTest/kotlin/com/gu/recipe/unit
197 - 2025-12-09 2026-07-09 20 4 +849 / -366 alex.dufournet shamoon.ahmed
TerminologyTable.kt
in library/src/commonMain/kotlin/com/gu/recipe/terminology
131 2 2026-05-29 2026-08-27 21 4 +842 / -292 divya.bhatt 178160602+shamoon-guardian
MeasurementUnit.kt
in library/src/commonMain/kotlin/com/gu/recipe/unit
289 1 2026-01-22 2026-07-09 11 5 +687 / -19 fredex42 shamoon.ahmed
UnitConversions.kt
in library/src/commonMain/kotlin/com/gu/recipe/unit
119 1 2026-01-12 2026-07-09 21 5 +691 / -366 alex.dufournet shamoon.ahmed
RenderTemplateTest.kt
in library/src/commonTest/kotlin/com/gu/recipe
629 - 2025-11-13 2026-07-09 31 6 +2093 / -555 alex.dufournet shamoon.ahmed
208 - 2023-07-11 2026-08-20 27 6 +514 / -153 konstantin.tskhovrebov fredex42
16 - 2023-07-11 2026-09-16 16 6 +33 / -29 konstantin.tskhovrebov 178160602+shamoon-guardian
20 - 2023-07-11 2026-09-16 17 7 +84 / -84 konstantin.tskhovrebov 178160602+shamoon-guardian
16 - 2025-09-02 2026-08-27 50 7 +231 / -211 alex.dufournet 178160602+shamoon-guardian
28 - 2023-07-11 2026-09-16 49 11 +180 / -139 konstantin.tskhovrebov 178160602+shamoon-guardian
Correlations

File Size vs. Number of Changes: 37 points

build.gradle.kts x: 20 lines of code y: 17 # changes gradle/libs.versions.toml x: 28 lines of code y: 49 # changes settings.gradle.kts x: 16 lines of code y: 16 # changes library/src/androidMain/kotlin/com/gu/recipe/loader/AndroidDataLoaderBridge.kt x: 116 lines of code y: 5 # changes library/src/commonMain/kotlin/com/gu/recipe/loader/DataLoader.kt x: 54 lines of code y: 11 # changes library/src/commonTest/kotlin/com/gu/recipe/loader/DataLoaderTest.kt x: 131 lines of code y: 11 # changes Package.swift x: 16 lines of code y: 50 # changes library/src/commonMain/kotlin/com/gu/recipe/terminology/TerminologyTable.kt x: 131 lines of code y: 21 # changes library/src/commonTest/kotlin/com/gu/recipe/RenderRecipeTest.kt x: 958 lines of code y: 23 # changes library/build.gradle.kts x: 208 lines of code y: 27 # changes library/src/commonMain/kotlin/com/gu/recipe/RenderRecipe.kt x: 292 lines of code y: 18 # changes library/src/commonTest/kotlin/com/gu/recipe/terminology/TerminologyTableTest.kt x: 101 lines of code y: 6 # changes library/src/commonMain/kotlin/com/gu/recipe/loader/DataCacheEntry.kt x: 7 lines of code y: 3 # changes library/src/commonMain/kotlin/com/gu/recipe/loader/DataLoadResult.kt x: 5 lines of code y: 3 # changes library/src/commonMain/kotlin/com/gu/recipe/unit/MeasurementUnit.kt x: 289 lines of code y: 11 # changes library/src/commonMain/kotlin/com/gu/recipe/unit/UnitConversions.kt x: 119 lines of code y: 21 # changes library/src/commonTest/kotlin/com/gu/recipe/RenderTemplateTest.kt x: 629 lines of code y: 31 # changes library/src/commonTest/kotlin/com/gu/recipe/unit/UnitConversionTest.kt x: 197 lines of code y: 20 # changes library/src/iosMain/kotlin/com/gu/recipe/loader/IosDataLoaderBridge.kt x: 139 lines of code y: 3 # changes library/src/jsMain/kotlin/com/gu/recipe/js/RenderRecipeJsContract.kt x: 59 lines of code y: 4 # changes library/src/jsMain/kotlin/com/gu/recipe/loader/JsDataLoaderBridge.kt x: 33 lines of code y: 3 # changes terminology-resources/process-terminology-csv.py x: 53 lines of code y: 3 # changes library/src/commonMain/kotlin/com/gu/recipe/loader/CacheFreshness.kt x: 2 lines of code y: 2 # changes .github/dependabot.yml x: 23 lines of code y: 3 # changes library/src/commonMain/kotlin/com/gu/recipe/CookTimeUtils.kt x: 185 lines of code y: 8 # changes library/src/commonTest/kotlin/com/gu/recipe/CookTimeUtilsTest.kt x: 437 lines of code y: 8 # changes library/src/commonMain/kotlin/com/gu/recipe/FormatUtils.kt x: 36 lines of code y: 6 # changes library/src/commonTest/kotlin/com/gu/recipe/FormatUtilsTest.kt x: 60 lines of code y: 6 # changes density-data/process-densities-csv.py x: 74 lines of code y: 3 # changes library/src/commonMain/kotlin/com/gu/recipe/density/DensityTable.kt x: 56 lines of code y: 4 # changes library/src/commonTest/kotlin/com/gu/recipe/density/DensityTableTest.kt x: 14 lines of code y: 4 # changes library/src/commonMain/kotlin/com/gu/recipe/Amount.kt x: 8 lines of code y: 4 # changes library/src/commonMain/kotlin/com/gu/recipe/template/TemplateElement.kt x: 32 lines of code y: 8 # changes library/src/commonMain/kotlin/com/gu/recipe/template/ParsedTemplate.kt x: 4 lines of code y: 2 # changes library/src/commonMain/kotlin/com/gu/recipe/template/Parser.kt x: 41 lines of code y: 10 # changes library/src/commonTest/kotlin/com/gu/recipe/template/TemplateParserTest.kt x: 58 lines of code y: 10 # changes
50.0
# changes
  min: 2.0
  average: 11.81
  25th percentile: 3.0
  median: 8.0
  75th percentile: 17.5
  max: 50.0
0 958.0
lines of code
min: 2.0 | average: 125.27 | 25th percentile: 18.0 | median: 56.0 | 75th percentile: 135.0 | max: 958.0

Number of Contributors vs. Number of Changes: 37 points

build.gradle.kts x: 7 # contributors y: 17 # changes gradle/libs.versions.toml x: 11 # contributors y: 49 # changes settings.gradle.kts x: 6 # contributors y: 16 # changes library/src/androidMain/kotlin/com/gu/recipe/loader/AndroidDataLoaderBridge.kt x: 3 # contributors y: 5 # changes library/src/commonMain/kotlin/com/gu/recipe/loader/DataLoader.kt x: 3 # contributors y: 11 # changes Package.swift x: 7 # contributors y: 50 # changes library/src/commonMain/kotlin/com/gu/recipe/terminology/TerminologyTable.kt x: 4 # contributors y: 21 # changes library/src/commonTest/kotlin/com/gu/recipe/RenderRecipeTest.kt x: 4 # contributors y: 23 # changes library/build.gradle.kts x: 6 # contributors y: 27 # changes library/src/commonMain/kotlin/com/gu/recipe/RenderRecipe.kt x: 3 # contributors y: 18 # changes library/src/commonTest/kotlin/com/gu/recipe/terminology/TerminologyTableTest.kt x: 3 # contributors y: 6 # changes library/src/commonMain/kotlin/com/gu/recipe/loader/DataCacheEntry.kt x: 2 # contributors y: 3 # changes library/src/commonMain/kotlin/com/gu/recipe/unit/MeasurementUnit.kt x: 5 # contributors y: 11 # changes library/src/commonMain/kotlin/com/gu/recipe/unit/UnitConversions.kt x: 5 # contributors y: 21 # changes library/src/commonTest/kotlin/com/gu/recipe/RenderTemplateTest.kt x: 6 # contributors y: 31 # changes library/src/commonTest/kotlin/com/gu/recipe/unit/UnitConversionTest.kt x: 4 # contributors y: 20 # changes library/src/jsMain/kotlin/com/gu/recipe/js/RenderRecipeJsContract.kt x: 2 # contributors y: 4 # changes library/src/commonMain/kotlin/com/gu/recipe/loader/CacheFreshness.kt x: 1 # contributors y: 2 # changes library/src/commonMain/kotlin/com/gu/recipe/CookTimeUtils.kt x: 2 # contributors y: 8 # changes density-data/process-densities-csv.py x: 1 # contributors y: 3 # changes library/src/commonMain/kotlin/com/gu/recipe/density/DensityTable.kt x: 1 # contributors y: 4 # changes library/src/commonMain/kotlin/com/gu/recipe/template/TemplateElement.kt x: 1 # contributors y: 8 # changes library/src/commonMain/kotlin/com/gu/recipe/template/Parser.kt x: 1 # contributors y: 10 # changes
50.0
# changes
  min: 2.0
  average: 11.81
  25th percentile: 3.0
  median: 8.0
  75th percentile: 17.5
  max: 50.0
0 11.0
# contributors
min: 1.0 | average: 3.14 | 25th percentile: 2.0 | median: 2.0 | 75th percentile: 4.0 | max: 11.0

Number of Contributors vs. File Size: 37 points

build.gradle.kts x: 7 # contributors y: 20 lines of code gradle/libs.versions.toml x: 11 # contributors y: 28 lines of code settings.gradle.kts x: 6 # contributors y: 16 lines of code library/src/androidMain/kotlin/com/gu/recipe/loader/AndroidDataLoaderBridge.kt x: 3 # contributors y: 116 lines of code library/src/commonMain/kotlin/com/gu/recipe/loader/DataLoader.kt x: 3 # contributors y: 54 lines of code library/src/commonTest/kotlin/com/gu/recipe/loader/DataLoaderTest.kt x: 3 # contributors y: 131 lines of code Package.swift x: 7 # contributors y: 16 lines of code library/src/commonMain/kotlin/com/gu/recipe/terminology/TerminologyTable.kt x: 4 # contributors y: 131 lines of code library/src/commonTest/kotlin/com/gu/recipe/RenderRecipeTest.kt x: 4 # contributors y: 958 lines of code library/build.gradle.kts x: 6 # contributors y: 208 lines of code library/src/commonMain/kotlin/com/gu/recipe/RenderRecipe.kt x: 3 # contributors y: 292 lines of code library/src/commonTest/kotlin/com/gu/recipe/terminology/TerminologyTableTest.kt x: 3 # contributors y: 101 lines of code library/src/commonMain/kotlin/com/gu/recipe/loader/DataCacheEntry.kt x: 2 # contributors y: 7 lines of code library/src/commonMain/kotlin/com/gu/recipe/unit/MeasurementUnit.kt x: 5 # contributors y: 289 lines of code library/src/commonMain/kotlin/com/gu/recipe/unit/UnitConversions.kt x: 5 # contributors y: 119 lines of code library/src/commonTest/kotlin/com/gu/recipe/RenderTemplateTest.kt x: 6 # contributors y: 629 lines of code library/src/commonTest/kotlin/com/gu/recipe/unit/UnitConversionTest.kt x: 4 # contributors y: 197 lines of code library/src/iosMain/kotlin/com/gu/recipe/loader/IosDataLoaderBridge.kt x: 2 # contributors y: 139 lines of code library/src/jsMain/kotlin/com/gu/recipe/js/RenderRecipeJsContract.kt x: 2 # contributors y: 59 lines of code library/src/jsMain/kotlin/com/gu/recipe/loader/JsDataLoaderBridge.kt x: 2 # contributors y: 33 lines of code terminology-resources/process-terminology-csv.py x: 2 # contributors y: 53 lines of code library/src/commonMain/kotlin/com/gu/recipe/loader/CacheFreshness.kt x: 1 # contributors y: 2 lines of code .github/dependabot.yml x: 2 # contributors y: 23 lines of code library/src/commonMain/kotlin/com/gu/recipe/CookTimeUtils.kt x: 2 # contributors y: 185 lines of code library/src/commonTest/kotlin/com/gu/recipe/CookTimeUtilsTest.kt x: 2 # contributors y: 437 lines of code library/src/commonMain/kotlin/com/gu/recipe/FormatUtils.kt x: 3 # contributors y: 36 lines of code library/src/commonTest/kotlin/com/gu/recipe/FormatUtilsTest.kt x: 3 # contributors y: 60 lines of code density-data/process-densities-csv.py x: 1 # contributors y: 74 lines of code library/src/commonMain/kotlin/com/gu/recipe/density/DensityTable.kt x: 1 # contributors y: 56 lines of code library/src/commonTest/kotlin/com/gu/recipe/density/DensityTableTest.kt x: 1 # contributors y: 14 lines of code library/src/commonMain/kotlin/com/gu/recipe/Amount.kt x: 2 # contributors y: 8 lines of code library/src/commonMain/kotlin/com/gu/recipe/template/TemplateElement.kt x: 1 # contributors y: 32 lines of code library/src/commonMain/kotlin/com/gu/recipe/template/ParsedTemplate.kt x: 1 # contributors y: 4 lines of code library/src/commonMain/kotlin/com/gu/recipe/template/Parser.kt x: 1 # contributors y: 41 lines of code library/src/commonTest/kotlin/com/gu/recipe/template/TemplateParserTest.kt x: 1 # contributors y: 58 lines of code
958.0
lines of code
  min: 2.0
  average: 125.27
  25th percentile: 18.0
  median: 56.0
  75th percentile: 135.0
  max: 958.0
0 11.0
# contributors
min: 1.0 | average: 3.14 | 25th percentile: 2.0 | median: 2.0 | 75th percentile: 4.0 | max: 11.0

Number of Changes vs. Line Churn: 245 points

.github/workflows/build.yml x: 6 # changes y: 358 line churn .github/workflows/graphql-release.yml x: 7 # changes y: 884 line churn .github/workflows/schema-drift-detection.yml x: 3 # changes y: 320 line churn backend/Package.swift x: 4 # changes y: 100 line churn backend/README.md x: 4 # changes y: 248 line churn backend/api/api.txt x: 6 # changes y: 160 line churn backend/api/build.gradle.kts x: 8 # changes y: 1100 line churn backend/api/src/androidMain/kotlin/com/gu/recipe/backend/di/FeastAndroidApiModule.kt x: 4 # changes y: 128 line churn backend/api/src/androidUnitTest/kotlin/com/gu/recipe/backend/repository/GraphQlRepositoryImplRobolectricIntegrationTest.kt x: 4 # changes y: 200 line churn backend/api/src/commonMain/kotlin/com/gu/recipe/backend/repository/GraphQlRepositoryImpl.kt x: 6 # changes y: 176 line churn backend/graphql/.gitignore x: 4 # changes y: 4 line churn backend/graphql/api.txt x: 4 # changes y: 5295 line churn backend/graphql/build.gradle.kts x: 11 # changes y: 1556 line churn backend/graphql/src/androidUnitTest/kotlin/com/gu/recipe/backend/graphql/GraphQlRobolectricIntegrationTest.kt x: 6 # changes y: 654 line churn backend/graphql/src/commonMain/graphql/GetFrontsByRegion.graphql x: 6 # changes y: 288 line churn backend/graphql/src/commonMain/graphql/schema.graphqls x: 6 # changes y: 7460 line churn backend/graphql/src/commonMain/kotlin/com/gu/recipe/backend/graphql/config/GraphQlConfig.kt x: 4 # changes y: 52 line churn backend/graphql/src/commonMain/kotlin/com/gu/recipe/backend/graphql/di/GraphQlModule.kt x: 4 # changes y: 144 line churn backend/graphql/src/commonMain/kotlin/com/gu/recipe/backend/graphql/repository/ApolloRecipeGraphQlDataSource.kt x: 6 # changes y: 252 line churn backend/graphql/src/commonMain/kotlin/com/gu/recipe/backend/graphql/repository/RecipeGraphQlDataSource.kt x: 6 # changes y: 98 line churn backend/version.txt x: 9 # changes y: 16 line churn build.gradle.kts x: 17 # changes y: 168 line churn gradle/libs.versions.toml x: 49 # changes y: 319 line churn settings.gradle.kts x: 16 # changes y: 62 line churn library/src/androidMain/kotlin/com/gu/recipe/loader/AndroidDataLoaderBridge.kt x: 5 # changes y: 395 line churn library/src/commonMain/kotlin/com/gu/recipe/generated/TerminologyFixture.kt x: 12 # changes y: 4250 line churn library/src/commonMain/kotlin/com/gu/recipe/loader/DataLoader.kt x: 11 # changes y: 245 line churn library/src/commonTest/kotlin/com/gu/recipe/loader/DataLoaderTest.kt x: 11 # changes y: 660 line churn kotlin-js-store/yarn.lock x: 13 # changes y: 8754 line churn Package.swift x: 50 # changes y: 442 line churn library/src/commonMain/kotlin/com/gu/recipe/terminology/TerminologyTable.kt x: 21 # changes y: 1134 line churn library/src/commonTest/kotlin/com/gu/recipe/RenderRecipeTest.kt x: 23 # changes y: 3526 line churn version.txt x: 55 # changes y: 173 line churn library/build.gradle.kts x: 27 # changes y: 667 line churn core/README.md x: 5 # changes y: 489 line churn core/api/api.txt x: 6 # changes y: 207 line churn core/api/build.gradle.kts x: 17 # changes y: 1052 line churn core/api/src/androidMain/kotlin/com/gu/recipe/api/di/FeastAndroidApiModule.kt x: 8 # changes y: 214 line churn core/api/src/commonMain/kotlin/com/gu/recipe/api/di/FeastApiModule.kt x: 8 # changes y: 148 line churn core/api/src/commonMain/kotlin/com/gu/recipe/api/repository/GraphQLRepository.kt x: 6 # changes y: 133 line churn core/api/src/commonMain/kotlin/com/gu/recipe/api/repository/GraphQlRepositoryImpl.kt x: 5 # changes y: 100 line churn core/api/src/iosMain/kotlin/com/gu/recipe/api/FeastGraphQLiOS.kt x: 3 # changes y: 182 line churn core/api/src/iosTest/kotlin/com/gu/recipe/api/FeastGraphQLiOSTest.kt x: 3 # changes y: 92 line churn core/graphql/build.gradle.kts x: 18 # changes y: 1672 line churn core/graphql/src/androidUnitTest/kotlin/com/gu/recipe/core/graphql/GraphQlRobolectricIntegrationTest.kt x: 8 # changes y: 514 line churn core/graphql/src/commonMain/graphql/GetFrontsByRegion.graphql x: 5 # changes y: 288 line churn core/graphql/src/commonMain/graphql/schema.graphqls x: 4 # changes y: 1432 line churn core/graphql/src/commonMain/kotlin/com/gu/recipe/core/graphql/client/ApolloClientFactory.kt x: 8 # changes y: 126 line churn core/graphql/src/commonMain/kotlin/com/gu/recipe/core/graphql/client/FeastGraphQlClient.kt x: 4 # changes y: 212 line churn core/graphql/src/commonMain/kotlin/com/gu/recipe/core/graphql/repository/RecipeGraphQlDataSource.kt x: 7 # changes y: 62 line churn core/graphql/src/commonTest/kotlin/com/gu/recipe/core/graphql/GraphQlConfigTest.kt x: 8 # changes y: 320 line churn backend/api/src/androidMain/kotlin/com/gu/recipe/api/di/FeastAndroidApiModule.kt x: 1 # changes y: 64 line churn backend/api/src/androidUnitTest/kotlin/com/gu/recipe/api/repository/GraphQlRepositoryImplRobolectricIntegrationTest.kt x: 1 # changes y: 98 line churn library/api.txt x: 41 # changes y: 5796 line churn library/src/commonMain/kotlin/com/gu/recipe/RenderRecipe.kt x: 18 # changes y: 1514 line churn library/src/commonMain/kotlin/com/gu/recipe/generated/RecipeModels.kt x: 23 # changes y: 3406 line churn core/graphql/src/commonMain/kotlin/com/gu/recipe/core/graphql/GraphQlError.kt x: 2 # changes y: 36 line churn core/api/src/iosMain/kotlin/com/gu/recipe/api/FeastIos.kt x: 7 # changes y: 203 line churn core/graphql/src/androidMain/kotlin/com/gu/recipe/core/graphql/GraphQlAndroidHiltBridgeModule.kt x: 5 # changes y: 58 line churn core/graphql/src/androidMain/kotlin/com/gu/recipe/core/graphql/GraphQlAndroidModule.kt x: 7 # changes y: 157 line churn core/graphql/api.txt x: 2 # changes y: 1898 line churn core/graphql/src/commonMain/graphql/schema-snapshot.graphqls x: 2 # changes y: 706 line churn core/api/src/commonMain/kotlin/com/gu/recipe/api/model/FeastEnvironment.kt x: 2 # changes y: 26 line churn docs/graphql-networking-rollout-plan.md x: 4 # changes y: 1246 line churn core/graphql/src/iosMain/kotlin/com/gu/recipe/core/graphql/cache/PlatformNetworkModule.kt x: 3 # changes y: 28 line churn core/networking/src/commonMain/kotlin/com/gu/recipe/core/networking/BaseUrlProvider.kt x: 5 # changes y: 104 line churn core/networking/src/commonTest/kotlin/com/gu/recipe/core/networking/NetworkContractsTest.kt x: 2 # changes y: 174 line churn core/api/src/commonTest/kotlin/com/gu/recipe/api/repository/GraphQlRecipeRepositoryTest.kt x: 3 # changes y: 64 line churn .github/workflows/release.yml x: 19 # changes y: 430 line churn core/api/src/androidUnitTest/kotlin/com/gu/recipe/api/repository/GraphQlRecipeRepositoryRobolectricIntegrationTest.kt x: 2 # changes y: 102 line churn core/graphql/src/commonMain/kotlin/com/gu/recipe/core/graphql/model/RecipeGraphQlModels.kt x: 2 # changes y: 142 line churn library/src/androidMain/kotlin/com/gu/recipe/loader/AndroidDensityLoaderBridge.kt x: 7 # changes y: 768 line churn library/src/commonMain/kotlin/com/gu/recipe/ScaleRecipe.kt x: 68 # changes y: 3521 line churn library/src/commonMain/kotlin/com/gu/recipe/loader/DensityLoaderBridge.kt x: 6 # changes y: 32 line churn library/src/commonMain/kotlin/com/gu/recipe/unit/MeasurementUnit.kt x: 11 # changes y: 706 line churn library/src/commonMain/kotlin/com/gu/recipe/unit/UnitConversions.kt x: 21 # changes y: 1057 line churn library/src/commonTest/kotlin/com/gu/recipe/RenderTemplateTest.kt x: 31 # changes y: 2648 line churn library/src/commonTest/kotlin/com/gu/recipe/ScaleRecipeTest.kt x: 45 # changes y: 2718 line churn library/src/commonTest/kotlin/com/gu/recipe/loader/DensityLoaderTest.kt x: 6 # changes y: 675 line churn library/src/commonTest/kotlin/com/gu/recipe/unit/UnitConversionTest.kt x: 20 # changes y: 1215 line churn library/src/iosMain/kotlin/com/gu/recipe/loader/IosDataLoaderBridge.kt x: 3 # changes y: 477 line churn library/src/iosMain/kotlin/com/gu/recipe/loader/IosDensityLoaderBridge.kt x: 7 # changes y: 931 line churn library/src/jsMain/kotlin/com/gu/recipe/js/ScaleRecipeJsContract.kt x: 31 # changes y: 578 line churn library/src/jsMain/kotlin/com/gu/recipe/loader/JsDataLoaderBridge.kt x: 3 # changes y: 117 line churn library/src/jsTest/kotlin/com/gu/recipe/js/ScaleRecipeJsContractTest.kt x: 16 # changes y: 246 line churn terminology-resources/process-terminology-csv.py x: 3 # changes y: 219 line churn library/src/commonMain/kotlin/com/gu/recipe/terminology/TerminologyConverter.kt x: 3 # changes y: 262 line churn library/src/commonTest/kotlin/com/gu/recipe/loader/TerminologyLoaderTest.kt x: 2 # changes y: 288 line churn gradle/wrapper/gradle-wrapper.properties x: 10 # changes y: 31 line churn gradlew x: 7 # changes y: 125 line churn loader-plan.md x: 2 # changes y: 1034 line churn loader.md x: 2 # changes y: 646 line churn library/src/commonMain/kotlin/com/gu/recipe/generated/DensityFixture.kt x: 5 # changes y: 28 line churn library/src/commonMain/kotlin/com/gu/recipe/CookTimeUtils.kt x: 8 # changes y: 1166 line churn library/src/commonTest/kotlin/com/gu/recipe/CookTimeUtilsTest.kt x: 8 # changes y: 1638 line churn density-data/gdn-densities-v1.csv x: 3 # changes y: 660 line churn density-data/process-densities-csv.py x: 3 # changes y: 578 line churn library/src/commonMain/kotlin/com/gu/recipe/density/DensityTable.kt x: 4 # changes y: 424 line churn library/src/commonMain/resources/gdn-densities-v1.json x: 1 # changes y: 2 line churn library/src/commonMain/kotlin/com/gu/recipe/unit/Unit.kt x: 6 # changes y: 1138 line churn library/src/commonMain/kotlin/com/gu/recipe/template/TemplateElement.kt x: 8 # changes y: 86 line churn library/src/commonMain/kotlin/com/gu/recipe/Unit.kt x: 2 # changes y: 374 line churn library/src/commonMain/kotlin/com/gu/recipe/template/Parser.kt x: 10 # changes y: 144 line churn library/src/commonTest/kotlin/com/gu/recipe/template/TemplateParserTest.kt x: 10 # changes y: 202 line churn library/src/commonTest/kotlin/com/gu/recipe/ScaleTemplateTest.kt x: 8 # changes y: 1238 line churn README.md x: 15 # changes y: 1644 line churn library/src/commonMain/kotlin/ScaleRecipe.kt x: 2 # changes y: 270 line churn library/src/commonTest/kotlin/ScaleRecipeTest.kt x: 2 # changes y: 108 line churn convention-plugins/src/main/kotlin/module.publication.gradle.kts x: 5 # changes y: 192 line churn LICENSE x: 1 # changes y: 402 line churn
8754.0
line churn
  min: 2.0
  average: 416.66
  25th percentile: 30.0
  median: 98.0
  75th percentile: 271.0
  max: 8754.0
0 68.0
# changes
min: 1.0 | average: 6.29 | 25th percentile: 2.0 | median: 4.0 | 75th percentile: 6.0 | max: 68.0

Number of Contributors vs. Line Churn: 37 points

build.gradle.kts x: 7 # contributors y: 168 line churn gradle/libs.versions.toml x: 11 # contributors y: 319 line churn settings.gradle.kts x: 6 # contributors y: 62 line churn library/src/androidMain/kotlin/com/gu/recipe/loader/AndroidDataLoaderBridge.kt x: 3 # contributors y: 395 line churn library/src/commonMain/kotlin/com/gu/recipe/loader/DataLoader.kt x: 3 # contributors y: 245 line churn library/src/commonTest/kotlin/com/gu/recipe/loader/DataLoaderTest.kt x: 3 # contributors y: 660 line churn Package.swift x: 7 # contributors y: 442 line churn library/src/commonMain/kotlin/com/gu/recipe/terminology/TerminologyTable.kt x: 4 # contributors y: 1134 line churn library/src/commonTest/kotlin/com/gu/recipe/RenderRecipeTest.kt x: 4 # contributors y: 3526 line churn library/build.gradle.kts x: 6 # contributors y: 667 line churn library/src/commonMain/kotlin/com/gu/recipe/RenderRecipe.kt x: 3 # contributors y: 1514 line churn library/src/commonTest/kotlin/com/gu/recipe/terminology/TerminologyTableTest.kt x: 3 # contributors y: 360 line churn library/src/commonMain/kotlin/com/gu/recipe/loader/DataCacheEntry.kt x: 2 # contributors y: 30 line churn library/src/commonMain/kotlin/com/gu/recipe/loader/DataLoadResult.kt x: 2 # contributors y: 18 line churn library/src/commonMain/kotlin/com/gu/recipe/unit/MeasurementUnit.kt x: 5 # contributors y: 706 line churn library/src/commonMain/kotlin/com/gu/recipe/unit/UnitConversions.kt x: 5 # contributors y: 1057 line churn library/src/commonTest/kotlin/com/gu/recipe/RenderTemplateTest.kt x: 6 # contributors y: 2648 line churn library/src/commonTest/kotlin/com/gu/recipe/unit/UnitConversionTest.kt x: 4 # contributors y: 1215 line churn library/src/iosMain/kotlin/com/gu/recipe/loader/IosDataLoaderBridge.kt x: 2 # contributors y: 477 line churn library/src/jsMain/kotlin/com/gu/recipe/js/RenderRecipeJsContract.kt x: 2 # contributors y: 230 line churn library/src/jsMain/kotlin/com/gu/recipe/loader/JsDataLoaderBridge.kt x: 2 # contributors y: 117 line churn terminology-resources/process-terminology-csv.py x: 2 # contributors y: 219 line churn library/src/commonMain/kotlin/com/gu/recipe/loader/CacheFreshness.kt x: 1 # contributors y: 8 line churn .github/dependabot.yml x: 2 # contributors y: 50 line churn library/src/commonMain/kotlin/com/gu/recipe/CookTimeUtils.kt x: 2 # contributors y: 1166 line churn library/src/commonTest/kotlin/com/gu/recipe/CookTimeUtilsTest.kt x: 2 # contributors y: 1638 line churn library/src/commonMain/kotlin/com/gu/recipe/FormatUtils.kt x: 3 # contributors y: 280 line churn library/src/commonTest/kotlin/com/gu/recipe/FormatUtilsTest.kt x: 3 # contributors y: 161 line churn density-data/process-densities-csv.py x: 1 # contributors y: 578 line churn library/src/commonMain/kotlin/com/gu/recipe/density/DensityTable.kt x: 1 # contributors y: 424 line churn library/src/commonTest/kotlin/com/gu/recipe/density/DensityTableTest.kt x: 1 # contributors y: 102 line churn library/src/commonMain/kotlin/com/gu/recipe/template/TemplateElement.kt x: 1 # contributors y: 86 line churn library/src/commonMain/kotlin/com/gu/recipe/template/Parser.kt x: 1 # contributors y: 144 line churn library/src/commonTest/kotlin/com/gu/recipe/template/TemplateParserTest.kt x: 1 # contributors y: 202 line churn
3526.0
line churn
  min: 8.0
  average: 570.41
  25th percentile: 94.0
  median: 280.0
  75th percentile: 686.5
  max: 3526.0
0 11.0
# contributors
min: 1.0 | average: 3.14 | 25th percentile: 2.0 | median: 2.0 | 75th percentile: 4.0 | max: 11.0

File Size vs. Line Churn: 37 points

build.gradle.kts x: 20 lines of code y: 168 line churn gradle/libs.versions.toml x: 28 lines of code y: 319 line churn settings.gradle.kts x: 16 lines of code y: 62 line churn library/src/androidMain/kotlin/com/gu/recipe/loader/AndroidDataLoaderBridge.kt x: 116 lines of code y: 395 line churn library/src/commonMain/kotlin/com/gu/recipe/loader/DataLoader.kt x: 54 lines of code y: 245 line churn library/src/commonTest/kotlin/com/gu/recipe/loader/DataLoaderTest.kt x: 131 lines of code y: 660 line churn Package.swift x: 16 lines of code y: 442 line churn library/src/commonMain/kotlin/com/gu/recipe/terminology/TerminologyTable.kt x: 131 lines of code y: 1134 line churn library/src/commonTest/kotlin/com/gu/recipe/RenderRecipeTest.kt x: 958 lines of code y: 3526 line churn library/build.gradle.kts x: 208 lines of code y: 667 line churn library/src/commonMain/kotlin/com/gu/recipe/RenderRecipe.kt x: 292 lines of code y: 1514 line churn library/src/commonTest/kotlin/com/gu/recipe/terminology/TerminologyTableTest.kt x: 101 lines of code y: 360 line churn library/src/commonMain/kotlin/com/gu/recipe/loader/DataCacheEntry.kt x: 7 lines of code y: 30 line churn library/src/commonMain/kotlin/com/gu/recipe/loader/DataLoadResult.kt x: 5 lines of code y: 18 line churn library/src/commonMain/kotlin/com/gu/recipe/unit/MeasurementUnit.kt x: 289 lines of code y: 706 line churn library/src/commonMain/kotlin/com/gu/recipe/unit/UnitConversions.kt x: 119 lines of code y: 1057 line churn library/src/commonTest/kotlin/com/gu/recipe/RenderTemplateTest.kt x: 629 lines of code y: 2648 line churn library/src/commonTest/kotlin/com/gu/recipe/unit/UnitConversionTest.kt x: 197 lines of code y: 1215 line churn library/src/iosMain/kotlin/com/gu/recipe/loader/IosDataLoaderBridge.kt x: 139 lines of code y: 477 line churn library/src/jsMain/kotlin/com/gu/recipe/js/RenderRecipeJsContract.kt x: 59 lines of code y: 230 line churn library/src/jsMain/kotlin/com/gu/recipe/loader/JsDataLoaderBridge.kt x: 33 lines of code y: 117 line churn terminology-resources/process-terminology-csv.py x: 53 lines of code y: 219 line churn library/src/commonMain/kotlin/com/gu/recipe/loader/CacheFreshness.kt x: 2 lines of code y: 8 line churn .github/dependabot.yml x: 23 lines of code y: 50 line churn library/src/commonMain/kotlin/com/gu/recipe/CookTimeUtils.kt x: 185 lines of code y: 1166 line churn library/src/commonTest/kotlin/com/gu/recipe/CookTimeUtilsTest.kt x: 437 lines of code y: 1638 line churn library/src/commonMain/kotlin/com/gu/recipe/FormatUtils.kt x: 36 lines of code y: 280 line churn library/src/commonTest/kotlin/com/gu/recipe/FormatUtilsTest.kt x: 60 lines of code y: 161 line churn density-data/process-densities-csv.py x: 74 lines of code y: 578 line churn library/src/commonMain/kotlin/com/gu/recipe/density/DensityTable.kt x: 56 lines of code y: 424 line churn library/src/commonTest/kotlin/com/gu/recipe/density/DensityTableTest.kt x: 14 lines of code y: 102 line churn library/src/commonMain/kotlin/com/gu/recipe/template/TemplateElement.kt x: 32 lines of code y: 86 line churn library/src/commonMain/kotlin/com/gu/recipe/template/ParsedTemplate.kt x: 4 lines of code y: 10 line churn library/src/commonMain/kotlin/com/gu/recipe/template/Parser.kt x: 41 lines of code y: 144 line churn library/src/commonTest/kotlin/com/gu/recipe/template/TemplateParserTest.kt x: 58 lines of code y: 202 line churn
3526.0
line churn
  min: 8.0
  average: 570.41
  25th percentile: 94.0
  median: 280.0
  75th percentile: 686.5
  max: 3526.0
0 958.0
lines of code
min: 2.0 | average: 125.27 | 25th percentile: 18.0 | median: 56.0 | 75th percentile: 135.0 | max: 958.0