Перевод текста на русский язык:
Добавьте поддержку новой платформы, то есть добавьте gradle-%new%.properties со всеми необходимыми свойствами и скомпилируйте. Возможно, потребуется извлечь некоторый код в специфичные для платформы исходные наборы, чтобы плагин компилировался с каждой поддерживаемой платформой. См. раздел «Советы и рекомендации» для наиболее распространённых примеров того, как это сделать.
Исправьте тесты.
Обновите путь к журналу в конфигурациях запуска, таких как runIDEA и runCLion. Для конфигурации runIDEA требуется:
Обновите рабочие процессы CI, чтобы использовать новую версию платформы вместо старой. Обычно требуется просто обновить список platform-version во всех рабочих процессах, где мы собираем плагин. На момент написания это check.yml, rust-nightly.yml и rust-release.yml.
Исправить комментарии BACKCOMPAT: %old%.
Неисчерпывающий список советов, как можно адаптировать свой код для нескольких платформ:
Если вам нужно выполнить конкретный код для каждой платформы в сценариях сборки Gradle (build.gradle.kts или settings.gradle.kts), просто используйте свойство platformVersion и условия if/when. Обратите внимание, что в build.gradle.kts значение этого свойства уже получено в переменной platformVersion.
Если вам нужны разные источники для каждой платформы:
val BUILD_%new% = BuildNumber.fromString("%new%")!!
if (ApplicationInfo.getInstance().build < BUILD_%new%) {
// код для текущей платформы
} else {
// код для новой платформы
}
Конечно, код должен быть совместим со всеми поддерживаемыми платформами, чтобы использовать этот подход.
* Иногда вы хотите временно отключить некоторые тесты, чтобы выяснить, почему они не работают позже.
Самый простой способ сделать это — пометить их аннотацией org.rust.IgnoreInPlatform.
Под Худ, он использует предыдущий подход с ApplicationInfo
.
%xml_name%.xml
для каждой платформы:
Создайте platform-%xml_name%.xml
в %module_name%/src/%current%/main/resources/META-INF
и %module_name%/src/%new%/main/resources/META-INF
.
Поместите определения, специфичные для платформы, в эти файлы XML.
Включите специфичный для платформы XML в %module_name%/src/main/resources/META-INF/%xml_name%.xml
, то есть добавьте следующий код:
<idea-plugin xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="/META-INF/platform-%xml_name%.xml" xpointer="xpointer(/idea-plugin/*)"/>
</idea-plugin>
При поддержке новой версии IDE мы должны проверять все компоненты пользовательского интерфейса вручную, поскольку у нас пока нет тестов пользовательского интерфейса. Это особенно важно, если это крупное обновление IDE, так как крупные обновления платформы могут внести множество изменений.
MissingToolchainNotificationProvider
).Ночные и бета-версии выпускаются автоматически рабочими процессами GitHub. Стабильная версия обычно выпускается каждые две недели. За неделю до выпуска мы создаём ветку выпуска с именем release-%release_version%
из ветки master
. Значение release_version
совпадает со значением соответствующей вехи. Ветви выпуска используются для создания сборок бета и стабильного плагина.
Большинство действий по выпуску можно выполнить автоматически через рабочий процесс GitHub. Вы можете запустить их из интерфейса GitHub (GitHub blog). Просто откройте вкладку «Действие», выберите необходимый рабочий процесс и запустите его с помощью кнопки «Запустить рабочий процесс».
В качестве альтернативы существует скрипт scripts/release-actions.py
для запуска событий из вашей консоли. Синтаксис: python release-actions.py release_command --token github_token
. Также вы можете предоставить переменную среды IR_GITHUB_TOKEN
, чтобы указать токен GitHub. Это позволяет опустить опцию --token
.
См. инструкцию, как создать личный токен GitHub. Обратите внимание, что он должен иметь область действия repo
.
Обратите внимание, мы используем pipenv для управления версией Python, зависимостями и виртуальной средой. См. инструкции, как установить его. Чтобы запустить любую команду, просто выполните следующее:
cd scripts
pipenv install # для установки зависимостей
pipenv run python release-actions.py release_command --token github_token # для запуска скрипта в виртуальной среде
Доступные команды:
release-branch
— создаёт новую ветку выпуска release-%release_version%
из master
, где %release_version%
совпадает со свойством patchVersion
в gradle.properties
. После этого она увеличивает patchVersion
на единицу, фиксирует изменения и отправляет их в мастер. Обратите внимание, соответствующий рабочий процесс запускается по расписанию для создания ветки выпуска за неделю до релиза, поэтому обычно вам не нужно запускать его вручную.nightly-release
— собирает плагин из ветки master
и публикует его в канале nightly
на [Marketplace]. Обратите внимание, соответствующий рабочий процесс запускается по расписанию, поэтому обычно вам не нужно запускать его вручную.beta-release
— собирает плагин из ветки выпуска и публикует его в канале beta
на [Marketplace]. Обратите внимание, соответствующий рабочий процесс запускается по расписанию, поэтому обычно вам не нужно запускать его вручную.stable-release
— обновляет ссылку на журнал изменений в plugin/src/main/resources/META-INF/plugin.xml
, фиксирует изменения, Отправляет изменения в ветку master и выбирает соответствующие изменения для ветки release.
После этого плагин собирается из ветки release и публикуется в канал stable на [Marketplace].Обратите внимание, что каждая команда может иметь дополнительные опции. Чтобы получить актуальный список опций, добавьте опцию --help
.
Информация о выпуске находится на сайте intellij-rust.github.io.
Чтобы написать информацию о выпуске, запустите ./changelog.py
. Он просматривает все запросы на вытягивание (pull requests) из соответствующего этапа и создаёт шаблон с информацией по умолчанию о слитых PR в каталоге _posts
.
Исходный вариант каждого поста зависит от специальных тегов, которыми могут быть помечены PR.
На данный момент changelog.py
поддерживает теги feature
, performance
, fix
и internal
.
Обратите внимание: PR можно пометить любым подмножеством этих тегов.
Преобразуйте сгенерированный текст в удобный для пользователя формат, добавьте необходимые ссылки/гифки. Не забудьте упомянуть каждого участника с помощью синтаксиса by [@username]
.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )