بررسی راهنمای توسعه افزونه‌های گنوم

· نویسنده: سپهر

به بهانه‌ی اضافه شدن قانون جدیدی که افزونه‌های ساخته شده با هوش مصنوعی رو از ورود به لیست افزونه‌های گنوم منع میکنه، بیاید راهنمای توسعه‌ افزونه‌هارو به طور اجمالی بررسی کنیم. همه‌ی افزونه‌ها طبق این راهنما و قوانین از نظر امنیت، کد مخرب و تهدیدهای احتمالی بررسی میشن

اگر اولین بار هست که افزونه می‌نویسید، این پست احتمالا براتون ارزشمند خواهد بود.

بخش صفرم: اصول پایه‌ی چرخه‌ی حیات افزونه

هر افزونه باید از یه الگوی استاندارد پیروی کنه:

این قاعده مهم‌ترین معیار پذیرش افزونه‌ها تو فرایند بازبینی هست.

بخش اول: اشیاء ثابت و مدیریت حافظه

«منبع تصویر»

افزونه‌ها می‌تونند از نوع‌های داخلی جاوااسکریپت مثل موارد پایین در سطح ماژول استفاده کنن:

اما:

هدف این قانون جلوگیری از نشتی حافظه و باقی‌ماندن داده‌ها پس از غیرفعال شدن افزونه‌ست.

بخش دوم: مدیریت اشیاء، ویجت‌ها و سیگنال‌ها

هر شیء یا ویجتی که در enable() ساخته میشه باید:

همچنین:

عدم رعایت این قوانین یکی از شایع‌ترین دلایل رد شدن افزونه‌هاست.

بخش سوم: منابع حلقه‌ی اصلی

اگه از تایمر یا منابع حلقه اصلی استفاده می‌کنید:

بخش چهارم: ماژول‌های منسوخ‌شده و ممنوع

استفاده از ماژول‌های قدیمی ممنوعه. جایگزین‌های مدرن باید استفاده بشن:

بخش پنجم: جداسازی صحیح پردازش‌ها

گنوم افزونه‌هارو در دو محیط جدا اجرا می‌کنه:

در محیط Shell (extension.js)

استفاده از این کتابخانه‌ها ممنوعه:

در محیط تنظیمات (prefs.js)

استفاده از این کتابخانه‌ها ممنوعه:

این تفکیک برای جلوگیری از تداخل کتابخانه‌ها انجام میشه.

بخش ششم: عدم دخالت در سیستم افزونه‌ها

افزونه‌ها نباید:

بخشم هفتم: کیفیت کد و خوانایی

«منبع تصویر»

کد افزونه باید:

بخش هشتم: لاگ‌نویسی (Logging)

افزونه نباید لاگ بیش‌ازحد تولید کنه.

لاگ‌ها فقط باید برای خطاهای مهم یا پیام‌های ضروری استفاده بشن. استفاده‌ی افراطی از console.log باعث رد شدن افزونه میشه.

بخش نهم: اسکریپت‌ها و باینری‌های خارجی

استفاده از فایل‌های خارجی به‌شدت محدود شده:

نصب ماژول‌های npm یا pip فقط با اقدام مستقیم کاربر مجاز هست (مثلاً دکمه‌ای در بخش تنظیمات).

بخش دهم: دسترسی به کلیپ‌بورد

اگر افزونه شما به کلیپ‌بورد دسترسی داره:

بخش یازدهم: الزامات عملکردی

افزونه باید:

افزونه‌های کاملاً بی‌استفاده یا شکسته رد میشن.

بخش دوازدهم سیاست مربوط به کد تولیدشده با AI

«منبع تصویر»

این بخش که تازه اضافه شده میگه که، استفاده از هوش مصنوعی به‌عنوان ابزار کمکی مشکلی نداره، اما:

بخش سیزدهم: استانداردهای فایل metadata.json

فایل metadata.json باید معتبر و دقیق باشه و اطلاعات واقعی افزونه رو منعکس کنه.

نکات مهم:

بخش چهاردهم: تله‌متری

افزونه‌ها نباید هیچ‌گونه سیستم تله‌متری یا ردیابی کاربر داشته باشن.

بخش پانزدهم: محدودیت‌های قانونی و محتوایی

افزونه‌ها باید:

بخش شانزدهم: توصیه‌های تکمیلی

بخش هفدهم: منابع برای دریافت کمک

در صورت نیاز میتونید از این منابع کمک بگیرید: