چیزهای جدید برای توسعه‌دهنده‌ها

در چرخهٔ توسعهٔ گنوم ۴۱، بهبودهای عمده‌ای در تجربهٔ توسعه گنوم ایجاد شده. برای آگاهی بیش‌تر، ادامه دهید!

مستندات بهبودیافته

گنوم ۴۱ به همراه مقدار زیادی بهبود در مستندات آمده است! این امر موجب تغییر در پایگاه وب توسعه‌دهندگان گنوم، مستندات جدید توسعه‌دهندگان عمومی، مستندات API بهبودیافته و نگارشی جدید از رهنمودهای طرّاحی گنوم شده است.

پایگاه مستندات جدید

از زمان گنوم ۴۰، پایگاه وب اصلی توسعه‌دهندگان گنوم با پورتالی سرراست‌تر عوض شد که دسترسی را به تمامی مستندات بن‌سازهٔ گنوم فراهم می‌کند.

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

  • نگارش جدیدی از دیباچه‌ای بر بن‌سازهٔ گنوم که شامل نمایی کلّی است از مولّفه‌ها و خدمت‌ها، اطّلاعات در باب زبان‌های برنامه‌نویسی مختلفی که می‌توانند استفاده شوند و دیباچه‌هایی بر سازنده و فلت‌پک.

  • رهنمودهایی دربارهٔ موضوعات عمومی مانند توافق‌های برنامه نویسی، دسترسی و محلی‌سازی.

  • خودآموزهای کوتاه دربارهٔ کارهای معمول توسعه‌دهنده، مانند نحوهٔ استفاده از آگهی‌ها، یا ایجاد یک فهرست در GTK.

مستندات API جدید

بسیاری از کتابخانه‌های گنوم اکنون از ابزار مستندسازی API جدیدی به نام gi-docgen استفاده می‌کنند. این ابزار، مستنداتی دقیق‌تر و یکپارچه‌تری،‌ در کنار پایگاه‌های مستندات بهبود یافته تولید می‌کند.

کاربران اصلی gi-docgen، جی‌تی‌کی و کتابخانه‌ّای وابسته‌اش هستند که میتنداتشان می‌تواند در docs.gtk.org پیدا شود. این شامل مستندات API برای GTK، GDK، GSK، Pango، GdkPixbuf، GLib، GObject و GIO است.

رهنمودهای رابط انسانی جدید

مستندات طرّاحی گنوم نیز در چرخهٔ توسعهٔ گنوم ۴۱ گسترش و بهبود یافته‌اند.

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

در پایان، رهنمودهای رابط انسانی اکنون پایگاه وبی جدید دارد که زیباتر بوده و ناوبری و جست‌وجو در آن راحت‌تر است.

سازندهٔ بهتر

سازنده، محیط توسعهٔ گنوم، مجموعه‌ای بزرگ از بهبودها برای گنوم ۴۱ دارد.

ویژگی «یافتن در پرونده‌ها» که اجازهٔ یافتن و جایگزینی رشته‌ها در سراسر پروژه را می‌دهد، برای گنوم ۴۱ بازطرّاحی شده. این ویژگی اکنون در بخش ثابتی در تابلوی زیرین قرار گرفته که قابل کشف‌ترش می‌کند و رابط کاربری جدیدی برای جست‌وجو دارد که مرور نتیجه‌ها در سراسر یک پروژه را راحت‌تر می‌کند.

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

برای گنوم ۴۱، سازنده می‌تواند پروژه‌های CMake را نیز ساخته و اجرا کند. همچنین می‌تواند پروژه‌هایی که از برپایی ساخت Make خالص در یک محیط فلت‌پک استفاده می‌کند را بسازد (با تشکّر از توانایی مدیریت make-args و make-install-args).

در نهایت Builder پرداختگر مارک‌دونی جدید برای گنوم ۴۱ دارد که پیش‌نماهای مارک‌دونی با قالب‌بندی بهتر تولید می‌کند.

GTK 4

از زمان ارائه گنوم ۴۰، دو به‌روز رسانی فرعی برای جی‌تی‌کی ۴ آمده: ۴٫۲ و ۴٫۴.

اکنون NGL، پرداختگر جدید GL برای جی‌تی‌کی ۴، پرداختگر پیش‌گزیده روی گنو/لینوکس، ویندوز و مک است. این پرداختگر، بهبود قابل ملاحظه‌ای در قاب بر ثانیه،‌در کنار استفاده از پرودازنده و توان دارد. مدیریت ورودی، زمینهٔ دیگری از بهبودها در جی‌تی‌کی است که روش مدیریت کلیدهای ایجاد و مرده را عوض می‌کند.

بهبودهای دیگر در انتشارهای ۴.۲ و ۴.۴ عبارتند از:

  • بازرس جی‌تی‌کی اکنون به منظور رفع اشکال ساده‌تر، به صورت پیش‌گزیده به کار افتاده است.

  • بهبودهای مختلفی در جی‌تی‌کی ۴ روی ویندوز وجود دارد، مانند استفاده از GL برای پخش رسانه و پشتیبانی کشیدن و انداختن بهبود یافته.

  • دادهٔ ایموجی به CLDR ۳۹ به‌روز رسانی شده‌است.

بلاگ GTK شامل اطّلاعات بیش‌تر در مورد انتشارهای GTK ۴.۲ و ۴.۴ است.

libadwaita

کتابخانهٔ همراه در حال توسعه‌ای برای جی‌تی‌کی ۴ است که در ماه‌های پیش رو به سمت ارائه نخستین ۲٫۰ حرکت می‌کند. این کتابخانه، صفحهٔ سبک جی‌تی‌کی گنوم، ابزارک‌های اضافی و قابلیت‌های راحتی را برای کاره‌های گنوم جی‌تی‌کی ۴ فراهم می‌کند. این کتابخانه، ادامهٔ فنّی libhandy است (که می‌تواند در ترکیب با جی‌تی‌کی ۳ استفاده شود).

توسعه‌های libadwaita در طول چرخهٔ گنوم ۴۱ شامل:

  • مقدار قابل توجّهی پاک‌سازی API و بازنویسی کد، در طی نزدیک شدن کتابخانه به ارائه ۱٫۰.

  • تغییرات عمدهٔ برگهٔ سبک CSS، شامل یک بازنویسی بزرگ، به‌روز رسانی‌های سبک عمومی و کار بر روی پشتیبانی تغییر رنگ. مورد آخر علاوه بر اجازه به کاره‌ها برای تغییر رنگ رابط کاربریشان، حالت تاریک را هم تسهیل می‌کند.

  • افزودن AdwApplication،‌کلاس پایه‌ای جدید برای کاره‌ها که کدهای تکراری را کاسته و مقداردهی نخستین کتابخانه را مدیریت می‌کند.

  • شامل شدن نشان‌های مناخوانده در تعویضگرهای نما.

  • مستندات واسط برنامه‌نویسی کاربردی(API) اکنون با gi-docgen تولید می‌شود.

مستنداتی دربارهٔ نحوهٔ استفاده از هر یک از گزینه‌های ارائه شده توسط libadwaita در رهنمودهای رابط انسانی، همزمان با انتشار libadwaita ۱.۰ قرار میگیرد.

GJS

GJS، پروژه‌ای که شیرازهٔ جاوااسکریپت را برای بن‌سازهٔ گنوم فراهم می‌کند، تعدادی بهبود در گنوم ۴۱ دارد:

  • استفادهٔ حافظه حدود ۴۰ بایت به ازای GObject کاهش یافته.

  • شی‌های جهانی TextEncoder و TextDecoder افزوده شدند که جایگزین پیمانهٔ قدیمی‌تر imports.ByteArray می‌شوند.

  • یک گزینهٔ ignoreCaughtExceptions به اشکال‌زدای GJS افزوده شده. به کار انداختن این گزینه باعث می‌شود اگر استثناها جای دیگری در کد گرفته می‌شوند، اشکال‌زدا از آن‌ها بپرد.

  • مستندات برای مشارکت‌کنندگان جدید به‌روز رسانی شده‌است.

نگارش ۴۱ GJS همچنین شامل مجموعهٔ خوبی از رفع اشکال‌هاست.

gtk-rs

پشتیبانی راست برای بن‌سازهٔ گنوم پیشرفت قابل توجّهی از گنوم ۴۰ داشته:

  • اکنون شیرازه‌هایی برای جی‌تی‌کی ۴ و کتابخانه‌های وابسته فراهم شده.

  • اکنون به لطف کتاب توسعهٔ رابط کاربری با راست و جی‌تی‌کی ۴، شروع به کار با راست و جی‌تی‌کی ۴ آسان است. به اضافه، قالب راست جی‌تی‌کی می‌تواند به عنوان پایه برای پروژه‌های راست جی‌تی‌کی ۴ نیز استفاده شود.

  • اکنون قالب‌های ترکیبی جی‌تی‌کی پشتیبانی می‌شوند که اجازهٔ ایجاد موثّرتر ابزارک‌های شخصی را می‌دهد. یک مثال نشان می‌دهد که این کار چگونه می‌تواند در عمل استفاده شود.

  • در کنار این تغییرات بزرگ، بهبودهای کوچک دیگری نیز به وقوع پیوسته. مانند مستندات بهتر، ماکروهای GLib اضافی، زیرکلاس‌های ساده‌تر و غیره.

برای جزییات بیش‌تر اطّلاعیهٔ انتشار را در وبلاگ gtk-rs بخوانید.

به‌روز رسانی‌های SDK فلت‌پک

کیت توسعهٔ نرم‌افزار فلت‌پک گنوم تعدادی بهبود برای گنوم ۴۱ دریافت کرد:

  • کیت توسعهٔ نرم‌افزار فلت‌پک اکنون همراه با فعال بودن پشتیبانی sysprof ساخته می‌شود و ایجاد نمایهٔ برنامه‌های flatpak را آسان‌تر می‌کند.

  • zenity و librest از زمان اجرا برداشته شدند.

  • libmanette به زمان اجرا افزوده شد که پشتیبانی دستهٔ بازی را در وب‌کیت به کار می‌اندازد.

  • زمانی اجرای پایه به freedesktop-sdk 21.08 به‌روز شد که زنجیرابزارها (مثل GCC ۱۱ و LLVM ۱۲) و کتابخانه‌های (مثل Mesa ۲۱٫۲) جدیدتری را به ارمغان می‌آورد.

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

سیستم‌عامل گنومتصویرهای توسعهٔ شبانهٔ یک سامانهٔ کامل گنومی را فراهم می‌کند. با این که به صورت خاص برای اطمینان از کیفیت پروژهٔ گنوم استفاده می‌شود، می‌تواند مرجعی مفید برای توزیع‌های پایین‌دستی و توسعه‌دهندگان کاره هم باشد. این توزیع، در طول چرخهٔ گنوم ۴۱، به‌روز رسانی‌های مختلفی دریافت کرده:

  • کتابخانه‌های سیستم‌عامل گنوم اکنون همراه با sysprof فعال، ساخته شده‌اند و ساختن نمایهٔ برنامه‌ها را در سیستم‌عامل گنوم آسان‌تر می‌کنند.

  • systemd-homed اکنون گنجانده شده‌است و می‌توان آن را به صورت دستی با استفاده از homectl به کار انداخت.

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

  • پسانه‌های وی‌پی‌ان openconnect, fortisslvpn, vpnc و openvpn به NetworkManager افزوده شدند.

  • ابزارLXC اکنون گنجانده شده‌است.

  • RISC-V به عنوان یک معماری پردازنده افزوده شد.

  • ماتر اکنون با پشتیبانی از initfd ساخته شده‌است و پشتیبانی بهتر از ایکس‌ویلند را امکان پذیر می‌کند.

  • xdg-desktop-portal-gnome برای درگاه‌های میزکار مخصوص گنوم افزوده شد.

در پایان، سیستم‌عامل گنوم اکنون با استفاده از نمونهٔ openQA میزبانی شده روی openqa.gnome.org آزموده می‌شود. برای جزییات دربارهٔ چگونگی استفادهٔ توسعه‌دهندگان از این نمونه، مستندات توسعه‌دهندگان را ببینید.

این همه‌اش نیست

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

  • ردیاب اکنون از طریق Homebrew برای سیستم‌عامل مک موجود است. با اجرای brew install tracker نصبش کنید.

  • دوهلپ اکنون از API مستندات مرجع که با gi-docgen تولید می‌شوند، پشتیبانی می‌کند.

  • توسعه‌دهندگان برنامه می‌توانند نمایهٔ نیرو با عملکرد بالا را هنگام اجرای فرمان با استفاده از powerprofilectl درخواست کنند. مثلاً:

    powerprofilectl launch --reason "Compiling software" ninja