Release v2.1.1: QA Hardening & Ecosystem - #4
Merged
Merged
Conversation
…le, build config Core engine: - Fix Android SharedPreferences StringSet mutation bug (critical data loss) - Fix TOCTOU race condition in reset() via atomic adapter capture - Fix setPersistenceAdapter() thread-safety with lock.withLock - O(1) queue eviction — removeAt(lastIndex) instead of linear search - Binary insertion for priority queue (O(log N) vs O(N log N) re-sort) - Add KRelay.removeInstance() API to prevent memory leaks in Super App - Add per-instance scoped metrics (scopeName on KRelayMetrics) iOS: - Optimize NSUserDefaults.clearAll() from O(N) to O(K) via scope key index Compose: - Add vararg keys to KRelayEffect and rememberKRelayImpl for recomposition safety - Add KRelayComposeTest instrumented tests Build: - Bump Decompose 3.2.0 -> 3.4.0-alpha03 (fix iOS Native Linker / SkikoKey crash) - Restore kotlinSerialization plugin (required by Decompose @serializable nav state) - Enable R8 minification for composeApp release builds - Fix composeApp namespace to dev.brewkits.krelay.demo - Tighten consumer-rules.pro (remove deleted class rules) - Add kotlin.native.cacheKind=none (workaround Kotlin 2.1.0 NPE in CacheBuilderKt) - Bump org.gradle.jvmargs to 8192M to prevent OOM on full iOS builds - Remove dead template files (Greeting.kt, Platform.kt) Docs: - Update CHANGELOG.md with full 2.1.1 release notes - Update COMPOSE_INTEGRATION.md to document vararg keys API
CI/CD: - Add release.yml CD workflow triggered by v*.*.* tags - Validates tag matches build.gradle.kts version - Runs JVM + iOS tests + BCV apiCheck before publish - Creates GitHub Release with auto-extracted CHANGELOG notes - No continue-on-error in publish steps Binary Compatibility Validator (BCV): - Add org.jetbrains.kotlinx.binary-compatibility-validator 0.17.0 - Apply to :krelay and :krelay-compose modules - apiCheck gates all PR and release builds New modules: - krelay-testing: FakeKRelayInstance, KRelayTestRule, executeLastDispatch with full assertion API (assertDispatched, assertDispatchCount, etc.) - krelay-bom: Bill of Materials (java-platform) aligning all artifact versions API fix (I-07): - Add public reified KRelay.dispatchWithPriority<T>(ActionPriority) overloads - Add reified KRelayInstance.dispatchWithPriority<T>(ActionPriority) extensions (both with and without scopeToken) Community: - Add .github/ISSUE_TEMPLATE/bug_report.yml - Add .github/ISSUE_TEMPLATE/feature_request.yml - Add .github/ISSUE_TEMPLATE/config.yml (disable blank issues) - Add CONTRIBUTING.md (setup, test commands, commit conventions, PR process) - Add SECURITY.md (responsible disclosure policy, supported versions) Roadmap: - Update ROADMAP.md: document v2.1.1 released items - Update v2.2.0: Desktop/Wasm + krelay-flow adapter + dispatchPersistedSuspend - Update v2.3.0: Observability / metrics reporter
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.
Changes
krelay-testingartifact for mock-free testingkrelay-bomintegration