Contributing
جریان بازبینی Pull request
این صفحه جریان بازبینی پس از باز کردن یا بهروزرسانی یک Pull request در OpenClaw را توضیح میدهد: Barnacle و ClawSweeper چه میکنند، چگونه بر اساس بازخورد آنها PR را بهبود دهید، و هنگامی که خودکارسازی ساکت میماند چه مواردی را بررسی کنید.
Barnacle و ClawSweeper به نگهدارندگان کمک میکنند صف بازبینی را قابلاستفاده نگه دارند. آنها جایگزین قضاوت نگهدارندگان نمیشوند.
Barnacle
Barnacle ابزار قطعی تریاژ GitHub است. این ابزار موارد شناختهشدهٔ مدیریت صف را جستوجو میکند و با برچسبها، دیدگاهها یا بستن موارد پاسخ میدهد.
Barnacle ممکن است در این شرایط اقدام کند:
- بدنهٔ یک PR عمدتاً خالی باشد یا زمینهٔ مسئله را نداشته باشد؛
- یک PR شواهد مفیدی نداشته باشد؛
- تغییری که فقط مربوط به مستندات، آزمون، بازآرایی، CI یا زیرساخت است، فاقد زمینهٔ مرتبط از سوی نگهدارنده باشد؛
- به نظر برسد تغییر بهجای هسته به ClawHub یا یک Plugin تعلق دارد؛
- شاخه شامل کار نامرتبط باشد؛
- یک نویسنده بیش از 20 PR باز داشته باشد.
Barnacle از کد قابلاعتماد گردشکار مخزن اجرا میشود. این ابزار کد مشارکتکننده را دریافت یا اجرا نمیکند.
بیشتر برچسبهای مسیریابی، سیگنالهای نگهدارندگان یا خودکارسازی هستند؛ بنابراین مشارکتکنندگان نیازی ندارند خودشان برچسب اضافه کنند.
ClawSweeper
ClawSweeper ربات بازبینی و نگهداری با کمک هوش مصنوعی برای مخزنهای OpenClaw است. این ربات میتواند PRها را بازبینی کند، شواهد را ارزیابی کند، دیدگاههای ماندگار بازبینی ثبت کند و در جریانهای محافظتشدهٔ تعمیر یا ادغام خودکار به نگهدارندگان کمک کند.
نتیجهٔ مثبت ClawSweeper شاهد پشتیبان است، نه تأیید نگهدارنده. همچنان نگهدارندگان تصمیم میگیرند که آیا و چه زمانی یک PR آمادهٔ ادغام است.
ClawSweeper مبتنی بر صف است. پس از باز کردن یک PR، ارسال یک commit یا افزودن درخواست بازبینی، انتظار پاسخ فوری نداشته باشید. بهروزرسانی برچسبها پس از اجرای ClawSweeper نیز ممکن است زمان ببرد.
PRهای جدید وارد صف بازبینی ClawSweeper میشوند. نگهدارندگان همچنین میتوانند با برچسبها یا فرمانها، جریانهای بازبینی، تعمیر یا ادغام خودکار را در صف قرار دهند. برای بهروزرسانیهای معمول مشارکتکنندگان، تنها پس از بهروزرسانی شاخه، توضیحات PR، شواهد یا کد، از ClawSweeper درخواست بازبینی دیگری کنید. سپس با یک دیدگاه جدید در PR درخواست بازبینی تازهای بدهید:
@clawsweeper re-reviewنویسندگان PR همچنین میتوانند از @clawsweeper re-run استفاده کنند؛ کاربران دارای دسترسی نوشتن در مخزن میتوانند هر یک از این فرمانها را روی هر مورد باز به کار ببرند. فرمان سادهٔ @clawsweeper review فقط برای نگهدارندگان است. صبور باشید: درخواست دوباره پیش از اعمال تغییرات خواستهشده فقط به ازدحام صف میافزاید.
هنگامی که ClawSweeper گفتوگوهای بازبینی ایجاد میکند، با آنها مانند بازخورد عادی بازبینی برخورد کنید و از فهرست پیگیری زیر استفاده کنید.
اگر یک مشارکتکننده یا نگهدارندهٔ انسانی مسئولیت PR را بر عهده گرفته و فعالانه روی آن کار میکند، همزمان ClawSweeper را فرا نخوانید یا به شکل دیگری روی PR کار نکنید. ابتدا اجازه دهید بازبینی یا تعمیر انسانی پایان یابد. اگر فعالیت متوقف شد، بررسی کنید آیا از نویسنده خواسته شده است شواهد ارائه کند یا بهروزرسانیهای دیگری انجام دهد.
بهبود PR هنگام بازبینی
پس از پاسخ Barnacle، ClawSweeper یا یک نگهدارنده، از آن بازخورد بهعنوان فهرست اقدامات بعدی PR استفاده کنید.
- موارد
Rank-up moves:وProof guidance:در ClawSweeper را بهعنوان فهرست اقدامات آن PR بخوانید. رتبهبندیها و برچسبها سیگنالهای بازبینیاند، نه اهداف ثابت ادغام. - تغییر درخواستی کد یا مستندات را ارسال کنید و هرگاه مسئله، راهحل، تأثیر بر کاربر یا شواهد تغییر کرده است، توضیحات PR را بهروزرسانی کنید.
- شواهد درخواستی را با استفاده از مدارکی که با تغییر مطابقت دارند اضافه کنید.
- گفتوگوهای بازبینی رسیدگیشده را خودتان حلوفصل کنید. تنها زمانی پاسخ دهید و گفتوگویی را باز نگه دارید که به قضاوت نگهدارنده یا بازبین نیاز دارید.
- تنها پس از بهروز شدن شاخه، توضیحات PR، شواهد و نتایج مرتبط CI درخواست بازبینی مجدد کنید. چندین چرخهٔ بهروزرسانی و بازبینی میان نویسنده، نگهدارنده و ClawSweeper عادی است.
- در صورت امکان، گفتوگو را در PR نگه دارید. تنها زمانی به
#clawtributorsدر Discord بروید که PR به هماهنگی نگهدارنده نیاز دارد، به نظر میرسد خودکارسازی مسدود شده است یا تصمیم بعدی بهسختی در دیدگاههای GitHub قابلحل است. پیوند PR، وضعیت فعلی و پرسش مشخص یا شواهد باقیمانده را درج کنید.
بدنهٔ PR را بهروز نگه دارید. دیدگاهها به گفتوگو کمک میکنند، اما توضیحات PR خلاصهٔ ماندگاری است که نگهدارندگان و خودکارسازی دوباره به آن مراجعه میکنند.
status: ⏳ waiting on author یعنی اقدام بعدی بر عهدهٔ نویسندهٔ PR است:
پیش از درخواست بازبینی دیگر، شاخه، توضیحات PR یا شواهد را بهروزرسانی کنید یا با زمینهٔ ازدسترفته پاسخ دهید.
شواهد مفید شامل خروجی آزمونهای متمرکز، نتایج CI، نماگرفتها، ضبطها، خروجی ترمینال، مشاهدات زنده، گزارشهای ویرایششده برای حذف اطلاعات حساس یا پیوند مصنوعات است. برای تغییرات بصری، در صورت امکان نماگرفتهای پیش و پس از تغییر را درج کنید. برای فایلهای اثبات، پیوند دادن مصنوعات CI، نماگرفتها یا ضبطهای بارگذاریشده در GitHub، یا گزیدهای کوتاه و ویرایششده از گزارش را ترجیح دهید. فایلهای اثبات تولیدشده را commit نکنید، مگر آنکه بخشی از تغییر واقعی مستندات، آزمونها یا محصول باشند.
حذف دادههای حساس بر عهدهٔ مشارکتکننده است. پیش از انتشار شواهد، اسرار، توکنها، URLهای خصوصی، دادههای کاربران و گزارشهای نامرتبط را حذف کنید.
OpenClaw همچنین از خودکارسازی جداگانهای برای موارد راکد استفاده میکند. مشکلات و PRهای بدون مسئول میتوانند پس از 14 روز بیفعالیتی راکد علامتگذاری شوند و سپس پس از 7 روز بیفعالیتی دیگر بسته شوند. PRهای دارای مسئول، صرفنظر از بهروزرسانیهای بعدی، 27 روز پس از باز شدن راکد علامتگذاری میشوند و سپس پس از 7 روز راکد بودن بدون فعالیت بسته میشوند. اگر یک PR دارای مسئول همچنان فعال است، با نگهدارندهای که روی آن کار میکند هماهنگ شوید.
هنگامی که خودکارسازی ساکت میماند
هنگامی که یک نگهدارنده از قبل در حال رسیدگی به مورد است، درخواست بازبینی یا تعمیر همچنان در صف قرار دارد، رویداد معمولی است یا مسیر ClawSweeper برای اقدام درخواستی پیکربندی نشده است، ممکن است خودکارسازی ساکت بماند.
همچنین ممکن است زمانی از اقدام خودداری کند که یک گردشکار قابلاعتماد ناچار باشد کد غیرقابلاعتماد مشارکتکننده را اجرا کند. در این حالت، نگهدارندگان بهجای آن از بازبینی عادی یا گردشکاری امنتر استفاده میکنند.
عیبیابی
اگر ClawSweeper بلافاصله پاسخ نمیدهد، پیش از تلاش دوباره منتظر بمانید. این سرویس مبتنی بر صف است و دیدگاههای تکراری یا تغییرات برچسب میتوانند بدون سریعتر کردن صف، بازبینی رشتهٔ گفتوگو را دشوارتر کنند.
پیش از درخواست کمک، بررسی کنید:
- توضیحات PR بهروز است؛
- آخرین commit شامل تغییر درخواستی است؛
- CI پایان یافته است، یا بدنهٔ PR توضیح میدهد چرا هر شکست باقیماندهای به PR ارتباط ندارد؛
- آخرین درخواست بازبینی بهصورت یک دیدگاه PR ثبت شده است:
@clawsweeper re-review; - یک نگهدارنده یا مشارکتکننده از قبل فعالانه روی PR کار نمیکند؛
- آخرین درخواست همچنان در بازهٔ تأخیر عادی صف ClawSweeper نیست.
اگر چند ساعت پس از بهروز شدن PR همچنان پاسخی از ClawSweeper دریافت نشد، یا اگر به نظر میرسد PR بهدلیل خودکارسازی مسدود شده است، در #clawtributors در Discord درخواست کمک کنید. پیوند PR، آنچه انتظار داشتید، زمان درخواست و تغییرات پس از آخرین دیدگاه ربات را درج کنید.
انشعاب از خودکارسازی
پروژههایی که خودکارسازی بازبینی مشابهی میخواهند، میتوانند ClawSweeper را بررسی یا از آن انشعاب ایجاد کنند: