第16章:完善您的代碼并提交PR?
在之前的章節中,我們學習了如何創建一個完全功能的業務應用程序?,F在,我們將準備好我們的代碼以便分享,并學習如何分享它。
編碼規范?
我們將開始重構代碼以符合Odoo編碼準則。這些準則旨在提高Odoo應用程序代碼的質量。
參考 : 您可以在 編碼規范 中找到Odoo編碼指南。
Exercise
優化你的代碼。
重構你的代碼以遵守編碼規范。不要忘記運行你的代碼檢查工具,并遵守模塊結構、變量命名、方法命名規范、模型屬性順序和 XML ID 等規范。
你的第一個拉取請求(PR)?
以下內容僅供Odoo員工使用。所有提到的存儲庫均不可供第三方訪問。
現在你的代碼符合Odoo代碼規范并且已經完善,讓我們與他人分享它吧。
配置開發存儲庫?
我們將首先為“custom”文件夾創建一個git開發環境,就像我們在“odoo”和“enterprise”開始時所做的一樣。PR將針對 odoo/technical-training-sandbox
存儲庫。
要做到這一點,第一步是在 GitHub 中 fork 此 存儲庫 <https://github.com/odoo/technical-training-sandbox/>`__ 以創建您自己的開發存儲庫。
成功創建開發存儲庫后,我們將配置您現有的 $HOME/src/custom
文件夾,以便能夠提交您的工作。
$ cd $HOME/src/custom
$ git init
$ git remote add training git@github.com:odoo/technical-training-sandbox.git
$ git remote add training-dev git@github.com:xyz-odoo/technical-training-sandbox.git #Don't forget to change xyz-odoo to your own GitHub account
$ git remote set-url --push training no_push #Avoid pushing directly into the main repository
$ git fetch training master
$ git branch master training/master
$ git checkout master #Two new files will be downloaded README.md and .gitignore
請注意,如果您的工作已經在一個 Git 和 GitHub 配置的文件夾 中,那么前面的步驟就不需要了。這種情況發生在您開始在 ‘odoo’ 或 ‘enterprise’ 文件夾中工作時。
分支,提交和推送?
在創建PR之前,必須創建一個新的工作分支并用于提交代碼。之后,該分支將被推送到開發存儲庫。
創建你的工作分支:
$ git checkout -b master-my_first_branch-xyz
你的分支名稱必須遵循以下命名結構:<targetVersion>-<feature>-<trigram>
示例:odoo-dev/odoo上的master-sale-fixes-abc分支是一個包含銷售應用程序修復的分支,將在odoo/odoo存儲庫中部署到主分支,并由ABC完成。
提交你的代碼:
$ git add .
$ git commit
每個人都會閱讀你的提交信息!
提交信息非常重要,請遵循 Git 指南 。
將新分支推送到您的開發存儲庫:
$ git push -u training-dev master-my_first_branch-xyz
警告
永遠不要在不屬于你或穩定分支上使用 git push --force
(或 git push -f
)。永遠不要,永遠不要,永遠不要!
小技巧
記住,您可以在任何時候使用 git status
命令來檢查您的分支的當前狀態。
小技巧
你可以創建 Git 別名來縮短這些命令。詢問你的同事是否使用 Git 別名,并從他們的工作中獲得靈感。
創建您的第一個 PR?
將分支推送到開發存儲庫后,您將看到類似于以下輸出:
Enumerating objects: 24, done.
Counting objects: 100% (24/24), done.
Compressing objects: 100% (20/20), done.
Writing objects: 100% (23/23), 6.67 KiB | 525.00 KiB/s, done.
Total 23 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), done.
remote:
remote: Create a pull request for 'master-my_first_branch-xyz' on GitHub by visiting:
remote: https://github.com/xyz-odoo/technical-training-sandbox/pull/new/master-my_first_branch-xyz
remote:
To github.com:xyz-odoo/technical-training-sandbox.git
* [new branch] master-my_first_branch-xyz -> master-my_first_branch-xyz
Branch 'master-my_first_branch-xyz' set up to track remote branch 'master-my_first_branch-xyz' from 'training-dev'.
創建PR有兩種方式:
點擊 push 命令輸出中顯示的鏈接。
在您的開發存儲庫中打開瀏覽器
https://github.com/xyz-odoo/technical-training-sandbox
。將會有一個按鈕用于創建新的拉取請求。
你會注意到,你的提交信息會被用作拉取請求信息。如果你只有一個提交,那么就會出現這種情況。如果你有多個提交,你可以將這些提交的摘要作為PR信息,或者如果提交不是很多,你可以將提交信息復制/粘貼為PR信息。

在 runbot 上測試?
Odoo擁有自己的 CI 服務器,名為 runbot。所有提交、分支和PR都將進行測試,以避免穩定版本的回歸或破壞。所有通過測試的運行都將在其自己的服務器上部署,并附帶演示數據。
Exercise
嘗試使用runbot。
隨意訪問runbot網站并打開最新穩定版本的Odoo,以查看所有可用的應用程序和功能。