Fix sbt build issues - #29
Open
arnkore wants to merge 4 commits into
Open
Conversation
- Upgrade sbt version from 0.13.12 to 1.11.6 in project/build.properties - Update sbt plugins to compatible versions for sbt 1.x: - sbt-native-packager: 1.8.1 - sbt-site: 1.4.1 - sbt-scalariform: 1.8.3 - sbt-scoverage: 1.9.3 - scalastyle-sbt-plugin: 1.0.0 - Migrate build.sbt syntax from sbt 0.13 to sbt 1.x: - Replace 'in' operator with slash syntax (e.g., 'Compile / compile') - Update task dependency syntax - Fix Universal mappings syntax - Update Java compilation target from 1.7 to 1.8 for JDK 11 compatibility - Fix Java 8 Stream API compatibility issue in spear-utils: - Replace 'lines mkString' with 'lines.toArray mkString' - Resolve dependency conflicts: - Add fansi version override to resolve ammonite dependency conflicts - Maintain Scala 2.11.11 and all business logic unchanged - All 369 tests pass successfully This upgrade enables the project to build and run on JDK 11 while maintaining Java 1.8 compilation target and preserving all existing functionality.
- Add .bsp/ directory to .gitignore to exclude IDE-generated BSP configuration files - Remove .bsp/sbt.json from version control as it contains local-specific paths - The .bsp/sbt.json file contained incorrect JDK path (jdk-24.jdk) which should not be tracked
- Add scripts/check-style.sh for standalone scalastyle checking - Add scripts/build.sh for complete build process including style checks - Add Makefile with convenient build commands (make help, make style, make build, etc.) - Add GitHub Actions CI workflow (.github/workflows/ci.yml) with: - Scalastyle code style checking - Compilation - Testing - Packaging - Fix import order issues in Scala files to pass scalastyle checks: - ValueExpressionParser.scala - aggregationAnalysis.scala - LogicalPlan.scala - Update README.md with new build instructions and CI/CD information - All scalastyle checks now pass successfully This provides a complete CI/CD solution for code quality assurance while maintaining the existing build functionality.
- Remove build/ directory containing old Apache Spark sbt launcher scripts - Update README.md to use modern sbt commands instead of ./build/sbt - Update spear-docs/overview.rst to use sbt spear-repl/run - Remove build/sbt-launch-*.jar from .gitignore as it's no longer needed - All documentation now uses standard sbt 1.11.6 commands The old build/sbt script was designed for sbt 0.13.x and is no longer compatible with the modern sbt 1.11.6 setup.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🚀 Upgrade sbt to 1.11.6 and Add CI/CD Integration
📋 Summary
This PR modernizes the Spear project by upgrading from the deprecated sbt 0.13.12 to sbt 1.11.6, ensuring JDK 11 compatibility, and implementing a comprehensive CI/CD pipeline with automated code quality checks.
🔧 Key Changes
1. SBT Upgrade & JDK 11 Compatibility
2. Code Quality & Style
3. CI/CD Integration
.github/workflows/ci.yml)scripts/build.sh,scripts/check-style.sh)4. Project Cleanup
.bsp/to .gitignore to exclude IDE-specific files🛠️ Technical Details
SBT Plugin Updates
sbt-native-packager: 1.8.1sbt-site: 1.4.1sbt-scalariform: 1.8.3sbt-scoverage: 1.9.3scalastyle-sbt-plugin: 1.0.0Build Commands
✅ Verification
�� Benefits
📝 Breaking Changes
None. This is a backward-compatible upgrade that maintains all existing functionality while modernizing the build system.
This change is