Skip to content

maint(core) Upgrade to scala 2.13 and Akka 2.6.21 (Do Not Merge)#2103

Open
amolnayak311 wants to merge 19 commits into
filodb:developfrom
amolnayak311:scala2_13
Open

maint(core) Upgrade to scala 2.13 and Akka 2.6.21 (Do Not Merge)#2103
amolnayak311 wants to merge 19 commits into
filodb:developfrom
amolnayak311:scala2_13

Conversation

@amolnayak311
Copy link
Copy Markdown
Contributor

Pull Request checklist

  • The commit(s) message(s) follows the contribution guidelines ?
  • Tests for the changes have been added (for bug fixes / features) ?
  • Docs have been added / updated (for bug fixes / features) ?

Current behavior :
TODO

New behavior :

TODO

BREAKING CHANGES

TODO

@amolnayak311 amolnayak311 changed the title maint(core) Upgrade to scala 2.13 and Akka 2.6.21 maint(core) Upgrade to scala 2.13 and Akka 2.6.21 (Do Not Merge) Dec 5, 2025
@amolnayak311 amolnayak311 marked this pull request as ready for review December 5, 2025 03:56
amolnayak311 and others added 13 commits December 9, 2025 16:40
Resolved conflicts:
- Dependencies.scala: Kept Scala 2.13 compatible versions
- FilodbMetrics.scala: Updated to use scala.jdk.CollectionConverters for Scala 2.13
- TestData.scala: Used LazyList for Scala 2.13, kept upstream metricNameSuffix param
- TimeSeriesMemStoreSpec.scala: Updated constructor with additional NullColumnStore param
- DemandPagedChunkStoreSpec.scala: Used upstream pattern assignment
- PlannerHierarchySpec.scala: Updated PerQueryLimits with additional parameter
- LabelChurnFinder.scala: Adopted upstream implementation
- LabelChurnFinderSpec.scala: Updated import to use LabelChurnFinder._
- Removed LcfTask.scala as deleted in upstream
- Fixed deprecated Scala 2.13 collection API usage:
  - Updated JavaConverters to CollectionConverters in InstrumentedExecutorService.scala
  - Fixed mapValues deprecation in LabelChurnFinder.scala using view.mapValues.toMap
  - Updated Stream to LazyList in TestData.scala for Scala 2.13 compatibility

- Fixed compilation warnings and errors:
  - Added explicit .toDouble calls to prevent widening conversion warnings
  - Added @scala.annotation.unused to suppress unused variable warnings
  - Temporarily commented out missing OpenTelemetry instrumentation imports

- All modules now compile successfully with JDK 21 and Scala 2.13
- Resolved all merge conflicts while preserving Scala 2.13 compatibility
- Updated CI workflow to support both JDK 17 and JDK 21 in matrix build
- Set JDK 21 as primary testing environment with JDK 17 for compatibility
- Added scala2_13 branch to CI trigger branches for PR testing
- Enhanced test script with better logging and compilation verification
- Added SBT dependency caching to improve CI performance
- Updated GitHub Actions to latest versions (v4)
- Changed JDK distribution from 'adopt' to 'temurin' (recommended)

Documentation updates:
- Updated README prerequisites to reflect JDK 17/21 requirement
- Noted that JDK 11 is no longer supported
- Documented Scala 2.13.12 usage
- Added performance recommendations for JDK 21

CI improvements:
- Added compilation check before running tests
- Enhanced error reporting and version verification
- Separated coverage reports by JDK version
- Set fail-fast: false to test both JDK versions independently
- Removed matrix build strategy and JDK 17 testing
- Updated CI to use only JDK 21 for cleaner, faster builds
- Updated test script with JDK 21 specific messaging and validation
- Modified README to require JDK 21 as the only supported version
- Simplified cache keys to be JDK 21 specific
- Updated coverage report naming to reflect single JDK version

This change:
- Reduces CI build time by 50% (single JDK instead of matrix)
- Establishes JDK 21 as the definitive runtime requirement
- Aligns with modern Java LTS strategy focusing on latest LTS version
- Simplifies maintenance and debugging of CI issues
- Updated gatling-sbt plugin from 3.2.2 to 4.17.9
- Updated gatling-charts-highcharts from 3.2.0 to 3.11.5
- Updated gatling-test-framework from 3.2.0 to 3.11.5

This resolves the 'Conflicting cross-version suffixes in: org.scala-lang.modules:scala-xml _2.13, _2.12' error in the gatling module.
…DK 21

- Update GatlingDriver to use new Gatling.main() API (GatlingPropertiesBuilder removed in 3.9+)
- Remove unused GatlingPropertiesBuilder import
- Add dependency overrides for Kryo 5.5.0, minlog 1.3.1, objenesis 3.3 to prevent ClassCastException
- Exclude transitive Kryo dependencies from kryo-serializers to use consistent Kryo 5.x

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
The .bsp folder contains Build Server Protocol configuration files
that are auto-generated by IDEs and should not be tracked in git.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
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