Skip to content

Update all dependencies#109

Open
krzema12 wants to merge 14 commits into
masterfrom
update-all-dependencies
Open

Update all dependencies#109
krzema12 wants to merge 14 commits into
masterfrom
update-all-dependencies

Conversation

@krzema12
Copy link
Copy Markdown
Collaborator

Updates all major dependencies to latest stable versions:

  • Kotlin: 1.5.10 → 2.3.21
  • Gradle: 7.0 → 9.5.1
  • Android Gradle Plugin: 4.2.0 → 9.2.0
  • compileSdk/targetSdk: 29 → 36
  • Kotlin wrappers: old pre.206 format → 2026.4.14-19.2.5
  • React: 17.0.2 → 19.2.5
  • MUI: @material-ui/core 4.x → @mui/material 5.18.0
  • wavesurfer.js: 3.3.3 → 7.12.7
  • clikt: 1.7.0 → 5.1.0
  • kotlinx-coroutines: 1.4.3 → 1.11.0
  • ktlint: 0.32.0 → 1.8.0
  • jacoco: 0.8.3 → 0.8.14
  • grgit: 4.1.1 → 5.3.2
  • Various AndroidX and test dependencies updated

Also includes necessary migration changes: kotlinOptionscompilerOptions, kotlin-android/ kotlin-android-extensions → AGP built-in Kotlin, JS modules → kotlin("multiplatform"), main source sets → jsMain, clikt import fix, generated source dir relocation to avoid Gradle 9.x shared-output validation.

@krzema12
Copy link
Copy Markdown
Collaborator Author

White screen in running - TODO investigate and fix.

krzema12 added 14 commits May 22, 2026 13:17
- Add binaries.executable() to enable webpack distribution tasks
- Set distribution outputDirectory to build/distributions
- Add html-webpack-plugin npm dev dependency (5.6.3)
- Create webpack.config.d/apply-html-webpack-plugin.js with custom template
- Set duplicatesStrategy to INCLUDE on jsBrowserDistribution Sync task
Kotlin 2.3.21 requires JDK 17+. Switch all CI jobs from JDK 8 to
JDK 17. Also remove redundant JDK 8 override in android job (was
set after JDK 17).
- Fix HTTP server to serve JS with correct Content-Type header
- Fix main.kt FC pattern: use Player { ... } invoke operator instead of
  Player.create { ... } which discarded the returned ReactElement
- Fix Player.kt infinite re-render: use this.synthesisParameters to
  reference PlaybackCustomizationProps property instead of shadowed
  Player state variable causing setState during render
- Remove ws.init() call - WaveSurfer.js v7 auto-initializes in constructor
- Remove init() from WaveSurfer external type declarations
- Fix copy task dependency to use jsBrowserDistribution instead of assemble
- Use project-relative paths for copy task source directories
- Restore --ignore-engines flag for KotlinNpmInstallTask
- Remove ws.init() call - WaveSurfer.js v7 auto-initializes in constructor
- Remove init() from WaveSurfer external type declarations
- Fix copy task dependency to use jsBrowserDistribution instead of assemble
- Use buildDir File paths for copy tasks instead of layout.buildDirectory
- Restore --ignore-engines flag for KotlinNpmInstallTask in root build.gradle.kts
- Move worker/serviceworker sources from src/main/kotlin to src/jsMain/kotlin
- Add binaries.executable() to worker/serviceworker build.gradle.kts
- Replace useEffectOnce + scopeRef with CoroutineScope(EmptyCoroutineContext).launch
- Fix property name mangling mismatch between worker and main bundles by using JS object literals for postMessage
- Restore service worker registration in main.kt
Make copyWorkerDistributionFiles and copyServiceWorkerDistributionFiles
part of the :web:assemble task so worker.js and serviceworker.js are
present in the distribution after a normal :web:build.
@krzema12 krzema12 force-pushed the update-all-dependencies branch from fad9a92 to 16ae3c4 Compare May 22, 2026 11:19
@krzema12
Copy link
Copy Markdown
Collaborator Author

Do not merge - multiple player components appear when clicking buttons1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant