diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..594efa4 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,35 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [0.1.0-alpha01] - 2024-11-29 +Initial release of App Sizer as an open-source project. + +### Added +- Gradle plugin for analyzing Android app download sizes +- Command-line tool for non-Gradle build systems +- Support for analyzing: + - Total app download size + - Detailed size breakdown + - Size contribution by teams + - Module-wise size contribution + - Size contribution by libraries + - List of large files +- Reports in multiple formats: + - InfluxDB database (1.x) + - Markdown tables + - JSON data +- Comprehensive documentation + - Usage guides for both Gradle plugin and CLI tool + - Docker setup for InfluxDB & Grafana + - Detailed configuration options + - Known limitations documentation + +### Notes +- This is an alpha release for early feedback +- API and configuration options may change in future releases +- Testing with different Android project configurations is ongoing + +[0.1.0-alpha01]: https://github.com/grab/app-sizer/releases/tag/0.1.0-alpha01 \ No newline at end of file diff --git a/README.md b/README.md index efa95eb..d373b2a 100644 --- a/README.md +++ b/README.md @@ -33,31 +33,32 @@ App Sizer provides two flexible integration methods: *Note: The command-line option was the original implementation and remains supported for broader compatibility.* ### Gradle Plugin Integration -In root `build.gradle`: + +Add the plugin to your project using the Gradle plugins DSL: + +1. Add the plugin to your root `settings.gradle`: ```groovy -buildscript { - repositories { - mavenCentral() - } - dependencies { - classpath "com.grab:app-sizer:SNAPSHOT" - } +pluginManagement { + repositories { + mavenCentral() + gradlePluginPortal() + } } ``` -In the app module 's `build.gradle` +2. Apply and configure the plugin in your app module's build.gradle: + ```groovy plugins { - id "com.grab.sizer" version "" + id "com.grab.sizer" version "0.1.0-alpha01" } -// AppSizer configuration appSizer { - // DSL + // Configuration goes here } ``` -To run analysis, execute +3. To run analysis: ``` ./gradlew app:appSizeAnalysis[Release|Debug] --no-configure-on-demand --no-configuration-cache diff --git a/docs/index.md b/docs/index.md index ceec2a3..8591530 100644 --- a/docs/index.md +++ b/docs/index.md @@ -32,29 +32,32 @@ App Sizer provides two flexible integration methods: *Note: The command-line option was the original implementation and remains supported for broader compatibility.* ### Gradle Plugin Integration -In root `build.gradle`: + +Add the plugin to your project using the Gradle plugins DSL: + +1. Add the plugin to your root `settings.gradle`: ```groovy -buildscript { - repositories { - mavenCentral() - } - dependencies { - classpath "com.grab:app-sizer:SNAPSHOT" - } +pluginManagement { + repositories { + mavenCentral() + gradlePluginPortal() + } } ``` -In the app module 's `build.gradle` +2. Apply and configure the plugin in your app module's build.gradle: + ```groovy -apply plugin: "com.grab.app-sizer" +plugins { + id "com.grab.sizer" version "0.1.0-alpha01" +} -// AppSizer configuration appSizer { - // DSL + // Configuration goes here } ``` -To run analysis, execute +3. To run analysis: ``` ./gradlew app:appSizeAnalysis[Release|Debug] --no-configure-on-demand --no-configuration-cache diff --git a/docs/plugin.md b/docs/plugin.md index 5dc515c..b4ffc9b 100644 --- a/docs/plugin.md +++ b/docs/plugin.md @@ -3,6 +3,33 @@ App Sizer provide a gradle plugin as the option to seamlessly integrates with yo ## Getting Started +There are two ways to integrate the App Sizer plugin into your project: + +### Option 1: Plugins DSL (Recommended) + +1. Add the plugin to your root `settings.gradle`: + +```groovy +pluginManagement { + repositories { + mavenCentral() + gradlePluginPortal() + } +} +``` + +2. Apply and configure the plugin in your app module's build.gradle: +```groovy +plugins { + id "com.grab.sizer" version "0.1.0-alpha01" +} + +appSizer { + // Configuration goes here +} +``` + +### Option 2: Legacy buildscript method 1. Add the plugin to your root `build.gradle` ```groovy @@ -11,7 +38,7 @@ buildscript { mavenCentral() } dependencies { - classpath "com.grab:app-sizer:SNAPSHOT" + classpath "com.grab.sizer:sizer-gradle-plugin:0.1.0-alpha01" } } ``` diff --git a/gradle/publishing.gradle b/gradle/publishing.gradle index 50df80d..dcbb237 100644 --- a/gradle/publishing.gradle +++ b/gradle/publishing.gradle @@ -50,7 +50,7 @@ def configurePom = { MavenPublication publication -> developer { id = 'MinhNguyen-nvm' name = "Minh Nguyen" - email = 'van.minh@grab.com' + email = 'minhnguyen.gtvt@gmail.com' organization = 'Grab' organizationUrl = 'https://github.com/grab' }