Join us for the next DPE Lowdown: How Spotify does DPE with Backstage – July 12, 2023. Register now.
Hydra is the world’s only parallel compiler for the Scala language. Hydra works by parallelizing all of the Scala compiler phases, taking full advantage of the many cores available in modern hardware.
Hydra is based on the open-source Scala compiler with a focus on parallelizing the work inside the compiler and maintaining strong compatibility guarantees. Certain components are replaced or improved in order to make parallelization possible.
Being based on the open-source compiler means that Hydra supports the full Scala language, including macros and compiler plugins. Hydra is more than binary compatible with open-source Scala, it generates the same bytecode.
We keep Hydra in-sync with Scala and we release on the same schedule. New features and improvements in Scala are also available in Hydra in the corresponding release. From a language feature perspective, Hydra and the Scala compiler are 100% identical.
This takes advantage of the many cores available in modern hardware to achieve impressive Scala compilation speedup.
Seamless integration with development environments means that the only thing you notice is that Scala compiles fast! Hydra supports Gradle Build Tool, Maven, and sbt.
When compiling, Hydra automatically collects statistics about your Scala project and points out bottlenecks in compilation via a modern web dashboard.
Scala is a strong statically typed high-level general-purpose programming language that supports both object-oriented programming and functional programming. Designed to be concise, many of Scala’s design decisions are aimed to address criticisms of Java. It was designed by Dr. Martin Odersky, a computer scientist and professor of programming methods at École Polytechnique Fédérale de Lausanne (EPFL) in Switzerland.
- Dr. Martin Odersky currently serves in a technical advisory role to Gradle.
- Gradle Enterprise’s planned support for sbt will bring the leading Developer Productivity Engineering (DPE) solution platform to the sbt and Scala communities.
- Gradle Inc. is committed to the continued development of Hydra and leveraging its proven global customer support services to ensure customer success.
The sbt domain expertise acquired as a result of the Triplequote acquisition (announced in February 2023), paves the way for Gradle Enterprise support for sbt, targeted for 2H 2023. sbt will become the fourth build system supported by Gradle Enterprise, joining Gradle Build Tool, Maven, and Bazel. The following Gradle Enterprise performance acceleration, failure troubleshooting, and build and test analytic technologies will soon become available to the sbt/Scala community.
Build Cache. Build Cache speeds up local and CI builds by allowing you to share and reuse unchanged build and test outputs across the team. The task input comparison tool helps you understand why local devs and CI builds are not benefitting from the remote build cache to maximize performance and reuse.
Predictive Test Selection. Leveraging machine learning, Predictive Test Selection can save significant testing time by identifying, prioritizing, and running only tests that are likely to provide useful feedback during test runs.
Test Distribution. This approach accelerates test execution and complements build caching while addressing many of the limitations of single-machine parallelism and CI fanout. It does this by distributing test execution work to remote executors.
Performance Continuity. Performance Continuity refers to a rich set of analytic, profiling, and diagnostic tools to sustain the feedback cycle time optimizations achieved with build caching. It includes critical path analysis to help focus performance improvements on the parts of the build that matter most.
Build Scan™. Build Scan gives Scala developers detailed data for every build, so they can quickly find the root cause of build and test failures and fix them on their own without re-running broken builds to reproduce problems.
To facilitate debugging, build data can be filtered by timeframe (e.g., show me only builds run in the last seven days); username (i.e., the operating system user that executed the build); the name of the root project; build tool and version; custom values and tags; and the outcome of the running build.
Build Scan links can also be shared to allow remote debugging with teammates in remote working environments. With Gradle Enterprise and Build Scan you can also easily compare builds and understand the differences that lead to the same build succeeding and then failing.
Failure Analytics. Failure Analytics complements Build Scan by improving build, test, and toolchain reliability with rich failure metrics and trend data for Scala unit and instrumentation tests. You can use Failure analytics in combination with Build Scan to make problems like flaky tests and other avoidable failures easier to detect, reproduce for root cause analysis, and prioritize for fixing based on an impact assessment and frequency of occurrence.
Trends & Insights. While Gradle Enterprise helps you react to tactical performance bottlenecks and daily failures, it also enables you to respond proactively to systemic problems and longer-term performance regressions using dashboards that make key metrics and KPIs more observable and actionable.
Subscribe to the Developer Productivity Engineering monthly newsletter