The [versions]
section is simple to understand. It specifies for every python distribution which version should be used. This enforces that no regression happens as a result of some upgrade of a software component. It is sometimes referred to as "freezing" releases.
However, versions defined in [versions]
section only define versions of python distributions and not of other components. There are different ways to make a version fixed for other components. Sometimes, the URL defines implicitly a fixed revision of a component. This is the case for bison for example
https://lab.nexedi.com/nexedi/slapos/blob/master/component/bison/buildout.cfg
And sometimes the revision is set explicitely as in the case of ERP5 profile:
http://git.erp5.org/gitweb/slapos.git/blob/HEAD:/stack/erp5.cfg#l219
Revision in the case of ERP5 is a git hash (336a8d63bdcabd92bfe3d9466685e5cd47fad716
).
A good practice for complex software is to introduce revision variables in software components as well as default revisions, then let the extend machinery override those variables.