odoo-openupgrade-wizard/DEVELOP.md
Rémy Taymans ada619279d fix typo.
2023-01-03 10:41:42 +01:00

195 lines
4.8 KiB
Markdown

# Installation to develop
## Basic installation
```
git clone https://gitlab.com/odoo-openupgrade-wizard/odoo-openupgrade-wizard/
cd odoo-openupgrade-wizard
virtualenv env --python=python3
. ./env/bin/activate
poetry install
```
``odoo-openupgrade-wizard`` commands are now available in your virutalenv.
## Advanced installation
If you want to use this library without installing anything in your
system, execute the following steps, otherwise, go to 'Installation' part.
1. Run a docker container:
``docker run -it ubuntu:focal``
2. Execute the following commnands
```
apt-get update
apt-get install git python3 python3-pip python3-venv
python3 -m pip install --user pipx
python3 -m pipx ensurepath
su root
pipx install virtualenv
pipx install poetry
```
# Run tests
## Via pytest (simple)
This will run tests only for the current ``python3.X`` version.
(in your virtualenv)
```
poetry run pytest --cov odoo_openupgrade_wizard --verbosity=2 --exitfirst
```
## Via Tox (advanced)
This will run tests for all the python versions put in the ``tox.ini`` folder.
(in your virtualenv)
```
tox
```
Note : you should have all the python versions available in your local system.
```
sudo apt-get install python3.6 python3.6-distutils
sudo apt-get install python3.7 python3.7-distutils
sudo apt-get install python3.8 python3.8-distutils
sudo apt-get install python3.9 python3.9-distutils
```
## Via Gitlab Runner locally
```
# Install tools
pipx install gitlabci-local
# Run new available command
gitlabci-local
```
# Debugging
Some docker command could help you when using / developping this tools.
**Enter the postgres container**
docker exec -it POSTGRES_CONTAINER_NAME /bin/bash
# Contribute
## Add python dependencies
If you add new dependencies, you have to:
- add the reference in the file ``pyproject.toml``
- run the following command in your virtualenv : ``poetry update``
## Publish on pyPI
```
poetry publish
```
# Understanding the library
## Tools to understand
The library is using many tools. It is recommanded to understand that tools
to contribute to that project:
* Docker (https://www.docker.com/)
* Gitlab CI (https://docs.gitlab.com/ee/ci/quick_start/index.html)
* openupgrade project (https://github.com/oca/openupgrade) and related openupgradelib (https://github.com/oca/openupgradelib)
* poetry (https://python-poetry.org/)
* odoorpc (https://github.com/OCA/odoorpc)
* git-aggregator (https://github.com/acsone/git-aggregator)
Also this project is inspired by the following tools:
* click-odoo-contrib (https://github.com/acsone/click-odoo-contrib)
# Dockerfile information
### From version 5 to 7
There are no plans to make the tool work for these versions.
### From version 8 to 10 (Python2)
Try to create dockerfile, based on the odoo official ones fails. Any help welcome.
### From version 11.0 to latest version. (Python3)
The Dockerfile of the version 11 to the lastest version of Odoo are written this way :
- Copy the content of https://github.com/odoo/odoo/blob/ODOO_VERSION/setup/package.dfsrc
- remove all the part after the big ``apt-get install``
- install debian package ``git`` to have the possibility to pip install from git url.
- install custom debian packages
- install python odoo requirements
- install python ``setuptools-scm`` lib to have the possibility to pip install ``openupgradelib`` from git url.
- install python custom requirements
- makes link between external user and docker odoo user
## Réferences
- how to install gitlab runner locally:
https://docs.gitlab.com/runner/install/linux-manually.html
- Check your CI locally. (French)
https://blog.stephane-robert.info/post/gitlab-valider-ci-yml/
https://blog.callr.tech/building-docker-images-with-gitlab-ci-best-practices/
## Python version settings depending on the debian version
This part can help you if you want to change your autogenerated Dockerfiles.
See (https://github.com/odoo/odoo/blob/ODOO_VERSION/setup/package.dfdebian)
### debian:wheezy (V7) (for Odoo: 8.0)
- Ubuntu release : 12.04 xxx, 12.10 xxx, 13.04 xxx, 14.10 xxx
- python2.7
- First release : 04/05/2013
- End LTS : May 2018
### debian:jessie (V8) (for Odoo: 9.0, 10.0)
- Ubuntu release : 14.04 trusty, 14.10 utopic, 15.04 vivid, 15.10 wily
- python2.7
- First release : 26/04/2015
- End LTS : June 2020
### debian:stretch (V9) (for Odoo: 11.0, 12.0)
- Ubuntu releases : 16.04 xenial, 16.10 yakkety, 17.04 zesty, 17.10 artful
- python2.7 and python3.5
- First release : 17/06/2017
- End LTS : June 2022
### debian:buster (13.0, 14.0)
- Ubuntu release : 18.04 bionic, 18.10 cosmic, 19.04 disco, 19.10 eoan
- python2.7 and python3.7
- First release : 06/07/2019
- End LTS : Undefined.
## debian:bullseye (15.0, 16.0)
- Ubuntu release : 20.04 focal, 20.10 groovy, 21.04 hirsute, 21.10 impish
- python3.9
- First release : 14/07/2021
- End LTS : Undefined.