Skip to content

[FEATURE] Adds structured coroutines - #203

Merged
alex-amenos merged 15 commits into
mainfrom
feature/structured-coroutines
Sep 13, 2026
Merged

[FEATURE] Adds structured coroutines#203
alex-amenos merged 15 commits into
mainfrom
feature/structured-coroutines

Conversation

@alex-amenos

@alex-amenos alex-amenos commented Sep 11, 2026

Copy link
Copy Markdown
Owner

⚡️ Proposed Changes

  • Updates Gradle and AGP
  • Updates and fixes gradle.properties
  • Adds Structured Coroutines Toolkit
  • Fixes coroutines issues

ℹ️ Additional Info

  • Add any additional useful context or info

🔗 Related Links

✅ Checklist

  • Unit Tests
  • Integration Tests
  • Compose Tests
  • Screenshot Tests
  • Updated string
  • Manually tested

📷 Screenshots

Alex added 8 commits September 11, 2026 15:54
…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
Copilot AI lite review requested due to automatic review settings September 11, 2026 15:00
@alex-amenos alex-amenos self-assigned this Sep 11, 2026
@alex-amenos alex-amenos added the WIP Work In Progres label Sep 11, 2026
@alex-amenos alex-amenos changed the title Feature/structured coroutines [FEATURE] Adds structured coroutines Sep 11, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 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 in gradle.properties are Gradle project properties, while JUnit Platform reads these settings as system properties; the Test configuration does not forward them. Therefore this block does not enable the advertised parallel execution. Configure the settings through junit-platform.properties or Test.systemProperty, and serialize or isolate the existing tests that mutate global Dispatchers.Main.
junit.jupiter.execution.parallel.enabled=true

gradle.properties:74

  • Running Jupiter test methods concurrently is unsafe for this suite: PostsViewModelUnitTests uses PER_CLASS and resets a shared Mockito mock in beforeEach, while BaseViewModelUnitTest mutates global Dispatchers.Main in 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_HOME path has the same control-flow bug: cmd /c exit 1 returns 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

  • RunBlockingWithDelayInTest and RunBlockingInsteadOfRunTest only inspect test files, but every module sets ignoreTestSources = true in 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.

Comment thread gradle/wrapper/gradle-wrapper.properties
Comment thread gradlew.bat
Comment thread lint.xml
@alex-amenos
alex-amenos force-pushed the feature/structured-coroutines branch from 4f41a4e to a2803ab Compare September 13, 2026 10:49
@alex-amenos alex-amenos added Documentation Improvements or additions to documentation Enhancement New feature or request and removed WIP Work In Progres labels Sep 13, 2026
@alex-amenos
alex-amenos merged commit efbdd6c into main Sep 13, 2026
2 checks passed
@alex-amenos
alex-amenos deleted the feature/structured-coroutines branch September 13, 2026 12:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Documentation Improvements or additions to documentation Enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants