erplibre/doc/RELEASE.md
2021-02-02 00:43:53 -05:00

2.3 KiB

Release

A guide on how to generate a release.

Before starting, validate 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.

./script/clean_repo_manifest.sh

And update all from dev to merge into prod.

./script/install_locally_dev.sh

Generate new prod and release

Generate production manifest and freeze all repos versions.

./.venv/repo manifest -r -o ./default.xml

Update ERPLIBRE_VERSION variable in env_var.sh and Dockerfile.prod.

Generate poetry and keep only missing dependencies, remove updates.

./script/poetry_update.py

When running script poetry_update.py, note manually inserted dependencies, stash all changes and add it manually.

poetry add DEPENDENCY

Understand differences from last release:

# 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 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:

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

git tag v#.#.#
# Push your tags
git push --tags
# Add tags for all repo
./.venv/repo forall -pc "git tag ERPLibre/v#.#.#"
./.venv/repo forall -pc "git push ERPLibre --tags"

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

List your docker version

docker images

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

./script/git_change_remote.py --sync_to /path/to/directory