مجلة المعلوماتية مجلة المعلوماتية
المعرفة • البحث • التقنيةأعداد متاحة للقراءة الإلكترونية

الامتثال لتراخيص البرمجيات بجهد جماعي: مشروع ClearlyDefined

العددالعدد 68
تاريخ النشر
عدد القراءات0
اقتباس

الملخص:

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

الكلمات المفتاحية: ClearlyDefined، تراخيص البرمجيات، الامتثال، المصدر المفتوح، بيانات المكونات

مقدمة:

يستمر استخدام المصدر المفتوح في النمو السريع، سواء في حالات الاستخدام وسيناريوهاته أم في حجمه. يستطيع المطور بسهولة أن يعتمد على ألف حزمة JavaScript بتشغيل npm install مرة واحدة، أو أن يضم آلاف الحزم داخل صورة Docker. وفي الوقت نفسه يتزايد الاهتمام بضمان الامتثال للتراخيص.

من دون الترخيص المناسب قد لا يحق لك قانونًا استخدام مكون برمجي بالطريقة التي تريدها، أو قد تتحمل التزامات تتعارض مع نموذج عملك. مثلًا قد تحمل حزمة JavaScript ترخيص MIT الذي يسمح بإعادة الاستخدام التجاري، بينما تحمل إحدى اعتمادياتها ترخيصًا بالحقوق المتروكة يوجب توزيع برنامجك بالترخيص نفسه. [ملاحظة المترجم: هذا مثال عام أورده المؤلف؛ تتوقف الالتزامات الفعلية على الرخصة وطريقة الجمع والتوزيع.] يعني الامتثال العثور على الترخيص أو التراخيص السارية، وتقييم شروطها والالتزام بها؛ وهو أمر ميسور للمكونات المنفردة، لكنه قد يصبح مرهقًا للمبادرات الكبيرة.

لحسن الحظ، لهذا التحدي المفتوح المصدر حل مفتوح المصدر: ClearlyDefined. إنه جهد تشاركي مفتوح المصدر تحت مظلة مبادرة المصدر المفتوح OSI لجمع بيانات المكونات المفتوحة وتنقيحها، وإعادة التصحيحات إلى مشروعاتها الأصلية وتوحيدها، مثل الترخيص وحقوق النشر وموقع المصدر. وهذه البيانات حجر الأساس لتخفيف صعوبة الامتثال للتراخيص.

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

كيف يعمل؟

يراقب ClearlyDefined منظومة المصدر المفتوح ويحصد البيانات ذات الصلة من المكونات آليًّا بأدوات مفتوحة مثل ScanCode وFOSSology وLicensee. ثم تُلخص النتائج وتُجمع لإنشاء «تعريف» يعرض للمستخدمين عبر واجهة برمجة التطبيقات وواجهة الاستخدام. ويشمل كل تعريف:

• الترخيص المعلن للمكون.

• التراخيص وحقوق النشر المكتشفة في جميع ملفاته.

• موقع الشفرة المصدرية الدقيق حتى مستوى التغيير المسجل commit.

• تاريخ الإصدار.

• قائمة المكونات المضمنة.

ومصادفةً ـ أو ليس مصادفة حقًّا ـ هذه هي البيانات التي تحتاجها للامتثال للتراخيص.

تنقيح البيانات

قد يتضمن أي تعريف فجوات أو أوجه قصور بسبب مشكلات الأدوات أو نقص البيانات أو خطئها في المصدر. يتيح ClearlyDefined للمستخدمين تنقيح النتائج بضبط القيم وسد الفجوات. وتخضع هذه المساهمات للمراجعة والدمج مثل أي مشروع مفتوح المصدر، فتنتج مجموعة بيانات أفضل متاحة للجميع.

استباق المشكلة

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

التكيف بدل الإلزام

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

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

ملفات NOTICE

أعددنا، بوصفها ميزة إضافية، واجهة برمجية وواجهة استخدام لإنشاء ملفات NOTICE، لتيسير الامتثال لمتطلبات النسبة الموجودة في معظم تراخيص المصدر المفتوح. يمكنك إعطاء ClearlyDefined قائمة مكونات؛ مثل سحب ملف npm package-lock.json إلى الواجهة، ثم تلقي ملف NOTICE مكتملًا بأحد مولدات الإخراج: نص أو HTML أو قالب Handlebars.js. وبما أن بيانات الامتثال متاحة لدينا بالفعل، يصبح ذلك سهلًا. ونوجه شكرًا كبيرًا إلى مشروع OSS Attribution Builder على مولد NOTICE البسيط القابل للإضافة الذي استطعنا دمجه في خدمتنا.

المشاركة

يمكنك الإسهام بطرق عدة

• أن تصبح مستخدمًا نشطًا، وتدمج الأداة في سير عمل الامتثال لديك.

• أن تراجع تنقيحات الآخرين عبر الواجهة.

• أن تشارك في الشفرة التي تستخدم Node وReact.

• أن تسأل وتجيب في القائمة البريدية أو قناة Discord.

• أن تتبرع لمبادرة OSI مع تخصيص التبرع لـClearlyDefined، لتمويل التطوير وتنقيح البيانات.

نتطلع بحماس إلى توسيع مجتمع المساهمين، ليصبح الترخيص جزءًا مفهومًا من اعتماد أي فريق للمصدر المفتوح. وللمزيد زر https://clearlydefined.io.

المراجع

  • https://www.npmjs.com/
  • https://clearlydefined.io
  • https://opensource.org
  • https://github.com/nexB/scancode-toolkit
  • https://www.fossology.org/
  • https://github.com/licensee/licensee
  • https://github.com/amzn/oss-attribution-builder
  • https://github.com/clearlydefined
  • https://clearlydefined.io/

اقتبس هذا المقال

جيف مكافر (2019). «الامتثال لتراخيص البرمجيات بجهد جماعي: مشروع ClearlyDefined». مجلة المعلوماتية، العدد 68. https://informaticsjournal.net/?p=50441

مشاركة:

مقالات ذات صلة