3.9 KiB
فرایند نگهداری فهرست تغییرات (Changelog)
فایل GanjooRazor/wwwroot/json/changelog.json فهرست تغییرات کاربرپسند این
پروژه را به زبان فارسی نگه میدارد و در پاورقی سایت («تازههای نرمافزار»)
نمایش داده میشود.
ساختار فایل
فایل یک آرایهٔ JSON است که هر عضو آن به این شکل است:
{
"date": "1405/07/05",
"description": "توضیح کاربرپسند و فارسیِ تغییر، به شکل یک جملهٔ کوتاه."
}
date: تاریخ شمسی به قالبyyyy/mm/dd.description: توضیح فارسیِ روان (نه ترجمهٔ تحتاللفظیِ پیام Commit)، مناسب برای خوانندهای که کاربر نهایی سایت است، نه توسعهدهنده.- آرایه باید به ترتیب صعودی (قدیم به جدید) در فایل نگه داشته شود؛ نمایش
معکوس (جدید به قدیم) در سمت کلاینت با جاوااسکریپت (
_FooterPartial.cshtml) انجام میشود.
فقط تغییراتی که یک کاربر عادی سایت متوجهٔ آن میشود باید وارد این فایل شوند: ویژگیهای جدید، تغییرات محسوس رابط کاربری، رفع اشکالهای قابلمشاهده، بهبودهای کارایی محسوس و غیره. تغییرات صرفاً فنی (ریفکتور، بروزرسانی وابستگیها، CI/CD، migrationهای دیتابیس، تمیزکاری کد، تایپو در کد) نباید در این فایل بیایند.
بهروزرسانی فهرست تغییرات پس از هر دوره از توسعه
از آنجا که نوشتن توضیح فارسیِ طبیعی و تشخیص اینکه کدام Commitها واقعاً برای کاربر اهمیت دارند به قضاوت نیاز دارد (نه صرفاً یک تبدیل خودکار متن)، روش پیشنهادی برای بهروزرسانی، استفاده از دستیار هوش مصنوعی (مثلاً Claude) است:
-
لیست Commitهای جدید را از زمان آخرین بهروزرسانی فهرست تغییرات بگیرید:
git log --no-merges --date=format:'%Y-%m-%d' --pretty=format:'%H|%ad|%s' \ --since="<تاریخ آخرین بهروزرسانی>" > new_commits.txt -
این فایل را همراه با فایل فعلی
changelog.jsonبه دستیار بدهید و از آن بخواهید:- Commitهای بیاهمیت برای کاربر نهایی را کنار بگذارد.
- Commitهای مرتبط با یک ویژگی/رفعاشکال را در یک مورد ادغام کند.
- برای هر مورد باقیمانده یک توضیح فارسیِ طبیعی و کوتاه بنویسد.
- تاریخ میلادی هر Commit را به شمسی (
yyyy/mm/dd) تبدیل کند. - موارد جدید را در انتهای آرایهٔ موجود در
changelog.jsonاضافه کند (نه جایگزینی کل فایل)، با حفظ ترتیب صعودی تاریخ.
-
فایل بهروزشده را جایگزین
GanjooRazor/wwwroot/json/changelog.jsonکنید و کامیت نمایید.
نمایش در سایت
پاورقی سایت (GanjooRazor/Pages/Shared/_FooterPartial.cshtml) یک لینک با
عنوان «تازههای نرمافزار» دارد که با کلیک، پنجرهٔ Modal مربوطه را باز کرده و
فایل changelog.json را با fetch بارگذاری میکند. لیست بهصورت معکوس
(جدیدترین مورد در بالا) نمایش داده میشود. سبکهای مربوط به این بخش در
GanjooRazor/wwwroot/css/p8.css (کلاسهای .changelog-*) تعریف شدهاند.