What are Development Builds?
Development builds (also called “dev builds”) are published from the main development branch and contain the latest code changes. Unlike stable releases, dev builds:- Are published automatically from the development branch
- May contain unreleased features and experimental changes
- Are not subject to the same level of testing as stable releases
- Have version numbers that differ from official releases
- Are hosted on a separate Maven repository
Adding the Firework Repository
To use development builds, add thefirework Maven repository to your project’s settings.gradle.kts file:
settings.gradle.kts
Add the firework repository before other repositories to ensure dev builds are prioritized when available.
Using Development Builds
Once you’ve added the firework repository, you can specify a dev build version in your project configuration.In Version Catalog
Update yourgradle/libs.versions.toml to use a dev build version:
gradle/libs.versions.toml
Direct Plugin Declaration
Or specify the version directly in yourbuild.gradle.kts:
build.gradle.kts
For Runtime API Dependency
If you’re using the runtime API:build.gradle.kts
Version Numbering
Development builds follow a specific version numbering scheme:0.7.0-dev-12340.8.0-dev-56781.0.0-dev-9012
Finding the Latest Dev Build
To find the latest development build version:- Check the Compose Hot Reload releases page
- Look for versions tagged with
-dev- - Browse the firework repository
Release Channels
Compose Hot Reload uses different release channels:Stable Releases
- Published to Maven Central
- Thoroughly tested
- Recommended for production use
- Version format:
X.Y.Z(e.g.,0.7.0,1.0.0)
Development Builds
- Published to the firework repository
- Contain latest changes
- For testing and experimentation
- Version format:
X.Y.Z-dev-BUILD(e.g.,0.7.0-dev-1234)
When to Use Dev Builds
Good Use Cases
Testing bug fixes - A fix for your issue was merged but not yet released
Trying new features - You want to experiment with features in development
Providing feedback - The team requested testing of a specific change
Contributing - You’re developing a feature or fix and need to test it
When to Avoid Dev Builds
Switching Between Channels
From Stable to Dev
- Add the firework repository to
settings.gradle.kts - Update the version to a dev build
- Sync Gradle
From Dev to Stable
- Update the version to a stable release
- Optionally remove the firework repository
- Sync Gradle
Reporting Issues
When using development builds and encountering issues:- Note the exact version - Include the full version number (e.g.,
0.7.0-dev-1234) - Check if it’s fixed - Try a newer dev build if available
- Report the issue - Submit to the issue tracker
- Provide context - Mention you’re using a dev build
Issue Report Template
Complete Example
Here’s a complete example of a project configured to use dev builds:settings.gradle.kts
gradle/libs.versions.toml
build.gradle.kts
Best Practices
Use Version Variables
Define dev build versions in one place:gradle/libs.versions.toml
Pin Specific Versions
Avoid using+ or version ranges with dev builds:
Document Dev Build Usage
Add a comment explaining why you’re using a dev build:Test Before Committing
When using dev builds in a team:- Test thoroughly before committing the version change
- Communicate with your team about the switch
- Document any known issues
- Have a rollback plan
Troubleshooting
Dev Build Not Found
If Gradle can’t find the dev build:- Verify the firework repository is added to
settings.gradle.kts - Check the version number is correct
- Ensure the repository is listed before Maven Central
- Try refreshing Gradle dependencies
Build Fails with Dev Version
If your build fails after switching to a dev version:- Check the release notes for breaking changes
- Verify compatibility with your Kotlin and Compose versions
- Try a different dev build or revert to stable
- Report the issue if it persists
Unexpected Behavior
If you encounter unexpected behavior:- Clear Gradle caches:
./gradlew clean - Invalidate IDE caches (IntelliJ: File > Invalidate Caches)
- Try a newer or older dev build
- Compare with stable release behavior
- Report the issue with details