Skip to content

Repository files navigation

تكوين (Takween)

نظام البناء العربي الرسمي للغة باء (Baa).

The Arabic-first build system for Baa.

الحالة الحالية (Current Status)

  • آخر تحديث: 2026-07-18
  • إصدار تكوين: 0.1.0.
  • خط أساس باء في مساحة Eco: 0.6.0؛ runner ‏init/check/build/run/test/clean/targets وخطة البناء وبيان v1 واعتماديات المسار وGit المثبتة يمر بهذا المصرّف على Windows وLinux.
  • اتجاه المشروع: استبدال سير عمل CMake/Make لمشاريع Baa بواجهة أبسط (تكوين ...).
  • وضع تكوين: parser متوافق مع صيغة 0.1 ومع takween-manifest-v1 متعدد الأهداف؛ check/build/run/test/clean يستخدم Process API مهيكلة من Baa بلا shell، مع بناء incremental واعتماديات مسار/Git واكتشاف هدف المضيف عبر target-info-v1. يفصل takween-build-plan-v1 الخطة الحتمية المملوكة عن التنفيذ، ويعرضها الأمر تكوين خطة --جسون دون تشغيل المصرّف. يدعم v1 اعتماديات أهداف typed بالحقل يعتمد_على: تُرتب المكتبات حتميا قبل الهدف وتدخل مصادرها الخطة، مع كشف الدورات ومسار خطأ عربي كامل. ويثبت نمطي تطوير/إصدار typed، واختيار --نمط العربي، وملكية profile داخل خطة البناء، مع السماح بأنماط عربية مخصصة. تقبل خطة البناء جذور .baa و.نظم، وتختار نَظْم افتراضيا من الأمر العربي نظم على PATH؛ الحقل العربي المجمع = "غاز" هو الرجوع الصريح.
  • الاعتمادات: لا توجد stdlib محلية داخل Takween؛ يتم الاعتماد على baalib.baahd من تثبيت Baa.
  • الحزم: تصميم محلي/حتمي أولا؛ لا يوجد سجل حزم عام في 0.1.

لماذا تكوين؟

  • واجهة أوامر عربية مباشرة لمشاريع Baa.
  • ملف 0.1 بسيط أو بيان v1 typed بأقسام وقيم نص/صحيح/منطقي/مصفوفة نصوص.
  • نهج صارم في التحقق المبكر من الأخطاء.
  • تثبيت سهل للمستخدم النهائي (Installer + PATH) على ويندوز.

التثبيت للمستخدم النهائي (Windows)

  1. شغّل مثبت Takween (takween-setup-<version>.exe).
  2. فعّل خيار إضافة Takween إلى PATH أثناء التثبيت.
  3. تأكد بعد التثبيت:
تكوين --مساعدة
baa --version

تكوين يعتمد على وجود baa في PATH وعلى عقد --target-info=json من Baa.

بناء المثبت (للمطورين)

نستخدم Inno Setup Compiler لبناء مثبت ويندوز:

powershell -ExecutionPolicy Bypass -File .\scripts\build_installer.ps1 -Version 0.1.0

لبناء binary مباشرة بمصرّف محدد وقابل لإعادة الإنتاج:

.\scripts\build_takween.ps1 -Version 0.1.0 -BaaPath C:\path\to\baa.exe -BaaStdlibPath C:\path\to\stdlib
  • الملف الناتج: dist\installer\takween-setup-<version>.exe
  • إذا كان ISCC.exe خارج المسار الافتراضي، مرره صراحة عبر -IsccPath.

أوامر CLI (MVP)

تكوين تهيئة      # init
تكوين فحص        # check, diagnostics-json-v1
تكوين خطة --جسون # deterministic takween-build-plan-v1
تكوين خطة --جسون --نمط إصدار # release profile without Latin syntax
تكوين بناء       # build
تكوين تشغيل      # run
تكوين اختبار     # test: تشغيل كل أهداف الاختبار
تكوين أهداف --جسون # targets: takween-targets-v1
تكوين بناء --ملف_أحداث أحداث.jsonl # takween-build-events-v1 دون تلويث stdout
تكوين تنظيف      # clean
تكوين --إصدار    # version

يوجد alias متوافق: takween.

يبني تكوين بناء مباشرة إلى مجلد المخرجات، ويستخدم كاش Baa incremental تحت المخرج/.takween-cache، ويكتب المخرج/build-manifest.json. الحقول الحرة مثل أعلام_إضافية مرفوضة تنفيذيا حتى تستبدل بخيارات typed.

بعد build ناجح يكتب تكوين أيضا المخرج/build-cache.json بعقد takween-content-cache-v1. المفتاح SHA-256 يجمع خطة البناء وإصدار Baa والهدف والأعلام وتجزئات المصادر والرؤوس وتكوين.قفل وبصمة نظم الكاملة. يعيد Baa استخدام كائنات مصادر باء ومصادر .نظم المباشرة فقط عندما تتطابق nazm-api-v1 وإصدار نظم وهضم قدراته؛ يبقى الربط منفذا ومعلنا. غياب البصمة أو فسادها يفشل الإيصال بدلا من ادعاء إصابة زائفة. تفاصيل العقد في مستندات/CONTENT_CACHE_V1.md.

يعرض تكوين خطة --جسون [اسم_هدف] نفس argv المملوكة التي سيستهلكها البناء من دون إنشاء مجلد المخرج أو تشغيل Baa. المخطط نقي بعد اكتمال الاكتشاف وحل الاعتماديات، ويثبت --assembler=nazm عندما لا يختار البيان مجمعا أو يكتب المجمع = "نظم"، ويثبت --assembler=gas فقط عند المجمع = "غاز". ويعرض كذلك working_directory وsource_files وinclude_paths كحقول مهيكلة تستهلكها أدوات مثل Baa-LSP دون تحليل البيان أو تفكيك argv.

النمط الافتراضي تطوير يثبت -O1 --verify، وإصدار يثبت -O2 --verify. يمكن للبيان تخصيصهما أو إضافة [الأنماط.<اسم_عربي>] بحقل التحسين typed والتحقق الاختياري، ثم يختار المستخدم --نمط <الاسم> في خطة/بناء/فحص/تشغيل/اختبار. تسجل الخطة الاسم والقيم المحلولة ولا تستعيرها من parser.

تدعم [مساحة_العمل] أعضاء حزم explicit. يعرض تكوين مساحة --جسون عقد takween-workspace-v1، ويبني/يختبر --حزمة <اسم> أو --كل_الحزم في cwd منفصل لكل عضو مع تمرير --نمط و--مقفل. globs والمساحات المتداخلة مرفوضة صراحة. انظر مستندات/WORKSPACE_V1.md.

يُكتشف v1 عندما يبدأ أول سطر فعال بقسم [ ... ]. يدعم التنفيذ الحالي عدة أهداف تنفيذي/اختبار/مكتبة، واختيار الهدف في build/check/run، وتشغيل هدف اختبار واحد أو كل أهداف الاختبار. الحقل يعتمد_على = ["مكتبة"] يبني DAG أهداف حتميا ويضم مصادر المكتبات قبل الهدف المختار؛ لا يقبل edge إلى تنفيذي/اختبار ولا دورة. يدعم كذلك بناء/نمطا typed واعتماديات المسار وGit المتعدية. تتطلب اعتمادية Git حقلي git وcommit مثبتا من 40 أو 64 خانة hex صغيرة؛ لا تقبل branch أو tag. يكتب check/build/run ملف تكوين.قفل الحتمي وفق takween-lock-v1، ويعيد استخدام checkout معنون بالـ commit تحت .takween/packages. تحل اعتماديات الإصدار قيود SemVer من فهرس محلي، وتفك takween-archive-v1 الآمن إلى cache معنون بـSHA-256. ينفذ تحقق --بدون_شبكة التحقق الصارم بلا جلب، وينسخ توريد الحزم حتميا، ويسجل القفل قيد Baa والهدف والقدرات والاختيار الدقيق. أسماء المشاريع والحزم والاعتماديات عربية فقط. نوع المكتبة ظاهر في الفهرس لكنه غير قابل للبناء مستقلا بعد؛ وتبقى globs والسجل العام والنشر مراحل لاحقة. فحص/check يبقى عقد Baa JSON لمصادر .baa؛ وجود جذر .نظم يعيد حاليا غير مدعوم 3 حتى يوفر نظم عقد تشخيصات JSON.

[الاعتماديات.صلة]
git = "https://example.invalid/sila.git"
commit = "0123456789abcdef0123456789abcdef01234567"

مثال هدف يمرر مصادر باء المولدة ومصادر نظم المباشرة إلى نظم:

[الأهداف.تطبيقي]
النوع = "تنفيذي"
المدخل = "المصدر/الرئيسية.baa"
المصادر = ["المصدر/مساعدة.نظم"]
يعتمد_على = ["هندسة"]

[الأهداف.هندسة]
النوع = "مكتبة"
المدخل = "المصدر/هندسة.baa"

[البناء]
المخرج = "بناء"

نَظْم هو الافتراضي؛ أضف المجمع = "غاز" فقط لبناء رجوعي مقصود.

مثال مشروع.تكوين (MVP)

الاسم: تطبيقي_الأول
الإصدار: 1.0.0
النوع: تنفيذي
المصدر: المصدر/
المخرج: بناء/
ملفات: الرئيسية.baa
التحسين: ١

التوثيق

الارتباط بمشروع Baa

About

نظام البناء العربي الرسمي للغة باء (Baa).

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages