[FEATURE] Adds structured coroutines - #203
Merged
Merged
Conversation
added 8 commits
September 11, 2026 15:54
…structured coroutines toolkit
…s for improved performance and parallel test execution
… version 9.7.1 and adjust properties for improved execution
…dX and resource ID properties from gradle.properties
…or structured coroutines toolkit with rationale and recommendations
…classes for improved build performance and resource management
… lint rules and configuration
… upload lint reports on failure
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
Unresolved lint enforcement, wrapper reliability, and test parallelization issues remain.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Integrates structured-coroutines lint rules, updates Gradle/CI configuration, and switches feature composables to shared resources.
Changes:
- Adds lint dependencies, rules, reporting, and documentation.
- Updates Gradle tooling and test configuration.
- Corrects shared resource references across feature modules.
File summaries
| File | Summary |
|---|---|
lint.xml |
Configures structured-coroutines rules; lint failures are not currently enforced, and test-only rules are ignored. |
gradlew.bat |
Updates Windows wrapper logic; explicit exits are needed for missing or invalid Java configurations. |
gradlew |
Updates the generated wrapper script reference. |
gradle/wrapper/gradle-wrapper.properties |
Updates Gradle distribution settings; retries=0 reduces bootstrap reliability. |
gradle/libs.versions.toml |
Adds lint dependency coordinates and tool versions. |
gradle.properties |
Adds build and test settings; JUnit parallel settings are not forwarded and may make tests unsafe. |
feature/settings/src/main/java/com/alxnophis/jetpack/settings/ui/composable/SettingsManageSubscriptionItem.kt |
Uses a shared arrow resource. |
feature/posts/src/main/java/com/alxnophis/jetpack/posts/ui/composable/PostNotSelectedComposable.kt |
Uses a shared error resource. |
feature/posts/src/main/java/com/alxnophis/jetpack/posts/ui/composable/PostDetailScreen.kt |
Uses shared close and error resources. |
feature/movies/src/main/kotlin/com/alxnophis/jetpack/movies/ui/composable/MovieErrorContent.kt |
Uses a shared error resource. |
feature/file-downloader/src/main/java/com/alxnophis/jetpack/filedownloader/ui/composable/FileDownloaderScreen.kt |
Uses shared close and error resources. |
feature/authentication/src/main/java/com/alxnophis/jetpack/authentication/ui/composable/AuthenticationForm.kt |
Uses shared authentication icons. |
docs/plans/structured_coroutines_integration_plan.md |
Documents the structured-coroutines integration roadmap. |
buildSystem/gradle/common-app-base.gradle |
Applies lint configuration to the application module. |
buildSystem/gradle/common-android-base.gradle |
Applies lint configuration to Android modules. |
AGENTS.md |
Documents lint validation workflows. |
.github/workflows/android_ci.yml |
Runs lint and uploads reports. |
Review details
Suppressed comments (4)
gradle.properties:71
- The
junit.*entries ingradle.propertiesare Gradle project properties, while JUnit Platform reads these settings as system properties; theTestconfiguration does not forward them. Therefore this block does not enable the advertised parallel execution. Configure the settings throughjunit-platform.propertiesorTest.systemProperty, and serialize or isolate the existing tests that mutate globalDispatchers.Main.
junit.jupiter.execution.parallel.enabled=true
gradle.properties:74
- Running Jupiter test methods concurrently is unsafe for this suite:
PostsViewModelUnitTestsusesPER_CLASSand resets a shared Mockito mock inbeforeEach, whileBaseViewModelUnitTestmutates globalDispatchers.Mainin setup/teardown. With this setting those operations can overlap and make tests flaky. Keep methods same-thread unless the suite is made parallel-safe.
junit.jupiter.execution.parallel.mode.default=concurrent
gradlew.bat:68
- The invalid-
JAVA_HOMEpath has the same control-flow bug:cmd /c exit 1returns from the child process but the batch script continues into:execute, where it tries to run the invalid Java path. Return from the batch file instead.
"%COMSPEC%" /c exit 1
lint.xml:20
RunBlockingWithDelayInTestandRunBlockingInsteadOfRunTestonly inspect test files, but every module setsignoreTestSources = truein its lint block. These newly enabled rules therefore never run on the sources they target. Either include test sources for this lint invocation or remove the test-only rules from this configuration.
<issue id="RunBlockingWithDelayInTest" severity="warning" />
<issue id="RunBlockingInsteadOfRunTest" severity="warning" />
- Files reviewed: 17/18 changed files
- Comments generated: 3
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
added 6 commits
September 13, 2026 12:27
…ncellationException in error handling
…routineScope warning
…tineScope warning and refactor event handling in LocationTrackerViewModel
…ling and remove unnecessary coroutine launches in HomeViewModel
…tine handling and streamline game logic in BallClickerViewModel
alex-amenos
force-pushed
the
feature/structured-coroutines
branch
from
September 13, 2026 10:49
4f41a4e to
a2803ab
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
⚡️ Proposed Changes
ℹ️ Additional Info
🔗 Related Links
✅ Checklist
📷 Screenshots