Skip to content

Commit 55be713

Browse files
committed
Finalize CHANGELOG for 1.0.0-Beta1 release
Rename [Unreleased] to [1.0.0-Beta1] - 2026-05-17, add empty [Unreleased] section, add compare-link, restructure Added section by area, and backfill items audited against git log: - Added: enum DSL (#162), CC support (#164), JavaPreferences default (#167), lint detectors (#141, #176, #181), Detekt rules (#142), FlagRegistry codegen (#110), AGP Variant ProGuard auto-wire, E2E test, R8 DCE module (#165), SECURITY.md (#173), GH templates (#175). - Changed: AGP 9.1 / Gradle 9.3 migration (#135), providers/ directory reshuffle (#128). - Removed: BCV plugin (#150), @LocalFlag/@RemoteFlag. - Fixed: Firebase wrap RuntimeException (#151), MIT POM (#174), quickstart artifact IDs (#179). Closes #166.
1 parent 5a76364 commit 55be713

1 file changed

Lines changed: 63 additions & 20 deletions

File tree

CHANGELOG.md

Lines changed: 63 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,38 +7,81 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [1.0.0-Beta1] - 2026-05-17
11+
1012
### Added
1113

12-
- Configuration Cache support (Gradle 9+, AGP 9+) for `featured-gradle-plugin`
13-
- `NSUserDefaultsConfigValueProvider` for iOS/macOS local storage (#104)
14+
#### Core library
15+
16+
- Core KMP library: `ConfigParam`, `ConfigValue`, `ConfigValues` with reactive `Flow` API
17+
- Explicit initialization mechanism for `ConfigValues` (#98)
1418
- `clear()` method on `LocalConfigValueProvider` interface (#101)
1519
- Graceful error handling when a provider fails (#100)
1620
- Multivariate flag support — `enum` and sealed class `ConfigParam` types (#99)
17-
- Explicit initialization mechanism for `ConfigValues` (#98)
21+
- SKIE 0.10.5 bridge for Swift interop (coroutines, sealed classes, default arguments)
22+
- Combine `Publisher` support in `FeatureFlags.swift` (#88)
23+
- XCFramework published as Swift Package Manager artifact (#91)
24+
25+
#### Providers
26+
27+
- `InMemoryConfigValueProvider` — built-in in-memory local provider
28+
- `SharedPreferencesConfigValueProvider` — local storage via SharedPreferences
29+
- `DataStoreConfigValueProvider` — local storage via Jetpack DataStore
30+
- `JavaPreferencesConfigValueProvider` — default JVM local provider (#167, #178)
31+
- `NSUserDefaultsConfigValueProvider` for iOS/macOS local storage (#104)
32+
- `FirebaseConfigValueProvider` — remote config via Firebase Remote Config
33+
34+
#### Gradle plugin and code generation
35+
36+
- `featured-gradle-plugin` module — code generation for Kotlin, iOS, and ProGuard (#72, #76, #80, #83, #86)
37+
- Declare flags via Gradle DSL; auto-generate typed extensions and per-function R8 rules
38+
- Enum-typed flags in Gradle DSL (#162)
39+
- Auto-generated `FlagRegistry` initializers per module (#110)
40+
- Auto-wired ProGuard rules into Android builds via AGP Variant API
41+
- Configuration Cache support (Gradle 9+, AGP 9+) (#164)
42+
- E2E integration test for `featured-gradle-plugin`
43+
- `featured-shrinker-tests` — R8 dead-code-elimination verification module (#165)
44+
45+
#### Static analysis
46+
47+
- `featured-lint-rules` Android Lint module with `HardcodedFlagValue`, `UncheckedFlagAccess`, `ExpiredFeatureFlag`, and `InvalidFlagReference` detectors (#141, #176, #181)
48+
- Detekt rules: `@BehindFlag` / `@AssumesFlag` annotations and `InvalidFlagReference` / `UncheckedFlagAccess` rules (#142)
49+
50+
#### Compose and tooling
51+
52+
- `featured-compose` module — `LocalConfigValues` CompositionLocal and `collectAsState` (#73, #78)
53+
- `featured-debug-ui` module — Compose Multiplatform flag override UI (#79)
54+
- `featured-registry` module — declarative flag scanning across modules (#74)
1855
- `featured-testing` module with `FakeConfigValues` and test DSL (#97)
19-
- MkDocs Material documentation website (#96)
56+
57+
#### Packaging and docs
58+
2059
- Bill of Materials (`featured-bom`) module (#82)
2160
- Maven Central publishing for all modules (#81)
22-
- `featured-debug-ui` module — Compose Multiplatform flag override UI (#79, #648f38e)
23-
- `featured-gradle-plugin` module — code generation for Kotlin, iOS, and ProGuard (#72, #76, #80, #83, #86)
24-
- `featured-registry` module — declarative flag scanning across modules (#74)
25-
- `featured-compose` module — `LocalConfigValues` CompositionLocal and `collectAsState` (#73, #78)
26-
- XCFramework published as Swift Package Manager artifact (#91)
27-
- Combine `Publisher` support in `FeatureFlags.swift` (#88)
2861
- Dokka API reference generation (#92)
29-
- `FirebaseConfigValueProvider` — remote config via Firebase Remote Config
30-
- `DataStoreConfigValueProvider` — local storage via Jetpack DataStore
31-
- `SharedPreferencesConfigValueProvider` — local storage via SharedPreferences
32-
- `InMemoryConfigValueProvider` — built-in in-memory local provider
33-
- Core KMP library: `ConfigParam`, `ConfigValue`, `ConfigValues` with reactive `Flow` API
34-
- SKIE 0.10.5 bridge for Swift interop (coroutines, sealed classes, default arguments)
35-
- Binary Compatibility Validator (BCV) API dump for all modules (#95)
62+
- MkDocs Material documentation website (#96)
3663
- DI pattern documentation for multi-module `ConfigValues` usage (#93)
64+
- `SECURITY.md` with vulnerability disclosure policy (#173)
65+
- GitHub issue templates and pull-request template (#175)
66+
67+
### Changed
68+
69+
- Migrated to AGP 9.1.0 + Gradle 9.3.1 with full KMP plugin support (#135)
70+
- Moved all provider modules under `providers/` directory (#128)
71+
72+
### Removed
73+
74+
- `binary-compatibility-validator` (BCV) plugin from all modules (#150)
75+
- `@LocalFlag` / `@RemoteFlag` annotations from public API
3776

3877
### Fixed
3978

40-
- `ConfigValues.observe()` not reacting to remote provider changes (#c0e0557)
41-
- Xcode build: JAVA_HOME, FRAMEWORK_SEARCH_PATHS, and Swift module import (#1c488ca)
79+
- `ConfigValues.observe()` not reacting to remote provider changes
80+
- Xcode build: `JAVA_HOME`, `FRAMEWORK_SEARCH_PATHS`, and Swift module import
4281
- `@MainActor` and `Sendable` conformance in `FeatureFlags.swift` (#85)
82+
- `FirebaseConfigValueProvider.fetch()` now wraps `RuntimeException` in `FetchException` (#151)
83+
- License mismatch: use MIT in all POM declarations (#174)
84+
- Stale artifact IDs in quick-start docs (#179)
4385

44-
[Unreleased]: https://github.com/androidbroadcast/Featured/compare/HEAD...HEAD
86+
[Unreleased]: https://github.com/androidbroadcast/Featured/compare/v1.0.0-Beta1...HEAD
87+
[1.0.0-Beta1]: https://github.com/androidbroadcast/Featured/releases/tag/v1.0.0-Beta1

0 commit comments

Comments
 (0)