مهاجرت و به‌روزرسانی

این بخش برای وقتی است که نسخه جدیدی از قالب می‌گیرید و می‌خواهید بدون از دست دادن تغییرات خودتان ارتقا دهید.

قبل از شروع

  1. از پروژه خود یک شاخه بسازید: git checkout -b upgrade/novaadmin-1.1
  2. فهرست تغییرات خودتان را بنویسید (کدام فایل‌ها را دست زده‌اید؟).
  3. npm run qa:all را روی وضعیت فعلی اجرا کنید تا مطمئن شوید نقطه شروع سالم است.

فایل‌هایی که در نسخه جدید بازنویسی می‌شوند

مسیروضعیتتوصیه
src/pages/**تولیدشدههرگز ویرایش نکنید
src/locales/generated.jsتولیدشدههرگز ویرایش نکنید
src/data/navigation.jsتولیدشدههرگز ویرایش نکنید
src/partials/docs/*.htmlتولیدشده از docs/به‌جای آن docs/*.md (و docs/en، docs/ar) را ویرایش کنید
public/robots.txt, public/sitemap.xmlتولیدشدهدر src/config/config.js تنظیم کنید
tools/**ابزارتغییرات خود را با diff مقایسه کنید
src/scss/**, src/js/**منبعتغییرات خود را نگه دارید و با نسخه جدید ادغام کنید

روش ارتقا (گام‌به‌گام)

# ۱. نسخه جدید را در پوشه‌ای جدا باز کنید
unzip NOVAADMIN-1.1.0.zip -d /tmp/nova-1.1

# ۲. ابزارها، استایل و اسکریپت‌ها را به‌روز کنید
rsync -av --exclude=node_modules /tmp/nova-1.1/tools/ ./tools/
rsync -av /tmp/nova-1.1/src/scss/ ./src/scss/
rsync -av /tmp/nova-1.1/src/js/core/ ./src/js/core/

# ۳. وابستگی‌ها را تازه کنید
npm install

# ۴. صفحه‌ها و دارایی‌ها را از نو بسازید
npm run gen:all && npm run build

# ۵. کنترل کیفیت
npm run qa:all

مقایسه تغییرات خودتان

اگر پروژه را با گیت نگه می‌دارید، ساده‌ترین راه این است که تغییرات خود را در چند مسیر محدود نگه دارید:

src/partials/pages/**      بدنه‌های اختصاصی
src/js/pages/**            کنترل‌کننده‌های اختصاصی
src/data/**                داده‌های واقعی شما
src/config/config.js       برند و پیش‌فرض‌ها
src/scss/base/_palettes.scss   پالت سازمانی

هر تغییری بیرون از این فهرست را در فایل UPGRADE-NOTES.md پروژه خودتان ثبت کنید تا در ارتقا یادتان بماند.

تغییرات شکننده را چطور بفهمم؟

نشانهمعنیکار
خطای import در کنسولنام یا مسیر فایل تغییر کردهبا git log تفاوت را ببینید و مسیر را اصلاح کنید
کلاس بی‌استایلکلاس حذف یا تغییرنام یافتهnpm run qa:links لیست را می‌دهد
توکن {{...}} در خروجیتوکن جدید اضافه شدهنقشه توکن‌های tools/nova-plugin.mjs را به‌روز کنید
انیمیشن یا رفتار دوگانهدو نسخه از یک ماژول بار شدهimport تکراری را حذف کنید

بازگشت به عقب

git checkout -- .
# یا
git reset --hard upgrade/novaadmin-1.0      # اگر شاخه را قبل از ارتقا ساخته باشید
نکته: قبل از هر ارتقا یک بار npm run build بگیرید و خروجی dist/ را نگه دارید؛ اگر مشکلی پیش آمد، همان خروجی را می‌توانید روی هاست بگذارید تا فرصت بررسی داشته باشید
هشدار: فایل‌های تولیدشده را در گیت commit نکنید (به‌جز زمانی که بسته نهایی می‌سازید)، وگرنه در هر ارتقا با تعارض‌های پرحجم روبه‌رو می‌شوید

Migration and upgrades

This section is for when you receive a new version of the template and want to upgrade without losing your own changes.

Before you start

  1. Create a branch in your project: git checkout -b upgrade/novaadmin-1.1
  2. Write down your own changes (which files have you touched?).
  3. Run npm run qa:all on the current state to make sure the starting point is healthy.

Files that are rewritten in a new version

PathStatusRecommendation
src/pages/**GeneratedNever edit
src/locales/generated.jsGeneratedNever edit
src/data/navigation.jsGeneratedNever edit
src/partials/docs/*.htmlGenerated from docs/Edit docs/*.md (and docs/en, docs/ar) instead
public/robots.txt, public/sitemap.xmlGeneratedConfigure in src/config/config.js
tools/**ToolingCompare your changes with a diff
src/scss/**, src/js/**SourceKeep your changes and merge them with the new version

Upgrade procedure (step by step)

# 1. extract the new version into a separate folder
unzip NOVAADMIN-1.1.0.zip -d /tmp/nova-1.1

# 2. update tools, styles and scripts
rsync -av --exclude=node_modules /tmp/nova-1.1/tools/ ./tools/
rsync -av /tmp/nova-1.1/src/scss/ ./src/scss/
rsync -av /tmp/nova-1.1/src/js/core/ ./src/js/core/

# 3. refresh dependencies
npm install

# 4. rebuild pages and assets
npm run gen:all && npm run build

# 5. quality control
npm run qa:all

Comparing your own changes

If you keep the project in git, the simplest approach is to keep your changes in a few limited paths:

src/partials/pages/**      custom page bodies
src/js/pages/**            custom controllers
src/data/**                your real data
src/config/config.js       brand and defaults
src/scss/base/_palettes.scss   brand palette

Record any change outside this list in your project's own UPGRADE-NOTES.md so you remember it when upgrading.

How do I spot breaking changes?

SymptomMeaningAction
Import error in the consoleA file name or path changedCheck the difference with git log and fix the path
Unstyled classA class was removed or renamednpm run qa:links gives you the list
A {{...}} token in the outputA new token was addedUpdate the token map in tools/nova-plugin.mjs
Doubled animation or behaviourTwo copies of one module were loadedRemove the duplicate import

Rolling back

git checkout -- .
# or
git reset --hard upgrade/novaadmin-1.0      # if you created the branch before upgrading
Tip: before every upgrade, run npm run build once and keep the dist/ output; if something goes wrong, you can put that output on the host while you investigate
Warning: do not commit generated files to git (except when building the final package), otherwise you will face large conflicts on every upgrade

الترحيل والتحديث

هذا القسم لحين تحصل على إصدار جديد من القالب وتريد الترقية دون فقدان تغييراتك.

قبل البدء

  1. أنشئ فرعاً في مشروعك: git checkout -b upgrade/novaadmin-1.1
  2. دوّن قائمة تغييراتك (ما الملفات التي عدّلتها؟).
  3. نفّذ npm run qa:all على الحالة الحالية للتأكد من سلامة نقطة البداية.

الملفات التي تُعاد كتابتها في الإصدار الجديد

المسارالحالةالتوصية
src/pages/**مولّدلا تعدّله أبداً
src/locales/generated.jsمولّدلا تعدّله أبداً
src/data/navigation.jsمولّدلا تعدّله أبداً
src/partials/docs/*.htmlمولّد من docs/عدّل بدلاً منه docs/*.md (وdocs/en وdocs/ar)
public/robots.txt, public/sitemap.xmlمولّداضبطه في src/config/config.js
tools/**أدواتقارن تغييراتك بأداة diff
src/scss/**, src/js/**مصدراحتفظ بتغييراتك وادمجها مع الإصدار الجديد

طريقة الترقية (خطوة بخطوة)

# ١. افتح الإصدار الجديد في مجلد منفصل
unzip NOVAADMIN-1.1.0.zip -d /tmp/nova-1.1

# ٢. حدّث الأدوات والأنماط والسكربتات
rsync -av --exclude=node_modules /tmp/nova-1.1/tools/ ./tools/
rsync -av /tmp/nova-1.1/src/scss/ ./src/scss/
rsync -av /tmp/nova-1.1/src/js/core/ ./src/js/core/

# ٣. جدّد الاعتماديات
npm install

# ٤. أعد بناء الصفحات والأصول
npm run gen:all && npm run build

# ٥. ضبط الجودة
npm run qa:all

مقارنة تغييراتك

إذا كنت تدير المشروع بـ git، فأبسط طريقة هي إبقاء تغييراتك في مسارات محدودة:

src/partials/pages/**      محتويات الصفحات المخصصة
src/js/pages/**            المتحكمات المخصصة
src/data/**                بياناتك الحقيقية
src/config/config.js       العلامة والقيم الافتراضية
src/scss/base/_palettes.scss   لوحة ألوان المؤسسة

سجّل كل تغيير خارج هذه القائمة في ملف UPGRADE-NOTES.md الخاص بمشروعك لتتذكره عند الترقية.

كيف أكتشف التغييرات الكاسرة؟

العَرَضالمعنىالإجراء
خطأ استيراد في وحدة التحكمتغيّر اسم ملف أو مسارهاطّلع على الفرق بـ git log وصحّح المسار
فئة بلا أنماطحُذفت الفئة أو أُعيدت تسميتهايعطيك npm run qa:links القائمة
رمز {{...}} في المخرجاتأُضيف رمز جديدحدّث خريطة الرموز في tools/nova-plugin.mjs
حركة أو سلوك مزدوجحُمّلت نسختان من وحدة واحدةاحذف الاستيراد المكرر

التراجع

git checkout -- .
# أو
git reset --hard upgrade/novaadmin-1.0      # إذا أنشأت الفرع قبل الترقية
ملاحظة: قبل كل ترقية نفّذ npm run build مرة واحدة واحتفظ بمخرجات dist/؛ فإن حدثت مشكلة يمكنك وضع تلك المخرجات على الاستضافة ريثما تفحص الأمر
تحذير: لا تُودِع (commit) الملفات المولّدة في git (إلا عند بناء الحزمة النهائية)، وإلا فستواجه تعارضات ضخمة في كل ترقية