MiSikora Laboratory Versions Save

Feature flags for multi-module Kotlin Android projects

1.1.0

11 months ago

Changed

  • Upgrade Kotlin to 1.8.21.
  • Upgrade Wire to 4.7.0.
  • Upgrade KotlinPoet to 1.14.2.
  • Upgrade Gradle to 8.1.1.
  • Upgrade Hyperion to 0.9.37.
  • Upgrade Coroutines to 1.6.4.
  • Upgrade AppCompat to 1.6.1.
  • Upgrade ViewModel-ktx to 2.6.1.
  • Upgrade Fragment-ktx to 1.5.7.
  • Upgrade RecyclerView to 1.3.0.
  • Upgrade Material to 1.9.0.
  • Upgrade target and source compatibilities versions to Java 17.
  • Change compile and target SDK to 33.

1.0.3

1 year ago

Fixed

  • Generating feature flags and related classes to empty Kotlin source sets in Kotlin 1.7.20.

1.0.2

1 year ago

Fixed

  • Fixed IllegalArgumentException: Did not find Kotlin source set after upgrading to Kotlin 1.7.20.

1.0.1

1 year ago

Added

Removed

  • CoreKtx dependency.

1.0.0

2 years ago

Added

  • setOptions(options) overload which accepts collection instead of varargs.

Removed

  • ConstraintLayout dependency.
  • DynamicAnimation dependency.

1.0.0-rc2

2 years ago

Changed

  • SharedPreferencesFeatureStorage no longer marked as experimental due to coroutines.
  • Upgrade Kotlin to 1.6.10.
  • Upgrade to Coroutines 1.6.0.
  • Upgrade Wire to 4.0.1.

Fixed

  • Handle usage of deprecated features in a generated OptionFactory.

Removed

  • Builders for generator models. Models are now created via constructors and throw if data is invalid.
  • GenerationFailure interface.
  • Arrow dependency.

1.0.0-rc1

2 years ago

Added

  • Multi-module setup no longer includes other modules implicitly. Instead each module needs to be included via dependency function in Gradle.
    laboratory {
      featureFactory()
    
      // Before, these were included implicitly.
      dependency(project(":module-a"))
      dependency(project(":module-b"))
    }
    

Changed

  • Upgrade Android target and compile SDK to 31.
  • Upgrade to LifecycleViewmodelKtx 2.4.0.
  • Upgrade to KotlinPoet 1.10.2.
  • Upgrade to Wire 4.0.0.
  • Upgrade to Kotlin 1.6.0.
  • Upgrade to ConstraintLayout 2.1.2.
  • Upgrade to FragmentKtx 1.4.0.
  • Upgrade to AppCompat 1.4.0.

Removed

  • Groovy DSL introduced in 0.9.0 for adding feature flags.
  • projectFilter properties from Gradle plugin. Use explicit dependencies instead.
  • Deprecated API.

Fixed

  • Overrides of sources in DefaultOptionFactory are now respected by Laboratory - #220.

0.14.0

2 years ago

Added

  • Better integration with remote sources, like Firebase, via OptionFactory interface. It creates feature options based on a feature key and an option name.
  • Code generation of option factory via Gradle plugin.

Changed

  • Make Feature and other related classes covariant.
  • FeatureStorage functions are no longer parameterized over Feature. They accept raw class type instead.
  • Generator and Gradle plugin no longer validate package names, duplicates and other things that are checked by compiler.
  • Model builders accept now ClassName in constructor.
  • Mark SharedPreferencesFeatureStorage with ExperimentalCoroutinesApi annotation.
  • Upgrade to Kotlin 1.5.31.
  • Upgrade to Material 1.4.0.
  • Upgrade to CoreKtx 1.6.0.
  • Upgrade to DataStore 1.0.0.
  • Upgrade to AGP 4.2.2.
  • Upgrade to Hyperion 0.9.34.
  • Upgrade to FragmentKtx 1.3.6.
  • Upgrade to AppCompat 1.3.1.
  • Upgrade to ConstraintLayout 2.1.1.
  • Upgrade to ArrowKt 1.0.0.
  • Upgrade to Coroutines 1.5.2.
  • Upgrade to KotlinPoet 1.10.1.

Deprecated

  • FeatureStorage.Companion.sharedPreferences(Context) function. Use overload that accepts SharedPreferences instead.
  • FeatureStorage.Companion.dataStore(() -> File) function. Use overload that accepts DataStore instead.
  • FeatureStorage.Companion.dataStore(Context, String) function. Use overload that accepts DataStore instead.
  • generate() methods on generation models. Use prepare() and operate on FileSpec directly instead.

Removed

  • Dependency on Kyrie.
  • Dependency on JCenter.

0.13.1

2 years ago

Changed

  • Upgrade to Kotlin 1.5.20.
  • Upgrade to RecyclerView 1.2.1.
  • Upgrade to FragmentKtx 1.3.5.
  • Upgrade to DataStore 1.0.0-beta02.
  • Upgrade to KotlinPoet 1.9.0.
  • Upgrade to CoreKtx 1.5.0.
  • Upgrade to AppCompat 1.3.0.

0.13.0

2 years ago

Changed

  • Drop deprecated @JvmDefault and switch to JVM default modes.
  • Upgrade to Kotlin 1.5.0.
  • Upgrade to Coroutines 1.5.0.
  • Upgrade to AGP 4.2.1.
  • Upgrade to KotlinPoet 1.8.0.
  • Upgrade to RecyclerView 1.2.0.
  • Upgrade to Hyperion 0.9.32.
  • Upgrade to FragmentKtx 1.3.3.
  • Upgrade to DataStore 1.0.0-beta01.