kivy / kivy/python-for-android

Enhancement Request: Support for BOM Dependencies and Plugins Configuration in buildozer.spec

Open
#2,943 1 comment 0 reactions 0 assignees View on GitHub
feature-request
Dominant language
Python
Stars
8.9k
Forks
2k
Avg merge
12h 20m
Merged PRs (30d)
9

Description

Presently, there is no provision in the `buildozer.spec` file to include `bom` dependencies in the `build.gradle` file. For instance, if you wish to incorporate the Kotlin `bom` dependency, like so:

```groovy
implementation platform("org.jetbrains.kotlin:kotlin-bom:1.8.22")
```

Similarly, when dealing with plugins such as the **Google services Gradle plugin**, you are required to specify the classpath within the `buildscript` block:

```groovy
buildscript {

repositories {
...
}
dependencies {
...

// Google services Gradle plugin
classpath 'com.google.gms:google-services:4.4.0'
}
}
```

Subsequently, in the plugins section, you need to set the ID:

```groovy
plugins {
...

// Add the ID of the plugin
id 'com.google.gms.google-services'
...
}
```

Regrettably, the current configuration of `buildozer.spec` lacks a dedicated section to define these dependencies and plugins directly. As a workaround, one must manually modify the file within the `.buildozer` directory.
```[tasklist]
### Tasks
```

Contributor guide

Open the contributing guide

Research direction

Start with the buildozer.spec configuration and the generated build.gradle sections named in the report, including buildscript and plugins. Trace how configuration reaches the .buildozer files, then define how BOM dependencies, plugin classpaths, and plugin IDs are represented. Done means these entries can be configured without manually editing generated files.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, kotlin
Domain
build-system, mobile-dev
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.