From 08554315c95846ff451f930aab0978398d5f05eb Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Fri, 11 Dec 2020 03:46:56 -0500 Subject: [PATCH] [UPD] doc improve release HOW TO --- doc/DEVELOPMENT.md | 6 ++++ doc/POETRY.md | 2 ++ doc/RELEASE.md | 72 ++++++++++++++++++++++++++++++++++++++-------- 3 files changed, 68 insertions(+), 12 deletions(-) diff --git a/doc/DEVELOPMENT.md b/doc/DEVELOPMENT.md index 5c6f8f3..f4ee5ac 100644 --- a/doc/DEVELOPMENT.md +++ b/doc/DEVELOPMENT.md @@ -114,3 +114,9 @@ python odoo/odoo-bin scaffold MODULE_NAME addons/REPO_NAME/ ```bash /script/pull_request_ERPLibre.py --github_token ### --organization ERPLibre ``` + +# Commit +Use this commit format: +```bash +git commit -am "[#ticket] subject: short sentence" +``` diff --git a/doc/POETRY.md b/doc/POETRY.md index 4a190a7..60629dc 100644 --- a/doc/POETRY.md +++ b/doc/POETRY.md @@ -6,6 +6,8 @@ Add your dependencies in file [requirements.txt](../requirements.txt) and run sc ``` This will search all `requirements.txt` files and update `pyproject.toml` and it will update poetry +TODO add option to only add missing dependencies and ignore update. + ## Add manually dependencies The automatic script will erase this dependency, but you can add it for your local test. ```bash diff --git a/doc/RELEASE.md b/doc/RELEASE.md index 3c43935..10fde8a 100644 --- a/doc/RELEASE.md +++ b/doc/RELEASE.md @@ -1,24 +1,68 @@ # Release + A guide on how to generate a release. -## Generate new prod +Before starting, validate [manifest/default.dev.xml](../manifest/default.dev.xml) is ready for production. + +## Clean environment before generate new release + +Be sure all files are commit and push, this will erase everything in addons. + +```bash +./script/clean_repo_manifest.sh +``` + +And update all from dev to merge into prod. + +```bash +./script/install_locally_dev.sh +``` + +## Generate new prod and release + +Generate production manifest and freeze all repos versions. + ```bash ./.venv/repo manifest -r -o ./default.xml ``` -Commit. + +Update ERPLIBRE_VERSION variable in [env_var.sh](../env_var.sh) and [Dockerfile.prod](../docker/Dockerfile.prod.pkg). + +Generate [poetry](./POETRY.md) and keep only missing dependencies, remove updates. ```bash -git commit -am "[#ticket] subject: short sentence" +./script/poetry_update.py ``` -Update ERPLIBRE_VERSION variable in [env_var.sh](../env_var.sh) +When running script poetry_update.py, note manually inserted dependencies, stash all changes and add it manually. +```bash +poetry add DEPENDENCY +``` -## Merge release -When you are ready to generate a release, create a branch release/#.#.# and create a pull request to master. +Understand differences from last release: -Update file [CHANGELOG.md](../CHANGELOG.md) and create a section with new version. -Merge it when the maintainer accepts it. +```bash +# Get all differences between the last tag and HEAD, to update the CHANGELOG.md +# ERPLibre +git diff v#.#.#..HEAD + +# All repo +./.venv/repo forall -pc "git diff ERPLibre/v#.#.#..HEAD" +``` + +Update file [CHANGELOG.md](../CHANGELOG.md) and create a section with new version, use next command to read all changes. + +Create a branch release/#.#.# and create a pull request to branch master with your commit: + +```bash +git commit -am "Release v#.#.#" +``` + +Review by your peers, test the docker file and merge to master. + +## Create tag Add a tag on the commit in branch master with your release. When adding tag, be sure to update default.xml + ```bash git tag v#.#.# # Push your tags @@ -26,11 +70,12 @@ git push --tags # Add tags for all repo ./.venv/repo forall -pc "git tag ERPLibre/v#.#.#" ./.venv/repo forall -pc "git push ERPLibre --tags" -# Get all difference between a tag and HEAD, to update the CHANGELOG.md -./.venv/repo forall -pc "git diff ERPLibre/v#.#.#..HEAD" ``` -## Push docker +## Generate and push docker + +Important to generate container after push git tags, otherwise the git version will be wrong. + When building your docker with script > ./script/docker_build.sh --release @@ -41,8 +86,11 @@ You need to push your docker image and update your tag, like 1.0.1: > docker push technolibre/erplibre:VERSION # TIPS + ## Compare repo differences with another ERPLibre project -To generate a list of differences between repo git commit + +To generate a list of differences between repo git commit + ```bash ./script/git_change_remote.py --sync_to /path/to/directory ``` \ No newline at end of file