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