erplibre/doc/DEVELOPMENT.md

111 lines
3 KiB
Markdown

# Development guide
Setup your environment to develop modules and debug the platform.
## Installation procedure locally
### 1. Clone the project:
```bash
git clone https://github.com/ERPLibre/ERPLibre.git
```
### 2. Execute the script:
```bash
cd ERPLibre
./script/install_dev.sh
./script/install_locally_dev.sh
```
### 3. Run ERPLibre
```bash
./run.sh
```
## Develop in Odoo repository
You need to remove
> clone-depth="1"
from
> ./manifest/default.dev.xml
file to be able to commit and push.
Commit temporary and regenerate with
> ./script/install_locally_dev.sh
## Fork project to create a new project independent of ERPLibre (deprecated)
ERPLibre was created by this script. It's now deprecated.
Use this script when you need to fork directly from the original source.
Don't use this script if you want to update from ERPLibre and follow mainstream development.
```bash
./script/fork_project.py --github_token GITHUB_KEY --organization NAME
```
# Fork all repo for you own organization
Go to your github account and generate a token to access fork option with your user. Create an organization (or you can choose your user name).
This command will fork all repos and ERPLibre to your own organization. It keeps track to ERPLibre.
```bash
./script/fork_project_ERPLibre.py --github_token GITHUB_KEY --organization NAME
```
## Generate manifest from csv repo
Add repo in file [./source_repo_addons.csv](./source_repo_addons.csv)
Execute to generate manifest of Repo
```bash
./script/fork_project_ERPLibre.py --skip_fork
```
## Move database prod to dev
When moving database prod to your dev environment, you want to remove email servers, and install user test in order to test the database.
Run:
```bash
./run.sh --stop-after-init -i user_test,disable_mail_server --dev all -d DATABASE
```
# TODO
```bash
./script/git_change_remote.py
```
## Change git url https to git
This will update all urls in git format:
```bash
./script/git_change_remote_https_to_git.py
```
## Diff repo with another project
Tools to display the differences between the repo and another project.
```bash
./script/git_change_remote.py --sync_to /path/to/project/erplibre --dry_sync
```
## Sync repo with another project
Tools to synchronise the repo with another project. This will show differences and try to checkout on the same commit in all repo.
```bash
./script/git_change_remote.py --sync_to /path/to/project/erplibre
```
## Diff code between manifest
To show diff between commits in different manifest
```bash
./script/git_diff_repo_manifest.py --input1 ./manifest/MANIFEST1.xml --input2 ./manifest/MANIFEST2.xml
```
## Add repo
Access to a new repo, add your URL to file [source_repo_addons.csv](../source_repo_addons.csv)
Fork the repo to be able to push new code:
```bash
./script/fork_project_ERPLibre.py
```
To regenerate only manifest.xml.
```bash
./script/fork_project_ERPLibre.py --skip_fork
```
# Coding
## Create module scaffold (run in the venv)
```bash
source ./venv/bin/activate
python odoo/odoo-bin scaffold MODULE_NAME addons/REPO_NAME/
```