devcurmudgeon / ybd

yaml build deploy
GNU General Public License v2.0
6 stars 15 forks source link

Should exit with an explanitory error if product for splitting rule is undeclared #184

Closed gtristan closed 8 years ago

gtristan commented 8 years ago

In the master build-essential stratum here: http://git.baserock.org/cgit/baserock/baserock/definitions.git/tree/strata/build-essential.morph#n44

A 'product' is defined for build-essential-minimal

Later in the glibc chunk it is referred to: http://git.baserock.org/cgit/baserock/baserock/definitions.git/tree/strata/build-essential.morph#n263

However, it also refers to other names, like build-essential-runtime, without having to declare that 'product', an unsuspecting definitions author will easily overlook this, and encounter a stack trace like the one below.

YBD should print an error explaining what the definitions author did wrong, I could submit a patch for this, but I dont fully understand why one has to define this 'product' and not the runtime one (so I would not know what the informative error message should be).

Stack trace:

Traceback (most recent call last): File "/home/tristan/ABORIGINAL_LINUX/ybd/ybd/main.py", line 69, in compose(defs, target) File "/home/tristan/ABORIGINAL_LINUX/ybd/ybd/assembly.py", line 82, in compose build(defs, component) # bring in 'build-depends', and run make File "/home/tristan/ABORIGINAL_LINUX/ybd/ybd/assembly.py", line 112, in build splitting.write_metadata(defs, component) File "/home/tristan/ABORIGINAL_LINUX/ybd/ybd/splitting.py", line 121, in write_metadata write_stratum_metafiles(defs, component) File "/home/tristan/ABORIGINAL_LINUX/ybd/ybd/splitting.py", line 204, in write_stratum_metafiles splits[target].append(artifact) KeyError: 'build-essential-minimal'

devcurmudgeon commented 8 years ago

Splitting-rules are no longer undeclared - we have default-splits