Repository navigation
Releases: kunal26das/startup
Release list
4.0.4
Startup 4.0.4 builds the library and sample with Kotlin 2.4.21 and updates the Gradle wrapper to 9.8.1, incorporating PRs #10 and #11.
The public Kotlin and Swift APIs, initialization behavior, and Android/JVM requirements are unchanged from 4.0.3. No application API migration is required.
implementation("io.github.kunal26das:startup:4.0.4")For Swift, update both api(...) and framework export(...) to 4.0.4. See the changelog and installation guide.
4.0.3
Startup 4.0.3 updates the project's Gradle wrapper from 9.7.1 to 9.8.0, including the upstream wrapper JAR and Windows launcher updates from PR #9.
The Gradle daemon now uses any installed Java 21 distribution, fixing CI failures caused by stale JetBrains runtime download URLs. Wrapper line endings are normalized so fresh checkouts stay clean.
The public Kotlin and Swift APIs, initialization behavior, and consumer requirements are unchanged from 4.0.2. No application API migration is required.
implementation("io.github.kunal26das:startup:4.0.3")For Swift, update both api(...) and framework export(...) to 4.0.3. See the changelog and installation guide.
4.0.2
Startup 4.0.2 fixes nested manifest installation, improves failure diagnostics, and avoids CPU spinning while Kotlin/Native threads wait for initialization. Public Kotlin and Swift APIs and platform requirements are unchanged.
Fixes
- An initializer can install another manifest from inside
createwithout a false cycle error. - A
StartupExceptionthrown bycreatewithout component information now identifies the failing initializer and retains the original exception as its cause. - Kotlin/Native threads waiting for the startup lock now block on a recursive pthread mutex instead of spinning.
- The sample framework uses supported Gradle dependency notation, and wrapper line endings are pinned for each platform.
Upgrade note
Each non-Android install now starts the eager components in the supplied manifest and their dependencies, matching Android. Installing an unrelated manifest no longer retries eager components left uncreated by an earlier failed install. Retry by installing the original or corrected manifest, or by requesting the component explicitly.
implementation("io.github.kunal26das:startup:4.0.2")For Swift, update both api(...) and framework export(...) to 4.0.2. See the migration guide and changelog.
4.0.1
Startup 4.0.1 updates the Android Gradle Plugin from 9.4.0 to 9.4.1 for the library and sample builds. Public Kotlin and Swift APIs, startup behavior, and consumer requirements are unchanged from 4.0.0. No application API migration is required.
implementation("io.github.kunal26das:startup:4.0.1")When exporting Startup to Swift, update both the api(...) dependency and export(...) declaration to 4.0.1.
Includes PR #7. Kotlin remains 2.4.20, JVM target remains 11, and Android requirements remain minSdk 21 and compileSdk 34 or newer.
Project website · Developer wiki · Changelog · Full comparison
4.0.0
Startup 4.0.0 is built with Kotlin 2.4.20 and includes the updated developer documentation, project website, and CI setup fixes. Public Kotlin and Swift APIs and startup behavior are unchanged from 3.0.1.
implementation("io.github.kunal26das:startup:4.0.0")- Kotlin build toolchain updated from 2.4.10 to 2.4.20.
- Android SDK setup now installs
platform-toolsexplicitly, fixing build and release failures caused by the obsoletetoolspackage. - New project website and developer wiki, with website validation and automated GitHub Pages deployment.
- Existing Kotlin 2.4, JVM target 11, Android
minSdk21, and AndroidcompileSdk34 consumer requirements remain unchanged.
When exporting Startup to Swift, update both the api(...) dependency and export(...) declaration to 4.0.0. No application API migration is required from 3.0.1.
3.0.1
Startup 3.0.1 fixes Swift task-error handling, planning reentry, and swallowed duplicate task invocations, and includes a reorganized developer guide.
Changed
StartupTask.invoke()wraps ordinary initializer failures inStartupException, retaining the
original throwable ascause. ExistingStartupExceptioninstances pass through unchanged.
Kotlin callers that handle task errors directly should inspectcause; Swift can now catch
ordinary task failures without process termination.- Runner documentation distinguishes dependency order from thread access: declaring an edge does
not make engine lookups from worker threads safe. - Reorganize the README around a complete quick start, with focused Android, Swift, runtime,
migration, sample, and contributor guides.
Fixed
- Record duplicate task invocations even when a runner catches the rejection, including concurrent
duplicates while the original invocation is still running. - Detect cycles entered through factories or
dependencies()callbacks before recursive planning
exhausts the stack. Preserve valid nested lookups, cycle paths across planning and creation, and
cleanup for retry after failure. - Refuse reentry into an enclosing initialization from a nested wave without attributing a false
cycle to unrelated sibling tasks. - Preserve original failure causes and component attribution when wrapping task failures for
transport through a runner. - Validate the Android requirements documented in README.md and CLAUDE.md against the library and
AndroidX AARs, and declare those documents as inputs tocheckAndroidFloors.
Upgrade
implementation("io.github.kunal26das:startup:3.0.1")Direct Kotlin callers of StartupTask.invoke() should inspect StartupException.cause for an ordinary initializer failure. Existing StartupException instances retain their identity. See the migration guide.
Verification
All 11 configured targets compile and link. Local validation passed 1,017 test invocations, including 20 new regression test definitions. Swift failure probes passed on macOS ARM64, macOS x64, and iOS ARM64 simulator; the Android API 26 sample launched successfully. Physical iOS and Intel iOS simulator execution were unavailable locally. Local Windows execution used Wine. The release commit CI passed another 924 test invocations across macOS, Linux, and Windows, including 93 on native Linux and 93 on native Windows, with no failed or skipped test cases in the executed suites.
Full changelog: v3.0.0...v3.0.1
3.0.0
2.1.0
2.0.0
1.1.0
Full Changelog: https://github.com/kunal26das/startup/commits/v1.1.0