When using multiple build configs in build.py, as in
# ./build.py debug release
they are not necessarily built in the given order. Our code collects them in a Python set, so the actual order is based on Python's (arbitrary) set iteration order.
I would like them to be built in the given order.
Because we currently use sets, if the same config is specified multiple times directly or indirectly (via the available aliases), it is currently built only once:
# ./build.py debug debug
is currently the same as
# ./build.py debug
I suggest getting rid of this because YAGNI and the old behaviour would lead to more complex code once we no longer use sets. I also think this behaviour somewhat contradicts the principle of least surprise. Note that when building twice the second build will of course be almost instantaneous, so the feature doesn't really save time.
I'll wait a little bit to see if people object to this change, but I hope it's controversial enough that I don't have to wait long.
|