This document explains the process to release new Software Release or new version of existing Software Release. Developers should follow it strictly and understand meaning of each step : not following it STRICTLY and/or not understanding will result in waste of time. Of course anybody is encouraged to propose improvements/simplifications.
To develop any Software Release, we use, in slapos.git, a dedicated branch, created from "master" branch.
When work is finished, work can be merged to master, where we create a tag (i.e a snapshot of master).
Parts below should be only done when the Software Release is considered as finished or ready to be released (i.e works in your branch) and master has been merged into the branch.
Only if you changed/added any recipe of slapos.cookbook (basically any file in the slapos/recipe directory)
Else, you can skip.
You can also skip this if you WANT to use "develop", with pinned git revision, in your stable profile. This is mostly the case for ERP5 only.
From your branch:
Answer: We have to make sure that only the specified version of eggs will be used. Otherwise, eggs can be updated after releasing the software, thus changing the wanted behavior of this software.
Answer: When developping, we ALWAYS want to use latest available versions of everything. It is the same for testing in "bleeding edge".
Answer: master branch has to be always a stable base to create new branches. Thus, only tested/reviewed commits can be merged to master.
Anwser: Sure. It may allow you to rebase your commits before merging to have clean, readable history.
Pinning eggs should be done using webrunner.
slapos.git should be split in two different repository, one containing recipes, the other containing profiles.