Skip to content

Commit

Permalink
Release 3.2.1 (#498)
Browse files Browse the repository at this point in the history
  • Loading branch information
gthea authored May 16, 2023
1 parent 94a8315 commit 87cc500
Show file tree
Hide file tree
Showing 33 changed files with 209 additions and 243 deletions.
15 changes: 13 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,18 @@ jobs:
name: Build App
runs-on: ubuntu-latest
steps:
- name: Checkout code
- name: checkout
uses: actions/checkout@v3

- name: Gradle cache
uses: gradle/[email protected]

- name: Set up JDK 11
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 11
cache: 'gradle'

- name: Test with Gradle
run: cd project; ./gradlew test
run: ./gradlew test
32 changes: 18 additions & 14 deletions CHANGES.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
3.2.1 (May 15, 2023)
- Updated terminology on the SDKs codebase to be more aligned with current standard without causing a breaking change.
The core change is the term split for feature flag on things like logs and Javadoc comments.

3.2.0 (Apr 25, 2023)
- Added the ability to encrypt the local cache of rollout plans via encryptionEnabled config.

Expand Down Expand Up @@ -39,7 +43,7 @@
2.13.0 (Oct 4, 2022)
- Added a new impressions mode for the SDK called NONE, to be used in factory when there is no desire to capture impressions on an SDK factory to feed Split's analytics engine. Running NONE mode, the SDK will only capture unique keys evaluated for a particular feature flag instead of full blown impressions.
- Fixed issue when scheduling new tasks.
- Fixed issue in splits background synchronization when using splits filter.
- Fixed issue in feature flag background synchronization when using feature flag filter.

2.12.2 (Sep 15, 2022)
- Fixed issue in telemetry for latencies.
Expand All @@ -56,12 +60,12 @@
- Added a new config option to control the tasks that listen or poll for updates on feature flags and segments, via the new config syncEnabled . Running online Split will always pull the most recent updates upon initialization, this only affects updates fetching on a running instance. Useful when a consistent session experience is a must or to save resources when updates are not being used.

2.10.3 (Jun 10, 2022)
- Fixed issue that prevented split list from being updated after modifying sync config.
- Fixed issue that prevented feature flag list from being updated after modifying sync config.

2.10.2 (May 9, 2022)
- Added support for resumed streaming event.
- SplitClient instances are tracked by key.
- Improved logging and error handling when encountering incorrect format in splits file for localhost mode.
- Improved logging and error handling when encountering incorrect format in feature flags file for localhost mode.

2.10.1 (Apr 25, 2022)
- Updated the synchronization flow to be more reliable in the event of an edge case generating delay in cache purge propagation, keeping the SDK cache properly synced.
Expand All @@ -71,7 +75,7 @@
- Added support for multiple clients: Factories can now create multiple clients with different keys while reusing the common tasks, data and behavior. Read more in our Android SDK docs.

2.9.1 (Feb 24, 2022)
- Updated splits initialization workflow to reduce latencies.
- Updated feature flag initialization workflow to reduce latencies.
- Removed sizeInBytes property in Events.

2.9.0 (Jan 24, 2022)
Expand All @@ -84,7 +88,7 @@

2.8.0: (Nov 19, 2021)
- Added Attribute binding feature to allow to optionally keep user attributes loaded within the SDK, along with the user ID, for easier usage when requesting flag.
- Updated localhost mode by converting yaml and properties config to split rollout rules.
- Updated localhost mode by converting yaml and properties config to feature flag rollout rules.

2.7.4: (Oct 28, 2021)
- Added support for a user key containing a slash character.
Expand All @@ -107,7 +111,7 @@
- Added telemetry headers to SSE connection

2.7.0: (Abr 21, 2021)
- Added SDK Update event to notify when Splits or My Segments have changed
- Added SDK Update event to notify when feature flags or segments have changed

2.6.10: (Mar 26, 2021)
- Fixed issue when using two factories with api keys from different environments
Expand All @@ -126,7 +130,7 @@
- Fixed backoff algorithm issue

2.6.6: (Ago 03, 2020)
- Added `syncConfig.addFilter()` method to SDK configuration to pass a list of filters for the splits that will be downloaded. Read more in our docs.
- Added `syncConfig.addFilter()` method to SDK configuration to pass a list of filters for the feature flags that will be downloaded. Read more in our docs.

2.6.5: (Jul 23, 2020)
- Improved logic to refresh streaming token
Expand All @@ -147,13 +151,13 @@
- Fixed Interruption handling on workers

2.6.1: (Jun 2, 2020)
- Added expiration policy to split cache
- Added expiration policy to feature flag cache
- Replaced HttpUrlConnection by OkHttp
- Fixed some issues on streaming while host app in background
- Fixed issue when retrying sending impressions and events

2.6.0: (Apr 30, 2020)
- Added support for the new Split streaming architecture. When enabled, the SDK will not poll for updates but instead receive notifications every time there's a change in your environments, allowing to process those much quicker. If disabled (default) or in the event of an issue, the SDK will fallback to the known polling mechanism to provide a seamless experience.
- Added support for the new streaming architecture. When enabled, the SDK will not poll for updates but instead receive notifications every time there's a change in your environments, allowing to process those much quicker. If disabled (default) or in the event of an issue, the SDK will fallback to the known polling mechanism to provide a seamless experience.

2.5.0: (Mar 13, 2020)
- Replaced disk files by Room to handle cache data
Expand Down Expand Up @@ -191,7 +195,7 @@
- Added integration tests

2.3.1: (Jun 14, 2019)
- Bugfixing - concurrence issue when writing split to disk
- Bugfixing - concurrence issue when writing feature flag to disk
- Added missing UTF-8 support to some json parsing

2.3.0: (May 24, 2019)
Expand All @@ -210,17 +214,17 @@
- Added several validations for passed parameters

1.2.3: (Jan 21, 2019)
- Storing splits, segments, impressions and tracks on disk only when app goes to background or close
- Storing feature flags, segments, impressions and tracks on disk only when app goes to background or close
- Bugfixing - issue when traffic allocation equals to zero

1.2.2: (Oct 1, 2018)
- Fixed issue fetching split changes
- Fixed issue fetching feature flag changes

1.2.1: (Sep 27, 2018)
- Added proguard rules file

1.2.0: (Sep 24, 2018)
- Added split manager feature
- Added Split Manager feature

1.1.0: (Aug 28, 2018)
- Added get treatments feature
Expand All @@ -235,7 +239,7 @@
- Added .Track feature

0.9.4: (May 24, 2018)
- Bugfixing - event SDK_READY not reachable when segments were not linked to a split definition
- Bugfixing - event SDK_READY not reachable when segments were not linked to a feature flag definition

0.9.3: (Apr 16, 2018)
- Added Events listener. Available events: SDK_READY, SDK_READY_TIMEOUT
Expand Down
24 changes: 15 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
![Build Status](https://github.com/splitio/android-client/actions/workflows/sonar.yml/badge.svg?branch=master)

## Overview
This SDK is designed to work with Split, the platform for controlled rollouts, which serves features to your users via a Split feature flag to manage your complete customer experience.
This SDK is designed to work with Split, the platform for controlled rollouts, which serves features to your users via feature flags to manage your complete customer experience.

[![Twitter Follow](https://img.shields.io/twitter/follow/splitsoftware.svg?style=social&label=Follow&maxAge=1529000)](https://twitter.com/intent/follow?screen_name=splitsoftware)

Expand All @@ -12,7 +12,7 @@ This SDK is compatible with Android SDK versions 15 and later (4.0.3 Ice Cream S
## Getting started
Below is a simple example that describes the instantiation and most basic usage of our SDK:
```
String apikey = "API_KEY";
String sdkKey = "YOUR_SDK_KEY";
SplitClientConfig config = SplitClientConfig.builder()
.build();
// User Key
Expand All @@ -22,7 +22,7 @@ Key key = new Key(matchingKey);
SplitClient splitClient = null;
try {
// Create a Split factory
SplitFactory splitFactory = SplitFactoryBuilder.build(apikey, key, config, getApplicationContext());
SplitFactory splitFactory = SplitFactoryBuilder.build(sdkKey, key, config, getApplicationContext());
// Get Split Client instance
splitClient = splitFactory.client();
} catch (Exception e) {
Expand All @@ -34,7 +34,7 @@ splitClient.on(SplitEvent.SDK_READY, new SplitEventTask(){
public void onPostExecution(SplitClient client) {
Log.i("TAG", "Do some NO UI work");
String treatment = client.getTreatment("SPLIT_NAME");
String treatment = client.getTreatment("FEATURE_FLAG_NAME");
if (treatment.equals("on")) {
Log.i("TAG", "I'm ON ");
Expand Down Expand Up @@ -72,16 +72,22 @@ To learn more about Split, contact [email protected], or get started with feature f

Split has built and maintains SDKs for:

* Android [Github](https://github.com/splitio/android-client) [Docs](https://help.split.io/hc/en-us/articles/360020343291-Android-SDK)
* .NET [Github](https://github.com/splitio/dotnet-client) [Docs](https://help.split.io/hc/en-us/articles/360020240172--NET-SDK)
* GO [Github](https://github.com/splitio/go-client) [Docs](https://help.split.io/hc/en-us/articles/360020093652-Go-SDK)
* iOS [Github](https://github.com/splitio/ios-client) [Docs](https://help.split.io/hc/en-us/articles/360020401491-iOS-SDK)
* Java [Github](https://github.com/splitio/java-client) [Docs](https://help.split.io/hc/en-us/articles/360020405151-Java-SDK)
* Javascript [Github](https://github.com/splitio/javascript-client) [Docs](https://help.split.io/hc/en-us/articles/360020448791-JavaScript-SDK)
* Javascript for Browser [Github](https://github.com/splitio/javascript-browser-client) [Docs](https://help.split.io/hc/en-us/articles/360058730852-Browser-SDK)
* Node [Github](https://github.com/splitio/javascript-client) [Docs](https://help.split.io/hc/en-us/articles/360020564931-Node-js-SDK)
* .NET [Github](https://github.com/splitio/dotnet-client) [Docs](https://help.split.io/hc/en-us/articles/360020240172--NET-SDK)
* Ruby [Github](https://github.com/splitio/ruby-client) [Docs](https://help.split.io/hc/en-us/articles/360020673251-Ruby-SDK)
* PHP [Github](https://github.com/splitio/php-client) [Docs](https://help.split.io/hc/en-us/articles/360020350372-PHP-SDK)
* Python [Github](https://github.com/splitio/python-client) [Docs](https://help.split.io/hc/en-us/articles/360020359652-Python-SDK)
* GO [Github](https://github.com/splitio/go-client) [Docs](https://help.split.io/hc/en-us/articles/360020093652-Go-SDK)
* Android [Github](https://github.com/splitio/android-client) [Docs](https://help.split.io/hc/en-us/articles/360020343291-Android-SDK)
* iOS [Github](https://github.com/splitio/ios-client) [Docs](https://help.split.io/hc/en-us/articles/360020401491-iOS-SDK)
* React [Github](https://github.com/splitio/react-client) [Docs](https://help.split.io/hc/en-us/articles/360038825091-React-SDK)
* React Native [Github](https://github.com/splitio/react-native-client) [Docs](https://help.split.io/hc/en-us/articles/4406066357901-React-Native-SDK)
* Redux [Github](https://github.com/splitio/redux-client) [Docs](https://help.split.io/hc/en-us/articles/360038851551-Redux-SDK)
* Ruby [Github](https://github.com/splitio/ruby-client) [Docs](https://help.split.io/hc/en-us/articles/360020673251-Ruby-SDK)
* Angular [Github](https://github.com/splitio/angular-sdk-plugin) [Docs](https://help.split.io/hc/en-us/articles/6495326064397-Angular-utilities)
* Flutter [Github](https://github.com/splitio/flutter-sdk-plugin) [Docs](https://help.split.io/hc/en-us/articles/8096158017165-Flutter-plugin)

For a comprehensive list of open source projects visit our [Github page](https://github.com/splitio?utf8=%E2%9C%93&query=%20only%3Apublic%20).

Expand Down
17 changes: 8 additions & 9 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ buildscript {
}

dependencies {
classpath 'com.android.tools.build:gradle:4.0.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.31"
classpath 'com.android.tools.build:gradle:7.4.2'
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.21'
}
}

Expand All @@ -16,7 +16,7 @@ apply plugin: 'signing'
apply plugin: 'kotlin-android'

ext {
splitVersion = '3.2.0'
splitVersion = '3.2.1'
}

android {
Expand All @@ -33,8 +33,6 @@ android {

minSdkVersion 15
targetSdkVersion 30
versionCode 0
versionName splitVersion
multiDexEnabled true

consumerProguardFiles 'split-proguard-rules.pro'
Expand All @@ -57,10 +55,6 @@ android {
javadocDeps
}

lintOptions {
disable 'InvalidPackage'
abortOnError false
}

testOptions {
unitTests.returnDefaultValues = true
Expand All @@ -85,6 +79,11 @@ android {
buildConfigField("String", "SPLIT_VERSION_NAME", "\"${splitVersion}\"")
}
}
namespace 'io.split.android.android_client'
lint {
abortOnError false
disable 'InvalidPackage'
}
}

repositories {
Expand Down
3 changes: 2 additions & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
ossrhUsername=
ossrhPassword=
android.useAndroidX = true
android.enableJetifier=true
android.useAndroidX=true
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
4 changes: 2 additions & 2 deletions project/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ buildscript {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.0.2'
classpath 'com.android.tools.build:gradle:7.4.2'

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
Expand All @@ -32,4 +32,4 @@ allprojects {

task clean(type: Delete) {
delete rootProject.buildDir
}
}
4 changes: 2 additions & 2 deletions project/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#Thu Jun 27 18:55:55 ART 2019
#Sat Apr 22 10:53:48 ART 2023
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-bin.zip
4 changes: 1 addition & 3 deletions src/androidTest/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="io.split.android.android_client">
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" />
<application android:usesCleartextTraffic="true">
</application>
Expand Down
12 changes: 6 additions & 6 deletions src/androidTest/java/fake/SplitClientStub.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,27 +14,27 @@

public class SplitClientStub implements SplitClient {
@Override
public String getTreatment(String split) {
return getTreatment(split);
public String getTreatment(String featureFlagName) {
return getTreatment(featureFlagName);
}

@Override
public String getTreatment(String split, Map<String, Object> attributes) {
public String getTreatment(String featureFlagName, Map<String, Object> attributes) {
return "control";
}

@Override
public SplitResult getTreatmentWithConfig(String split, Map<String, Object> attributes) {
public SplitResult getTreatmentWithConfig(String featureFlagName, Map<String, Object> attributes) {
return null;
}

@Override
public Map<String, String> getTreatments(List<String> splits, Map<String, Object> attributes) {
public Map<String, String> getTreatments(List<String> featureFlagNames, Map<String, Object> attributes) {
return null;
}

@Override
public Map<String, SplitResult> getTreatmentsWithConfig(List<String> splits, Map<String, Object> attributes) {
public Map<String, SplitResult> getTreatmentsWithConfig(List<String> featureFlagNames, Map<String, Object> attributes) {
return null;
}

Expand Down
3 changes: 1 addition & 2 deletions src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="io.split.android.android_client">
xmlns:tools="http://schemas.android.com/tools">
</manifest>
Loading

0 comments on commit 87cc500

Please sign in to comment.