{
  "title": "سیاست تغییرات",
  "slug": "team/platform/standards/changelog-policy",
  "url": "/docs/team/platform/standards/changelog-policy",
  "frontmatter": {
    "layout": "doc",
    "title": "سیاست تغییرات",
    "description": "استاندارد CHANGELOG — ساختار Keep a Changelog، بخش‌ها و چرخه به‌روزرسانی",
    "version": "1.0.0",
    "status": "PRIVATE",
    "author": "xoxxel",
    "owner": "xoxxel",
    "created_at": "2026-06-07",
    "updated_at": "2026-06-07",
    "tags": "",
    "reviewers": ""
  },
  "sections": [
    {
      "level": 1,
      "heading": "سیاست تغییرات",
      "content": "**Changelog Policy**\n\nنسخه 1.0 | الزامی برای همه سرویس‌ها و پکیج‌ها\n\n---"
    },
    {
      "level": 2,
      "heading": "1. الزامات",
      "content": "هر سرویس و هر پکیج باید فایل `CHANGELOG.md` در ریشه خود داشته باشد.\n\n**اهداف:**\n- ردیابی تاریخچه تغییرات هر سرویس\n- کمک به بررسی PRها و انتشارات\n- اطلاع‌رسانی شفاف به سایر تیم‌ها\n\n---"
    },
    {
      "level": 2,
      "heading": "2. ساختار استاندارد",
      "content": "الگوی زیر از **Keep a Changelog** پیروی می‌کند:\n\n```markdown"
    },
    {
      "level": 1,
      "heading": "CHANGELOG",
      "content": "تمام تغییرات قابل توجه این سرویس در اینجا مستند می‌شود.\n\nقالب بر اساس [Keep a Changelog](https://keepachangelog.com/) \nو این پروژه از [Semantic Versioning](https://semver.org/) پیروی می‌کند.\n\n---"
    },
    {
      "level": 2,
      "heading": "[نسخه منتشر نشده] - Unreleased",
      "content": ""
    },
    {
      "level": 3,
      "heading": "Added",
      "content": "-"
    },
    {
      "level": 3,
      "heading": "Changed",
      "content": "-"
    },
    {
      "level": 3,
      "heading": "Fixed",
      "content": "-"
    },
    {
      "level": 3,
      "heading": "Deprecated",
      "content": "-"
    },
    {
      "level": 3,
      "heading": "Removed",
      "content": "- \n\n---"
    },
    {
      "level": 2,
      "heading": "[1.0.0] - 2024-01-15",
      "content": ""
    },
    {
      "level": 3,
      "heading": "Added",
      "content": "- ایجاد اولیه سرویس\n- پیاده‌سازی CRUD سفارش\n- انتشار رویداد `order.created` و `order.paid`"
    },
    {
      "level": 3,
      "heading": "Fixed",
      "content": "- رفع باگ محاسبه مدت گارانتی\n\n---"
    },
    {
      "level": 2,
      "heading": "[0.1.0] - 2024-01-01",
      "content": ""
    },
    {
      "level": 3,
      "heading": "Added",
      "content": "- Blueprint اولیه سرویس\n- مستندات معماری\n```\n\n---"
    },
    {
      "level": 2,
      "heading": "3. بخش‌های changelog",
      "content": "| بخش | زمان استفاده | مثال |\n|---|---|---|\n| `Added` | افزودن ویژگی جدید | `Added: اضافه کردن endpoint پرداخت` |\n| `Changed` | تغییر در قابلیت موجود | `Changed: به‌روزرسانی فرمت پاسخ خطا` |\n| `Fixed` | رفع باگ | `Fixed: رفع باگ محاسبه مالیات` |\n| `Deprecated` | اعلام منسوخ شدن | `Deprecated: /v1/orders/status جایگزین می‌شود` |\n| `Removed` | حذف قابلیت | `Removed: حذف endpoint قدیمی /v1/legacy` |\n| `Security` | رفع آسیب‌پذیری | `Security: رفع نشت توکن در لاگ‌ها` |\n| `Performance` | بهبود عملکرد | `Performance: کاهش ۵۰٪ زمان کوئری سفارشات` |\n\n---"
    },
    {
      "level": 2,
      "heading": "4. قوانین",
      "content": "| قانون | توضیح |\n|---|---|\n| ثبت هر تغییر رفتاری | هر PR که رفتار سرویس را تغییر می‌دهد باید CHANGELOG را به‌روز کند |\n| تاریخ انتشار | نسخه منتشر شده باید تاریخ داشته باشد: `[1.2.0] - 2024-06-15` |\n| نسخه منتشر نشده | تغییرات در جریان زیر `[نسخه منتشر نشده]` ثبت می‌شوند |\n| پیوند به PR | هر مدخل می‌تواند شماره PR داشته باشد: `(#42)` |\n| زبان | CHANGELOG به انگلیسی نوشته می‌شود |\n| مرتب‌سازی | جدیدترین نسخه در بالای فایل قرار می‌گیرد |\n| انتشار بدون CHANGELOG | انتشار بدون CHANGELOG به‌روز شده معتبر نیست |\n\n---"
    },
    {
      "level": 2,
      "heading": "5. چرخه به‌روزرسانی",
      "content": "```mermaid\nflowchart LR\n    A[توسعه ویژگی] --> B[به‌روزرسانی CHANGELOG]\n    B --> C[Pull Request]\n    C --> D[Review]\n    D --> E[Merge به Main]\n    E --> F[انتشار نسخه]\n    F --> G[تگ نسخه]\n```\n\n---"
    },
    {
      "level": 2,
      "heading": "6. مثال واقعی",
      "content": "```markdown"
    },
    {
      "level": 2,
      "heading": "[نسخه منتشر نشده]",
      "content": ""
    },
    {
      "level": 3,
      "heading": "Added",
      "content": "- اضافه کردن timeout قابل تنظیم برای پرداخت (#47)\n- انتشار رویداد جدید `payment.timeout` (#48)"
    },
    {
      "level": 3,
      "heading": "Changed",
      "content": "- به‌روزرسانی وابستگی NATS به نسخه 1.4 (#45)"
    },
    {
      "level": 3,
      "heading": "Fixed",
      "content": "- رفع race condition در آزادسازی escrow (#46)\n```\n\n---"
    },
    {
      "level": 2,
      "heading": "7. ارتباط با Blueprint",
      "content": "- در فاز **Blueprint**، اولین نسخه changelog با `[0.1.0]` و `Added: Blueprint اولیه` شروع می‌شود\n- پس از توسعه کامل، `[1.0.0]` منتشر می‌شود\n\n---"
    },
    {
      "level": 2,
      "heading": "خلاصه",
      "content": "| مورد | وضعیت |\n|---|---|\n| وجود CHANGELOG.md | اجباری |\n| ثبت هر تغییر | اجباری |\n| به‌روزرسانی در PR | اجباری |\n| تاریخ انتشار | اجباری |\n| پیروی از Semantic Versioning | اجباری |"
    }
  ]
}