セットアップガイド¶
目的の使用事例により、Odoo のインストール方法は複数あります。 Odooコミュニティの開発者とOdooの従業員のために。 推奨される方法は、ソースコードからOdooを実行している:dfn:のソースインストールを実行することです。
重要
貢献ガイドの 貢献/開発/セットアップ セクションに従って、Odoo リポジトリへのローカル変更をプッシュするための環境を準備してください。
チュートリアルの環境を適応する¶
これまでに、ソースコードを2つのローカルリポジトリ、1つは`odoo/odoo`、もう1つは`odoo/enterprise`にダウンロードする必要があります。 これらのリポジトリは、GitHub で事前定義されたフォークに変更をプッシュするように設定されています。 これにより、コードベースに貢献し始めると便利です。 しかし、チュートリアルの範囲では、学習教材で汚染を避けたいと考えています。 3つ目のリポジトリ「odoo/tutorials
」で変更をプッシュしましょう。 最初の2つのリポジトリと同様に、Odoo モジュールを含むすべてのディレクトリを参照する addons-path
の一部となります。
注釈
あなたがフォローしているチュートリアルに応じて、このリポジトリに含まれるすべてのモジュールをインストールする必要はないかもしれません。
`odoo/odoo`と`odoo/enterprise`リポジトリと同じプロセスに沿って、マシン上の`odoo/tutorials`リポジトリをクローンします。
$ git clone git@github.com:odoo/tutorials.git
メインのコードベースではなく、フォークに変更をプッシュするように fork と Git を設定します。 Odoo で作業している場合は、odoo-dev アカウントで作成された共有フォークに変更をプッシュするように Git を設定します。
github.com/odoo/tutorials にアクセスし、 :guilabel:`Fork`ボタンをクリックして、アカウントにリポジトリのフォークを作成します。
以下のコマンドで、フォークを作成したGitHubアカウントの名前に`<your_github_account>`を置き換えます。
$ cd /TutorialsPath $ git remote add dev git@github.com:<your_github_account>/tutorials.git
$ cd /tutorials $ git remote add dev git@github.com:odoo-dev/tutorials.git $ git remote set-url --push origin you_should_not_push_on_this_repository
以上です! これで、ソースから Odoo を実行する環境が整いました。アドオンディレクトリとして機能するリポジトリが正常に作成されました。 これにより、あなたの作品を GitHub にプッシュできます。
重要
Odoo 社員のみ:
初めての貢献をする をよく読んでください。特に、あなたのブランチ名は私たちの慣習に従わなければなりません。
**odoo-dev**の共有フォークに最初の変更をプッシュしたら、 :abbr:`PR (Pull Request)`を作成します。 PRのタイトルにあなたのquadrigramを入れてください(例えば、"abcd - 技術訓練")。
これにより、今後の作業を共有し、コーチからのフィードバックを受け取ることができます。 フィードバックの継続的なループを確保するために、チュートリアルの章を完了したらすぐに新しいコミットをプッシュすることをお勧めします。 **odoo-dev**にプッシュするコミットで自動的にPRが更新されるので、複数のPRを開く必要はありません。
At Odoo we use Runbot extensively for our CI tests. When you push your changes to odoo-dev, Runbot creates a new build and test your code. Once logged in, you will be able to see your branches Tutorials project.
注釈
ファイルシステム上のリポジトリの特定の場所は重要ではありません。 しかし、簡潔にするために、すべてのリポジトリを同じディレクトリの下にクローンしたと仮定します。 そうでない場合は、必ず以下のコマンドを調整してください。 odoo/odoo
リポジトリから`odoo/tutorials`リポジトリまでの適切な相対パスを指定します。
サーバーの起動¶
`odoo-bin`で起動¶
全ての依存関係が設定されると、Odooはサーバーのコマンドラインインターフェイスである`odoo-bin`を実行することで起動できます。
$ cd $HOME/src/odoo/
$ ./odoo-bin --addons-path="addons/,../enterprise/,../tutorials" -d rd-demo
command-line arguments が複数あります。 このトレーニングでは、それらのいくつかだけが必要になります。
- -d <database>¶
使用するデータベースを指定します。
- --addons-path <directories>¶
モジュールが格納されているディレクトリをカンマ区切りで指定します。このディレクトリからモジュールをスキャンします。
- --limit-time-cpu <limit>¶
リクエストごとに <limit> CPU 秒以上を使用しないようにします。
- --limit-time-real <limit>¶
Prevent the worker from taking longer than <limit> seconds to process a request.
ちなみに
--limit-time-cpu
と--limit-time-real
引数を使用すると、ソースコードをデバッグする際にワーカーが殺されるのを防ぐことができます。- You may face an error similar to
AttributeError: module '<MODULE_NAME>' has no attribute '<$ATTRIBUTE'>
. In this case, you may need to re-install the module with $ pip install --upgrade --force-reinstall <MODULE_NAME>.このエラーが複数のモジュールで発生した場合 $ pip install --upgrade --force-reinstall -r 要件ですべての要件を再インストールする必要があるかもしれません。 XTPythonキャッシュをクリアして問題を解決することもできます。$ cd $HOME/.local/lib/python3.8/site-packages/ $ find -name '*.pyc' -type f -delete
他の一般的に使用される引数は次のとおりです。
-i
: Install some modules before running the server (comma-separated list). This is equivalent to going to Apps in the user interface, and installing the module from there.-u
: Update some modules before running the server (comma-separated list). This is equivalent to going to Apps in the user interface, selecting a module, and upgrading it from there.
Odoo へのログイン¶
お使いのブラウザーで http://localhost:8069/ を開きます。Chrome, Firefox または開発ツールを使用する他のブラウザーを使用することをお勧めします。
管理者ユーザーとしてログインするには、次の資格情報を使用します。
email:
admin
パスワード:
admin
開発者モードを有効にする¶
The developer or debug mode is useful for training as it gives access to additional (advanced) tools. Enable the developer mode now. Choose the method that you prefer; they are all equivalent.
エクストラ ツール¶
便利な Git コマンド¶
日々の作業に便利なGitコマンドをいくつか紹介します。
- ブランチを切り替える:ブランチを切り替えるときは、リポジトリ(odoとenterprise)を同期させる必要があります。つまり、両方が同じブランチにある必要があります。
$ cd $HOME/src/odoo $ git switch 18.0 $ cd $HOME/src/enterprise $ git switch 18.0
Fetch と Rebase
$ cd $HOME/src/odoo $ git fetch --all --prune $ git rebase --autostash odoo/18.0 $ cd $HOME/src/enterprise $ git fetch --all --prune $ git rebase --autostash enterprise/18.0
コードエディター¶
If you are working at Odoo, many of your colleagues are using VSCode, VSCodium (the open source equivalent), PyCharm, or Sublime Text. However, you are free to choose your preferred editor.
リンターを正しく設定することが重要です。リンターを使用すると、構文や意味論的な警告やエラーを表示することができます。 Odoo ソースコードは Python と JavaScript の標準を尊重しようとしますが、それらのいくつかは無視することができます。
Pythonについては、次のオプションで無視してPEP8を使用しています。
E501
: 行が長すぎますE301
: 1行が空白で、0 が見つかりましたE302
: 2 行の空白が見つかりました
JavaScript では、ESLint を使用しています。configuration file example here を見つけることができます。
PostgreSQL用の管理者ツール¶
以前に示したコマンドラインを使用してPostgreSQLデータベースを管理したり、pgAdmin や NetBeans などのGUIアプリケーションを使用したりできます。
GUIアプリケーションをデータベースに接続するには、Unixソケットを使用することをお勧めします。
ホスト名/アドレス:
/var/run/postgresql
ポート:
5432
ユーザー名:
$USER
Python のデバッグ¶
バグに直面したり、コードがどのように動作するかを確認しようとするとき、単にプリントアウトするだけでも十分効果がありますが、適切なデバッガを使用すれば、多くの時間を節約することができます。
古典的なPythonライブラリデバッガ(pdb, pudb or ipdb)を使用することも、エディタのデバッガを使用することもできます。
次の例では、ipdbを使用していますが、他のライブラリでも手順は同様です。
ライブラリのインストール:
pip install ipdb
トリガーを配置(ブレークポイント):
import ipdb; ipdb.set_trace()
Example
def copy(self, default=None): import ipdb; ipdb.set_trace() self.ensure_one() chosen_name = default.get('name') if default else '' new_name = chosen_name or _('%s (copy)') % self.name default = dict(default or {}, name=new_name) return super(Partner, self).copy(default)
ここでは、コマンドの一覧を紹介します。
- h(elp) [command]¶
引数が与えられていない場合、使用可能なコマンドのリストを表示します。引数としてコマンドを使用すると、そのコマンドに関するヘルプを表示します。
- w(here)¶
最新フレームのスタックトレースを下部に表示します。
- d(own)¶
スタックトレースで現在のフレームを1レベル下に (新しいフレームに) 移動します。
- u(p)¶
スタックトレースで現在のフレームを1つ上のレベル (古いフレーム) に移動します。
- n(ext)¶
現在の関数の次の行に到達するか、リターンするまで実行を続けます。
- c(ontinue)¶
実行を継続し、ブレークポイントに到達した場合にのみ停止します。
- s(tep)¶
現在の行を実行します。 最初の可能な時点で停止します (現在の関数で呼び出される関数、または次の行で呼び出される関数のいずれか)。
- q(uit)¶
デバッガーを終了します。実行中のプログラムは中止されます。