From f5e772767ef9b67386ec0a1a57416bc14e1a2036 Mon Sep 17 00:00:00 2001 From: "Matthew R. Becker" Date: Thu, 27 Feb 2025 09:00:39 -0600 Subject: [PATCH 1/5] doc: add new schema entry for the bot static lib updates --- conda_smithy/schema.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/conda_smithy/schema.py b/conda_smithy/schema.py index 98146d0d0..4bfd17a87 100644 --- a/conda_smithy/schema.py +++ b/conda_smithy/schema.py @@ -449,6 +449,17 @@ class BotConfig(BaseModel): description="Bot config for version update PRs", ) + update_static_libs: Optional[bool] = Field( + default=False, + description="Update packages in `host` that are used for static " + "linking. For bot to issue update PRs, you must have both an " + "abstract specification of the library (e.g., `llvmdev 15.0.*`) " + "and a concrete specificatoon (e.g., `llvmdev 15.0.7 *_5`). The " + "bot will find the latest package that satisfies the abstract " + "specification and update the concrete specification to this " + "latest package." + ) + class CondaBuildConfig(BaseModel): model_config: ConfigDict = ConfigDict(extra="allow") From 205ebc0b404138da7ddeecfef27a87844edd650d Mon Sep 17 00:00:00 2001 From: beckermr Date: Thu, 27 Feb 2025 09:02:50 -0600 Subject: [PATCH 2/5] feat: regenerate schema --- conda_smithy/data/conda-forge.json | 16 +++++++++++++++- conda_smithy/data/conda-forge.yml | 1 + 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/conda_smithy/data/conda-forge.json b/conda_smithy/data/conda-forge.json index 9fbca7bd0..9cfc1c7f5 100644 --- a/conda_smithy/data/conda-forge.json +++ b/conda_smithy/data/conda-forge.json @@ -334,6 +334,19 @@ } ], "description": "Bot config for version update PRs" + }, + "update_static_libs": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": false, + "description": "Update packages in `host` that are used for static linking. For bot to issue update PRs, you must have both an abstract specification of the library (e.g., `llvmdev 15.0.*`) and a concrete specificatoon (e.g., `llvmdev 15.0.7 *_5`). The bot will find the latest package that satisfies the abstract specification and update the concrete specification to this latest package.", + "title": "Update Static Libs" } }, "title": "BotConfig", @@ -825,6 +838,7 @@ "type": "string" }, "Nullable": { + "const": null, "description": "Created to avoid issue with schema validation of null values in lists or dicts.", "enum": [ null @@ -1973,7 +1987,7 @@ "type": "null" } ], - "description": "The `provider` field is a mapping from build platform (not target platform)\nto CI service. It determines which service handles each build platform.\nIf a desired build platform is not available with a selected provider\n(either natively or with emulation), the build will be disabled.\nUse the `build_platform` field to manually specify cross-compilation when\nno providers offer a desired build platform.\n\nThe following are available as supported build platforms:\n\n* `linux_64`\n* `osx_64`\n* `win_64`\n* `linux_aarch64`\n* `linux_ppc64le`\n* `linux_s390x`\n* `linux_armv7l`\n\nThe following CI services are available:\n\n* `azure`\n* `circle`\n* `travis`\n* `appveyor`\n* `None` or `False` to disable a build platform.\n* `default` to choose an appropriate CI (only if available)\n* `native` to choose an appropriate CI for native compiling (only if available)\n* `emulated` to choose an appropriate CI for compiling inside an emulation\n of the target platform (only if available)\n\nFor example, switching linux_64 & osx_64 to build on Travis CI, with win_64 on\nAppveyor:\n\n```yaml\nprovider:\n linux_64: travis\n osx_64: travis\n win_64: appveyor\n```\n\nCurrently, x86_64 platforms are enabled, but other build platforms are\ndisabled by default. i.e. an empty provider entry is equivalent to the\nfollowing:\n\n```yaml\nprovider:\n linux_64: azure\n osx_64: azure\n win_64: azure\n linux_ppc64le: None\n linux_aarch64: None\n```\n\nTo enable `linux_ppc64le` and `linux_aarch64` add the following:\n\n```yaml\nprovider:\n linux_ppc64le: default\n linux_aarch64: default\n```" + "description": "The `provider` field is a mapping from build platform (not target platform)\nto CI service. It determines which service handles each build platform.\nIf a desired build platform is not available with a selected provider\n(either natively or with emulation), the build will be disabled.\nUse the `build_platform` field to manually specify cross-compilation when\nno providers offer a desired build platform.\n\nThe following are available as supported build platforms:\n\n* `linux_64`\n* `osx_64`\n* `win_64`\n* `linux_aarch64`\n* `linux_ppc64le`\n* `linux_s390x`\n* `linux_armv7l`\n\nThe following CI services are available:\n\n* `azure`\n* `circle`\n* `travis`\n* `appveyor`\n* `None` or `False` to disable a build platform.\n* `default` to choose an appropriate CI (only if available)\n* `native` to choose an appropriate CI for native compiling (only if available)\n* `emulated` to choose an appropriate CI for compiling inside an emulation\n of the target platform (only if available)\n\nFor example, making explicit that linux_64 & osx_64 build on azure (by default),\nand switching win_64 to Appveyor:\n\n```yaml\nprovider:\n linux_64: azure\n osx_64: azure\n win_64: appveyor\n```\n\nCurrently, x86_64 platforms are enabled, but other build platforms are\ndisabled by default. i.e. an empty provider entry is equivalent to the\nfollowing:\n\n```yaml\nprovider:\n linux_64: azure\n osx_64: azure\n win_64: azure\n linux_ppc64le: None\n linux_aarch64: None\n```\n\nTo enable `linux_ppc64le` and `linux_aarch64` add the following:\n\n```yaml\nprovider:\n linux_ppc64le: default\n linux_aarch64: default\n```" }, "package": { "anyOf": [ diff --git a/conda_smithy/data/conda-forge.yml b/conda_smithy/data/conda-forge.yml index 92f2b8a7b..20c8f3e67 100644 --- a/conda_smithy/data/conda-forge.yml +++ b/conda_smithy/data/conda-forge.yml @@ -40,6 +40,7 @@ bot: check_solvable: true inspection: hint run_deps_from_wheel: false + update_static_libs: false version_updates: exclude: [] random_fraction_to_keep: null From f66316e8a0479ccd4c921e6571385f40cddc6192 Mon Sep 17 00:00:00 2001 From: beckermr Date: Thu, 27 Feb 2025 09:03:45 -0600 Subject: [PATCH 3/5] doc: add news item --- news/2253-bot-config.rst | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 news/2253-bot-config.rst diff --git a/news/2253-bot-config.rst b/news/2253-bot-config.rst new file mode 100644 index 000000000..95d118ae6 --- /dev/null +++ b/news/2253-bot-config.rst @@ -0,0 +1,23 @@ +**Added:** + +* Added documentation for new bot option ``update_static_libs``. (#2253) + +**Changed:** + +* + +**Deprecated:** + +* + +**Removed:** + +* + +**Fixed:** + +* + +**Security:** + +* From b31c9cd33e2bf70166fcb2b49d81f2154f09ff4d Mon Sep 17 00:00:00 2001 From: beckermr Date: Thu, 27 Feb 2025 09:04:06 -0600 Subject: [PATCH 4/5] style: blacken --- conda_smithy/schema.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conda_smithy/schema.py b/conda_smithy/schema.py index 4bfd17a87..ee44cee64 100644 --- a/conda_smithy/schema.py +++ b/conda_smithy/schema.py @@ -457,7 +457,7 @@ class BotConfig(BaseModel): "and a concrete specificatoon (e.g., `llvmdev 15.0.7 *_5`). The " "bot will find the latest package that satisfies the abstract " "specification and update the concrete specification to this " - "latest package." + "latest package.", ) From 4fc4e99af38208b9fb86f067a666cd2a2b5d7c91 Mon Sep 17 00:00:00 2001 From: "Matthew R. Becker" Date: Fri, 28 Feb 2025 07:56:31 -0600 Subject: [PATCH 5/5] fix: typos Co-authored-by: Chris Burr --- conda_smithy/data/conda-forge.json | 2 +- conda_smithy/schema.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/conda_smithy/data/conda-forge.json b/conda_smithy/data/conda-forge.json index 9cfc1c7f5..838a16338 100644 --- a/conda_smithy/data/conda-forge.json +++ b/conda_smithy/data/conda-forge.json @@ -345,7 +345,7 @@ } ], "default": false, - "description": "Update packages in `host` that are used for static linking. For bot to issue update PRs, you must have both an abstract specification of the library (e.g., `llvmdev 15.0.*`) and a concrete specificatoon (e.g., `llvmdev 15.0.7 *_5`). The bot will find the latest package that satisfies the abstract specification and update the concrete specification to this latest package.", + "description": "Update packages in `host` that are used for static linking. For bot to issue update PRs, you must have both an abstract specification of the library (e.g., `llvmdev 15.0.*`) and a concrete specification (e.g., `llvmdev 15.0.7 *_5`). The bot will find the latest package that satisfies the abstract specification and update the concrete specification to this latest package.", "title": "Update Static Libs" } }, diff --git a/conda_smithy/schema.py b/conda_smithy/schema.py index ee44cee64..f4cfde49b 100644 --- a/conda_smithy/schema.py +++ b/conda_smithy/schema.py @@ -454,7 +454,7 @@ class BotConfig(BaseModel): description="Update packages in `host` that are used for static " "linking. For bot to issue update PRs, you must have both an " "abstract specification of the library (e.g., `llvmdev 15.0.*`) " - "and a concrete specificatoon (e.g., `llvmdev 15.0.7 *_5`). The " + "and a concrete specification (e.g., `llvmdev 15.0.7 *_5`). The " "bot will find the latest package that satisfies the abstract " "specification and update the concrete specification to this " "latest package.",