Python 3.15.0 يصل إلى GitHub Actions: يمكن الآن تحديث مصفوفة الاختبارات

أُضيفت النسخة المستقرة Python 3.15.0 إلى مستودع actions/python-versions. يستمد action المسمّى setup-python توزيعات بايثون من هذا المستودع، لذا يمكن الآن كتابة الإصدار "3.15" في مصفوفة GitHub Actions وتشغيل الاختبارات على الإصدار الجديد. انتظر المطوّر سايمن ويليسون هذا الـ commit عدة أيام، وكلّف ChatGPT بتنفيذ git pull كل ساعة والإبلاغ عند ظهور 3.15. • الإصدار المستقر 3.15.0 متاح الآن في GitHub Actions. • يجب كتابة الإصدار كسلسلة نصية بين علامتي اقتباس: "3.15". • مرّت عدة أيام بين الإصدار على python.org وظهوره في CI.

معالج بواسطة الذكاء الاصطناعي من Simon Willison؛ بتحرير Hamidun News
Python 3.15.0 يصل إلى GitHub Actions: يمكن الآن تحديث مصفوفة الاختبارات
المصدر: Simon Willison. كولاج: Hamidun News.
استمع للمقال
بطاقة الحقائق والأرقام
المعيارالتفاصيل
المصدر الأصليSimon Willison ↗
رئيس التحرير
حقيقة رئيسية #1الإصدار المستقر 3.15.0 متاح الآن في GitHub Actions.
حقيقة رئيسية #2يجب كتابة الإصدار كسلسلة نصية بين علامتي اقتباس: "3.15".
حقيقة رئيسية #3مرّت عدة أيام بين الإصدار على python.org وظهوره في CI.

ظهر في مستودع actions/python-versions commit يضيف النسخة المستقرة Python 3.15.0. الخبر محدود النطاق، لكنه إشارة لآلاف المشاريع على GitHub: يمكنها الآن إضافة "3.15" إلى مصفوفة الاختبارات وفحص الشيفرة على المفسّر الحديث دون بنائه بنفسها. انتظر المطوّر سايمن ويليسون هذه اللحظة عدة أيام. بل كلّف ChatGPT باستنساخ المستودع وتنفيذ git pull كل ساعة، وإبلاغه حين تظهر النسخة المستقرة 3.15 أخيرًا.

لماذا يختلف موعد إصدار Python عن موعد توافره في CI

عندما يصدر إصدار جديد على python.org، لا يصل إلى GitHub Actions فورًا. يأخذ action المسمّى setup-python النسخ الجاهزة من المفسّر من ملف manifest في مستودع actions/python-versions. وما دام لا يوجد فيه سجل للإصدار 3.15.0، فإن الأمر `python-version: "3.15"` إما يبحث عن الإصدارات التجريبية فقط، وإما لا يجد إصدارًا مناسبًا. على القائمين على المستودع بناء التوزيعات لأنظمة Linux وmacOS وWindows، وتشغيل الفحوصات، ثم تنفيذ commit للتحديث.

انتظر ويليسون هذه الخطوة تحديدًا. فقد صدر الإصدار بالفعل وكانت صفحته موجودة على python.org، لكن CI ظل عاجزًا عن استخدامه. هذه الفجوة مزعجة لمؤلفي المكتبات: يثبّت المستخدمون Python الجديد في الأيام الأولى، ومن الأفضل اكتشاف مشكلة التوافق قبلهم.

كيف أصبح ChatGPT حارسًا للمستودع

يبدو prompt ويليسون أقرب إلى مهمة cron مكتوبة بلغة طبيعية: استنساخ https://github.com/actions/python-versions، وتنفيذ git pull كل ساعة إلى أن تُضاف النسخة المستقرة 3.15، ثم الإبلاغ. وقد نشر رابط المحادثة. هذا مثال يومي على سيناريو عمل الوكلاء: يحصل النموذج على بيئة فيها git، ويكرر الإجراء وفق جدول زمني، ثم يعود بالنتيجة من تلقاء نفسه عندما يتحقق الشرط.

المهمة صغيرة لكنها دالّة. كانت مثل هذه الأمور تُحل سابقًا بالاشتراك في الإصدارات أو RSS أو بسكربت على خادم. أما الآن فيكفي وصف الشرط بالكلمات. والعيب واضح أيضًا: تعتمد موثوقية هذا الحارس على الطريقة التي يخطط بها منتج الدردشة لإعادة الفحوصات ويشغّلها. الاشتراك في إشعارات GitHub أو إنشاء workflow خاص يعمل بجدول زمني يعطيان نتيجة أكثر قابلية للتنبؤ. ولا تذكر ملاحظة ويليسون نتيجة الفحص، ولذلك لا يوجد ما يُقيَّم به فاعلية هذا النهج.

ما يجب معرفته عن الإعداد

  • يُكتب الإصدار كسلسلة نصية: `"3.15"`. بدون علامات الاقتباس قد يقرأ YAML الرقم على أنه float، فيتحول `3.10` إلى `3.1`. هذا الفخ معروف منذ زمن طويل.
  • مصدر النسخ: ملف manifest في actions/python-versions الذي يستخدمه setup-python.
  • صفحة الإصدار: python.org/downloads/release/python-3150.
  • وسوم الملاحظة: GitHub، Python، GitHub Actions، ChatGPT.

عمليًا: ما الذي يمكن فعله اليوم

إذا كنت تصون مكتبة أو خدمة مكتوبة بـ Python، فأضف `"3.15"` إلى المصفوفة، مثل `python-version: ["3.13", "3.14", "3.15"]`. يُفضَّل وسم التشغيل الأول على أنه غير حاجب عبر `continue-on-error`. عندها لن توقف التبعيات المعطلة ذات الامتدادات الأصلية خط الأنابيب الرئيسي. فحزم wheel للإصدار الجديد لا تظهر فورًا في الحزم الشائعة، وكثيرًا ما تُفسَّر أولى حالات البناء الفاشلة بذلك، لا بشيفرتك.

يستحسن أيضًا مراجعة تحذيرات الإهمال التي أصدرها Python في الإصدارات السابقة. فمعالجتها مبكرًا أسهل، قبل حذف الـ API القديم. وإن كانت لديك عمليات بناء ليلية أو فحوصات على صور Docker، فأضف 3.15 إليها أيضًا.

وأخيرًا: إن كنت تنتظر حدثًا في مستودع غيرك، فليس من الضروري أن تطلب ذلك من روبوت دردشة. الاشتراك في الإصدارات أو workflow بسيط بجدول زمني أكثر موثوقية، أما روبوت الدردشة فيصلح حين يصعب وصف الشرط بصيغة رسمية.

القصة

أسئلة وأجوبة حول الخبر

ما أبرز التفاصيل حول لماذا يختلف موعد إصدار Python عن موعد توافره في CI؟

عندما يصدر إصدار جديد على python.org، لا يصل إلى GitHub Actions فورًا. يأخذ action المسمّى setup-python النسخ الجاهزة من المفسّر من ملف manifest في مستودع actions/python-versions. وما دام لا يوجد فيه سجل للإصدار 3.15.0، فإن الأمر `python-version: "3.15"` إما يبحث عن الإصدارات التجريبية فقط، وإما لا يجد إصدارًا مناسبًا. على القائمين على المستودع بناء التوزيعات لأنظمة Linux وmacOS وWindows، وتشغيل الفحوصات، ثم تنفيذ commit للتحديث. انتظر ويليسون هذه الخطوة تحديدًا. فقد صدر الإصدار بالفعل وكانت صفحته موجودة على python.org، لكن CI ظل عاجزًا عن استخدامه. هذه الفجوة مزعجة لمؤلفي

ما أبرز التفاصيل حول كيف أصبح ChatGPT حارسًا للمستودع؟

يبدو prompt ويليسون أقرب إلى مهمة cron مكتوبة بلغة طبيعية: استنساخ https://github.com/actions/python-versions، وتنفيذ git pull كل ساعة إلى أن تُضاف النسخة المستقرة 3.15، ثم الإبلاغ. وقد نشر رابط المحادثة. هذا مثال يومي على سيناريو عمل الوكلاء: يحصل النموذج على بيئة فيها git، ويكرر الإجراء وفق جدول زمني، ثم يعود بالنتيجة من تلقاء نفسه عندما يتحقق الشرط. المهمة صغيرة لكنها دالّة. كانت مثل هذه الأمور تُحل سابقًا بالاشتراك في الإصدارات أو RSS أو بسكربت على خادم. أما الآن فيكفي وصف الشرط بالكلمات. والعيب واضح أيضًا: تعتمد موثوقية هذا الحارس على الطريقة التي يخطط بها منتج الدردشة

ما أبرز التفاصيل حول ما يجب معرفته عن الإعداد؟

يُكتب الإصدار كسلسلة نصية: `"3.15"`. بدون علامات الاقتباس قد يقرأ YAML الرقم على أنه float، فيتحول `3.10` إلى `3.1`. هذا الفخ معروف منذ زمن طويل. مصدر النسخ: ملف manifest في actions/python-versions الذي يستخدمه setup-python. صفحة الإصدار: python.org/downloads/release/python-3150. وسوم الملاحظة: GitHub، Python، GitHub Actions، ChatGPT.

ZK
جمال حميدون — مدير المنتجات في Alpina Digital ومدير منتج AlpinaGPT. يبني منتجات الذكاء الاصطناعي منذ 2019. بدأ Hamidun News كمشروع شخصي ثم أصبح مُجمِّعًا إنتاجيًا بأكثر من 6000 قارئ.
✦ Hands-On AI Engineering

Build & Ship Production AI Apps with Vibe Coding

Join Zhemal Khamidun's hands-on Vibe Coding Intensive at hamidun.com/vibecoding — master Claude Code, Cursor, and autonomous agentic workflows.

Explore Vibe Coding →Vibe Academy Platform
ما رأيك؟
جارٍ تحميل التعليقات…