Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DO NOT MERGE] Temp check build stats with math prs #4261

Closed
wants to merge 534 commits into from

Conversation

BenHenning
Copy link
Member

Explanation

This is a temporary integration branch of #2173 and #4092 since the latter won't be able to make it into develop before the former, and it'd be really good to see the diff stats for such a large project to see what impact it'll have.

This should be compared against #4092's own diff stats to account for the fact that it's making a lot of changes to the build graph, too (particularly around dependencies since it's upgrading the app to Kotlin 1.6).

This PR will not be merged and will be closed once the stats are computed.

Essential Checklist

  • The PR title and explanation each start with "Fix #bugnum: " (If this PR fixes part of an issue, prefix the title with "Fix part of #bugnum: ...".)
  • Any changes to scripts/assets files have their rationale included in the PR explanation.
  • The PR follows the style guide.
  • The PR does not contain any unnecessary code changes from Android Studio (reference).
  • The PR is made from a branch that's not called "develop" and is up-to-date with "develop".
  • The PR is assigned to the appropriate reviewers (reference).

For UI-specific PRs only

If your PR includes UI-related changes, then:

  • Add screenshots for portrait/landscape for both a tablet & phone of the before & after UI changes
  • For the screenshots above, include both English and pseudo-localized (RTL) screenshots (see RTL guide)
  • Add a video showing the full UX flow with a screen reader enabled (see accessibility guide)
  • Add a screenshot demonstrating that you ran affected Espresso tests locally & that they're passing

…nd-eval' into add-support-for-math-expressions-pt9-commutative-comparisons

Conflicts:
	utility/src/main/java/org/oppia/android/util/math/RealExtensions.kt
	utility/src/test/java/org/oppia/android/util/math/BUILD.bazel
This inlines three recursive operations to be done during the actual
computation to simplify the overall converter complexity (and to make
determining the test matrix easier).
…isons-protos' into add-support-for-math-expressions-pt5-polynomial-protos
… into add-support-for-math-expressions-pt6-tokenizer

Conflicts:
	scripts/assets/test_file_exemptions.textproto
…d-support-for-math-expressions-pt7-math-expression-parser
…rser' into add-support-for-math-expressions-pt8-latex-conversion-and-eval
…nd-eval' into add-support-for-math-expressions-pt9-commutative-comparisons
This adjusts for the removal of ComparableOperationList (i.e. no wrapper
proto).
This includes fixes to the converter itself as it wasn't distributing
both product inversions and negation correctly in several cases. Tests
should now be covering these cases.
Still needs to be cleaned up, but after converter refactoring attempts.
…isons' into add-support-for-math-expressions-pt10-polynomials

Conflicts:
	utility/src/main/java/org/oppia/android/util/math/MathExpressionExtensions.kt
	utility/src/main/java/org/oppia/android/util/math/PolynomialExtensions.kt
	utility/src/main/java/org/oppia/android/util/math/RealExtensions.kt
Also, clean up polynomial sorting.
… add-support-for-math-expressions-pt11-numeric-expression-input-classifiers

Conflicts:
	utility/src/main/java/org/oppia/android/util/math/MathExpressionExtensions.kt
	utility/src/main/java/org/oppia/android/util/math/PolynomialExtensions.kt
	utility/src/main/java/org/oppia/android/util/math/RealExtensions.kt
Also, mark methods/classes that need tests.
… into add-support-for-math-expressions-pt6-tokenizer
Conflicts:
	WORKSPACE
	third_party/maven_install.json
…s-with-math-prs

Conflicts:
	WORKSPACE
	config/proguard/kotlin-proguard-rules.pro
	third_party/maven_install.json
This PR resolves *all* Maven conflicts and Proguard issues by ensuring
everything is using the latest Kotlin runtime & libraries.

Tests have not been verified as building yet (they probably won't due to
visibility changes & new behaviors/API changes introduced in Kotlin 1.5
and 1.6).

This is needed as part of checking #2173 for build stats (which will
happen on another, temporary branch).
…s-with-math-prs

Includes a regeneration of maven_install.json.

Conflicts:
	app/build.gradle
	config/proguard/kotlin-proguard-rules.pro
	third_party/BUILD.bazel
	third_party/maven_install.json
	third_party/versions.bzl
	utility/build.gradle
	utility/src/main/java/org/oppia/android/util/parser/image/UrlImageParser.kt
@github-actions
Copy link

APK & AAB differences analysis

Note that this is a summarized snapshot. See the CI artifacts for detailed differences.

Dev

Expand to see flavor specifics

Universal APK

APK file size: 13 MiB (old), 12 MiB (new), 612 KiB (Removed)

APK download size (estimated): 12 MiB (old), 11 MiB (new), 689 KiB (Removed)

Method count: 167558 (old), 142651 (new), 24907 (Removed)

Features: 2 (old), 2 (new), 0 (No change)

Permissions: 6 (old), 6 (new), 0 (No change)

Resources: 5034 (old), 5133 (new), 99 (Added)

  • Anim: 47 (old), 47 (new), 0 (No change)
  • Animator: 15 (old), 15 (new), 0 (No change)
  • Array: 15 (old), 15 (new), 0 (No change)
  • Attr: 742 (old), 742 (new), 0 (No change)
  • Bool: 10 (old), 10 (new), 0 (No change)
  • Color: 401 (old), 401 (new), 0 (No change)
  • Dimen: 834 (old), 834 (new), 0 (No change)
  • Drawable: 354 (old), 354 (new), 0 (No change)
  • Id: 938 (old), 965 (new), 27 (Added):
    • id/allowed_variables_edit_text (added)
    • id/debug_parsers_text_view (added)
    • id/exploration_test_fragment_placeholder (added)
    • id/math_expression_input_edit_text (added)
    • id/math_expression_input_error (added)
    • And 22 others
  • Integer: 38 (old), 38 (new), 0 (No change)
  • Interpolator: 11 (old), 11 (new), 0 (No change)
  • Layout: 303 (old), 307 (new), 4 (Added):
    • layout/developer_options_test_parsers_view (added)
    • layout/math_expression_interactions_item (added)
    • layout/math_expression_parser_activity (added)
    • layout/math_expression_parser_fragment (added)
  • Menu: 2 (old), 2 (new), 0 (No change)
  • Mipmap: 3 (old), 3 (new), 0 (No change)
  • Plurals: 10 (old), 10 (new), 0 (No change)
  • Raw: 1 (old), 1 (new), 0 (No change)
  • String: 549 (old), 617 (new), 68 (Added):
    • string/algebraic_expression_default_hint_text (added)
    • string/developer_options_math_expressions (added)
    • string/developer_options_test_parsers_label (added)
    • string/math_accessibility_a_divides_b (added)
    • string/math_accessibility_a_equals_b (added)
    • And 63 others
  • Style: 755 (old), 755 (new), 0 (No change)
  • Xml: 6 (old), 6 (new), 0 (No change)

Lesson assets: 71 (old), 73 (new), 2 (Added):

  • test_exp_id_5.json (added)
  • test_exp_id_5.pb (added)

AAB differences

Expand to see AAB specifics

Supported configurations:

  • hdpi (same)
  • ldpi (same)
  • mdpi (same)
  • tvdpi (same)
  • xhdpi (same)
  • xxhdpi (same)
  • xxxhdpi (same)

Base APK

APK file size: 13 MiB (old), 12 MiB (new), 612 KiB (Removed)
APK download size (estimated): 12 MiB (old), 11 MiB (new), 685 KiB (Removed)
Method count: 167558 (old), 142651 (new), 24907 (Removed)
Resources: 4969 (old), 5068 (new), 99 (Added)

  • Id: 938 (old), 965 (new), 27 (Added)
  • Layout: 303 (old), 307 (new), 4 (Added)
  • String: 549 (old), 617 (new), 68 (Added)

Lesson assets: 71 (old), 73 (new), 2 (Added)

Configuration hdpi

APK file size: 57 KiB (old), 57 KiB (new), 0 bytes (No change)
APK download size (estimated): 23 KiB (old), 23 KiB (new), 0 bytes (No change)

Configuration ldpi

APK file size: 54 KiB (old), 54 KiB (new), 0 bytes (No change)
APK download size (estimated): 18 KiB (old), 18 KiB (new), 0 bytes (No change)

Configuration mdpi

APK file size: 51 KiB (old), 51 KiB (new), 0 bytes (No change)
APK download size (estimated): 18 KiB (old), 18 KiB (new), 0 bytes (No change)

Configuration tvdpi

APK file size: 100 KiB (old), 100 KiB (new), 0 bytes (No change)
APK download size (estimated): 38 KiB (old), 38 KiB (new), 0 bytes (No change)

Configuration xhdpi

APK file size: 65 KiB (old), 65 KiB (new), 0 bytes (No change)
APK download size (estimated): 28 KiB (old), 28 KiB (new), 0 bytes (No change)

Configuration xxhdpi

APK file size: 74 KiB (old), 74 KiB (new), 0 bytes (No change)
APK download size (estimated): 38 KiB (old), 38 KiB (new), 0 bytes (No change)

Configuration xxxhdpi

APK file size: 77 KiB (old), 77 KiB (new), 0 bytes (No change)
APK download size (estimated): 39 KiB (old), 39 KiB (new), 0 bytes (No change)

Alpha

Expand to see flavor specifics

Universal APK

APK file size: 7932 KiB (old), 7926 KiB (new), 6963 bytes (Removed)

APK download size (estimated): 6845 KiB (old), 6768 KiB (new), 77 KiB (Removed)

Method count: 70879 (old), 62087 (new), 8792 (Removed)

Features: 2 (old), 2 (new), 0 (No change)

Permissions: 6 (old), 6 (new), 0 (No change)

Resources: 4177 (old), 4276 (new), 99 (Added)

  • Anim: 35 (old), 35 (new), 0 (No change)
  • Animator: 13 (old), 13 (new), 0 (No change)
  • Array: 14 (old), 14 (new), 0 (No change)
  • Attr: 709 (old), 709 (new), 0 (No change)
  • Bool: 8 (old), 8 (new), 0 (No change)
  • Color: 347 (old), 347 (new), 0 (No change)
  • Dimen: 627 (old), 627 (new), 0 (No change)
  • Drawable: 309 (old), 309 (new), 0 (No change)
  • Id: 883 (old), 910 (new), 27 (Added):
    • id/allowed_variables_edit_text (added)
    • id/debug_parsers_text_view (added)
    • id/exploration_test_fragment_placeholder (added)
    • id/math_expression_input_edit_text (added)
    • id/math_expression_input_error (added)
    • And 22 others
  • Integer: 34 (old), 34 (new), 0 (No change)
  • Interpolator: 11 (old), 11 (new), 0 (No change)
  • Layout: 268 (old), 272 (new), 4 (Added):
    • layout/developer_options_test_parsers_view (added)
    • layout/math_expression_interactions_item (added)
    • layout/math_expression_parser_activity (added)
    • layout/math_expression_parser_fragment (added)
  • Menu: 2 (old), 2 (new), 0 (No change)
  • Mipmap: 3 (old), 3 (new), 0 (No change)
  • Plurals: 10 (old), 10 (new), 0 (No change)
  • String: 480 (old), 548 (new), 68 (Added):
    • string/algebraic_expression_default_hint_text (added)
    • string/developer_options_math_expressions (added)
    • string/developer_options_test_parsers_label (added)
    • string/math_accessibility_a_divides_b (added)
    • string/math_accessibility_a_equals_b (added)
    • And 63 others
  • Style: 423 (old), 423 (new), 0 (No change)
  • Xml: 1 (old), 1 (new), 0 (No change)

Lesson assets: 71 (old), 73 (new), 2 (Added):

  • test_exp_id_5.json (added)
  • test_exp_id_5.pb (added)

AAB differences

Expand to see AAB specifics

Supported configurations:

  • hdpi (same)
  • ldpi (same)
  • mdpi (same)
  • tvdpi (same)
  • xhdpi (same)
  • xxhdpi (same)
  • xxxhdpi (same)

Base APK

APK file size: 7700 KiB (old), 7694 KiB (new), 6963 bytes (Removed)
APK download size (estimated): 6728 KiB (old), 6651 KiB (new), 77 KiB (Removed)
Method count: 70879 (old), 62087 (new), 8792 (Removed)
Resources: 4119 (old), 4218 (new), 99 (Added)

  • Id: 883 (old), 910 (new), 27 (Added)
  • Layout: 268 (old), 272 (new), 4 (Added)
  • String: 480 (old), 548 (new), 68 (Added)

Lesson assets: 71 (old), 73 (new), 2 (Added)

Configuration hdpi

APK file size: 51 KiB (old), 51 KiB (new), 0 bytes (No change)
APK download size (estimated): 22 KiB (old), 22 KiB (new), 0 bytes (No change)

Configuration ldpi

APK file size: 50 KiB (old), 50 KiB (new), 0 bytes (No change)
APK download size (estimated): 17 KiB (old), 17 KiB (new), 0 bytes (No change)

Configuration mdpi

APK file size: 45 KiB (old), 45 KiB (new), 0 bytes (No change)
APK download size (estimated): 17 KiB (old), 17 KiB (new), 0 bytes (No change)

Configuration tvdpi

APK file size: 88 KiB (old), 88 KiB (new), 0 bytes (No change)
APK download size (estimated): 37 KiB (old), 37 KiB (new), 0 bytes (No change)

Configuration xhdpi

APK file size: 59 KiB (old), 59 KiB (new), 0 bytes (No change)
APK download size (estimated): 27 KiB (old), 27 KiB (new), 0 bytes (No change)

Configuration xxhdpi

APK file size: 68 KiB (old), 68 KiB (new), 0 bytes (No change)
APK download size (estimated): 37 KiB (old), 37 KiB (new), 0 bytes (No change)

Configuration xxxhdpi

APK file size: 70 KiB (old), 70 KiB (new), 0 bytes (No change)
APK download size (estimated): 38 KiB (old), 38 KiB (new), 0 bytes (No change)

Alpha_kitkat

Expand to see flavor specifics

Universal APK

APK file size: 13 MiB (old), 12 MiB (new), 637 KiB (Removed)

APK download size (estimated): 12 MiB (old), 11 MiB (new), 712 KiB (Removed)

Method count: 168318 (old), 142805 (new), 25513 (Removed)

Features: 2 (old), 2 (new), 0 (No change)

Permissions: 6 (old), 6 (new), 0 (No change)

Resources: 5034 (old), 5133 (new), 99 (Added)

  • Anim: 47 (old), 47 (new), 0 (No change)
  • Animator: 15 (old), 15 (new), 0 (No change)
  • Array: 15 (old), 15 (new), 0 (No change)
  • Attr: 742 (old), 742 (new), 0 (No change)
  • Bool: 10 (old), 10 (new), 0 (No change)
  • Color: 401 (old), 401 (new), 0 (No change)
  • Dimen: 834 (old), 834 (new), 0 (No change)
  • Drawable: 354 (old), 354 (new), 0 (No change)
  • Id: 938 (old), 965 (new), 27 (Added):
    • id/allowed_variables_edit_text (added)
    • id/debug_parsers_text_view (added)
    • id/exploration_test_fragment_placeholder (added)
    • id/math_expression_input_edit_text (added)
    • id/math_expression_input_error (added)
    • And 22 others
  • Integer: 38 (old), 38 (new), 0 (No change)
  • Interpolator: 11 (old), 11 (new), 0 (No change)
  • Layout: 303 (old), 307 (new), 4 (Added):
    • layout/developer_options_test_parsers_view (added)
    • layout/math_expression_interactions_item (added)
    • layout/math_expression_parser_activity (added)
    • layout/math_expression_parser_fragment (added)
  • Menu: 2 (old), 2 (new), 0 (No change)
  • Mipmap: 3 (old), 3 (new), 0 (No change)
  • Plurals: 10 (old), 10 (new), 0 (No change)
  • Raw: 1 (old), 1 (new), 0 (No change)
  • String: 549 (old), 617 (new), 68 (Added):
    • string/algebraic_expression_default_hint_text (added)
    • string/developer_options_math_expressions (added)
    • string/developer_options_test_parsers_label (added)
    • string/math_accessibility_a_divides_b (added)
    • string/math_accessibility_a_equals_b (added)
    • And 63 others
  • Style: 755 (old), 755 (new), 0 (No change)
  • Xml: 6 (old), 6 (new), 0 (No change)

Lesson assets: 71 (old), 73 (new), 2 (Added):

  • test_exp_id_5.json (added)
  • test_exp_id_5.pb (added)

AAB differences

Expand to see AAB specifics

Supported configurations:

  • hdpi (same)
  • ldpi (same)
  • mdpi (same)
  • tvdpi (same)
  • xhdpi (same)
  • xxhdpi (same)
  • xxxhdpi (same)
  • standalone-hdpi (same)
  • standalone-ldpi (same)
  • standalone-mdpi (same)
  • standalone-tvdpi (same)
  • standalone-xhdpi (same)
  • standalone-xxhdpi (same)
  • standalone-xxxhdpi (same)

Base APK

APK file size: 13 MiB (old), 12 MiB (new), 637 KiB (Removed)
APK download size (estimated): 12 MiB (old), 11 MiB (new), 712 KiB (Removed)
Method count: 168318 (old), 142805 (new), 25513 (Removed)
Resources: 4969 (old), 5068 (new), 99 (Added)

  • Id: 938 (old), 965 (new), 27 (Added)
  • Layout: 303 (old), 307 (new), 4 (Added)
  • String: 549 (old), 617 (new), 68 (Added)

Lesson assets: 71 (old), 73 (new), 2 (Added)

Configuration hdpi

APK file size: 57 KiB (old), 57 KiB (new), 0 bytes (No change)
APK download size (estimated): 23 KiB (old), 23 KiB (new), 0 bytes (No change)

Configuration ldpi

APK file size: 54 KiB (old), 54 KiB (new), 0 bytes (No change)
APK download size (estimated): 18 KiB (old), 18 KiB (new), 0 bytes (No change)

Configuration mdpi

APK file size: 51 KiB (old), 51 KiB (new), 0 bytes (No change)
APK download size (estimated): 18 KiB (old), 18 KiB (new), 0 bytes (No change)

Configuration tvdpi

APK file size: 100 KiB (old), 100 KiB (new), 0 bytes (No change)
APK download size (estimated): 38 KiB (old), 38 KiB (new), 0 bytes (No change)

Configuration xhdpi

APK file size: 65 KiB (old), 65 KiB (new), 0 bytes (No change)
APK download size (estimated): 28 KiB (old), 28 KiB (new), 0 bytes (No change)

Configuration xxhdpi

APK file size: 74 KiB (old), 74 KiB (new), 0 bytes (No change)
APK download size (estimated): 38 KiB (old), 38 KiB (new), 0 bytes (No change)

Configuration xxxhdpi

APK file size: 77 KiB (old), 77 KiB (new), 0 bytes (No change)
APK download size (estimated): 39 KiB (old), 39 KiB (new), 0 bytes (No change)

Configuration standalone-hdpi

APK file size: 13 MiB (old), 12 MiB (new), 637 KiB (Removed)
APK download size (estimated): 12 MiB (old), 11 MiB (new), 712 KiB (Removed)
Method count: 168318 (old), 142805 (new), 25513 (Removed)
Resources: 5034 (old), 5133 (new), 99 (Added)

  • Id: 938 (old), 965 (new), 27 (Added)
  • Layout: 303 (old), 307 (new), 4 (Added)
  • String: 549 (old), 617 (new), 68 (Added)

Lesson assets: 71 (old), 73 (new), 2 (Added)

Configuration standalone-ldpi

APK file size: 13 MiB (old), 12 MiB (new), 637 KiB (Removed)
APK download size (estimated): 12 MiB (old), 11 MiB (new), 711 KiB (Removed)
Method count: 168318 (old), 142805 (new), 25513 (Removed)
Resources: 5034 (old), 5133 (new), 99 (Added)

  • Id: 938 (old), 965 (new), 27 (Added)
  • Layout: 303 (old), 307 (new), 4 (Added)
  • String: 549 (old), 617 (new), 68 (Added)

Lesson assets: 71 (old), 73 (new), 2 (Added)

Configuration standalone-mdpi

APK file size: 13 MiB (old), 12 MiB (new), 637 KiB (Removed)
APK download size (estimated): 12 MiB (old), 11 MiB (new), 711 KiB (Removed)
Method count: 168318 (old), 142805 (new), 25513 (Removed)
Resources: 5034 (old), 5133 (new), 99 (Added)

  • Id: 938 (old), 965 (new), 27 (Added)
  • Layout: 303 (old), 307 (new), 4 (Added)
  • String: 549 (old), 617 (new), 68 (Added)

Lesson assets: 71 (old), 73 (new), 2 (Added)

Configuration standalone-tvdpi

APK file size: 13 MiB (old), 12 MiB (new), 637 KiB (Removed)
APK download size (estimated): 12 MiB (old), 11 MiB (new), 711 KiB (Removed)
Method count: 168318 (old), 142805 (new), 25513 (Removed)
Resources: 5034 (old), 5133 (new), 99 (Added)

  • Id: 938 (old), 965 (new), 27 (Added)
  • Layout: 303 (old), 307 (new), 4 (Added)
  • String: 549 (old), 617 (new), 68 (Added)

Lesson assets: 71 (old), 73 (new), 2 (Added)

Configuration standalone-xhdpi

APK file size: 13 MiB (old), 12 MiB (new), 637 KiB (Removed)
APK download size (estimated): 12 MiB (old), 11 MiB (new), 712 KiB (Removed)
Method count: 168318 (old), 142805 (new), 25513 (Removed)
Resources: 5034 (old), 5133 (new), 99 (Added)

  • Id: 938 (old), 965 (new), 27 (Added)
  • Layout: 303 (old), 307 (new), 4 (Added)
  • String: 549 (old), 617 (new), 68 (Added)

Lesson assets: 71 (old), 73 (new), 2 (Added)

Configuration standalone-xxhdpi

APK file size: 13 MiB (old), 12 MiB (new), 637 KiB (Removed)
APK download size (estimated): 12 MiB (old), 11 MiB (new), 712 KiB (Removed)
Method count: 168318 (old), 142805 (new), 25513 (Removed)
Resources: 5034 (old), 5133 (new), 99 (Added)

  • Id: 938 (old), 965 (new), 27 (Added)
  • Layout: 303 (old), 307 (new), 4 (Added)
  • String: 549 (old), 617 (new), 68 (Added)

Lesson assets: 71 (old), 73 (new), 2 (Added)

Configuration standalone-xxxhdpi

APK file size: 13 MiB (old), 12 MiB (new), 637 KiB (Removed)
APK download size (estimated): 12 MiB (old), 11 MiB (new), 712 KiB (Removed)
Method count: 168318 (old), 142805 (new), 25513 (Removed)
Resources: 5034 (old), 5133 (new), 99 (Added)

  • Id: 938 (old), 965 (new), 27 (Added)
  • Layout: 303 (old), 307 (new), 4 (Added)
  • String: 549 (old), 617 (new), 68 (Added)

Lesson assets: 71 (old), 73 (new), 2 (Added)

This allows #2173 to be diffed against what 'develop' would look like
if #4261 were merged.
@github-actions
Copy link

APK & AAB differences analysis

Note that this is a summarized snapshot. See the CI artifacts for detailed differences.

Dev

Expand to see flavor specifics

Universal APK

APK file size: 11 MiB (old), 12 MiB (new), 972 KiB (Added)

APK download size (estimated): 10 MiB (old), 11 MiB (new), 925 KiB (Added)

Method count: 135895 (old), 142651 (new), 6756 (Added)

Features: 2 (old), 2 (new), 0 (No change)

Permissions: 6 (old), 6 (new), 0 (No change)

Resources: 5034 (old), 5133 (new), 99 (Added)

  • Anim: 47 (old), 47 (new), 0 (No change)
  • Animator: 15 (old), 15 (new), 0 (No change)
  • Array: 15 (old), 15 (new), 0 (No change)
  • Attr: 742 (old), 742 (new), 0 (No change)
  • Bool: 10 (old), 10 (new), 0 (No change)
  • Color: 401 (old), 401 (new), 0 (No change)
  • Dimen: 834 (old), 834 (new), 0 (No change)
  • Drawable: 354 (old), 354 (new), 0 (No change)
  • Id: 938 (old), 965 (new), 27 (Added):
    • id/allowed_variables_edit_text (added)
    • id/debug_parsers_text_view (added)
    • id/exploration_test_fragment_placeholder (added)
    • id/math_expression_input_edit_text (added)
    • id/math_expression_input_error (added)
    • And 22 others
  • Integer: 38 (old), 38 (new), 0 (No change)
  • Interpolator: 11 (old), 11 (new), 0 (No change)
  • Layout: 303 (old), 307 (new), 4 (Added):
    • layout/developer_options_test_parsers_view (added)
    • layout/math_expression_interactions_item (added)
    • layout/math_expression_parser_activity (added)
    • layout/math_expression_parser_fragment (added)
  • Menu: 2 (old), 2 (new), 0 (No change)
  • Mipmap: 3 (old), 3 (new), 0 (No change)
  • Plurals: 10 (old), 10 (new), 0 (No change)
  • Raw: 1 (old), 1 (new), 0 (No change)
  • String: 549 (old), 617 (new), 68 (Added):
    • string/algebraic_expression_default_hint_text (added)
    • string/developer_options_math_expressions (added)
    • string/developer_options_test_parsers_label (added)
    • string/math_accessibility_a_divides_b (added)
    • string/math_accessibility_a_equals_b (added)
    • And 63 others
  • Style: 755 (old), 755 (new), 0 (No change)
  • Xml: 6 (old), 6 (new), 0 (No change)

Lesson assets: 71 (old), 73 (new), 2 (Added):

  • test_exp_id_5.json (added)
  • test_exp_id_5.pb (added)

AAB differences

Expand to see AAB specifics

Supported configurations:

  • hdpi (same)
  • ldpi (same)
  • mdpi (same)
  • tvdpi (same)
  • xhdpi (same)
  • xxhdpi (same)
  • xxxhdpi (same)

Base APK

APK file size: 11 MiB (old), 12 MiB (new), 972 KiB (Added)
APK download size (estimated): 10 MiB (old), 11 MiB (new), 924 KiB (Added)
Method count: 135895 (old), 142651 (new), 6756 (Added)
Resources: 4969 (old), 5068 (new), 99 (Added)

  • Id: 938 (old), 965 (new), 27 (Added)
  • Layout: 303 (old), 307 (new), 4 (Added)
  • String: 549 (old), 617 (new), 68 (Added)

Lesson assets: 71 (old), 73 (new), 2 (Added)

Configuration hdpi

APK file size: 57 KiB (old), 57 KiB (new), 0 bytes (No change)
APK download size (estimated): 23 KiB (old), 23 KiB (new), 0 bytes (No change)

Configuration ldpi

APK file size: 54 KiB (old), 54 KiB (new), 0 bytes (No change)
APK download size (estimated): 18 KiB (old), 18 KiB (new), 0 bytes (No change)

Configuration mdpi

APK file size: 51 KiB (old), 51 KiB (new), 0 bytes (No change)
APK download size (estimated): 18 KiB (old), 18 KiB (new), 0 bytes (No change)

Configuration tvdpi

APK file size: 100 KiB (old), 100 KiB (new), 0 bytes (No change)
APK download size (estimated): 38 KiB (old), 38 KiB (new), 0 bytes (No change)

Configuration xhdpi

APK file size: 65 KiB (old), 65 KiB (new), 0 bytes (No change)
APK download size (estimated): 28 KiB (old), 28 KiB (new), 0 bytes (No change)

Configuration xxhdpi

APK file size: 74 KiB (old), 74 KiB (new), 0 bytes (No change)
APK download size (estimated): 38 KiB (old), 38 KiB (new), 0 bytes (No change)

Configuration xxxhdpi

APK file size: 77 KiB (old), 77 KiB (new), 0 bytes (No change)
APK download size (estimated): 39 KiB (old), 39 KiB (new), 0 bytes (No change)

Alpha

Expand to see flavor specifics

Universal APK

APK file size: 7186 KiB (old), 7926 KiB (new), 739 KiB (Added)

APK download size (estimated): 6069 KiB (old), 6768 KiB (new), 698 KiB (Added)

Method count: 58280 (old), 62087 (new), 3807 (Added)

Features: 2 (old), 2 (new), 0 (No change)

Permissions: 6 (old), 6 (new), 0 (No change)

Resources: 4177 (old), 4276 (new), 99 (Added)

  • Anim: 35 (old), 35 (new), 0 (No change)
  • Animator: 13 (old), 13 (new), 0 (No change)
  • Array: 14 (old), 14 (new), 0 (No change)
  • Attr: 709 (old), 709 (new), 0 (No change)
  • Bool: 8 (old), 8 (new), 0 (No change)
  • Color: 347 (old), 347 (new), 0 (No change)
  • Dimen: 627 (old), 627 (new), 0 (No change)
  • Drawable: 309 (old), 309 (new), 0 (No change)
  • Id: 883 (old), 910 (new), 27 (Added):
    • id/allowed_variables_edit_text (added)
    • id/debug_parsers_text_view (added)
    • id/exploration_test_fragment_placeholder (added)
    • id/math_expression_input_edit_text (added)
    • id/math_expression_input_error (added)
    • And 22 others
  • Integer: 34 (old), 34 (new), 0 (No change)
  • Interpolator: 11 (old), 11 (new), 0 (No change)
  • Layout: 268 (old), 272 (new), 4 (Added):
    • layout/developer_options_test_parsers_view (added)
    • layout/math_expression_interactions_item (added)
    • layout/math_expression_parser_activity (added)
    • layout/math_expression_parser_fragment (added)
  • Menu: 2 (old), 2 (new), 0 (No change)
  • Mipmap: 3 (old), 3 (new), 0 (No change)
  • Plurals: 10 (old), 10 (new), 0 (No change)
  • String: 480 (old), 548 (new), 68 (Added):
    • string/algebraic_expression_default_hint_text (added)
    • string/developer_options_math_expressions (added)
    • string/developer_options_test_parsers_label (added)
    • string/math_accessibility_a_divides_b (added)
    • string/math_accessibility_a_equals_b (added)
    • And 63 others
  • Style: 423 (old), 423 (new), 0 (No change)
  • Xml: 1 (old), 1 (new), 0 (No change)

Lesson assets: 71 (old), 73 (new), 2 (Added):

  • test_exp_id_5.json (added)
  • test_exp_id_5.pb (added)

AAB differences

Expand to see AAB specifics

Supported configurations:

  • hdpi (same)
  • ldpi (same)
  • mdpi (same)
  • tvdpi (same)
  • xhdpi (same)
  • xxhdpi (same)
  • xxxhdpi (same)

Base APK

APK file size: 6954 KiB (old), 7694 KiB (new), 739 KiB (Added)
APK download size (estimated): 5951 KiB (old), 6651 KiB (new), 699 KiB (Added)
Method count: 58280 (old), 62087 (new), 3807 (Added)
Resources: 4119 (old), 4218 (new), 99 (Added)

  • Id: 883 (old), 910 (new), 27 (Added)
  • Layout: 268 (old), 272 (new), 4 (Added)
  • String: 480 (old), 548 (new), 68 (Added)

Lesson assets: 71 (old), 73 (new), 2 (Added)

Configuration hdpi

APK file size: 51 KiB (old), 51 KiB (new), 0 bytes (No change)
APK download size (estimated): 22 KiB (old), 22 KiB (new), 0 bytes (No change)

Configuration ldpi

APK file size: 50 KiB (old), 50 KiB (new), 0 bytes (No change)
APK download size (estimated): 17 KiB (old), 17 KiB (new), 0 bytes (No change)

Configuration mdpi

APK file size: 45 KiB (old), 45 KiB (new), 0 bytes (No change)
APK download size (estimated): 17 KiB (old), 17 KiB (new), 0 bytes (No change)

Configuration tvdpi

APK file size: 88 KiB (old), 88 KiB (new), 0 bytes (No change)
APK download size (estimated): 37 KiB (old), 37 KiB (new), 0 bytes (No change)

Configuration xhdpi

APK file size: 59 KiB (old), 59 KiB (new), 0 bytes (No change)
APK download size (estimated): 27 KiB (old), 27 KiB (new), 0 bytes (No change)

Configuration xxhdpi

APK file size: 68 KiB (old), 68 KiB (new), 0 bytes (No change)
APK download size (estimated): 37 KiB (old), 37 KiB (new), 0 bytes (No change)

Configuration xxxhdpi

APK file size: 70 KiB (old), 70 KiB (new), 0 bytes (No change)
APK download size (estimated): 38 KiB (old), 38 KiB (new), 0 bytes (No change)

Alpha_kitkat

Expand to see flavor specifics

Universal APK

APK file size: 11 MiB (old), 12 MiB (new), 967 KiB (Added)

APK download size (estimated): 10 MiB (old), 11 MiB (new), 919 KiB (Added)

Method count: 136310 (old), 142805 (new), 6495 (Added)

Features: 2 (old), 2 (new), 0 (No change)

Permissions: 6 (old), 6 (new), 0 (No change)

Resources: 5034 (old), 5133 (new), 99 (Added)

  • Anim: 47 (old), 47 (new), 0 (No change)
  • Animator: 15 (old), 15 (new), 0 (No change)
  • Array: 15 (old), 15 (new), 0 (No change)
  • Attr: 742 (old), 742 (new), 0 (No change)
  • Bool: 10 (old), 10 (new), 0 (No change)
  • Color: 401 (old), 401 (new), 0 (No change)
  • Dimen: 834 (old), 834 (new), 0 (No change)
  • Drawable: 354 (old), 354 (new), 0 (No change)
  • Id: 938 (old), 965 (new), 27 (Added):
    • id/allowed_variables_edit_text (added)
    • id/debug_parsers_text_view (added)
    • id/exploration_test_fragment_placeholder (added)
    • id/math_expression_input_edit_text (added)
    • id/math_expression_input_error (added)
    • And 22 others
  • Integer: 38 (old), 38 (new), 0 (No change)
  • Interpolator: 11 (old), 11 (new), 0 (No change)
  • Layout: 303 (old), 307 (new), 4 (Added):
    • layout/developer_options_test_parsers_view (added)
    • layout/math_expression_interactions_item (added)
    • layout/math_expression_parser_activity (added)
    • layout/math_expression_parser_fragment (added)
  • Menu: 2 (old), 2 (new), 0 (No change)
  • Mipmap: 3 (old), 3 (new), 0 (No change)
  • Plurals: 10 (old), 10 (new), 0 (No change)
  • Raw: 1 (old), 1 (new), 0 (No change)
  • String: 549 (old), 617 (new), 68 (Added):
    • string/algebraic_expression_default_hint_text (added)
    • string/developer_options_math_expressions (added)
    • string/developer_options_test_parsers_label (added)
    • string/math_accessibility_a_divides_b (added)
    • string/math_accessibility_a_equals_b (added)
    • And 63 others
  • Style: 755 (old), 755 (new), 0 (No change)
  • Xml: 6 (old), 6 (new), 0 (No change)

Lesson assets: 71 (old), 73 (new), 2 (Added):

  • test_exp_id_5.json (added)
  • test_exp_id_5.pb (added)

AAB differences

Expand to see AAB specifics

Supported configurations:

  • hdpi (same)
  • ldpi (same)
  • mdpi (same)
  • tvdpi (same)
  • xhdpi (same)
  • xxhdpi (same)
  • xxxhdpi (same)
  • standalone-hdpi (same)
  • standalone-ldpi (same)
  • standalone-mdpi (same)
  • standalone-tvdpi (same)
  • standalone-xhdpi (same)
  • standalone-xxhdpi (same)
  • standalone-xxxhdpi (same)

Base APK

APK file size: 11 MiB (old), 12 MiB (new), 967 KiB (Added)
APK download size (estimated): 10 MiB (old), 11 MiB (new), 918 KiB (Added)
Method count: 136310 (old), 142805 (new), 6495 (Added)
Resources: 4969 (old), 5068 (new), 99 (Added)

  • Id: 938 (old), 965 (new), 27 (Added)
  • Layout: 303 (old), 307 (new), 4 (Added)
  • String: 549 (old), 617 (new), 68 (Added)

Lesson assets: 71 (old), 73 (new), 2 (Added)

Configuration hdpi

APK file size: 57 KiB (old), 57 KiB (new), 0 bytes (No change)
APK download size (estimated): 23 KiB (old), 23 KiB (new), 0 bytes (No change)

Configuration ldpi

APK file size: 54 KiB (old), 54 KiB (new), 0 bytes (No change)
APK download size (estimated): 18 KiB (old), 18 KiB (new), 0 bytes (No change)

Configuration mdpi

APK file size: 51 KiB (old), 51 KiB (new), 0 bytes (No change)
APK download size (estimated): 18 KiB (old), 18 KiB (new), 0 bytes (No change)

Configuration tvdpi

APK file size: 100 KiB (old), 100 KiB (new), 0 bytes (No change)
APK download size (estimated): 38 KiB (old), 38 KiB (new), 0 bytes (No change)

Configuration xhdpi

APK file size: 65 KiB (old), 65 KiB (new), 0 bytes (No change)
APK download size (estimated): 28 KiB (old), 28 KiB (new), 0 bytes (No change)

Configuration xxhdpi

APK file size: 74 KiB (old), 74 KiB (new), 0 bytes (No change)
APK download size (estimated): 38 KiB (old), 38 KiB (new), 0 bytes (No change)

Configuration xxxhdpi

APK file size: 77 KiB (old), 77 KiB (new), 0 bytes (No change)
APK download size (estimated): 39 KiB (old), 39 KiB (new), 0 bytes (No change)

Configuration standalone-hdpi

APK file size: 11 MiB (old), 12 MiB (new), 967 KiB (Added)
APK download size (estimated): 10 MiB (old), 11 MiB (new), 919 KiB (Added)
Method count: 136310 (old), 142805 (new), 6495 (Added)
Resources: 5034 (old), 5133 (new), 99 (Added)

  • Id: 938 (old), 965 (new), 27 (Added)
  • Layout: 303 (old), 307 (new), 4 (Added)
  • String: 549 (old), 617 (new), 68 (Added)

Lesson assets: 71 (old), 73 (new), 2 (Added)

Configuration standalone-ldpi

APK file size: 11 MiB (old), 12 MiB (new), 967 KiB (Added)
APK download size (estimated): 10 MiB (old), 11 MiB (new), 919 KiB (Added)
Method count: 136310 (old), 142805 (new), 6495 (Added)
Resources: 5034 (old), 5133 (new), 99 (Added)

  • Id: 938 (old), 965 (new), 27 (Added)
  • Layout: 303 (old), 307 (new), 4 (Added)
  • String: 549 (old), 617 (new), 68 (Added)

Lesson assets: 71 (old), 73 (new), 2 (Added)

Configuration standalone-mdpi

APK file size: 11 MiB (old), 12 MiB (new), 967 KiB (Added)
APK download size (estimated): 10 MiB (old), 11 MiB (new), 919 KiB (Added)
Method count: 136310 (old), 142805 (new), 6495 (Added)
Resources: 5034 (old), 5133 (new), 99 (Added)

  • Id: 938 (old), 965 (new), 27 (Added)
  • Layout: 303 (old), 307 (new), 4 (Added)
  • String: 549 (old), 617 (new), 68 (Added)

Lesson assets: 71 (old), 73 (new), 2 (Added)

Configuration standalone-tvdpi

APK file size: 11 MiB (old), 12 MiB (new), 967 KiB (Added)
APK download size (estimated): 10 MiB (old), 11 MiB (new), 919 KiB (Added)
Method count: 136310 (old), 142805 (new), 6495 (Added)
Resources: 5034 (old), 5133 (new), 99 (Added)

  • Id: 938 (old), 965 (new), 27 (Added)
  • Layout: 303 (old), 307 (new), 4 (Added)
  • String: 549 (old), 617 (new), 68 (Added)

Lesson assets: 71 (old), 73 (new), 2 (Added)

Configuration standalone-xhdpi

APK file size: 11 MiB (old), 12 MiB (new), 967 KiB (Added)
APK download size (estimated): 10 MiB (old), 11 MiB (new), 919 KiB (Added)
Method count: 136310 (old), 142805 (new), 6495 (Added)
Resources: 5034 (old), 5133 (new), 99 (Added)

  • Id: 938 (old), 965 (new), 27 (Added)
  • Layout: 303 (old), 307 (new), 4 (Added)
  • String: 549 (old), 617 (new), 68 (Added)

Lesson assets: 71 (old), 73 (new), 2 (Added)

Configuration standalone-xxhdpi

APK file size: 11 MiB (old), 12 MiB (new), 967 KiB (Added)
APK download size (estimated): 10 MiB (old), 11 MiB (new), 919 KiB (Added)
Method count: 136310 (old), 142805 (new), 6495 (Added)
Resources: 5034 (old), 5133 (new), 99 (Added)

  • Id: 938 (old), 965 (new), 27 (Added)
  • Layout: 303 (old), 307 (new), 4 (Added)
  • String: 549 (old), 617 (new), 68 (Added)

Lesson assets: 71 (old), 73 (new), 2 (Added)

Configuration standalone-xxxhdpi

APK file size: 11 MiB (old), 12 MiB (new), 967 KiB (Added)
APK download size (estimated): 10 MiB (old), 11 MiB (new), 919 KiB (Added)
Method count: 136310 (old), 142805 (new), 6495 (Added)
Resources: 5034 (old), 5133 (new), 99 (Added)

  • Id: 938 (old), 965 (new), 27 (Added)
  • Layout: 303 (old), 307 (new), 4 (Added)
  • String: 549 (old), 617 (new), 68 (Added)

Lesson assets: 71 (old), 73 (new), 2 (Added)

@oppiabot
Copy link

oppiabot bot commented Mar 29, 2022

Hi @BenHenning, I'm going to mark this PR as stale because it hasn't had any updates for 7 days. If no further activity occurs within 7 days, it will be automatically closed so that others can take up the issue.
If you are still working on this PR, please make a follow-up commit within 3 days (and submit it for review, if applicable). Please also let us know if you are stuck so we can help you!

@oppiabot oppiabot bot added the stale Corresponds to items that haven't seen a recent update and may be automatically closed. label Mar 29, 2022
@BenHenning
Copy link
Member Author

This PR has served its purpose, and the math PRs have been merged. Closing this.

@BenHenning BenHenning closed this Mar 30, 2022
@BenHenning BenHenning deleted the temp-check-build-stats-with-math-prs branch March 30, 2022 20:05
BenHenning added a commit that referenced this pull request Jun 12, 2024
## Explanation
Fixes part of #1719 and #3709

This PR introduces a new script & CI workflow for computing build stats
to compare both AABs and universal APKs between develop and the changes
in a given PR, as part of fixing #1719 (though this PR doesn't cover
everything outlined in that PR). This information is then detailed and
uploaded as a CI build artifact, and summarized & posted as a comment in
the PR. Some details included in the summary report:
- APK file/download size differences
- Method count differences
- Feature/permission differences
- New/removed resources & assets

The script supports computing differences for multiple "profiles" at the
same time, and the CI workflow has been set up to compute four:
1. dev
2. alpha
3. beta
4. GA

This workflow will be optional since it's very expensive to run (it has
to assemble 8 builds, 6 of which are Proguarded). It also doesn't really
need to be run in order to approve a PR, though reviewers may insist on
waiting for large or suspicious changes
(such as PRs introducing new dependencies) to ensure the actual affected
changes are as expected.

In order to mitigate this expense, the CI workflow runs on a scheduled
cron job off of develop across all open PRs and checks them in a group.
It runs at most once per day (based on
https://github.com/orgs/community/discussions/55768#discussioncomment-5941720)
so multiple changes to a PR will be picked up with a single check in the
next cron run. Currently, it will run even for a PR that hasn't changed
since the last run (but this is something that can be improved in the
future if it needs to be). It's being scheduled for 2:30am (02:30) UTC
which seems to have a few specific benefits:
- Per GitHub documentation, initiating the workflow outside the start of
the hour should reduce likelihood of cancellation (since the start of
the hour tends to use the most resources):
https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule.
- This corresponds to 7:30pm PT, 2:30am GMT, 8:00am IST, 5:30am EAT, and
12:30pm AEST (just as a basis for a different part of the world). It's
actually a very nice time that shouldn't overlap with almost any
development in main locations around the world, so it hopefully won't
impact Oppia organization GitHub CI resources.

The example output from these workflows can be observed in a few places:
- Later in this PR (for back when the PR was configured to run the new
workflow per PR change).
- In #4261 which demonstrates the large math PRs and how they changed
the builds back before those were merged.
-
https://github.com/BenHenning/oppia-android/actions/workflows/stats.yml
and https://github.com/BenHenning/oppia-android/pulls (specifically:
BenHenning#14,
BenHenning#13,
BenHenning#12) which demonstrates
the workflow running correctly from a scheduled cron
(https://github.com/BenHenning/oppia-android/actions/runs/9232187176)
and posting the updates to open PRs.

Beyond that, implementing this utility involved several significant
changes to various systems, including the build graph:
- Three new utilities were added for the script: Aapt2Client,
ApkAnalyzerClient, and BundleToolClient. Each of these correspond to
Android CLI utilities, but each required special considerations:
- Aapt2Client requires direct access to the Android SDK, but fortunately
android_sdk_repository exposes this as a target so it's trivial to pass
it in & call it. Some build information is needed, too (see next outer
point).
- ApkAnalyzerClient couldn't use the apkanalyzer CLI contained within
the SDK since it's not exported by android_sdk_repository. Instead, we
needed to depend on the CLI's internal implementation library (which I
suspect is what Android Studio probably uses for its own APK Analyzer
tool). This required some new implementation.
- BundleToolClient fortunately can call right into the bundle tool
library that we use when building AABs, but unfortunately that tool
appears to not be designed to be called multiple times in the same
process. Because Java doesn't support forking, we actually needed to
fake a fork function by starting a new Java process using the current
process's classpath in order to re-run bundle tool for each needed
routine. Additionally, bundle tool required
https://github.com/oppia/archive-patcher (which needed new BUILD files
since it only supported Gradle building previously) and a non-Android
version of Guava (see below for the changes this has caused).
- A new build_vars.bzl was introduced to define the build SDK & build
tools versions (this is done in a way where they can actually be passed
to the new script's utilities since it needs to access aapt2).
- rules_kotlin had a bug where resources wouldn't be pulled in properly
for kt_jvm_library (see
bazelbuild/rules_kotlin#281), but this was
mitigated in a previous PR by upgrading rules_kotlin past alpha 2.
- The new functionality required the JRE-compatible version of Guava
(over the Android-constrained library used in the codebase today), but
this introduces a one-version issue. The solution ended up being
isolating the JRE-compatible Guava library to its own library with a
slightly hacky direct reference to it in BundleToolClient. Some of the
other attempts at solving this resulted in some Maven reference cleanups
in existing script documentation. This functionality will be improved in
downstream PRs, but other attempts that were originally made to isolate
this cleanly were:
- Introduce multiple maven_install files and isolate dependencies into:
production, tests, scripts. This has a number of nice benefits (more
correct licenses and faster Maven dependency fetches for production),
but it results in very tricky one-version violations for test targets
that cross dependencies between production and tests.
- Isolated maven_install just for scripts. This is closer to the
solution we'll want long-term, but it was too much complexity to fully
introduce in this PR so it's been reworked into a downstream PR that can
focus on cleaning up third-party dependency management across the whole
codebase.

This PR is introducing a few new dependencies that, in turn, pull in a
*bunch* of transitive dependencies. These are all due to the new
``apkanalyzer`` dependency. While it will affect licenses for this
specific PR, once third-party dependencies for scripts are cleaned up in
a downstream PR they will be moved out (since they are script-only
dependencies).

Separately, also note that the AAPT2 utility requires stdout to be
processed continuously in order for the process to finish. This was one
of the primary reasons CommandExecutorImpl was reworked in #4929.

For testing: most of the changes in this PR have been extensively
manually tested. However, the new utilities are lacking significant
automated tests. Since this utility is a nice-to-have for the rest of
the Bazel PR chain, it's being prioritized to be merged in spite of
lacking code coverage. #4971 has been filed to track adding these
missing tests in the long-term.

## Essential Checklist
- [x] The PR title and explanation each start with "Fix #bugnum: " (If
this PR fixes part of an issue, prefix the title with "Fix part of
#bugnum: ...".)
- [x] Any changes to
[scripts/assets](https://github.com/oppia/oppia-android/tree/develop/scripts/assets)
files have their rationale included in the PR explanation.
- [x] The PR follows the [style
guide](https://github.com/oppia/oppia-android/wiki/Coding-style-guide).
- [x] The PR does not contain any unnecessary code changes from Android
Studio
([reference](https://github.com/oppia/oppia-android/wiki/Guidance-on-submitting-a-PR#undo-unnecessary-changes)).
- [x] The PR is made from a branch that's **not** called "develop" and
is up-to-date with "develop".
- [x] The PR is **assigned** to the appropriate reviewers
([reference](https://github.com/oppia/oppia-android/wiki/Guidance-on-submitting-a-PR#clarification-regarding-assignees-and-reviewers-section)).

## For UI-specific PRs only
N/A -- This only affects CI workflows & the build system. Technically,
some dependency changes in the build system could have UI effects, but
there should be no such changes in this PR.

---------

Co-authored-by: Adhiambo Peres <[email protected]>
Co-authored-by: Sean Lip <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
stale Corresponds to items that haven't seen a recent update and may be automatically closed.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant