المكتبات


يهدف Exercism إلى تعليم الطلاقة في صياغة اللغة وعباراتها الاصطلاحية ومكتبتها القياسية. وهذا لا يشمل صراحةً المكتبات الخارجية (غير المدمجة)، فهي تدخل ضمن الإتقان. لذلك يجب، مع استثناءات قليلة، أن يكون حل التمارين ممكنًا دون استخدام مكتبات.

أسباب دعم المكتبات

هناك عدة أسباب قد تجعل المسار يرغب في دعم المكتبات رغم ذلك:

  1. أن تكون المكتبة القياسية للغة (بالغة) الصغر. ومن أمثلة هذه اللغات Rust.
  2. أن تضيف المكتبة وظائف للاختبار. ومن الأمثلة مكتبة تضيف دعمًا للاختبار القائم على الخصائص.
  3. أن يكون التمرين قابلًا للحل باستخدام مكتبة فقط. ومن أمثلة ذلك تمرين lens-person، الذي لا يمكن حله في معظم اللغات إلا باستخدام مكتبة.

دعم المكتبات في مشغّل الاختبارات

بما أن مشغّل الاختبارات لا يستطيع الوصول إلى الإنترنت أثناء تشغيله، فليس من الممكن تنزيل المكتبات في وقت التشغيل. الحل الوحيد لهذه المشكلة هو تثبيت المكتبات أو تنزيلها في وقت البناء، حيث تملك بالفعل إمكانية الوصول إلى الإنترنت. وعمليًا، يعني هذا أنك ستحتاج إلى تثبيت المكتبات أو تنزيلها داخل ملف Dockerfile.

وكمثال على ذلك، يثبّت ملف Dockerfile الخاص بمشغّل اختبارات Prolog مكتبة date_time:

RUN swipl pack install date_time -y

التوثيق

إذا كان مسارك يدعم المكتبات، فيجب توثيق ذلك في وثيقة المسار. يُرجى أيضًا الربط بهذه الوثيقة (باستخدام رابطها الكامل) من وثيقة exercises/shared/.docs/help.md.