عن المشروع

Zinnia هي واجهة أمامية رسومية للتعامل مع أرشيفات 7-Zip، تم بناؤها باستخدام Tauri وتوزع لأنظمة Windows وmacOS وLinux. يقدمها ملف README كأداة أرشفة لسطح المكتب يتم تشغيلها من خلال واجهة مستخدم رسومية أصلية بدلاً من سطر الأوامر، مع تركيز في أعمال التغليف والتثبيت لجعل عمليات الأرشفة متاحة مباشرة من نظام التشغيل نفسه. دعم المنصات المذكور في README: نظام macOS 26 أو أحدث، مع إصدار عالمي يغطي أجهزة Intel وApple silicon القادرة على تشغيل هذا الإصدار؛ نظام Windows 10 إصدار 2004 (بناء 19041) أو أحدث على x64 أو ARM64؛ ونظام Linux x64 على Ubuntu 24.04+ أو Debian 13+ أو Fedora 43+ (أو توزيعة متوافقة تحتوي على وقت تشغيل WebKitGTK المطلوب). تشحن إصدارات Linux العامة حزم AppImage وDEB وRPM وFlatpak sideloaded بنظام x64، بينما يتم نشر AppImage/DEB/RPM لنظام ARM64 فقط عند بنائها صراحةً لإصدار معين، ويبقى Flatpak بنظام x64. هناك تركيز ملحوظ على التكامل مع نظام التشغيل. تقوم النسخ المعبأة بتسجيل أنواع ملفات الأرشيف الشائعة. في Windows، تضيف عمليات بناء NSIS أفعال Explorer لكل مستخدم لـ "Open with Zinnia" و"Extract with Zinnia" و"Compress with Zinnia" كخيار احتياطي كلاسيكي، بما في ذلك المسار عبر "Show more options" في Explorer. كما تقوم إصدارات NSIS الموقعة لنظام Windows بتسجيل قائمة سياق حديثة لنظام Windows 11 من خلال MSIX بهوية متفرقة بالإضافة إلى zinnia_shell.dll، مما يوفر قائمة فرعية لـ Zinnia وإدخال Extract في المستوى الأعلى للأرشيفات؛ وبمجرد نجاح التسجيل الحديث، يتم إزالة الأفعال الكلاسيكية لتجنب التراكم، وتظل هي الخيار الاحتياطي في حال فشل تسجيل الحزمة. يشير README إلى أن Zinnia تظل تثبيت NSIS Win32 عادي لكل مستخدم وأن MSIX ليس حزمة تطبيق Store/AppX بل يمنح فقط هوية الحزمة حتى يتمكن Explorer من تحميل shell DLL. في Linux، تتضمن حزم deb وrpm وFlatpak إجراءات Open وExtract وCompress لسطح المكتب. في macOS، يمكن للمستخدمين اختيار Zinnia من خلال تدفق Open With/Get Info الافتراضي في Finder، ويتم توجيه عمليات تشغيل الأرشيف إلى نافذة استخراج سريعة. كما تعرض النسخ المعبأة عناصر قائمة سياق Finder Sync وFinder Services لـ "Extract with Zinnia" و"Compress with Zinnia"؛ حيث يراقب Finder Sync فقط سطح المكتب، والمستندات، والتنزيلات، والأفلام، والموسيقى، والصور، والمجلدات المثبتة حالياً، مع اقتراح استخدام Finder Services للملفات في أماكن أخرى. تعليمات التطوير تقليدية لمشروع Tauri: npm install، وnpm run tauri:dev، وcargo doc مقابل src-tauri/Cargo.toml. تعمل أوامر Cargo المباشرة دون خطوة تحضير منفصلة لأن نص بناء Tauri يقوم بتحديث الثنائيات الجانبية (sidecar binaries) المتجاهلة من الأصول المتتبعة قبل تشغيل البناء الأصلي. نصوص البناء مسمى حسب المنصة: build:win، وbuild:mac:universal يليه build:mac:zip، وbuild:linux (أو build:linux:x64)، وbuild:linux:arm64 لبيئات ARM64 الأصلية، وflatpak:bundle. يتوفر توقيع الإصدارات من خلال نص GPG. يوثق README أيضاً عملية التحديث والإصدار بالتفصيل: يتم تكوين المحدث في src-tauri/tauri.conf.json؛ تقوم CI بتشغيل الاختبارات والفحوصات على Linux وWindows وmacOS ولكنها لا تبني أبداً ثنائيات الإصدار، ولا تنشر الإصدارات، ولا تستهلك أسرار توقيع الإصدارات. تكون الإصدارات الموقعة صريحة عمداً، حيث تقوم نصوص الإصدار الخاصة بالمنصة بتجهيز بيانات المحدث (updater manifests)، والقطع الأثرية (artifacts)، وملفات checksum والتواقيع المنفصلة في إصدار GitHub مسودة لنفس الإصدار. تقوم نصوص استمرار Beta بمزامنة بيانات beta الخاصة بجهاز VM تلقائياً مع أحدث تغذية إصدار مستقر، بما في ذلك عندما يكون الوسم (tag) لا يزال مسودة، لأن عملاء beta يستطلعون التغذية المباشرة؛ ويوجد نص مزامنة منفصل للاسترداد. يتم توفير خطوات التحقق للمسودات والإصدارات المنشورة، والتحقق من مصفوفة الهدف المتوقعة، والإصدار، وتواقيع قطع المحدث وchecksums. يتضمن التوجيه كيفية التعامل مع معرفات مسودات GitHub المؤقتة غير الموسومة، واستئناف جلسة تحضير إصدار موجودة مرتبطة بـ commit محدد، وملفات lockfiles، والمنصة، والبنية، وسلسلة الأدوات، ونصوص نشر الإصدار التي تنسخ إصدار الحزمة في البيانات الأصلية، وعناوين URL لتنزيل سجل التغييرات، وبيانات AppStream الوصفية. يختتم README بالتحذير من دفع وسم الإصدار قبل وجود كل قطعة أثرية للمنصة والتحقق من توقيع المحدث وchecksum الخاص بها. يتم الإشارة إلى وثائق المشروع الإضافية من خلال ARCHITECTURE.md وCONTRIBUTING.md وSECURITY.md، إلى جانب ملاحظات Windows shell وقائمة سياق QA في المستودع.