From 683a919a36394aa1e743eaffee2a3d6ea5571bc3 Mon Sep 17 00:00:00 2001 From: Ksenia Shneyveys <33317186+Belosnegova@users.noreply.github.com> Date: Wed, 19 Feb 2025 17:02:57 +0100 Subject: [PATCH] update: update gsoc-2025.md (#4710) * Update gsoc-2025.md Added minor update and 3 new projects * Apply suggestions from code review --------- Co-authored-by: Andrey Polyakov --- docs/topics/gsoc-2025.md | 80 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 76 insertions(+), 4 deletions(-) diff --git a/docs/topics/gsoc-2025.md b/docs/topics/gsoc-2025.md index 65dab4d3a5b..b20dee07842 100644 --- a/docs/topics/gsoc-2025.md +++ b/docs/topics/gsoc-2025.md @@ -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. @@ -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** @@ -302,4 +302,76 @@ and external companies to integrate their workflows with JetBrains tools. **Possible mentor** -Jakub Chrzanowski, JetBrains \ No newline at end of file +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