EN
→ بازگشت به خبرخوان
شمارهٔ ۰۳۹۰Rust۲ دقیقه۳ منبع

کارگو یک مالک تمام‌وقت برای قابلیت اطمینان خود پیدا می‌کند

پروژهٔ Rust، اسکات شیفر را به‌عنوان نخستین Maintainer in Residence تمام‌وقت Cargo منصوب کرده است؛ اقدامی که ظرفیت نگه‌داری را به بخشی از زیرساخت آیندهٔ مدیر بستهٔ Rust تبدیل می‌کند.

اشتراک‌گذاری
راست (Rust)
کارگو یک مالک تمام‌وقت برای قابلیت اطمینان خود پیدا می‌کند
تصویر: تولید هوش مصنوعی

پروژهٔ Rust به Cargo چیزی می‌دهد که بسیاری از پروژه‌های زیرساختی فاقد آن هستند: یک نگه‌دارنده با زمان اختصاصی برای سالم نگه‌داشتن سیستم.

تیم تأمین مالی بنیاد Rust در اطلاعیه‌ای به تاریخ ۲۲ سپتامبر، اسکات شیفر را به‌عنوان Maintainer in Residence جدید Cargo معرفی کرد. این جایگاه از طریق صندوق نگه‌داری بنیاد Rust تأمین می‌شود و شورای رهبری Rust از بودجهٔ اولویت‌های پروژه، همراه با AWS، منابع بیشتری برای آن فراهم کرده است. انتظار می‌رود شیفر دست‌کم ۱۲ ماه به‌صورت تمام‌وقت روی Cargo کار کند.

انتخاب Cargo رویکردی راهبردی دارد. Cargo هم سیستم ساخت Rust و هم مدیر بستهٔ آن است و مسئولیت‌هایش از ورک‌اسپیس‌ها و حل وابستگی‌ها تا یکپارچه‌سازی با کامپایلر، ابزارها و نقشهٔ راه گسترده‌تر Rust امتداد دارد. این نقش میان‌برنامه‌ای باعث می‌شود نگه‌داری روزمره مستقیماً با توسعهٔ قابلیت‌های جدید و پاک‌سازی معماری رقابت کند.

این پروژه پیش‌تر فشار چنین وضعیتی را تجربه کرده است. اطلاعیهٔ Rust به یک توقف چندسالهٔ توسعهٔ قابلیت‌های جدید Cargo اشاره می‌کند که برای کاهش بدهی فنی، بازآرایی سامانه‌های داخلی، رسیدگی به صف issueها و pull requestها و ایجاد فرایندهای مقیاس‌پذیرتر استفاده شد. در دورهٔ اخیر نیز خروج برخی اعضا و از دست رفتن بودجهٔ اختصاصی، ظرفیت نگه‌داری تیم را کاهش داده است.

شیفر با سابقه و تداوم وارد این نقش می‌شود، نه از نقطهٔ صفر. او سه سال پیش به تیم Cargo پیوسته و هم‌زمان رهبر تیم Rust Docker است؛ تیمی که imageهای رسمی Docker را برای نسخه‌های Rust آماده می‌کند. از کارهای قبلی او در Cargo می‌توان به Workspace inheritance اشاره کرد؛ قابلیتی که به اعضای یک ورک‌اسپیس اجازه می‌دهد فرادادهٔ بسته و وابستگی‌ها را از یک manifest مرکزی به ارث ببرند. مستندات فعلی Cargo نیز این قابلیت را راهی برای متمرکز کردن تنظیماتی مانند فیلدهای بسته و وابستگی‌ها در پروژه‌های چندبسته‌ای توضیح می‌دهد.

این سابقه برای توسعه‌دهندگانی مهم است که Cargo.toml را بخشی از سطح عملیاتی سیستم خود می‌دانند. تنظیمات متمرکز ورک‌اسپیس تکرار را کم می‌کند، اما در عین حال رفتار manifest مربوط به Cargo را به یک وابستگی مشترک برای تمام crateهای عضو تبدیل می‌کند. بنابراین بهبود در تحلیل manifest، پیام‌های خطا، lintها و رفتار ورک‌اسپیس، فراتر از خود مخزن Cargo اثر می‌گذارد.

این اطلاعیه همچنین کار شیفر روی diagnosticها را به مسیر lintهای Cargo مرتبط می‌کند. او در انتقال کامپایلر به crate مربوط به annotate-snippets نقش رهبری داشته؛ کاری که برای Rust 1.93.0 تکمیل شد و یک رابط diagnostic مشترک میان کامپایلر، Cargo و ابزارهای دیگر ایجاد کرد. پروژهٔ Rust می‌گوید این کار ادامهٔ توسعهٔ lintهای Cargo را ممکن کرد و برنامه دارد lintهای Cargo را همراه با Rust 1.100.0 عرضه کند.

برای توسعه‌دهندگان ICP که مؤلفه‌های Rust یا WebAssembly می‌سازند، نتیجهٔ عملی این خبر یک فرمان جدید برای استفاده نیست. نکته این است که ظرفیت نگه‌داری Cargo به‌طور آشکارتری بخشی از داستان قابلیت اطمینان toolchain شده است: manifestهای ورک‌اسپیس، گراف‌های وابستگی، diagnosticها و رفتار CI همگی به سالم بودن مدیر بسته وابسته‌اند.

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

برچسب‌هاRustCargoبنیاد Rustسیستم‌های ساخت
منابع مستند۳ مرجع
  1. [۰۱]Announcing a Maintainer in Residence: Scott Schafer for the Cargo teamblog.rust-lang.org
  2. [۰۲]Workspaces - The Cargo Bookdoc.rust-lang.org
  3. [۰۳]Workspaces inheritance breaks for a workspace located in a sub-directory of another workspace · Issue #12154github.com
خواندنی بعدی

خبرخوان را در ایمیل بگیرید

هر سیگنال تازه، مستقیم از خط تولید. بدون مزاحمت، لغو عضویت در هر زمان.

خوراک RSS در دسترس · بدون هرزنامه