Skip to content

chore: update dependencies and project configuration#124

Merged
ArthurKun21 merged 28 commits intomasterfrom
chore/update-deps
Jan 29, 2026
Merged

chore: update dependencies and project configuration#124
ArthurKun21 merged 28 commits intomasterfrom
chore/update-deps

Conversation

@ArthurKun21
Copy link
Copy Markdown
Owner

Pull Request Type

  • Chore
  • Bugfix
  • Feature Implementation
  • Documentation
  • Other

Related issue

Description

  • Added BuildSrc
  • Update AGP to 9.0

Screenshots

Testing

Additional context

@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello @ArthurKun21, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly modernizes the project's build infrastructure and development setup. By migrating common build logic into buildSrc, it enhances maintainability and consistency across modules. Key dependencies, including the Android Gradle Plugin and Gradle itself, have been updated to their latest versions, ensuring compatibility and access to new features. Additionally, a new DevContainer configuration has been introduced to standardize the development environment, facilitating easier onboarding and consistent development experiences.

Highlights

  • Build Logic Centralization: Introduced buildSrc to centralize and manage Gradle build logic, making build configurations more organized and reusable across modules.
  • Dependency Updates: Updated the Android Gradle Plugin (AGP) to version 9.0.0, Gradle to 9.3.0, Compose BOM to 2026.01.01, Hilt to 2.59, and KSP to 2.3.5.
  • Development Environment Setup: Added a new .devcontainer configuration, including a Dockerfile and devcontainer.json, to provide a consistent Java and Android development environment with pre-installed tools and VS Code extensions.
  • Build Script Refactoring: Refactored module-level build.gradle.kts files to leverage the new buildSrc plugins, simplifying their content by abstracting common configurations like SDK versions and compile options.
  • Git Ignore Enhancements: Updated the .gitignore file to include new build artifacts and Kotlin-related directories, improving repository cleanliness.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces a significant improvement by migrating build logic to buildSrc, which enhances maintainability and centralizes configuration. The dependency updates, including AGP and Gradle, are also valuable. I've identified a critical issue in the new Dockerfile that will prevent the dev container from building due to an invalid URL. Additionally, there are a few minor style inconsistencies in newly added files that contradict the project's own Spotless formatting rules. After addressing these points, the PR will be in great shape.

@ArthurKun21
Copy link
Copy Markdown
Owner Author

/gemini summary

@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

This pull request focuses on a significant overhaul of the project's build infrastructure and development environment. The primary goal is to streamline the build process, ensure up-to-date dependencies, and provide a consistent development setup. By centralizing build logic within 'buildSrc' and updating core tools like AGP and Gradle, the project aims for improved maintainability and easier future upgrades. The introduction of a DevContainer further standardizes the development experience, making it simpler for contributors to set up and work on the project.

Highlights

  • Build System Modernization: Introduced 'buildSrc' for centralized Gradle build logic, enhancing maintainability and reusability across modules by abstracting common configurations.
  • Dependency and Tooling Updates: Upgraded key dependencies including Android Gradle Plugin (AGP) to 9.0.0, Gradle to 9.3.0, Compose BOM to 2026.01.01, Hilt to 2.59, and KSP to 2.3.5, ensuring the project uses the latest stable versions.
  • Standardized Development Environment: Added a new '.devcontainer' configuration, including a Dockerfile and 'devcontainer.json', to provide a consistent Java and Android development environment with pre-installed tools and VS Code extensions.
  • Build Script Simplification: Refactored module-level 'build.gradle.kts' files to leverage the new 'buildSrc' plugins, significantly reducing boilerplate and improving readability.
  • Documentation and Cleanup: Updated 'README.md' with new dependency import instructions and removed the Chinese 'README_CN.md'. The '.gitignore' was also updated for better repository cleanliness.
Changelog
  • .devcontainer/Dockerfile
    • New file added to define a Docker image for a Java 17 and Android development environment, including SDK tools and platform-tools.
  • .devcontainer/devcontainer.json
    • New file added to configure the VS Code DevContainer, specifying the Dockerfile, Java feature, and recommended extensions like GitHub Copilot.
  • .gitignore
    • Modified to ignore 'build' and '.kotlin' directories directly.
    • Removed a redundant '.kotlin/*' entry.
  • README.md
    • Updated the Jitpack badge URL.
    • Removed the link to the Chinese README.
    • Revised dependency import instructions to use Kotlin DSL syntax.
    • Changed the dependency artifact name.
    • Simplified advanced usage sections by removing details on dialogs, ViewModel, and 'LocalComposeFloatingWindow' in favor of a general 'Sample Apps' reference.
    • Added a new 'Service' section with code examples.
  • README_CN.md
    • This file was removed.
  • build.gradle.kts
    • Top-level build file was simplified by removing direct plugin applications and Spotless configuration, which are now managed via 'buildSrc'.
  • buildSrc/build.gradle.kts
    • New file added to configure the 'buildSrc' module, enabling Kotlin DSL and defining dependencies for Gradle plugins.
  • buildSrc/settings.gradle.kts
    • New file added to configure version catalogs for the 'buildSrc' module.
  • buildSrc/src/main/kotlin/android.application.gradle.kts
    • New Gradle plugin definition for Android application modules, encapsulating common Android and Compose build features.
  • buildSrc/src/main/kotlin/android.tests.gradle.kts
    • New Gradle plugin definition for Android application test configurations, including common test dependencies.
  • buildSrc/src/main/kotlin/buildLogic/AndroidConfig.kt
    • New Kotlin object defining constants for Android SDK versions (compile, target, min) and Java/JVM targets.
  • buildSrc/src/main/kotlin/buildLogic/ProjectExtensions.kt
    • New Kotlin file providing extension functions for 'Project' to configure common Android settings.
  • buildSrc/src/main/kotlin/code.lint.gradle.kts
    • New Gradle plugin definition for Spotless code formatting, including Kotlin and XML rules.
  • buildSrc/src/main/kotlin/library.gradle.kts
    • New Gradle plugin definition for Android library modules, encapsulating common Android and Compose build features.
  • buildSrc/src/main/kotlin/library.tests.gradle.kts
    • New Gradle plugin definition for Android library test configurations.
  • buildSrc/src/main/kotlin/sample.common.deps.gradle.kts
    • New Gradle plugin definition for common dependencies used across sample application modules.
  • gradle/libs.versions.toml
    • Updated versions for Android Gradle Plugin (AGP) to 9.0.0, Compose BOM to 2026.01.01, Hilt to 2.59, KSP to 2.3.5, and Spotless to 8.2.1.
    • Added new entries for Gradle-related libraries used in 'buildSrc'.
  • gradle/wrapper/gradle-wrapper.properties
    • Updated the Gradle distribution URL to 'gradle-9.3.0-bin.zip'.
  • library/build.gradle.kts
    • Refactored to use the new 'library' and 'library.tests' plugins from 'buildSrc'.
    • Removed redundant 'android' block configurations and test dependencies.
  • samples/app-activity/build.gradle.kts
    • Refactored to use the new 'android.application', 'android.tests', and 'sample.common.deps' plugins from 'buildSrc'.
    • Removed redundant 'android' block configurations and common dependencies.
  • samples/fullscreen-dialog/build.gradle.kts
    • Refactored to use the new 'android.application', 'android.tests', and 'sample.common.deps' plugins from 'buildSrc'.
    • Removed redundant 'android' block configurations and common dependencies.
  • samples/keyboard-usage/build.gradle.kts
    • Refactored to use the new 'android.application', 'android.tests', and 'sample.common.deps' plugins from 'buildSrc'.
    • Removed redundant 'android' block configurations and common dependencies.
  • samples/service-hilt/build.gradle.kts
    • Refactored to use the new 'android.application', 'android.tests', and 'sample.common.deps' plugins from 'buildSrc'.
    • Removed redundant 'android' block configurations and common dependencies.
    • Removed the 'kotlin-metadata' dependency workaround.
Ignored Files
  • Ignored by pattern: .github/workflows/** (2)
    • .github/workflows/build.yml
    • .github/workflows/lint.yml
Activity
  • gemini-code-assist[bot] provided an initial summary of the pull request.
  • gemini-code-assist[bot] identified a critical issue in '.devcontainer/Dockerfile' where the Android command line tools download URL was returning a 404 error, suggesting a valid version.
  • gemini-code-assist[bot] noted missing newlines at the end of three new 'buildSrc' Kotlin script files ('code.lint.gradle.kts', 'buildLogic/AndroidConfig.kt', and 'library.gradle.kts'), which violates the project's Spotless configuration.
  • ArthurKun21 requested another summary from gemini-code-assist[bot].

@ArthurKun21 ArthurKun21 merged commit 79af22f into master Jan 29, 2026
5 checks passed
@ArthurKun21 ArthurKun21 deleted the chore/update-deps branch January 29, 2026 04:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant