Skip to content

Commit

Permalink
update: update gsoc-2025.md (#4710)
Browse files Browse the repository at this point in the history
* Update gsoc-2025.md

Added minor update and 3  new projects

* Apply suggestions from code review

---------

Co-authored-by: Andrey Polyakov <[email protected]>
  • Loading branch information
Belosnegova and koshachy authored Feb 19, 2025
1 parent cf0a2fb commit 683a919
Showing 1 changed file with 76 additions and 4 deletions.
80 changes: 76 additions & 4 deletions docs/topics/gsoc-2025.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ Thank you! We look forward to reading your applications!

## Project ideas

### Build Server Protocol: add Kotlin support [Medium, 175 hrs]
### Build Server Protocol: add Kotlin support [Hard, 350 hrs]

The Kotlin team wants to expand official Kotlin support not only for Gradle and Maven build systems,
but any other build system as well and support them natively in JetBrains IDE with minimal effort.
Expand All @@ -65,9 +65,9 @@ To limit the scope of this prototype – user project will be using Gradle to bu
* Understanding how to write Gradle plugins
* _Bonus_: understanding how to write IntelliJ IDEA plugins

**Possible mentor**
**Possible mentors**

Yahor Berdnikau, and the JetBrains team
Yahor Berdnikau, Bálint Hegyi, and Reinhold Degenfellner

**Tasks for applicants**

Expand Down Expand Up @@ -302,4 +302,76 @@ and external companies to integrate their workflows with JetBrains tools.

**Possible mentor**

Jakub Chrzanowski, JetBrains
Jakub Chrzanowski, JetBrains

### Add More Kotlin OpenRewrite Recipes [Medium, 175 hrs]

OpenRewrite is a powerful framework for automating code migrations and refactorings in a structured manner.
While OpenRewrite has strong support for Java, the Kotlin ecosystem would benefit from a more comprehensive
set of OpenRewrite recipes to help developers seamlessly migrate their codebases.

**Expected outcomes**

* Development of new OpenRewrite recipes for Kotlin code migrations

**Skills required (preferred)**

* Kotlin
* OpenRewrite framework
* Java-to-Kotlin migration strategies

**Possible mentor**

Shauvik Roy Choudhary, and the Uber team

### Add BOM Support to Bazel `rules_jvm_external` [Hard, 350 hrs]

Bazel's `rules_jvm_external` provides a structured way to declare external Java dependencies,
but it currently lacks proper support for Bill of Materials (BOM) files.
BOM files are widely used in Maven and Gradle to manage dependencies in a consistent manner
without requiring developers to specify individual versions.
This project aims to enhance `rules_jvm_external` by adding BOM support, allowing developers to use BOM-based dependency resolution within Bazel.
The project may involve contributing to an existing open-source effort or implementing BOM support directly in `rules_jvm_external`,
ensuring compatibility with widely used dependency management approaches.

**Expected outcomes**

* Implementation of BOM support in Bazel `rules_jvm_external`
* Improved dependency resolution and usability for Bazel users
* Documentation and examples for using BOM support in Bazel

**Skills required (preferred)**

* Starlark (Bazel's scripting language)
* Bazel build system
* Dependency resolution strategies

**Possible mentor**

Shauvik Roy Choudhary, and the Uber team

### Clean and actionable reporting for Gradle code quality plugins for Kotlin [Easy to Medium, 90 hrs to 175 hrs]

Gradle recently introduced a new [Problems API](https://docs.gradle.org/current/userguide/reporting_problems.html)
that allows Gradle and third-party plugins to propagate issues and warnings in a unified way.
This API provides clean and actionable error reporting and more insights into the console output, dedicated HTML reports,
and connected observability tools. IDEs, such as IntelliJ IDEA or Android Studio, also have access to the details via Gradle's tool integration API,
and can show warnings right in the code editorI. Several core features and plugins have already adopted the Problems API: Java compilation,
dependency resolution errors, deprecation warnings, etc. We want the code quality plugins for Kotlin to adopt this API, too; it would greatly
improve the developer experience for 100,000+ Kotlin developers using Gradle.

In this project, we invite contributors to choose a number of Kotlin code quality plugins, such as Ktlint, Detekt, Diktat, ArchUnit, or Checkstyle
for Kotlin, and integrate them with Problems API. You can also work on integrating a similar analysis for Gradle builds defined with KotlinDSL.

**Expected outcomes**

* Implement Problems API integration in the mentioned plugins

**Skills required (preferred)**

* Kotlin
* Gradle

**Possible mentors**

Oleg Nenashev, Balint Hegyi, Reinhold Degenfellner

0 comments on commit 683a919

Please sign in to comment.