Conversation
|
This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation. |
There was a problem hiding this comment.
Pull request overview
This PR upgrades the Android Gradle Plugin (AGP) and related dependencies, implements the Keiyoushi utilities package rename, and updates the build system configuration.
Changes:
- Upgraded AGP from 8.2.2 to 9.0.0 and Gradle from 8.13 to 9.3.1
- Renamed
extensions.utilspackage tokeiyoushi.utilsacross all files - Replaced kotlinter with spotless for code formatting and linting
- Updated library module naming from hyphenated to camelCase (e.g.,
playlist-utilstoplaylistutils)
Reviewed changes
Copilot reviewed 204 out of 781 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| gradle/libs.versions.toml | Updated dependency versions including AGP, Kotlin, and serialization libraries |
| gradle.properties | Simplified properties by removing deprecated Android-specific settings |
| build.gradle files | Updated library dependency references to use camelCase naming convention |
| core/src/main/kotlin/keiyoushi/utils/* | Renamed package from extensions.utils to keiyoushi.utils |
| buildSrc/* | Updated build scripts to use spotless instead of kotlinter |
| lib/* | Renamed library modules from hyphenated to camelCase naming |
| src//.kt | Updated import statements to use keiyoushi.utils package |
Comments suppressed due to low confidence (1)
lib/unpacker/build.gradle.kts:1
- The build configuration changed from
lib-kotlintolib-android, which means this module now requires the Android runtime instead of being a pure Kotlin/JVM module. This increases the dependency footprint and may impact build times. Ensure this change is intentional and necessary for the unpacker functionality.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
lib/synchrony/src/main/java/eu/kanade/tachiyomi/lib/synchrony/Deobfuscator.kt
Show resolved
Hide resolved
Summary of ChangesHello @cuong-tran, 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 updates the project's foundational build infrastructure and internal code organization. It brings the Gradle and Kotlin versions up to date, standardizes naming conventions for internal libraries and utility packages, and integrates a new, more robust linting and formatting tool. These changes aim to improve the overall maintainability, consistency, and future-proofing of the codebase, complemented by comprehensive documentation updates to guide contributors through the new setup. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Changelog
Ignored Files
Activity
Using Gemini Code AssistThe 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
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 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
|
There was a problem hiding this comment.
Code Review
This pull request significantly upgrades the Android Gradle Plugin and its dependencies, refactoring code for style and consistency across build scripts, CI configurations, and source code, with a notable performance enhancement in Extensions.kt. However, a high-severity command injection vulnerability was identified in a CI script due to the use of shell=True with untrusted command-line arguments, which could compromise the build environment. It is strongly recommended to avoid using the shell for executing commands and instead pass arguments as a list. Additionally, a minor grammatical issue in CONTRIBUTING.md should be addressed to improve clarity for contributors.
(cherry picked from commit 1e7e3f4ab2c62e36b6f78730b14d2f6b87ae3615)
(cherry picked from commit 37830fa93deb36b1771c0fb804cc572789bffbcb)
* Removed `kotlin-tooling-metadata.json`, see https://togithub.com/Kotlin/kotlinx.coroutines/issues/3158#issuecomment-1023151105 This file includes Gradle version code, so Gradle updates will no longer cause binary changes. * Removed "META-INF/version-control-info.textproto" introduced in AGP 8.4.1, which causes the binaries to change on each commit. AGP updates will still cause binaries changes because it produces a required `app-metadata.properties` under `META-INF`, and the `META-INF/MANIFEST.MF` file in the signature includes AGP version. It is possible to empty `app-metadata.properties`: https://stackoverflow.com/questions/77745443/how-to-stop-gradle-from-generating-app-metadata-properties-at-compile-time (cherry picked from commit 601feff28234ea6e8a490b7ab75c8d31ece66dcb)
* Fix Android Manifest hack for new AGP versions * Minor changes (cherry picked from commit 08179ad034ef1bb855ff086a9ef25e48ff04bcf9)
(cherry picked from commit 582404b5d2cdc2dd3f01db688fe4d816a37531a3)
(cherry picked from commit ce706d7133870f2e779259800c07fd3509ad32ad)
* Update CI workflows and add security scanning * Add timeout-minutes (cherry picked from commit ce9ab5b5896c8eee674bb9c0a0c1894560dae459)
(cherry picked from commit 25afd5b6e842caf7ce870629472090147a4f7787)
* Reinstate versionId field in index.json * address deprecation (cherry picked from commit 215d8f9f5421f603131b516eb82f8a0502f101e6)
(cherry picked from commit 86f22f026e2dca6970f1c05c0dde298b3cd7625b)
(cherry picked from commit f250c641e460ad79c22b92c8859e8adbedae2bcd)
* fix infinite recusrsion in getting dependent extensions * suggestion (cherry picked from commit 8d00de86978ad9e2c306fad48eed67897961a583)
…12161) * CI: Fix get_module_list to handle renamed files in git diff output * cleaner code partially based on review * oops * cleaner (cherry picked from commit d0d08e5ea2657eff6cac7510fb844a272ca59318)
* bump dependencies: gradle, kotlin first gradle sync passes * fix sourceset and manifest generation built some extensions * bundle kotlin related deps * cleanup & deprecated gradle features * align kgp version * use serialization 1.7.3 * gradle 9.3.1 * review changes * review changes * spelling mistake Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> (cherry picked from commit 464acfa1d07627da060a6251629e6d353d5912a7) (cherry picked from commit 49b76d11cacbfbf672f66c198f4ecc51bf0c6006)
…hyphens in its name
|
/gemini review |
There was a problem hiding this comment.
Code Review
This is an extensive pull request that successfully upgrades the Android Gradle Plugin, Gradle itself, and numerous other dependencies. The changes are thorough, including necessary module renames to comply with the new AGP version, build script updates to modern syntax, and a significant refactoring of utility packages. The code style has also been improved across the board by converting many functions to single-expression bodies. The documentation updates in CONTRIBUTING.md and README.md are also appreciated and align well with the codebase changes. I have one suggestion regarding HLS playlist parsing that could prevent a potential user experience issue.
I am having trouble creating individual review comments. Click here to see my feedback.
lib/playlist-utils/src/main/java/eu/kanade/tachiyomi/lib/playlistutils/PlaylistUtils.kt (166-170)
This change removes the filter for mp4a (audio-only) streams. While the original code had a FIXME, this removal could lead to audio-only streams being parsed as videos, as they often lack a RESOLUTION tag. This might result in items in the video list that are audio-only, which could be confusing for users or cause playback issues. Consider re-introducing a filter, perhaps by checking for the absence of a RESOLUTION tag, to ensure only streams with video are included.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 204 out of 785 changed files in this pull request and generated 8 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…o old invalid SSL
No description provided.