مستودع community-plugins
هو مكان حيث يمكن لأعضاء المجتمع استضافة مكون إضافي أو مجموعة من المكونات الإضافية. الهدف من المكونات الإضافية للمجتمع هو تقليل كمية طلبات السحب والمشكلات من backstage/backstage
، والتي أصبحت كبيرة جدًا مع مرور الوقت.
من خلال إنشاء المكونات الإضافية للمجتمع، فإننا نوفر لمشرفي المكونات الإضافية جميع الأدوات اللازمة لإدارة المكونات الإضافية الخاصة بهم ونشرها بسهولة.
نرحب بنشر المكونات الإضافية التي أنشأها مجتمع Backstage الأوسع في مستودع community-plugins
. عندما تساهم بمكون إضافي في هذا المستودع، فإنك توافق على اتباع إرشادات محددة، بما في ذلك عملية الإصدار الموحدة. يسمح هذا لمالكي المكونات الإضافية بالاستفادة من العمليات القائمة والمعرفة الجماعية لمجتمع community-plugins
لمجتمع Backstage.
بالنسبة لأولئك الذين يسعون إلى الاستقلالية الكاملة في تطوير المكونات الإضافية الخاصة بهم ودورة حياة الإصدار، تظل الاستضافة الذاتية خيارًا مدعومًا وصالحًا. يعتمد قرار المساهمة في مستودع المجتمع أو الاستضافة الذاتية على ما إذا كنت تفضل إدارة تطوير البرنامج الإضافي بشكل مستقل أو تطوير البرنامج الإضافي كجزء من عملية يقودها المجتمع. يتم تقدير كلا النهجين ضمن النظام البيئي Backstage ويساهمان في نموه.
ستستمر المكونات الإضافية التي تعتبر أساسية لوظيفة Backstage وتشغيله في التواجد في مستودع backstage/backstage
- مما يضمن إدارة وصيانة المكونات المركزية التي تدعم النظام الأساسي بشكل مركزي.
للبدء في إنشاء مكون إضافي جديد، اتبع الإرشادات الموجودة في CONTRIBUTING.md.
يتكون مستودع community-plugins
من مجموعة من مساحات العمل. تحتوي مساحة العمل على مكون إضافي أو مجموعة من المكونات الإضافية بناءً على موضوع محدد. على سبيل المثال، يمكن الإشارة إلى الكتالوج وkubernetes وTechDocs كمساحات عمل.
ينتمي كل مكون إضافي إلى مساحة عمل وتكون مساحات العمل محمولة بما يكفي لنقلها إلى مستودعها الخاص إذا رغبت في ذلك. تحتوي كل مساحة عمل مكون إضافي على مجموعات التغييرات والإصدارات المعزولة الخاصة بها.
تعتمد المكونات الإضافية على المكونات الإضافية الأخرى عبر تبعيات npm العادية، بغض النظر عما إذا كانت المكونات الإضافية الأخرى عبارة عن مكونات إضافية أساسية، أو مكونات إضافية داخل المستودع، أو مكونات إضافية خارجية.
على الرغم من أن مستودع المجتمع ليس مساحة عمل غزل من الناحية الفنية، إلا أنه يعمل كمستودع بمساحات عمل غزل متعددة، حيث تمتلك كل مساحة عمل دليل .changesets
الفريد الخاص بها.
كلما تم تقديم مجموعة تغييرات جديدة، يتم إنتاج "حزم الإصدار ($workspace_name)" PR جديدة. سيؤدي دمج العلاقات العامة لحزم الإصدار إلى إطلاق جميع المكونات الإضافية في مساحات العمل (شريطة إضافة مجموعات التغييرات)، وكذلك تحديث ملفات CHANGELOG
.
backstage/backstage
تم نقل عدد من المكونات الإضافية التي كانت موجودة في الأصل في backstage/backstage
monorepo إلى مستودع 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
monorepo إلى مستودع 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
بنفس الإصدار.