Scala good first issues

87 open Scala issues currently match the default 10+ star filter. Scored difficulty: 5,947 at 1/5, 8,788 at 2/5, 12,702 at 3/5, 12,124 at 4/5, 857 at 5/5. This hub uses the same feed as the homepage, limited to repositories whose GitHub language is Scala.

All languages · Browse projects · How to find good first issues

Active projects

Unique repos with open help-wanted issues updated in the last 30 days

Showing 30 of ~87 matching filters (Scala · 10+ stars)

List

Web Components Asynchrony

AI summary

This issue addresses the asynchronous nature of Web Components, which can cause timing problems when interacting with them, such as using lifecycle modifiers like `onMountFocus`. The author needs to understand the Web Components loading timeline, specifically the `WebComponentsReady` event, to determine when it's safe to interact with components and how to handle cases where components are added dynamically. The goal is to improve Laminar's integration with Web Components.

enhancementhelp wanted✅ code is done
835
Difficulty
3/5

[VL] Support TIMESTAMP_NTZ Type

AI summary

This issue proposes adding support for Spark's TimestampNTZType in Velox. This type is timezone-agnostic and differs from Presto's and Spark's timezone-aware timestamp types, requiring careful handling, especially when interacting with Parquet storage which uses specific annotations to differentiate these types.

enhancementgood first issue
1.6K
Difficulty
3/5

[CORE] Drop the now-constant ">= 3.4" test gates

AI summary

This issue proposes to remove redundant test gates in the codebase that are set to a minimum Spark version of 3.4. Since 3.4 is the lowest supported profile, these gates are effectively no longer necessary and add unnecessary indirection. The change aims to simplify testing by removing these constant gates and ensuring that all remaining version gates are meaningful.

good first issue
1.6K
Difficulty
2/5

Change ValidatorApp Participant Initialization workflow by using a "new" canton participant API call

AI summary

This issue proposes refactoring the ValidatorApp's participant initialization workflow. The current implementation uses a retry mechanism for `getId()` calls to handle potential race conditions and bootstrapping delays. The goal is to leverage a new Canton participant API call to streamline this process.

good first issueblocked-on-upstream
101
Difficulty
3/5

cli: repeated --[tool-]classpath arguments are silently ignored

AI summary

The scalafix CLI tool silently ignores repeated --classpath arguments if they don't contain SemanticDB information, leading to unexpected errors when trying to analyze code that depends on libraries without SemanticDB. The user expects that non-SemanticDB JARs can be included in the classpath for dependency resolution without causing errors.

good first issueenhancementcli
874
Difficulty
3/5

EntityDecoder MediaRange translation

AI summary

This issue proposes adding a new method to facilitate the translation of media types within an `EntityDecoder`. The current implementation lacks a straightforward way to switch between accepting different media types, and the suggested `withNewRange` method aims to address this by allowing the creation of a new decoder that accepts a specified set of media ranges while delegating the actual decoding to an existing decoder.

enhancementgood first issuemodule:core
2.6K
Difficulty
2/5

chore: Fix Scala code warnings

AI summary

This issue addresses Scala code hygiene warnings introduced by the `strict-warnings` profile in the build process. The goal is to fix these warnings to ensure cleaner and more robust Scala code within the project.

enhancementgood first issuehelp wantedbuild
1.2K
Difficulty
2/5

`make format` output fails scalastyle IfBraceChecker (scalafmt wraps long brace-less if/else without adding braces)

AI summary

The `make format` command, which uses `scalafmt` for code formatting, creates code that violates the repository's `scalastyle` rules. Specifically, `scalafmt` reformats long brace-less `if`/`else` statements to span multiple lines without adding braces, which `scalastyle`'s `IfBraceChecker` then flags as an error. This results in `make format` reporting success while leaving code that will fail the build and CI.

good first issuearea:ci
1.2K
Difficulty
3/5
apache/gluten

[VL] Add ANSI mode support

AI summary

This issue tracks the implementation of ANSI mode support within the Velox project, focusing on ensuring correct behavior for type casting functions according to ANSI SQL standards. It details specific casting operations that need to be addressed, such as string to boolean, decimal to string, and string to timestamp, with some tasks already completed and others pending.

enhancementgood first issue
1.6K
Difficulty
3/5

[BUG] Normalize nested DateGen scalar values for PySpark arguments

AI summary

This bug concerns the inconsistent handling of nested date values within PySpark arguments. While top-level dates are normalized correctly, dates embedded within arrays, structs, or maps are not, leading to potential issues with pre-1000 dates. The fix involves ensuring recursive normalization of these nested date literals to maintain a consistent ISO representation.

buggood first issuetech debt
985
Difficulty
3/5

localstack/localstack:latest now requires auth

AI summary

The latest version of LocalStack (2026.3.1.dev3) now requires authentication, causing testing for `aws-spi-pekko-http` to break. The error message indicates that no credentials were found and suggests setting the `LOCALSTACK_AUTH_TOKEN` environment variable or using the CLI to set a token.

help wanted
82
Difficulty
2/5
apache/kyuubi

:memo: Consolidate a documentation format to a single approach

AI summary

This issue proposes consolidating the Apache Kyuubi documentation from a hybrid reStructuredText (.rst) and Markdown (.md) format to a single approach. The goal is to simplify the contribution process, improve cross-referencing, and streamline the build pipeline by eliminating the need for multiple Sphinx extensions.

help wantedkind:documentation
2.3K
Difficulty
3/5

Delete package.json

AI summary

This issue proposes deleting the `package.json` file, assuming there are no longer any npm dependencies. The author suggests trying this and observing any resulting breakage to confirm the assumption.

good first issue
348
Difficulty
2/5

lower_enabled.sql and upper_enabled.sql set a no-op config and never test the native path

AI summary

The `lower_enabled.sql` and `upper_enabled.sql` test files are not correctly testing the native case-conversion path as intended. They are configured to use a no-op setting, causing them to always fall back to the codegen dispatcher instead of the native implementation. This issue appears to be a leftover from a previous configuration change and is not causing any visible failures due to the test data.

buggood first issuetestpriority:lowarea:expressionsrequires-triage
1.2K
Difficulty
2/5

fix: Java Kernel data skipping uses case-sensitive column matching

AI summary

This issue addresses a bug in the Java Kernel where column names are matched case-sensitively in the data skipping path. This contradicts the Delta protocol specification and Delta Spark's implementation, leading to data skipping failing when predicate column names differ in casing from the schema. The fix involves making column matching case-insensitive to align with the protocol and ensure correct data skipping.

buggood first issue
8.9K
Difficulty
2/5

[Kernel] Remove unecessary N.json loading for InCommitTimestamp value

AI summary

This issue proposes removing an unnecessary cloud read request for the N.json file in the Kernel. The in-commit-timestamp value, which is currently retrieved from this file, can be obtained more efficiently by leveraging information already present in .crc files or by analyzing delta log .json files.

good first issuekernel
8.9K
Difficulty
2/5

[Kernel] Fix Pagination Log Segment Validation for Staged Commit File Renames

AI summary

The task requires fixing a bug in the Delta Lake Kernel component. The bug causes an exception when a staged commit file is renamed during pagination, specifically when a file's name changes from a format including a UUID to a simpler format (e.g., 9.uuid.json to 9.json). The solution involves modifying the log segment validation to correctly handle this type of file renaming without throwing an exception.

buggood first issue
8.9K
Difficulty
4/5

[Kernel][Testing] Run more write test suites using the V2 builders

AI summary

This is a feature request to expand testing for Delta Lake's Kernel component. The goal is to run more existing write test suites, specifically those utilizing `WriteUtils`, with the V2 builders, in addition to the V1 builders they already support. This enhancement aims to improve test coverage and ensure compatibility with the V2 builder architecture.

enhancementgood first issuekernel
8.9K
Difficulty
2/5

`named_struct` with duplicate field names falls back to Spark

AI summary

This issue describes a bug where `named_struct` with duplicate field names causes the entire projection to fall back to Spark. The fix involves mixing `CodegenDispatchFallback` into `CometCreateNamedStruct` to handle this scenario, as Spark and Arrow allow duplicate field names in structs.

enhancementgood first issuearea:expressions
1.2K
Difficulty
2/5

`length` / `bit_length` / `octet_length` fall back to Spark on binary input

AI summary

This issue proposes to enable Comet's `length`, `bit_length`, and `octet_length` functions to handle `BinaryType` input. Currently, these functions fall back to Spark for binary input, which is inefficient. The fix involves mixing `CodegenDispatchFallback` into these functions, allowing them to be handled natively by Comet.

enhancementgood first issuearea:expressions
1.2K
Difficulty
2/5

`translate` falls back to Spark by default instead of using the codegen dispatcher like the other string functions

AI summary

The `translate` string function in Comet currently falls back to Spark by default due to an unconditional `Incompatible` status, even though other string functions use a codegen dispatcher. This issue proposes mixing `CodegenDispatchFallback` into `CometStringTranslate` to enable default codegen support, similar to other string functions, with the grapheme/code-point difference becoming an opt-in caveat.

enhancementgood first issuearea:expressions
1.2K
Difficulty
2/5

`abs` on interval types falls back to Spark

AI summary

The `abs` function applied to interval types in Comet currently causes a fallback to Spark's implementation, even though Comet's dispatcher explicitly supports these interval types. This issue proposes mixing `CodegenDispatchFallback` into `CometAbs` to address this, leveraging Spark's built-in ANSI overflow behavior for intervals.

enhancementgood first issuearea:expressions
1.2K
Difficulty
2/5
apache/kyuubi

[FEATURE] Extract kyuubiClientPrincipal/kyuubiClientKeytab from JDBC connection properties

AI summary

This feature request aims to allow users to provide Kyuubi client principal and keytab directly within JDBC connection properties, similar to how user and password are handled. This would simplify authentication for clients connecting to Kyuubi via JDBC by consolidating credentials in a single location.

kind:featuregood first issuepriority:major
2.3K
Difficulty
2/5

[Incompatibility] Document array_join null handling differences

AI summary

This issue aims to document the incompatibility of Comet's `array_join` function with Spark's behavior, specifically regarding how null elements are handled. The current implementation relies on DataFusion's `array_to_string`, which may have different null handling and replacement strategies compared to Spark. Verification is needed to identify and potentially fix these discrepancies.

documentationenhancementgood first issuearray expressions
1.2K
Difficulty
3/5
apache/kyuubi

:memo: Recommend to configure `kyuubi.session.conf.restrict.list` or/and `kyuubi.session.conf.ignore.list` for multi-tenant Kyuubi cluster

AI summary

This issue highlights a potential security concern in multi-tenant Kyuubi clusters where session configuration restrictions are not set by default. The author suggests improving documentation to guide administrators on configuring `kyuubi.session.conf.restrict.list` or `kyuubi.session.conf.ignore.list` to prevent users from overwriting session configurations, rather than changing default values.

help wantedgood first issuekind:documentation
2.3K
Difficulty
2/5

Also browsing: Python , TypeScript , JavaScript