whatsapp / StringPacks
File Change Frequency

File change frequency (churn) shows the distribution of file updates (days with at least one commit).

File Change Frequency Overall
File Change Frequency Overall
The number of recorded file updates
  • There are 42 files with 1,982 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)
    • 7 files changed 6-20 times (500 lines of code)
    • 35 files changed 1-5 times (1,482 lines of code)
0% | 0% | 0% | 25% | 74%
Legend:
101+
51-100
21-50
6-20
1-5
explore: zoomable circles | data
File Change Frequency per File Extension
java, xml, py, gradle, md, properties, json, gitignore, txt, bat, kt
File Change Frequency per Extension
The number of recorded file updates
101+
51-100
21-50
6-20
1-5
java0% | 0% | 0% | 41% | 58%
xml0% | 0% | 0% | 18% | 81%
py0% | 0% | 0% | 0% | 100%
kt0% | 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
library/src/main/java/com/whatsapp0% | 0% | 0% | 34% | 65%
sample/app/src/main/java/com0% | 0% | 0% | 67% | 32%
sample/app/src/main/res/values0% | 0% | 0% | 100% | 0%
library/scripts0% | 0% | 0% | 0% | 100%
sample/app/src/main/string-packs/strings0% | 0% | 0% | 0% | 100%
sample/app/src/main/res/layout0% | 0% | 0% | 0% | 100%
library/templates0% | 0% | 0% | 0% | 100%
library0% | 0% | 0% | 0% | 100%
sample/app/src/main/res/values-zh-rTW0% | 0% | 0% | 0% | 100%
sample/app/src/main/res/values-fr0% | 0% | 0% | 0% | 100%
sample/app/src/main/res/values-es0% | 0% | 0% | 0% | 100%
sample/app/src/main/res/values-ar0% | 0% | 0% | 0% | 100%
sample/app/src/main/res/values-zh0% | 0% | 0% | 0% | 100%
sample/app/src/main/res/values-ha-rNG0% | 0% | 0% | 0% | 100%
Most Frequently Changed Files (Top 44)

See data for all files...

File# lines# unitslast modified
(days ago)
created
(days ago)
# changes# contributors
StringPacks.java
in library/src/main/java/com/whatsapp/stringpacks
232 17 247 769 14 4
ParsedStringPack.java
in library/src/main/java/com/whatsapp/stringpacks
80 5 306 808 11 5
SampleApplication.java
in sample/app/src/main/java/com/whatsapp/stringpacks/sample
42 3 247 808 9 3
StringPacksLocaleMetaDataProvider.java
in library/src/main/java/com/whatsapp/stringpacks
7 - 247 278 7 3
strings.xml
in sample/app/src/main/res/values
15 - 251 808 7 4
MainActivity.java
in sample/app/src/main/java/com/whatsapp/stringpacks/sample
93 8 227 808 7 3
LocaleMetaDataProviderImpl.java
in sample/app/src/main/java/com/whatsapp/stringpacks/sample
31 3 247 278 6 2
StringPackIds.java
in sample/app/src/main/java/com/whatsapp/stringpacks/sample
12 1 320 808 5 2
find_movable_strings.py
in library/scripts
210 11 103 446 5 3
string_pack.py
in library/scripts
225 22 114 807 5 4
strings.xml
in sample/app/src/main/res/values-ha-rNG
3 - 247 299 4 2
strings.xml
in sample/app/src/main/res/values-zh-rTW
3 - 247 295 4 2
strings.xml
in sample/app/src/main/string-packs/strings/values-ha-rNG
4 - 247 299 4 2
strings.xml
in sample/app/src/main/string-packs/strings/values-zh-rTW
4 - 247 295 4 2
LocaleUtil.java
in sample/app/src/main/java/com/whatsapp/stringpacks/sample
33 1 306 769 4 2
string_pack_config.py
in library/scripts
85 7 215 661 4 3
MMappedStringPack.java
in library/src/main/java/com/whatsapp/stringpacks
144 7 327 619 4 2
pack_strings.py
in library/scripts
83 10 351 527 3 2
strings.xml
in sample/app/src/main/res/values-zh
3 - 769 771 2 1
strings.xml
in sample/app/src/main/res/values-ar
3 - 769 808 2 2
strings.xml
in sample/app/src/main/res/values-es
3 - 769 808 2 2
strings.xml
in sample/app/src/main/res/values-fr
3 - 769 808 2 2
activity_main.xml
in sample/app/src/main/res/layout
18 - 769 808 2 2
ContextUtils.java
in library/src/main/java/com/whatsapp/stringpacks/utils
18 1 306 312 2 1
FileUtils.java
in library/src/main/java/com/whatsapp/stringpacks/utils
22 2 302 306 2 1
PackFileDeletionService.java
in library/src/main/java/com/whatsapp/stringpacks/service
27 2 302 306 2 1
StringPackContext.java
in library/src/main/java/com/whatsapp/stringpacks
33 4 327 370 2 1
StringPackData.java
in library/src/main/java/com/whatsapp/stringpacks
39 - 467 619 2 2
strings.xml
in sample/app/src/main/string-packs/strings/values-zh
4 - 351 351 1 1
strings.xml
in sample/app/src/main/string-packs/strings/values-ar
4 - 351 351 1 1
strings.xml
in sample/app/src/main/string-packs/strings/values-es
4 - 351 351 1 1
strings.xml
in sample/app/src/main/string-packs/strings/values-fr
4 - 351 351 1 1
StringPackIds.kt
in library/templates
5 1 446 446 1 1
lint.xml
in library
6 - 346 346 1 1
StringPackIds.java
in library/templates
7 1 446 446 1 1
MyPackageReplacedReceiver.java
in library/src/main/java/com/whatsapp/stringpacks/receiver
13 1 306 306 1 1
assemble_string_packs.py
in library/scripts
22 2 467 467 1 1
StringPackUtils.java
in library/src/main/java/com/whatsapp/stringpacks
28 2 320 320 1 1
SpLog.java
in library/src/main/java/com/whatsapp/stringpacks
33 5 327 327 1 1
LanguageChangeHandler.java
in sample/app/src/main/java/com/whatsapp/stringpacks/sample
34 4 320 320 1 1
move_strings_for_packing.py
in library/scripts
103 5 351 351 1 1
StringPackResources.java
in library/src/main/java/com/whatsapp/stringpacks
240 46 320 320 1 1
Logger.java
in library/src/main/java/com/whatsapp/stringpacks
7 -
PluralRules.java
in library/src/main/java/com/whatsapp/stringpacks
687 7
Files With Most Contributors (Top 44)
Files sorted by the number of unique email addresses found in commits.

See data for all files...

File# lines# unitslast modified
(days ago)
created
(days ago)
# changes# contributors
StringPacks.java
in library/src/main/java/com/whatsapp/stringpacks
232 17 247 769 14 4
ParsedStringPack.java
in library/src/main/java/com/whatsapp/stringpacks
80 5 306 808 11 5
SampleApplication.java
in sample/app/src/main/java/com/whatsapp/stringpacks/sample
42 3 247 808 9 3
MainActivity.java
in sample/app/src/main/java/com/whatsapp/stringpacks/sample
93 8 227 808 7 3
StringPacksLocaleMetaDataProvider.java
in library/src/main/java/com/whatsapp/stringpacks
7 - 247 278 7 3
strings.xml
in sample/app/src/main/res/values
15 - 251 808 7 4
LocaleMetaDataProviderImpl.java
in sample/app/src/main/java/com/whatsapp/stringpacks/sample
31 3 247 278 6 2
StringPackIds.java
in sample/app/src/main/java/com/whatsapp/stringpacks/sample
12 1 320 808 5 2
find_movable_strings.py
in library/scripts
210 11 103 446 5 3
string_pack.py
in library/scripts
225 22 114 807 5 4
LocaleUtil.java
in sample/app/src/main/java/com/whatsapp/stringpacks/sample
33 1 306 769 4 2
strings.xml
in sample/app/src/main/string-packs/strings/values-ha-rNG
4 - 247 299 4 2
strings.xml
in sample/app/src/main/string-packs/strings/values-zh-rTW
4 - 247 295 4 2
strings.xml
in sample/app/src/main/res/values-ha-rNG
3 - 247 299 4 2
strings.xml
in sample/app/src/main/res/values-zh-rTW
3 - 247 295 4 2
MMappedStringPack.java
in library/src/main/java/com/whatsapp/stringpacks
144 7 327 619 4 2
string_pack_config.py
in library/scripts
85 7 215 661 4 3
pack_strings.py
in library/scripts
83 10 351 527 3 2
strings.xml
in sample/app/src/main/res/values-zh
3 - 769 771 2 1
StringPackContext.java
in library/src/main/java/com/whatsapp/stringpacks
33 4 327 370 2 1
PackFileDeletionService.java
in library/src/main/java/com/whatsapp/stringpacks/service
27 2 302 306 2 1
ContextUtils.java
in library/src/main/java/com/whatsapp/stringpacks/utils
18 1 306 312 2 1
FileUtils.java
in library/src/main/java/com/whatsapp/stringpacks/utils
22 2 302 306 2 1
strings.xml
in sample/app/src/main/res/values-ar
3 - 769 808 2 2
strings.xml
in sample/app/src/main/res/values-es
3 - 769 808 2 2
strings.xml
in sample/app/src/main/res/values-fr
3 - 769 808 2 2
activity_main.xml
in sample/app/src/main/res/layout
18 - 769 808 2 2
StringPackData.java
in library/src/main/java/com/whatsapp/stringpacks
39 - 467 619 2 2
LanguageChangeHandler.java
in sample/app/src/main/java/com/whatsapp/stringpacks/sample
34 4 320 320 1 1
strings.xml
in sample/app/src/main/string-packs/strings/values-zh
4 - 351 351 1 1
strings.xml
in sample/app/src/main/string-packs/strings/values-ar
4 - 351 351 1 1
strings.xml
in sample/app/src/main/string-packs/strings/values-es
4 - 351 351 1 1
strings.xml
in sample/app/src/main/string-packs/strings/values-fr
4 - 351 351 1 1
StringPackResources.java
in library/src/main/java/com/whatsapp/stringpacks
240 46 320 320 1 1
MyPackageReplacedReceiver.java
in library/src/main/java/com/whatsapp/stringpacks/receiver
13 1 306 306 1 1
SpLog.java
in library/src/main/java/com/whatsapp/stringpacks
33 5 327 327 1 1
StringPackUtils.java
in library/src/main/java/com/whatsapp/stringpacks
28 2 320 320 1 1
lint.xml
in library
6 - 346 346 1 1
StringPackIds.java
in library/templates
7 1 446 446 1 1
StringPackIds.kt
in library/templates
5 1 446 446 1 1
move_strings_for_packing.py
in library/scripts
103 5 351 351 1 1
assemble_string_packs.py
in library/scripts
22 2 467 467 1 1
PluralRules.java
in library/src/main/java/com/whatsapp/stringpacks
687 7
Logger.java
in library/src/main/java/com/whatsapp/stringpacks
7 -
Correlations

File Size vs. Number of Changes: 42 points

library/scripts/find_movable_strings.py x: 210 lines of code y: 5 # changes library/scripts/string_pack.py x: 225 lines of code y: 5 # changes library/scripts/string_pack_config.py x: 85 lines of code y: 4 # changes sample/app/src/main/java/com/whatsapp/stringpacks/sample/MainActivity.java x: 93 lines of code y: 7 # changes library/src/main/java/com/whatsapp/stringpacks/StringPacks.java x: 232 lines of code y: 14 # changes library/src/main/java/com/whatsapp/stringpacks/StringPacksLocaleMetaDataProvider.java x: 7 lines of code y: 7 # changes sample/app/src/main/java/com/whatsapp/stringpacks/sample/LocaleMetaDataProviderImpl.java x: 31 lines of code y: 6 # changes sample/app/src/main/java/com/whatsapp/stringpacks/sample/SampleApplication.java x: 42 lines of code y: 9 # changes sample/app/src/main/res/values-ha-rNG/strings.xml x: 3 lines of code y: 4 # changes sample/app/src/main/string-packs/strings/values-ha-rNG/strings.xml x: 4 lines of code y: 4 # changes sample/app/src/main/res/values/strings.xml x: 15 lines of code y: 7 # changes library/src/main/java/com/whatsapp/stringpacks/utils/FileUtils.java x: 22 lines of code y: 2 # changes library/src/main/java/com/whatsapp/stringpacks/service/PackFileDeletionService.java x: 27 lines of code y: 2 # changes sample/app/src/main/java/com/whatsapp/stringpacks/sample/LocaleUtil.java x: 33 lines of code y: 4 # changes library/src/main/java/com/whatsapp/stringpacks/utils/ContextUtils.java x: 18 lines of code y: 2 # changes library/src/main/java/com/whatsapp/stringpacks/ParsedStringPack.java x: 80 lines of code y: 11 # changes library/src/main/java/com/whatsapp/stringpacks/receiver/MyPackageReplacedReceiver.java x: 13 lines of code y: 1 # changes library/src/main/java/com/whatsapp/stringpacks/StringPackUtils.java x: 28 lines of code y: 1 # changes sample/app/src/main/java/com/whatsapp/stringpacks/sample/LanguageChangeHandler.java x: 34 lines of code y: 1 # changes sample/app/src/main/java/com/whatsapp/stringpacks/sample/StringPackIds.java x: 12 lines of code y: 5 # changes library/src/main/java/com/whatsapp/stringpacks/StringPackResources.java x: 240 lines of code y: 1 # changes library/src/main/java/com/whatsapp/stringpacks/SpLog.java x: 33 lines of code y: 1 # changes library/src/main/java/com/whatsapp/stringpacks/StringPackContext.java x: 33 lines of code y: 2 # changes library/src/main/java/com/whatsapp/stringpacks/MMappedStringPack.java x: 144 lines of code y: 4 # changes library/lint.xml x: 6 lines of code y: 1 # changes library/scripts/move_strings_for_packing.py x: 103 lines of code y: 1 # changes library/scripts/pack_strings.py x: 83 lines of code y: 3 # changes sample/app/src/main/string-packs/strings/values-ar/strings.xml x: 4 lines of code y: 1 # changes library/templates/StringPackIds.java x: 7 lines of code y: 1 # changes library/templates/StringPackIds.kt x: 5 lines of code y: 1 # changes library/scripts/assemble_string_packs.py x: 22 lines of code y: 1 # changes library/src/main/java/com/whatsapp/stringpacks/StringPackData.java x: 39 lines of code y: 2 # changes sample/app/src/main/res/values-ar/strings.xml x: 3 lines of code y: 2 # changes
14.0
# changes
  min: 1.0
  average: 3.36
  25th percentile: 1.0
  median: 2.0
  75th percentile: 4.25
  max: 14.0
0 240.0
lines of code
min: 3.0 | average: 47.19 | 25th percentile: 4.0 | median: 20.0 | 75th percentile: 51.5 | max: 240.0

Number of Contributors vs. Number of Changes: 42 points

library/scripts/find_movable_strings.py x: 3 # contributors y: 5 # changes library/scripts/string_pack.py x: 4 # contributors y: 5 # changes library/scripts/string_pack_config.py x: 3 # contributors y: 4 # changes sample/app/src/main/java/com/whatsapp/stringpacks/sample/MainActivity.java x: 3 # contributors y: 7 # changes library/src/main/java/com/whatsapp/stringpacks/StringPacks.java x: 4 # contributors y: 14 # changes sample/app/src/main/java/com/whatsapp/stringpacks/sample/LocaleMetaDataProviderImpl.java x: 2 # contributors y: 6 # changes sample/app/src/main/java/com/whatsapp/stringpacks/sample/SampleApplication.java x: 3 # contributors y: 9 # changes sample/app/src/main/res/values-ha-rNG/strings.xml x: 2 # contributors y: 4 # changes sample/app/src/main/res/values/strings.xml x: 4 # contributors y: 7 # changes library/src/main/java/com/whatsapp/stringpacks/utils/FileUtils.java x: 1 # contributors y: 2 # changes library/src/main/java/com/whatsapp/stringpacks/ParsedStringPack.java x: 5 # contributors y: 11 # changes library/src/main/java/com/whatsapp/stringpacks/receiver/MyPackageReplacedReceiver.java x: 1 # contributors y: 1 # changes sample/app/src/main/java/com/whatsapp/stringpacks/sample/StringPackIds.java x: 2 # contributors y: 5 # changes library/scripts/pack_strings.py x: 2 # contributors y: 3 # changes library/src/main/java/com/whatsapp/stringpacks/StringPackData.java x: 2 # contributors y: 2 # changes
14.0
# changes
  min: 1.0
  average: 3.36
  25th percentile: 1.0
  median: 2.0
  75th percentile: 4.25
  max: 14.0
0 5.0
# contributors
min: 1.0 | average: 1.88 | 25th percentile: 1.0 | median: 2.0 | 75th percentile: 2.0 | max: 5.0