Do not reprocess already extended files
extends can be interpreted as inheritance in OOP, but the original behaviour was against what is commonly (always?) seen everywhere. It is however good practice a file extends all files it needs directly (and only them). Then if two files A & B (possibly unrelated) extends the same third C, A was unable to overrides C values. It was even error-prone because someone who don't use B yet could override C values in A and later extending B would break A. For some of our common use cases, this new algorithm is also 9x faster (time to annotate: ~2.3s with -> ~.29s). Other changes: - ~/ is now expanded for non-url extends. - An absolute (non-url) path is not longer treated like a local path if the base is a url. - Better path/url normalization. Rebase instructions: - squash with "Chomp ../ from beginging of filenames" - split and apply "Support ${:_profile_base_location_}." after
-
Owner
For slapos!967 (merged), @lpgeneau could not test that wendelin-scalability/test-fluentd-* SR still build because these SR are already broken for a while, and the bug seems to be in this commit. What really looks wrong is that while both
software/fluentd/software.cfg
andsoftware/wendelin-scalability/test-common.cfg
computeversions:zc.buildout=2.7.1+slapos010
when annotated separately, extending these 2 files in this order (software/wendelin-scalability/test-fluentd-common.cfg
) results in2.3.1
./cc @jerome
-
Developer
What we discussed is that in stack/erp5 we define versions of eggs like :
https://lab.nexedi.com/nexedi/slapos/blob/master/stack/erp5/ztk-versions.cfg#L35
but some of them are duplicated in stack/slapos.cfg :
https://lab.nexedi.com/nexedi/slapos/blob/master/stack/slapos.cfg#L354
I forgot the detail, but the surprise was the used version depends on the order of which these 2 files are extended, and sometimes the older version is picked.
In my case, I wanted to build a SR based on ERP5, but it failed because it was using
setuptools = 12.2
(https://lab.nexedi.com/nexedi/slapos/blob/master/stack/erp5/ztk-versions.cfg#L87)