{"id":22856048,"url":"https://github.com/voxeet/voxeet-sdk-android-gradle","last_synced_at":"2026-03-19T23:50:56.786Z","repository":{"id":64272904,"uuid":"568303088","full_name":"voxeet/voxeet-sdk-android-gradle","owner":"voxeet","description":"Gradle configuration files \u0026 dependencies used by dolby.io Android products","archived":false,"fork":false,"pushed_at":"2024-04-30T22:23:01.000Z","size":468,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-02-06T12:21:49.102Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/voxeet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-20T04:42:49.000Z","updated_at":"2024-04-30T22:17:26.000Z","dependencies_parsed_at":"2023-10-17T00:18:30.047Z","dependency_job_id":"543e2114-7a6b-4b40-bca7-9717c08d7421","html_url":"https://github.com/voxeet/voxeet-sdk-android-gradle","commit_stats":null,"previous_names":[],"tags_count":61,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxeet%2Fvoxeet-sdk-android-gradle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxeet%2Fvoxeet-sdk-android-gradle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxeet%2Fvoxeet-sdk-android-gradle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxeet%2Fvoxeet-sdk-android-gradle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/voxeet","download_url":"https://codeload.github.com/voxeet/voxeet-sdk-android-gradle/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246436093,"owners_count":20776965,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-13T08:06:58.615Z","updated_at":"2026-03-19T23:50:56.751Z","avatar_url":"https://github.com/voxeet.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gradle Configurations\n\n[![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fvoxeet%2Fvoxeet-sdk-android-gradle%2Fbadge%3Fref%3Dmain\u0026style=flat)](https://actions-badge.atrox.dev/voxeet/voxeet-sdk-android-gradle/goto?ref=main)\n\n[![GitHub release](https://img.shields.io/github/release/voxeet/voxeet-sdk-android-gradle.svg)](https://gitHub.com/voxeet/voxeet-sdk-android-gradle/releases/)\n\n\nOpen Source configurations used on Android projects\n\n## Install\n\nIn your root's settings.gradle, copy paste the following at the top :\nNote : change the version to the specific tag, sha or branch you want to use\n\n```groovy\ndef version = 'main'\n\napply from: \"https://raw.githubusercontent.com/voxeet/voxeet-sdk-android-gradle/${version}/dolbyio.gradle\"\n\ndependencyResolutionManagement {\n    versionCatalogs {\n        dolbyio {\n            from(files(gradle.dolbyio.files.catalog))\n        }\n    }\n}\n```\n\nNote that if you already use a versionCatalogs, you'll need to copy the first line at the top of your gradle file and the `dolbyio{...}` block inside the **versionCatalogs**\n\n## Use the configurations\n\nOnce the settings.gradle configuration is done, you can then use the result in two ways :\n\n### Catalog / Dependencies / Plugins\n\nThe dependencies will be available in your project just like the Gradle documentation is giving you the ability to use dependencies, plugins aliases or even gradle namespaces. For more information about catalogs, please check the [Gradle documentation](https://docs.gradle.org/current/userguide/platforms.html)\n\nFor instance :\n\n```groovy\ndependencies {\n  implementation dolbyio.androidx.appcompat\n}\n```\n\nor for plugins :\n```groovy\nplugins {\n  alias(dolbyio.plugins.dokka)\n}\n```\n\n### Configuration files\n\nIn order for our projects to share most of the configuration like publishing, managing coverage and having lint validation, we are also providing those files. After your settings.gradle update, you then can use the following snippet anywhere required to use those files \n\n### gradle.dolbyio.files.SomeName\n\nWhere SomeName can be one of the following :\n\nIn the root project :\n\n- **modules**  *(buildScript)* apply overall project configuration\n- **versions**  *(buildScript)* apply some version-related variable like min sdk\n- **jacocoProject** *(apply from)* apply jacoco main rules (rootProject)\n- **dokka** *(apply from)* apply dokka rules\n- **dependencyUpdates** *(apply from)* used to prevent non releases from our dependencies\n\nFor submodules :\n\n- **moduleSetup** *(buildScript)* apply module-specific default configuration (submodule's buildScript)\n- **publishing** *(apply from)* apply publication configuration (submodule)\n\n**What to use in the main build.gradle**\n\nThose are example of what can be included\n\n```groovy\nbuildscript {\n  apply from: gradle.dolbyio.files.modules\n}\n\n...\n\nplugins {\n  alias(dolbyio.plugins.dokka)\n  alias(dolbyio.plugins.publish.nexus)\n}\n\n...\n\n\nsubprojects {\n  ...\n  if (isSourcesModule(it)) {\n    apply from: gradle.dolbyio.files.moduleSetup\n  }\n}\n...\n\napply from: gradle.dolbyio.files.jacocoProject\napply from: gradle.dolbyio.files.dependencyUpdates\n\n//EOF\n```\n\n**What to use in the submodule's build.gradle**\n\n```groovy\n...\n\ndependencies {\n    androidTestImplementation dolbyio.androidx.espresso.core\n    implementation dolbyio.eventbus\n}\n\n// if the project need publication. Note that it will then need to configure pom information\napply from: gradle.dolbyio.files.publishing\n\n//EOF\n```\n\n## Try sample\n\ninside the sample/ folder, run `./gradlew tasks`, you will notice that the **sample/gradle/dolbyio** folder will populate itself, those are files and configuration files you then can use in your own project\n\n## Override in sample\n\nOn top of using the sample, you can also change the default one used, this is for instance used internally here to test that local \u0026 remote configuration is working (see our github actions for more)\n\n## Configuration\n\n### SonarQube\n\nIt is possible to configure the prefix for sonarqube tasks, using in each module's ext :\n\n```\next {\n  sonarqubePrefix = \"some_prefix_\"\n}\n```\n\nIt will then be used as \"${prefix}${project.name}\"\n\n### Publishing\n\nIn your submodule(s)'s build.gradle, use `apply from: gradle.dolbyio.files.publishing`\n\nBy default, the sources aren't part of the publication of libraries, however it's possible to have your library upload their sources alongside the artifacts. To do so, register a publishWithSources in the rootProject or project's ext holder :\n\n```\next {\n  publishWithSources = true/false\n}\n```\n\nNote : when using the rootProject, if you got various libraries as a submodule, if you publish those, their sources will be attached. In some cases, you would want to use some granularity and use the publishWithSources in either only one or some of your submodules (this only applies to the libraries)\n\nMandatory rootProject ext variables, for instance here are some values for one of our library:\n\n```\next {\n  ...\n  pom = [\n    description: \"Dolby.io Communications APIs library module\",\n    inceptionYear: \"${new Date().format(\"YYYY\")}\",\n    url: \"https://github.com/voxeet/sdk-android-lib-promise\",\n    license: [\n      name: 'Apache License',\n      url: 'https://github.com/voxeet/sdk-android-lib-promise/blob/main/LICENSE'\n    ],\n    developer: [\n      id: 'dolbyio',\n      name: 'Dolby.io',\n      email: 'support@dolby.io'\n    ],\n    scm: [\n      connection: 'scm:git:github.com/voxeet/sdk-android-lib-promise.git',\n      developerConnection: 'scm:git:ssh://github.com/voxeet/sdk-android-lib-promise.git',\n      url: 'https://github.com/voxeet/sdk-android-lib-promise/tree/main'\n    ]\n  ]\n}\n```\n\n## TODO\n\nSome project files still need to be changed so that their predefined values can be changed a bit more easily (specifically for non dolby.io project integration)\n\n- **publishing** The script should make the various optionals\n- **sonarqube** make the prefix as a variable from rootProject as well\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoxeet%2Fvoxeet-sdk-android-gradle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvoxeet%2Fvoxeet-sdk-android-gradle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoxeet%2Fvoxeet-sdk-android-gradle/lists"}