feat: add inherit to override (#1730)

* feat: add inherit to override

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

* refactor: use dict and support prepend

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

* Refactor: simplifying by splitting the responsibilities of _dig_first

* Refactor to allow merging of string settings, and preserve table cascades

* docs: add some docs for inherit

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

* Apply suggestions from code review

Co-authored-by: Joe Rickerby <joerick@mac.com>

---------

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
Co-authored-by: Joe Rickerby <joerick@mac.com>
This commit is contained in:
Henry Schreiner
2024-03-02 16:58:18 -05:00
committed by GitHub
co-authored by Joe Rickerby
parent ae2451a199
commit 8f58f71c2e
7 changed files with 567 additions and 145 deletions
@@ -4,6 +4,17 @@
"additionalProperties": false,
"description": "cibuildwheel's settings.",
"type": "object",
"defines": {
"inherit": {
"enum": [
"none",
"prepend",
"append"
],
"default": "none",
"description": "How to inherit the parent's value."
}
},
"properties": {
"archs": {
"description": "Change the architectures built on your machine by default.",
@@ -423,6 +434,45 @@
}
]
},
"inherit": {
"type": "object",
"additionalProperties": false,
"properties": {
"before-all": {
"$ref": "#/defines/inherit"
},
"before-build": {
"$ref": "#/defines/inherit"
},
"before-test": {
"$ref": "#/defines/inherit"
},
"config-settings": {
"$ref": "#/defines/inherit"
},
"container-engine": {
"$ref": "#/defines/inherit"
},
"environment": {
"$ref": "#/defines/inherit"
},
"environment-pass": {
"$ref": "#/defines/inherit"
},
"repair-wheel-command": {
"$ref": "#/defines/inherit"
},
"test-command": {
"$ref": "#/defines/inherit"
},
"test-extras": {
"$ref": "#/defines/inherit"
},
"test-requires": {
"$ref": "#/defines/inherit"
}
}
},
"before-all": {
"$ref": "#/properties/before-all"
},