Spec-Zone.ru › Kotlin 2

Google Summer of Code с Kotlin 2025

В этой статье содержится список идей для проектов для Google Summer of Code с Kotlin 2025 и рекомендации для участников

Ресурсы Kotlin:

  • Репозиторий Kotlin на GitHub

  • Kotlin в Slack и канал Slack #gsoc

Если у вас есть вопросы, свяжитесь с нами по адресу gsoc@kotlinfoundation.org

Рекомендации для участников Kotlin в Google Summer of Code (GSoC)

Начало работы

  1. Ознакомьтесь с разделом часто задаваемых вопросов о GSoC и объявлением о программе.

  2. Познакомьтесь с языком Kotlin:

    • Официальный сайт Kotlin — отличное место для начала.

    • Прочитайте официальную документацию, чтобы лучше понять язык.

    • Изучите курсы по Kotlin в JetBrains Academy или варианты обучения от команды Android.

    • Подпишитесь на аккаунты Kotlin в X или Kotlin в Bluesky, чтобы следить за последними новостями и событиями.

    • Загляните на YouTube-канал Kotlin, где вы найдете обучающие материалы, советы и последние обновления.

  3. Познакомьтесь с сообществом Kotlin с открытым исходным кодом:

    • Ознакомьтесь с общими рекомендациями по участию в разработке Kotlin.

    • Присоединитесь к каналу Kotlin в Slack, чтобы общаться с другими разработчиками и получать помощь с любыми вопросами.

    • Присоединитесь к каналу #gsoc, чтобы задавать вопросы и получать поддержку от команды GSoC.

Как подать заявку

  1. Ознакомьтесь с идеями для проектов и выберите ту, над которой хотели бы работать.

  2. Если вы не знакомы с Kotlin, прочитайте вводную информацию на сайте Kotlin.

  3. Ознакомьтесь с рекомендациями для участников GSoC.

  4. Подайте заявку через сайт GSoC.

    • Мы рекомендуем написать работающий пример кода, связанный с предлагаемым проектом. Также вы можете показать любой пример кода, которым особенно гордитесь.

    • Расскажите, почему вас интересует Kotlin и какой у вас опыт работы с ним.

    • Если вы участвуете в проектах с открытым исходным кодом, расскажите о своем вкладе в них.

    • Если у вас есть аккаунт на GitHub или в Twitter, блог либо портфолио технических или научных публикаций, укажите их.

    • Сообщите о любых обстоятельствах, которые могут повлиять на ваше участие в GSoC, например об экзаменах или отпуске.

Спасибо! Мы с нетерпением ждем ваших заявок!

Идеи проектов

Протокол сервера сборки: добавление поддержки Kotlin [Сложный, 350 ч]

Команда Kotlin хочет расширить официальную поддержку Kotlin не только для систем сборки Gradle и Maven, но и для любых других систем сборки, а также обеспечить их встроенную поддержку в IDE JetBrains с минимальными усилиями. С другой стороны, мы также хотим обеспечить базовую поддержку Kotlin в IDE не от JetBrains — одной из составляющих такой поддержки является возможность получать информацию, специфичную для Kotlin, из любой системы сборки, поддерживающей Kotlin.

Решением этих задач может стать протокол сервера сборки (BSP), который обеспечивает уровень абстракции между системой сборки и IDE.

Цель этого проекта — реализовать прототип, использующий протокол BSP для получения из пользовательского проекта всей необходимой IntelliJ IDEA информации, чтобы в проекте можно было работать с кодом на Kotlin. Чтобы ограничить масштаб прототипа, пользовательский проект будет автоматически собираться с помощью Gradle.

Желательные навыки

  • Знание Kotlin

  • Понимание того, как писать плагины Gradle

  • Дополнительный плюс: понимание того, как писать плагины для IntelliJ IDEA

Возможные наставники

Yahor Berdnikau, Bálint Hegyi и Reinhold Degenfellner

Задания для кандидатов

  • Задание № 1. Почему вас заинтересовал этот проект?

  • Задание № 2. Практическое задание: создайте плагин Gradle, предоставляющий определённую задачу. Если подключён Kotlin Gradle Plugin, эта задача должна получать структуру всех исходных файлов Kotlin и выводить её. Дополнительным плюсом будут тесты.

Поддержка Android и iOS в Kotlin Multiplatform для Gemini с использованием Vertex AI in Firebase [Средний, 175 ч]

Цель этого проекта — создать библиотеку Kotlin Multiplatform (KMP) с открытым исходным кодом, которая поддерживает Gemini с использованием Vertex AI in Firebase как минимум на Android и iOS. Она продемонстрирует лучшие практики создания библиотек KMP для существующих сервисов, уделяя особое внимание корректной реализации для промышленной эксплуатации (например, надлежащему управлению API-ключами, поддержке API-ключей, управляемых пользователями, и ограничению частоты запросов клиентов).

Ожидаемые результаты

  • Новая библиотека Kotlin Multiplatform с поддержкой существующего сервиса Google

  • Примеры кода и документация

Желательные навыки

  • Kotlin

  • Kotlin Multiplatform

  • Разработка мобильных приложений (Android и iOS)

Возможные наставники

Matt Dyor и команда Google

Добавление поддержки Kotlin Multiplatform в Bazel [Сложный, 350 ч]

Поддержка Kotlin в Bazel развивается, но полноценная интеграция Kotlin Multiplatform (KMP) по-прежнему остаётся сложной задачей. Этот проект направлен на улучшение поддержки KMP в Bazel за счёт решения проблем с разрешением зависимостей, улучшения совместимости rules_kotlin и rules_jvm_external и обеспечения кроссплатформенных сборок.

Основные улучшения будут направлены на работу с платформозависимыми зависимостями (механизмы expect/actual), расширение поддержки метаданных Gradle и упрощение разработки на KMP в Bazel.

Ожидаемые результаты

  • Улучшенное разрешение зависимостей Kotlin Multiplatform в Bazel

  • Улучшенная интеграция с rules_kotlin и rules_jvm_external

  • Рабочая конфигурация сборки KMP в Bazel для бесшовной кроссплатформенной разработки

Желательные навыки

  • Kotlin Multiplatform и Gradle

  • Система сборки Bazel

  • Стратегии разрешения зависимостей

Возможные наставники

Shauvik Roy Choudhary и команда Uber

Языковой сервер Kotlin (LSP) [Сложный, 350 ч]

Протокол языкового сервера (LSP) — широко распространённый стандарт, который обеспечивает такие функции интеллектуальной работы с кодом, как автодополнение, переход к определению и рефакторинг, в разных редакторах и IDE. Хотя официального LSP-сервера для Kotlin пока нет, сообщество испытывает в нём значительную потребность. Поддерживаемая сообществом общедоступная реализация может охватывать широкий спектр задач, включая миграцию кода, помощь в работе с кодом на основе ИИ и простую интеграцию в различные среды разработки.

Цель этого проекта — разработать реализацию LSP для Kotlin, обеспечив совместимость с ключевыми функциями LSP и расширив доступность Kotlin в различных средах разработки.

Ожидаемые результаты

Разработка реализации LSP для Kotlin

Желательные навыки

  • Kotlin

  • Протокол языкового сервера (LSP)

  • Разработка плагинов или расширений для IDE

Возможные наставники

Shauvik Roy Choudhary и команда Uber

Плагин публикации в Maven Central для Gradle с новыми API [Средний, 175 ч]

Maven Central — один из самых популярных репозиториев Maven для публикации библиотек и проектов, ориентированных на JVM. Его активно используют проекты с открытым исходным кодом на Apache Maven и Gradle. Он основан на Sonatype Nexus v2, миграция на более новую версию ещё ожидается. Сейчас проекты с открытым исходным кодом переходят на новый экземпляр Maven Central, в котором используется совершенно иная реализация API и для которого требуется специальная поддержка в плагинах инструментов сборки. Разработка плагина Gradle, совместимого с новыми API публикации Maven Central, позволит авторам библиотек, собираемых с помощью Gradle, без проблем освоить новый процесс.

В настоящее время существует несколько плагинов публикации в Maven Central для Gradle, например Maven Publish Plugin и New Maven Central Publishing, который уже пытается адаптироваться к новым API. На этапе подачи заявки или знакомства с сообществом потенциальному участнику потребуется изучить существующие реализации и либо предложить обновить имеющийся плагин, либо решить, что следует создать новый плагин или форк. Результатом станет либо новая версия существующего плагина публикации в Maven Central, либо новый плагин для Gradle. Мы предполагаем, что реализация будет написана на Kotlin или Java и будет иметь надлежащее покрытие тестами и документацию. Дополнительные результаты могут включать расширения Kotlin DSL, упрощающие использование плагинов, и расширения Declarative Gradle.

Ожидаемые результаты

  • Обновлённый плагин публикации в Maven Central или новый плагин

Желательные навыки

  • Kotlin

  • Gradle

  • Репозитории Maven

Возможные наставники

Oleg Nenashev и команда Gradle

Улучшение Configuration Cache и уменьшение конкуренции за блокировки в ключевых плагинах Gradle [От простого до сложного, от 90 до 350 ч]

Gradle работает над функцией Isolated Projects — новой возможностью, которая значительно расширяет Configuration Cache и дополнительно повышает производительность, особенно при синхронизации Android Studio и IntelliJ IDEA. С точки зрения удобства разработки это одна из самых ожидаемых функций Gradle.

Одна из проблем Isolated Projects — конкуренция за блокировки в ядре Gradle: иногда плагины мешают параллельному выполнению. Мы хотели бы уменьшить эту конкуренцию, особенно в ключевых плагинах Gradle Build Tool для экосистем Java, Kotlin, Android и Kotlin Multiplatform. Участники могут выбрать результаты проекта с учётом своих интересов и желаемого масштаба проекта.

Возможные результаты включают, помимо прочего:

  • Встроить инструмент Configuration Cache Report в Gradle Profiler (или «реализовать для него GitHub Action»)

  • Профилировать Gradle и несколько популярных плагинов Gradle в различных проектах, автоматизировав набор тестов в GHA

  • Определить потенциальные области и плагины, в которых можно уменьшить конкуренцию за блокировки, с Configuration Cache или без него

  • По ходу работы внести вклад и в другие аспекты совместимости с Configuration Cache в целевых плагинах

  • Реализовать некоторые из выявленных улучшений

Ожидаемые результаты

Реализация возможностей расширения в Kotlin DSL для Gradle и улучшение поддержки распространённых интеграций проектов

Желательные навыки

  • Kotlin

  • Gradle

  • Java

  • Анализ производительности

  • Профилирование

Возможные наставники

Oleg Nenashev, Laura Kassovic

Конвенционный плагин Gradle для разработки плагинов Jenkins [От простого до сложного, от 90 до 350 ч]

Существует более 50 плагинов Jenkins, реализованных с помощью Gradle. Есть Gradle JPI plugin, но он не полностью соответствует требованиям Jenkins к размещению плагинов и нуждается в обновлении. Цель этой идеи проекта — восстановить удобный процесс разработки Jenkins с помощью Gradle, достичь паритета функций с процессом на базе Apache Maven (Parent POM, Plugin Compatibility Tester, Jenkins Bill of Materials и другие инструменты), а также упростить разработку плагинов Jenkins с помощью Gradle.

Участники могут выбрать результаты проекта с учётом своих интересов и желаемого масштаба проекта.

Возможные результаты включают, помимо прочего:

  • Обновление Gradle JPI plugin и приведение его в соответствие с рекомендациями по размещению плагинов

  • Перенос кодовой базы Gradle JPI plugin с Groovy на Kotlin

  • Реализация нового конвенционного плагина для плагинов Jenkins, который охватит основные возможности Parent POM плагинов Jenkins с помощью Kotlin и Kotlin DSL. Он будет предназначен не только для сборки плагина, но и для тестирования и статического анализа в соответствии с лучшими практиками Jenkins

  • Внедрение обновлённого плагина и/или конвенционного плагина в наиболее популярные плагины Gradle, включая сам плагин Gradle

  • Интеграция плагина Gradle с Plugin Compatibility Tester и Bill of Materials

  • Документирование обновлённого процесса разработки плагинов Jenkins с помощью Gradle

Ожидаемые результаты

Обновлённый Gradle JPI plugin и/или новый конвенционный плагин для Jenkins, опубликованный в Jenkins Update Center и Gradle Plugin Portal

Желательные навыки

  • Kotlin DSL

  • Kotlin

  • Gradle

  • Jenkins

  • Java

Возможные наставники

Oleg Nenashev, Stefan Wolf

Тестовый фреймворк для примеров документации Kotlin DSL и Declarative Gradle [От простого до среднего, от 90 до 175 ч]

Во многих проектах, в том числе в Gradle, есть множество примеров Kotlin DSL и фрагментов кода (примеры можно найти в документации Gradle). Их проверка в нескольких версиях сопряжена с трудностями, поскольку для краткости эти фрагменты часто содержат неполный код. Мы хотели бы создать тестовый фреймворк, упрощающий проверку таких примеров в рамках модульного тестирования (Kotest или JUnit 5) на GitHub Actions или TeamCity. В дальнейшем мы хотели бы сделать то же самое для примеров Declarative Gradle.

Ожидаемые результаты

Реализация возможностей расширения в Kotlin DSL для Gradle и улучшение поддержки распространённых интеграций проектов

Желательные навыки

  • Kotlin

  • Gradle

  • Java

  • Статический анализ

Возможные наставники

Oleg Nenashev, Laura Kassovic

IntelliJ Platform Gradle Plugin — отчёты Gradle и параллельные проверки [Средний, 175 ч]

IntelliJ Platform Gradle Plugin — плагин для системы сборки Gradle, который упрощает настройку среды для сборки, тестирования, проверки и публикации плагинов для IDE на базе IntelliJ. Плагин управляет этапами сборки, тестирования и проверки, учитывая постоянные изменения платформы IntelliJ. IntelliJ Platform Gradle Plugin используют JetBrains, сторонние разработчики и внешние компании для интеграции своих рабочих процессов с инструментами JetBrains.

Ожидаемые результаты

  • Добавить отчётность Gradle для создания подробных настраиваемых отчётов о задачах проверки.

  • Использовать Gradle Worker API для параллельного выполнения задачи verifyPlugin для нескольких версий платформы IntelliJ, сокращая время выполнения задачи.

  • Изучить дополнительные возможности Gradle для дальнейшего улучшения рабочих процессов разработки плагинов.

Желательные навыки

  • Kotlin

  • Gradle

  • Платформа IntelliJ

Возможные наставники

Jakub Chrzanowski, JetBrains

Добавление новых рецептов OpenRewrite для Kotlin [Средний, 175 ч]

OpenRewrite — мощный фреймворк для автоматизации миграции и рефакторинга кода структурированным способом. OpenRewrite хорошо поддерживает Java, однако экосистеме Kotlin пригодился бы более широкий набор рецептов OpenRewrite, помогающий разработчикам без проблем переносить свои кодовые базы.

Цель этого проекта — расширить коллекцию рецептов OpenRewrite для Kotlin, добавив больше автоматизированных преобразований, например преобразование классов AutoValue на Java в идиоматичные классы данных Kotlin, модернизацию кода Kotlin в соответствии с лучшими практиками и упрощение миграции между версиями Kotlin. Эти рецепты помогут разработчикам на Kotlin поддерживать чистоту и актуальность своих кодовых баз, следуя идиоматике языка и сводя ручную работу к минимуму.

Ожидаемые результаты

  • Разработка новых рецептов OpenRewrite для миграции кода Kotlin

Желательные навыки

  • Kotlin

  • Фреймворк OpenRewrite

  • Стратегии миграции с Java на Kotlin

Возможные наставники

Shauvik Roy Choudhary и команда Uber

Добавление поддержки BOM в Bazel rules_jvm_external [Сложный, 350 ч]

rules_jvm_external Bazel предоставляет структурированный способ объявления внешних зависимостей Java, однако в настоящее время в нём отсутствует надлежащая поддержка файлов Bill of Materials (BOM). Файлы BOM широко используются в Maven и Gradle для согласованного управления зависимостями без необходимости указывать версии по отдельности. Цель этого проекта — улучшить rules_jvm_external, добавив поддержку BOM, чтобы разработчики могли разрешать зависимости на основе BOM в Bazel. Проект может включать вклад в уже существующую инициативу с открытым исходным кодом или непосредственную реализацию поддержки BOM в rules_jvm_external с обеспечением совместимости с широко используемыми подходами к управлению зависимостями.

Ожидаемые результаты

  • Реализация поддержки BOM в Bazel rules_jvm_external

  • Улучшение разрешения зависимостей и удобства использования для пользователей Bazel

  • Документация и примеры использования поддержки BOM в Bazel

Желательные навыки

  • Starlark (язык сценариев Bazel)

  • Система сборки Bazel

  • Стратегии разрешения зависимостей

Возможные наставники

Shauvik Roy Choudhary и команда Uber

Понятные отчёты с практическими рекомендациями для плагинов Gradle, проверяющих качество кода Kotlin [От простого до среднего, от 90 до 175 ч]

Недавно в Gradle появился новый Problems API, позволяющий Gradle и сторонним плагинам единообразно сообщать о проблемах и предупреждениях. Этот API обеспечивает понятные отчёты об ошибках с практическими рекомендациями и предоставляет больше информации в выводе консоли, специальных HTML-отчётах и подключённых инструментах наблюдаемости. IDE, такие как IntelliJ IDEA и Android Studio, также могут получать подробную информацию через интеграционный API Gradle и показывать предупреждения прямо в редакторе кода. Несколько ключевых функций и плагинов уже используют Problems API: компиляция Java, ошибки разрешения зависимостей, предупреждения об устаревших возможностях и т. д. Мы хотим, чтобы этот API использовали и плагины Kotlin для проверки качества кода; это значительно улучшит работу более 100 000 разработчиков на Kotlin, использующих Gradle.

В рамках этого проекта мы предлагаем участникам выбрать несколько плагинов для проверки качества кода Kotlin, например Ktlint, Detekt, Diktat, ArchUnit или Checkstyle для Kotlin, и интегрировать их с Problems API. Также можно поработать над интеграцией аналогичного анализа для сборок Gradle, определённых с помощью Kotlin DSL.

Ожидаемые результаты

  • Интеграция Problems API в упомянутые плагины

Желательные навыки

  • Kotlin

  • Gradle

Возможные наставники

Oleg Nenashev, Balint Hegyi, Reinhold Degenfellner

5 августа 2025 г.
Google Summer of Code с Kotlin 2026Google Summer of Code с Kotlin 2024

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/gsoc-2025.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API