Feat noop and conflict#8
Merged
Fiona2016 merged 16 commits intoflashcatcloud:publishfrom Feb 26, 2026
Merged
Conversation
* feat: change group id * feat: update maven plugin * feat: flashcat site * chore: configure SDK v0.3.0 release settings - Exclude logs, flags, session-replay modules from publishing - Update version to 0.3.0 with dynamic versioning from git tags - Add JVM --add-opens for java.lang.invoke to fix JDK 17+ reflection - Comment out excluded module dependencies in samples and integration tests - Exclude sample projects from build (depend on removed features) * feat: add ding notify * chore: update GitHub Actions trigger branch to publish Update workflows to trigger on the publish branch instead of publish-new: - publish-maven.yml: Change publish trigger branch - codeql-analysis.yml: Change push and pull request target branches
…to provide empty implementations with minimal footprint.
- Downgrade androidx.core to 1.12.0 and move key dependencies (Gson, OkHttp, WorkManager) to compileOnly scope to reduce SDK footprint and avoid version conflicts. - Implement WorkManagerUtils with reflection-based safe initialization check to handle optional WorkManager dependency. - Update API surface and transitive dependency lists across multiple modules. - Fix Detekt configuration to handle missing classpath files gracefully. - Bump SDK version to 0.3.1-SNAPSHOT.
- Add `setApplicationLaunchSampleRate` and `useCustomEndpoint` to `ProfilingConfiguration.Builder` in the no-op profiling module. - Uncomment and enable Log, Session Replay, Feature Flag, and Timber integration dependencies across multiple sample modules (automotive, benchmark, kotlin, tv, vendor-lib, wear). - Restore initialization code for Logs, Session Replay, and Timber in sample application classes. - Downgrade several transitive dependencies (e.g., Gson, OkHttp, Okio, and various AndroidX libraries) to older versions across multiple modules. - Include `:features:dd-sdk-android-flags` and related modules in the global settings. - Implement a dependency substitution rule in the Kotlin sample to use no-op logs when appropriate.
* feat: add `dd-sdk-android-flags-noop` module
- Provides a no-op implementation of the Flags SDK to allow safe compilation without the full feature.
- Includes core interfaces: `FlagsClient`, `FlagsConfiguration`, `EvaluationContext`, and `ResolutionDetails`.
- Defines `NoOpFlagsClient` which returns default values for all flag evaluations.
* feat: add `dd-sdk-android-flags-openfeature-noop` module
- Provides a no-op implementation of the OpenFeature provider.
- Includes `DatadogFlagsProvider` which implements `FeatureProvider` by returning default values.
- Adds `asOpenFeatureProvider()` extension on `FlagsClient`.
* chore: update sample application
- Configure Kotlin sample to use `noop` variants for the `noop` build flavor.
- Uncomment and initialize Feature Flags in `SampleApplication.kt` using the new APIs.
* build: include new modules in project settings and build configurations.
* Add "No-Op" modules for Session Replay, Logs, and Profiling features to provide empty implementations with minimal footprint.
* refactor: optimize dependency isolation and compatibility
- Downgrade androidx.core to 1.12.0 and move key dependencies (Gson, OkHttp, WorkManager) to compileOnly scope to reduce SDK footprint and avoid version conflicts.
- Implement WorkManagerUtils with reflection-based safe initialization check to handle optional WorkManager dependency.
- Update API surface and transitive dependency lists across multiple modules.
- Fix Detekt configuration to handle missing classpath files gracefully.
- Bump SDK version to 0.3.1-SNAPSHOT.
* Enable Logging, Session Replay, and Feature Flags in sample applications
- Add `setApplicationLaunchSampleRate` and `useCustomEndpoint` to `ProfilingConfiguration.Builder` in the no-op profiling module.
- Uncomment and enable Log, Session Replay, Feature Flag, and Timber integration dependencies across multiple sample modules (automotive, benchmark, kotlin, tv, vendor-lib, wear).
- Restore initialization code for Logs, Session Replay, and Timber in sample application classes.
- Downgrade several transitive dependencies (e.g., Gson, OkHttp, Okio, and various AndroidX libraries) to older versions across multiple modules.
- Include `:features:dd-sdk-android-flags` and related modules in the global settings.
- Implement a dependency substitution rule in the Kotlin sample to use no-op logs when appropriate.
* Add no-op implementations for Feature Flags and OpenFeature modules
* feat: add `dd-sdk-android-flags-noop` module
- Provides a no-op implementation of the Flags SDK to allow safe compilation without the full feature.
- Includes core interfaces: `FlagsClient`, `FlagsConfiguration`, `EvaluationContext`, and `ResolutionDetails`.
- Defines `NoOpFlagsClient` which returns default values for all flag evaluations.
* feat: add `dd-sdk-android-flags-openfeature-noop` module
- Provides a no-op implementation of the OpenFeature provider.
- Includes `DatadogFlagsProvider` which implements `FeatureProvider` by returning default values.
- Adds `asOpenFeatureProvider()` extension on `FlagsClient`.
* chore: update sample application
- Configure Kotlin sample to use `noop` variants for the `noop` build flavor.
- Uncomment and initialize Feature Flags in `SampleApplication.kt` using the new APIs.
* build: include new modules in project settings and build configurations.
- Add missing test dependencies (`gson`, `okHttp`, `fresco`, `robolectric`) to multiple feature modules - Update `dd-sdk-android-profiling` to use version catalog for AndroidX Core dependencies - Add several unit test exclusions in `dd-sdk-android-flags` and `dd-sdk-android-internal` - Register no-op and alias tasks in `dd-sdk-android-dependencies` to support Android aggregation tasks (assemble, lint, test, etc.) - Define new AndroidX core versions and modules in `libs.versions.toml` - Temporarily comment out `WorkerParametersForgeryFactory` in core tests
* chore: update shadowJar and jar tasks
- Change shadowJar archive classifier to "all"
- Configure jar task to depend on and include contents of shadowJar (excluding manifest)
* chore: update transitive dependencies
- Add okhttp, okio, and collection to dd-sdk-android-flags-noop
- Add coroutines and kotlin-stdlib-jdk variants to dd-sdk-android-flags-openfeature-noop
* Add "No-Op" modules for Session Replay, Logs, and Profiling features to provide empty implementations with minimal footprint.
* refactor: optimize dependency isolation and compatibility
- Downgrade androidx.core to 1.12.0 and move key dependencies (Gson, OkHttp, WorkManager) to compileOnly scope to reduce SDK footprint and avoid version conflicts.
- Implement WorkManagerUtils with reflection-based safe initialization check to handle optional WorkManager dependency.
- Update API surface and transitive dependency lists across multiple modules.
- Fix Detekt configuration to handle missing classpath files gracefully.
- Bump SDK version to 0.3.1-SNAPSHOT.
* Enable Logging, Session Replay, and Feature Flags in sample applications
- Add `setApplicationLaunchSampleRate` and `useCustomEndpoint` to `ProfilingConfiguration.Builder` in the no-op profiling module.
- Uncomment and enable Log, Session Replay, Feature Flag, and Timber integration dependencies across multiple sample modules (automotive, benchmark, kotlin, tv, vendor-lib, wear).
- Restore initialization code for Logs, Session Replay, and Timber in sample application classes.
- Downgrade several transitive dependencies (e.g., Gson, OkHttp, Okio, and various AndroidX libraries) to older versions across multiple modules.
- Include `:features:dd-sdk-android-flags` and related modules in the global settings.
- Implement a dependency substitution rule in the Kotlin sample to use no-op logs when appropriate.
* Add no-op implementations for Feature Flags and OpenFeature modules
* feat: add `dd-sdk-android-flags-noop` module
- Provides a no-op implementation of the Flags SDK to allow safe compilation without the full feature.
- Includes core interfaces: `FlagsClient`, `FlagsConfiguration`, `EvaluationContext`, and `ResolutionDetails`.
- Defines `NoOpFlagsClient` which returns default values for all flag evaluations.
* feat: add `dd-sdk-android-flags-openfeature-noop` module
- Provides a no-op implementation of the OpenFeature provider.
- Includes `DatadogFlagsProvider` which implements `FeatureProvider` by returning default values.
- Adds `asOpenFeatureProvider()` extension on `FlagsClient`.
* chore: update sample application
- Configure Kotlin sample to use `noop` variants for the `noop` build flavor.
- Uncomment and initialize Feature Flags in `SampleApplication.kt` using the new APIs.
* build: include new modules in project settings and build configurations.
* Update build configuration and test dependencies across SDK modules
- Add missing test dependencies (`gson`, `okHttp`, `fresco`, `robolectric`) to multiple feature modules
- Update `dd-sdk-android-profiling` to use version catalog for AndroidX Core dependencies
- Add several unit test exclusions in `dd-sdk-android-flags` and `dd-sdk-android-internal`
- Register no-op and alias tasks in `dd-sdk-android-dependencies` to support Android aggregation tasks (assemble, lint, test, etc.)
- Define new AndroidX core versions and modules in `libs.versions.toml`
- Temporarily comment out `WorkerParametersForgeryFactory` in core tests
* Update shadowJar configuration and dependencies
* chore: update shadowJar and jar tasks
- Change shadowJar archive classifier to "all"
- Configure jar task to depend on and include contents of shadowJar (excluding manifest)
* chore: update transitive dependencies
- Add okhttp, okio, and collection to dd-sdk-android-flags-noop
- Add coroutines and kotlin-stdlib-jdk variants to dd-sdk-android-flags-openfeature-noop
- Remove `shadowJar` task artifacts from `apiElements` and `runtimeElements` configurations in `dd-sdk-android-dependencies/build.gradle.kts`.
…ud#4) * Add "No-Op" modules for Session Replay, Logs, and Profiling features to provide empty implementations with minimal footprint. * refactor: optimize dependency isolation and compatibility - Downgrade androidx.core to 1.12.0 and move key dependencies (Gson, OkHttp, WorkManager) to compileOnly scope to reduce SDK footprint and avoid version conflicts. - Implement WorkManagerUtils with reflection-based safe initialization check to handle optional WorkManager dependency. - Update API surface and transitive dependency lists across multiple modules. - Fix Detekt configuration to handle missing classpath files gracefully. - Bump SDK version to 0.3.1-SNAPSHOT. * Enable Logging, Session Replay, and Feature Flags in sample applications - Add `setApplicationLaunchSampleRate` and `useCustomEndpoint` to `ProfilingConfiguration.Builder` in the no-op profiling module. - Uncomment and enable Log, Session Replay, Feature Flag, and Timber integration dependencies across multiple sample modules (automotive, benchmark, kotlin, tv, vendor-lib, wear). - Restore initialization code for Logs, Session Replay, and Timber in sample application classes. - Downgrade several transitive dependencies (e.g., Gson, OkHttp, Okio, and various AndroidX libraries) to older versions across multiple modules. - Include `:features:dd-sdk-android-flags` and related modules in the global settings. - Implement a dependency substitution rule in the Kotlin sample to use no-op logs when appropriate. * Add no-op implementations for Feature Flags and OpenFeature modules * feat: add `dd-sdk-android-flags-noop` module - Provides a no-op implementation of the Flags SDK to allow safe compilation without the full feature. - Includes core interfaces: `FlagsClient`, `FlagsConfiguration`, `EvaluationContext`, and `ResolutionDetails`. - Defines `NoOpFlagsClient` which returns default values for all flag evaluations. * feat: add `dd-sdk-android-flags-openfeature-noop` module - Provides a no-op implementation of the OpenFeature provider. - Includes `DatadogFlagsProvider` which implements `FeatureProvider` by returning default values. - Adds `asOpenFeatureProvider()` extension on `FlagsClient`. * chore: update sample application - Configure Kotlin sample to use `noop` variants for the `noop` build flavor. - Uncomment and initialize Feature Flags in `SampleApplication.kt` using the new APIs. * build: include new modules in project settings and build configurations. * Update build configuration and test dependencies across SDK modules - Add missing test dependencies (`gson`, `okHttp`, `fresco`, `robolectric`) to multiple feature modules - Update `dd-sdk-android-profiling` to use version catalog for AndroidX Core dependencies - Add several unit test exclusions in `dd-sdk-android-flags` and `dd-sdk-android-internal` - Register no-op and alias tasks in `dd-sdk-android-dependencies` to support Android aggregation tasks (assemble, lint, test, etc.) - Define new AndroidX core versions and modules in `libs.versions.toml` - Temporarily comment out `WorkerParametersForgeryFactory` in core tests * Update shadowJar configuration and dependencies * chore: update shadowJar and jar tasks - Change shadowJar archive classifier to "all" - Configure jar task to depend on and include contents of shadowJar (excluding manifest) * chore: update transitive dependencies - Add okhttp, okio, and collection to dd-sdk-android-flags-noop - Add coroutines and kotlin-stdlib-jdk variants to dd-sdk-android-flags-openfeature-noop * Remove shadowJar artifacts from API and runtime elements - Remove `shadowJar` task artifacts from `apiElements` and `runtimeElements` configurations in `dd-sdk-android-dependencies/build.gradle.kts`.
…efore registering shadow and aggregation tasks in `dd-sdk-android-dependencies/build.gradle.kts`. * Update task registration for `assembleDebug`, `assembleRelease`, `testDebugUnitTest`, and `testReleaseUnitTest` to use conditional checks. * Apply the same conditional logic to no-op tasks including `lintRelease`, `checkDependencyLicenses`, `checkApiSurfaceChanges`, `checkCompilerMetadataChanges`, `checkTransitiveDependenciesList`, `koverXmlReportRelease`, and `printDetektClasspath`.
…compatibility issues * Fix R8 "defined multiple times" error by optimizing shadowJar configurations. * Fix WorkManager 2.7.1 unit test compilation and runtime errors. * Enhance reflection tools for JDK 17+ compatibility. * Globally add missing test dependencies (Gson/OkHttp) to fix NoClassDefFoundError in feature and integration modules. * Add Proguard -dontwarn rules for missing classes in reliability tests.
* chore: downgrade common and AndroidX dependencies - Downgraded `gson` to 2.8.9 and `okHttp` to 4.9.0 to improve compatibility. - Downgraded several AndroidX libraries including `core`, `collection`, `navigation`, `recyclerView`, and `workManager`. - Changed `implementation` to `compileOnly` for `gson` and `okHttp` across multiple feature modules to let the host app provide these dependencies. * feat: implement No-Op modules for core features - Added No-Op variants for `logs`, `profiling`, `flags`, and `session-replay` modules to allow minimal footprint integrations. - Introduced `dd-sdk-android-dependencies` module using the Shadow plugin to relocate `jctools` and `re2j` to `cloud.flashcat.shaded`. * feat: enhance sample app with SDK flavors - Added `full` and `noop` flavor dimensions to the Kotlin sample app. - Re-enabled previously commented-out modules (logs, flags, session-replay, timber) in the sample application. * chore: improve WorkManager integration safety - Added `WorkManagerUtils` to safely check for `WorkManager` initialization via reflection, handling `compileOnly` scenarios where the library might be missing at runtime. - Added runtime dependency checks in `Datadog.initialize`. * chore: update build configuration - Updated publishing settings to skip GPG signing for local Maven publishes. - Excluded specific failing tests in `dd-sdk-android-internal` and `dd-sdk-android-flags`. - Added ProGuard rules for shaded dependencies and common libraries.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
A brief description of the change being made with this pull request.
Motivation
What inspired you to submit this pull request?
Additional Notes
Anything else we should know when reviewing?
Review checklist (to be filled by reviewers)