فهرست مستندات

چرخهٔ انتشار#

انتشار در الامر یک ماشین وضعیت وابسته به چکیده است، نه یک پرچم قابل ویرایش روی پروژه. revision محیط، revision اپ، نسخهٔ پلاگین و revision استقرار بک‌اند مقصدهای مستقلی هستند. هر درخواست انتشار یک مقصد و شواهد بستهٔ آن را ثابت می‌کند، بررسی‌ها را اجرا می‌کند، وارد ارزیابی انسانی می‌شود و فقط پس از آن می‌تواند اختیار کاتالوگ یا زمان اجرا بگیرد.

چهار مقصد انتشار#

مقصدمحتوای ثابتچکیدهٔ بسته
environment_revisionورودی/نسخهٔ bundle، سیاست ورود، نمایش در پرتال، قابلیت‌ها، نصب دقیق پلاگین‌ها و بایت‌های frontend بارگذاری‌شدهintegrity از نوع SHA-512 برای bundle قطعی Environment
app_revisionورودی bundle، حالت‌های نمایش، قابلیت‌ها، اعلان‌ها، disclosureها، سازگاری Contracts/SDK و بایت‌های frontend بارگذاری‌شدهچکیدهٔ یک فهرست تغییرناپذیر bundle که پیش از submit متصل شده است
plugin_releaseمانیفست پلاگین، نسخهٔ معنایی، آداپترها، قرارداد مولفه‌های بک‌اند، تنظیمات، مجوزها، توضیحات اعتماد، سازگاری و مستنداتچکیدهٔ مجموعهٔ مرتب و دقیق artifactهای ثابت‌شده هنگام درخواست
backend_deployment_revisionنشانی یک مولفهٔ بک‌اند، نشانی اختیاری سلامت و پیکربندی عمومی و غیرمحرمانهnull؛ شواهد استقرار با چکیدهٔ مستقل همان بازبینی مشخص می‌شود

بنابراین پلاگین تمام‌پشته دست‌کم دو موضوع انتشار مستقل دارد: نسخهٔ پلاگین و یک بازبینی استقرار برای هر مولفهٔ بک‌اند اعلام‌شده. نشانی زنده هیچ‌گاه داخل نسخهٔ پلاگین قرار نمی‌گیرد.

ماشین وضعیت#

نمودار اجرایی گذارها:

draft
  ├─> checks_running ─> ready_for_review ─> in_review ─> approved ─> published
  │          │                                  └─> rejected
  │          └─> checks_failed ─> checks_running
  └─> withdrawn

checks_running, checks_failed, ready_for_review, and in_review may also
transition to withdrawn.

published ─> yanked
          └> suspended

وضعیت‌های rejected، withdrawn، yanked و suspended در قرارداد عمومی گذار خروجی ندارند. published فقط می‌تواند به yanked یا suspended برود. در API عمومی گذار، رفتن به rejected، withdrawn، yanked یا suspended نیازمند reason است.

معنی هر وضعیت#

وضعیتمعنیعامل یا عملیات معمول
draftدرخواست ساخته شده و به چکیده‌های مقصد متصل است، اما بررسی کامل نشدهمالک پروژه، CLI، کنسول یا API مدیریت
checks_runningرجیستری مقصد و شواهد ثابت را بررسی می‌کندalamr test یا API بررسی
checks_failedدست‌کم یک بررسی الزامی شکست خورده استمالک علت را رفع و alamr test را دوباره اجرا می‌کند
ready_for_reviewهمهٔ بررسی‌ها موفق بوده‌اند یا هشدار داشته‌اند و درخواست می‌تواند وارد بازبینی شودalamr publish یا API ارسال
in_reviewدرخواست در صف ارزیابی قرار داردبازبین مجاز
approvedبازبین همان چکیدهٔ نسخهٔ ثابت و بسته را تأیید کرده؛ انتشار هنوز گذار مدیریتی می‌خواهدبازبین مجاز
publishedمقصد منتشر شده و می‌تواند مقصد فعال کاتالوگ یا زمان اجرای پروژه شودمدیر رجیستری
rejectedبازبینی درخواست را رد کرده استتصمیم بازبین
withdrawnدرخواست پیش از انتشار پایان یافته استمالک یا مدیر از راه گذار مجاز
yankedمقصد منتشرشده با گذار نهایی مدیریتی پس گرفته شده استمدیر رجیستری
suspendedمقصد منتشرشده با گذار نهایی مدیریتی تعلیق شده استمدیر رجیستری

هشدار باعث شکست مجموعه بررسی‌ها نمی‌شود: اگر همهٔ نتیجه‌ها passed یا warning باشند، رجیستری به ready_for_review می‌رود. وجود هر نتیجهٔ failed را checks_failed می‌کند.

از فایل محلی تا درخواست ثابت#

۱. یک پروژهٔ قابل ویرایش را پیوند دهید#

alamr link پروژهٔ environment، app یا plugin را می‌سازد یا پیوند می‌دهد و مبدأ رجیستری و projectId را در .al-amr/project.json ثبت می‌کند. شناسهٔ پایدار محیط یا پلاگین با شناسهٔ پروژه فرق دارد.

اگر نام Environment یا App نویسهٔ ASCII مناسب slug نداشته باشد، پیونددهی از نام و هویت محلی محصول handle پایدار می‌سازد. بنابراین پروژه‌های متمایز با نام کاملاً فارسی یک handle جایگزین ثابت مشترک ندارند. پیوند Plugin، slug صریح مانیفست را حفظ می‌کند.

Desktop ثبت‌های adoption، برنامه‌ها، قفل‌ها و رسیدهای بازیابی را زیر profile خود Electron نگه می‌دارد. CLI درون‌پردازه‌ای از همان profile استفاده می‌کند، نه پوشهٔ state به‌ارث‌رسیدهٔ CLI یا Windows LocalAppData. برنامه‌ریزی در فایل‌های پروژهٔ انتخاب‌شده نمی‌نویسد؛ state موجود بیرون profile حفظ می‌شود.

اگر schema قرارداد نصب‌شده مانیفست پروژه را رد کند، اعتبارسنجی و آماده‌سازی upload کد ALAMR_INSTALLED_CONTRACT_MISMATCH را حفظ می‌کنند. Desktop ناسازگاری را فارسی توضیح می‌دهد و نویسنده را به عمل تعمیر وابستگی‌های پروژه هدایت می‌کند. پیام تشخیصی اصلی CLI در envelope فرمان در دسترس می‌ماند. تعمیر همچنان به release ارتقایافتهٔ تأییدشده نیاز دارد؛ این پیام مجوز upload artifact ناسازگار نیست.

۲. مقصد تغییرناپذیر را بسازید#

alamr test ابتدا اعتبارسنجی محلی را اجرا می‌کند.

  • برای Environment، alamr build و سپس alamr test --bundle dist، revision را می‌سازد یا دوباره استفاده می‌کند، bundle فرانت‌اند را قطعی بسته‌بندی و upload و مانیفست دقیق و integrity از نوع SHA-512 آن را bind می‌کند. اگر خروجی dist نیست از --bundle <dir> استفاده کنید.
  • برای App، alamr build پوشهٔ dist را می‌سازد و alamr test بعدی در یک عملیات bundle را inventory، pack و upload، revision تغییرناپذیر نسل build را ایجاد و سند ورودی و همهٔ بایت‌های اعلام‌شده را bind می‌کند.
  • برای پلاگین، نسخهٔ معنایی دقیق را می‌سازد یا دوباره به کار می‌گیرد. نسخهٔ موجود فقط وقتی قابل بازاستفاده است که مانیفست و محتوای بسته همچنان تطبیق کنند.
  • برای هر مولفهٔ بک‌اند پیکربندی‌شده، بازبینی استقرار دقیقاً منطبق را می‌سازد یا دوباره به کار می‌گیرد.

تغییر مانیفست یا محتوای بسته زیر نسخهٔ موجود پلاگین تعارض است؛ نسخهٔ معنایی پلاگین را افزایش دهید. تغییر محتوای محیط یا استقرار، بازبینی دیگری می‌سازد. هر نسل build تغییریافتهٔ Environment همچنین به افزایش entry.version نیاز دارد. هر نسل build تغییریافتهٔ App یک revision تغییرناپذیر تازه می‌گیرد.

۳. شواهد بسته را ثابت کنید#

هنگام ساخت درخواست پلاگین، رجیستری مجموعهٔ مرتب و دقیق بسته‌های ثبت‌شده را به‌صورت نسخهٔ ثابت ثبت می‌کند و artifactDigest را می‌سازد. بایت‌های مدیریت‌شده باید از مرز artifact-validator عبور کنند. بسته‌های npm را رجیستری پیدا و آینه می‌کند. فقط بستهٔ اعتبارسنجی‌شده می‌تواند بررسی انتشار را بگذراند.

پیش از نخستین submission اپ، رجیستری دقیقاً یک AppBuildArtifact را به revision متصل می‌کند. فهرست normalizeشده سند ورودی، اندازهٔ کل و مسیر نسبی، اندازه و صحت SHA-512 هر فایل را ثبت می‌کند؛ buildDigest با SHA-256 روی محتوای canonical به artifactDigest درخواست تبدیل می‌شود. بایت‌های متفاوت نمی‌توانند این اتصال یا revision را دوباره استفاده کنند.

پیش از submission یک Environment، Registry آرشیو قطعی را نگه می‌دارد و integrity از نوع SHA-512 آن را به revision و submission متصل می‌کند. سند ورودی، cover اعلام‌شده و همهٔ assetهای اجرایی یا runtime از همین بایت‌ها می‌آیند؛ Registry frontend میزبانی‌شده نزد ناشر را fetch نمی‌کند.

درخواست بازبینی، چکیدهٔ موردانتظار نسخهٔ ثابت و بسته‌ها را می‌فرستد. رجیستری هنگام بازبینی و درست پیش از انتشار نهایی دوباره آن‌ها را مقایسه می‌کند. تغییر مجموعهٔ بسته‌ها به‌جای بازبینی بایت‌های دیگر، تعارض برمی‌گرداند.

۴. بررسی‌ها را اجرا کنید#

# Environment
alamr build --json
alamr test --bundle dist --json --visibility unlisted --channel preview

# App
alamr build --json
alamr test --yes --json

# Plugin
alamr test --json --visibility unlisted --channel preview

frontendهای Environment و App checks تک‌مرحله‌ای bundle دارند. آن‌ها از preview میزبانی‌شده نزد ناشر، handshake مسیر well-known یا handoff جداگانهٔ prepare/resume استفاده نمی‌کنند. submission یکسان و ازپیش‌آماده موفق برمی‌گردد و checks_failed checks را روی همان submission منطبق دوباره اجرا می‌کند. محتوای تغییریافته به revision تازهٔ Environment با entry.version بالاتر، نسل build تازهٔ App یا SemVer تازهٔ Plugin نیاز دارد؛ هرگز با ویرایش digest موجود تطبیق داده نمی‌شود.

مسیر بررسی فقط draft یا checks_failed را می‌پذیرد. درخواست را به‌صورت اتمیک به checks_running می‌برد و فهرست نتیجه را با وضعیت ready_for_review یا checks_failed ذخیره می‌کند.

CLI پیش از ادامه شناسهٔ مقصد و درخواست را محلی ثبت می‌کند تا فرمان قطع‌شده بتواند وضعیت سرور را ببیند و دوباره استفاده کند. بررسی شکست‌خورده روی همان درخواست تکرار می‌شود و alamr test فقط برای تلاش مجدد یک نسخهٔ تکراری نمی‌سازد.

بررسی‌های فعلی چه چیزی را اثبات می‌کنند؟#

مقصدشواهد پیاده‌سازی‌شده
بازبینی Environmentschema/digest مانیفست و entry/version مربوط به bundle؛ SHA-512 آرشیو قطعی؛ وجود سند ورودی و cover اعلام‌شده؛ SemVer دقیق SDK؛ منتشر، unblock، adapter-valid، artifact-valid و سازگار بودن همهٔ Pluginهای نصب‌شده
revision Appschema/digest مانیفست و یک اتصال تغییرناپذیر bundle؛ انطباق سند ورودی و هر فایل فهرست‌شده با اندازه/SHA-512؛ SDK دقیق و سازگار؛ range سازگار Contracts؛ محدودیت تعداد فایل، اندازهٔ کل، مسیر و آرشیو
release Pluginschema و digest مانیفست؛ مجموعهٔ دقیق artifactها؛ بستهٔ مدیریت‌شدهٔ معتبر؛ اشارهٔ هر مولفهٔ بک‌اند جدید به بایت OpenAPI/AsyncAPI داخل بسته با SHA-256 منطبق؛ permissions_disclosure ساختار اعلان را parse می‌کند، نه کیفیت معنایی متن آن را
revision استقرار بک‌اندوجود مقصد و دسترس‌پذیری نشانی سلامت. این check دسترسی شبکه‌ای را ثابت می‌کند، نه درستی پروتکل بک‌اند در سطح کاربرد

۵. برای بازبینی بفرستید#

alamr publish --json --yes
alamr status --json

publish به مقصد بررسی‌شده و پیوندشده نیاز دارد. عملیات ارسال فقط ready_for_review را می‌پذیرد و آن را به in_review می‌برد؛ مقصد را تأیید یا منتشر نمی‌کند.

برای پلاگین full_stack یا backend_only، CLI نسخهٔ پلاگین و همهٔ درخواست‌های استقرار محلی را پیش‌بررسی می‌کند. هر مقصد باید در یکی از وضعیت‌های ready_for_review، in_review، approved یا published باشد و هر مقصد آماده همراه مجموعه ارسال می‌شود. اگر پیکربندی استقرار پس از بررسی عوض شده باشد، انتشار متوقف می‌شود و alamr test تازه لازم است.

فراخوانی‌های متعدد ارسال قابل ادامه‌اند، اما یک تراکنش اتمیک مشترک نیستند. اگر خطای شبکه یا سرور وسط کار رخ داد، alamr status --json و سپس alamr publish را دوباره اجرا کنید. مسیر تمام‌پشته مقصدهای in_review، approved و published را دست‌نخورده می‌گذارد و فقط ready_for_reviewهای باقی‌مانده را می‌فرستد.

۶. بازبینی و انتشار#

بازبین مجاز ابتدا work item را با نسخهٔ optimistic آن claim می‌کند، شواهد ثابت را می‌خواند و به‌عنوان بازبین تخصیص‌یافته approve یا reject می‌فرستد. تصمیم به نسخهٔ تخصیص، چکیدهٔ snapshot و چکیدهٔ artifact متصل است. رجیستری همهٔ تصمیم‌ها را دائمی نگه می‌دارد. رد کردن همچنین دسته، خلاصه و یک یا چند اقدام اصلاحی قابل اجرا را ذخیره می‌کند؛ پرونده‌های بسته به‌صورت تاریخچه خواندنی‌اند.

تأیید، in_review را به approved می‌برد و به‌طور اتمیک یک handoff انتشار متصل به چکیده‌های دقیق می‌سازد. مدیر دوم پلتفرم handoff را claim و منتشر می‌کند؛ تأییدکننده نمی‌تواند ناشر باشد. رجیستری نسخهٔ handoff، هویت تأییدکننده، هر دو چکیدهٔ ثابت، آمادگی مقصد و snapshot بسته را دوباره بررسی و انتشار و تکمیل handoff را در یک تراکنش commit می‌کند. مالک Project یا ارسال‌کنندهٔ درخواست، حتی با اختیار administrator یا reviewer، نمی‌تواند نسخهٔ خودش را تأیید کند. توکن Project و بررسی خودکار موفق نیز حق تأیید یا انتشار ندارند.

یافته‌های ساختاریافتهٔ diff و AI وضعیت تولیدکنندهٔ صریح دارند. baseline ناموجود baseline_unavailable و تولیدکنندهٔ AI پیکربندی‌نشده not_configured است. هیچ‌کدام به شاهد ساختگی یا تأیید خودکار تبدیل نمی‌شوند.

اگر submission تأییدشدهٔ Environment بعداً رد شود، هر handoff انتشار آماده یا claim‌شدهٔ آن درخواست به cancelled می‌رود، assignee آن پاک می‌شود و نسخهٔ optimistic افزایش می‌یابد. این رفتار عمداً مانع باقی‌ماندن مالکیت قدیمی ناشر پس از برگشت نهایی تصمیم بازبینی می‌شود.

اختیار reviewer یک اختیار مستقل پلتفرم است؛ نه رول Project است و نه دسترسی administrator. مدیر Registry آن را با دلیل ممیزی‌شده از مسیر /console/admin/reviewers در Developer Portal یا با فرمان alamr admin reviewers grant|revoke <userId> --reason <text> --yes اعطا یا لغو می‌کند. بازبین تفویض‌شده فقط می‌تواند صف بازبینی و شواهد تغییرناپذیر را بخواند، lease واجدشرایط بازبینی را تمدید کند و تصمیم approve یا reject بگیرد. این اختیار هیچ دسترسی به Project، مدیریت کاربران، جای‌گذاری Hub یا انتشار نهایی نمی‌دهد. لغو در هر درخواست Registry دوباره بررسی می‌شود و فوری اثر می‌کند. مدیران پلتفرم همچنان ذاتاً اختیار بازبینی دارند، اما همان جداسازی وظایف مالک و ارسال‌کننده دربارهٔ آن‌ها نیز اعمال می‌شود.

پس از انتشار:

  • revision Environment به bundle فعال نگه‌داری‌شده تبدیل می‌شود که زیر سیاست ورود بازبینی‌شده به clientهای سازگار دسکتاپ ارائه می‌شود؛
  • revision اپ، revision منتشرشدهٔ فعال می‌شود، اما تا عملیات جداگانهٔ enable توسط مدیر برای Runtime در دسترس نیست؛
  • نسخهٔ پلاگین، نسخهٔ فعال آن می‌شود؛
  • بازبینی استقرار بک‌اند منتشر می‌شود و وضعیت عملیاتی سالم و بررسی‌شده می‌گیرد.

Environment، App یا Plugin تازه‌منتشرشده در نخستین خواندن بعدی کاتالوگ Developer Portal مبتنی بر Registry دیده می‌شود. انتشار هرگز سورس Hub را ویرایش نمی‌کند، portal در Hub نمی‌سازد و placement آن را تغییر نمی‌دهد. placement در Hub تصمیم محصولی جداگانه‌ای است که باید صریح تألیف و بازبینی شود؛ راهنمای جای‌گذاری را ببینید.

انتشار نسخهٔ پلاگین و بازبینی‌های استقرار، گذارهای مدیریتی جدا هستند و یک تراکنش اتمیک واحد نیستند. مجوز بک‌اند پلاگین فقط وقتی صادر می‌شود که نسخهٔ دقیق نصب و بازبینی استقرار آن منتشر شده باشد.

برای App، گذار انتشار نهایی، enable سراسری و rollback همگی اتصال bundle نگه‌داری‌شده را پیش از تغییر state دوباره بررسی می‌کنند. revisionهای تاریخی App بدون مدرک bundle خواندنی هستند، اما تازه submit، published یا enabled نمی‌شوند و مقصد rollback نیستند.

CLI، API و کنسول از یک صفحهٔ کنترل استفاده می‌کنند#

CLI و کنسول ماشین وضعیت جداگانه‌ای برای انتشار ندارند:

گردش‌کارCLIAPI مدیریت
ساخت مقصد، درخواست و بررسیalamr testPOST /v1/projects/{projectId}/environment-revisions یا plugin-releases، سپس POST /v1/publication-submissions و POST /v1/publication-submissions/{submissionId}/checks
ورود به بازبینیalamr publishPOST /v1/publication-submissions/{submissionId}/submit
خواندن وضعیتalamr statusGET /v1/projects/{projectId} و GET /v1/projects/{projectId}/publication-submissions
مالکیت و تصمیم بازبینalamr review assignment، claim، release، history، evidence و decideمسیرهای اختصاصی claim، evidence، history و تصمیم v2 با نسخهٔ خوش‌بینانهٔ تخصیص و چکیده‌های دقیق
انتشار handoff تأییدشدهalamr review handoff-list، handoff-inspect، handoff-claim و handoff-publishمسیرهای اختصاصی claim و publish برای handoff؛ ناشر باید مدیر دوم باشد
پس‌گرفتن درخواست واجد شرایطalamr publication transitionگذار مجاز به withdrawn همراه دلیل؛ کنسول از API مدیریت استفاده می‌کند
وضعیت مدیریتی غیرانتشارalamr publication transition/transition گذارهای مجاز غیرانتشار را انجام می‌دهد؛ approved به published فقط با handoff اختصاصی مدیر دوم ممکن است
بازگردانی مقصد فعالalamr rollbackPOST /v1/projects/{projectId}/rollback؛ کنسول همین API را صدا می‌زند

کنسول با نشست مبهم مرورگر و حفاظت CSRF وارد می‌شود. CLI و CI اعتبارنامه‌های جداگانه با دامنهٔ دسترسی مشخص دارند. صف و مسیر اختصاصی بازبینی مدیر پلتفرم یا بازبین تفویض‌شدهٔ فعال را می‌پذیرد و توکن پروژه را رد می‌کند. گذارهای مدیریتی انتشار، پس‌گرفتن و تعلیق نیز توکن پروژه را رد می‌کنند. کلاینت عمومی باید از مسیرهای اختصاصی بررسی، ارسال و بازبینی استفاده کند؛ مسیر عمومی گذار جایگزین این گردش‌کارها نیست.

بازیابی بر اساس وضعیت فعلی#

وضعیت یا نشانهبازیابی امن
draftمحصول را دوباره build و check تک‌مرحله‌ای آن را اجرا کنید: برای Environment فرمان alamr test --bundle dist، برای App فرمان alamr test و برای Plugin فرمان alamr test. اگر مقصد اشتباه است، به‌جای ویرایش شواهد ثابت revision یا version تازه بسازید
checks_runningalamr status --json را بخوانید و منتظر عملیات فعلی بمانید. شروع بررسی تکراری تعارض می‌دهد
checks_failedهمهٔ checkهای ساختاریافته را بخوانید و مشکل bundle محلی یا deployment را رفع کنید. اگر بایت‌ها تغییر کردند دوباره build بگیرید، سپس همان فرمان محصول‌ویژهٔ alamr test را تکرار کنید؛ CLI فقط مقصد دقیقاً منطبق را بازاستفاده و checkها را درجا تکرار می‌کند
ready_for_reviewalamr publish را یک‌بار اجرا کنید. برای دانستن وضعیت مرجع از status استفاده کنید
in_reviewمنتظر بازبین مستقل بمانید. مالک Project یا ارسال‌کننده حتی اگر administrator/reviewer باشد نمی‌تواند آن را تأیید کند؛ توکن Project نیز نمی‌تواند بازبینی کند
rejectedتصمیم و تاریخچهٔ بازبینی نهایی و تغییرناپذیرند. Registry فقط وقتی می‌تواند گردش‌کار همان درخواست را دوباره در draft باز کند که مقصد و snapshot منجمد artifact دقیقاً همان باشند؛ بررسی‌ها و بازبینی را دوباره اجرا کنید. اگر کد، مانیفست، پیکربندی Environment، استقرار یا بایت‌های artifact تغییر کرده‌اند، مقصد تازه بسازید؛ Plugin به SemVer تازه نیاز دارد
withdrawnمقصد و درخواست تازه بسازید؛ شواهد پس‌گرفته‌شده را ویرایش نکنید
approvedمنتظر گذار مدیریتی published بمانید. اگر مجموعه بسته عوض شده باشد، انتشار با رد امن شکست می‌خورد
publishedبرای تغییر، بازبینی یا نسخهٔ تازه منتشر کنید. برای برگشت به محتوای سالم قبلی، مقصد فعال را به نمونهٔ واجد شرایطی بازگردانید که هنوز published است
yanked یا suspendedاین وضعیت‌ها با گذار دوباره فعال نمی‌شوند. مقصد تازه‌ای منتشر کنید یا به مقصد published دیگری بازگردید. خارج‌کردن، آن نسخه را از فهرست مقصدهای بازگشت هم بیرون می‌برد — بازگشت مقصدی می‌خواهد که هنوز published باشد — پس خارج‌کردنِ آخرین نسخهٔ سالم چیزی برای بازگشت باقی نمی‌گذارد
تعارض چکیدهٔ نسخهٔ ثابت یا بستهمتوقف شوید. شناسهٔ مقصد و مجموعه بسته را بررسی کنید. چکیده را بازنویسی نکنید؛ در صورت تغییر واقعی محتوا مقصد تغییرناپذیر تازه بسازید

retry برای bundleهای Environment و App عمداً به محتوا مقید است. هیچ شناسهٔ revision نسازید یا به فرمان ندهید. اگر بایت‌های build تغییر کرده‌اند، alamr build و alamr test محصول‌ویژه را دوباره اجرا کنید؛ CLI فقط مقصد تغییرناپذیر مشروع همان بایت‌های دقیق را می‌سازد یا انتخاب می‌کند. تغییر بی‌اثر مانیفست هرگز راه‌حل مجاز تعارض نیست.

اثر پس‌گرفتن و تعلیق بر زمان اجرا#

yanked و suspended هر دو گذار مدیریتی و نهایی از published هستند. گذار دلیل می‌خواهد و در گزارش ممیزی ثبت می‌شود.

  • برای revision یک Environment، Registry آن را به‌عنوان bundle نگه‌داری‌شدهٔ فعال کنار می‌گذارد و sessionهای Runtime و Grantهای Plugin مرتبط را باطل می‌کند.
  • برای نسخهٔ پلاگین، رجیستری آن را از حالت فعال خارج و مجوزهای صادرشدهٔ پلاگین برای همان نسخه را باطل می‌کند.
  • برای بازبینی استقرار، رجیستری استقرار را تعلیق و مجوزهای پلاگین آن را باطل می‌کند.

نسخهٔ ثابت اصلی، رکورد بازبینی و مدرک publishedAt باقی می‌مانند. برای نسخهٔ yanked قفل‌های صحت قبلی تکرارپذیر می‌مانند، اما alamr add نصب تازهٔ آن نسخه را رد می‌کند.

بازگردانی بدون بازنویسی تاریخ#

بازگردانی برای revisionهای Environment و App و releaseهای Plugin پشتیبانی می‌شود. اشاره‌گر فعال پروژه را به مقصدی می‌برد که:

  • به همان پروژه تعلق دارد؛
  • هنوز وضعیت published دارد؛
  • زیر مسدودسازی اضطراری فعال نیست.

بازگردانی دلیل می‌خواهد و در گزارش ممیزی ثبت می‌شود. مقصد، بازبینی، بسته یا درخواست قبلی را ویرایش نمی‌کند. rollback یک Environment یا App، bundle نگه‌داری‌شده و بررسی‌شدهٔ revision انتخابی را فعال می‌کند؛ rollback اپ پیش از جابه‌جایی اشاره‌گر منتشرشده، همان bundle تغییرناپذیر را دوباره اعتبارسنجی می‌کند. Registry مقصد تغییرناپذیر و رکورد انتشار را قفل می‌کند، واجدشرایط‌بودن جاری را دوباره می‌سنجد و اشاره‌گر را در همان تراکنش جابه‌جا می‌کند. بنابراین yank، retire یا مسدودسازی اضطراری مستقیم/وابسته به artifact در حالت هم‌زمان یک برندهٔ ترتیبی دارد و rollback نمی‌تواند مقصدی را فعال کند که بین برنامه‌ریزی و به‌روزرسانی اشاره‌گر دیگر واجد شرایط نیست.

برای بررسی و ذخیرهٔ برنامهٔ مقید به چکیده از alamr rollback <environment_revision|app_revision|plugin_release> <targetId> --reason <text> --plan استفاده کنید و سپس همان برنامهٔ دقیق را با تأیید صریح اعمال کنید. API مستند مدیریت و کنسول همان عملیات Registry را صدا می‌زنند؛ هرگز با ویرایش شناسه، چکیده، مانیفست یا فایل قفل بازگردانی را شبیه‌سازی نکنید.

برای تشخیص خطا عیب‌یابی، برای تعریف اصطلاحات واژه‌نامهٔ محصول و امنیت و برای قرارداد دقیق مرجع API را بخوانید.