Репозиторий community-plugins
— это место, где члены сообщества могут разместить плагин или набор плагинов. Цель плагинов сообщества — уменьшить количество пул-реквестов и проблем из backstage/backstage
, которое со временем стало слишком большим.
Создавая плагины сообщества, мы предоставляем разработчикам плагинов все инструменты для легкого управления и публикации своих плагинов.
Плагины, созданные широким сообществом Backstage, могут быть опубликованы в репозитории community-plugins
. Добавляя плагин в этот репозиторий, вы соглашаетесь следовать определенным правилам, включая стандартизированный процесс выпуска. Это позволяет владельцам плагинов использовать устоявшиеся процессы и коллективные знания сообщества community-plugins
Backstage.
Для тех, кто ищет полную автономию в жизненном цикле разработки и выпуска своего плагина, самостоятельный хостинг остается поддерживаемым и допустимым вариантом. Решение о внесении вклада в репозиторий сообщества или о самостоятельном размещении будет зависеть от того, предпочитаете ли вы управлять разработкой плагина самостоятельно или разрабатывать плагин как часть процесса, управляемого сообществом. Оба подхода ценятся в экосистеме Backstage и способствуют ее росту.
Плагины, которые являются ключевыми для функциональности и работы Backstage, будут продолжать находиться в репозитории backstage/backstage
, обеспечивая централизованное управление и обслуживание центральных компонентов, лежащих в основе платформы.
Чтобы начать создание нового плагина, следуйте инструкциям в CONTRIBUTING.md.
Репозиторий community-plugins
состоит из набора рабочих областей. Рабочая область содержит плагин или набор плагинов по определенной теме. Например, каталог, kubernetes и TechDocs можно называть рабочими пространствами.
Каждый плагин принадлежит рабочей области, а рабочие области достаточно портативны, чтобы при желании их можно было переместить в отдельный репозиторий. Каждое рабочее пространство плагина имеет свои собственные наборы изменений и отдельные выпуски.
Плагины зависят от других плагинов через обычные зависимости npm, независимо от того, являются ли другие плагины основными плагинами, другими плагинами в репозитории или внешними плагинами.
Хотя репозиторий сообщества технически не является рабочим пространством Yarn», он функционирует как репозиторий с несколькими рабочими пространствами Yarn, причем каждое рабочее пространство имеет свой уникальный каталог .changesets
.
Всякий раз, когда вводится новый набор изменений, создается новый PR «Пакеты версий ($workspace_name)». Объединение пакетов версий PR приведет к выпуску всех плагинов в рабочих областях (при условии, что были добавлены наборы изменений), а также обновит файлы CHANGELOG
.
backstage/backstage
Ряд плагинов, которые изначально находились в монорепозитории backstage/backstage
переместились в этот репозиторий backstage/community-plugins
.
adr
airbreak
allure
analytics
apache-airflow
apollo-explorer
azure-devops
azure-sites
badges
bazaar
bitrise
cicd-statistics
cloudbuild
code-climate
code-coverage
codescene
cost-insights
dynatrace
entity-feedback
entity-validation
example-todo-list
explore
firehydrant
fossa
gcalendar
gcp-projects
git-release-manager
github-actions
github-deployments
github-issues
github-pull-requests-board
gitops-profiles
gocd
graphiql
graphql-voyager
ilert
jenkins
kafka
lighthouse
microsoft-calendar
newrelic
newrelic-dashboard
octopus-deploy
opencost
periskop
playlist
puppetdb
rollbar
sentry
shortcuts
sonarqube
splunk
stack-overflow
stackstorm
tech-insights
tech-radar
todo
vault
xcmetrics
Миграция плагинов из монорепозитория backstage/backstage
в репозиторий community-plugins
была автоматизирована с помощью инструмента community-cli
.
Вы предоставляете ему путь к monorepo
, который следует клонировать локально, и идентификатор плагина. Затем он создаст новое рабочее пространство в репозитории community-plugins
со всеми плагинами и модулями, окружающими это рабочее пространство. Например, если я использую плагин todo
в качестве идентификатора, он автоматически переместится через @backstage/plugin-todo
, а также @backstage/plugin-todo-backend
и любые другие связанные модули -common
, -node
или -modules
.
После копирования кода области действия npm и все ссылки на код обновляются, чтобы отразить новые области действия @backstage-community/plugin-*
, и создается набор изменений для пакета, который будет опубликован. Версии на данный момент остаются прежними, но результирующий набор изменений будет публиковать следующую версию, поэтому, если пакет, выпущенный в 1.25.0
был 0.10.0
, то новая версия будет @backstage-community/plugin-todo
0.10.1
.
В monorepo
создается коммит либо в указанной ветке как --branch
, либо в новой ветке, созданной для миграции. В этом коммите объявлено об устаревании и наборе изменений для этого пакета, поэтому 0.10.1
в @backstage/plugin-todo
будет помечена как устаревшая и заменена на @backstage-community/plugin-todo
как ту же версию.