-
Notifications
You must be signed in to change notification settings - Fork 0
Setup repo and implement Stream Android plugins #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR sets up a new repository for Stream Android build convention plugins. It establishes the Gradle plugin infrastructure with two convention plugins for Android library and application modules, along with supporting CI/CD workflows.
- Implements two Gradle convention plugins (library and application) with configurable Android SDK settings
- Establishes CI workflows for formatting checks, linting, and builds
- Sets up automated release workflow with version bumping and multi-repository publishing
Reviewed Changes
Copilot reviewed 13 out of 14 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| settings.gradle.kts | Configures repository locations and plugin module inclusion |
| plugin/src/main/kotlin/io/getstream/android/StreamAndroidExtension.kt | Defines extension API for configuring Android SDK versions |
| plugin/src/main/kotlin/io/getstream/android/AndroidConventionPlugin.kt | Implements Android library and application convention plugins with Java/Kotlin configuration |
| plugin/build.gradle.kts | Configures plugin publishing to Gradle Plugin Portal and Maven Central |
| gradle/libs.versions.toml | Declares dependency versions for Android Gradle Plugin, Kotlin, and build tools |
| gradle.properties | Sets initial project version |
| LICENSE_HEADER | Defines copyright header template for source files |
| .github/workflows/release.yml | Automates version bumping and publishing to plugin repositories |
| .github/workflows/ci.yml | Runs formatting checks, linting, and build validation |
| .github/actions/setup-gradle/action.yml | Reusable action for Java and Gradle setup |
| .github/actions/setup-gradle/README.md | Documents the setup-gradle composite action |
| .github/actions/bump-version/action.yml | Implements semantic version bumping logic |
| .github/actions/bump-version/README.md | Documents the bump-version composite action |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| import org.jetbrains.kotlin.gradle.dsl.JvmTarget | ||
| import org.jetbrains.kotlin.gradle.dsl.KotlinAndroidProjectExtension | ||
|
|
||
| class AndroidApplicationConventionPlugin : Plugin<Project> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First basic plugin implementations that only apply the Android application/library plugin and configure the java version + Android SDKs (through StreamAndroidExtension).
The plan is to start with this to validate everything works (including plugin publishing, which is a first for me) and then add more and more to it so we centralize common configurations and products only have to pass SDK-specific configuration.
| * } | ||
| * ``` | ||
| */ | ||
| abstract class StreamAndroidExtension( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A bit debatable if this is worth centralizing since SDKs still need to configure their values as shown in the kdoc above. Happy to remove it if you think it doesn't make sense to have it here.
No description provided.