rerune 0.8.1
rerune: ^0.8.1 copied to clipboard
OTA localization updates for Flutter apps with build_runner code generation.
0.8.1 #
- Clamp oversized periodic refresh intervals on web to the maximum supported timer delay instead of throwing.
- Document the web timer fallback limit in the public update policy API and README.
0.8.0 #
- BREAKING:
ReRuneUpdatePolicynow configures periodic refresh withperiodicIntervalInHoursand/orperiodicIntervalInDays; minute- and second-level intervals are no longer accepted. - BREAKING: runtime now requires manifest locale entries to provide absolute
urlvalues. - BREAKING: removed runtime ARB URL fallback synthesis; ARB fetch uses manifest
urlonly. - Tightened ARB parsing to enforce string message values for non-metadata keys.
- Refactored OTA update workflow and network fetch internals to reduce cyclomatic complexity.
0.6.0 #
- BREAKING: renamed
ReRuneOverlayBuildertoReRuneBuilder.
0.5.0 #
- Added fast CLI codegen command:
dart run rerune. - Added parity guard coverage to ensure CLI and builder generation stay byte-identical.
0.4.1 #
- Excluded internal
docs/session notes from publish artifacts via.pubignore. - Excluded local
build/artifacts from publish artifacts via.pubignore.
0.4.0 #
- BREAKING: removed manual annotation-anchor setup for codegen.
build_runnernow generates ReRune config directly fromapp_localizations.dart.
0.3.0 #
- BREAKING: collapsed repository back to a single package
rerune. - BREAKING: removed split packages (
rerune_core,rerune_gen) and workspace tooling. - Added build_runner codegen directly in
rerune(build.yaml,lib/builder.dart). - BREAKING: removed macro scaffolding APIs; generation is codegen-only.
- BREAKING: setup now accepts generated localizations config via
ReRune.setup(..., localizations: reRuneAppLocalizationsConfig). - Removed macro example and retained one codegen-based example app.
0.2.0 #
- BREAKING: removed CLI wrapper generation workflow (
dart run rerune/flutter pub run rerune). - Added package-owned integration runtime APIs:
ReRune,ReRuneOverlayLocalizationsDelegate<T>, andReRuneOverlayBuilder. - BREAKING:
ReRune.setup(...)now requires supported locales either viasupportedLocales:or by callingReRune.configureLocalizationsOverlay(...)first. - Added macro migration scaffolding APIs:
ReRuneLocalizationsOverlayandReRuneLocalizationsOverlayMacro. - Migrated example app away from generated
rerune_app_localizations.dartto app-owned overlay wiring.
0.1.3 #
- Lowered package SDK constraints to
dart >=3.4.0 <4.0.0andflutter >=3.22.0to avoid unnecessarily requiring Dart 3.9+.
0.1.2 #
- BREAKING: removed generated
ReRune.fetchedRevisionListenable; useReRune.onFetchedTextsAppliedas the single fetched-update event handle. - BREAKING: simplified generated
ReRuneBuilderto a singlebuilder:callback; removedReRuneRefreshModeand refresh mode options. - Updated generator output and example pages/docs to use the single event-stream + builder model.
0.1.1 #
- Added generated
ReRuneBuilderwidget for app-side redraws after OTA changes. ReRuneBuildernow usesbuilder:(Flutter convention) instead ofchild:.ReRuneBuildersupportsReRuneRefreshMode.fetchedUpdatesOnly(default) andReRuneRefreshMode.anyControllerChange.- Updated generated wrapper template and example
BuilderPageto useReRuneBuilderinstead of manualValueListenableBuilderwiring.
0.1.0 #
- BREAKING: removed all
rerune.jsonruntime config support. - BREAKING: removed
projectId,apiKey, andmanifestUrlsetup/constructor inputs. - BREAKING:
ReRuneLocalizationControllernow requiresotaPublishIdand sends it asX-OTA-Publish-Id. - BREAKING:
ReRuneLocalizationControllerand typed builder APIs are no longer exported publicly; use generatedReRune.setup(...)andReRunestatic APIs. - Manifest endpoint is now fixed to
https://rerune.io/api/sdk/translations/manifest?platform=flutter. - ARB fallback endpoint is now
https://rerune.io/api/sdk/translations/flutter/{locale}when manifest locale URL is omitted. - Example app now uses setup-only integration (no direct controller construction).
0.0.4 #
- BREAKING: removed seed ARB support (
seedBundlesandtranslations_path). - Fallback now follows Flutter defaults only: OTA/cache first, then bundled
AppLocalizationsstrings. - BREAKING: runtime config now uses strict precedence
rerune.jsonasset -> constructor (projectId,apiKey). - BREAKING: removed runtime
--dart-definefallback for config resolution. platformis fixed toflutterand is no longer configurable in controller/runtime config.- Added explicit
StateErrorwith debug log when required credentials are missing. - Docs/examples now use
ReRune.setup(...),ReRune.localizationsDelegates, andReRune.supportedLocales. - Clarified that
ReRuneUpdatePolicydefaults tocheckOnStart: true. - Generated
ReRune.setup(...)helper now auto-wires supported locales and initializes OTA. - BREAKING: removed deprecated generated compatibility aliases (
Rerune...Setup,createRerune...Controller). - BREAKING: removed CLI executable alias
generate; useflutter pub run reruneonly. - BREAKING: renamed
OtaLocalizationControllertoReRuneLocalizationController. - BREAKING: renamed
OtaUpdatePolicytoReRuneUpdatePolicy. - BREAKING: renamed
OtaUpdateResulttoReRuneUpdateResult. - BREAKING: renamed
OtaErrorType/OtaErrortoReRuneErrorType/ReRuneError. - BREAKING: renamed
Manifest/ManifestLocaletoReRuneManifest/ReRuneManifestLocale. - BREAKING: renamed
CachedManifest/CachedArbtoReRuneCachedManifest/ReRuneCachedArb. - BREAKING: renamed
CacheStoretoReRuneCacheStoreandcreateDefaultCacheStore()toreRuneCreateDefaultCacheStore(). - BREAKING: renamed
OtaTypedLocalizationBuildertoReRuneBuilder. - BREAKING: renamed typed builder typedefs to
ReRuneDelegateFactory<T>andReRuneLocalizationWidgetBuilder<T>. - Added
ReRuneTextUpdateEventand exported it frompackage:rerune/rerune.dart. - Added optional fetched-only refresh APIs for immediate UI updates after applied OTA text changes:
reRuneFetchedRevision,reRuneFetchedRevisionListenable, andonReRuneFetchedTextsApplied. - Added
ReRuneLocalizationRefreshMode.fetchedUpdatesOnlytoReRuneBuilder. - Existing refresh behavior remains default; fetched-only refresh is opt-in.
- Updated generator output (
rerune_app_localizations.dart) to use renamedReRune*public APIs. - Expanded tests:
- controller tests for fetched-only revision/event behavior,
- new
test/ota_typed_localization_builder_test.dartfor builder refresh modes, - updated example widget test coverage for menu navigation.
- Example app now has a 3-page demo menu:
- manual refresh page,
- event-listener (
onReRuneFetchedTextsApplied) page, ReRuneBuilderpage with fetched-updates-only mode.
- Example manual refresh flow now separates update check from UI refresh and shows update-check results via
SnackBar. - Example pages are split into dedicated files under
example/lib/pages/. - Updated README and example README for renamed APIs and fetched-only refresh usage.
- Updated
AGENTS.mdnaming rules and applied them across the codebase. - Updated license copyright holder to
BasalBit GmbH.
0.0.3 #
- BREAKING: package identity is now
rerune. - BREAKING: public import changed to
package:rerune/rerune.dart. - Added canonical CLI command
flutter pub run rerunefor localization wrapper generation. - Added standard Flutter localization auto-detect from
l10n.yamland defaultgen-l10npaths. - Added
--dart-defineconfig fallback (RERUNE_PROJECT_ID,RERUNE_API_KEY,RERUNE_PLATFORM) sorerune.jsonasset setup is optional.
0.0.2 #
- BREAKING: removed legacy key-based APIs (
OtaLocalizations,OtaLocalizationsDelegate,OtaLocalizationBuilder). - BREAKING:
OtaLocalizationControllerno longer acceptsbaseUrl; API host is fixed tohttps://rerune.io/api. - Added typed
AppLocalizationsoverlay flow withOtaTypedLocalizationBuilder<T>. - Added generator entrypoint for producing typed OTA wrappers.
0.0.1 #
- Initial release of the OTA localization SDK.
- Manifest-based ARB updates with ETag support and local caching.
- Hot-swap localization delegate with Rerune-hosted manifest URLs.