{"id":19502756,"url":"https://github.com/ml-opensource/android-lib-template","last_synced_at":"2026-06-15T19:31:24.689Z","repository":{"id":231071840,"uuid":"761793339","full_name":"ml-opensource/android-lib-template","owner":"ml-opensource","description":"Template project for creating  Android Libraries ","archived":false,"fork":false,"pushed_at":"2024-09-09T17:29:27.000Z","size":958,"stargazers_count":0,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-25T21:42:53.272Z","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/ml-opensource.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2024-02-22T14:00:37.000Z","updated_at":"2024-05-23T11:32:04.000Z","dependencies_parsed_at":"2024-04-02T10:07:31.534Z","dependency_job_id":"9d595bc3-5e2c-477b-8f4a-86cb14e923a6","html_url":"https://github.com/ml-opensource/android-lib-template","commit_stats":null,"previous_names":["monstar-lab-oss/android-lib-template","ml-opensource/android-lib-template"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/ml-opensource/android-lib-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ml-opensource%2Fandroid-lib-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ml-opensource%2Fandroid-lib-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ml-opensource%2Fandroid-lib-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ml-opensource%2Fandroid-lib-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ml-opensource","download_url":"https://codeload.github.com/ml-opensource/android-lib-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ml-opensource%2Fandroid-lib-template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34377872,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-15T02:00:07.085Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-11-10T22:18:08.281Z","updated_at":"2026-06-15T19:31:24.671Z","avatar_url":"https://github.com/ml-opensource.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":" # Android Library Template\n\nThis is a template for creating Android Open Source libraries. This template features\n\n-  🏗️Basis Project structure that includes demo and library modules\n- 🚀 CI/CD with GitHub Actions for release and snapshot builds, documentation generation\n- 🔍 Code Quality checks with Detekt, Spotless and Tests\n- 📕 Documentation setup with Dokka and MkDocs\n- 📦 Dependency management with Version Catalogue\n- 📝 CHANGELOG following a keepchangelog.com format and JetBrains Changelog Plugin to accompany the release notes\n- 🔧 Gradle Convention Plugins for consistent build configuration across modules\n- 🌐 GH pages to host the documentation\n\n## Table of Contents\n  - [Usage](#usage)\n  - [Branching Strategy](#branching-strategy)\n  - [CI/CD](#cicd)\n  - [Release Management](#release-management)\n    - [Draft Releases \\\u0026 Snapshots](#draft-releases--snapshots)\n    - [Release](#release)\n  - [Changelog](#changelog)\n  - [Documentation](#documentation)\n    - [Github Pages](#github-pages)\n  - [Contributing](#contributing)\n  - [Resources](#resources)\n\n## Usage\n1. Click on the `Use this template` button to create a new repository from this template.\n2. Update the `gradle.properties` files with the correct values for your library.\n3. Add following secrets to your repository to enable publishing to Maven Central (For more information about following properties, please refer to [Gradle Maven Publish Plugin](https://vanniktech.github.io/gradle-maven-publish-plugin/central/))\n   - `SIGNING_PASSWORD` -  Password for the GPG key\n   - `SIGNING_PRIVATE_KEY` - GPG key\n   - `SONATYPE_NEXUS_USERNAME` - Sonatype username\n   - `SONATYPE_NEXUS_PASSWORD` - Sonatype password\n\n\n## Branching Strategy\n\nThis templates follows a trunk-based approach using its `main` branch as the single source of truth\nfor all changes.\nFeature/Fixes and etc branches are created from `main` and are merged back using pull requests.\n\n## CI/CD\n\nThis template uses GitHub Actions for CI/CD. The following workflows are set up:\n\n- **Verify Pull Request**: Checks code quality with Detekt and Spotless, and runs tests\n- **Publish Snapshot**: Publishes a snapshot version of the library to GitHub Packages\n- **Publish Release**: Publishes a release version of the library to GitHub Packages\n- **Generate Docs**: Generates documentation with Dokka and MkDocs\n\n\n## Release Management\n\nThe release management is tied to the GitHub Releases.\n\n### Draft Releases \u0026 Snapshots\n\nEvery push to the `main` triggers main workflow that will create a draft release. The draft release\nversion is set to the current version located in `gradle.properties` and the release notes for it\nare taken from the `CHANGELOG.md`.\n\n\u003e In case the Draft Release exists already, it will be deleted and replaced with new one, so that\n\u003e there is only one draft release.\n\nTogether with Draft Releases the snapshot is published\nThis is done by applying `-SNAPSHOT` suffix to the version and publishing it to the Maven Central.\n\n### Release\n\nBy promoting a Draft Release, the release workflow is triggered. It will publish the library to the\nto the Maven Central.\n\n## Changelog\n\nThis template follows the [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) format for\nchangelog entries. The changelog is stored in the `CHANGELOG.md` file.\nWhen Draft Release is created, the Changelog plugin from Jetbrains to update the release notes with the latest changes according\nto the latest version specified in the `gradle.properties` file.\n\n## Documentation\n\nThis template uses Dokka for code documentation and MkDocs Material for project documentation.\nFor more information on how to use MkDocs, please refer to\nthe [MkDocs documentation](https://www.mkdocs.org/) and Mkdocs\nMaterial [documentation](https://squidfunk.github.io/mkdocs-material/).\n\nThe Dokka plugin is applied to the library module and generates KDocks documentation for the\nlibrary. The generated documentation is published together with the project documentation and can be\naccessed using github pages.\n\n### Github Pages\nEvery push to the `main` branch triggers the `Generate Docs` workflow that will generate the documentation and \npublish it to the `gh-pages` branch. The documentation can be accessed using the following link: \n`https://\u003cusername\u003e.github.io/\u003crepository-name\u003e/`\n\n\n## Contributing\nPull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.\nPlease make sure to update tests as appropriate.\n\n\n## Resources\n- [Gradle Maven Publish Plugin](https://vanniktech.github.io/gradle-maven-publish-plugin/central/)\n- [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)\n- [MkDocs](https://www.mkdocs.org/)\n- [Mkdocs Material](https://squidfunk.github.io/mkdocs-material/)\n- [Dokka](https://github.com/Kotlin/dokka)\n- [GitHub Actions](https://docs.github.com/en/actions)\n- [Detekt](https://detekt.github.io/detekt/)\n- [Spotless](https://github.com/diffplug/spotless)\n- [Changelog Plugin](https://github.com/JetBrains/gradle-changelog-plugin)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fml-opensource%2Fandroid-lib-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fml-opensource%2Fandroid-lib-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fml-opensource%2Fandroid-lib-template/lists"}