توسعه

اگر این را می‌خوانید، احتمالاً به یادگیری نحوه مشارکت در پایگاه کد Odoo علاقه‌مند هستید. چه این مورد صدق کند و چه به طور تصادفی به اینجا رسیده باشید، ما در خدمت شما هستیم!

وقتی احساس آمادگی کردید، به بخش راه‌اندازی محیط بروید تا سفر خود را در مشارکت در توسعه Odoo آغاز کنید.

راه‌اندازی محیط

دستورالعمل‌های زیر به شما کمک می‌کنند محیط خود را برای ایجاد تغییرات محلی در پایگاه کد و سپس ارسال آن‌ها به GitHub آماده کنید. اگر قبلاً این مرحله را انجام داده‌اید، این بخش را رد کرده و به اولین مشارکت خود را انجام دهید بروید.

  1. ابتدا، باید یک حساب GitHub ایجاد کنید. Odoo از GitHub برای مدیریت کد منبع محصولات خود استفاده می‌کند و این جایی است که شما تغییرات خود را اعمال کرده و برای بازبینی ارسال خواهید کرد.

  2. یک کلید SSH جدید تولید کرده و آن را در حساب GitHub خود ثبت کنید.

  3. به github.com/odoo/odoo بروید و روی دکمه Fork در گوشه بالا-راست کلیک کنید تا یک fork (your own copy) از مخزن در حساب خود ایجاد کنید. اگر به آن دسترسی دارید، همین کار را با github.com/odoo/enterprise انجام دهید. این یک کپی از پایگاه کد ایجاد می‌کند که می‌توانید بدون تأثیر بر پایگاه کد اصلی در آن تغییراتی ایجاد کنید. اگر در Odoo کار می‌کنید این مرحله را رد کنید.

  4. Git را نصب کنید. این یک ابزار command-line (a text interface) است که اجازه می‌دهد تاریخچه تغییرات اعمال‌شده روی یک فایل را ردیابی کنید و مهم‌تر از آن، روی نسخه‌های مختلف آن فایل به‌طور هم‌زمان کار کنید. این بدان معنی است که نیازی به نگرانی درباره بازنویسی کار در حال انتظار شخص دیگری هنگام ایجاد تغییرات نیست.

    بررسی کنید که مسیر نصب Git در متغیر PATH سیستم شما گنجانده شده باشد.

    از راهنمای به‌روزرسانی متغیر PATH در Linux و macOS با مسیر نصب Git (به طور پیش‌فرض /usr/bin/git) پیروی کنید.

  5. Git را پیکربندی کنید تا خود را به‌عنوان نویسنده مشارکت‌های آینده‌تان شناسایی کنید. همان آدرس ایمیلی را که برای ثبت‌نام در GitHub استفاده کردید وارد کنید.

    $ git config --global user.name "Your Name"
    $ git config --global user.email "youremail@example.com"
    
  6. Odoo را از sources نصب کنید. اطمینان حاصل کنید sources را از طریق Git با SSH دریافت می‌کنید.

  7. Git را پیکربندی کنید تا تغییرات را به fork(های) خود push کند به‌جای codebase اصلی. اگر در Odoo کار می‌کنید، Git را پیکربندی کنید تا تغییرات را به shared forks ایجاد شده در حساب odoo-dev push کند.

    در دستور زیر، <your_github_account> را با نام حساب GitHub که fork(ها) را روی آن ایجاد کرده‌اید جایگزین کنید.

    $ cd /CommunityPath
    $ git remote add dev git@github.com:<your_github_account>/odoo.git
    

    اگر به odoo/enterprise دسترسی دارید، remote مربوطه را نیز پیکربندی کنید.

    $ cd /EnterprisePath
    $ git remote add dev git@github.com:<your_github_account>/enterprise.git
    
  8. تمام شد! شما آماده اولین مشارکت خود هستید.

اولین مشارکت خود را انجام دهید

مهم

  • توسعه Odoo می‌تواند برای مبتدیان چالش‌برانگیز باشد. توصیه می‌کنیم قبل از مشارکت، به اندازه کافی دانش داشته باشید که یک ماژول کوچک کد بزنید. اگر چنین نیست، مدتی را برای مرور آموزش‌های توسعه‌دهنده صرف کنید تا کاستی‌ها را برطرف کنید.

  • برخی از مراحل این راهنما نیاز به آشنایی با Git دارند. در اینجا چند آموزش و یک آموزش تعاملی وجود دارد اگر در نقطه‌ای گیر کردید.

حالا که محیط شما راه‌اندازی شده، می‌توانید شروع به مشارکت در codebase کنید. در یک ترمینال، به دایرکتوری که Odoo را از sources نصب کرده‌اید بروید و راهنمای زیر را دنبال کنید.

  1. نسخه‌ای از Odoo را که می‌خواهید روی آن تغییراتی اعمال کنید انتخاب کنید. به یاد داشته باشید که مشارکت‌هایی که نسخه پشتیبانی‌نشده Odoo را هدف قرار می‌دهند پذیرفته نمی‌شوند. این راهنما فرض می‌کند که تغییرات Odoo 19 را هدف قرار می‌دهند، که مربوط به branch 19.0 است.

  2. یک branch جدید را با شروع از branch 19.0 ایجاد کنید. نام branch را با base branch پیشوند دهید: 19.0-.... اگر در Odoo کار می‌کنید، نام branch را با Odoo handle خود پسوند دهید: 19.0-...-xyz.

    Example

    $ git switch -c 19.0-fix-invoices
    
    $ git switch -c 19.0-fix-invoices-xyz
    
  3. Odoo CLA را امضا کنید اگر قبلاً انجام نداده‌اید. اگر در Odoo کار می‌کنید این مرحله را رد کنید.

  4. تغییرات مورد نظر را در codebase اعمال کنید. هنگام کار روی codebase، این قوانین را دنبال کنید:

    • تغییرات خود را متمرکز و خاص نگه دارید. بهتر است در یک زمان روی یک قابلیت یا اصلاح باگ خاص کار کنید نه اینکه به‌طور هم‌زمان چندین تغییر نامرتبط را مدیریت کنید.

    • هنگام کار در branch دیگری غیر از master، به stable policy احترام بگذارید.

    • از راهنمای کدنویسی پیروی کنید.

    • تغییرات خود را به‌طور کامل آزمایش کنید و تست بنویسید تا اطمینان حاصل کنید همه چیز همان‌طور که انتظار می‌رود کار می‌کند و regressions یا عواقب ناخواسته‌ای وجود ندارد.

  5. تغییرات خود را commit کنید. یک پیام commit واضح بنویسید همان‌طور که در Git guidelines دستور داده شده.

    $ git add .
    $ git commit
    
  6. تغییر خود را به فورک خود push کنید، که برای آن نام مستعار remote به نام dev اضافه کرده‌ایم.

    Example

    $ git push -u dev 19.0-fix-invoices-xyz
    
  7. یک PR در GitHub باز کنید تا تغییرات خود را برای بازبینی ارسال کنید.

    1. بسته به اینکه تغییرات شما کدام codebase را هدف قرار می‌دهد، به compare page of the odoo/odoo codebase یا compare page of the odoo/enterprise codebase بروید.

    2. 19.0 را به عنوان پایه انتخاب کنید.

    3. روی compare across forks کلیک کنید.

    4. <your_github_account>/odoo یا <your_github_account>/enterprise را برای مخزن head انتخاب کنید. <your_github_account> را با نام حساب GitHub که fork را روی آن ایجاد کرده‌اید جایگزین کنید یا با odoo-dev اگر در Odoo کار می‌کنید.

    5. تغییرات خود را بازبینی کرده و روی دکمه Create pull request کلیک کنید.

    6. چک‌باکس Allow edits from maintainer را علامت بزنید. اگر در Odoo کار می‌کنید، این مرحله را رد کنید.

    7. توضیحات را تکمیل کرده و دوباره روی دکمه Create pull request کلیک کنید.

  8. در پایین صفحه، وضعیت قابلیت ادغام را بررسی کرده و هر مشکلی را برطرف کنید.

  9. به‌محض اینکه PR شما آماده ادغام است، یکی از اعضای تیم Odoo به‌طور خودکار برای بازبینی اختصاص داده می‌شود. اگر بازبین سؤالات یا اظهارنظرهایی داشته باشد، آن‌ها را به‌عنوان نظرات ارسال می‌کند و شما از طریق ایمیل مطلع می‌شوید. آن نظرات باید برای پیشرفت مشارکت حل شوند.

  10. وقتی تغییرات شما تأیید شد، بازبین آن‌ها را ادغام می‌کند و پس از به‌روزرسانی بعدی کد برای همه کاربران Odoo در دسترس قرار می‌گیرند!