Skip to content

Commit

Permalink
Fix part of #4044, part of #1617: Replace proto formatting mechanism (#…
Browse files Browse the repository at this point in the history
…4045)

## Explanation
Fix part of #4044
Fix part of #1617
This PR makes #1543 obsolete once merged.
Originally copied from #2173 when it was in proof-of-concept form

This PR replaces the proto formatting mechanism (or, rather, makes it obsolete) by leveraging a feature of Bazel's proto library that allows the import prefix to be stripped. This ensures that the generated protos are treated as though they're in the same directory (which is how they were set up before per Gradle's requirement). The main benefit of this slightly cleaner approach is it allows the textproto conversion pipeline to work for protos that import other protos (otherwise the path doesn't match up, and it ends up with a Bazel error).

This required introducing a new proto library to ensure the prefix is properly stripped, and thus this PR introduces a regex check + test to force this check. As part of introducing this check, file matching & exemption checking now allows for more flexible regex (via checks).

## 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 changes build infrastructure & has no direct impact on user interfaces.

Commit history:

* Copy proto-based changes from #2173.

* Post-merge fix.

* Add regex check, docs, and resolve TODOs.

This also changes regex handling in the check to be more generic for
better flexibility when matching files.

* Lint fix.

* Fix broken build.

* Post-merge fix.
  • Loading branch information
BenHenning authored Mar 25, 2022
1 parent 3087e16 commit edcfe94
Show file tree
Hide file tree
Showing 51 changed files with 496 additions and 473 deletions.
12 changes: 6 additions & 6 deletions app/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -546,8 +546,8 @@ android_library(
":views",
"//app/src/main/java/org/oppia/android/app/translation:app_language_activity_injector_provider",
"//app/src/main/java/org/oppia/android/app/translation:app_language_resource_handler",
"//model:interaction_object_java_proto_lite",
"//model:thumbnail_java_proto_lite",
"//model/src/main/proto:interaction_object_java_proto_lite",
"//model/src/main/proto:thumbnail_java_proto_lite",
"//third_party:androidx_annotation_annotation",
"//third_party:androidx_constraintlayout_constraintlayout",
"//third_party:androidx_core_core",
Expand Down Expand Up @@ -578,8 +578,8 @@ kt_android_library(
deps = [
":dagger",
"//domain/src/main/java/org/oppia/android/domain/audio:cellular_audio_dialog_controller",
"//model:question_java_proto_lite",
"//model:topic_java_proto_lite",
"//model/src/main/proto:question_java_proto_lite",
"//model/src/main/proto:topic_java_proto_lite",
"//third_party:androidx_recyclerview_recyclerview",
],
)
Expand Down Expand Up @@ -686,7 +686,7 @@ android_library(
":view_models",
"//app/src/main/java/org/oppia/android/app/translation:app_language_activity_injector_provider",
"//app/src/main/java/org/oppia/android/app/translation:app_language_resource_handler",
"//model:thumbnail_java_proto_lite",
"//model/src/main/proto:thumbnail_java_proto_lite",
"//third_party:androidx_annotation_annotation",
"//third_party:androidx_constraintlayout_constraintlayout",
"//third_party:androidx_lifecycle_lifecycle-livedata-core",
Expand Down Expand Up @@ -749,8 +749,8 @@ kt_android_library(
"//domain/src/main/java/org/oppia/android/domain/oppialogger:startup_listener",
"//domain/src/main/java/org/oppia/android/domain/oppialogger/exceptions:logger_module",
"//domain/src/main/java/org/oppia/android/domain/oppialogger/loguploader:worker_module",
"//model/src/main/proto:arguments_java_proto_lite",
"//domain/src/main/java/org/oppia/android/domain/profile:profile_management_controller",
"//model:arguments_java_proto_lite",
"//app/src/main/java/org/oppia/android/app/testing/activity:test_activity",
"//third_party:androidx_databinding_databinding-adapters",
"//third_party:androidx_databinding_databinding-common",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,6 @@ kt_android_library(
"//app:app_visibility",
],
deps = [
"//model:profile_java_proto_lite",
"//model/src/main/proto:profile_java_proto_lite",
],
)
4 changes: 2 additions & 2 deletions config/config_proto_assets.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ def generate_supported_languages_configuration_from_text_proto(
names = [supported_language_text_proto_file_name],
proto_dep_name = "languages",
proto_type_name = "SupportedLanguages",
name_prefix = name,
name_prefix = "supported_languages",
asset_dir = "languages",
proto_dep_bazel_target_prefix = "//model",
proto_dep_bazel_target_prefix = "//model/src/main/proto",
proto_package = "model",
)
4 changes: 2 additions & 2 deletions config/src/java/org/oppia/android/config/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ _SUPPORTED_LANGUAGES_CONFIG_ASSETS = generate_proto_binary_assets(
asset_dir = "languages",
name_prefix = "supported_languages_config_assets",
names = ["supported_languages"],
proto_dep_bazel_target_prefix = "//model",
proto_dep_bazel_target_prefix = "//model/src/main/proto",
proto_dep_name = "languages",
proto_package = "model",
proto_type_name = "SupportedLanguages",
Expand All @@ -21,7 +21,7 @@ _SUPPORTED_REGIONS_CONFIG_ASSETS = generate_proto_binary_assets(
asset_dir = "languages",
name_prefix = "supported_regions_config_assets",
names = ["supported_regions"],
proto_dep_bazel_target_prefix = "//model",
proto_dep_bazel_target_prefix = "//model/src/main/proto",
proto_dep_name = "languages",
proto_package = "model",
proto_type_name = "SupportedRegions",
Expand Down
2 changes: 1 addition & 1 deletion data/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ TEST_DEPS = [
"//data/src/main/java/org/oppia/android/data/backends/gae:prod_module",
"//data/src/main/java/org/oppia/android/data/backends/gae/model",
"//data/src/main/java/org/oppia/android/data/persistence:cache_store",
"//model:test_models",
"//model/src/main/proto:test_models",
"//testing",
"//testing/src/main/java/org/oppia/android/testing/network",
"//testing/src/main/java/org/oppia/android/testing/network:test_module",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ kt_android_library(
deps = [
":constants",
":network_config_annotations",
"//model:arguments_java_proto_lite",
"//model/src/main/proto:arguments_java_proto_lite",
"//third_party:com_squareup_okhttp3_okhttp",
"//third_party:javax_inject_javax_inject",
"//utility/src/main/java/org/oppia/android/util/extensions:context_extensions",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ kt_android_library(
visibility = ["//:oppia_api_visibility"],
deps = [
":dagger",
"//model:profile_java_proto_lite",
"//model/src/main/proto:profile_java_proto_lite",
"//utility",
"//utility/src/main/java/org/oppia/android/util/data:async_data_subscription_manager",
"//utility/src/main/java/org/oppia/android/util/data:async_result",
Expand Down
12 changes: 6 additions & 6 deletions domain/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -114,11 +114,11 @@ kt_android_library(
"//domain/src/main/java/org/oppia/android/domain/util:asset",
"//domain/src/main/java/org/oppia/android/domain/util:extensions",
"//domain/src/main/java/org/oppia/android/domain/util:retriever",
"//model:exploration_checkpoint_java_proto_lite",
"//model:onboarding_java_proto_lite",
"//model:platform_parameter_java_proto_lite",
"//model:question_java_proto_lite",
"//model:topic_java_proto_lite",
"//model/src/main/proto:exploration_checkpoint_java_proto_lite",
"//model/src/main/proto:onboarding_java_proto_lite",
"//model/src/main/proto:platform_parameter_java_proto_lite",
"//model/src/main/proto:question_java_proto_lite",
"//model/src/main/proto:topic_java_proto_lite",
"//third_party:androidx_work_work-runtime-ktx",
"//utility/src/main/java/org/oppia/android/util/caching:topic_list_to_cache",
"//utility/src/main/java/org/oppia/android/util/data:data_providers",
Expand Down Expand Up @@ -153,7 +153,7 @@ kt_android_library(
"src/test/java/org/oppia/android/domain/classify/InteractionObjectTestBuilder.kt",
],
deps = [
"//model:question_java_proto_lite",
"//model/src/main/proto:question_java_proto_lite",
],
)

Expand Down
24 changes: 12 additions & 12 deletions domain/domain_assets.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -32,53 +32,53 @@ def generate_assets_list_from_text_protos(
names = topic_list_file_names,
proto_dep_name = "topic",
proto_type_name = "TopicIdList",
name_prefix = name,
name_prefix = "topic_id_list",
asset_dir = "src/main/assets",
proto_dep_bazel_target_prefix = "//model",
proto_dep_bazel_target_prefix = "//model/src/main/proto",
proto_package = "model",
) + generate_proto_binary_assets(
name = name,
names = topic_file_names,
proto_dep_name = "topic",
proto_type_name = "TopicRecord",
name_prefix = name,
name_prefix = "topic_record",
asset_dir = "src/main/assets",
proto_dep_bazel_target_prefix = "//model",
proto_dep_bazel_target_prefix = "//model/src/main/proto",
proto_package = "model",
) + generate_proto_binary_assets(
name = name,
names = subtopic_file_names,
proto_dep_name = "topic",
proto_type_name = "SubtopicRecord",
name_prefix = name,
name_prefix = "subtopic_record",
asset_dir = "src/main/assets",
proto_dep_bazel_target_prefix = "//model",
proto_dep_bazel_target_prefix = "//model/src/main/proto",
proto_package = "model",
) + generate_proto_binary_assets(
name = name,
names = story_file_names,
proto_dep_name = "topic",
proto_type_name = "StoryRecord",
name_prefix = name,
name_prefix = "story_record",
asset_dir = "src/main/assets",
proto_dep_bazel_target_prefix = "//model",
proto_dep_bazel_target_prefix = "//model/src/main/proto",
proto_package = "model",
) + generate_proto_binary_assets(
name = name,
names = skills_file_names,
proto_dep_name = "topic",
proto_type_name = "ConceptCardList",
name_prefix = name,
name_prefix = "concept_card_list",
asset_dir = "src/main/assets",
proto_dep_bazel_target_prefix = "//model",
proto_dep_bazel_target_prefix = "//model/src/main/proto",
proto_package = "model",
) + generate_proto_binary_assets(
name = name,
names = exploration_file_names,
proto_dep_name = "exploration",
proto_type_name = "Exploration",
name_prefix = name,
name_prefix = "exploration",
asset_dir = "src/main/assets",
proto_dep_bazel_target_prefix = "//model",
proto_dep_bazel_target_prefix = "//model/src/main/proto",
proto_package = "model",
)
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ kt_android_library(
deps = [
"//data/src/main/java/org/oppia/android/data/persistence:cache_store",
"//domain/src/main/java/org/oppia/android/domain/oppialogger:oppia_logger",
"//model:topic_java_proto_lite",
"//model/src/main/proto:topic_java_proto_lite",
"//third_party:javax_inject_javax_inject",
"//utility/src/main/java/org/oppia/android/util/data:data_provider",
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ kt_android_library(
deps = [
":classification_result",
":interaction_classifier",
"//model:exploration_java_proto_lite",
"//model:interaction_object_java_proto_lite",
"//model:translation_java_proto_lite",
"//model/src/main/proto:exploration_java_proto_lite",
"//model/src/main/proto:interaction_object_java_proto_lite",
"//model/src/main/proto:translation_java_proto_lite",
"//third_party:javax_inject_javax_inject",
],
)
Expand All @@ -28,7 +28,7 @@ kt_android_library(
],
visibility = ["//:oppia_api_visibility"],
deps = [
"//model:exploration_java_proto_lite",
"//model/src/main/proto:exploration_java_proto_lite",
],
)

Expand Down Expand Up @@ -77,8 +77,8 @@ kt_android_library(
],
visibility = ["//:__subpackages__"],
deps = [
"//model:interaction_object_java_proto_lite",
"//model:translation_java_proto_lite",
"//model/src/main/proto:interaction_object_java_proto_lite",
"//model/src/main/proto:translation_java_proto_lite",
],
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ kt_android_library(
deps = [
":rule_classifier_provider",
"//domain/src/main/java/org/oppia/android/domain/classify:rule_classifier",
"//model:interaction_object_java_proto_lite",
"//model:translation_java_proto_lite",
"//model/src/main/proto:interaction_object_java_proto_lite",
"//model/src/main/proto:translation_java_proto_lite",
"//third_party:javax_inject_javax_inject",
],
)
Expand All @@ -30,7 +30,7 @@ kt_android_library(
visibility = ["//:__subpackages__"],
deps = [
"//domain/src/main/java/org/oppia/android/domain/classify:rule_classifier",
"//model:translation_java_proto_lite",
"//model/src/main/proto:translation_java_proto_lite",
"//third_party:javax_inject_javax_inject",
],
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ kt_android_library(
"//domain/src/main/java/org/oppia/android/domain/classify/rules:generic_rule_classifier",
"//domain/src/main/java/org/oppia/android/domain/classify/rules:rule_classifier_provider",
"//domain/src/main/java/org/oppia/android/domain/util:extensions",
"//model:interaction_object_java_proto_lite",
"//model:translation_java_proto_lite",
"//model/src/main/proto:interaction_object_java_proto_lite",
"//model/src/main/proto:translation_java_proto_lite",
"//third_party:javax_inject_javax_inject",
],
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ kt_android_library(
"//domain/src/main/java/org/oppia/android/domain/classify/rules:generic_rule_classifier",
"//domain/src/main/java/org/oppia/android/domain/classify/rules:rule_classifier_provider",
"//domain/src/main/java/org/oppia/android/domain/util:extensions",
"//model:interaction_object_java_proto_lite",
"//model:translation_java_proto_lite",
"//model/src/main/proto:interaction_object_java_proto_lite",
"//model/src/main/proto:translation_java_proto_lite",
"//third_party:javax_inject_javax_inject",
],
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ kt_android_library(
"//domain/src/main/java/org/oppia/android/domain/classify/rules:generic_rule_classifier",
"//domain/src/main/java/org/oppia/android/domain/classify/rules:rule_classifier_provider",
"//domain/src/main/java/org/oppia/android/domain/util:extensions",
"//model:interaction_object_java_proto_lite",
"//model:translation_java_proto_lite",
"//model/src/main/proto:interaction_object_java_proto_lite",
"//model/src/main/proto:translation_java_proto_lite",
"//third_party:javax_inject_javax_inject",
],
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ kt_android_library(
"//domain/src/main/java/org/oppia/android/domain/classify/rules:generic_rule_classifier",
"//domain/src/main/java/org/oppia/android/domain/classify/rules:rule_classifier_provider",
"//domain/src/main/java/org/oppia/android/domain/util:extensions",
"//model:interaction_object_java_proto_lite",
"//model:translation_java_proto_lite",
"//model/src/main/proto:interaction_object_java_proto_lite",
"//model/src/main/proto:translation_java_proto_lite",
"//third_party:javax_inject_javax_inject",
],
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ kt_android_library(
"//domain/src/main/java/org/oppia/android/domain/classify/rules:generic_rule_classifier",
"//domain/src/main/java/org/oppia/android/domain/classify/rules:rule_classifier_provider",
"//domain/src/main/java/org/oppia/android/domain/util:extensions",
"//model:interaction_object_java_proto_lite",
"//model:translation_java_proto_lite",
"//model/src/main/proto:interaction_object_java_proto_lite",
"//model/src/main/proto:translation_java_proto_lite",
"//third_party:javax_inject_javax_inject",
],
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ kt_android_library(
"//domain/src/main/java/org/oppia/android/domain/classify/rules:generic_rule_classifier",
"//domain/src/main/java/org/oppia/android/domain/classify/rules:rule_classifier_provider",
"//domain/src/main/java/org/oppia/android/domain/util:extensions",
"//model:interaction_object_java_proto_lite",
"//model:translation_java_proto_lite",
"//model/src/main/proto:interaction_object_java_proto_lite",
"//model/src/main/proto:translation_java_proto_lite",
"//third_party:javax_inject_javax_inject",
],
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ kt_android_library(
"//domain/src/main/java/org/oppia/android/domain/classify/rules:generic_rule_classifier",
"//domain/src/main/java/org/oppia/android/domain/classify/rules:rule_classifier_provider",
"//domain/src/main/java/org/oppia/android/domain/util:extensions",
"//model:interaction_object_java_proto_lite",
"//model:translation_java_proto_lite",
"//model/src/main/proto:interaction_object_java_proto_lite",
"//model/src/main/proto:translation_java_proto_lite",
"//third_party:javax_inject_javax_inject",
],
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ kt_android_library(
"//domain/src/main/java/org/oppia/android/domain/classify/rules:generic_rule_classifier",
"//domain/src/main/java/org/oppia/android/domain/classify/rules:rule_classifier_provider",
"//domain/src/main/java/org/oppia/android/domain/util:extensions",
"//model:interaction_object_java_proto_lite",
"//model:translation_java_proto_lite",
"//model/src/main/proto:interaction_object_java_proto_lite",
"//model/src/main/proto:translation_java_proto_lite",
"//third_party:javax_inject_javax_inject",
],
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ kt_android_library(
"//domain/src/main/java/org/oppia/android/domain/classify/rules:rule_classifier_provider",
"//domain/src/main/java/org/oppia/android/domain/translation:translation_controller",
"//domain/src/main/java/org/oppia/android/domain/util:extensions",
"//model:exploration_java_proto_lite",
"//model:interaction_object_java_proto_lite",
"//model:translation_java_proto_lite",
"//model/src/main/proto:exploration_java_proto_lite",
"//model/src/main/proto:interaction_object_java_proto_lite",
"//model/src/main/proto:translation_java_proto_lite",
"//third_party:javax_inject_javax_inject",
"//utility/src/main/java/org/oppia/android/util/locale:oppia_locale",
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ kt_android_library(
":display_locale_impl",
":language_config_retriever",
"//domain/src/main/java/org/oppia/android/domain/oppialogger:oppia_logger",
"//model:languages_java_proto_lite",
"//model/src/main/proto:languages_java_proto_lite",
"//utility/src/main/java/org/oppia/android/util/data:async_result",
"//utility/src/main/java/org/oppia/android/util/data:data_provider",
"//utility/src/main/java/org/oppia/android/util/locale:oppia_locale",
Expand Down Expand Up @@ -64,7 +64,7 @@ kt_android_library(
"//domain:domain_testing_visibility",
],
deps = [
"//model:languages_java_proto_lite",
"//model/src/main/proto:languages_java_proto_lite",
"//utility/src/main/java/org/oppia/android/util/locale:oppia_locale",
],
)
Expand All @@ -80,7 +80,7 @@ kt_android_library(
deps = [
":dagger",
"//config/src/java/org/oppia/android/config:languages_config",
"//model:languages_java_proto_lite",
"//model/src/main/proto:languages_java_proto_lite",
"//utility/src/main/java/org/oppia/android/util/caching:annotations",
"//utility/src/main/java/org/oppia/android/util/caching:asset_repository",
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ kt_android_library(
":exploration_meta_data_retriever",
"//data/src/main/java/org/oppia/android/data/persistence:cache_store",
"//domain/src/main/java/org/oppia/android/domain/oppialogger:oppia_logger",
"//model:onboarding_java_proto_lite",
"//model/src/main/proto:onboarding_java_proto_lite",
"//third_party:javax_inject_javax_inject",
"//utility/src/main/java/org/oppia/android/util/data:data_provider",
"//utility/src/main/java/org/oppia/android/util/data:data_providers",
Expand Down
Loading

0 comments on commit edcfe94

Please sign in to comment.