Internships
Register
Copyright © 2000—2025 JetBrains s.r.o.

API verifier in ReSharper

Description

В продукте ReSharper, как и в Rider, есть возможность устанавливать плагины, написанные сторонними разработчиками.

Проблемы возникают, когда мы выпускаем новую версию продукта. В текущих реалиях это подразумевает, что сразу после нашего релиза всем плагинописателям необходимо обновить SDK, перекомпилировать плагин и выпустить обновленную версию, даже если изменений в коде делать не пришлось.

Некоторые плагинописатели устали от постоянного перевыпускания плагинов и указали в файле зависимостей forward-compatibility на все версии ReSharper-a. Поскольку все изменяется, со временем эти плагины становятся бинарно не совместимы с современной версией, и у нас нет возможности это никак предвидеть. Возникает очень неприятная для пользователя и нас вещь: при выходе новой версии в галерее есть 50+ плагинов, но многие из них не работают, а могу даже и ломать.

У нас нет возможности зафиксировать наше API и сделать стабильное версионирование для него, поэтому есть идея решить это техническим путем.

Задачами стажировки будет:

  • сделать приложение, которое по двум наборам сборок сможет определить, использует ли вторая сборка символы, которые отсутствуют в первой (или вызывает методы с другой сигнатурой, использует свойства с неожиданными типами и другие binding failure)
  • интегрировать это в наш установщик и не разрешать установку плагина, если это гарантированно приведет к ошибкам во время выполнения.
  • высшим пилотажем будет интеграция этого на уровне самой галереи, чтобы предупредить пользователя ещё до установки.

Requirements

Admission

Разработчики: Лето 2021

Mentor

Alexander Ulitin

Mentor's location

Remote

Product/Team

ReSharper