Overview
File Change Frequency Overall
  • There are 10 files with 226 lines of code.
    • 0 files changed more than 100 times (0 lines of code)
    • 0 files changed 51-100 times (0 lines of code)
    • 0 files changed 21-50 times (0 lines of code)
    • 4 files changed 6-20 times (166 lines of code)
    • 6 files changed 1-5 times (60 lines of code)
0% | 0% | 0% | 73% | 26%
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 10 files with 226 lines of code.
    • 0 files changed by more than 25 contributors (0 lines of code)
    • 0 files changed by 11-25 contributors (0 lines of code)
    • 0 files changed by 6-10 contributors (0 lines of code)
    • 5 files changed by 2-5 contributors (179 lines of code)
    • 5 files changed by 1 contributor (47 lines of code)
0% | 0% | 0% | 79% | 20%
Legend:
26+
11-25
6-10
2-5
1

explore: grouped by folders | grouped by contributors count | data
File Change Frequency per File Extension
scala, txt, sbt, yml, yaml, gitignore, md, properties
File Change Frequency per Extension
The number of recorded file updates
101+
51-100
21-50
6-20
1-5
scala0% | 0% | 0% | 73% | 26%
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
core0% | 0% | 0% | 77% | 22%
aws-s30% | 0% | 0% | 64% | 35%
Most Frequently Changed Files (Top 10)

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
S3ObjectFetching.scala
in aws-s3/aws-sdk-v2/src/main/scala/com/gu/etagcaching/aws/sdkv2/s3
43 2 2023-08-01 2025-10-08 9 2 +105 / -24 roberto.tyley 52038+rtyley
Loading.scala
in core/src/main/scala/com/gu/etagcaching
27 2 2023-08-01 2025-10-15 8 3 +160 / -64 roberto.tyley 52038+rtyley
Fetching.scala
in core/src/main/scala/com/gu/etagcaching/fetching
76 5 2023-08-01 2025-10-15 8 2 +202 / -52 roberto.tyley 52038+rtyley
ETagCache.scala
in core/src/main/scala/com/gu/etagcaching
20 - 2023-08-01 2025-10-08 7 2 +78 / -28 roberto.tyley 52038+rtyley
package.scala
in aws-s3/base/src/main/scala/com/gu/etagcaching/aws/s3
5 - 2024-11-08 2024-12-13 2 1 +46 / -0 52038+rtyley 52038+rtyley
ObjectId.scala
in aws-s3/base/src/main/scala/com/gu/etagcaching/aws/s3
5 - 2023-08-01 2023-08-07 2 1 +7 / -0 roberto.tyley roberto.tyley
MissingOrETagged.scala
in core/src/main/scala/com/gu/etagcaching/fetching
13 2 2024-07-09 2024-07-23 2 2 +38 / -0 roberto.tyley 52038+rtyley
package.scala
in core/src/main/scala/com/gu/etagcaching
6 - 2023-08-07 2023-08-07 1 1 +18 / -0 roberto.tyley roberto.tyley
Transformer.scala
in aws-s3/aws-sdk-v2/src/main/scala/com/gu/etagcaching/aws/sdkv2/s3/response
14 - 2023-08-01 2023-08-01 1 1 +31 / -0 roberto.tyley roberto.tyley
FreshnessPolicy.scala
in core/src/main/scala/com/gu/etagcaching
17 2 2023-08-01 2023-08-01 1 1 +47 / -0 roberto.tyley roberto.tyley
Files With Most Churn (Top 10)
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
Fetching.scala
in core/src/main/scala/com/gu/etagcaching/fetching
76 5 2023-08-01 2025-10-15 8 2 +202 / -52 roberto.tyley 52038+rtyley
Loading.scala
in core/src/main/scala/com/gu/etagcaching
27 2 2023-08-01 2025-10-15 8 3 +160 / -64 roberto.tyley 52038+rtyley
S3ObjectFetching.scala
in aws-s3/aws-sdk-v2/src/main/scala/com/gu/etagcaching/aws/sdkv2/s3
43 2 2023-08-01 2025-10-08 9 2 +105 / -24 roberto.tyley 52038+rtyley
ETagCache.scala
in core/src/main/scala/com/gu/etagcaching
20 - 2023-08-01 2025-10-08 7 2 +78 / -28 roberto.tyley 52038+rtyley
FreshnessPolicy.scala
in core/src/main/scala/com/gu/etagcaching
17 2 2023-08-01 2023-08-01 1 1 +47 / -0 roberto.tyley roberto.tyley
package.scala
in aws-s3/base/src/main/scala/com/gu/etagcaching/aws/s3
5 - 2024-11-08 2024-12-13 2 1 +46 / -0 52038+rtyley 52038+rtyley
MissingOrETagged.scala
in core/src/main/scala/com/gu/etagcaching/fetching
13 2 2024-07-09 2024-07-23 2 2 +38 / -0 roberto.tyley 52038+rtyley
Transformer.scala
in aws-s3/aws-sdk-v2/src/main/scala/com/gu/etagcaching/aws/sdkv2/s3/response
14 - 2023-08-01 2023-08-01 1 1 +31 / -0 roberto.tyley roberto.tyley
package.scala
in core/src/main/scala/com/gu/etagcaching
6 - 2023-08-07 2023-08-07 1 1 +18 / -0 roberto.tyley roberto.tyley
ObjectId.scala
in aws-s3/base/src/main/scala/com/gu/etagcaching/aws/s3
5 - 2023-08-01 2023-08-07 2 1 +7 / -0 roberto.tyley roberto.tyley
Files With Most Contributors (Top 10)
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
Loading.scala
in core/src/main/scala/com/gu/etagcaching
27 2 2023-08-01 2025-10-15 8 3 +160 / -64 roberto.tyley 52038+rtyley
S3ObjectFetching.scala
in aws-s3/aws-sdk-v2/src/main/scala/com/gu/etagcaching/aws/sdkv2/s3
43 2 2023-08-01 2025-10-08 9 2 +105 / -24 roberto.tyley 52038+rtyley
Fetching.scala
in core/src/main/scala/com/gu/etagcaching/fetching
76 5 2023-08-01 2025-10-15 8 2 +202 / -52 roberto.tyley 52038+rtyley
ETagCache.scala
in core/src/main/scala/com/gu/etagcaching
20 - 2023-08-01 2025-10-08 7 2 +78 / -28 roberto.tyley 52038+rtyley
MissingOrETagged.scala
in core/src/main/scala/com/gu/etagcaching/fetching
13 2 2024-07-09 2024-07-23 2 2 +38 / -0 roberto.tyley 52038+rtyley
ObjectId.scala
in aws-s3/base/src/main/scala/com/gu/etagcaching/aws/s3
5 - 2023-08-01 2023-08-07 2 1 +7 / -0 roberto.tyley roberto.tyley
package.scala
in aws-s3/base/src/main/scala/com/gu/etagcaching/aws/s3
5 - 2024-11-08 2024-12-13 2 1 +46 / -0 52038+rtyley 52038+rtyley
FreshnessPolicy.scala
in core/src/main/scala/com/gu/etagcaching
17 2 2023-08-01 2023-08-01 1 1 +47 / -0 roberto.tyley roberto.tyley
package.scala
in core/src/main/scala/com/gu/etagcaching
6 - 2023-08-07 2023-08-07 1 1 +18 / -0 roberto.tyley roberto.tyley
Transformer.scala
in aws-s3/aws-sdk-v2/src/main/scala/com/gu/etagcaching/aws/sdkv2/s3/response
14 - 2023-08-01 2023-08-01 1 1 +31 / -0 roberto.tyley roberto.tyley
Files With Least Contributors (Top 10)
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
FreshnessPolicy.scala
in core/src/main/scala/com/gu/etagcaching
17 2 2023-08-01 2023-08-01 1 1 +47 / -0 roberto.tyley roberto.tyley
Transformer.scala
in aws-s3/aws-sdk-v2/src/main/scala/com/gu/etagcaching/aws/sdkv2/s3/response
14 - 2023-08-01 2023-08-01 1 1 +31 / -0 roberto.tyley roberto.tyley
package.scala
in core/src/main/scala/com/gu/etagcaching
6 - 2023-08-07 2023-08-07 1 1 +18 / -0 roberto.tyley roberto.tyley
ObjectId.scala
in aws-s3/base/src/main/scala/com/gu/etagcaching/aws/s3
5 - 2023-08-01 2023-08-07 2 1 +7 / -0 roberto.tyley roberto.tyley
package.scala
in aws-s3/base/src/main/scala/com/gu/etagcaching/aws/s3
5 - 2024-11-08 2024-12-13 2 1 +46 / -0 52038+rtyley 52038+rtyley
Fetching.scala
in core/src/main/scala/com/gu/etagcaching/fetching
76 5 2023-08-01 2025-10-15 8 2 +202 / -52 roberto.tyley 52038+rtyley
S3ObjectFetching.scala
in aws-s3/aws-sdk-v2/src/main/scala/com/gu/etagcaching/aws/sdkv2/s3
43 2 2023-08-01 2025-10-08 9 2 +105 / -24 roberto.tyley 52038+rtyley
ETagCache.scala
in core/src/main/scala/com/gu/etagcaching
20 - 2023-08-01 2025-10-08 7 2 +78 / -28 roberto.tyley 52038+rtyley
MissingOrETagged.scala
in core/src/main/scala/com/gu/etagcaching/fetching
13 2 2024-07-09 2024-07-23 2 2 +38 / -0 roberto.tyley 52038+rtyley
Loading.scala
in core/src/main/scala/com/gu/etagcaching
27 2 2023-08-01 2025-10-15 8 3 +160 / -64 roberto.tyley 52038+rtyley
Correlations

File Size vs. Number of Changes: 10 points

core/src/main/scala/com/gu/etagcaching/Loading.scala x: 27 lines of code y: 8 # changes core/src/main/scala/com/gu/etagcaching/fetching/Fetching.scala x: 76 lines of code y: 8 # changes aws-s3/aws-sdk-v2/src/main/scala/com/gu/etagcaching/aws/sdkv2/s3/S3ObjectFetching.scala x: 43 lines of code y: 9 # changes core/src/main/scala/com/gu/etagcaching/ETagCache.scala x: 20 lines of code y: 7 # changes aws-s3/base/src/main/scala/com/gu/etagcaching/aws/s3/package.scala x: 5 lines of code y: 2 # changes core/src/main/scala/com/gu/etagcaching/fetching/MissingOrETagged.scala x: 13 lines of code y: 2 # changes core/src/main/scala/com/gu/etagcaching/package.scala x: 6 lines of code y: 1 # changes aws-s3/aws-sdk-v2/src/main/scala/com/gu/etagcaching/aws/sdkv2/s3/response/Transformer.scala x: 14 lines of code y: 1 # changes core/src/main/scala/com/gu/etagcaching/FreshnessPolicy.scala x: 17 lines of code y: 1 # changes
9.0
# changes
  min: 1.0
  average: 4.1
  25th percentile: 1.0
  median: 2.0
  75th percentile: 8.0
  max: 9.0
0 76.0
lines of code
min: 5.0 | average: 22.6 | 25th percentile: 5.75 | median: 15.5 | 75th percentile: 31.0 | max: 76.0

Number of Contributors vs. Number of Changes: 10 points

core/src/main/scala/com/gu/etagcaching/Loading.scala x: 3 # contributors y: 8 # changes core/src/main/scala/com/gu/etagcaching/fetching/Fetching.scala x: 2 # contributors y: 8 # changes aws-s3/aws-sdk-v2/src/main/scala/com/gu/etagcaching/aws/sdkv2/s3/S3ObjectFetching.scala x: 2 # contributors y: 9 # changes core/src/main/scala/com/gu/etagcaching/ETagCache.scala x: 2 # contributors y: 7 # changes aws-s3/base/src/main/scala/com/gu/etagcaching/aws/s3/package.scala x: 1 # contributors y: 2 # changes core/src/main/scala/com/gu/etagcaching/fetching/MissingOrETagged.scala x: 2 # contributors y: 2 # changes core/src/main/scala/com/gu/etagcaching/package.scala x: 1 # contributors y: 1 # changes
9.0
# changes
  min: 1.0
  average: 4.1
  25th percentile: 1.0
  median: 2.0
  75th percentile: 8.0
  max: 9.0
0 3.0
# contributors
min: 1.0 | average: 1.6 | 25th percentile: 1.0 | median: 1.5 | 75th percentile: 2.0 | max: 3.0

Number of Contributors vs. File Size: 10 points

core/src/main/scala/com/gu/etagcaching/Loading.scala x: 3 # contributors y: 27 lines of code core/src/main/scala/com/gu/etagcaching/fetching/Fetching.scala x: 2 # contributors y: 76 lines of code aws-s3/aws-sdk-v2/src/main/scala/com/gu/etagcaching/aws/sdkv2/s3/S3ObjectFetching.scala x: 2 # contributors y: 43 lines of code core/src/main/scala/com/gu/etagcaching/ETagCache.scala x: 2 # contributors y: 20 lines of code aws-s3/base/src/main/scala/com/gu/etagcaching/aws/s3/package.scala x: 1 # contributors y: 5 lines of code core/src/main/scala/com/gu/etagcaching/fetching/MissingOrETagged.scala x: 2 # contributors y: 13 lines of code core/src/main/scala/com/gu/etagcaching/package.scala x: 1 # contributors y: 6 lines of code aws-s3/aws-sdk-v2/src/main/scala/com/gu/etagcaching/aws/sdkv2/s3/response/Transformer.scala x: 1 # contributors y: 14 lines of code core/src/main/scala/com/gu/etagcaching/FreshnessPolicy.scala x: 1 # contributors y: 17 lines of code
76.0
lines of code
  min: 5.0
  average: 22.6
  25th percentile: 5.75
  median: 15.5
  75th percentile: 31.0
  max: 76.0
0 3.0
# contributors
min: 1.0 | average: 1.6 | 25th percentile: 1.0 | median: 1.5 | 75th percentile: 2.0 | max: 3.0

Number of Changes vs. Line Churn: 49 points

version.sbt x: 86 # changes y: 533 line churn build.sbt x: 117 # changes y: 515 line churn foo x: 5 # changes y: 9 line churn project/build.properties x: 60 # changes y: 133 line churn .github/workflows/sbt-dependency-graph.yaml x: 3 # changes y: 38 line churn aws-s3/aws-sdk-v2/src/test/scala/com/gu/etagcaching/aws/sdkv2/s3/S3ObjectFetchingTest.scala x: 13 # changes y: 311 line churn project/plugins.sbt x: 15 # changes y: 51 line churn .gitignore x: 3 # changes y: 30 line churn core/src/test/scala/com/gu/etagcaching/FreshnessPolicyTest.scala x: 10 # changes y: 273 line churn .github/workflows/check-labels.yaml x: 1 # changes y: 9 line churn core/src/main/scala/com/gu/etagcaching/Loading.scala x: 8 # changes y: 224 line churn core/src/main/scala/com/gu/etagcaching/fetching/Fetching.scala x: 8 # changes y: 254 line churn core/src/test/scala/com/gu/etagcaching/LoadingTest.scala x: 4 # changes y: 316 line churn core/src/test/scala/com/gu/etagcaching/TestFetching.scala x: 5 # changes y: 92 line churn core/src/test/scala/com/gu/etagcaching/testkit/CountingParser.scala x: 2 # changes y: 30 line churn core/src/test/scala/com/gu/etagcaching/testkit/TestFetching.scala x: 2 # changes y: 92 line churn aws-s3/aws-sdk-v2/src/main/scala/com/gu/etagcaching/aws/sdkv2/s3/S3ObjectFetching.scala x: 9 # changes y: 129 line churn core/src/main/scala/com/gu/etagcaching/ETagCache.scala x: 7 # changes y: 106 line churn .github/workflows/release.yml x: 22 # changes y: 194 line churn .github/workflows/snyk.yml x: 4 # changes y: 62 line churn .github/CODEOWNERS x: 2 # changes y: 2 line churn aws-s3/aws-sdk-v2/src/test/scala/com/gu/etagcaching/aws/sdkv2/s3/S3ClientForS3Mock.scala x: 3 # changes y: 32 line churn aws-s3/base/src/main/scala/com/gu/etagcaching/aws/s3/package.scala x: 2 # changes y: 46 line churn .github/workflows/ci.yml x: 5 # changes y: 56 line churn core/src/main/scala/com/gu/etagcaching/fetching/ETaggedData.scala x: 3 # changes y: 24 line churn core/src/main/scala/com/gu/etagcaching/fetching/MissingOrETagged.scala x: 2 # changes y: 38 line churn .tool-versions x: 2 # changes y: 3 line churn .github/workflows/tryout-sbt-version-policy.yml x: 2 # changes y: 54 line churn update_pr_with_compatibility_info.sh x: 2 # changes y: 66 line churn README.md x: 7 # changes y: 88 line churn sonatype.sbt x: 4 # changes y: 48 line churn .github/workflows/isolated-release.yml x: 3 # changes y: 572 line churn release-gunk/build.sbt x: 2 # changes y: 6 line churn aws-s3/base/src/main/scala/com/gu/etagcaching/aws/s3/ObjectId.scala x: 2 # changes y: 7 line churn core/src/main/scala/com/gu/etagcaching/package.scala x: 1 # changes y: 18 line churn aws-s3/aws-sdk-v2/src/main/scala/com/gu/aws/sdkv2/s3/S3ObjectFetching.scala x: 1 # changes y: 80 line churn aws-s3/aws-sdk-v2/src/main/scala/com/gu/aws/sdkv2/s3/response/Transformer.scala x: 1 # changes y: 62 line churn aws-s3/aws-sdk-v2/src/main/scala/com/gu/etagcaching/aws/sdkv2/s3/response/Transformer.scala x: 1 # changes y: 31 line churn aws-s3/aws-sdk-v2/src/test/scala/com/gu/aws/sdkv2/s3/ExampleParser.scala x: 1 # changes y: 48 line churn aws-s3/aws-sdk-v2/src/test/scala/com/gu/aws/sdkv2/s3/S3ClientForS3Mock.scala x: 1 # changes y: 56 line churn aws-s3/aws-sdk-v2/src/test/scala/com/gu/aws/sdkv2/s3/S3ObjectFetchingTest.scala x: 1 # changes y: 122 line churn aws-s3/aws-sdk-v2/src/test/scala/com/gu/etagcaching/aws/sdkv2/s3/ExampleParser.scala x: 1 # changes y: 24 line churn aws-s3/base/src/main/scala/com/gu/aws/s3/ObjectId.scala x: 1 # changes y: 10 line churn core/src/main/scala/com/gu/etagcaching/FreshnessPolicy.scala x: 1 # changes y: 47 line churn
572.0
line churn
  min: 2.0
  average: 101.12
  25th percentile: 14.0
  median: 48.0
  75th percentile: 114.0
  max: 572.0
0 117.0
# changes
min: 1.0 | average: 9.08 | 25th percentile: 2.0 | median: 2.0 | 75th percentile: 6.0 | max: 117.0

Number of Contributors vs. Line Churn: 10 points

core/src/main/scala/com/gu/etagcaching/Loading.scala x: 3 # contributors y: 224 line churn core/src/main/scala/com/gu/etagcaching/fetching/Fetching.scala x: 2 # contributors y: 254 line churn aws-s3/aws-sdk-v2/src/main/scala/com/gu/etagcaching/aws/sdkv2/s3/S3ObjectFetching.scala x: 2 # contributors y: 129 line churn core/src/main/scala/com/gu/etagcaching/ETagCache.scala x: 2 # contributors y: 106 line churn aws-s3/base/src/main/scala/com/gu/etagcaching/aws/s3/package.scala x: 1 # contributors y: 46 line churn core/src/main/scala/com/gu/etagcaching/fetching/MissingOrETagged.scala x: 2 # contributors y: 38 line churn aws-s3/base/src/main/scala/com/gu/etagcaching/aws/s3/ObjectId.scala x: 1 # contributors y: 7 line churn core/src/main/scala/com/gu/etagcaching/package.scala x: 1 # contributors y: 18 line churn aws-s3/aws-sdk-v2/src/main/scala/com/gu/etagcaching/aws/sdkv2/s3/response/Transformer.scala x: 1 # contributors y: 31 line churn core/src/main/scala/com/gu/etagcaching/FreshnessPolicy.scala x: 1 # contributors y: 47 line churn
254.0
line churn
  min: 7.0
  average: 90.0
  25th percentile: 27.75
  median: 46.5
  75th percentile: 152.75
  max: 254.0
0 3.0
# contributors
min: 1.0 | average: 1.6 | 25th percentile: 1.0 | median: 1.5 | 75th percentile: 2.0 | max: 3.0

File Size vs. Line Churn: 10 points

core/src/main/scala/com/gu/etagcaching/Loading.scala x: 27 lines of code y: 224 line churn core/src/main/scala/com/gu/etagcaching/fetching/Fetching.scala x: 76 lines of code y: 254 line churn aws-s3/aws-sdk-v2/src/main/scala/com/gu/etagcaching/aws/sdkv2/s3/S3ObjectFetching.scala x: 43 lines of code y: 129 line churn core/src/main/scala/com/gu/etagcaching/ETagCache.scala x: 20 lines of code y: 106 line churn aws-s3/base/src/main/scala/com/gu/etagcaching/aws/s3/package.scala x: 5 lines of code y: 46 line churn core/src/main/scala/com/gu/etagcaching/fetching/MissingOrETagged.scala x: 13 lines of code y: 38 line churn aws-s3/base/src/main/scala/com/gu/etagcaching/aws/s3/ObjectId.scala x: 5 lines of code y: 7 line churn core/src/main/scala/com/gu/etagcaching/package.scala x: 6 lines of code y: 18 line churn aws-s3/aws-sdk-v2/src/main/scala/com/gu/etagcaching/aws/sdkv2/s3/response/Transformer.scala x: 14 lines of code y: 31 line churn core/src/main/scala/com/gu/etagcaching/FreshnessPolicy.scala x: 17 lines of code y: 47 line churn
254.0
line churn
  min: 7.0
  average: 90.0
  25th percentile: 27.75
  median: 46.5
  75th percentile: 152.75
  max: 254.0
0 76.0
lines of code
min: 5.0 | average: 22.6 | 25th percentile: 5.75 | median: 15.5 | 75th percentile: 31.0 | max: 76.0