From a18400cb2f6b9935ac45aebd1ccb26573744820d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 10 Nov 2023 06:48:53 -0800 Subject: [PATCH 0001/1216] Bump org.jenkins-ci.plugins:credentials from 1307.v3757c78f17c3 to 1309.v8835d63eb_d8a_ (#8687) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index dcd75f28cd18..f3568ce932f2 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -196,7 +196,7 @@ THE SOFTWARE. org.jenkins-ci.plugins credentials - 1307.v3757c78f17c3 + 1309.v8835d63eb_d8a_ test From 790f77320ba0e73ab58e2eaab0cc4669e6043eb2 Mon Sep 17 00:00:00 2001 From: Mysterious_Dev <40738104+Mysterious-Dev@users.noreply.github.com> Date: Sat, 11 Nov 2023 15:36:25 +0100 Subject: [PATCH 0002/1216] Update French translation for Save button and add one for Apply (#8684) Update configure_fr.properties --- .../main/resources/hudson/model/Job/configure_fr.properties | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/src/main/resources/hudson/model/Job/configure_fr.properties b/core/src/main/resources/hudson/model/Job/configure_fr.properties index 0d1028b10a83..eb6da2e9e368 100644 --- a/core/src/main/resources/hudson/model/Job/configure_fr.properties +++ b/core/src/main/resources/hudson/model/Job/configure_fr.properties @@ -22,6 +22,7 @@ name=Nom du {0} Description=Description -Save=Sauver +Save=Sauvegarder +Apply=Appliquer LOADING=CHARGEMENT Strategy=Stratégie From 3cb552db92b6fa96ba712e787f725a0434a806f5 Mon Sep 17 00:00:00 2001 From: Mysterious_Dev <40738104+Mysterious-Dev@users.noreply.github.com> Date: Sun, 12 Nov 2023 21:47:05 +0100 Subject: [PATCH 0003/1216] French translations for plugin manager (#8685) * No updates available * Search installed plugins * Update index_fr.properties --------- Co-authored-by: Alexander Brandes --- .../main/resources/hudson/PluginManager/installed_fr.properties | 1 + .../main/resources/hudson/PluginManager/updates_fr.properties | 1 + .../hudson/util/HudsonIsRestarting/index_fr.properties | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/core/src/main/resources/hudson/PluginManager/installed_fr.properties b/core/src/main/resources/hudson/PluginManager/installed_fr.properties index f57462593194..6857fd97e690 100644 --- a/core/src/main/resources/hudson/PluginManager/installed_fr.properties +++ b/core/src/main/resources/hudson/PluginManager/installed_fr.properties @@ -20,6 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. +Search\ installed\ plugins=Rechercher les plugins installés No\ plugins\ installed.=Aucun plugin n''est installé. New\ plugins\ will\ take\ effect\ once\ you\ restart\ Jenkins=Les nouveaux plugins seront pris en compte après un redémarrage de Jenkins Changes\ will\ take\ effect\ when\ you\ restart\ Jenkins=Les changements seront pris en compte après un redémarrage de Jenkins diff --git a/core/src/main/resources/hudson/PluginManager/updates_fr.properties b/core/src/main/resources/hudson/PluginManager/updates_fr.properties index 4b7ac87894aa..b17716de3ed1 100644 --- a/core/src/main/resources/hudson/PluginManager/updates_fr.properties +++ b/core/src/main/resources/hudson/PluginManager/updates_fr.properties @@ -29,6 +29,7 @@ Installed=Installé Applying\ this\ update\ will\ address\ security\ vulnerabilities\ in\ the\ currently\ installed\ version.=L'application de cette mise à jour corrigera les failles de sécurité de la version actuellement installée. No\ updates=Aucunes mises à jour Inactive=Inactif +No\ updates\ available=Aucune mise à jour disponible Version=Version compatWarning=Avertissement: Cette nouvelle version n''est pas compatible avec la version installée. Il peut être nécessaire de reconfigurer les tâches utilisant ce plugin. coreWarning=Ce plugin est conçu pour Jenkins {0} ou une version plus récente. Il pourrait ne pas fonctionner avec votre version de Jenkins. diff --git a/core/src/main/resources/hudson/util/HudsonIsRestarting/index_fr.properties b/core/src/main/resources/hudson/util/HudsonIsRestarting/index_fr.properties index 1cf409e873f7..efce31db91aa 100644 --- a/core/src/main/resources/hudson/util/HudsonIsRestarting/index_fr.properties +++ b/core/src/main/resources/hudson/util/HudsonIsRestarting/index_fr.properties @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Restarting \Jenkins=Redémarrage de Jenkins +Restarting\ Jenkins=Redémarrage de Jenkins Please\ wait\ while\ Jenkins\ is\ restarting=Veuillez attendre pendant que Jenkins redémarre Your\ browser\ will\ reload\ automatically\ when\ Jenkins\ is\ ready.=Votre navigateur se rafraîchira automatiquement quand Jenkins sera prêt. Safe\ Restart=Redémarrage sans danger From 4cffdba8399b4c12b41c1f38c58c6cab7b6722c3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 12 Nov 2023 21:47:32 +0100 Subject: [PATCH 0004/1216] Update babel monorepo to v7.23.3 (#8690) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 4 +- war/yarn.lock | 724 ++++++++++++++++++++++++----------------------- 2 files changed, 370 insertions(+), 358 deletions(-) diff --git a/war/package.json b/war/package.json index ba9258f18492..9f26770e2206 100644 --- a/war/package.json +++ b/war/package.json @@ -24,8 +24,8 @@ }, "devDependencies": { "@babel/cli": "7.23.0", - "@babel/core": "7.23.2", - "@babel/preset-env": "7.23.2", + "@babel/core": "7.23.3", + "@babel/preset-env": "7.23.3", "babel-loader": "9.1.3", "clean-webpack-plugin": "4.0.0", "css-loader": "6.8.1", diff --git a/war/yarn.lock b/war/yarn.lock index 9d6c47073ead..dfe85ccecc7d 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -59,45 +59,45 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9, @babel/compat-data@npm:^7.23.2": - version: 7.23.2 - resolution: "@babel/compat-data@npm:7.23.2" - checksum: 0397a08c3e491696cc1b12cf0879bf95fc550bfc6ef524d5a9452981aa0e192a958b2246debfb230fa22718fac473cc5a36616f89b1ad6e7e52055732cd374a1 +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9, @babel/compat-data@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/compat-data@npm:7.23.3" + checksum: c6af331753c34ee8a5678bc94404320826cb56b1dda3efc1311ec8fb0774e78225132f3c1acc988440ace667f14a838e297a822692b95758aa63da406e1f97a1 languageName: node linkType: hard -"@babel/core@npm:7.23.2": - version: 7.23.2 - resolution: "@babel/core@npm:7.23.2" +"@babel/core@npm:7.23.3": + version: 7.23.3 + resolution: "@babel/core@npm:7.23.3" dependencies: "@ampproject/remapping": "npm:^2.2.0" "@babel/code-frame": "npm:^7.22.13" - "@babel/generator": "npm:^7.23.0" + "@babel/generator": "npm:^7.23.3" "@babel/helper-compilation-targets": "npm:^7.22.15" - "@babel/helper-module-transforms": "npm:^7.23.0" + "@babel/helper-module-transforms": "npm:^7.23.3" "@babel/helpers": "npm:^7.23.2" - "@babel/parser": "npm:^7.23.0" + "@babel/parser": "npm:^7.23.3" "@babel/template": "npm:^7.22.15" - "@babel/traverse": "npm:^7.23.2" - "@babel/types": "npm:^7.23.0" + "@babel/traverse": "npm:^7.23.3" + "@babel/types": "npm:^7.23.3" convert-source-map: "npm:^2.0.0" debug: "npm:^4.1.0" gensync: "npm:^1.0.0-beta.2" json5: "npm:^2.2.3" semver: "npm:^6.3.1" - checksum: 14ad6e0a3ac0085dc008e7fb0c8513f0a3e39f2ab883a964a89ef1311338d49cf085c94cb6165c07fdec0fdcc6e865ce4811253c479f9f45ac375226dfe3ad3b + checksum: 08d43b749e24052d12713a7fb1f0c0d1275d4fb056d00846faeb8da79ecf6d0ba91a11b6afec407b8b0f9388d00e2c2f485f282bef0ade4d6d0a17de191a4287 languageName: node linkType: hard -"@babel/generator@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/generator@npm:7.23.0" +"@babel/generator@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/generator@npm:7.23.3" dependencies: - "@babel/types": "npm:^7.23.0" + "@babel/types": "npm:^7.23.3" "@jridgewell/gen-mapping": "npm:^0.3.2" "@jridgewell/trace-mapping": "npm:^0.3.17" jsesc: "npm:^2.5.1" - checksum: b7d8727c574119b5ef06e5d5d0d8d939527d51537db4b08273caebb18f3f2b1d4517b874776085e161fd47d28f26b22c08e7f270b64f43b2afd4a60c5936d6cd + checksum: d5fff1417eecfada040e01a7c77a4968e81c436aeb35815ce85b4e80cd01e731423613d61033044a6cb5563bb8449ee260e3379b63eb50b38ec0a9ea9c00abfd languageName: node linkType: hard @@ -110,16 +110,16 @@ __metadata: languageName: node linkType: hard -"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.5" +"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.15" dependencies: - "@babel/types": "npm:^7.22.5" - checksum: 73a61a56364849770d5569264ba0a5f06035387cafd219d1ae26077f80a1dfb75f240e6abcd991c655641ad8fe066b964261942b4086ba2efc946c807c9d1698 + "@babel/types": "npm:^7.22.15" + checksum: 2535e3824ca6337f65786bbac98e562f71699f25532cecd196f027d7698b4967a96953d64e36567956658ad1a05ccbdc62d1ba79ee751c79f4f1d2d3ecc2e01c languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.5, @babel/helper-compilation-targets@npm:^7.22.6": +"@babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.6": version: 7.22.15 resolution: "@babel/helper-compilation-targets@npm:7.22.15" dependencies: @@ -132,14 +132,14 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.22.11, @babel/helper-create-class-features-plugin@npm:^7.22.5": - version: 7.22.11 - resolution: "@babel/helper-create-class-features-plugin@npm:7.22.11" +"@babel/helper-create-class-features-plugin@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/helper-create-class-features-plugin@npm:7.22.15" dependencies: "@babel/helper-annotate-as-pure": "npm:^7.22.5" "@babel/helper-environment-visitor": "npm:^7.22.5" "@babel/helper-function-name": "npm:^7.22.5" - "@babel/helper-member-expression-to-functions": "npm:^7.22.5" + "@babel/helper-member-expression-to-functions": "npm:^7.22.15" "@babel/helper-optimise-call-expression": "npm:^7.22.5" "@babel/helper-replace-supers": "npm:^7.22.9" "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" @@ -147,20 +147,20 @@ __metadata: semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 6744de8097ff43c6c041ccc17b7dac6e75b019215f14da1acbd5cbebc1146483617c089ed98a6c740fca010e3bc43c737b3cc0631933467cba2841d11d35788f + checksum: 2ae5759fe8845fda99b34f2ba6cd0794fc860213d14c93a87aa9180960252bce621157a79c373b7fbb423b25a55fb0e20eae0d5f8e4ad5ef22dc70e7c2af3805 languageName: node linkType: hard -"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.5" +"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.15, @babel/helper-create-regexp-features-plugin@npm:^7.22.5": + version: 7.22.15 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.15" dependencies: "@babel/helper-annotate-as-pure": "npm:^7.22.5" regexpu-core: "npm:^5.3.1" - semver: "npm:^6.3.0" + semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 134e019881cd985bf329648c2885eee31298e2ef0610ed3ba36dca8dc3a5d17851c61d890acb7904bf72a755182bdca39861079729ca71940f0149ed589c9f85 + checksum: 8eba4c1b7b94a83e7a82df5c3e504584ff0ba6ab8710a67ecc2c434a7fb841a29c2f5c94d2de51f25446119a1df538fa90b37bd570db22ddd5e7147fe98277c6 languageName: node linkType: hard @@ -205,16 +205,16 @@ __metadata: languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-member-expression-to-functions@npm:7.22.5" +"@babel/helper-member-expression-to-functions@npm:^7.22.15": + version: 7.23.0 + resolution: "@babel/helper-member-expression-to-functions@npm:7.23.0" dependencies: - "@babel/types": "npm:^7.22.5" - checksum: c04a71976b2508c6f1fa46562439b74970cea37958e450bcd59363b9c62ac49fb8e3cef544b08264b1d710b3f36214486cb7e1102e4f1ee8e1c2878b5eebcc75 + "@babel/types": "npm:^7.23.0" + checksum: b810daddf093ffd0802f1429052349ed9ea08ef7d0c56da34ffbcdecbdafac86f95bdea2fe30e0e0e629febc7dd41b56cb5eacc10d1a44336d37b755dac31fa4 languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.22.15, @babel/helper-module-imports@npm:^7.22.5": +"@babel/helper-module-imports@npm:^7.22.15": version: 7.22.15 resolution: "@babel/helper-module-imports@npm:7.22.15" dependencies: @@ -223,9 +223,9 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.22.5, @babel/helper-module-transforms@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/helper-module-transforms@npm:7.23.0" +"@babel/helper-module-transforms@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/helper-module-transforms@npm:7.23.3" dependencies: "@babel/helper-environment-visitor": "npm:^7.22.20" "@babel/helper-module-imports": "npm:^7.22.15" @@ -234,7 +234,7 @@ __metadata: "@babel/helper-validator-identifier": "npm:^7.22.20" peerDependencies: "@babel/core": ^7.0.0 - checksum: 15a52e401bd17fe44ba9be51cca693a3e182dc93264dc28ede732081c43211741df81ce8eb15e82e81c8ad51beb8893301ecc31d5c77add0f7be78dff6815318 + checksum: 211e1399d0c4993671e8e5c2b25383f08bee40004ace5404ed4065f0e9258cc85d99c1b82fd456c030ce5cfd4d8f310355b54ef35de9924eabfc3dff1331d946 languageName: node linkType: hard @@ -254,7 +254,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-remap-async-to-generator@npm:^7.22.20, @babel/helper-remap-async-to-generator@npm:^7.22.5": +"@babel/helper-remap-async-to-generator@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-remap-async-to-generator@npm:7.22.20" dependencies: @@ -267,16 +267,16 @@ __metadata: languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.22.5, @babel/helper-replace-supers@npm:^7.22.9": - version: 7.22.9 - resolution: "@babel/helper-replace-supers@npm:7.22.9" +"@babel/helper-replace-supers@npm:^7.22.20, @babel/helper-replace-supers@npm:^7.22.9": + version: 7.22.20 + resolution: "@babel/helper-replace-supers@npm:7.22.20" dependencies: - "@babel/helper-environment-visitor": "npm:^7.22.5" - "@babel/helper-member-expression-to-functions": "npm:^7.22.5" + "@babel/helper-environment-visitor": "npm:^7.22.20" + "@babel/helper-member-expression-to-functions": "npm:^7.22.15" "@babel/helper-optimise-call-expression": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0 - checksum: 9ef42e0d1f81d3377c96449c82666d54daea86db9f352915d2aff7540008cd65f23574bc97a74308b6203f7a8c6bf886d1cc1fa24917337d3d12ea93cb2a53a8 + checksum: 6b0858811ad46873817c90c805015d63300e003c5a85c147a17d9845fa2558a02047c3cc1f07767af59014b2dd0fa75b503e5bc36e917f360e9b67bb6f1e79f4 languageName: node linkType: hard @@ -361,36 +361,48 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/parser@npm:7.23.0" +"@babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/parser@npm:7.23.3" bin: parser: ./bin/babel-parser.js - checksum: ab4ea9360ed4ba3c728c5a9bf33035103ebde20a7e943c4ae1d42becb02a313d731d12a93c795c5a19777031e4022e64b92a52262eda902522a1a18649826283 + checksum: 0fe11eadd4146a9155305b5bfece0f8223a3b1b97357ffa163c0156940de92e76cd0e7a173de819b8692767147e62f33389b312d1537f84cede51092672df6ef languageName: node linkType: hard -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.22.15" +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0 - checksum: fb2288ac168e6670a77f73b92e835f7a579468435e81c9261729e9ba9c601ff22622bacd3e71eb190b135016a6fbab5d824501c7b91733dd379022a75163806c + checksum: 356a4e9fc52d7ca761ce6857fc58e2295c2785d22565760e6a5680be86c6e5883ab86e0ba25ef572882c01713d3a31ae6cfa3e3222cdb95e6026671dab1fa415 languageName: node linkType: hard -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.22.15" +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" - "@babel/plugin-transform-optional-chaining": "npm:^7.22.15" + "@babel/plugin-transform-optional-chaining": "npm:^7.23.3" peerDependencies: "@babel/core": ^7.13.0 - checksum: 46fb46af40446918d64530f544ea0104e274ccd8a16b8a8f6fa2e51a198af6ac2b620aaf8875f3427671f09717949a584c79fe20f521245214f50b8de56cd116 + checksum: a8785f099d55ca71ed89815e0f3a636a80c16031f80934cfec17c928d096ee0798964733320c8b145ef36ba429c5e19d5107b06231e0ab6777cfb0f01adfdc23 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.23.3" + dependencies: + "@babel/helper-environment-visitor": "npm:^7.22.20" + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 0f43b74741d50e637ba4dcef2786621126fe4da6ccf4ee2e94423ee23f6a04ecd91d458e59764c43e4968be139e5197ee43be8a2fea2c09f0b202a3391e548cc languageName: node linkType: hard @@ -458,25 +470,25 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-assertions@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-syntax-import-assertions@npm:7.22.5" +"@babel/plugin-syntax-import-assertions@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b297d7c757c746ed0ef3496ad749ae2ce648ec73dae5184120b191c280e62da7dc104ee126bc0053dfece3ce198a5ee7dc1cbf4768860f666afef5dee84a7146 + checksum: 7db8b59f75667bada2293353bb66b9d5651a673b22c72f47da9f5c46e719142481601b745f9822212fd7522f92e26e8576af37116f85dae1b5e5967f80d0faab languageName: node linkType: hard -"@babel/plugin-syntax-import-attributes@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-syntax-import-attributes@npm:7.22.5" +"@babel/plugin-syntax-import-attributes@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: de0b104a82cb8ffdc29472177210936609b973665a2ad8ef26c078251d7c728fbd521119de4c417285408a8bae345b5da09cd4a4a3311619f71b9b2c64cce3fa + checksum: 99b40d33d79205a8e04bb5dea56fd72906ffc317513b20ca7319e7683e18fce8ea2eea5e9171056f92b979dc0ab1e31b2cb5171177a5ba61e05b54fe7850a606 languageName: node linkType: hard @@ -602,20 +614,20 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.22.5" +"@babel/plugin-transform-arrow-functions@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 1b24d47ddac6ae2fe8c7fab9a020fdb6a556d17d8c5f189bb470ff2958a5437fe6441521fd3d850f4283a1131d7a0acf3e8ebe789f9077f54bab4e2e8c6df176 + checksum: b128315c058f5728d29b0b78723659b11de88247ea4d0388f0b935cddf60a80c40b9067acf45cbbe055bd796928faef152a09d9e4a0695465aca4394d9f109ca languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.23.2": - version: 7.23.2 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.2" +"@babel/plugin-transform-async-generator-functions@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.3" dependencies: "@babel/helper-environment-visitor": "npm:^7.22.20" "@babel/helper-plugin-utils": "npm:^7.22.5" @@ -623,289 +635,289 @@ __metadata: "@babel/plugin-syntax-async-generators": "npm:^7.8.4" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 16d7bd5dbd67991ab320a46ada19a9a0c8364725603c731f152afc98ee8764dc738c93f081a7560906d265b78c376bccabf3e31b9f99071c8982a6f9c8e2ac45 + checksum: e846f282658e097fce4fccf3ee29289bf05f0654846a5994727a36f0cdc2e47abdffd4be4fa65787e94aa975824fae894c90afbfdc8caacd46c12c7f43e99d7f languageName: node linkType: hard -"@babel/plugin-transform-async-to-generator@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-async-to-generator@npm:7.22.5" +"@babel/plugin-transform-async-to-generator@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.23.3" dependencies: - "@babel/helper-module-imports": "npm:^7.22.5" + "@babel/helper-module-imports": "npm:^7.22.15" "@babel/helper-plugin-utils": "npm:^7.22.5" - "@babel/helper-remap-async-to-generator": "npm:^7.22.5" + "@babel/helper-remap-async-to-generator": "npm:^7.22.20" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2972f22c3a5a56a8b225f4fa1bbdbcf6e989e0da460d5f4e2280652b1433d7c68b6ddc0cc2affc4b59905835133a253a31c24c7ca1bebe1a2f28377d27b4ca1c + checksum: da3ffd413eef02a8e2cfee3e0bb0d5fc0fcb795c187bc14a5a8e8874cdbdc43bbf00089c587412d7752d97efc5967c3c18ff5398e3017b9a14a06126f017e7e9 languageName: node linkType: hard -"@babel/plugin-transform-block-scoped-functions@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.22.5" +"@babel/plugin-transform-block-scoped-functions@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 21878d4f0040f5001c4a14e17759e80bf699cb883a497552fa882dbc05230b100e8572345654b091021d5c4227555ed2bf40c8d6ba16a54d81145abfe0022cf8 + checksum: 82c12a11277528184a979163de7189ceb00129f60dd930b0d5313454310bf71205f302fb2bf0430247161c8a22aaa9fb9eec1459f9f7468206422c191978fd59 languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/plugin-transform-block-scoping@npm:7.23.0" +"@babel/plugin-transform-block-scoping@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-block-scoping@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f5d0822a4e2bb3a0b5172f01f8c107999b880f0e538a9c1bae3c7720e85d8d117a67167f5e8eba909e0ec3db67be3b30e7f5c83211dd4be5c7096222071571be + checksum: ccaeded7954c196811d22a35322579254cda52676e823682b6234885a3aaf88fe0d5152dacaec43db9031dcf35a050a5343e36028e5905b0ba9c02d36b30a57f languageName: node linkType: hard -"@babel/plugin-transform-class-properties@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-class-properties@npm:7.22.5" +"@babel/plugin-transform-class-properties@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-class-properties@npm:7.23.3" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.22.5" + "@babel/helper-create-class-features-plugin": "npm:^7.22.15" "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 707f976d3aea2b52dad36a5695a71af8956f9b1d5dec02c2b8cce7ff3b5e60df4cbe059c71ae0b7983034dc639de654a2c928b97e4e01ebf436d58ea43639e7d + checksum: bca30d576f539eef216494b56d610f1a64aa9375de4134bc021d9660f1fa735b1d7cc413029f22abc0b7cb737e3a57935c8ae9d8bd1730921ccb1deebce51bfd languageName: node linkType: hard -"@babel/plugin-transform-class-static-block@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-class-static-block@npm:7.22.11" +"@babel/plugin-transform-class-static-block@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-class-static-block@npm:7.23.3" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.22.11" + "@babel/helper-create-class-features-plugin": "npm:^7.22.15" "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" peerDependencies: "@babel/core": ^7.12.0 - checksum: 74c06f315dbeb101784682f89d6e40a46b243132b63f430ac9ee5781d3fedff57fc6bf7390aa2b19d44a9d7e49a1e70e572bdde1907480881204ef33163b9630 + checksum: 89cdb66d7bc834cd51659eb7286a6bee23add0bc114943d68c4b6c0c834178cf0d55183df0cf508fec9c55ed4155641360e6f55a91c16fe826ccaf1adf381922 languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/plugin-transform-classes@npm:7.22.15" +"@babel/plugin-transform-classes@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-classes@npm:7.23.3" dependencies: "@babel/helper-annotate-as-pure": "npm:^7.22.5" "@babel/helper-compilation-targets": "npm:^7.22.15" - "@babel/helper-environment-visitor": "npm:^7.22.5" - "@babel/helper-function-name": "npm:^7.22.5" + "@babel/helper-environment-visitor": "npm:^7.22.20" + "@babel/helper-function-name": "npm:^7.23.0" "@babel/helper-optimise-call-expression": "npm:^7.22.5" "@babel/helper-plugin-utils": "npm:^7.22.5" - "@babel/helper-replace-supers": "npm:^7.22.9" + "@babel/helper-replace-supers": "npm:^7.22.20" "@babel/helper-split-export-declaration": "npm:^7.22.6" globals: "npm:^11.1.0" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c9342bcf41e0253d83d9f73c4f9d2c9f885c0412f58ebfe462d57579c8247b949cbb023f15383d18c89fe5d12b537633e2ca4ba906ce47238615bc679beafb55 + checksum: 88bfd332db0ba5cbfb8557a2ba5a7185151aebc9cfe3035b014aa6d795556acbe672bb8c78da3c9fd1d23f55a333d14b5daa127ef037f5ced5198b6d79a146d6 languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-computed-properties@npm:7.22.5" +"@babel/plugin-transform-computed-properties@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-computed-properties@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" - "@babel/template": "npm:^7.22.5" + "@babel/template": "npm:^7.22.15" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 22ecea23c1635083f5473092c5fbca62cbf7a85764bcf3e704c850446d68fe946097f6001c4cbfc92b4aee27ed30b375773ee479f749293e41fdb8f1fb8fcb67 + checksum: 3ca8a006f8e652b58c21ecb84df1d01a73f0a96b1d216fd09a890b235dd90cb966b152b603b88f7e850ae238644b1636ce5c30b7c029c0934b43383932372e4a languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/plugin-transform-destructuring@npm:7.23.0" +"@babel/plugin-transform-destructuring@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-destructuring@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 038505eabdde2e1bb3bb904e50292b263d61d35e18660f751e7753b5723e2a5a5903a493290d772c8598da98c2c904b7cf45552ad1c11636fcb78f60754abd53 + checksum: 717e9a62c1b0c93c507f87b4eaf839ec08d3c3147f14d74ae240d8749488d9762a8b3950132be620a069bde70f4b3e4ee9867b226c973fcc40f3cdec975cde71 languageName: node linkType: hard -"@babel/plugin-transform-dotall-regex@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-dotall-regex@npm:7.22.5" +"@babel/plugin-transform-dotall-regex@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.23.3" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.22.5" + "@babel/helper-create-regexp-features-plugin": "npm:^7.22.15" "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e0d7b95380483ef563c13f7c0a2122f575c58708cfb56494d6265ebb31753cf46ee0b3f5126fa6bbea5af392b3a2da05bf1e028d0b2b4d1dc279edd67cf3c3d9 + checksum: 6c89286d1277c2a63802a453c797c87c1203f89e4c25115f7b6620f5fce15d8c8d37af613222f6aa497aa98773577a6ec8752e79e13d59bc5429270677ea010b languageName: node linkType: hard -"@babel/plugin-transform-duplicate-keys@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-duplicate-keys@npm:7.22.5" +"@babel/plugin-transform-duplicate-keys@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 82772fdcc1301358bc722c1316bea071ad0cd5893ca95b08e183748e044277a93ee90f9c641ac7873a00e4b31a8df7cf8c0981ca98d01becb4864a11b22c09d1 + checksum: 7e2640e4e6adccd5e7b0615b6e9239d7c98363e21c52086ea13759dfa11cf7159b255fc5331c2de435639ea8eb6acefae115ae0d797a3d19d12587652f8052a5 languageName: node linkType: hard -"@babel/plugin-transform-dynamic-import@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-dynamic-import@npm:7.22.11" +"@babel/plugin-transform-dynamic-import@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: cf0dd2d3da42ae18ccfa54bef7c80bf26b3bcc48751fc38dd41ad47bc14cc76ca8ec692f39f8b1ef54b3f48eff8db79e6397e4653033bb3a64e433f3c3a43edf + checksum: df3fd130312dc53d068fa76333991dce5e86987b023af8c3b502bd7d36a8e67da6f718e61dc838576a9fbacd06628e29607ee22d9bae30705485c14130eab201 languageName: node linkType: hard -"@babel/plugin-transform-exponentiation-operator@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.22.5" +"@babel/plugin-transform-exponentiation-operator@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.23.3" dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.22.5" + "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.22.15" "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e8832460cfc9e087561fa42a796bb4eb181e6983d6db85c6dcec15f98af4ae3d13fcab18a262252a43b075d79ac93aaa38d33022bc5a870d2760c6888ba5d211 + checksum: 5c33ee6a1bdc52fcdf0807f445b27e3fbdce33008531885e65a699762327565fffbcfde8395be7f21bcb22d582e425eddae45650c986462bb84ba68f43687516 languageName: node linkType: hard -"@babel/plugin-transform-export-namespace-from@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-export-namespace-from@npm:7.22.11" +"@babel/plugin-transform-export-namespace-from@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2b65ddf9ab4cfa8ffc72983c689b99d9ce0fe74846c2e518a1955f703e1fe073d0865810959164800613c3235a29cf9cae3567a46bf9cb53a2384469d3913e85 + checksum: 390c6626dcda99023629049d92090242b4575351a4a7b47f97febabd2381f2cd0f624de661d8de8d1f715fedd63753cfd1feddead19e5960c27b88e447465b81 languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/plugin-transform-for-of@npm:7.22.15" +"@babel/plugin-transform-for-of@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-for-of@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 64182292f4be8cdf1fff06fe62ba110bf5e5dbb5d966d5e8871ef40a673cd934217da51b9f4a4ba303ca936be787f30e3d13a91fe410339de79e0fe9f0807e15 + checksum: 8a36202cfee312ba80e509c7c2131e6773524e572b4dc64a8ee95bd912634fdeb5ea91c6c7747ee30e03562d0f0d333f88ed7dbb929b36b60b8d74189189e12f languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-function-name@npm:7.22.5" +"@babel/plugin-transform-function-name@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-function-name@npm:7.23.3" dependencies: - "@babel/helper-compilation-targets": "npm:^7.22.5" - "@babel/helper-function-name": "npm:^7.22.5" + "@babel/helper-compilation-targets": "npm:^7.22.15" + "@babel/helper-function-name": "npm:^7.23.0" "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 206bdef2ff91c29a7d94c77778ad79f18bdb2cd6a30179449f2b95af04637cb68d96625dc673d9a0961b6b7088bd325bbed7540caf9aa8f69e5b003d6ba20456 + checksum: 89cb9747802118048115cf92a8f310752f02030549b26f008904990cbdc86c3d4a68e07ca3b5c46de8a46ed4df2cb576ac222c74c56de67253d2a3ddc2956083 languageName: node linkType: hard -"@babel/plugin-transform-json-strings@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-json-strings@npm:7.22.11" +"@babel/plugin-transform-json-strings@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-json-strings@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/plugin-syntax-json-strings": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 90f46a99c4136187d16f30f1f5f51e479c919edb6f6b4ce43fe81fdae2c89a556a0a6f6f2ec7ea3de7014a504f6df2220e3bc19dd7011f76bd275c195842f886 + checksum: e1cef6a485b9da32aba9449fb459dac062dfc401f3d6ad48e7fbdcb73bbe470c995cc15ce5c421b95efe1e9a90d5507eb606360fe10b6d8cb869dd5dae7a2562 languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-literals@npm:7.22.5" +"@babel/plugin-transform-literals@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-literals@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 1003d0cf98e9ae432889bcf5f3d5f7d463f777fc2c74b0d4a1a93b51e83606c263a16146e34f0a06b291300aa5f2001d6e8bf65ed1bf478ab071b714bf158aa5 + checksum: 8292106b106201464c2bfdd5c014fe6a9ca1c0256eb0a8031deb20081e21906fe68b156186f77d993c23eeab6d8d6f5f66e8895eec7ed97ce6de5dbcafbcd7f4 languageName: node linkType: hard -"@babel/plugin-transform-logical-assignment-operators@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.22.11" +"@babel/plugin-transform-logical-assignment-operators@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 9810f7918514bd59579ccc0950b4f352569abb40959569d38931e57f11e6b9aa920bdef403ffd8cd5d4e0243e0bbf7a1ebb445f3428c8b7a2421568ff2f681be + checksum: 23b7588b26d420c8b132bd08916d49871ca0c8db892f6b58637b10e2a0d918163d413c505db880a9157fc2e61d089040f139298a60d837ccbd0efca0474ac7ca languageName: node linkType: hard -"@babel/plugin-transform-member-expression-literals@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-member-expression-literals@npm:7.22.5" +"@babel/plugin-transform-member-expression-literals@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 731a341b17511809ae435b64822d4d093e86fd928b572028e6742bdfba271c57070860b0f3da080a76c5574d58c4f369fac3f7bf0f450b37920c0fc6fe27bb4e + checksum: 687f24f3ec60b627fef6e87b9e2770df77f76727b9d5f54fa4c84a495bb24eb4a20f1a6240fa22d339d45aac5eaeb1b39882e941bfd00cf498f9c53478d1ec88 languageName: node linkType: hard -"@babel/plugin-transform-modules-amd@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/plugin-transform-modules-amd@npm:7.23.0" +"@babel/plugin-transform-modules-amd@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-modules-amd@npm:7.23.3" dependencies: - "@babel/helper-module-transforms": "npm:^7.23.0" + "@babel/helper-module-transforms": "npm:^7.23.3" "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: dda02864029ff66955e21d19c3d245aad69792b75e748de1391403bc86c8e9720b4f320b0db8413a29c11ba63b168146cf849180b5677bc6a74bfd085d20376d + checksum: 9f7ec036f7cfc588833a4dd117a44813b64aa4c1fd5bfb6c78f60198c1d290938213090c93a46f97a68a2490fad909e21a82b2472e95da74d108c125df21c8d5 languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.23.0" +"@babel/plugin-transform-modules-commonjs@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.23.3" dependencies: - "@babel/helper-module-transforms": "npm:^7.23.0" + "@babel/helper-module-transforms": "npm:^7.23.3" "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/helper-simple-access": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 1f015764c2e63445d46660e7a2eb9002c20def04daf98fa93c9dadb5bd55adbefefd1ccdc11bcafa5e2f04275939d2414482703bc35bc60d6ca2bf1f67b720e3 + checksum: 5c8840c5c9ecba39367ae17c973ed13dbc43234147b77ae780eec65010e2a9993c5d717721b23e8179f7cf49decdd325c509b241d69cfbf92aa647a1d8d5a37d languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.23.0" +"@babel/plugin-transform-modules-systemjs@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.23.3" dependencies: "@babel/helper-hoist-variables": "npm:^7.22.5" - "@babel/helper-module-transforms": "npm:^7.23.0" + "@babel/helper-module-transforms": "npm:^7.23.3" "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/helper-validator-identifier": "npm:^7.22.20" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 04c5cef7d6921bb9c9073cea389289099124e78cd1e3b7e020e3c085d486b48efadd9a42c0c0d963a9b1c3d5465c3151229092ea719997e53427f36935c84178 + checksum: 0d55280a276510222c8896bf4e581acb84824aa5b14c824f7102242ad6bc5104aaffe5ab22fe4d27518f4ae2811bd59c36d0c0bfa695157f9cfce33f0517a069 languageName: node linkType: hard -"@babel/plugin-transform-modules-umd@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-modules-umd@npm:7.22.5" +"@babel/plugin-transform-modules-umd@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-modules-umd@npm:7.23.3" dependencies: - "@babel/helper-module-transforms": "npm:^7.22.5" + "@babel/helper-module-transforms": "npm:^7.23.3" "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f4a40e18986182a2b1be6af949aaff67a7d112af3d26bbd4319d05b50f323a62a10b32b5584148e4630bdffbd4d85b31c0d571fe4f601354898b837b87afca4c + checksum: f0d2f890a15b4367d0d8f160bed7062bdb145c728c24e9bfbc1211c7925aae5df72a88df3832c92dd2011927edfed4da1b1249e4c78402e893509316c0c2caa6 languageName: node linkType: hard @@ -921,285 +933,286 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-new-target@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-new-target@npm:7.22.5" +"@babel/plugin-transform-new-target@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-new-target@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 22ead0668bfd8db9166a4a47579d9f44726b59f21104561a6dd851156336741abdc5c576558e042c58c4b4fd577d3e29e4bd836021007f3381c33fe3c88dca19 + checksum: f489b9e1f17b42b2ba6312d58351e757cb23a8409f64f2bb6af4c09d015359588a5d68943b20756f141d0931a94431c782f3ed1225228a930a04b07be0c31b04 languageName: node linkType: hard -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.22.11" +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 328c0ebfbbc82256af00252fb795996b093f57b528a57afcb30843ca52d24a6d824029ad6d22f042f3af336bb4dc1963b4841c2ad774424b02d14ae7cfff2701 + checksum: f960faed3975c8454c52d2b5d85daf0c9a27677b248d7933882e59b10202ade2a98c7b925ce0bae2b8eb4d66eb5d63a5588c1090d54eaa4cd235533d71228ff3 languageName: node linkType: hard -"@babel/plugin-transform-numeric-separator@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-numeric-separator@npm:7.22.11" +"@babel/plugin-transform-numeric-separator@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: fcde065002948c9c39f853be99c38b02aa1a1eb453e70ab1a164feb250c1fcbf1edd38071e28ed8bde6840b8a394af8b291b2ab2d793f283872ba43f89cf6dd2 + checksum: d3748cce20e8752e61dfda55e275c699459a3ff8d0bb46585da813136e04066b1ce70b71beef504fcdc8d4cca3c955112cea96d5e9fd5a42a5bc8956d05236c2 languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.22.15" +"@babel/plugin-transform-object-rest-spread@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.23.3" dependencies: - "@babel/compat-data": "npm:^7.22.9" + "@babel/compat-data": "npm:^7.23.3" "@babel/helper-compilation-targets": "npm:^7.22.15" "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" - "@babel/plugin-transform-parameters": "npm:^7.22.15" + "@babel/plugin-transform-parameters": "npm:^7.23.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c485084360607a4392227d8af461e0f313953a6088221826668f90e92df6e16da04e2b3424e283c2980586095430d1068ae6e549b828dfa3891e2d1a397bd034 + checksum: 31ab631aaba945c118662943e5f1f54a21f07d64f06e06b25d55871168c460f3eeeccdf7b05aa74a1340e2cfbe781ad3c7ceccd0c2585d39f7b73ba11ebaa9d0 languageName: node linkType: hard -"@babel/plugin-transform-object-super@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-object-super@npm:7.22.5" +"@babel/plugin-transform-object-super@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-object-super@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" - "@babel/helper-replace-supers": "npm:^7.22.5" + "@babel/helper-replace-supers": "npm:^7.22.20" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 062a78ff897c095a71f0db577bd4e4654659d542cb9ef79ec0fda7873ee6fefe31a0cb8a6c2e307e16dacaae1f50d48572184a59e1235b8d9d9cb2f38c4259ce + checksum: a6856fd8c0afbe5b3318c344d4d201d009f4051e2f6ff6237ff2660593e93c5997a58772b13d639077c3e29ced3440247b29c496cd77b13af1e7559a70009775 languageName: node linkType: hard -"@babel/plugin-transform-optional-catch-binding@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.22.11" +"@babel/plugin-transform-optional-catch-binding@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6a731f4fee93397634b088ef7de990c150ea1c29e2cf681b2520d9196888d79a4252cbcc497d9b0db0453160ea2267043036fee4ccea8964864ef1b55a40d76f + checksum: 85ac1e94ee8f21648816151628ff931cc16143ec8c904649a1ecfd8960160290eccc5a197b4ae3ee7a1c7a27a7c4189e61b4de24483d5bad4040784afe2d206f languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.22.15, @babel/plugin-transform-optional-chaining@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.23.0" +"@babel/plugin-transform-optional-chaining@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2bf605b908c75f8d7616e8be52e4656983f2b027032260fbf5279f28297a67a1a28ec3ed60cd5760537dbd08a021246b8092ce06fb2418884390230b807142b3 + checksum: 2b358962169d871392aa292a67527e5335909438da0ddbb0d19e7838c0f8a2081cc751a49e6e534ac4d6c932254531a205ac22b197f64fc4c89f41bf9f595497 languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/plugin-transform-parameters@npm:7.22.15" +"@babel/plugin-transform-parameters@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-parameters@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 9b9faf55b20aea4755a66db75e1195f7a203b4cfeef0ed5ceb25d6364bbb7a5bd0b5c587489c37ab339c4e4e7275406d0db0c05c25aa731a3cf6b4cc51e97c8d + checksum: a8d4cbe0f6ba68d158f5b4215c63004fc37a1fdc539036eb388a9792017c8496ea970a1932ccb929308f61e53dc56676ed01d8df6f42bc0a85c7fd5ba82482b7 languageName: node linkType: hard -"@babel/plugin-transform-private-methods@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-private-methods@npm:7.22.5" +"@babel/plugin-transform-private-methods@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-private-methods@npm:7.23.3" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.22.5" + "@babel/helper-create-class-features-plugin": "npm:^7.22.15" "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a62f2e47ca30f6b8043201483c5a505e3d54416e6ddfbe7cb696a1db853a4281b1fffee9f883fe26ac72ba02bba0db5832d69e02f2eb4746e9811b8779287cc1 + checksum: 745a655edcd111b7f91882b921671ca0613079760d8c9befe336b8a9bc4ce6bb49c0c08941831c950afb1b225b4b2d3eaac8842e732db095b04db38efd8c34f4 languageName: node linkType: hard -"@babel/plugin-transform-private-property-in-object@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-private-property-in-object@npm:7.22.11" +"@babel/plugin-transform-private-property-in-object@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.23.3" dependencies: "@babel/helper-annotate-as-pure": "npm:^7.22.5" - "@babel/helper-create-class-features-plugin": "npm:^7.22.11" + "@babel/helper-create-class-features-plugin": "npm:^7.22.15" "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: ec1ed8cc5483b8661e2cf7c020ffefe2a85e793a353d580c4174686923e465cdfaf13fc344ebb2eead4a1dbecd49baba93e342a9de400a29abedb79dcc6745a2 + checksum: 9211dd25a6e87a01535f2d97a663fa6de3472b963c8dcfaacce229a2e3fa6500f2e9fc690bc100a540fc7b66c8364faf7ef19b32e9c9b9791e4561b742c15ed3 languageName: node linkType: hard -"@babel/plugin-transform-property-literals@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-property-literals@npm:7.22.5" +"@babel/plugin-transform-property-literals@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-property-literals@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 8d25b7b01b5f487cfc1a296555273c1ddad45276f01039130f57eb9ab0fafa0560d10d972323071042e73ac3b8bab596543c9d1a877229624a52e6535084ea51 + checksum: b2549f23f90cf276c2e3058c2225c3711c2ad1c417e336d3391199445a9776dd791b83be47b2b9a7ae374b40652d74b822387e31fa5267a37bf49c122e1a9747 languageName: node linkType: hard -"@babel/plugin-transform-regenerator@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/plugin-transform-regenerator@npm:7.22.10" +"@babel/plugin-transform-regenerator@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-regenerator@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" regenerator-transform: "npm:^0.15.2" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b903bfc1e849ca956a981a199b4913c0998877b6ba759f6d64530c5106610f89a818d61471a9c1bdabb6d94ba4ba150febeb4d196f6a8e67fcdc44207bb8fef6 + checksum: 3b0e989ae5db78894ee300b24e07fbcec490c39ab48629c519377581cf94e90308f4ddc10a8914edc9f403e2d3ac7a7ae0ae09003629d852da03e2ba846299c6 languageName: node linkType: hard -"@babel/plugin-transform-reserved-words@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-reserved-words@npm:7.22.5" +"@babel/plugin-transform-reserved-words@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-reserved-words@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 3ee861941b1d3f9e50f1bb97a2067f33c868b8cd5fd3419a610b2ad5f3afef5f9e4b3740d26a617dc1a9e169a33477821d96b6917c774ea87cac6790d341abbd + checksum: 4e6d61f6c9757592661cfbd2c39c4f61551557b98cb5f0995ef10f5540f67e18dde8a42b09716d58943b6e4b7ef5c9bcf19902839e7328a4d49149e0fecdbfcd languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.22.5" +"@babel/plugin-transform-shorthand-properties@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d2dd6b7033f536dd74569d7343bf3ca88c4bc12575e572a2c5446f42a1ebc8e69cec5e38fc0e63ac7c4a48b944a3225e4317d5db94287b9a5b381a5045c0cdb2 + checksum: c423c66fec0b6503f50561741754c84366ef9e9818442c8881fbaa90cc363fd137084b9431cdc00ed2f1fd8c8a1a5982c4a7e1f2af3769db4caf2ac7ea55d4f0 languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-spread@npm:7.22.5" +"@babel/plugin-transform-spread@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-spread@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f8896b00d69557a4aafb3f48b7db6fbaa8462588e733afc4eabfdf79b12a6aed7d20341d160d704205591f0a43d04971d391fa80328f61240d1edc918079a1b0 + checksum: a348e4ae47e4ceeceb760506ec7bf835ccc18a2cf70ec74ebfbe41bc172fa2412b05b7d1b86836f8aee375e41a04ff20486074778d0e2d19d668b33dc52e9dbb languageName: node linkType: hard -"@babel/plugin-transform-sticky-regex@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-sticky-regex@npm:7.22.5" +"@babel/plugin-transform-sticky-regex@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 42d9295d357415b55c04967ff1cd124cdcbabf2635614f9ad4f8b372d9ae35f6c02bf7473a5418b91e75235960cb1e61493e2c0581cb55bf9719b0986bcd22a5 + checksum: cd15c407906b41e4b924ea151e455c11274dba050771ee7154ad88a1a274140ac5e84efc8d08c4379f2f0cec8a09e4a0a3b2a3a954ba6a67d9fb35df1c714c56 languageName: node linkType: hard -"@babel/plugin-transform-template-literals@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-template-literals@npm:7.22.5" +"@babel/plugin-transform-template-literals@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-template-literals@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 1fc597716edf9f5c7bc74e2fead4d7751467500486dd17092af90ccbd65c5fc4a1db2e9c86e9ed1a9f206f6a3403bbc07eab50b0c2b8e50f819b4118f2cf71ef + checksum: 9b5f43788b9ffcb8f2b445a16b1aa40fcf23cb0446a4649445f098ec6b4cb751f243a535da623d59fefe48f4c40552f5621187a61811779076bab26863e3373d languageName: node linkType: hard -"@babel/plugin-transform-typeof-symbol@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.22.5" +"@babel/plugin-transform-typeof-symbol@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 277084dd3e873d62541f683173c7cf33b8317f7714335b7e861cc5b4b76f09acbf532a4c9dfbcf7756d29bc07b94b48bd9356af478f424865a86c7d5798be7c0 + checksum: 50e81d84c6059878be2a0e41e0d790cab10882cfb8fa85e8c2665ccb0b3cd7233f49197f17427bc7c1b36c80e07076640ecf1b641888d78b9cb91bc16478d84a languageName: node linkType: hard -"@babel/plugin-transform-unicode-escapes@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.22.10" +"@babel/plugin-transform-unicode-escapes@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 68425d56698650087faa33fe40adf8bde32efc1d05ce564f02b62526e7f5b2f4633278b0a10ee2e7e36fb89c79c3330c730d96b8a872acea4702c5645cee98f8 + checksum: f1ed54742dc982666f471df5d087cfda9c6dbf7842bec2d0f7893ed359b142a38c0210358f297ab5c7a3e11ec0dfb0e523de2e2edf48b62f257aaadd5f068866 languageName: node linkType: hard -"@babel/plugin-transform-unicode-property-regex@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.22.5" +"@babel/plugin-transform-unicode-property-regex@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.23.3" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.22.5" + "@babel/helper-create-regexp-features-plugin": "npm:^7.22.15" "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: da424c1e99af0e920d21f7f121fb9503d0771597a4bd14130fb5f116407be29e9340c049d04733b3d8a132effe4f4585fe3cc9630ae3294a2df9199c8dfd7075 + checksum: dca5702d43fac70351623a12e4dfa454fd028a67498888522b644fd1a02534fabd440106897e886ebcc6ce6a39c58094ca29953b6f51bc67372aa8845a5ae49f languageName: node linkType: hard -"@babel/plugin-transform-unicode-regex@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-unicode-regex@npm:7.22.5" +"@babel/plugin-transform-unicode-regex@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.23.3" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.22.5" + "@babel/helper-create-regexp-features-plugin": "npm:^7.22.15" "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 4cfaf4bb724a5c55a6fb5b0ee6ebbeba78dc700b9bc0043715d4b37409d90b43c888735c613690a1ec0d8d8e41a500b9d3f0395aa9f55b174449c8407663684b + checksum: df824dcca2f6e731f61d69103e87d5dd974d8a04e46e28684a4ba935ae633d876bded09b8db890fd72d0caf7b9638e2672b753671783613cc78d472951e2df8c languageName: node linkType: hard -"@babel/plugin-transform-unicode-sets-regex@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.22.5" +"@babel/plugin-transform-unicode-sets-regex@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.23.3" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.22.5" + "@babel/helper-create-regexp-features-plugin": "npm:^7.22.15" "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0 - checksum: af37b468332db051f0aaa144adbfab39574e570f613e121b58a551e3cbb7083c9f8c32a83ba2641172a4065128052643468438c19ad098cd62b2d97140dc483e + checksum: 30fe1d29af8395a867d40a63a250ca89072033d9bc7d4587eeebeaf4ad7f776aab83064321bfdb1d09d7e29a1d392852361f4f60a353f0f4d1a3b435dcbf256b languageName: node linkType: hard -"@babel/preset-env@npm:7.23.2": - version: 7.23.2 - resolution: "@babel/preset-env@npm:7.23.2" +"@babel/preset-env@npm:7.23.3": + version: 7.23.3 + resolution: "@babel/preset-env@npm:7.23.3" dependencies: - "@babel/compat-data": "npm:^7.23.2" + "@babel/compat-data": "npm:^7.23.3" "@babel/helper-compilation-targets": "npm:^7.22.15" "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/helper-validator-option": "npm:^7.22.15" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.22.15" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.22.15" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.23.3" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.23.3" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.23.3" "@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators": "npm:^7.8.4" "@babel/plugin-syntax-class-properties": "npm:^7.12.13" "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" - "@babel/plugin-syntax-import-assertions": "npm:^7.22.5" - "@babel/plugin-syntax-import-attributes": "npm:^7.22.5" + "@babel/plugin-syntax-import-assertions": "npm:^7.23.3" + "@babel/plugin-syntax-import-attributes": "npm:^7.23.3" "@babel/plugin-syntax-import-meta": "npm:^7.10.4" "@babel/plugin-syntax-json-strings": "npm:^7.8.3" "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" @@ -1211,56 +1224,55 @@ __metadata: "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" "@babel/plugin-syntax-top-level-await": "npm:^7.14.5" "@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6" - "@babel/plugin-transform-arrow-functions": "npm:^7.22.5" - "@babel/plugin-transform-async-generator-functions": "npm:^7.23.2" - "@babel/plugin-transform-async-to-generator": "npm:^7.22.5" - "@babel/plugin-transform-block-scoped-functions": "npm:^7.22.5" - "@babel/plugin-transform-block-scoping": "npm:^7.23.0" - "@babel/plugin-transform-class-properties": "npm:^7.22.5" - "@babel/plugin-transform-class-static-block": "npm:^7.22.11" - "@babel/plugin-transform-classes": "npm:^7.22.15" - "@babel/plugin-transform-computed-properties": "npm:^7.22.5" - "@babel/plugin-transform-destructuring": "npm:^7.23.0" - "@babel/plugin-transform-dotall-regex": "npm:^7.22.5" - "@babel/plugin-transform-duplicate-keys": "npm:^7.22.5" - "@babel/plugin-transform-dynamic-import": "npm:^7.22.11" - "@babel/plugin-transform-exponentiation-operator": "npm:^7.22.5" - "@babel/plugin-transform-export-namespace-from": "npm:^7.22.11" - "@babel/plugin-transform-for-of": "npm:^7.22.15" - "@babel/plugin-transform-function-name": "npm:^7.22.5" - "@babel/plugin-transform-json-strings": "npm:^7.22.11" - "@babel/plugin-transform-literals": "npm:^7.22.5" - "@babel/plugin-transform-logical-assignment-operators": "npm:^7.22.11" - "@babel/plugin-transform-member-expression-literals": "npm:^7.22.5" - "@babel/plugin-transform-modules-amd": "npm:^7.23.0" - "@babel/plugin-transform-modules-commonjs": "npm:^7.23.0" - "@babel/plugin-transform-modules-systemjs": "npm:^7.23.0" - "@babel/plugin-transform-modules-umd": "npm:^7.22.5" + "@babel/plugin-transform-arrow-functions": "npm:^7.23.3" + "@babel/plugin-transform-async-generator-functions": "npm:^7.23.3" + "@babel/plugin-transform-async-to-generator": "npm:^7.23.3" + "@babel/plugin-transform-block-scoped-functions": "npm:^7.23.3" + "@babel/plugin-transform-block-scoping": "npm:^7.23.3" + "@babel/plugin-transform-class-properties": "npm:^7.23.3" + "@babel/plugin-transform-class-static-block": "npm:^7.23.3" + "@babel/plugin-transform-classes": "npm:^7.23.3" + "@babel/plugin-transform-computed-properties": "npm:^7.23.3" + "@babel/plugin-transform-destructuring": "npm:^7.23.3" + "@babel/plugin-transform-dotall-regex": "npm:^7.23.3" + "@babel/plugin-transform-duplicate-keys": "npm:^7.23.3" + "@babel/plugin-transform-dynamic-import": "npm:^7.23.3" + "@babel/plugin-transform-exponentiation-operator": "npm:^7.23.3" + "@babel/plugin-transform-export-namespace-from": "npm:^7.23.3" + "@babel/plugin-transform-for-of": "npm:^7.23.3" + "@babel/plugin-transform-function-name": "npm:^7.23.3" + "@babel/plugin-transform-json-strings": "npm:^7.23.3" + "@babel/plugin-transform-literals": "npm:^7.23.3" + "@babel/plugin-transform-logical-assignment-operators": "npm:^7.23.3" + "@babel/plugin-transform-member-expression-literals": "npm:^7.23.3" + "@babel/plugin-transform-modules-amd": "npm:^7.23.3" + "@babel/plugin-transform-modules-commonjs": "npm:^7.23.3" + "@babel/plugin-transform-modules-systemjs": "npm:^7.23.3" + "@babel/plugin-transform-modules-umd": "npm:^7.23.3" "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.22.5" - "@babel/plugin-transform-new-target": "npm:^7.22.5" - "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.22.11" - "@babel/plugin-transform-numeric-separator": "npm:^7.22.11" - "@babel/plugin-transform-object-rest-spread": "npm:^7.22.15" - "@babel/plugin-transform-object-super": "npm:^7.22.5" - "@babel/plugin-transform-optional-catch-binding": "npm:^7.22.11" - "@babel/plugin-transform-optional-chaining": "npm:^7.23.0" - "@babel/plugin-transform-parameters": "npm:^7.22.15" - "@babel/plugin-transform-private-methods": "npm:^7.22.5" - "@babel/plugin-transform-private-property-in-object": "npm:^7.22.11" - "@babel/plugin-transform-property-literals": "npm:^7.22.5" - "@babel/plugin-transform-regenerator": "npm:^7.22.10" - "@babel/plugin-transform-reserved-words": "npm:^7.22.5" - "@babel/plugin-transform-shorthand-properties": "npm:^7.22.5" - "@babel/plugin-transform-spread": "npm:^7.22.5" - "@babel/plugin-transform-sticky-regex": "npm:^7.22.5" - "@babel/plugin-transform-template-literals": "npm:^7.22.5" - "@babel/plugin-transform-typeof-symbol": "npm:^7.22.5" - "@babel/plugin-transform-unicode-escapes": "npm:^7.22.10" - "@babel/plugin-transform-unicode-property-regex": "npm:^7.22.5" - "@babel/plugin-transform-unicode-regex": "npm:^7.22.5" - "@babel/plugin-transform-unicode-sets-regex": "npm:^7.22.5" + "@babel/plugin-transform-new-target": "npm:^7.23.3" + "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.23.3" + "@babel/plugin-transform-numeric-separator": "npm:^7.23.3" + "@babel/plugin-transform-object-rest-spread": "npm:^7.23.3" + "@babel/plugin-transform-object-super": "npm:^7.23.3" + "@babel/plugin-transform-optional-catch-binding": "npm:^7.23.3" + "@babel/plugin-transform-optional-chaining": "npm:^7.23.3" + "@babel/plugin-transform-parameters": "npm:^7.23.3" + "@babel/plugin-transform-private-methods": "npm:^7.23.3" + "@babel/plugin-transform-private-property-in-object": "npm:^7.23.3" + "@babel/plugin-transform-property-literals": "npm:^7.23.3" + "@babel/plugin-transform-regenerator": "npm:^7.23.3" + "@babel/plugin-transform-reserved-words": "npm:^7.23.3" + "@babel/plugin-transform-shorthand-properties": "npm:^7.23.3" + "@babel/plugin-transform-spread": "npm:^7.23.3" + "@babel/plugin-transform-sticky-regex": "npm:^7.23.3" + "@babel/plugin-transform-template-literals": "npm:^7.23.3" + "@babel/plugin-transform-typeof-symbol": "npm:^7.23.3" + "@babel/plugin-transform-unicode-escapes": "npm:^7.23.3" + "@babel/plugin-transform-unicode-property-regex": "npm:^7.23.3" + "@babel/plugin-transform-unicode-regex": "npm:^7.23.3" + "@babel/plugin-transform-unicode-sets-regex": "npm:^7.23.3" "@babel/preset-modules": "npm:0.1.6-no-external-plugins" - "@babel/types": "npm:^7.23.0" babel-plugin-polyfill-corejs2: "npm:^0.4.6" babel-plugin-polyfill-corejs3: "npm:^0.8.5" babel-plugin-polyfill-regenerator: "npm:^0.5.3" @@ -1268,7 +1280,7 @@ __metadata: semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b5912f09dc92a8f6b93420f3274499e30255af6dbe5673075a30a5bfead1a651e5eb362c6b95e3ba48c6e6bd4e38b7a5aceebba99997ec7c83833e2e6af9abde + checksum: 36b02a86817ab5474bb74a8d62a110723b0b05904a52ddc5627cf89457525b8d5ac0739b8e435a6ae12ef8b90cd5fc191169898c3dc2ac9d2c84026b02f2580a languageName: node linkType: hard @@ -1301,7 +1313,7 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.22.15, @babel/template@npm:^7.22.5": +"@babel/template@npm:^7.22.15": version: 7.22.15 resolution: "@babel/template@npm:7.22.15" dependencies: @@ -1312,32 +1324,32 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.23.2": - version: 7.23.2 - resolution: "@babel/traverse@npm:7.23.2" +"@babel/traverse@npm:^7.23.2, @babel/traverse@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/traverse@npm:7.23.3" dependencies: "@babel/code-frame": "npm:^7.22.13" - "@babel/generator": "npm:^7.23.0" + "@babel/generator": "npm:^7.23.3" "@babel/helper-environment-visitor": "npm:^7.22.20" "@babel/helper-function-name": "npm:^7.23.0" "@babel/helper-hoist-variables": "npm:^7.22.5" "@babel/helper-split-export-declaration": "npm:^7.22.6" - "@babel/parser": "npm:^7.23.0" - "@babel/types": "npm:^7.23.0" + "@babel/parser": "npm:^7.23.3" + "@babel/types": "npm:^7.23.3" debug: "npm:^4.1.0" globals: "npm:^11.1.0" - checksum: d096c7c4bab9262a2f658298a3c630ae4a15a10755bb257ae91d5ab3e3b2877438934859c8d34018b7727379fe6b26c4fa2efc81cf4c462a7fe00caf79fa02ff + checksum: 3c2784f4765185126d64fd5eebce0413b7aee6d54f779998594a343a7f973a9693a441ba27533df84e7ab7ce22f1239c6837f35e903132a1b25f7fc7a67bc30f languageName: node linkType: hard -"@babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": - version: 7.23.0 - resolution: "@babel/types@npm:7.23.0" +"@babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": + version: 7.23.3 + resolution: "@babel/types@npm:7.23.3" dependencies: "@babel/helper-string-parser": "npm:^7.22.5" "@babel/helper-validator-identifier": "npm:^7.22.20" to-fast-properties: "npm:^2.0.0" - checksum: 70e4db41acb6793d0eb8d81a2fa88f19ee661219b84bd5f703dbdb54eb3a4d3c0dfc55e69034c945b479df9f43fd4b1376480aaccfc19797ce5af1c5d2576b36 + checksum: 371a10dd9c8d8ebf48fc5d9e1b327dafd74453f8ea582dcbddd1cee5ae34e8881b743e783a86c08c04dcd1849b1842455472a911ae8a1c185484fe9b7b5f1595 languageName: node linkType: hard @@ -4395,8 +4407,8 @@ __metadata: resolution: "jenkins-ui@workspace:." dependencies: "@babel/cli": "npm:7.23.0" - "@babel/core": "npm:7.23.2" - "@babel/preset-env": "npm:7.23.2" + "@babel/core": "npm:7.23.3" + "@babel/preset-env": "npm:7.23.3" babel-loader: "npm:9.1.3" clean-webpack-plugin: "npm:4.0.0" css-loader: "npm:6.8.1" @@ -6489,7 +6501,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^6.3.0, semver@npm:^6.3.1": +"semver@npm:^6.3.1": version: 6.3.1 resolution: "semver@npm:6.3.1" bin: From 8b132a1c36539d99ec795f68abb76e98c05d06b6 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 14 Nov 2023 13:12:09 +0000 Subject: [PATCH 0005/1216] [maven-release-plugin] prepare release jenkins-2.432 --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty10/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 595b6b3f383a..f001751fe40d 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.432 jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index fa8971e32ac7..bb6c2c984ef7 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.432 cli diff --git a/core/pom.xml b/core/pom.xml index 45539865962a..3c50a94e168d 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.432 jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index 9f27c8d11cf0..653b05f5bb7f 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.432 jenkins-coverage diff --git a/pom.xml b/pom.xml index d34fb923a219..90db2c0247a8 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.432 pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - ${scmTag} + jenkins-2.432 https://github.com/jenkinsci/jenkins diff --git a/test/pom.xml b/test/pom.xml index f3568ce932f2..dc3af6bdd813 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.432 jenkins-test diff --git a/war/pom.xml b/war/pom.xml index b6082a6d1ada..e9c2b0a5ef93 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.432 jenkins-war diff --git a/websocket/jetty10/pom.xml b/websocket/jetty10/pom.xml index eb4a169a59d1..e09a2afc3a0d 100644 --- a/websocket/jetty10/pom.xml +++ b/websocket/jetty10/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.432 ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 77abcc3b7248..832b89b1e8c1 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.432 ../.. From 51c5fa2367592f6fb6810f5eed89f88098ef0cf5 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 14 Nov 2023 13:12:19 +0000 Subject: [PATCH 0006/1216] [maven-release-plugin] prepare for next development iteration --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 6 +++--- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty10/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index f001751fe40d..595b6b3f383a 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.432 + ${revision}${changelist} jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index bb6c2c984ef7..fa8971e32ac7 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.432 + ${revision}${changelist} cli diff --git a/core/pom.xml b/core/pom.xml index 3c50a94e168d..45539865962a 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.432 + ${revision}${changelist} jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index 653b05f5bb7f..9f27c8d11cf0 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.432 + ${revision}${changelist} jenkins-coverage diff --git a/pom.xml b/pom.xml index 90db2c0247a8..3eb7090208d8 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.432 + ${revision}${changelist} pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - jenkins-2.432 + ${scmTag} https://github.com/jenkinsci/jenkins @@ -73,7 +73,7 @@ THE SOFTWARE. - 2.432 + 2.433 -SNAPSHOT diff --git a/test/pom.xml b/test/pom.xml index dc3af6bdd813..f3568ce932f2 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.432 + ${revision}${changelist} jenkins-test diff --git a/war/pom.xml b/war/pom.xml index e9c2b0a5ef93..b6082a6d1ada 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.432 + ${revision}${changelist} jenkins-war diff --git a/websocket/jetty10/pom.xml b/websocket/jetty10/pom.xml index e09a2afc3a0d..eb4a169a59d1 100644 --- a/websocket/jetty10/pom.xml +++ b/websocket/jetty10/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.432 + ${revision}${changelist} ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 832b89b1e8c1..77abcc3b7248 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.432 + ${revision}${changelist} ../.. From 0297870148249b5794d9bf8e9bc7879c82bf28f3 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Thu, 16 Nov 2023 13:47:32 -0800 Subject: [PATCH 0007/1216] Pull up `AbstractFolder.delete` logic into `AbstractItem` (#8645) * Pull up `AbstractFolder.delete` logic into `AbstractItem` * Warn if `Queue.cancel(Item)` returns `false` --- .../main/java/hudson/model/AbstractItem.java | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/hudson/model/AbstractItem.java b/core/src/main/java/hudson/model/AbstractItem.java index 05a45da743fb..35c491bf67d4 100644 --- a/core/src/main/java/hudson/model/AbstractItem.java +++ b/core/src/main/java/hudson/model/AbstractItem.java @@ -37,7 +37,6 @@ import hudson.Util; import hudson.XmlFile; import hudson.cli.declarative.CLIResolver; -import hudson.model.Queue.Executable; import hudson.model.listeners.ItemListener; import hudson.model.listeners.SaveableListener; import hudson.model.queue.SubTask; @@ -731,7 +730,9 @@ public void delete() throws IOException, InterruptedException { Item item = Tasks.getItemOf(i.task); while (item != null) { if (item == this) { - queue.cancel(i); + if (!queue.cancel(i)) { + LOGGER.warning(() -> "failed to cancel " + i); + } break; } if (item.getParent() instanceof Item) { @@ -748,7 +749,7 @@ public void delete() throws IOException, InterruptedException { for (Computer c : Jenkins.get().getComputers()) { for (Executor e : c.getAllExecutors()) { final WorkUnit workUnit = e.getCurrentWorkUnit(); - final Executable executable = workUnit != null ? workUnit.getExecutable() : null; + final Queue.Executable executable = workUnit != null ? workUnit.getExecutable() : null; final SubTask subtask = executable != null ? getParentOf(executable) : null; if (subtask != null) { @@ -801,6 +802,24 @@ public void delete() throws IOException, InterruptedException { } } } + if (this instanceof ItemGroup) { + // delete individual items first + // (disregard whether they would be deletable in isolation) + // JENKINS-34939: do not hold the monitor on this folder while deleting them + // (thus we cannot do this inside performDelete) + try (ACLContext oldContext = ACL.as2(ACL.SYSTEM2)) { + for (Item i : ((ItemGroup) this).getItems(TopLevelItem.class::isInstance)) { + try { + i.delete(); + } catch (AbortException e) { + throw (AbortException) new AbortException( + "Failed to delete " + i.getFullDisplayName() + " : " + e.getMessage()).initCause(e); + } catch (IOException e) { + throw new IOException("Failed to delete " + i.getFullDisplayName(), e); + } + } + } + } synchronized (this) { // could just make performDelete synchronized but overriders might not honor that performDelete(); } // JENKINS-19446: leave synch block, but JENKINS-22001: still notify synchronously From 133259a61decb5b84ec658a3765f32cef3a343e3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 17 Nov 2023 13:59:23 +0000 Subject: [PATCH 0008/1216] Update dependency prettier to v3.1.0 (#8695) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Alexander Brandes --- war/package.json | 2 +- war/src/main/webapp/scripts/behavior.js | 16 ++++++++-------- war/yarn.lock | 10 +++++----- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/war/package.json b/war/package.json index 9f26770e2206..1471ac876054 100644 --- a/war/package.json +++ b/war/package.json @@ -38,7 +38,7 @@ "postcss-loader": "7.3.3", "postcss-preset-env": "9.3.0", "postcss-scss": "4.0.9", - "prettier": "3.0.3", + "prettier": "3.1.0", "sass": "1.69.5", "sass-loader": "13.3.2", "style-loader": "3.3.3", diff --git a/war/src/main/webapp/scripts/behavior.js b/war/src/main/webapp/scripts/behavior.js index 791aa9d3adfb..cb4d01821bed 100644 --- a/war/src/main/webapp/scripts/behavior.js +++ b/war/src/main/webapp/scripts/behavior.js @@ -61,14 +61,14 @@ var Behaviour = (function () { return location != 0 ? location : a.id < b.id - ? -1 - : a.id > b.id - ? 1 - : a.selector < b.selector - ? -1 - : a.selector > b.selector - ? 1 - : 0; + ? -1 + : a.id > b.id + ? 1 + : a.selector < b.selector + ? -1 + : a.selector > b.selector + ? 1 + : 0; }); }, diff --git a/war/yarn.lock b/war/yarn.lock index dfe85ccecc7d..afcdf628f466 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -4425,7 +4425,7 @@ __metadata: postcss-loader: "npm:7.3.3" postcss-preset-env: "npm:9.3.0" postcss-scss: "npm:4.0.9" - prettier: "npm:3.0.3" + prettier: "npm:3.1.0" sass: "npm:1.69.5" sass-loader: "npm:13.3.2" sortablejs: "npm:1.15.0" @@ -6142,12 +6142,12 @@ __metadata: languageName: node linkType: hard -"prettier@npm:3.0.3": - version: 3.0.3 - resolution: "prettier@npm:3.0.3" +"prettier@npm:3.1.0": + version: 3.1.0 + resolution: "prettier@npm:3.1.0" bin: prettier: bin/prettier.cjs - checksum: f950887bc03c5b970d8c6dd129364acfbbc61e7b46aec5d5ce17f4adf6404e2ef43072c98b51c4786e0eaca949b307d362a773fd47502862d754b5a328fa2b26 + checksum: a45ea70aa97fde162ea4c4aba3dfc7859aa6a732a1db34458d9535dc3c2c16d3bc3fb5689e6cd76aa835562555303b02d9449fd2e15af3b73c8053557e25c5b6 languageName: node linkType: hard From 2c1321e882f7c2fdf658bda220a6f976e5ce8b6d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 17 Nov 2023 14:07:30 +0000 Subject: [PATCH 0009/1216] Update Yarn to v4.0.2 (#8699) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/package.json b/war/package.json index 1471ac876054..45b59e770dc9 100644 --- a/war/package.json +++ b/war/package.json @@ -62,5 +62,5 @@ "defaults", "not IE 11" ], - "packageManager": "yarn@4.0.1" + "packageManager": "yarn@4.0.2" } From f344879c569125ef8e565c8f0c25a34f28f81d4a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 18 Nov 2023 21:53:11 +0000 Subject: [PATCH 0010/1216] Bump org.jenkins-ci.plugins:script-security from 1275.v23895f409fb_d to 1281.v22fb_899df1a_e (#8698) --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index f3568ce932f2..a3c8ea0cbc5a 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -100,7 +100,7 @@ THE SOFTWARE. org.jenkins-ci.plugins script-security - 1275.v23895f409fb_d + 1281.v22fb_899df1a_e From 442a42f4382027d82dd2c3ae0099bc5abb9272fd Mon Sep 17 00:00:00 2001 From: Markus Winter Date: Sat, 18 Nov 2023 22:56:47 +0100 Subject: [PATCH 0011/1216] [JENKINS-64816] prepare for support of node monitors by JCasC (#8629) * [JENKINS-64816] prepare for support of node monitors by JCasC In order that configuration as code plugin can properly support node monitors we need to add databound constructors. * fix warnings * add javadoc that DataBoundConstructor is a must * remove duplicate extension * delete obsolete install methods --- .../node_monitors/ArchitectureMonitor.java | 6 ++++++ .../hudson/node_monitors/ClockMonitor.java | 6 ++++++ .../node_monitors/DiskSpaceMonitor.java | 19 +++++++++++------ .../hudson/node_monitors/NodeMonitor.java | 3 +++ .../node_monitors/ResponseTimeMonitor.java | 21 +++++++++++++++++-- .../node_monitors/SwapSpaceMonitor.java | 6 ++++++ .../node_monitors/TemporarySpaceMonitor.java | 8 ------- 7 files changed, 53 insertions(+), 16 deletions(-) diff --git a/core/src/main/java/hudson/node_monitors/ArchitectureMonitor.java b/core/src/main/java/hudson/node_monitors/ArchitectureMonitor.java index 44af3340e434..d2c60a2544d0 100644 --- a/core/src/main/java/hudson/node_monitors/ArchitectureMonitor.java +++ b/core/src/main/java/hudson/node_monitors/ArchitectureMonitor.java @@ -32,6 +32,7 @@ import jenkins.security.MasterToSlaveCallable; import net.sf.json.JSONObject; import org.jenkinsci.Symbol; +import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.StaplerRequest; /** @@ -40,6 +41,11 @@ * @author Kohsuke Kawaguchi */ public class ArchitectureMonitor extends NodeMonitor { + + @DataBoundConstructor + public ArchitectureMonitor() { + } + @Extension @Symbol("architecture") public static final class DescriptorImpl extends AbstractAsyncNodeMonitorDescriptor { @Override diff --git a/core/src/main/java/hudson/node_monitors/ClockMonitor.java b/core/src/main/java/hudson/node_monitors/ClockMonitor.java index 533de56a7ddd..b958df61d776 100644 --- a/core/src/main/java/hudson/node_monitors/ClockMonitor.java +++ b/core/src/main/java/hudson/node_monitors/ClockMonitor.java @@ -36,6 +36,7 @@ import org.jenkinsci.Symbol; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; +import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.StaplerRequest; /** @@ -46,6 +47,11 @@ * @since 1.123 */ public class ClockMonitor extends NodeMonitor { + + @DataBoundConstructor + public ClockMonitor() { + } + public ClockDifference getDifferenceFor(Computer c) { return DESCRIPTOR.get(c); } diff --git a/core/src/main/java/hudson/node_monitors/DiskSpaceMonitor.java b/core/src/main/java/hudson/node_monitors/DiskSpaceMonitor.java index b3080d074925..b8f7902a728b 100644 --- a/core/src/main/java/hudson/node_monitors/DiskSpaceMonitor.java +++ b/core/src/main/java/hudson/node_monitors/DiskSpaceMonitor.java @@ -25,6 +25,7 @@ package hudson.node_monitors; import edu.umd.cs.findbugs.annotations.NonNull; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import hudson.Extension; import hudson.FilePath; import hudson.model.Computer; @@ -34,6 +35,7 @@ import java.io.IOException; import java.text.ParseException; import jenkins.model.Jenkins; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; /** @@ -61,7 +63,17 @@ public String getColumnCaption() { return Jenkins.get().hasPermission(Jenkins.ADMINISTER) ? super.getColumnCaption() : null; } - public static final DiskSpaceMonitorDescriptor DESCRIPTOR = new DiskSpaceMonitorDescriptor() { + @SuppressFBWarnings(value = "MS_PKGPROTECT", justification = "for backward compatibility") + public static /*almost final*/ DiskSpaceMonitorDescriptor DESCRIPTOR; + + @Extension @Symbol("diskSpace") + public static class DescriptorImpl extends DiskSpaceMonitorDescriptor { + + @SuppressFBWarnings(value = "ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD", justification = "for backward compatibility") + public DescriptorImpl() { + DESCRIPTOR = this; + } + @NonNull @Override public String getDisplayName() { @@ -78,10 +90,5 @@ protected Callable createCallable(Computer c) { return p.asCallableWith(new GetUsableSpace()); } - }; - - @Extension - public static DiskSpaceMonitorDescriptor install() { - return DESCRIPTOR; } } diff --git a/core/src/main/java/hudson/node_monitors/NodeMonitor.java b/core/src/main/java/hudson/node_monitors/NodeMonitor.java index eb5a9459c33d..0fb737a7677a 100644 --- a/core/src/main/java/hudson/node_monitors/NodeMonitor.java +++ b/core/src/main/java/hudson/node_monitors/NodeMonitor.java @@ -61,6 +61,9 @@ *

* {@link NodeMonitor}s are persisted via XStream. * + *

CasC

+ * To be able to configure {@link NodeMonitor}s via JCasC, they should have a {@link org.kohsuke.stapler.DataBoundConstructor} + * * @author Kohsuke Kawaguchi * @since 1.123 */ diff --git a/core/src/main/java/hudson/node_monitors/ResponseTimeMonitor.java b/core/src/main/java/hudson/node_monitors/ResponseTimeMonitor.java index 1ffdcc1a54ee..5a7223039696 100644 --- a/core/src/main/java/hudson/node_monitors/ResponseTimeMonitor.java +++ b/core/src/main/java/hudson/node_monitors/ResponseTimeMonitor.java @@ -25,6 +25,7 @@ package hudson.node_monitors; import edu.umd.cs.findbugs.annotations.NonNull; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import hudson.Extension; import hudson.model.Computer; import hudson.remoting.Callable; @@ -34,6 +35,8 @@ import java.util.logging.Logger; import jenkins.security.MasterToSlaveCallable; import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; +import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; @@ -44,8 +47,22 @@ * @author Kohsuke Kawaguchi */ public class ResponseTimeMonitor extends NodeMonitor { + + @DataBoundConstructor + public ResponseTimeMonitor() { + } + + @SuppressFBWarnings(value = "MS_PKGPROTECT", justification = "for backward compatibility") + public static /*almost final*/ AbstractNodeMonitorDescriptor DESCRIPTOR; + @Extension - public static final AbstractNodeMonitorDescriptor DESCRIPTOR = new AbstractAsyncNodeMonitorDescriptor<>() { + @Symbol("responseTime") + public static class DescriptorImpl extends AbstractAsyncNodeMonitorDescriptor { + + @SuppressFBWarnings(value = "ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD", justification = "for backward compatibility") + public DescriptorImpl() { + DESCRIPTOR = this; + } @Override protected Callable createCallable(Computer c) { @@ -91,7 +108,7 @@ public String getDisplayName() { public NodeMonitor newInstance(StaplerRequest req, JSONObject formData) throws FormException { return new ResponseTimeMonitor(); } - }; + } private static final class Step1 extends MasterToSlaveCallable { private Data cur; diff --git a/core/src/main/java/hudson/node_monitors/SwapSpaceMonitor.java b/core/src/main/java/hudson/node_monitors/SwapSpaceMonitor.java index 97965cc4afe9..09064ccb4a82 100644 --- a/core/src/main/java/hudson/node_monitors/SwapSpaceMonitor.java +++ b/core/src/main/java/hudson/node_monitors/SwapSpaceMonitor.java @@ -37,6 +37,7 @@ import org.jenkinsci.Symbol; import org.jvnet.hudson.MemoryMonitor; import org.jvnet.hudson.MemoryUsage; +import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; @@ -48,6 +49,11 @@ * @since 1.233 */ public class SwapSpaceMonitor extends NodeMonitor { + + @DataBoundConstructor + public SwapSpaceMonitor() { + } + /** * Returns the HTML representation of the space. */ diff --git a/core/src/main/java/hudson/node_monitors/TemporarySpaceMonitor.java b/core/src/main/java/hudson/node_monitors/TemporarySpaceMonitor.java index 77f2d2cffbc3..d92341142a09 100644 --- a/core/src/main/java/hudson/node_monitors/TemporarySpaceMonitor.java +++ b/core/src/main/java/hudson/node_monitors/TemporarySpaceMonitor.java @@ -101,14 +101,6 @@ protected Callable createCallable(Computer c) { } } - /** - * @deprecated as of 2.0 - */ - @Deprecated - public static DiskSpaceMonitorDescriptor install() { - return (DiskSpaceMonitorDescriptor) Jenkins.get().getDescriptor(TemporarySpaceMonitor.class); - } - protected static final class GetTempSpace extends MasterToSlaveFileCallable { @Override public DiskSpace invoke(File f, VirtualChannel channel) throws IOException { From fda0949dc582b2a00068f4549ab01de47e7c7ad9 Mon Sep 17 00:00:00 2001 From: Markus Winter Date: Sat, 18 Nov 2023 22:57:44 +0100 Subject: [PATCH 0012/1216] [JENKINS-72159] deactivate MarkedOffline monitor when agents are online (#8618) [JENKINS-72159] deactivate Markedoffline monitor when agents are online When an agent comes online again after disk space issues are resolved the corresponding admin monitor is now deactivated if there are no other agents left that are temporarily offline due to disk space issues. --- .../node_monitors/NodeMonitorUpdater.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/core/src/main/java/hudson/node_monitors/NodeMonitorUpdater.java b/core/src/main/java/hudson/node_monitors/NodeMonitorUpdater.java index 10238deb3352..0e2659b71f57 100644 --- a/core/src/main/java/hudson/node_monitors/NodeMonitorUpdater.java +++ b/core/src/main/java/hudson/node_monitors/NodeMonitorUpdater.java @@ -1,6 +1,7 @@ package hudson.node_monitors; import hudson.Extension; +import hudson.model.AdministrativeMonitor; import hudson.model.Computer; import hudson.model.ComputerSet; import hudson.model.TaskListener; @@ -9,6 +10,7 @@ import java.io.IOException; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; +import jenkins.model.Jenkins; import jenkins.util.Timer; /** @@ -28,6 +30,23 @@ public void run() { } }; + private static final Runnable MARKEDOFFLINE_UPDATER = new Runnable() { + @Override + public void run() { + MonitorMarkedNodeOffline no = AdministrativeMonitor.all().get(MonitorMarkedNodeOffline.class); + if (no != null) { + boolean markedOffline = false; + for (Computer c : Jenkins.get().getComputers()) { + if (c.getChannel() != null && c.getOfflineCause() instanceof MonitorOfflineCause) { + markedOffline = true; + break; + } + } + no.active = markedOffline; + } + } + }; + private Future future = Futures.precomputed(null); /** @@ -41,4 +60,12 @@ public void onOnline(Computer c, TaskListener listener) throws IOException, Inte future = Timer.get().schedule(MONITOR_UPDATER, 5, TimeUnit.SECONDS); } } + + @Override + public void onTemporarilyOnline(Computer c) { + synchronized (this) { + future.cancel(false); + future = Timer.get().schedule(MARKEDOFFLINE_UPDATER, 5, TimeUnit.SECONDS); + } + } } From b9b3e6bfa8495ba0ecbb7834728ab1694d8c888d Mon Sep 17 00:00:00 2001 From: Julien Greffe <36693362+jgreffe@users.noreply.github.com> Date: Sat, 18 Nov 2023 22:58:20 +0100 Subject: [PATCH 0013/1216] [JENKINS-71715] Allow plugins with alternate build log visualizations to handle console links from core and other plugins (#8321) * [JENKINS-71715] Allow plugins with alternate build log visualizations to handle console links from core and other plugins * [JENKINS-71715] Apply suggestions with ordinal extension and @since TODO * [JENKINS-71715] Public @Extension * Add or fix @since todo we usually don't put versions but put todo instead and these versions get resolved _after_ merges. Co-authored-by: Daniel Beck <1831569+daniel-beck@users.noreply.github.com> * [JENKINS-71715] Apply suggestions from reviews * [JENKINS-71715] Switch ConsoleURLProvider to interface and add Functions.getContextRelativeUrl * [JENKINS-71715] Refactor ConsoleUrlProvider API and add Functions.getConsoleUrl method for use in Jelly files * [JENKINS-71715] Fix casing of ConsoleURLProvider.java * [JENKINS-71715] Add global and per-user configuration options for ConsoleUrlProvider * [JENKINS-71715] Fix Javadoc reference * [JENKINS-71715] Remove outdated TODO comment * [JENKINS-71715] Miscellaneous updates based on review feedback * [JENKINS-71715] Fix Javadoc links * [JENKINS-71715] Update console links for build list and build time trend widgets * [JENKINS-71715] Functions.getConsoleUrl must take Queue.Executable instead of Run * [JENKINS-71715] Simplify test using WebClient.executeOnServer * [JENKINS-71715] Add constructor * [JENKINS-71715] Preserve old behavior of p:console-link as a fallback for atypical consumers * [JENKINS-71715] Ignore invalid URLs and consult global providers if user providers fail to provide a valid URL * [JENKINS-71715] Move ConsoleUrlProviderGlobalConfiguration into AppearanceCategory * [JENKINS-71715] Hide AppearanceGlobalConfiguration if ConsoleUrlProviderGlobalConfiguration is disabled and would be the only option on the page * [JENKINS-71715] Update help text and Javadoc based on review feedback, and filter out default provider in global config Co-authored-by: Daniel Beck * [JENKINS-71715] getProvidersDescriptors can be an instance method --------- Co-authored-by: Baptiste Mathus Co-authored-by: Daniel Beck <1831569+daniel-beck@users.noreply.github.com> Co-authored-by: Devin Nusbaum Co-authored-by: Devin Nusbaum Co-authored-by: Daniel Beck --- core/src/main/java/hudson/Functions.java | 19 ++ .../AppearanceGlobalConfiguration.java | 14 +- .../jenkins/console/ConsoleUrlProvider.java | 136 ++++++++++++++ ...ConsoleUrlProviderGlobalConfiguration.java | 110 +++++++++++ .../ConsoleUrlProviderUserProperty.java | 78 ++++++++ .../console/DefaultConsoleUrlProvider.java | 62 ++++++ .../java/jenkins/widgets/BuildListTable.java | 2 + .../java/jenkins/widgets/BuildTimeTrend.java | 2 + .../hudson/model/AbstractBuild/changes.jelly | 2 +- .../hudson/model/AbstractBuild/index.jelly | 2 +- .../model/Job/buildTimeTrend_resources.js | 4 +- .../hudson/widgets/HistoryWidget/entry.jelly | 2 +- .../config.jelly | 13 ++ .../config.properties | 1 + .../config.jelly | 15 ++ .../config.properties | 1 + .../jenkins/console/Messages.properties | 2 + .../lib/hudson/buildProgressBar.jelly | 2 +- .../lib/hudson/project/console-link.jelly | 4 +- .../console/ConsoleUrlProviderTest.java | 177 ++++++++++++++++++ 20 files changed, 639 insertions(+), 9 deletions(-) create mode 100644 core/src/main/java/jenkins/console/ConsoleUrlProvider.java create mode 100644 core/src/main/java/jenkins/console/ConsoleUrlProviderGlobalConfiguration.java create mode 100644 core/src/main/java/jenkins/console/ConsoleUrlProviderUserProperty.java create mode 100644 core/src/main/java/jenkins/console/DefaultConsoleUrlProvider.java create mode 100644 core/src/main/resources/jenkins/console/ConsoleUrlProviderGlobalConfiguration/config.jelly create mode 100644 core/src/main/resources/jenkins/console/ConsoleUrlProviderGlobalConfiguration/config.properties create mode 100644 core/src/main/resources/jenkins/console/ConsoleUrlProviderUserProperty/config.jelly create mode 100644 core/src/main/resources/jenkins/console/ConsoleUrlProviderUserProperty/config.properties create mode 100644 core/src/main/resources/jenkins/console/Messages.properties create mode 100644 test/src/test/java/jenkins/console/ConsoleUrlProviderTest.java diff --git a/core/src/main/java/hudson/Functions.java b/core/src/main/java/hudson/Functions.java index 7f3411406780..9aa290b2e772 100644 --- a/core/src/main/java/hudson/Functions.java +++ b/core/src/main/java/hudson/Functions.java @@ -54,6 +54,7 @@ import hudson.model.ParameterDefinition; import hudson.model.ParameterDefinition.ParameterDescriptor; import hudson.model.PasswordParameterDefinition; +import hudson.model.Queue; import hudson.model.Run; import hudson.model.Slave; import hudson.model.TimeZoneProperty; @@ -148,6 +149,7 @@ import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import jenkins.console.ConsoleUrlProvider; import jenkins.model.GlobalConfiguration; import jenkins.model.GlobalConfigurationCategory; import jenkins.model.Jenkins; @@ -1903,6 +1905,23 @@ public static String joinPath(String... components) { return joinPath(Stapler.getCurrentRequest().getContextPath() + '/' + itUrl, urlName); } + /** + * Computes the link to the console for the run for the specified executable, taking {@link ConsoleUrlProvider} into account. + * @param executable the executable (normally a {@link Run}) + * @return the absolute URL for accessing the build console for the executable, or null if there is no build associated with the executable + * @since TODO + */ + public static @CheckForNull String getConsoleUrl(Queue.Executable executable) { + if (executable == null) { + return null; + } else if (executable instanceof Run) { + return ConsoleUrlProvider.getRedirectUrl((Run) executable); + } else { + // Handles cases such as PlaceholderExecutable for Pipeline node steps. + return getConsoleUrl(executable.getParentExecutable()); + } + } + /** * Escapes the character unsafe for e-mail address. * See the Wikipedia page for the details, diff --git a/core/src/main/java/jenkins/appearance/AppearanceGlobalConfiguration.java b/core/src/main/java/jenkins/appearance/AppearanceGlobalConfiguration.java index 35075425b90f..96e61c0c9371 100644 --- a/core/src/main/java/jenkins/appearance/AppearanceGlobalConfiguration.java +++ b/core/src/main/java/jenkins/appearance/AppearanceGlobalConfiguration.java @@ -35,6 +35,7 @@ import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.ServletException; +import jenkins.console.ConsoleUrlProviderGlobalConfiguration; import jenkins.model.Jenkins; import net.sf.json.JSONObject; import org.kohsuke.accmod.Restricted; @@ -49,7 +50,18 @@ public class AppearanceGlobalConfiguration extends ManagementLink { private static final Logger LOGGER = Logger.getLogger(AppearanceGlobalConfiguration.class.getName()); @Restricted(NoExternalUse.class) - public static final Predicate FILTER = input -> input.getCategory() instanceof AppearanceCategory; + public static final Predicate FILTER = input -> { + if (input.getCategory() instanceof AppearanceCategory) { + // Special case because ConsoleUrlProviderGlobalConfiguration is (currently) the only type in core that uses + // AppearanceCategory, and it hides its configuration if there are no custom providers, so we want to + // hide the whole "Appearance" link in that case. + if (input instanceof ConsoleUrlProviderGlobalConfiguration) { + return ((ConsoleUrlProviderGlobalConfiguration) input).isEnabled(); + } + return true; + } + return false; + }; @Override public String getIconFileName() { diff --git a/core/src/main/java/jenkins/console/ConsoleUrlProvider.java b/core/src/main/java/jenkins/console/ConsoleUrlProvider.java new file mode 100644 index 000000000000..ba4e5a000cbc --- /dev/null +++ b/core/src/main/java/jenkins/console/ConsoleUrlProvider.java @@ -0,0 +1,136 @@ +/* + * The MIT License + * + * Copyright (c) 2023, CloudBees, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package jenkins.console; + +import edu.umd.cs.findbugs.annotations.CheckForNull; +import edu.umd.cs.findbugs.annotations.NonNull; +import hudson.Functions; +import hudson.model.Describable; +import hudson.model.Descriptor; +import hudson.model.Run; +import hudson.model.User; +import java.net.URI; +import java.util.ArrayList; +import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; +import jenkins.model.Jenkins; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.NoExternalUse; +import org.kohsuke.stapler.Stapler; + +/** + * Extension point that allows implementations to redirect build console links to a specified URL. + *

In order to produce links to console URLs in Jelly templates, use {@link Functions#getConsoleUrl}. + *

Note: If you implement this API, consider providing a link to the classic console from within your console + * visualization as a fallback, particularly if your visualization is not as general as the classic console, has + * limitations that might be relevant in some cases, or requires advanced data that may be not exist for + * failed or corrupted builds. For example, if you visualize Pipeline build logs using only {@code LogStorage.stepLog}, + * there will be log lines that will never show up in your visualization, or if your visualization traverses the + * Pipeline flow graph, there may be various edge cases where your visualization does not work at all, but the classic + * console view is unaffected. + * @see Functions#getConsoleUrl + * @since TODO + */ +public interface ConsoleUrlProvider extends Describable { + @Restricted(NoExternalUse.class) + Logger LOGGER = Logger.getLogger(ConsoleUrlProvider.class.getName()); + + /** + * Get a URL relative to the context path of Jenkins which should be used to link to the console for the specified build. + *

Should only be used in the context of serving an HTTP request. + * @param run the build + * @return the URL for the console for the specified build, relative to the context of Jenkins, or {@code null} + * if this implementation does not want to server a special console view for this build. + */ + @CheckForNull String getConsoleUrl(Run run); + + @Override + default Descriptor getDescriptor() { + return Jenkins.get().getDescriptorOrDie(getClass()); + } + + /** + * Get a URL relative to the web server root which should be used to link to the console for the specified build. + *

Should only be used in the context of serving an HTTP request. + *

Use {@link Functions#getConsoleUrl} to obtain this link in a Jelly template. + * @param run the build + * @return the URL for the console for the specified build, relative to the web server root + */ + static @NonNull String getRedirectUrl(Run run) { + final List providers = new ArrayList<>(); + User currentUser = User.current(); + if (currentUser != null) { + ConsoleUrlProviderUserProperty userProperty = currentUser.getProperty(ConsoleUrlProviderUserProperty.class); + if (userProperty != null) { + List userProviders = userProperty.getProviders(); + if (userProviders != null) { + providers.addAll(userProviders); + } + } + } + // Global providers are always considered in case the user-configured providers are non-exhaustive. + ConsoleUrlProviderGlobalConfiguration globalConfig = ConsoleUrlProviderGlobalConfiguration.get(); + List globalProviders = globalConfig.getProviders(); + if (globalProviders != null) { + providers.addAll(globalProviders); + } + String url = null; + for (ConsoleUrlProvider provider : providers) { + try { + String tempUrl = provider.getConsoleUrl(run); + if (tempUrl != null) { + if (new URI(tempUrl).isAbsolute()) { + LOGGER.warning(() -> "Ignoring absolute console URL " + tempUrl + " for " + run + " from " + provider.getClass()); + } else { + // Found a valid non-null URL. + url = tempUrl; + break; + } + } + } catch (Exception e) { // Intentionally broad catch clause to guard against broken implementations. + LOGGER.log(Level.WARNING, e, () -> "Error looking up console URL for " + run + " from " + provider.getClass()); + } + } + if (url == null) { + // Reachable if DefaultConsoleUrlProvider is not one of the configured providers, including if no providers are configured at all. + url = run.getUrl() + "console"; + } + if (url.startsWith("/")) { + return Stapler.getCurrentRequest().getContextPath() + url; + } else { + return Stapler.getCurrentRequest().getContextPath() + '/' + url; + } + } + + /** + * Check whether there are at least two {@link ConsoleUrlProvider} implementations available. + * @return {@code true} if there are at least two {@link ConsoleUrlProvider} implementations available, {@code false} otherwise. + */ + static boolean isEnabled() { + // No point showing related configuration pages if the only option is ConsoleUrlProvider.Default. + return Jenkins.get().getDescriptorList(ConsoleUrlProvider.class).size() > 1; + } +} diff --git a/core/src/main/java/jenkins/console/ConsoleUrlProviderGlobalConfiguration.java b/core/src/main/java/jenkins/console/ConsoleUrlProviderGlobalConfiguration.java new file mode 100644 index 000000000000..260321b009eb --- /dev/null +++ b/core/src/main/java/jenkins/console/ConsoleUrlProviderGlobalConfiguration.java @@ -0,0 +1,110 @@ +/* + * The MIT License + * + * Copyright 2023 CloudBees, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package jenkins.console; + +import edu.umd.cs.findbugs.annotations.NonNull; +import hudson.BulkChange; +import hudson.Extension; +import hudson.ExtensionList; +import hudson.model.Descriptor; +import java.io.IOException; +import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.stream.Collectors; +import jenkins.appearance.AppearanceCategory; +import jenkins.model.GlobalConfiguration; +import jenkins.model.GlobalConfigurationCategory; +import jenkins.model.Jenkins; +import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.NoExternalUse; +import org.kohsuke.stapler.DataBoundSetter; +import org.kohsuke.stapler.StaplerRequest; + +/** + * Allows administrators to activate and sort {@link ConsoleUrlProvider} extensions to set defaults for all users. + * @see ConsoleUrlProviderUserProperty + * @since TODO + */ +@Extension +@Symbol("consoleUrlProvider") +@Restricted(NoExternalUse.class) +public class ConsoleUrlProviderGlobalConfiguration extends GlobalConfiguration { + private static final Logger LOGGER = Logger.getLogger(ConsoleUrlProviderGlobalConfiguration.class.getName()); + + private List providers; + + public ConsoleUrlProviderGlobalConfiguration() { + load(); + } + + @NonNull + @Override + public GlobalConfigurationCategory getCategory() { + return GlobalConfigurationCategory.get(AppearanceCategory.class); + } + + public List getProviders() { + return providers; + } + + @DataBoundSetter + public void setProviders(List providers) { + this.providers = providers; + save(); + } + + @Override + public boolean configure(StaplerRequest req, JSONObject json) throws FormException { + // We have to null out providers before data binding to allow all providers to be deleted in the config UI. + // We use a BulkChange to avoid double saves in other cases. + try (BulkChange bc = new BulkChange(this)) { + providers = null; + req.bindJSON(this, json); + bc.commit(); + } catch (IOException e) { + LOGGER.log(Level.WARNING, "Failed to save " + getConfigFile(), e); + } + return true; + } + + public boolean isEnabled() { + return ConsoleUrlProvider.isEnabled(); + } + + public static ConsoleUrlProviderGlobalConfiguration get() { + return ExtensionList.lookupSingleton(ConsoleUrlProviderGlobalConfiguration.class); + } + + public List> getProvidersDescriptors() { + // For the global configuration, the default provider will always be consulted as a last resort, and since it + // handles all builds, there is no reason to ever select it explicitly. + return Jenkins.get().getDescriptorList(ConsoleUrlProvider.class).stream() + .filter(d -> !(d instanceof DefaultConsoleUrlProvider.DescriptorImpl)) + .collect(Collectors.toList()); + } +} diff --git a/core/src/main/java/jenkins/console/ConsoleUrlProviderUserProperty.java b/core/src/main/java/jenkins/console/ConsoleUrlProviderUserProperty.java new file mode 100644 index 000000000000..d741a0f16fd4 --- /dev/null +++ b/core/src/main/java/jenkins/console/ConsoleUrlProviderUserProperty.java @@ -0,0 +1,78 @@ +/* + * The MIT License + * + * Copyright 2023 CloudBees, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package jenkins.console; + +import edu.umd.cs.findbugs.annotations.CheckForNull; +import hudson.Extension; +import hudson.model.User; +import hudson.model.UserProperty; +import hudson.model.UserPropertyDescriptor; +import java.util.List; +import org.jenkinsci.Symbol; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.NoExternalUse; +import org.kohsuke.stapler.DataBoundConstructor; +import org.kohsuke.stapler.DataBoundSetter; + +/** + * Allows users to activate and sort {@link ConsoleUrlProvider} extensions based on their preferences. + * @see ConsoleUrlProviderGlobalConfiguration + * @since TODO + */ +@Restricted(NoExternalUse.class) +public class ConsoleUrlProviderUserProperty extends UserProperty { + private List providers; + + @DataBoundConstructor + public ConsoleUrlProviderUserProperty() { } + + public @CheckForNull List getProviders() { + return providers; + } + + @DataBoundSetter + public void setProviders(List providers) { + this.providers = providers; + } + + @Extension + @Symbol("consoleUrlProvider") + public static class DescriptorImpl extends UserPropertyDescriptor { + @Override + public String getDisplayName() { + return Messages.consoleUrlProviderDisplayName(); + } + + @Override + public UserProperty newInstance(User user) { + return new ConsoleUrlProviderUserProperty(); + } + + @Override + public boolean isEnabled() { + return ConsoleUrlProvider.isEnabled(); + } + } +} diff --git a/core/src/main/java/jenkins/console/DefaultConsoleUrlProvider.java b/core/src/main/java/jenkins/console/DefaultConsoleUrlProvider.java new file mode 100644 index 000000000000..34722301529d --- /dev/null +++ b/core/src/main/java/jenkins/console/DefaultConsoleUrlProvider.java @@ -0,0 +1,62 @@ +/* + * The MIT License + * + * Copyright 2023 CloudBees, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package jenkins.console; + +import hudson.Extension; +import hudson.model.Descriptor; +import hudson.model.Run; +import org.jenkinsci.Symbol; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.NoExternalUse; +import org.kohsuke.stapler.DataBoundConstructor; + +/** + * Default implementation of {@link ConsoleUrlProvider} that uses the standard Jenkins console view. + *

Exists so that users have a way to override {@link ConsoleUrlProviderGlobalConfiguration} and specify the default + * console view if desired via {@link ConsoleUrlProviderUserProperty}. + * @since TODO + */ +@Restricted(value = NoExternalUse.class) +public class DefaultConsoleUrlProvider implements ConsoleUrlProvider { + + @DataBoundConstructor + public DefaultConsoleUrlProvider() { + } + + @Override + public String getConsoleUrl(Run run) { + return run.getUrl() + "console"; + } + + @Extension + @Symbol(value = "default") + public static class DescriptorImpl extends Descriptor { + + @Override + public String getDisplayName() { + return Messages.defaultProviderDisplayName(); + } + } +} diff --git a/core/src/main/java/jenkins/widgets/BuildListTable.java b/core/src/main/java/jenkins/widgets/BuildListTable.java index 19abff8b1d1f..495d7e50be6d 100644 --- a/core/src/main/java/jenkins/widgets/BuildListTable.java +++ b/core/src/main/java/jenkins/widgets/BuildListTable.java @@ -29,6 +29,7 @@ import hudson.model.BallColor; import hudson.model.Run; import java.util.Date; +import jenkins.console.ConsoleUrlProvider; import net.sf.json.JSONObject; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.DoNotUse; @@ -41,6 +42,7 @@ public class BuildListTable extends RunListProgressiveRendering { element.put("iconColorOrdinal", iconColor.ordinal()); element.put("iconColorDescription", iconColor.getDescription()); element.put("url", build.getUrl()); + element.put("consoleUrl", ConsoleUrlProvider.getRedirectUrl(build)); element.put("iconName", build.getIconColor().getIconName()); element.put("parentUrl", build.getParent().getUrl()); element.put("parentFullDisplayName", Functions.breakableString(Functions.escape(build.getParent().getFullDisplayName()))); diff --git a/core/src/main/java/jenkins/widgets/BuildTimeTrend.java b/core/src/main/java/jenkins/widgets/BuildTimeTrend.java index 2ddc25607de5..59ab879f05da 100644 --- a/core/src/main/java/jenkins/widgets/BuildTimeTrend.java +++ b/core/src/main/java/jenkins/widgets/BuildTimeTrend.java @@ -28,6 +28,7 @@ import hudson.model.BallColor; import hudson.model.Node; import hudson.model.Run; +import jenkins.console.ConsoleUrlProvider; import jenkins.model.Jenkins; import net.sf.json.JSONObject; import org.kohsuke.accmod.Restricted; @@ -45,6 +46,7 @@ public class BuildTimeTrend extends RunListProgressiveRendering { element.put("displayName", build.getDisplayName()); element.put("duration", build.getDuration()); element.put("durationString", build.getDurationString()); + element.put("consoleUrl", ConsoleUrlProvider.getRedirectUrl(build)); if (build instanceof AbstractBuild) { AbstractBuild b = (AbstractBuild) build; Node n = b.getBuiltOn(); diff --git a/core/src/main/resources/hudson/model/AbstractBuild/changes.jelly b/core/src/main/resources/hudson/model/AbstractBuild/changes.jelly index 13d351794f7c..c19409e87dc0 100644 --- a/core/src/main/resources/hudson/model/AbstractBuild/changes.jelly +++ b/core/src/main/resources/hudson/model/AbstractBuild/changes.jelly @@ -40,7 +40,7 @@ THE SOFTWARE. ${%Not yet determined} - ${%Failed to determine} (${%log}) + ${%Failed to determine} (${%log}) diff --git a/core/src/main/resources/hudson/model/AbstractBuild/index.jelly b/core/src/main/resources/hudson/model/AbstractBuild/index.jelly index 2d35a86710ed..8444984d49cd 100644 --- a/core/src/main/resources/hudson/model/AbstractBuild/index.jelly +++ b/core/src/main/resources/hudson/model/AbstractBuild/index.jelly @@ -98,7 +98,7 @@ THE SOFTWARE. ${%Not yet determined} - ${%Failed to determine} (${%log}) + ${%Failed to determine} (${%log}) diff --git a/core/src/main/resources/hudson/model/Job/buildTimeTrend_resources.js b/core/src/main/resources/hudson/model/Job/buildTimeTrend_resources.js index 7fcfa705ff73..105cdbc06ed2 100644 --- a/core/src/main/resources/hudson/model/Job/buildTimeTrend_resources.js +++ b/core/src/main/resources/hudson/model/Job/buildTimeTrend_resources.js @@ -16,7 +16,7 @@ window.buildTimeTrend_displayBuilds = function (data) { let link = document.createElement("a"); link.classList.add("build-status-link"); - link.href = e.number + "/console"; + link.href = e.consoleUrl; td.appendChild(link); let svg = generateSVGIcon(e.iconName); link.appendChild(svg); @@ -209,7 +209,7 @@ window.displayBuilds = function (data) { div2.classList.add("jenkins-table__cell__button-wrapper"); var a3 = document.createElement("a"); a3.classList.add("jenkins-table__button"); - a3.href = rootUrl + "/" + e.url + "console"; + a3.href = e.consoleUrl; a3.innerHTML = p.dataset.consoleOutputIcon; div2.appendChild(a3); td5.appendChild(div2); diff --git a/core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly b/core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly index 5d92cd6b4c93..366071ebf7fa 100644 --- a/core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly +++ b/core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly @@ -38,7 +38,7 @@ THE SOFTWARE.

diff --git a/core/src/main/resources/jenkins/console/ConsoleUrlProviderGlobalConfiguration/config.jelly b/core/src/main/resources/jenkins/console/ConsoleUrlProviderGlobalConfiguration/config.jelly new file mode 100644 index 000000000000..59f563d988b2 --- /dev/null +++ b/core/src/main/resources/jenkins/console/ConsoleUrlProviderGlobalConfiguration/config.jelly @@ -0,0 +1,13 @@ + + + + + + ${%description} + + + + + + + diff --git a/core/src/main/resources/jenkins/console/ConsoleUrlProviderGlobalConfiguration/config.properties b/core/src/main/resources/jenkins/console/ConsoleUrlProviderGlobalConfiguration/config.properties new file mode 100644 index 000000000000..b4c5a51ccf95 --- /dev/null +++ b/core/src/main/resources/jenkins/console/ConsoleUrlProviderGlobalConfiguration/config.properties @@ -0,0 +1 @@ +description=Controls what visualization tool handles build console links. Providers higher in the list take precedence over providers lower in the list. If no explicitly specified provider can render a console link, the default provider will be used. Individual users can override this configuration according to their preferences. \ No newline at end of file diff --git a/core/src/main/resources/jenkins/console/ConsoleUrlProviderUserProperty/config.jelly b/core/src/main/resources/jenkins/console/ConsoleUrlProviderUserProperty/config.jelly new file mode 100644 index 000000000000..57f5af6d2097 --- /dev/null +++ b/core/src/main/resources/jenkins/console/ConsoleUrlProviderUserProperty/config.jelly @@ -0,0 +1,15 @@ + + + + + + + + + ${%description} + + + + + + diff --git a/core/src/main/resources/jenkins/console/ConsoleUrlProviderUserProperty/config.properties b/core/src/main/resources/jenkins/console/ConsoleUrlProviderUserProperty/config.properties new file mode 100644 index 000000000000..9ebb3cd824ca --- /dev/null +++ b/core/src/main/resources/jenkins/console/ConsoleUrlProviderUserProperty/config.properties @@ -0,0 +1 @@ +description=Controls what visualization tool handles build console links. Providers higher in the list take precedence over providers lower in the list. All providers configured here take precedence over those configured globally by administrators. \ No newline at end of file diff --git a/core/src/main/resources/jenkins/console/Messages.properties b/core/src/main/resources/jenkins/console/Messages.properties new file mode 100644 index 000000000000..20a460d49709 --- /dev/null +++ b/core/src/main/resources/jenkins/console/Messages.properties @@ -0,0 +1,2 @@ +consoleUrlProviderDisplayName=Console URL Provider +defaultProviderDisplayName=Default \ No newline at end of file diff --git a/core/src/main/resources/lib/hudson/buildProgressBar.jelly b/core/src/main/resources/lib/hudson/buildProgressBar.jelly index 18f7151c4488..278d6de71b7b 100644 --- a/core/src/main/resources/lib/hudson/buildProgressBar.jelly +++ b/core/src/main/resources/lib/hudson/buildProgressBar.jelly @@ -36,5 +36,5 @@ THE SOFTWARE. + pos="${executor.progress}" href="${h.getConsoleUrl(build) ?: (rootURL + '/' + build.url + 'console')}"/> diff --git a/core/src/main/resources/lib/hudson/project/console-link.jelly b/core/src/main/resources/lib/hudson/project/console-link.jelly index 97ddb9d9aaee..3a0f9cd5f727 100644 --- a/core/src/main/resources/lib/hudson/project/console-link.jelly +++ b/core/src/main/resources/lib/hudson/project/console-link.jelly @@ -28,11 +28,11 @@ THE SOFTWARE. - + - + diff --git a/test/src/test/java/jenkins/console/ConsoleUrlProviderTest.java b/test/src/test/java/jenkins/console/ConsoleUrlProviderTest.java new file mode 100644 index 000000000000..b9881fbeddac --- /dev/null +++ b/test/src/test/java/jenkins/console/ConsoleUrlProviderTest.java @@ -0,0 +1,177 @@ +/* + * The MIT License + * + * Copyright 2023 CloudBees, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package jenkins.console; + +import static org.junit.Assert.assertEquals; + +import hudson.model.Descriptor; +import hudson.model.FreeStyleBuild; +import hudson.model.FreeStyleProject; +import hudson.model.Run; +import hudson.model.User; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.ClassRule; +import org.junit.Rule; +import org.junit.Test; +import org.jvnet.hudson.test.BuildWatcher; +import org.jvnet.hudson.test.JenkinsRule; +import org.jvnet.hudson.test.TestExtension; + +public class ConsoleUrlProviderTest { + @ClassRule + public static BuildWatcher watcher = new BuildWatcher(); + + @Rule + public JenkinsRule r = new JenkinsRule(); + + @Test + public void getRedirectUrl() throws Exception { + ConsoleUrlProviderGlobalConfiguration.get().setProviders(list(new CustomConsoleUrlProvider())); + FreeStyleProject p = r.createProject(FreeStyleProject.class); + // Default URL + FreeStyleBuild b = r.buildAndAssertSuccess(p); + assertCustomConsoleUrl(r.contextPath + '/' + b.getUrl() + "console", b); + // Custom URL without leading slash + b.setDescription("custom my/build/console"); + assertCustomConsoleUrl(r.contextPath + "/my/build/console", b); + // Custom URL with leading slash + b.setDescription("custom /my/build/console"); + assertCustomConsoleUrl(r.contextPath + "/my/build/console", b); + // Default URL is used when extensions throw exceptions. + b.setDescription("NullPointerException"); + assertCustomConsoleUrl(r.contextPath + '/' + b.getUrl() + "console", b); + // Check precedence and fallthrough behavior with ConsoleUrlProviderGlobalConfiguration.providers. + ConsoleUrlProviderGlobalConfiguration.get().setProviders( + list(new IgnoreAllRunsConsoleUrlProvider(), new CustomConsoleUrlProvider("-a"), new CustomConsoleUrlProvider("-b"))); + b.setDescription("custom my/build/console"); + assertCustomConsoleUrl(r.contextPath + "/my/build/console-a", b); + } + + @Test + public void getUserSpecificRedirectUrl() throws Exception { + r.jenkins.setSecurityRealm(r.createDummySecurityRealm()); + User admin = User.getById("admin", true); + // Admin choses custom, user overrides to default + ConsoleUrlProviderGlobalConfiguration.get().setProviders(list(new CustomConsoleUrlProvider())); + admin.getProperty(ConsoleUrlProviderUserProperty.class).setProviders(list(new DefaultConsoleUrlProvider())); + FreeStyleProject p = r.createProject(FreeStyleProject.class); + FreeStyleBuild b = r.buildAndAssertSuccess(p); + b.setDescription("custom my/build/console"); + assertCustomConsoleUrl(r.contextPath + "/my/build/console", b); + assertCustomConsoleUrl(r.contextPath + "/" + b.getUrl() + "console", admin, b); + // Admin does not configure anything, user chooses custom + ConsoleUrlProviderGlobalConfiguration.get().setProviders(null); + admin.getProperty(ConsoleUrlProviderUserProperty.class).setProviders(list(new CustomConsoleUrlProvider())); + assertCustomConsoleUrl(r.contextPath + "/" + b.getUrl() + "console", b); + assertCustomConsoleUrl(r.contextPath + "/my/build/console", admin, b); + // Check precedence and fallthrough behavior with ConsoleUrlProviderUserProperty.providers. + admin.getProperty(ConsoleUrlProviderUserProperty.class).setProviders( + list(new IgnoreAllRunsConsoleUrlProvider(), new CustomConsoleUrlProvider("-a"), new CustomConsoleUrlProvider("-b"))); + assertCustomConsoleUrl(r.contextPath + "/my/build/console-a", admin, b); + } + + @Test + public void useGlobalProvidersIfUserProvidersDontReturnValidUrl() throws Exception { + r.jenkins.setSecurityRealm(r.createDummySecurityRealm()); + User admin = User.getById("admin", true); + // Admin choses custom, user chooses a provider that ignores everything, so global choice still gets used. + ConsoleUrlProviderGlobalConfiguration.get().setProviders(list(new CustomConsoleUrlProvider())); + admin.getProperty(ConsoleUrlProviderUserProperty.class).setProviders(list(new IgnoreAllRunsConsoleUrlProvider())); + FreeStyleProject p = r.createProject(FreeStyleProject.class); + FreeStyleBuild b = r.buildAndAssertSuccess(p); + b.setDescription("custom my/build/console"); + assertCustomConsoleUrl(r.contextPath + "/my/build/console", admin, b); + } + + @Test + public void invalidRedirectUrls() throws Exception { + ConsoleUrlProviderGlobalConfiguration.get().setProviders(list(new CustomConsoleUrlProvider())); + FreeStyleProject p = r.createProject(FreeStyleProject.class); + FreeStyleBuild b = r.buildAndAssertSuccess(p); + b.setDescription("custom https://example.com"); + assertCustomConsoleUrl(r.contextPath + "/" + b.getUrl() + "console", b); + b.setDescription("custom invalid url"); + assertCustomConsoleUrl(r.contextPath + "/" + b.getUrl() + "console", b); + } + + public void assertCustomConsoleUrl(String expectedUrl, Run run) throws Exception { + assertCustomConsoleUrl(expectedUrl, null, run); + } + + public void assertCustomConsoleUrl(String expectedUrl, User user, Run run) throws Exception { + JenkinsRule.WebClient wc = r.createWebClient(); + if (user != null) { + wc.login(user.getId(), user.getId()); + } + String actualUrl = wc.executeOnServer(() -> ConsoleUrlProvider.getRedirectUrl(run)); + assertEquals(expectedUrl, actualUrl); + } + + // Like List.of, but avoids JEP-200 class filter warnings. + private static List list(T... items) { + return new ArrayList<>(Arrays.asList(items)); + } + + public static class CustomConsoleUrlProvider implements ConsoleUrlProvider { + private final String suffix; + + public CustomConsoleUrlProvider() { + this.suffix = ""; + } + + public CustomConsoleUrlProvider(String suffix) { + this.suffix = suffix; + } + + @Override + public String getConsoleUrl(Run run) { + String description = run.getDescription(); + if (description == null) { + return null; + } else if (description.startsWith("custom ")) { + return description.substring("custom ".length()) + suffix; + } else { + throw new NullPointerException("getConsoleUrl should be robust against runtime errors"); + } + } + + @TestExtension + public static class DescriptorImpl extends Descriptor { } + } + + public static class IgnoreAllRunsConsoleUrlProvider implements ConsoleUrlProvider { + + @Override + public String getConsoleUrl(Run run) { + return null; + } + + @TestExtension + public static class DescriptorImpl extends Descriptor { } + } + +} From 046db74e0c72786d8ae8379f37f54a9cf25d2019 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 18 Nov 2023 14:59:18 -0700 Subject: [PATCH 0014/1216] Bump actions/github-script from 6 to 7 (#8691) Bumps [actions/github-script](https://github.com/actions/github-script) from 6 to 7. - [Release notes](https://github.com/actions/github-script/releases) - [Commits](https://github.com/actions/github-script/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/github-script dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Mark Waite --- .github/workflows/label-lts-prs.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/label-lts-prs.yaml b/.github/workflows/label-lts-prs.yaml index e947bd078f0f..4e63806f751d 100644 --- a/.github/workflows/label-lts-prs.yaml +++ b/.github/workflows/label-lts-prs.yaml @@ -11,7 +11,7 @@ jobs: steps: - name: Check if PR targets LTS branch if: startsWith(github.event.pull_request.base.ref, 'stable-') - uses: actions/github-script@v6 + uses: actions/github-script@v7 with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | From 2d621fe5ac86996fc4253833db4de1d6178b45a2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 18 Nov 2023 15:10:09 -0700 Subject: [PATCH 0015/1216] Bump tibdex/github-app-token from 1 to 2 (#8477) Bumps [tibdex/github-app-token](https://github.com/tibdex/github-app-token) from 1 to 2. - [Release notes](https://github.com/tibdex/github-app-token/releases) - [Commits](https://github.com/tibdex/github-app-token/compare/v1...v2) --- updated-dependencies: - dependency-name: tibdex/github-app-token dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/changelog.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml index 70391d2e42dd..89176f679a19 100644 --- a/.github/workflows/changelog.yml +++ b/.github/workflows/changelog.yml @@ -44,7 +44,7 @@ jobs: runs-on: ubuntu-latest if: github.repository_owner == 'jenkinsci' steps: - - uses: tibdex/github-app-token@v1 + - uses: tibdex/github-app-token@v2 id: generate-token with: app_id: ${{ secrets.JENKINS_CHANGELOG_UPDATER_APP_ID }} From da36566029a12cafe91687cc52bacf64dfbdb3af Mon Sep 17 00:00:00 2001 From: Mark Waite Date: Sat, 18 Nov 2023 16:08:59 -0700 Subject: [PATCH 0016/1216] Revert "Bump tibdex/github-app-token from 1 to 2" (#8702) Revert "Bump tibdex/github-app-token from 1 to 2 (#8477)" This reverts commit 2d621fe5ac86996fc4253833db4de1d6178b45a2. --- .github/workflows/changelog.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml index 89176f679a19..70391d2e42dd 100644 --- a/.github/workflows/changelog.yml +++ b/.github/workflows/changelog.yml @@ -44,7 +44,7 @@ jobs: runs-on: ubuntu-latest if: github.repository_owner == 'jenkinsci' steps: - - uses: tibdex/github-app-token@v2 + - uses: tibdex/github-app-token@v1 id: generate-token with: app_id: ${{ secrets.JENKINS_CHANGELOG_UPDATER_APP_ID }} From 1edd1c21a62931e3438a577122441d1710f4162c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 19 Nov 2023 09:18:48 +0100 Subject: [PATCH 0017/1216] Update dependency lit to v3.1.0 (#8703) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- core/src/site/site.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/site/site.xml b/core/src/site/site.xml index 4007e34aab89..76faf2e946cc 100644 --- a/core/src/site/site.xml +++ b/core/src/site/site.xml @@ -6,7 +6,7 @@ + From 361629b6e24b7536da8585381b1d7dfa48e4adbb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 19 Nov 2023 12:38:15 -0700 Subject: [PATCH 0018/1216] Bump org.glassfish.tyrus.bundles:tyrus-standalone-client-jdk from 2.1.3 to 2.1.4 (#8673) Bump org.glassfish.tyrus.bundles:tyrus-standalone-client-jdk Bumps org.glassfish.tyrus.bundles:tyrus-standalone-client-jdk from 2.1.3 to 2.1.4. --- updated-dependencies: - dependency-name: org.glassfish.tyrus.bundles:tyrus-standalone-client-jdk dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- cli/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/pom.xml b/cli/pom.xml index fa8971e32ac7..21aabc88e649 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -65,7 +65,7 @@ org.glassfish.tyrus.bundles tyrus-standalone-client-jdk - 2.1.3 + 2.1.4 true From af751016d11f955dc636c25395ef0f2bff2c9e09 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 19 Nov 2023 12:38:30 -0700 Subject: [PATCH 0019/1216] Bump com.puppycrawl.tools:checkstyle from 10.12.4 to 10.12.5 (#8692) Bumps [com.puppycrawl.tools:checkstyle](https://github.com/checkstyle/checkstyle) from 10.12.4 to 10.12.5. - [Release notes](https://github.com/checkstyle/checkstyle/releases) - [Commits](https://github.com/checkstyle/checkstyle/compare/checkstyle-10.12.4...checkstyle-10.12.5) --- updated-dependencies: - dependency-name: com.puppycrawl.tools:checkstyle dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 3eb7090208d8..9c2ac99d6210 100644 --- a/pom.xml +++ b/pom.xml @@ -332,7 +332,7 @@ THE SOFTWARE. com.puppycrawl.tools checkstyle - 10.12.4 + 10.12.5 From 545adfd680ce93c5749c2e346b0e4388040ae84e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 19 Nov 2023 12:38:38 -0700 Subject: [PATCH 0020/1216] Bump org.springframework:spring-framework-bom from 5.3.30 to 5.3.31 (#8696) Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 5.3.30 to 5.3.31. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.30...v5.3.31) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bom/pom.xml b/bom/pom.xml index 595b6b3f383a..1f30bdb0ed1a 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -56,7 +56,7 @@ THE SOFTWARE. org.springframework spring-framework-bom - 5.3.30 + 5.3.31 pom import From 742e95d735ab4b4d56b829bfd2007126e8a266f2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 19 Nov 2023 12:38:47 -0700 Subject: [PATCH 0021/1216] Bump org.apache.commons:commons-compress from 1.24.0 to 1.25.0 (#8697) Bumps org.apache.commons:commons-compress from 1.24.0 to 1.25.0. --- updated-dependencies: - dependency-name: org.apache.commons:commons-compress dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bom/pom.xml b/bom/pom.xml index 1f30bdb0ed1a..616d7f77af70 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -188,7 +188,7 @@ THE SOFTWARE. org.apache.commons commons-compress - 1.24.0 + 1.25.0 org.codehaus.groovy From d9cbaa006ab6267dfbf1edfb44d7f853e24d28c0 Mon Sep 17 00:00:00 2001 From: Markus Winter Date: Mon, 20 Nov 2023 12:36:12 +0100 Subject: [PATCH 0022/1216] [JENKINS-71726] [JENKINS-71727] remove inline javascript (#8313) * [JENKINS-71727] remove inline javascript Also JENKINS-71726 * missing id * fix script tag Co-authored-by: Kevin Guerroudj <91883215+Kevin-CB@users.noreply.github.com> --------- Co-authored-by: Kevin Guerroudj <91883215+Kevin-CB@users.noreply.github.com> Co-authored-by: Mark Waite --- core/src/main/java/hudson/Util.java | 16 ++++++++++++++++ core/src/main/java/hudson/model/Run.java | 9 ++------- .../HudsonAuthenticationEntryPoint.java | 17 ++--------------- war/src/main/webapp/scripts/redirect.js | 3 +++ 4 files changed, 23 insertions(+), 22 deletions(-) create mode 100644 war/src/main/webapp/scripts/redirect.js diff --git a/core/src/main/java/hudson/Util.java b/core/src/main/java/hudson/Util.java index c4d1e7088336..24b04ce3085d 100644 --- a/core/src/main/java/hudson/Util.java +++ b/core/src/main/java/hudson/Util.java @@ -43,6 +43,7 @@ import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.PrintStream; +import java.io.PrintWriter; import java.io.Reader; import java.io.StringReader; import java.io.Writer; @@ -108,6 +109,7 @@ import java.util.regex.Pattern; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; +import jenkins.model.Jenkins; import jenkins.util.MemoryReductionUtil; import jenkins.util.SystemProperties; import jenkins.util.io.PathRemover; @@ -1856,6 +1858,20 @@ public static long daysElapsedSince(@NonNull Date date) { return t; } + @Restricted(NoExternalUse.class) + public static void printRedirect(String contextPath, String redirectUrl, String message, PrintWriter out) { + out.printf( + "" + + "" + + "" + + "" + + "%n" + + "%2$s%n" + + " diff --git a/test/pom.xml b/test/pom.xml index 68260ba532ca..a3c8ea0cbc5a 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.433 + ${revision}${changelist} jenkins-test diff --git a/war/pom.xml b/war/pom.xml index 55578122a27a..b6082a6d1ada 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.433 + ${revision}${changelist} jenkins-war diff --git a/websocket/jetty10/pom.xml b/websocket/jetty10/pom.xml index b4e5a717652d..eb4a169a59d1 100644 --- a/websocket/jetty10/pom.xml +++ b/websocket/jetty10/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.433 + ${revision}${changelist} ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index f18d679701f8..77abcc3b7248 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.433 + ${revision}${changelist} ../.. From 8cbe60bc2f7d35e66b007975f5277cd81b7917f3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 21 Nov 2023 11:16:54 -0800 Subject: [PATCH 0025/1216] Update dependency eslint to v8.54.0 (#8712) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/yarn.lock | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/war/package.json b/war/package.json index 45b59e770dc9..8c0ea9634f47 100644 --- a/war/package.json +++ b/war/package.json @@ -30,7 +30,7 @@ "clean-webpack-plugin": "4.0.0", "css-loader": "6.8.1", "css-minimizer-webpack-plugin": "5.0.1", - "eslint": "8.53.0", + "eslint": "8.54.0", "eslint-config-prettier": "9.0.0", "handlebars-loader": "1.7.3", "mini-css-extract-plugin": "2.7.6", diff --git a/war/yarn.lock b/war/yarn.lock index afcdf628f466..bd73a9944d39 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -1802,10 +1802,10 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:8.53.0": - version: 8.53.0 - resolution: "@eslint/js@npm:8.53.0" - checksum: d29f6c207b2f6dc4ef174d16a3c07b0d3a17ca3d805680496ff267edd773e3bac41db4e7dcab622ca1970d892535bd19671e2a756d4eac75e96fd8c8dcdb619b +"@eslint/js@npm:8.54.0": + version: 8.54.0 + resolution: "@eslint/js@npm:8.54.0" + checksum: d61fb4a0be6af2d8cb290121c329697664a75d6255a29926d5454fb02aeb02b87112f67fdf218d10abac42f90c570ac366126751baefc5405d0e017ed0c946c5 languageName: node linkType: hard @@ -3553,14 +3553,14 @@ __metadata: languageName: node linkType: hard -"eslint@npm:8.53.0": - version: 8.53.0 - resolution: "eslint@npm:8.53.0" +"eslint@npm:8.54.0": + version: 8.54.0 + resolution: "eslint@npm:8.54.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" "@eslint-community/regexpp": "npm:^4.6.1" "@eslint/eslintrc": "npm:^2.1.3" - "@eslint/js": "npm:8.53.0" + "@eslint/js": "npm:8.54.0" "@humanwhocodes/config-array": "npm:^0.11.13" "@humanwhocodes/module-importer": "npm:^1.0.1" "@nodelib/fs.walk": "npm:^1.2.8" @@ -3597,7 +3597,7 @@ __metadata: text-table: "npm:^0.2.0" bin: eslint: bin/eslint.js - checksum: c5cd0049488c0463dab7d97466767ca5a1d0b3b59d0a223122683dc8039ecea30b27867fb9e38906b4c1ab9d09ece8a802a6c540d8905016f1cc4b4bb27329af + checksum: 4f205f832bdbd0218cde374b067791f4f76d7abe8de86b2dc849c273899051126d912ebf71531ee49b8eeaa22cad77febdc8f2876698dc2a76e84a8cb976af22 languageName: node linkType: hard @@ -4413,7 +4413,7 @@ __metadata: clean-webpack-plugin: "npm:4.0.0" css-loader: "npm:6.8.1" css-minimizer-webpack-plugin: "npm:5.0.1" - eslint: "npm:8.53.0" + eslint: "npm:8.54.0" eslint-config-prettier: "npm:9.0.0" handlebars: "npm:4.7.8" handlebars-loader: "npm:1.7.3" From d490e43f77e614dbdc3f04d1c677b53f57710bab Mon Sep 17 00:00:00 2001 From: Jan Faracik <43062514+janfaracik@users.noreply.github.com> Date: Wed, 22 Nov 2023 21:43:59 +0000 Subject: [PATCH 0026/1216] Use secondary text color for build history descriptions rather than lowering opacity (#8707) Update _style.scss --- war/src/main/scss/base/_style.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/src/main/scss/base/_style.scss b/war/src/main/scss/base/_style.scss index e1957b7f01c1..ecda3df84a4e 100644 --- a/war/src/main/scss/base/_style.scss +++ b/war/src/main/scss/base/_style.scss @@ -459,7 +459,7 @@ div.listview-jobs { padding: 0; margin-top: 5px; white-space: normal; - opacity: 0.6; + color: var(--text-color-secondary); word-break: break-word; } From f4fe5710a56944096054e54d377cbcae97e599df Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Thu, 23 Nov 2023 05:04:38 -0800 Subject: [PATCH 0027/1216] Refuse to load the Jenkins test harness in production (#8714) --- core/src/main/java/hudson/ClassicPluginStrategy.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/src/main/java/hudson/ClassicPluginStrategy.java b/core/src/main/java/hudson/ClassicPluginStrategy.java index c16fc93e1aa9..1047ec5a3dbc 100644 --- a/core/src/main/java/hudson/ClassicPluginStrategy.java +++ b/core/src/main/java/hudson/ClassicPluginStrategy.java @@ -290,6 +290,10 @@ protected ClassLoader createClassLoader(List paths, ClassLoader parent, At List urls = new ArrayList<>(); for (File path : paths) { + if (path.getName().startsWith("jenkins-test-harness")) { + throw new IllegalStateException("Refusing to load the Jenkins test harness in production (via " + + atts.getValue("Short-Name") + ")"); + } urls.add(path.toURI().toURL()); } URLClassLoader2 classLoader; From a9c34d73933aac28ff90c7b885b02bcbe3141084 Mon Sep 17 00:00:00 2001 From: Markus Winter Date: Thu, 23 Nov 2023 16:59:38 +0100 Subject: [PATCH 0028/1216] improve dialog form handling (#8701) --- war/src/main/js/components/dialogs/index.js | 33 +++++++++++---------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/war/src/main/js/components/dialogs/index.js b/war/src/main/js/components/dialogs/index.js index 3dc6ba4f9d91..de8874fe74bb 100644 --- a/war/src/main/js/components/dialogs/index.js +++ b/war/src/main/js/components/dialogs/index.js @@ -139,7 +139,11 @@ Dialog.prototype.appendButtons = function () { }
`); - this.dialog.appendChild(buttons); + if (this.dialogType === "form") { + this.form.appendChild(buttons); + } else { + this.dialog.appendChild(buttons); + } this.ok = buttons.querySelector("[data-id=ok]"); this.cancel = buttons.querySelector("[data-id=cancel]"); @@ -172,25 +176,24 @@ Dialog.prototype.show = function () { if (this.input != null) { this.input.focus(); } - if (this.ok != null) { + if ( + this.ok != null && + (this.dialogType != "form" || !this.options.submitButton) + ) { this.ok.addEventListener( "click", (e) => { - if (this.dialogType === "form" && this.options.submitButton) { - this.form.submit(); - } else { - e.preventDefault(); + e.preventDefault(); - let value = true; - if (this.dialogType === "prompt") { - value = this.input.value; - } - if (this.dialogType === "form") { - value = new FormData(this.form); - } - this.dialog.remove(); - resolve(value); + let value = true; + if (this.dialogType === "prompt") { + value = this.input.value; + } + if (this.dialogType === "form") { + value = new FormData(this.form); } + this.dialog.remove(); + resolve(value); }, { once: true }, ); From aad79effa12865395403badd58cef8a56e4860c7 Mon Sep 17 00:00:00 2001 From: Markus Winter Date: Fri, 24 Nov 2023 23:16:57 +0100 Subject: [PATCH 0029/1216] [JENKINS-72009, JENKINS-72200, JENKINS-24947] various fixes and improvements around disk space monitoring (#8593) --- core/src/main/java/hudson/Functions.java | 10 +- core/src/main/java/hudson/model/Computer.java | 10 ++ .../AbstractAsyncNodeMonitorDescriptor.java | 14 +- .../AbstractDiskSpaceMonitor.java | 85 ++++++--- .../node_monitors/DiskSpaceMonitor.java | 32 ++++ .../DiskSpaceMonitorDescriptor.java | 166 +++++++++++++++--- .../DiskSpaceMonitorNodeProperty.java | 59 +++++++ .../node_monitors/TemporarySpaceMonitor.java | 36 +++- .../hudson/model/ComputerSet/configure.jelly | 4 +- .../hudson/model/ComputerSet/index.jelly | 4 +- .../AbstractDiskSpaceMonitor/config.jelly | 5 +- .../help-freeSpaceThreshold.html | 11 +- .../help-freeSpaceWarningThreshold.html | 5 + .../DiskSpaceMonitor/column.jelly | 14 +- .../node_monitors/DiskSpaceMonitor/help.html | 4 +- .../DiskSpaceMonitorNodeProperty/config.jelly | 15 ++ .../config_de.properties | 2 + .../help-freeDiskSpaceThreshold.html | 8 + .../help-freeDiskSpaceWarningThreshold.html | 8 + .../help-freeTempSpaceThreshold.html | 8 + .../help-freeTempSpaceWarningThreshold.html | 8 + .../hudson/node_monitors/Messages.properties | 5 +- .../node_monitors/Messages_bg.properties | 2 +- .../node_monitors/Messages_cs.properties | 2 +- .../node_monitors/Messages_da.properties | 2 +- .../node_monitors/Messages_de.properties | 4 +- .../node_monitors/Messages_es.properties | 2 +- .../node_monitors/Messages_fr.properties | 2 +- .../node_monitors/Messages_it.properties | 4 +- .../node_monitors/Messages_ja.properties | 2 +- .../node_monitors/Messages_nl.properties | 2 +- .../node_monitors/Messages_pt_BR.properties | 4 +- .../node_monitors/Messages_ru.properties | 4 +- .../node_monitors/Messages_sr.properties | 2 +- .../node_monitors/Messages_sv_SE.properties | 3 +- .../node_monitors/Messages_zh_TW.properties | 2 +- .../TemporarySpaceMonitor/column.jelly | 14 +- .../TemporarySpaceMonitor/help.html | 2 +- core/src/test/java/hudson/FunctionsTest.java | 13 +- .../java/hudson/model/ComputerSetTest.java | 2 +- .../DiskSpaceMonitorDescriptorTest.java | 10 +- 41 files changed, 483 insertions(+), 108 deletions(-) create mode 100644 core/src/main/java/hudson/node_monitors/DiskSpaceMonitorNodeProperty.java create mode 100644 core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/help-freeSpaceWarningThreshold.html create mode 100644 core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorNodeProperty/config.jelly create mode 100644 core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorNodeProperty/config_de.properties create mode 100644 core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorNodeProperty/help-freeDiskSpaceThreshold.html create mode 100644 core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorNodeProperty/help-freeDiskSpaceWarningThreshold.html create mode 100644 core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorNodeProperty/help-freeTempSpaceThreshold.html create mode 100644 core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorNodeProperty/help-freeTempSpaceWarningThreshold.html diff --git a/core/src/main/java/hudson/Functions.java b/core/src/main/java/hudson/Functions.java index 9aa290b2e772..0d5786815ed0 100644 --- a/core/src/main/java/hudson/Functions.java +++ b/core/src/main/java/hudson/Functions.java @@ -2318,13 +2318,17 @@ public static String humanReadableByteSize(long size) { double number = size; if (number >= 1024) { number = number / 1024; - measure = "KB"; + measure = "KiB"; if (number >= 1024) { number = number / 1024; - measure = "MB"; + measure = "MiB"; if (number >= 1024) { number = number / 1024; - measure = "GB"; + measure = "GiB"; + if (number >= 1024) { + number = number / 1024; + measure = "TiB"; + } } } } diff --git a/core/src/main/java/hudson/model/Computer.java b/core/src/main/java/hudson/model/Computer.java index 97571910f671..ae41c47d341d 100644 --- a/core/src/main/java/hudson/model/Computer.java +++ b/core/src/main/java/hudson/model/Computer.java @@ -44,6 +44,8 @@ import hudson.model.Queue.FlyweightTask; import hudson.model.labels.LabelAtom; import hudson.model.queue.WorkUnit; +import hudson.node_monitors.AbstractDiskSpaceMonitor; +import hudson.node_monitors.DiskSpaceMonitorNodeProperty; import hudson.node_monitors.NodeMonitor; import hudson.remoting.Channel; import hudson.remoting.VirtualChannel; @@ -1515,6 +1517,14 @@ public void doConfigSubmit(StaplerRequest req, StaplerResponse rsp) throws IOExc Node result = node.reconfigure(req, req.getSubmittedForm()); Jenkins.get().getNodesObject().replaceNode(this.getNode(), result); + if (result.getNodeProperty(DiskSpaceMonitorNodeProperty.class) != null) { + for (NodeMonitor monitor : NodeMonitor.getAll()) { + if (monitor instanceof AbstractDiskSpaceMonitor) { + monitor.data(this); + } + } + } + // take the user back to the agent top page. rsp.sendRedirect2("../" + result.getNodeName() + '/'); } diff --git a/core/src/main/java/hudson/node_monitors/AbstractAsyncNodeMonitorDescriptor.java b/core/src/main/java/hudson/node_monitors/AbstractAsyncNodeMonitorDescriptor.java index 8e46a3705718..7645e7fe097c 100644 --- a/core/src/main/java/hudson/node_monitors/AbstractAsyncNodeMonitorDescriptor.java +++ b/core/src/main/java/hudson/node_monitors/AbstractAsyncNodeMonitorDescriptor.java @@ -139,7 +139,7 @@ private void error(Computer c, Throwable x) { /** * Result object for {@link AbstractAsyncNodeMonitorDescriptor#monitorDetailed()} to facilitate extending information * returned in the future. - * + *

* The {@link #getMonitoringData()} provides the results of the monitoring as {@link #monitor()} does. Note the value * in the map can be {@code null} for several reasons: *

    @@ -149,8 +149,8 @@ private void error(Computer c, Throwable x) { *
  • The {@link AbstractAsyncNodeMonitorDescriptor#createCallable} has returned null.
  • *
* - * Clients can distinguishing among these states based on the additional data attached to this object. {@link #getSkipped()} - * returns computers that was not monitored as they ware either offline or monitor produced {@code null} {@link Callable}. + * Clients can distinguish among these states based on the additional data attached to this object. {@link #getSkipped()} + * returns computers that were not monitored as they were either offline or monitor produced {@code null} {@link Callable}. */ protected static final class Result { private static final long serialVersionUID = -7671448355804481216L; @@ -163,15 +163,15 @@ private Result(@NonNull Map data, @NonNull Collection ski this.skipped = new ArrayList<>(skipped); } - protected @NonNull Map getMonitoringData() { + public @NonNull Map getMonitoringData() { return data; } /** - * Computers that ware skipped during monitoring as they either do not have a a channel (offline) or the monitor - * have not produced the Callable. Computers that caused monitor to throw exception are not returned here. + * Computers that were skipped during monitoring as they either do not have a channel (offline) or the monitor + * has not produced the Callable. Computers that caused monitor to throw exception are not returned here. */ - protected @NonNull List getSkipped() { + public @NonNull List getSkipped() { return skipped; } } diff --git a/core/src/main/java/hudson/node_monitors/AbstractDiskSpaceMonitor.java b/core/src/main/java/hudson/node_monitors/AbstractDiskSpaceMonitor.java index 38230dd80f91..f9f93b50a6bb 100644 --- a/core/src/main/java/hudson/node_monitors/AbstractDiskSpaceMonitor.java +++ b/core/src/main/java/hudson/node_monitors/AbstractDiskSpaceMonitor.java @@ -4,8 +4,9 @@ import hudson.node_monitors.DiskSpaceMonitorDescriptor.DiskSpace; import java.text.ParseException; import java.util.logging.Logger; -import org.kohsuke.accmod.Restricted; -import org.kohsuke.accmod.restrictions.NoExternalUse; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import org.kohsuke.stapler.DataBoundSetter; /** * @author Kohsuke Kawaguchi @@ -17,6 +18,7 @@ public abstract class AbstractDiskSpaceMonitor extends NodeMonitor { * This is a human readable string representation as entered by the user, so that we can retain the original notation. */ public final String freeSpaceThreshold; + private String freeSpaceWarningThreshold; protected AbstractDiskSpaceMonitor(String threshold) throws ParseException { this.freeSpaceThreshold = threshold; @@ -24,12 +26,43 @@ protected AbstractDiskSpaceMonitor(String threshold) throws ParseException { } protected AbstractDiskSpaceMonitor() { - this.freeSpaceThreshold = "1GB"; + this.freeSpaceThreshold = "1GiB"; + this.freeSpaceWarningThreshold = "2GiB"; + } + + public Object readResolve() { + if (freeSpaceWarningThreshold == null) { + if (freeSpaceThreshold != null) { + Pattern p = Pattern.compile("(\\d+)(.*)"); + Matcher m = p.matcher(freeSpaceThreshold); + if (m.matches()) { + String digits = m.group(1); + String unit = m.group(2); + try { + int wt = Integer.parseInt(digits) * 2; + freeSpaceWarningThreshold = wt + unit; + } catch (NumberFormatException nfe) { + // unreachable + freeSpaceWarningThreshold = "2GiB"; + } + } + } else { + freeSpaceWarningThreshold = "2GiB"; + } + } + return this; + } + + @DataBoundSetter + public void setFreeSpaceWarningThreshold(String freeSpaceWarningThreshold) { + this.freeSpaceWarningThreshold = freeSpaceWarningThreshold; + } + + public String getFreeSpaceWarningThreshold() { + return freeSpaceWarningThreshold; } public long getThresholdBytes() { - if (freeSpaceThreshold == null) - return DEFAULT_THRESHOLD; // backward compatibility with the data format that didn't have 'freeSpaceThreshold' try { return DiskSpace.parse(freeSpaceThreshold).size; } catch (ParseException e) { @@ -37,34 +70,28 @@ public long getThresholdBytes() { } } - @Override - public Object data(Computer c) { - DiskSpace size = markNodeOfflineIfDiskspaceIsTooLow(c); + protected long getThresholdBytes(Computer c) { + return getThresholdBytes(); + } - // mark online (again), if free space is over threshold - if (size != null && size.size > getThresholdBytes() && c.isOffline() && c.getOfflineCause() instanceof DiskSpace) - if (this.getClass().equals(((DiskSpace) c.getOfflineCause()).getTrigger())) - if (getDescriptor().markOnline(c)) { - LOGGER.info(Messages.DiskSpaceMonitor_MarkedOnline(c.getDisplayName())); - } - return size; + protected long getWarningThresholdBytes() { + if (freeSpaceWarningThreshold == null) + return DEFAULT_THRESHOLD * 2; + try { + return DiskSpace.parse(freeSpaceWarningThreshold).size; + } catch (ParseException e) { + return DEFAULT_THRESHOLD * 2; + } } - /** - * Marks the given node as offline if free disk space is below the configured threshold. - * @param c the node - * @return the free space - * @since 1.521 - */ - @Restricted(NoExternalUse.class) - public DiskSpace markNodeOfflineIfDiskspaceIsTooLow(Computer c) { + protected long getWarningThresholdBytes(Computer c) { + return getWarningThresholdBytes(); + } + + @Override + public Object data(Computer c) { DiskSpace size = (DiskSpace) super.data(c); - if (size != null && size.size < getThresholdBytes()) { - size.setTriggered(this.getClass(), true); - if (getDescriptor().markOffline(c, size)) { - LOGGER.warning(Messages.DiskSpaceMonitor_MarkedOffline(c.getDisplayName())); - } - } + ((DiskSpaceMonitorDescriptor) getDescriptor()).markNodeOfflineOrOnline(c, size, this); return size; } diff --git a/core/src/main/java/hudson/node_monitors/DiskSpaceMonitor.java b/core/src/main/java/hudson/node_monitors/DiskSpaceMonitor.java index b8f7902a728b..cd05cdde20bf 100644 --- a/core/src/main/java/hudson/node_monitors/DiskSpaceMonitor.java +++ b/core/src/main/java/hudson/node_monitors/DiskSpaceMonitor.java @@ -53,6 +53,38 @@ public DiskSpaceMonitor(String freeSpaceThreshold) throws ParseException { public DiskSpaceMonitor() {} + @Override + public long getThresholdBytes(Computer c) { + Node node = c.getNode(); + if (node != null) { + DiskSpaceMonitorNodeProperty nodeProperty = node.getNodeProperty(DiskSpaceMonitorNodeProperty.class); + if (nodeProperty != null) { + try { + return DiskSpace.parse(nodeProperty.getFreeDiskSpaceThreshold()).size; + } catch (ParseException e) { + return getThresholdBytes(); + } + } + } + return getThresholdBytes(); + } + + @Override + protected long getWarningThresholdBytes(Computer c) { + Node node = c.getNode(); + if (node != null) { + DiskSpaceMonitorNodeProperty nodeProperty = node.getNodeProperty(DiskSpaceMonitorNodeProperty.class); + if (nodeProperty != null) { + try { + return DiskSpace.parse(nodeProperty.getFreeDiskSpaceWarningThreshold()).size; + } catch (ParseException e) { + return getWarningThresholdBytes(); + } + } + } + return getWarningThresholdBytes(); + } + public DiskSpace getFreeSpace(Computer c) { return DESCRIPTOR.get(c); } diff --git a/core/src/main/java/hudson/node_monitors/DiskSpaceMonitorDescriptor.java b/core/src/main/java/hudson/node_monitors/DiskSpaceMonitorDescriptor.java index 076c2b281c7f..18bc935e3689 100644 --- a/core/src/main/java/hudson/node_monitors/DiskSpaceMonitorDescriptor.java +++ b/core/src/main/java/hudson/node_monitors/DiskSpaceMonitorDescriptor.java @@ -25,7 +25,8 @@ package hudson.node_monitors; import hudson.Functions; -import hudson.Util; +import hudson.model.Computer; +import hudson.model.ComputerSet; import hudson.node_monitors.DiskSpaceMonitorDescriptor.DiskSpace; import hudson.remoting.VirtualChannel; import java.io.File; @@ -34,9 +35,12 @@ import java.math.BigDecimal; import java.text.ParseException; import java.util.Locale; +import java.util.Map; +import java.util.logging.Logger; import jenkins.MasterToSlaveFileCallable; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.DoNotUse; +import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; @@ -47,6 +51,54 @@ * @since 1.520 */ public abstract class DiskSpaceMonitorDescriptor extends AbstractAsyncNodeMonitorDescriptor { + + private static final Logger LOGGER = Logger.getLogger(DiskSpaceMonitorDescriptor.class.getName()); + + @Override + protected Map monitor() throws InterruptedException { + Result base = monitorDetailed(); + Map data = base.getMonitoringData(); + AbstractDiskSpaceMonitor monitor = (AbstractDiskSpaceMonitor) ComputerSet.getMonitors().get(this); + for (Map.Entry e : data.entrySet()) { + Computer c = e.getKey(); + DiskSpace d = e.getValue(); + if (base.getSkipped().contains(c)) { + assert d == null; + continue; + } + if (d == null) { + e.setValue(d = get(c)); + } + markNodeOfflineOrOnline(c, d, monitor); + } + return data; + } + + @Restricted(NoExternalUse.class) + public void markNodeOfflineOrOnline(Computer c, DiskSpace size, AbstractDiskSpaceMonitor monitor) { + if (size != null) { + long threshold = monitor.getThresholdBytes(c); + size.setThreshold(threshold); + long warningThreshold = monitor.getWarningThresholdBytes(c); + size.setWarningThreshold(warningThreshold); + if (size.size <= threshold) { + size.setTrigger(monitor.getClass()); + if (markOffline(c, size)) { + LOGGER.warning(Messages.DiskSpaceMonitor_MarkedOffline(c.getDisplayName())); + } + } + if (size.size > threshold) { + if (c.isOffline() && c.getOfflineCause() instanceof DiskSpace) { + if (monitor.getClass().equals(((DiskSpace) c.getOfflineCause()).getTrigger())) { + if (markOnline(c)) { + LOGGER.info(Messages.DiskSpaceMonitor_MarkedOnline(c.getDisplayName())); + } + } + } + } + } + } + /** * Value object that represents the disk space. */ @@ -56,8 +108,11 @@ public static final class DiskSpace extends MonitorOfflineCause implements Seria @Exported public final long size; - private boolean triggered; + private long totalSize; + private Class trigger; + private long threshold; + private long warningThreshold; /** * @param path @@ -68,12 +123,45 @@ public DiskSpace(String path, long size) { this.size = size; } + @Restricted(NoExternalUse.class) + public void setTotalSize(long totalSize) { + this.totalSize = totalSize; + } + + @Restricted(NoExternalUse.class) + @Exported + public long getTotalSize() { + return totalSize; + } + @Override public String toString() { - if (triggered) { - return Messages.DiskSpaceMonitorDescriptor_DiskSpace_FreeSpaceTooLow(getGbLeft(), path); + if (isTriggered()) { + if (threshold >= 0) { + return Messages.DiskSpaceMonitorDescriptor_DiskSpace_FreeSpaceTooLow( + Functions.humanReadableByteSize(size), + path, + Functions.humanReadableByteSize(threshold), + Functions.humanReadableByteSize(totalSize)); + } else { + return Messages.DiskSpaceMonitorDescriptor_DiskSpace_FreeSpaceTooLow( + Functions.humanReadableByteSize(size), + path, + "unset", + Functions.humanReadableByteSize(totalSize)); + } + } + if (isWarning()) { + return Messages.DiskSpaceMonitorDescriptor_DiskSpace_FreeSpaceTooLow( + Functions.humanReadableByteSize(size), + path, + Functions.humanReadableByteSize(warningThreshold), + Functions.humanReadableByteSize(totalSize)); } - return Messages.DiskSpaceMonitorDescriptor_DiskSpace_FreeSpace(getGbLeft(), path); + return Messages.DiskSpaceMonitorDescriptor_DiskSpace_FreeSpace( + Functions.humanReadableByteSize(size), + path, + Functions.humanReadableByteSize(totalSize)); } /** @@ -94,7 +182,12 @@ public long getFreeSize() { /** * Gets GB left. + * + * @deprecated since TODO + * Directly use the size field or to get a human-readable value with units use + * {@link Functions#humanReadableByteSize(long)} */ + @Deprecated public String getGbLeft() { long space = size; space /= 1024L; // convert to KB @@ -107,27 +200,42 @@ public String getGbLeft() { * Returns the HTML representation of the space. */ public String toHtml() { - String humanReadableSpace = Functions.humanReadableByteSize(size); - if (triggered) { - return Util.wrapToErrorSpan(humanReadableSpace); - } - return humanReadableSpace; + return Functions.humanReadableByteSize(size); } - /** - * Sets whether this disk space amount should be treated as outside - * the acceptable conditions or not. - */ - protected void setTriggered(boolean triggered) { - this.triggered = triggered; + @Restricted(NoExternalUse.class) + public boolean isTriggered() { + return size <= threshold; + } + + @Restricted(NoExternalUse.class) + public boolean isWarning() { + return size > threshold && size < warningThreshold; } /** - * Same as {@link DiskSpace#setTriggered(boolean)}, also sets the trigger class which made the decision + * Sets the trigger class which made the decision */ - protected void setTriggered(Class trigger, boolean triggered) { + protected void setTrigger(Class trigger) { this.trigger = trigger; - this.triggered = triggered; + } + + public void setThreshold(long threshold) { + this.threshold = threshold; + } + + @Exported + public long getThreshold() { + return threshold; + } + + public void setWarningThreshold(long warningThreshold) { + this.warningThreshold = warningThreshold; + } + + @Exported + public long getWarningThreshold() { + return warningThreshold; } @Override @@ -136,14 +244,16 @@ public Class getTrigger() { } /** - * Parses a human readable size description like "1GB", "0.5m", etc. into {@link DiskSpace} + * Parses a human readable size description like "1GB", "0.5m", "500KiB", etc. into {@link DiskSpace} * * @throws ParseException * If failed to parse. */ public static DiskSpace parse(String size) throws ParseException { size = size.toUpperCase(Locale.ENGLISH).trim(); - if (size.endsWith("B")) // cut off 'B' from KB, MB, etc. + if (size.endsWith("B")) // cut off 'B' from KB, MB, KiB, etc. + size = size.substring(0, size.length() - 1); + if (size.endsWith("I")) // cut off 'i' from KiB, MiB, etc. size = size.substring(0, size.length() - 1); long multiplier = 1; @@ -160,7 +270,11 @@ public static DiskSpace parse(String size) throws ParseException { } } - return new DiskSpace("", (long) (Double.parseDouble(size.trim()) * multiplier)); + try { + return new DiskSpace("", (long) (Double.parseDouble(size.trim()) * multiplier)); + } catch (NumberFormatException nfe) { + throw new ParseException(nfe.getLocalizedMessage(), 0); + } } private static final long serialVersionUID = 2L; @@ -171,9 +285,11 @@ public GetUsableSpace() {} @Override public DiskSpace invoke(File f, VirtualChannel channel) throws IOException { - long s = f.getUsableSpace(); - if (s <= 0) return null; - return new DiskSpace(f.getCanonicalPath(), s); + long s = f.getUsableSpace(); + if (s <= 0) return null; + DiskSpace ds = new DiskSpace(f.getCanonicalPath(), s); + ds.setTotalSize(f.getTotalSpace()); + return ds; } private static final long serialVersionUID = 1L; diff --git a/core/src/main/java/hudson/node_monitors/DiskSpaceMonitorNodeProperty.java b/core/src/main/java/hudson/node_monitors/DiskSpaceMonitorNodeProperty.java new file mode 100644 index 000000000000..37cb8a56f683 --- /dev/null +++ b/core/src/main/java/hudson/node_monitors/DiskSpaceMonitorNodeProperty.java @@ -0,0 +1,59 @@ +package hudson.node_monitors; + +import edu.umd.cs.findbugs.annotations.NonNull; +import hudson.Extension; +import hudson.model.Node; +import hudson.slaves.NodeProperty; +import hudson.slaves.NodePropertyDescriptor; +import org.jenkinsci.Symbol; +import org.kohsuke.stapler.DataBoundConstructor; + +/** + * {@link NodeProperty} that allows users to set agent specific disk space thresholds. + * + * @since TODO + */ +public class DiskSpaceMonitorNodeProperty extends NodeProperty { + private final String freeDiskSpaceThreshold; + private final String freeTempSpaceThreshold; + + private final String freeDiskSpaceWarningThreshold; + private final String freeTempSpaceWarningThreshold; + + @DataBoundConstructor + public DiskSpaceMonitorNodeProperty(String freeDiskSpaceThreshold, String freeTempSpaceThreshold, + String freeDiskSpaceWarningThreshold, String freeTempSpaceWarningThreshold) { + this.freeDiskSpaceThreshold = freeDiskSpaceThreshold; + this.freeTempSpaceThreshold = freeTempSpaceThreshold; + this.freeDiskSpaceWarningThreshold = freeDiskSpaceWarningThreshold; + this.freeTempSpaceWarningThreshold = freeTempSpaceWarningThreshold; + } + + public String getFreeDiskSpaceThreshold() { + return freeDiskSpaceThreshold; + } + + public String getFreeTempSpaceThreshold() { + return freeTempSpaceThreshold; + } + + public String getFreeDiskSpaceWarningThreshold() { + return freeDiskSpaceWarningThreshold; + } + + public String getFreeTempSpaceWarningThreshold() { + return freeTempSpaceWarningThreshold; + } + + @Extension + @Symbol("diskSpaceMonitor") + public static class DescriptorImpl extends NodePropertyDescriptor { + + @NonNull + @Override + public String getDisplayName() { + return Messages.DiskSpaceMonitorNodeProperty_DisplayName(); + } + } + +} diff --git a/core/src/main/java/hudson/node_monitors/TemporarySpaceMonitor.java b/core/src/main/java/hudson/node_monitors/TemporarySpaceMonitor.java index d92341142a09..976d35a23637 100644 --- a/core/src/main/java/hudson/node_monitors/TemporarySpaceMonitor.java +++ b/core/src/main/java/hudson/node_monitors/TemporarySpaceMonitor.java @@ -56,6 +56,38 @@ public TemporarySpaceMonitor(String freeSpaceThreshold) throws ParseException { public TemporarySpaceMonitor() {} + @Override + public long getThresholdBytes(Computer c) { + Node node = c.getNode(); + if (node != null) { + DiskSpaceMonitorNodeProperty nodeProperty = node.getNodeProperty(DiskSpaceMonitorNodeProperty.class); + if (nodeProperty != null) { + try { + return DiskSpace.parse(nodeProperty.getFreeTempSpaceThreshold()).size; + } catch (ParseException e) { + return getThresholdBytes(); + } + } + } + return getThresholdBytes(); + } + + @Override + protected long getWarningThresholdBytes(Computer c) { + Node node = c.getNode(); + if (node != null) { + DiskSpaceMonitorNodeProperty nodeProperty = node.getNodeProperty(DiskSpaceMonitorNodeProperty.class); + if (nodeProperty != null) { + try { + return DiskSpace.parse(nodeProperty.getFreeTempSpaceWarningThreshold()).size; + } catch (ParseException e) { + return getWarningThresholdBytes(); + } + } + } + return getWarningThresholdBytes(); + } + public DiskSpace getFreeSpace(Computer c) { DiskSpaceMonitorDescriptor descriptor = (DiskSpaceMonitorDescriptor) Jenkins.get().getDescriptor(TemporarySpaceMonitor.class); return descriptor != null ? descriptor.get(c) : null; @@ -109,7 +141,9 @@ public DiskSpace invoke(File f, VirtualChannel channel) throws IOException { f = new File(System.getProperty("java.io.tmpdir")); long s = f.getUsableSpace(); if (s <= 0) return null; - return new DiskSpace(f.getCanonicalPath(), s); + DiskSpace ds = new DiskSpace(f.getCanonicalPath(), s); + ds.setTotalSize(f.getTotalSpace()); + return ds; } private static final long serialVersionUID = 1L; diff --git a/core/src/main/resources/hudson/model/ComputerSet/configure.jelly b/core/src/main/resources/hudson/model/ComputerSet/configure.jelly index e97bbc31489d..4bbd52b4c4dc 100644 --- a/core/src/main/resources/hudson/model/ComputerSet/configure.jelly +++ b/core/src/main/resources/hudson/model/ComputerSet/configure.jelly @@ -29,9 +29,9 @@ THE SOFTWARE. - + - + diff --git a/core/src/main/resources/hudson/model/ComputerSet/index.jelly b/core/src/main/resources/hudson/model/ComputerSet/index.jelly index ff8a8e288075..ec4d2ab97883 100644 --- a/core/src/main/resources/hudson/model/ComputerSet/index.jelly +++ b/core/src/main/resources/hudson/model/ComputerSet/index.jelly @@ -41,8 +41,8 @@ THE SOFTWARE. - - ${%Node Monitoring} + + ${%Configure Monitors} diff --git a/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config.jelly b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config.jelly index 642ef96d34d7..5bbd914f35fb 100644 --- a/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config.jelly +++ b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config.jelly @@ -26,4 +26,7 @@ THE SOFTWARE. - \ No newline at end of file + + + + diff --git a/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/help-freeSpaceThreshold.html b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/help-freeSpaceThreshold.html index 818a9e10adf0..f48dbb6f299d 100644 --- a/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/help-freeSpaceThreshold.html +++ b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/help-freeSpaceThreshold.html @@ -1,6 +1,11 @@
This option configures the amount of minimum amount of free disk space desired - for an agent's proper operation, such as "1.5GB", "100KB", etc. If an agent is - found to have less free disk space than this amount, it will be marked - offline. + for an agent's proper operation, such as "1.5GB", "100KiB", etc. If an agent + is found to have less free disk space than this amount, it will be marked + temporarily offline. The threshold can be configured individually for each + agent via a property. +

+ Set to 0 to disable this check except for agents that configure the + threshold explicitly. +

diff --git a/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/help-freeSpaceWarningThreshold.html b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/help-freeSpaceWarningThreshold.html new file mode 100644 index 000000000000..3c2691afe2aa --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/help-freeSpaceWarningThreshold.html @@ -0,0 +1,5 @@ +
+ This option configures the warning threshold of free disk space. When free + space drops below this limit, a warning is shown for the corresponding agent + in the computer overview page, but the agent is not taken offline. +
diff --git a/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitor/column.jelly b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitor/column.jelly index 81a19eb0a9f8..3d3ca8b23c2b 100644 --- a/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitor/column.jelly +++ b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitor/column.jelly @@ -29,7 +29,19 @@ THE SOFTWARE. N/A - + + + + ${data.toHtml()} + + + ${data.toHtml()} + + + ${data.toHtml()} + + + diff --git a/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitor/help.html b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitor/help.html index ace250e87421..5b46852df34b 100644 --- a/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitor/help.html +++ b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitor/help.html @@ -1,8 +1,8 @@
This monitors the available disk space of $JENKINS_HOME - on each agent, and if it gets below a threshold, the agent will be marked - offline. + on the controller or the remote root directory on each agent, and if it gets + below a threshold, the agent will be marked temporarily offline.

This directory is where all your builds are performed, so if it fills up, diff --git a/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorNodeProperty/config.jelly b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorNodeProperty/config.jelly new file mode 100644 index 000000000000..8c1afdef6b14 --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorNodeProperty/config.jelly @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorNodeProperty/config_de.properties b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorNodeProperty/config_de.properties new file mode 100644 index 000000000000..507903f0e77b --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorNodeProperty/config_de.properties @@ -0,0 +1,2 @@ +Free\ Disk\ Space\ Threshold=Schwellwert für freien Festplattenspeicherplatz +Free\ Temp\ Space\ Threshold=Schwellwert für freien temporären Speicherplatz diff --git a/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorNodeProperty/help-freeDiskSpaceThreshold.html b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorNodeProperty/help-freeDiskSpaceThreshold.html new file mode 100644 index 000000000000..4e81303bcb73 --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorNodeProperty/help-freeDiskSpaceThreshold.html @@ -0,0 +1,8 @@ +

+ This option configures the amount of minimum amount of free disk space desired + for the agent's proper operation, such as "1.5GB", "100KiB", etc. If the agent + is found to have less free disk space than this amount, it will be marked + temporarily offline. +

Set to 0 to disable this check on this agent.

+

Set to empty to use the globally defined value.

+
diff --git a/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorNodeProperty/help-freeDiskSpaceWarningThreshold.html b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorNodeProperty/help-freeDiskSpaceWarningThreshold.html new file mode 100644 index 000000000000..625b5525de0e --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorNodeProperty/help-freeDiskSpaceWarningThreshold.html @@ -0,0 +1,8 @@ +
+ This option configures the amount of minimum amount of free disk space desired + for the agent's proper operation, such as "1.5GB", "100KiB", etc. If the agent + is found to have less free disk space than this amount, a warning will be + shown for it on the computer overview page, but it will not be taken offline. +

Set to 0 to disable this warning on this agent.

+

Set to empty to use the globally defined value.

+
diff --git a/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorNodeProperty/help-freeTempSpaceThreshold.html b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorNodeProperty/help-freeTempSpaceThreshold.html new file mode 100644 index 000000000000..56d8a35febab --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorNodeProperty/help-freeTempSpaceThreshold.html @@ -0,0 +1,8 @@ +
+ This option configures the amount of minimum amount of free temp space desired + for the agent's proper operation, such as "1.5GB", "100KiB", etc. If the agent + is found to have less free temp space than this amount, it will be marked + temporarily offline. +

Set to 0 to disable this check on this agent.

+

Set to empty to use the globally defined value.

+
diff --git a/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorNodeProperty/help-freeTempSpaceWarningThreshold.html b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorNodeProperty/help-freeTempSpaceWarningThreshold.html new file mode 100644 index 000000000000..102843f4413c --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorNodeProperty/help-freeTempSpaceWarningThreshold.html @@ -0,0 +1,8 @@ +
+ This option configures the amount of minimum amount of free temp space desired + for the agent's proper operation, such as "1.5GB", "100KiB", etc. If the agent + is found to have less free temp space than this amount, a warning will be + shown for it on the computer overview page, but it will not be taken offline. +

Set to 0 to disable this warning on this agent.

+

Set to empty to use the globally defined value.

+
diff --git a/core/src/main/resources/hudson/node_monitors/Messages.properties b/core/src/main/resources/hudson/node_monitors/Messages.properties index 749b326d2ab0..75c656aa4f21 100644 --- a/core/src/main/resources/hudson/node_monitors/Messages.properties +++ b/core/src/main/resources/hudson/node_monitors/Messages.properties @@ -31,6 +31,7 @@ ResponseTimeMonitor.TimeOut=Timed out for last {0} attempts SwapSpaceMonitor.DisplayName=Free Swap Space TemporarySpaceMonitor.DisplayName=Free Temp Space AbstractNodeMonitorDescriptor.NoDataYet=Not yet -DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=Disk space is too low. Only {0}GB left on {1}. -DiskSpaceMonitorDescriptor.DiskSpace.FreeSpace={0}GB left on {1}. +DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=Disk space is below threshold of {2}. Only {0} out of {3} left on {1}. +DiskSpaceMonitorDescriptor.DiskSpace.FreeSpace={0} out of {2} left on {1}. MonitorMarkedNodeOffline.DisplayName=Node Marked Offline Due to Health Check +DiskSpaceMonitorNodeProperty.DisplayName=Disk Space Monitoring Thresholds diff --git a/core/src/main/resources/hudson/node_monitors/Messages_bg.properties b/core/src/main/resources/hudson/node_monitors/Messages_bg.properties index f7910a8de2ad..e6c3127b19d6 100644 --- a/core/src/main/resources/hudson/node_monitors/Messages_bg.properties +++ b/core/src/main/resources/hudson/node_monitors/Messages_bg.properties @@ -43,7 +43,7 @@ TemporarySpaceMonitor.DisplayName=\ AbstractNodeMonitorDescriptor.NoDataYet=\ Няма данни DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=\ - Дисковото пространство привършва. На {1} остават само {0} GB. + Дисковото пространство привършва. На {1} остават само {0} . MonitorMarkedNodeOffline.DisplayName=\ Компютърът е отбелязан като извън линия в резултат на проверката на\ състоянието му. diff --git a/core/src/main/resources/hudson/node_monitors/Messages_cs.properties b/core/src/main/resources/hudson/node_monitors/Messages_cs.properties index 2010f4261c31..68d3793c55a7 100644 --- a/core/src/main/resources/hudson/node_monitors/Messages_cs.properties +++ b/core/src/main/resources/hudson/node_monitors/Messages_cs.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=Málo místa na disku. Zbývá pouze {0}GB. +DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=Málo místa na disku. Zbývá pouze {0}. diff --git a/core/src/main/resources/hudson/node_monitors/Messages_da.properties b/core/src/main/resources/hudson/node_monitors/Messages_da.properties index 6a9940dfab1a..edb1eff194f6 100644 --- a/core/src/main/resources/hudson/node_monitors/Messages_da.properties +++ b/core/src/main/resources/hudson/node_monitors/Messages_da.properties @@ -29,4 +29,4 @@ SwapSpaceMonitor.DisplayName=Ledig Swap Plads ArchitectureMonitor.DisplayName=Arkitektur ResponseTimeMonitor.MarkedOffline=Tager {0} offline midlertidigt da den ikke svarer ResponseTimeMonitor.DisplayName=Respons Tid -DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=Disk plads for lav. Kun {0}GB tilbage. +DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=Disk plads for lav. Kun {0} tilbage. diff --git a/core/src/main/resources/hudson/node_monitors/Messages_de.properties b/core/src/main/resources/hudson/node_monitors/Messages_de.properties index cefa1860de38..1d9b196fbb98 100644 --- a/core/src/main/resources/hudson/node_monitors/Messages_de.properties +++ b/core/src/main/resources/hudson/node_monitors/Messages_de.properties @@ -28,8 +28,10 @@ ResponseTimeMonitor.DisplayName=Antwortzeit ResponseTimeMonitor.TimeOut= {0} mal keine Antwort SwapSpaceMonitor.DisplayName=Freier Swap Space TemporarySpaceMonitor.DisplayName=Freier TEMP-Platz -DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=Zu wenig Festplattenplatz: Nur noch {0}GB frei. +DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=Festplattenplatz unterhalb der Schwelle von {2}. Nur noch {0} von {3} frei in {1}. +DiskSpaceMonitorDescriptor.DiskSpace.FreeSpace={0} von {2} verbleibend in {1}. DiskSpaceMonitor.MarkedOnline=Nehme {0} wieder online, da wieder genug Festplattenplatz verfügbar ist. MonitorMarkedNodeOffline.DisplayName=Knoten durch Health-Check-Prüfung offline ResponseTimeMonitor.MarkedOffline=Nehme {0} offline, da er nicht antwortet. AbstractNodeMonitorDescriptor.NoDataYet=Noch keine Daten +DiskSpaceMonitorNodeProperty.DisplayName=Schwellwerte für die Festplattenspeicherplatzüberwachung diff --git a/core/src/main/resources/hudson/node_monitors/Messages_es.properties b/core/src/main/resources/hudson/node_monitors/Messages_es.properties index 6ee2f1b6ddd2..a99d4a6f6b6e 100644 --- a/core/src/main/resources/hudson/node_monitors/Messages_es.properties +++ b/core/src/main/resources/hudson/node_monitors/Messages_es.properties @@ -29,4 +29,4 @@ ResponseTimeMonitor.MarkedOffline=Poniendo temporalmente {0} fuera de línea por ResponseTimeMonitor.TimeOut=Se sobrepasó el tiempo de espera en el último intento de {0} SwapSpaceMonitor.DisplayName=Espacio de intercambio libre TemporarySpaceMonitor.DisplayName=Espacio temporal libre -DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=El espacio en disco es muy bajo, sólo quedan {0}GB. +DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=El espacio en disco es muy bajo, sólo quedan {0}. diff --git a/core/src/main/resources/hudson/node_monitors/Messages_fr.properties b/core/src/main/resources/hudson/node_monitors/Messages_fr.properties index d8c2f6b45846..df06f7fa0b1d 100644 --- a/core/src/main/resources/hudson/node_monitors/Messages_fr.properties +++ b/core/src/main/resources/hudson/node_monitors/Messages_fr.properties @@ -28,4 +28,4 @@ ResponseTimeMonitor.DisplayName=Temps de réponse ResponseTimeMonitor.MarkedOffline={0} est marqué comme déconnecté temporairement, parce qu''il ne répond pas ResponseTimeMonitor.TimeOut=Time out du dernier essai {0} SwapSpaceMonitor.DisplayName=Espace de swap disponible -DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=Espace disque insuffisant. Seulement {0} GB restant sur {1} +DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=Espace disque insuffisant. Seulement {0} restant sur {1} diff --git a/core/src/main/resources/hudson/node_monitors/Messages_it.properties b/core/src/main/resources/hudson/node_monitors/Messages_it.properties index 9a247da8b27d..be608c38abb2 100644 --- a/core/src/main/resources/hudson/node_monitors/Messages_it.properties +++ b/core/src/main/resources/hudson/node_monitors/Messages_it.properties @@ -24,9 +24,9 @@ AbstractNodeMonitorDescriptor.NoDataYet=Non ancora ArchitectureMonitor.DisplayName=Architettura ClockMonitor.DisplayName=Differenza di orario -DiskSpaceMonitorDescriptor.DiskSpace.FreeSpace={0} GB rimanenti su {1}. +DiskSpaceMonitorDescriptor.DiskSpace.FreeSpace={0} rimanenti su {1}. DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=Lo spazio su disco \ - disponibile è troppo basso. Su {1} rimangono solo {0} GB. + disponibile è troppo basso. Su {1} rimangono solo {0}. DiskSpaceMonitor.DisplayName=Spazio su disco libero DiskSpaceMonitor.MarkedOffline=Metto temporaneamente {0} non in linea per \ mancanza di spazio su disco diff --git a/core/src/main/resources/hudson/node_monitors/Messages_ja.properties b/core/src/main/resources/hudson/node_monitors/Messages_ja.properties index 51d0e5287f59..0c7f9114edd5 100644 --- a/core/src/main/resources/hudson/node_monitors/Messages_ja.properties +++ b/core/src/main/resources/hudson/node_monitors/Messages_ja.properties @@ -31,4 +31,4 @@ ResponseTimeMonitor.TimeOut=タイムアウト(直近 {0}回) SwapSpaceMonitor.DisplayName=空きスワップ容量 TemporarySpaceMonitor.DisplayName=空きテンポラリ容量 AbstractNodeMonitorDescriptor.NoDataYet=データ未取得 -DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=ディスク容量が少なすぎます。残り{0}GBです。 +DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=ディスク容量が少なすぎます。残り{0}です。 diff --git a/core/src/main/resources/hudson/node_monitors/Messages_nl.properties b/core/src/main/resources/hudson/node_monitors/Messages_nl.properties index 4a0fecb3a35a..bdffd29a2a9c 100644 --- a/core/src/main/resources/hudson/node_monitors/Messages_nl.properties +++ b/core/src/main/resources/hudson/node_monitors/Messages_nl.properties @@ -23,4 +23,4 @@ ArchitectureMonitor.DisplayName=Architectuur ClockMonitor.DisplayName=Tijdsverschil DiskSpaceMonitor.DisplayName=Beschikbare schijfruimte -DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=Er is te weinig vrije schijfruimte, nog maar {0} GB over. +DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=Er is te weinig vrije schijfruimte, nog maar {0} over. diff --git a/core/src/main/resources/hudson/node_monitors/Messages_pt_BR.properties b/core/src/main/resources/hudson/node_monitors/Messages_pt_BR.properties index 1d0ce852ed13..bc6f788641f1 100644 --- a/core/src/main/resources/hudson/node_monitors/Messages_pt_BR.properties +++ b/core/src/main/resources/hudson/node_monitors/Messages_pt_BR.properties @@ -31,6 +31,6 @@ SwapSpaceMonitor.DisplayName=Espaço de troca livre ResponseTimeMonitor.MarkedOffline= Indisponível temporariamente por que não está respondendo AbstractNodeMonitorDescriptor.NoDataYet=Nada ainda DiskSpaceMonitor.MarkedOnline=Retornando {0} como ativo pois há espaço em disco suficiente novamente -DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=Pouco espaço em disco. Somente {0}GB disponível em {1}. +DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=Pouco espaço em disco. Somente {0} disponível em {1}. MonitorMarkedNodeOffline.DisplayName=Nó marcado como fora de serviço devido a verificação de saúde -DiskSpaceMonitorDescriptor.DiskSpace.FreeSpace={0}GB restantes em {1}. +DiskSpaceMonitorDescriptor.DiskSpace.FreeSpace={0} restantes em {1}. diff --git a/core/src/main/resources/hudson/node_monitors/Messages_ru.properties b/core/src/main/resources/hudson/node_monitors/Messages_ru.properties index f6f714f97d5e..ad3e610e3763 100644 --- a/core/src/main/resources/hudson/node_monitors/Messages_ru.properties +++ b/core/src/main/resources/hudson/node_monitors/Messages_ru.properties @@ -31,6 +31,6 @@ ResponseTimeMonitor.TimeOut=Последние {0} попыток заверши SwapSpaceMonitor.DisplayName=Свободное пространство подкачки TemporarySpaceMonitor.DisplayName=Свободное временное пространство AbstractNodeMonitorDescriptor.NoDataYet=Ещё нет -DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=Слишком мало дискового пространства. На {1} осталось всего {0} ГБ. -DiskSpaceMonitorDescriptor.DiskSpace.FreeSpace=На {1} осталось {0} ГБ. +DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=Слишком мало дискового пространства. На {1} осталось всего {0}. +DiskSpaceMonitorDescriptor.DiskSpace.FreeSpace=На {1} осталось {0}. MonitorMarkedNodeOffline.DisplayName=Узлы, помеченные как отключённые проверками состояния diff --git a/core/src/main/resources/hudson/node_monitors/Messages_sr.properties b/core/src/main/resources/hudson/node_monitors/Messages_sr.properties index f65bf82f1491..20175c57947a 100644 --- a/core/src/main/resources/hudson/node_monitors/Messages_sr.properties +++ b/core/src/main/resources/hudson/node_monitors/Messages_sr.properties @@ -11,4 +11,4 @@ ResponseTimeMonitor.TimeOut=Изсткло време за последњи по SwapSpaceMonitor.DisplayName=Слободног простора за заменом простору TemporarySpaceMonitor.DisplayName=Слободног простора за привременом простору AbstractNodeMonitorDescriptor.NoDataYet=Нема података -DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=Нема довољно простора на диску. {1} остаје само {0}GB. +DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=Нема довољно простора на диску. {1} остаје само {0}. diff --git a/core/src/main/resources/hudson/node_monitors/Messages_sv_SE.properties b/core/src/main/resources/hudson/node_monitors/Messages_sv_SE.properties index 2a381f215c66..866e0da49d3e 100644 --- a/core/src/main/resources/hudson/node_monitors/Messages_sv_SE.properties +++ b/core/src/main/resources/hudson/node_monitors/Messages_sv_SE.properties @@ -19,5 +19,4 @@ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. - -DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=Diskutrymme lågt. Enbart {0}GB kvar. +DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=Diskutrymme lågt. Enbart {0} kvar. diff --git a/core/src/main/resources/hudson/node_monitors/Messages_zh_TW.properties b/core/src/main/resources/hudson/node_monitors/Messages_zh_TW.properties index 9b4a3dea59e8..48558c77287a 100644 --- a/core/src/main/resources/hudson/node_monitors/Messages_zh_TW.properties +++ b/core/src/main/resources/hudson/node_monitors/Messages_zh_TW.properties @@ -30,4 +30,4 @@ ResponseTimeMonitor.MarkedOffline={0} 沒有回應,將其離線 ResponseTimeMonitor.TimeOut=最近 {0} 次連線都逾時 SwapSpaceMonitor.DisplayName=可用 Swap 空間 TemporarySpaceMonitor.DisplayName=可用暫存空間 -DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=磁碟空間太少。{1} 上只剩 {0}GB。 +DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=磁碟空間太少。{1} 上只剩 {0}。 diff --git a/core/src/main/resources/hudson/node_monitors/TemporarySpaceMonitor/column.jelly b/core/src/main/resources/hudson/node_monitors/TemporarySpaceMonitor/column.jelly index 5c1a410d1bc0..8655fc2aadc6 100644 --- a/core/src/main/resources/hudson/node_monitors/TemporarySpaceMonitor/column.jelly +++ b/core/src/main/resources/hudson/node_monitors/TemporarySpaceMonitor/column.jelly @@ -29,7 +29,19 @@ THE SOFTWARE. N/A - + + + + ${data.toHtml()} + + + ${data.toHtml()} + + + ${data.toHtml()} + + + diff --git a/core/src/main/resources/hudson/node_monitors/TemporarySpaceMonitor/help.html b/core/src/main/resources/hudson/node_monitors/TemporarySpaceMonitor/help.html index ea237d75ae0d..2acf9a6f129e 100644 --- a/core/src/main/resources/hudson/node_monitors/TemporarySpaceMonitor/help.html +++ b/core/src/main/resources/hudson/node_monitors/TemporarySpaceMonitor/help.html @@ -1,6 +1,6 @@
This monitors the available disk space of the temporary directory, and if it - gets below a certain threshold the node will be made offline. + gets below a certain threshold the agent will be marked temporarily offline.

Java tools and tests/builds often create files in the temporary directory, diff --git a/core/src/test/java/hudson/FunctionsTest.java b/core/src/test/java/hudson/FunctionsTest.java index 0fe72c16decc..95d5def0bbda 100644 --- a/core/src/test/java/hudson/FunctionsTest.java +++ b/core/src/test/java/hudson/FunctionsTest.java @@ -321,12 +321,13 @@ public void testHumanReadableFileSize() { Locale.setDefault(Locale.ENGLISH); assertEquals("0 B", Functions.humanReadableByteSize(0)); assertEquals("1023 B", Functions.humanReadableByteSize(1023)); - assertEquals("1.00 KB", Functions.humanReadableByteSize(1024)); - assertEquals("1.50 KB", Functions.humanReadableByteSize(1536)); - assertEquals("20.00 KB", Functions.humanReadableByteSize(20480)); - assertEquals("1023.00 KB", Functions.humanReadableByteSize(1047552)); - assertEquals("1.00 MB", Functions.humanReadableByteSize(1048576)); - assertEquals("1.50 GB", Functions.humanReadableByteSize(1610612700)); + assertEquals("1.00 KiB", Functions.humanReadableByteSize(1024)); + assertEquals("1.50 KiB", Functions.humanReadableByteSize(1536)); + assertEquals("20.00 KiB", Functions.humanReadableByteSize(20480)); + assertEquals("1023.00 KiB", Functions.humanReadableByteSize(1047552)); + assertEquals("1.00 MiB", Functions.humanReadableByteSize(1048576)); + assertEquals("1.50 GiB", Functions.humanReadableByteSize(1610612700)); + assertEquals("1.50 TiB", Functions.humanReadableByteSize(1649267441664L)); } finally { Locale.setDefault(defaultLocale); } diff --git a/test/src/test/java/hudson/model/ComputerSetTest.java b/test/src/test/java/hudson/model/ComputerSetTest.java index cff8892c6f53..f40cf3e00c96 100644 --- a/test/src/test/java/hudson/model/ComputerSetTest.java +++ b/test/src/test/java/hudson/model/ComputerSetTest.java @@ -130,7 +130,7 @@ public void managePermissionCanConfigure() throws Exception { assertEquals(HttpURLConnection.HTTP_OK, page.getWebResponse().getStatusCode()); responseContent = page.getWebResponse().getContentAsString(); // the "Node Monitoring" link in the app bar is visible - assertThat(responseContent, containsString("Node Monitoring")); + assertThat(responseContent, containsString("Configure Monitors")); page = wc.goTo("computer/configure"); assertEquals(HttpURLConnection.HTTP_OK, page.getWebResponse().getStatusCode()); // and the save button is visible diff --git a/test/src/test/java/hudson/node_monitors/DiskSpaceMonitorDescriptorTest.java b/test/src/test/java/hudson/node_monitors/DiskSpaceMonitorDescriptorTest.java index e897a8f300cf..e662f1909444 100644 --- a/test/src/test/java/hudson/node_monitors/DiskSpaceMonitorDescriptorTest.java +++ b/test/src/test/java/hudson/node_monitors/DiskSpaceMonitorDescriptorTest.java @@ -45,7 +45,9 @@ public void parse() throws Exception { assertEquals(1024, DiskSpace.parse("1KB").size); assertEquals(1024, DiskSpace.parse("1K").size); assertEquals(1024, DiskSpace.parse("1kb").size); + assertEquals(1024, DiskSpace.parse("1kib").size); assertEquals(1024 * 1024, DiskSpace.parse("1MB").size); + assertEquals(1024 * 1024, DiskSpace.parse("1MIB").size); assertEquals(1024 * 1024 * 1024, DiskSpace.parse("1GB").size); assertEquals(512 * 1024 * 1024, DiskSpace.parse("0.5GB").size); } @@ -55,8 +57,10 @@ public void parse() throws Exception { @Issue("JENKINS-59383") public void string() { DiskSpace du = new DiskSpace("/tmp", 123 * 1024 * 1024); - assertEquals("0.123GB left on /tmp.", du.toString()); - du.setTriggered(true); - assertEquals("Disk space is too low. Only 0.123GB left on /tmp.", du.toString()); + du.setTotalSize(300 * 1024 * 1024); + du.setThreshold(100 * 1024 * 1024); + assertEquals("123.00 MiB out of 300.00 MiB left on /tmp.", du.toString()); + du.setThreshold(200 * 1024 * 1024); + assertEquals("Disk space is below threshold of 200.00 MiB. Only 123.00 MiB out of 300.00 MiB left on /tmp.", du.toString()); } } From 60f19cb24a97d0982a1afe978c31c69d610dad8b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 26 Nov 2023 13:11:40 -0800 Subject: [PATCH 0030/1216] Bump org.jenkins-ci.main:jenkins-test-harness from 2105.v5a_7b_f123294f to 2112.ve584e0edc63b_ (#8713) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index a3c8ea0cbc5a..36df66770033 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -121,7 +121,7 @@ THE SOFTWARE. ${project.groupId} jenkins-test-harness - 2105.v5a_7b_f123294f + 2112.ve584e0edc63b_ test From af941ceaea13f45f525cd877c74e63cf1597a367 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 26 Nov 2023 13:12:08 -0800 Subject: [PATCH 0031/1216] Update dependency @babel/cli to v7.23.4 (#8716) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/war/package.json b/war/package.json index 8c0ea9634f47..3f966bc5c18d 100644 --- a/war/package.json +++ b/war/package.json @@ -23,7 +23,7 @@ "lint": "yarn lint:js && yarn lint:css" }, "devDependencies": { - "@babel/cli": "7.23.0", + "@babel/cli": "7.23.4", "@babel/core": "7.23.3", "@babel/preset-env": "7.23.3", "babel-loader": "9.1.3", diff --git a/war/yarn.lock b/war/yarn.lock index bd73a9944d39..e645e75f8e1d 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -22,9 +22,9 @@ __metadata: languageName: node linkType: hard -"@babel/cli@npm:7.23.0": - version: 7.23.0 - resolution: "@babel/cli@npm:7.23.0" +"@babel/cli@npm:7.23.4": + version: 7.23.4 + resolution: "@babel/cli@npm:7.23.4" dependencies: "@jridgewell/trace-mapping": "npm:^0.3.17" "@nicolo-ribaudo/chokidar-2": "npm:2.1.8-no-fsevents.3" @@ -45,7 +45,7 @@ __metadata: bin: babel: ./bin/babel.js babel-external-helpers: ./bin/babel-external-helpers.js - checksum: 80ebb68216adab239ea2eb73e1dc1eb3a70ee8e1afad2ae8f2b7518119ebd247f776bd7d4ab2cb73c2cf0253e202b6af00e4a5fec79c2733084963901bde3903 + checksum: f71bc378f62dd19983adc8dae4ee33cd44ac7d8ea3224709f787f290e0c3a4b8a36dad76d672b3479de2b9f524e55b4bb12a2296154c73134ba111114a15779c languageName: node linkType: hard @@ -4406,7 +4406,7 @@ __metadata: version: 0.0.0-use.local resolution: "jenkins-ui@workspace:." dependencies: - "@babel/cli": "npm:7.23.0" + "@babel/cli": "npm:7.23.4" "@babel/core": "npm:7.23.3" "@babel/preset-env": "npm:7.23.3" babel-loader: "npm:9.1.3" From 33b62b5db5ebe9c2ec70176c1a025359fc322271 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 26 Nov 2023 13:12:59 -0800 Subject: [PATCH 0032/1216] Update dependency node to v20.10.0 (#8720) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/pom.xml b/war/pom.xml index b6082a6d1ada..8c4377ac7b6b 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -46,7 +46,7 @@ THE SOFTWARE. localhost 8080 - 20.9.0 + 20.10.0 1.22.19 From aedae5bccf9121e0769e683d6641ac34616ae630 Mon Sep 17 00:00:00 2001 From: Zbynek Konecny Date: Sun, 26 Nov 2023 23:20:42 +0100 Subject: [PATCH 0033/1216] Avoid scrollbar in dropdown popups (page footer, log recorder) (#8704) --- core/src/main/resources/lib/layout/overflowButton.jelly | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/src/main/resources/lib/layout/overflowButton.jelly b/core/src/main/resources/lib/layout/overflowButton.jelly index afc6636b9274..f1ae18cf25b3 100644 --- a/core/src/main/resources/lib/layout/overflowButton.jelly +++ b/core/src/main/resources/lib/layout/overflowButton.jelly @@ -64,6 +64,8 @@ THE SOFTWARE. ${attrs.text} From f9f542bffd9f38189f3c1393475b473f1f0e035e Mon Sep 17 00:00:00 2001 From: Santhosh-CloudB <131965145+Santhosh-CloudB@users.noreply.github.com> Date: Mon, 27 Nov 2023 15:39:15 +0530 Subject: [PATCH 0034/1216] Added validation of FIPS password length (#8694) Co-authored-by: Daniel Beck <1831569+daniel-beck@users.noreply.github.com> --- .../java/hudson/security/HudsonPrivateSecurityRealm.java | 6 ++++++ core/src/main/resources/hudson/security/Messages.properties | 1 + 2 files changed, 7 insertions(+) diff --git a/core/src/main/java/hudson/security/HudsonPrivateSecurityRealm.java b/core/src/main/java/hudson/security/HudsonPrivateSecurityRealm.java index 0331884821d6..6305a69a6abb 100644 --- a/core/src/main/java/hudson/security/HudsonPrivateSecurityRealm.java +++ b/core/src/main/java/hudson/security/HudsonPrivateSecurityRealm.java @@ -114,6 +114,7 @@ * @author Kohsuke Kawaguchi */ public class HudsonPrivateSecurityRealm extends AbstractPasswordBasedSecurityRealm implements ModelObject, AccessControlled { + private static final int FIPS_PASSWORD_LENGTH = 14; private static /* not final */ String ID_REGEX = System.getProperty(HudsonPrivateSecurityRealm.class.getName() + ".ID_REGEX"); /** @@ -452,6 +453,11 @@ private SignupInfo validateAccountCreationForm(StaplerRequest req, boolean valid si.errors.put("password1", Messages.HudsonPrivateSecurityRealm_CreateAccount_PasswordRequired()); } + if (FIPS140.useCompliantAlgorithms()) { + if (si.password1.length() < FIPS_PASSWORD_LENGTH) { + si.errors.put("password1", Messages.HudsonPrivateSecurityRealm_CreateAccount_FIPS_PasswordLengthInvalid()); + } + } if (si.fullname == null || si.fullname.isEmpty()) { si.fullname = si.username; } diff --git a/core/src/main/resources/hudson/security/Messages.properties b/core/src/main/resources/hudson/security/Messages.properties index 697c0f13fdd4..dee3d0923525 100644 --- a/core/src/main/resources/hudson/security/Messages.properties +++ b/core/src/main/resources/hudson/security/Messages.properties @@ -36,6 +36,7 @@ HudsonPrivateSecurityRealm.ManageUserLinks.Description=Create/delete/modify user HudsonPrivateSecurityRealm.CreateAccount.TextNotMatchWordInImage=Text didn''t match the word shown in the image HudsonPrivateSecurityRealm.CreateAccount.PasswordNotMatch=Password didn''t match +HudsonPrivateSecurityRealm.CreateAccount.FIPS.PasswordLengthInvalid=Password must be at least 14 characters long HudsonPrivateSecurityRealm.CreateAccount.PasswordRequired=Password is required HudsonPrivateSecurityRealm.CreateAccount.UserNameRequired=User name is required HudsonPrivateSecurityRealm.CreateAccount.UserNameInvalidCharacters=User name must only contain alphanumeric characters, underscore and dash From 1f95b095187b80145a7972ceb5ae981ae767e33d Mon Sep 17 00:00:00 2001 From: Jan Faracik <43062514+janfaracik@users.noreply.github.com> Date: Mon, 27 Nov 2023 19:36:43 +0000 Subject: [PATCH 0035/1216] Use symbols for build status (#8705) * Init * Rename ID * Fix icon position * Fix app bar build status icon being incorrect * Address missed icons --------- Co-authored-by: Alexander Brandes --- .editorconfig | 2 +- .../hudson/model/AbstractBuild/index.jelly | 4 +- .../hudson/model/Job/buildTimeTrend.jelly | 8 ++ .../model/Job/buildTimeTrend_resources.js | 75 ++----------------- .../resources/hudson/model/Job/index.jelly | 2 +- .../hudson/model/Run/statusIcon.jelly | 2 +- .../hudson/views/StatusColumn/column.jelly | 18 ++++- .../hudson/widgets/HistoryWidget/entry.jelly | 2 +- .../jenkins/model/Jenkins/_legend.jelly | 32 ++++---- .../resources/lib/hudson/buildCaption.jelly | 2 +- .../main/resources/lib/hudson/buildLink.jelly | 2 +- .../resources/lib/hudson/buildListTable.jelly | 9 +++ .../main/resources/lib/hudson/jobLink.jelly | 2 +- .../resources/lib/hudson/projectView.jelly | 10 ++- .../images/symbols/status-aborted-anime.svg | 5 ++ .../images/symbols/status-aborted.svg | 4 + .../images/symbols/status-blue-anime.svg | 5 ++ .../resources/images/symbols/status-blue.svg | 4 + .../images/symbols/status-disabled-anime.svg | 6 ++ .../images/symbols/status-disabled.svg | 5 ++ .../images/symbols/status-nobuilt-anime.svg | 7 ++ .../images/symbols/status-nobuilt.svg | 6 ++ .../images/symbols/status-red-anime.svg | 5 ++ .../resources/images/symbols/status-red.svg | 4 + .../images/symbols/status-yellow-anime.svg | 6 ++ .../images/symbols/status-yellow.svg | 5 ++ war/src/main/scss/base/_style.scss | 13 +++- war/src/main/scss/components/_app-bar.scss | 3 +- .../scss/components/_side-panel-widgets.scss | 1 + war/src/main/scss/pages/_dashboard.scss | 11 +++ 30 files changed, 157 insertions(+), 103 deletions(-) create mode 100644 war/src/main/resources/images/symbols/status-aborted-anime.svg create mode 100644 war/src/main/resources/images/symbols/status-aborted.svg create mode 100644 war/src/main/resources/images/symbols/status-blue-anime.svg create mode 100644 war/src/main/resources/images/symbols/status-blue.svg create mode 100644 war/src/main/resources/images/symbols/status-disabled-anime.svg create mode 100644 war/src/main/resources/images/symbols/status-disabled.svg create mode 100644 war/src/main/resources/images/symbols/status-nobuilt-anime.svg create mode 100644 war/src/main/resources/images/symbols/status-nobuilt.svg create mode 100644 war/src/main/resources/images/symbols/status-red-anime.svg create mode 100644 war/src/main/resources/images/symbols/status-red.svg create mode 100644 war/src/main/resources/images/symbols/status-yellow-anime.svg create mode 100644 war/src/main/resources/images/symbols/status-yellow.svg diff --git a/.editorconfig b/.editorconfig index af8f0cf310a8..049d90619a70 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,6 +1,6 @@ root = true -[*.{js, scss, css, hbs}] +[*.{js, scss, css, hbs, svg}] indent_style = space indent_size = 2 trim_trailing_whitespace = true diff --git a/core/src/main/resources/hudson/model/AbstractBuild/index.jelly b/core/src/main/resources/hudson/model/AbstractBuild/index.jelly index 8444984d49cd..aba425c3420b 100644 --- a/core/src/main/resources/hudson/model/AbstractBuild/index.jelly +++ b/core/src/main/resources/hudson/model/AbstractBuild/index.jelly @@ -76,7 +76,7 @@ THE SOFTWARE. - ${dep.from.displayName} + ${dep.from.displayName} ? @@ -86,7 +86,7 @@ THE SOFTWARE. → - ${dep.to.displayName} + ${dep.to.displayName} (${%detail}) diff --git a/core/src/main/resources/hudson/model/Job/buildTimeTrend.jelly b/core/src/main/resources/hudson/model/Job/buildTimeTrend.jelly index 4021ab4109a4..56201d48dab8 100644 --- a/core/src/main/resources/hudson/model/Job/buildTimeTrend.jelly +++ b/core/src/main/resources/hudson/model/Job/buildTimeTrend.jelly @@ -31,6 +31,14 @@ THE SOFTWARE. +

${%Build Time Trend}

[${%Build time graph}] diff --git a/core/src/main/resources/hudson/model/Job/buildTimeTrend_resources.js b/core/src/main/resources/hudson/model/Job/buildTimeTrend_resources.js index 105cdbc06ed2..eadcb5970622 100644 --- a/core/src/main/resources/hudson/model/Job/buildTimeTrend_resources.js +++ b/core/src/main/resources/hudson/model/Job/buildTimeTrend_resources.js @@ -67,76 +67,11 @@ window.buildTimeTrend_displayBuilds = function (data) { /** * Generate SVG Icon */ -function generateSVGIcon(iconName, iconSizeClass) { - const imagesURL = document.head.getAttribute("data-imagesurl"); - - const isInProgress = iconName.endsWith("anime"); - let buildStatus = "never-built"; - switch (iconName) { - case "red": - case "red-anime": - buildStatus = "last-failed"; - break; - case "yellow": - case "yellow-anime": - buildStatus = "last-unstable"; - break; - case "blue": - case "blue-anime": - buildStatus = "last-successful"; - break; - case "grey": - case "grey-anime": - case "disabled": - case "disabled-anime": - buildStatus = "last-disabled"; - break; - case "aborted": - case "aborted-anime": - buildStatus = "last-aborted"; - break; - case "nobuilt": - case "nobuilt-anime": - buildStatus = "never-built"; - break; - } +function generateSVGIcon(iconName) { + const icons = document.querySelector("#jenkins-build-status-icons"); + iconName = iconName.replace("-anime", ""); - const svg1 = document.createElementNS("http://www.w3.org/2000/svg", "svg"); - svg1.setAttribute("class", "svg-icon"); - svg1.setAttribute("viewBox", "0 0 24 24"); - const use1 = document.createElementNS("http://www.w3.org/2000/svg", "use"); - use1.setAttribute( - "href", - imagesURL + - "/build-status/build-status-sprite.svg#build-status-" + - (isInProgress ? "in-progress" : "static"), - ); - svg1.appendChild(use1); - - const svg2 = document.createElementNS("http://www.w3.org/2000/svg", "svg"); - svg2.setAttribute( - "class", - "svg-icon icon-" + iconName + " " + (iconSizeClass || "icon-sm"), - ); - svg2.setAttribute("viewBox", "0 0 24 24"); - const use2 = document.createElementNS("http://www.w3.org/2000/svg", "use"); - use2.setAttribute( - "href", - imagesURL + "/build-status/build-status-sprite.svg#" + buildStatus, - ); - svg2.appendChild(use2); - - const span = document.createElement("span"); - span.classList.add("build-status-icon__wrapper", "icon-" + iconName); - - let span2 = document.createElement("span"); - span2.classList.add("build-status-icon__outer"); - span2.appendChild(svg1); - - span.appendChild(span2); - span.appendChild(svg2); - - return span; + return icons.content.querySelector(`#${iconName}`).cloneNode(true); } /** @@ -155,7 +90,7 @@ window.displayBuilds = function (data) { td1.classList.add("jenkins-table__cell--tight", "jenkins-table__icon"); var div1 = document.createElement("div"); div1.classList.add("jenkins-table__cell__button-wrapper"); - var svg = generateSVGIcon(e.iconName, p.dataset.iconSizeClass); + var svg = generateSVGIcon(e.iconName); div1.appendChild(svg); td1.appendChild(div1); tr.appendChild(td1); diff --git a/core/src/main/resources/hudson/model/Job/index.jelly b/core/src/main/resources/hudson/model/Job/index.jelly index 23a454b4d52e..0fb537e267d7 100644 --- a/core/src/main/resources/hudson/model/Job/index.jelly +++ b/core/src/main/resources/hudson/model/Job/index.jelly @@ -33,7 +33,7 @@ THE SOFTWARE. - +

diff --git a/core/src/main/resources/hudson/model/Run/statusIcon.jelly b/core/src/main/resources/hudson/model/Run/statusIcon.jelly index 6ef664c98efe..650605c7e025 100644 --- a/core/src/main/resources/hudson/model/Run/statusIcon.jelly +++ b/core/src/main/resources/hudson/model/Run/statusIcon.jelly @@ -31,6 +31,6 @@ THE SOFTWARE. - + diff --git a/core/src/main/resources/hudson/views/StatusColumn/column.jelly b/core/src/main/resources/hudson/views/StatusColumn/column.jelly index 5297d99809a3..5ac989e40521 100644 --- a/core/src/main/resources/hudson/views/StatusColumn/column.jelly +++ b/core/src/main/resources/hudson/views/StatusColumn/column.jelly @@ -23,6 +23,18 @@ THE SOFTWARE. --> - - - \ No newline at end of file + + +
+ + + + + + + + + +
+ +
diff --git a/core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly b/core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly index 366071ebf7fa..d203b8a98344 100644 --- a/core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly +++ b/core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly @@ -39,7 +39,7 @@ THE SOFTWARE.
${build.displayName} diff --git a/core/src/main/resources/jenkins/model/Jenkins/_legend.jelly b/core/src/main/resources/jenkins/model/Jenkins/_legend.jelly index 9ae7a079e739..90d8e8b89a13 100644 --- a/core/src/main/resources/jenkins/model/Jenkins/_legend.jelly +++ b/core/src/main/resources/jenkins/model/Jenkins/_legend.jelly @@ -29,87 +29,87 @@ THE SOFTWARE.
- +
${%blue}
- +
${%blue_anime}
- +
${%yellow}
- +
${%yellow_anime}
- +
${%red}
- +
${%red_anime}
- +
${%lightgrey}
- +
${%lightgrey_anime}
- +
- ${%grey} + ${%darkgrey}
- +
- ${%grey_anime} + ${%darkgrey_anime}
- +
- ${%darkgrey} + ${%grey}
- +
- ${%darkgrey_anime} + ${%grey_anime}
diff --git a/core/src/main/resources/lib/hudson/buildCaption.jelly b/core/src/main/resources/lib/hudson/buildCaption.jelly index b8fab1554e31..2f29e2808f4b 100644 --- a/core/src/main/resources/lib/hudson/buildCaption.jelly +++ b/core/src/main/resources/lib/hudson/buildCaption.jelly @@ -29,7 +29,7 @@ THE SOFTWARE.
-

diff --git a/core/src/main/resources/lib/hudson/buildLink.jelly b/core/src/main/resources/lib/hudson/buildLink.jelly index 18ccfc1ec675..ad23bfbbd763 100644 --- a/core/src/main/resources/lib/hudson/buildLink.jelly +++ b/core/src/main/resources/lib/hudson/buildLink.jelly @@ -52,7 +52,7 @@ THE SOFTWARE. - ${jobName_}#${number} + ${jobName_}#${number} diff --git a/core/src/main/resources/lib/hudson/buildListTable.jelly b/core/src/main/resources/lib/hudson/buildListTable.jelly index cd617715838e..608af80d421b 100644 --- a/core/src/main/resources/lib/hudson/buildListTable.jelly +++ b/core/src/main/resources/lib/hudson/buildListTable.jelly @@ -30,6 +30,15 @@ THE SOFTWARE. A collection of builds to be displayed. + diff --git a/core/src/main/resources/lib/hudson/jobLink.jelly b/core/src/main/resources/lib/hudson/jobLink.jelly index 0aaa0dcc7d5a..af40d22b37ae 100644 --- a/core/src/main/resources/lib/hudson/jobLink.jelly +++ b/core/src/main/resources/lib/hudson/jobLink.jelly @@ -31,7 +31,7 @@ THE SOFTWARE. - + diff --git a/core/src/main/resources/lib/hudson/projectView.jelly b/core/src/main/resources/lib/hudson/projectView.jelly index e2bae523dfcf..27d5cf967c6d 100644 --- a/core/src/main/resources/lib/hudson/projectView.jelly +++ b/core/src/main/resources/lib/hudson/projectView.jelly @@ -93,7 +93,15 @@ THE SOFTWARE.
- + + + + + + + + +

${job.displayName}

diff --git a/war/src/main/resources/images/symbols/status-aborted-anime.svg b/war/src/main/resources/images/symbols/status-aborted-anime.svg new file mode 100644 index 000000000000..308e6d7578c7 --- /dev/null +++ b/war/src/main/resources/images/symbols/status-aborted-anime.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/war/src/main/resources/images/symbols/status-aborted.svg b/war/src/main/resources/images/symbols/status-aborted.svg new file mode 100644 index 000000000000..fee388a4f27b --- /dev/null +++ b/war/src/main/resources/images/symbols/status-aborted.svg @@ -0,0 +1,4 @@ + + + + diff --git a/war/src/main/resources/images/symbols/status-blue-anime.svg b/war/src/main/resources/images/symbols/status-blue-anime.svg new file mode 100644 index 000000000000..b11da163e9f7 --- /dev/null +++ b/war/src/main/resources/images/symbols/status-blue-anime.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/war/src/main/resources/images/symbols/status-blue.svg b/war/src/main/resources/images/symbols/status-blue.svg new file mode 100644 index 000000000000..2427dd5286dc --- /dev/null +++ b/war/src/main/resources/images/symbols/status-blue.svg @@ -0,0 +1,4 @@ + + + + diff --git a/war/src/main/resources/images/symbols/status-disabled-anime.svg b/war/src/main/resources/images/symbols/status-disabled-anime.svg new file mode 100644 index 000000000000..138edc7a9ec3 --- /dev/null +++ b/war/src/main/resources/images/symbols/status-disabled-anime.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/war/src/main/resources/images/symbols/status-disabled.svg b/war/src/main/resources/images/symbols/status-disabled.svg new file mode 100644 index 000000000000..32aa7eaef687 --- /dev/null +++ b/war/src/main/resources/images/symbols/status-disabled.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/war/src/main/resources/images/symbols/status-nobuilt-anime.svg b/war/src/main/resources/images/symbols/status-nobuilt-anime.svg new file mode 100644 index 000000000000..9a534d34d237 --- /dev/null +++ b/war/src/main/resources/images/symbols/status-nobuilt-anime.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/war/src/main/resources/images/symbols/status-nobuilt.svg b/war/src/main/resources/images/symbols/status-nobuilt.svg new file mode 100644 index 000000000000..a2ba0f13edbc --- /dev/null +++ b/war/src/main/resources/images/symbols/status-nobuilt.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/war/src/main/resources/images/symbols/status-red-anime.svg b/war/src/main/resources/images/symbols/status-red-anime.svg new file mode 100644 index 000000000000..76b3bca95af1 --- /dev/null +++ b/war/src/main/resources/images/symbols/status-red-anime.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/war/src/main/resources/images/symbols/status-red.svg b/war/src/main/resources/images/symbols/status-red.svg new file mode 100644 index 000000000000..547dc4a13f2d --- /dev/null +++ b/war/src/main/resources/images/symbols/status-red.svg @@ -0,0 +1,4 @@ + + + + diff --git a/war/src/main/resources/images/symbols/status-yellow-anime.svg b/war/src/main/resources/images/symbols/status-yellow-anime.svg new file mode 100644 index 000000000000..c241c3c88024 --- /dev/null +++ b/war/src/main/resources/images/symbols/status-yellow-anime.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/war/src/main/resources/images/symbols/status-yellow.svg b/war/src/main/resources/images/symbols/status-yellow.svg new file mode 100644 index 000000000000..57aab84b73de --- /dev/null +++ b/war/src/main/resources/images/symbols/status-yellow.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/war/src/main/scss/base/_style.scss b/war/src/main/scss/base/_style.scss index ecda3df84a4e..2abd6d4ef10a 100644 --- a/war/src/main/scss/base/_style.scss +++ b/war/src/main/scss/base/_style.scss @@ -866,13 +866,22 @@ table.progress-bar.red td.progress-bar-done { /* Unknown */ +[data-symbol-animation] { + animation: spin 1s linear infinite; + transform-origin: center; + + @media (prefers-reduced-motion) { + animation-duration: 3s; + } +} + @keyframes spin { from { - transform: rotate(0deg) translateZ(0); + transform: rotate(0deg); } to { - transform: rotate(360deg) translateZ(0); + transform: rotate(360deg); } } diff --git a/war/src/main/scss/components/_app-bar.scss b/war/src/main/scss/components/_app-bar.scss index 1e5af8727f88..0cff962e7967 100644 --- a/war/src/main/scss/components/_app-bar.scss +++ b/war/src/main/scss/components/_app-bar.scss @@ -81,8 +81,7 @@ overflow: hidden; text-overflow: ellipsis; - .build-status-icon__wrapper, - .build-status-icon__wrapper svg { + svg { width: 2rem !important; height: 2rem !important; } diff --git a/war/src/main/scss/components/_side-panel-widgets.scss b/war/src/main/scss/components/_side-panel-widgets.scss index 9d6933953efb..037674f61b88 100644 --- a/war/src/main/scss/components/_side-panel-widgets.scss +++ b/war/src/main/scss/components/_side-panel-widgets.scss @@ -156,6 +156,7 @@ .build-row-cell .pane.build-name .build-icon { position: absolute; + margin-top: 2px; z-index: 1; } diff --git a/war/src/main/scss/pages/_dashboard.scss b/war/src/main/scss/pages/_dashboard.scss index 732b7db61001..cb029a9861a9 100644 --- a/war/src/main/scss/pages/_dashboard.scss +++ b/war/src/main/scss/pages/_dashboard.scss @@ -169,3 +169,14 @@ $min-button-size: 36px; } } } + +.build-status-link { + display: inline-flex; + align-items: center; + justify-content: center; + + svg { + width: 1rem; + height: 1rem; + } +} From af0488e8d84124924ad3e1132732080daf7806ac Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Nov 2023 16:39:11 -0800 Subject: [PATCH 0036/1216] Bump org.jenkins-ci.plugins:script-security from 1281.v22fb_899df1a_e to 1294.v99333c047434 (#8722) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index 36df66770033..fc65633dcc85 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -100,7 +100,7 @@ THE SOFTWARE. org.jenkins-ci.plugins script-security - 1281.v22fb_899df1a_e + 1294.v99333c047434 From 1585bf8798b308cd40057e90d376dcc485d1c1dd Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 28 Nov 2023 13:19:32 +0000 Subject: [PATCH 0037/1216] [maven-release-plugin] prepare release jenkins-2.434 --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty10/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 616d7f77af70..00e7666b1169 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.434 jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 21aabc88e649..34142654a5fe 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.434 cli diff --git a/core/pom.xml b/core/pom.xml index 45539865962a..d5d25b17283c 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.434 jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index 9f27c8d11cf0..edc68a18f1bc 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.434 jenkins-coverage diff --git a/pom.xml b/pom.xml index 7abf74185fdd..05da41973967 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.434 pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - ${scmTag} + jenkins-2.434 https://github.com/jenkinsci/jenkins diff --git a/test/pom.xml b/test/pom.xml index fc65633dcc85..ca2e9e70ba39 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.434 jenkins-test diff --git a/war/pom.xml b/war/pom.xml index 8c4377ac7b6b..7ae630ba0f21 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.434 jenkins-war diff --git a/websocket/jetty10/pom.xml b/websocket/jetty10/pom.xml index eb4a169a59d1..ab366b3ddf5d 100644 --- a/websocket/jetty10/pom.xml +++ b/websocket/jetty10/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.434 ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 77abcc3b7248..ec61061a06f7 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.434 ../.. From 3c8d90569bc4885fb645d6acfc0c11a68616e0f2 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 28 Nov 2023 13:19:44 +0000 Subject: [PATCH 0038/1216] [maven-release-plugin] prepare for next development iteration --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 6 +++--- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty10/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 00e7666b1169..616d7f77af70 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.434 + ${revision}${changelist} jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 34142654a5fe..21aabc88e649 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.434 + ${revision}${changelist} cli diff --git a/core/pom.xml b/core/pom.xml index d5d25b17283c..45539865962a 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.434 + ${revision}${changelist} jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index edc68a18f1bc..9f27c8d11cf0 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.434 + ${revision}${changelist} jenkins-coverage diff --git a/pom.xml b/pom.xml index 05da41973967..e6cf069139e2 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.434 + ${revision}${changelist} pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - jenkins-2.434 + ${scmTag} https://github.com/jenkinsci/jenkins @@ -73,7 +73,7 @@ THE SOFTWARE. - 2.434 + 2.435 -SNAPSHOT diff --git a/test/pom.xml b/test/pom.xml index ca2e9e70ba39..fc65633dcc85 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.434 + ${revision}${changelist} jenkins-test diff --git a/war/pom.xml b/war/pom.xml index 7ae630ba0f21..8c4377ac7b6b 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.434 + ${revision}${changelist} jenkins-war diff --git a/websocket/jetty10/pom.xml b/websocket/jetty10/pom.xml index ab366b3ddf5d..eb4a169a59d1 100644 --- a/websocket/jetty10/pom.xml +++ b/websocket/jetty10/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.434 + ${revision}${changelist} ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index ec61061a06f7..77abcc3b7248 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.434 + ${revision}${changelist} ../.. From edd70cdb30b9a47d02259212dd11d6fd37ac8a98 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 28 Nov 2023 12:14:45 -0800 Subject: [PATCH 0039/1216] Update dependency hotkeys-js to v3.12.1 (#8723) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/war/package.json b/war/package.json index 3f966bc5c18d..6c87446fcc83 100644 --- a/war/package.json +++ b/war/package.json @@ -51,7 +51,7 @@ }, "dependencies": { "handlebars": "4.7.8", - "hotkeys-js": "3.12.0", + "hotkeys-js": "3.12.1", "jquery": "3.7.1", "lodash": "4.17.21", "sortablejs": "1.15.0", diff --git a/war/yarn.lock b/war/yarn.lock index e645e75f8e1d..eebd085935c9 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -4093,10 +4093,10 @@ __metadata: languageName: node linkType: hard -"hotkeys-js@npm:3.12.0": - version: 3.12.0 - resolution: "hotkeys-js@npm:3.12.0" - checksum: 64b6b2062ec0c09b09c599dd2e16ae3f1718ac88cb1cb4f26c07e25711318703341fc0e48272eecf201e6a4d36355f2c136059752b2bbff35e58a5a1d716a615 +"hotkeys-js@npm:3.12.1": + version: 3.12.1 + resolution: "hotkeys-js@npm:3.12.1" + checksum: e08e4f08042c0cd487254cea0899d90b3a134a54cd9900a8886a4edf5def9933811c5d8b4f6fe1c03a0e5cc3ef27324735fd8cce412ad4ce6ec1c4249b2e0e7a languageName: node linkType: hard @@ -4417,7 +4417,7 @@ __metadata: eslint-config-prettier: "npm:9.0.0" handlebars: "npm:4.7.8" handlebars-loader: "npm:1.7.3" - hotkeys-js: "npm:3.12.0" + hotkeys-js: "npm:3.12.1" jquery: "npm:3.7.1" lodash: "npm:4.17.21" mini-css-extract-plugin: "npm:2.7.6" From 37622ec88a4f5e70f5980c78f7a0bdf3869ae9a2 Mon Sep 17 00:00:00 2001 From: Jan Faracik <43062514+janfaracik@users.noreply.github.com> Date: Tue, 28 Nov 2023 22:49:21 +0000 Subject: [PATCH 0040/1216] Remove reference to timeline widget in build history (#8718) Init Co-authored-by: Alexander Brandes --- .../hudson/model/Job/buildTimeTrend_resources.js | 12 +----------- .../main/resources/lib/hudson/buildListTable.jelly | 2 +- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/core/src/main/resources/hudson/model/Job/buildTimeTrend_resources.js b/core/src/main/resources/hudson/model/Job/buildTimeTrend_resources.js index eadcb5970622..a332eaafe47b 100644 --- a/core/src/main/resources/hudson/model/Job/buildTimeTrend_resources.js +++ b/core/src/main/resources/hudson/model/Job/buildTimeTrend_resources.js @@ -118,17 +118,7 @@ window.displayBuilds = function (data) { var td3 = document.createElement("td"); td3.setAttribute("data", e.timestampString2); - var button = document.createElement("button"); - button.classList.add("jenkins-table__link"); - button.setAttribute("tooltip", p.dataset.scrollTooltip); - button.setAttribute( - "onclick", - 'javascript:tl.getBand(0).scrollToCenter(Timeline.DateTime.parseGregorianDateTime("' + - e.timestampString3 + - '"))', - ); - button.textContent = e.timestampString; - td3.appendChild(button); + td3.textContent = e.timestampString; tr.appendChild(td3); var td4 = document.createElement("td"); diff --git a/core/src/main/resources/lib/hudson/buildListTable.jelly b/core/src/main/resources/lib/hudson/buildListTable.jelly index 608af80d421b..39fad0d77bcb 100644 --- a/core/src/main/resources/lib/hudson/buildListTable.jelly +++ b/core/src/main/resources/lib/hudson/buildListTable.jelly @@ -48,7 +48,7 @@ THE SOFTWARE. - + From ec27a074c9bc3a7b72e2c6c373d7c5a1ec85ff11 Mon Sep 17 00:00:00 2001 From: Carroll Chiou Date: Wed, 29 Nov 2023 02:02:20 -0700 Subject: [PATCH 0041/1216] [JENKINS-71737] fix redirect when submitting cloud changes (#8505) Co-authored-by: Alexander Brandes --- core/src/main/java/hudson/slaves/Cloud.java | 3 ++- core/src/main/java/jenkins/agents/CloudSet.java | 1 - core/src/main/resources/hudson/slaves/Cloud/configure.jelly | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/hudson/slaves/Cloud.java b/core/src/main/java/hudson/slaves/Cloud.java index 6ec3ed3b489d..76cf075c2634 100644 --- a/core/src/main/java/hudson/slaves/Cloud.java +++ b/core/src/main/java/hudson/slaves/Cloud.java @@ -331,7 +331,8 @@ public HttpResponse doConfigSubmit(StaplerRequest req, StaplerResponse rsp) thro j.clouds.replace(this, result); j.save(); // take the user back to the cloud top page. - return FormApply.success("."); + return FormApply.success("../" + result.name + '/'); + } public Cloud reconfigure(@NonNull final StaplerRequest req, JSONObject form) throws Descriptor.FormException { diff --git a/core/src/main/java/jenkins/agents/CloudSet.java b/core/src/main/java/jenkins/agents/CloudSet.java index 00a27b04693d..e69a3f9add3c 100644 --- a/core/src/main/java/jenkins/agents/CloudSet.java +++ b/core/src/main/java/jenkins/agents/CloudSet.java @@ -231,7 +231,6 @@ private void handleNewCloudPage(Descriptor descriptor, String name, Stapl checkName(name); JSONObject formData = req.getSubmittedForm(); formData.put("name", name); - formData.put("cloudName", name); // ec2 uses that field name formData.remove("mode"); // Cloud descriptors won't have this field. req.setAttribute("instance", formData); req.setAttribute("descriptor", descriptor); diff --git a/core/src/main/resources/hudson/slaves/Cloud/configure.jelly b/core/src/main/resources/hudson/slaves/Cloud/configure.jelly index 3e122734d601..f7479a743176 100644 --- a/core/src/main/resources/hudson/slaves/Cloud/configure.jelly +++ b/core/src/main/resources/hudson/slaves/Cloud/configure.jelly @@ -40,7 +40,6 @@ THE SOFTWARE. - From 39d9b6079ab19f60bba3fa27db996f6301fb227b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 29 Nov 2023 08:19:44 -0800 Subject: [PATCH 0042/1216] Update dependency hotkeys-js to v3.12.2 (#8726) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/war/package.json b/war/package.json index 6c87446fcc83..803b4bb99553 100644 --- a/war/package.json +++ b/war/package.json @@ -51,7 +51,7 @@ }, "dependencies": { "handlebars": "4.7.8", - "hotkeys-js": "3.12.1", + "hotkeys-js": "3.12.2", "jquery": "3.7.1", "lodash": "4.17.21", "sortablejs": "1.15.0", diff --git a/war/yarn.lock b/war/yarn.lock index eebd085935c9..080055517779 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -4093,10 +4093,10 @@ __metadata: languageName: node linkType: hard -"hotkeys-js@npm:3.12.1": - version: 3.12.1 - resolution: "hotkeys-js@npm:3.12.1" - checksum: e08e4f08042c0cd487254cea0899d90b3a134a54cd9900a8886a4edf5def9933811c5d8b4f6fe1c03a0e5cc3ef27324735fd8cce412ad4ce6ec1c4249b2e0e7a +"hotkeys-js@npm:3.12.2": + version: 3.12.2 + resolution: "hotkeys-js@npm:3.12.2" + checksum: 67f19a01de9d1a6ad4ce1055734a7adc0a52fef81ccb1f61f4930a58ad93fca9c382f16647ef0abd9e1610814caddb0d3ca6ce7a8e6fcc43e26275423de617a9 languageName: node linkType: hard @@ -4417,7 +4417,7 @@ __metadata: eslint-config-prettier: "npm:9.0.0" handlebars: "npm:4.7.8" handlebars-loader: "npm:1.7.3" - hotkeys-js: "npm:3.12.1" + hotkeys-js: "npm:3.12.2" jquery: "npm:3.7.1" lodash: "npm:4.17.21" mini-css-extract-plugin: "npm:2.7.6" From a23a8e58fb5894ec53db7ddb01cffbb17ce4828e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Nov 2023 16:02:01 -0800 Subject: [PATCH 0043/1216] Bump org.jenkins-ci.main:jenkins-test-harness from 2112.ve584e0edc63b_ to 2115.v0d2b_4a_a_e80f8 (#8728) Bump org.jenkins-ci.main:jenkins-test-harness Bumps [org.jenkins-ci.main:jenkins-test-harness](https://github.com/jenkinsci/jenkins-test-harness) from 2112.ve584e0edc63b_ to 2115.v0d2b_4a_a_e80f8. - [Release notes](https://github.com/jenkinsci/jenkins-test-harness/releases) - [Changelog](https://github.com/jenkinsci/jenkins-test-harness/blob/master/docs/CHANGELOG-OLD.md) - [Commits](https://github.com/jenkinsci/jenkins-test-harness/commits) --- updated-dependencies: - dependency-name: org.jenkins-ci.main:jenkins-test-harness dependency-type: direct:development ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index fc65633dcc85..f651f56ba0b6 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -121,7 +121,7 @@ THE SOFTWARE. ${project.groupId} jenkins-test-harness - 2112.ve584e0edc63b_ + 2115.v0d2b_4a_a_e80f8 test From 5bd48ebcd045865529216b9c93f34aa2d6a04a1f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Dec 2023 07:27:25 -0700 Subject: [PATCH 0044/1216] Update dependency org.apache.maven:maven-core to v3.9.6 (#8734) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .gitpod/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitpod/Dockerfile b/.gitpod/Dockerfile index 01d953e840e7..6b71c6707163 100644 --- a/.gitpod/Dockerfile +++ b/.gitpod/Dockerfile @@ -1,6 +1,6 @@ FROM gitpod/workspace-full -ARG MAVEN_VERSION=3.9.5 +ARG MAVEN_VERSION=3.9.6 RUN brew install gh && \ bash -c ". /home/gitpod/.sdkman/bin/sdkman-init.sh && sdk install maven ${MAVEN_VERSION} && sdk default maven ${MAVEN_VERSION}" From 48a855399bfbb9db863d20eb639b21f7fb33d1f2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Dec 2023 22:11:58 +0100 Subject: [PATCH 0045/1216] Bump com.github.eirslett:frontend-maven-plugin from 1.14.2 to 1.15.0 (#8737) Bumps [com.github.eirslett:frontend-maven-plugin](https://github.com/eirslett/frontend-maven-plugin) from 1.14.2 to 1.15.0. - [Changelog](https://github.com/eirslett/frontend-maven-plugin/blob/master/CHANGELOG.md) - [Commits](https://github.com/eirslett/frontend-maven-plugin/compare/frontend-plugins-1.14.2...frontend-plugins-1.15.0) --- updated-dependencies: - dependency-name: com.github.eirslett:frontend-maven-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- war/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/pom.xml b/war/pom.xml index 8c4377ac7b6b..5bff6e5171ed 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -780,7 +780,7 @@ THE SOFTWARE. com.github.eirslett frontend-maven-plugin - 1.14.2 + 1.15.0 From ba64f8365ce56609d4b559d3ebfcda13e15d5f9a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Dec 2023 22:13:23 +0100 Subject: [PATCH 0046/1216] Bump actions/setup-java from 3 to 4 (#8727) Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3 to 4. - [Release notes](https://github.com/actions/setup-java/releases) - [Commits](https://github.com/actions/setup-java/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/setup-java dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/publish-release-artifact.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-release-artifact.yml b/.github/workflows/publish-release-artifact.yml index 222b2b5d2ffb..16c26da0e7a4 100644 --- a/.github/workflows/publish-release-artifact.yml +++ b/.github/workflows/publish-release-artifact.yml @@ -16,7 +16,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Set up JDK 11 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: "temurin" java-version: 11 From f6de78afc3f3abf18180e204ef37e718a80dd161 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 Dec 2023 21:16:29 +0100 Subject: [PATCH 0047/1216] Update babel monorepo to v7.23.5 (#8738) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 4 +- war/yarn.lock | 278 +++++++++++++++++++++++------------------------ 2 files changed, 141 insertions(+), 141 deletions(-) diff --git a/war/package.json b/war/package.json index 803b4bb99553..815529d7dde1 100644 --- a/war/package.json +++ b/war/package.json @@ -24,8 +24,8 @@ }, "devDependencies": { "@babel/cli": "7.23.4", - "@babel/core": "7.23.3", - "@babel/preset-env": "7.23.3", + "@babel/core": "7.23.5", + "@babel/preset-env": "7.23.5", "babel-loader": "9.1.3", "clean-webpack-plugin": "4.0.0", "css-loader": "6.8.1", diff --git a/war/yarn.lock b/war/yarn.lock index 080055517779..7e0937b69a6c 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -49,55 +49,55 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.22.13": - version: 7.22.13 - resolution: "@babel/code-frame@npm:7.22.13" +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/code-frame@npm:7.23.5" dependencies: - "@babel/highlight": "npm:^7.22.13" + "@babel/highlight": "npm:^7.23.4" chalk: "npm:^2.4.2" - checksum: f4cc8ae1000265677daf4845083b72f88d00d311adb1a93c94eb4b07bf0ed6828a81ae4ac43ee7d476775000b93a28a9cddec18fbdc5796212d8dcccd5de72bd + checksum: a10e843595ddd9f97faa99917414813c06214f4d9205294013e20c70fbdf4f943760da37dec1d998bf3e6fc20fa2918a47c0e987a7e458663feb7698063ad7c6 languageName: node linkType: hard -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9, @babel/compat-data@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/compat-data@npm:7.23.3" - checksum: c6af331753c34ee8a5678bc94404320826cb56b1dda3efc1311ec8fb0774e78225132f3c1acc988440ace667f14a838e297a822692b95758aa63da406e1f97a1 +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9, @babel/compat-data@npm:^7.23.3, @babel/compat-data@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/compat-data@npm:7.23.5" + checksum: 081278ed46131a890ad566a59c61600a5f9557bd8ee5e535890c8548192532ea92590742fd74bd9db83d74c669ef8a04a7e1c85cdea27f960233e3b83c3a957c languageName: node linkType: hard -"@babel/core@npm:7.23.3": - version: 7.23.3 - resolution: "@babel/core@npm:7.23.3" +"@babel/core@npm:7.23.5": + version: 7.23.5 + resolution: "@babel/core@npm:7.23.5" dependencies: "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.22.13" - "@babel/generator": "npm:^7.23.3" + "@babel/code-frame": "npm:^7.23.5" + "@babel/generator": "npm:^7.23.5" "@babel/helper-compilation-targets": "npm:^7.22.15" "@babel/helper-module-transforms": "npm:^7.23.3" - "@babel/helpers": "npm:^7.23.2" - "@babel/parser": "npm:^7.23.3" + "@babel/helpers": "npm:^7.23.5" + "@babel/parser": "npm:^7.23.5" "@babel/template": "npm:^7.22.15" - "@babel/traverse": "npm:^7.23.3" - "@babel/types": "npm:^7.23.3" + "@babel/traverse": "npm:^7.23.5" + "@babel/types": "npm:^7.23.5" convert-source-map: "npm:^2.0.0" debug: "npm:^4.1.0" gensync: "npm:^1.0.0-beta.2" json5: "npm:^2.2.3" semver: "npm:^6.3.1" - checksum: 08d43b749e24052d12713a7fb1f0c0d1275d4fb056d00846faeb8da79ecf6d0ba91a11b6afec407b8b0f9388d00e2c2f485f282bef0ade4d6d0a17de191a4287 + checksum: 311a512a870ee330a3f9a7ea89e5df790b2b5af0b1bd98b10b4edc0de2ac440f0df4d69ea2c0ee38a4b89041b9a495802741d93603be7d4fd834ec8bb6970bd2 languageName: node linkType: hard -"@babel/generator@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/generator@npm:7.23.3" +"@babel/generator@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/generator@npm:7.23.5" dependencies: - "@babel/types": "npm:^7.23.3" + "@babel/types": "npm:^7.23.5" "@jridgewell/gen-mapping": "npm:^0.3.2" "@jridgewell/trace-mapping": "npm:^0.3.17" jsesc: "npm:^2.5.1" - checksum: d5fff1417eecfada040e01a7c77a4968e81c436aeb35815ce85b4e80cd01e731423613d61033044a6cb5563bb8449ee260e3379b63eb50b38ec0a9ea9c00abfd + checksum: 14c6e874f796c4368e919bed6003bb0adc3ce837760b08f9e646d20aeb5ae7d309723ce6e4f06bcb4a2b5753145446c8e4425851380f695e40e71e1760f49e7b languageName: node linkType: hard @@ -307,24 +307,24 @@ __metadata: languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-string-parser@npm:7.22.5" - checksum: 6b0ff8af724377ec41e5587fffa7605198da74cb8e7d8d48a36826df0c0ba210eb9fedb3d9bef4d541156e0bd11040f021945a6cbb731ccec4aefb4affa17aa4 +"@babel/helper-string-parser@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/helper-string-parser@npm:7.23.4" + checksum: f348d5637ad70b6b54b026d6544bd9040f78d24e7ec245a0fc42293968181f6ae9879c22d89744730d246ce8ec53588f716f102addd4df8bbc79b73ea10004ac languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.22.20, @babel/helper-validator-identifier@npm:^7.22.5": +"@babel/helper-validator-identifier@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-validator-identifier@npm:7.22.20" checksum: dcad63db345fb110e032de46c3688384b0008a42a4845180ce7cd62b1a9c0507a1bed727c4d1060ed1a03ae57b4d918570259f81724aaac1a5b776056f37504e languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/helper-validator-option@npm:7.22.15" - checksum: e9661bf80ba18e2dd978217b350fb07298e57ac417f4f1ab9fa011505e20e4857f2c3b4b538473516a9dc03af5ce3a831e5ed973311c28326f4c330b6be981c2 +"@babel/helper-validator-option@npm:^7.22.15, @babel/helper-validator-option@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/helper-validator-option@npm:7.23.5" + checksum: af45d5c0defb292ba6fd38979e8f13d7da63f9623d8ab9ededc394f67eb45857d2601278d151ae9affb6e03d5d608485806cd45af08b4468a0515cf506510e94 languageName: node linkType: hard @@ -339,34 +339,34 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.23.2": - version: 7.23.2 - resolution: "@babel/helpers@npm:7.23.2" +"@babel/helpers@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/helpers@npm:7.23.5" dependencies: "@babel/template": "npm:^7.22.15" - "@babel/traverse": "npm:^7.23.2" - "@babel/types": "npm:^7.23.0" - checksum: 3a6a939c5277a27486e7c626812f0643b35d1c053ac2eb66911f5ae6c0a4e4bcdd40750eba36b766b0ee8a753484287f50ae56232a5f8f2947116723e44b9e35 + "@babel/traverse": "npm:^7.23.5" + "@babel/types": "npm:^7.23.5" + checksum: a37e2728eb4378a4888e5d614e28de7dd79b55ac8acbecd0e5c761273e2a02a8f33b34b1932d9069db55417ace2937cbf8ec37c42f1030ce6d228857d7ccaa4f languageName: node linkType: hard -"@babel/highlight@npm:^7.22.13": - version: 7.22.13 - resolution: "@babel/highlight@npm:7.22.13" +"@babel/highlight@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/highlight@npm:7.23.4" dependencies: - "@babel/helper-validator-identifier": "npm:^7.22.5" + "@babel/helper-validator-identifier": "npm:^7.22.20" chalk: "npm:^2.4.2" js-tokens: "npm:^4.0.0" - checksum: 65f20132c7ada5d82d343dc23ca61bcd040980f7bd59e480532bcd7f7895aa7abe58470ae8a4f851fd244b71b42a7ad915f7c515fef8f1c2e003777721ebdbe6 + checksum: fbff9fcb2f5539289c3c097d130e852afd10d89a3a08ac0b5ebebbc055cc84a4bcc3dcfed463d488cde12dd0902ef1858279e31d7349b2e8cee43913744bda33 languageName: node linkType: hard -"@babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/parser@npm:7.23.3" +"@babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/parser@npm:7.23.5" bin: parser: ./bin/babel-parser.js - checksum: 0fe11eadd4146a9155305b5bfece0f8223a3b1b97357ffa163c0156940de92e76cd0e7a173de819b8692767147e62f33389b312d1537f84cede51092672df6ef + checksum: 3356aa90d7bafb4e2c7310e7c2c3d443c4be4db74913f088d3d577a1eb914ea4188e05fd50a47ce907a27b755c4400c4e3cbeee73dbeb37761f6ca85954f5a20 languageName: node linkType: hard @@ -625,9 +625,9 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.3" +"@babel/plugin-transform-async-generator-functions@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.4" dependencies: "@babel/helper-environment-visitor": "npm:^7.22.20" "@babel/helper-plugin-utils": "npm:^7.22.5" @@ -635,7 +635,7 @@ __metadata: "@babel/plugin-syntax-async-generators": "npm:^7.8.4" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e846f282658e097fce4fccf3ee29289bf05f0654846a5994727a36f0cdc2e47abdffd4be4fa65787e94aa975824fae894c90afbfdc8caacd46c12c7f43e99d7f + checksum: f2eef4de609975a3f7da7832576b5ffc93e43c80f87e1a99e886b0f8591096cfc4c37e2d5f52fdeaa2a9c09a25a59f3e621159abaca75d3193922a5c0e4cbe0c languageName: node linkType: hard @@ -663,14 +663,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-block-scoping@npm:7.23.3" +"@babel/plugin-transform-block-scoping@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-block-scoping@npm:7.23.4" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: ccaeded7954c196811d22a35322579254cda52676e823682b6234885a3aaf88fe0d5152dacaec43db9031dcf35a050a5343e36028e5905b0ba9c02d36b30a57f + checksum: 83006804dddf980ab1bcd6d67bc381e24b58c776507c34f990468f820d0da71dba3697355ca4856532fa2eeb2a1e3e73c780f03760b5507a511cbedb0308e276 languageName: node linkType: hard @@ -686,22 +686,22 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-class-static-block@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-class-static-block@npm:7.23.3" +"@babel/plugin-transform-class-static-block@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-class-static-block@npm:7.23.4" dependencies: "@babel/helper-create-class-features-plugin": "npm:^7.22.15" "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" peerDependencies: "@babel/core": ^7.12.0 - checksum: 89cdb66d7bc834cd51659eb7286a6bee23add0bc114943d68c4b6c0c834178cf0d55183df0cf508fec9c55ed4155641360e6f55a91c16fe826ccaf1adf381922 + checksum: fdca96640ef29d8641a7f8de106f65f18871b38cc01c0f7b696d2b49c76b77816b30a812c08e759d06dd10b4d9b3af6b5e4ac22a2017a88c4077972224b77ab0 languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-classes@npm:7.23.3" +"@babel/plugin-transform-classes@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/plugin-transform-classes@npm:7.23.5" dependencies: "@babel/helper-annotate-as-pure": "npm:^7.22.5" "@babel/helper-compilation-targets": "npm:^7.22.15" @@ -714,7 +714,7 @@ __metadata: globals: "npm:^11.1.0" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 88bfd332db0ba5cbfb8557a2ba5a7185151aebc9cfe3035b014aa6d795556acbe672bb8c78da3c9fd1d23f55a333d14b5daa127ef037f5ced5198b6d79a146d6 + checksum: 07988f52b4893151887d1ea6ff79e5fe834078c5731bd09babd5659edbbae21ea4e2de326a02443a63fd776b4c945da6177f07875b56fe66e0b7899e830a9e92 languageName: node linkType: hard @@ -764,15 +764,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-dynamic-import@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-dynamic-import@npm:7.23.3" +"@babel/plugin-transform-dynamic-import@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.23.4" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: df3fd130312dc53d068fa76333991dce5e86987b023af8c3b502bd7d36a8e67da6f718e61dc838576a9fbacd06628e29607ee22d9bae30705485c14130eab201 + checksum: 19ae4a4a2ca86d35224734c41c48b2aa6a13139f3cfa1cbd18c0e65e461de8b65687dec7e52b7a72bb49db04465394c776aa1b13a2af5dc975b2a0cde3dcab67 languageName: node linkType: hard @@ -788,15 +788,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-export-namespace-from@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-export-namespace-from@npm:7.23.3" +"@babel/plugin-transform-export-namespace-from@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.23.4" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 390c6626dcda99023629049d92090242b4575351a4a7b47f97febabd2381f2cd0f624de661d8de8d1f715fedd63753cfd1feddead19e5960c27b88e447465b81 + checksum: 38bf04f851e36240bbe83ace4169da626524f4107bfb91f05b4ad93a5fb6a36d5b3d30b8883c1ba575ccfc1bac7938e90ca2e3cb227f7b3f4a9424beec6fd4a7 languageName: node linkType: hard @@ -824,15 +824,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-json-strings@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-json-strings@npm:7.23.3" +"@babel/plugin-transform-json-strings@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-json-strings@npm:7.23.4" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/plugin-syntax-json-strings": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e1cef6a485b9da32aba9449fb459dac062dfc401f3d6ad48e7fbdcb73bbe470c995cc15ce5c421b95efe1e9a90d5507eb606360fe10b6d8cb869dd5dae7a2562 + checksum: 39e82223992a9ad857722ae051291935403852ad24b0dd64c645ca1c10517b6bf9822377d88643fed8b3e61a4e3f7e5ae41cf90eb07c40a786505d47d5970e54 languageName: node linkType: hard @@ -847,15 +847,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-logical-assignment-operators@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.23.3" +"@babel/plugin-transform-logical-assignment-operators@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.23.4" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 23b7588b26d420c8b132bd08916d49871ca0c8db892f6b58637b10e2a0d918163d413c505db880a9157fc2e61d089040f139298a60d837ccbd0efca0474ac7ca + checksum: 87b034dd13143904e405887e6125d76c27902563486efc66b7d9a9d8f9406b76c6ac42d7b37224014af5783d7edb465db0cdecd659fa3227baad0b3a6a35deff languageName: node linkType: hard @@ -944,33 +944,33 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.23.3" +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.23.4" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f960faed3975c8454c52d2b5d85daf0c9a27677b248d7933882e59b10202ade2a98c7b925ce0bae2b8eb4d66eb5d63a5588c1090d54eaa4cd235533d71228ff3 + checksum: bce490d22da5c87ff27fffaff6ad5a4d4979b8d7b72e30857f191e9c1e1824ba73bb8d7081166289369e388f94f0ce5383a593b1fc84d09464a062c75f824b0b languageName: node linkType: hard -"@babel/plugin-transform-numeric-separator@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-numeric-separator@npm:7.23.3" +"@babel/plugin-transform-numeric-separator@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.23.4" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d3748cce20e8752e61dfda55e275c699459a3ff8d0bb46585da813136e04066b1ce70b71beef504fcdc8d4cca3c955112cea96d5e9fd5a42a5bc8956d05236c2 + checksum: e34902da4f5588dc4812c92cb1f6a5e3e3647baf7b4623e30942f551bf1297621abec4e322ebfa50b320c987c0f34d9eb4355b3d289961d9035e2126e3119c12 languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.23.3" +"@babel/plugin-transform-object-rest-spread@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.23.4" dependencies: "@babel/compat-data": "npm:^7.23.3" "@babel/helper-compilation-targets": "npm:^7.22.15" @@ -979,7 +979,7 @@ __metadata: "@babel/plugin-transform-parameters": "npm:^7.23.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 31ab631aaba945c118662943e5f1f54a21f07d64f06e06b25d55871168c460f3eeeccdf7b05aa74a1340e2cfbe781ad3c7ceccd0c2585d39f7b73ba11ebaa9d0 + checksum: b56017992ffe7fcd1dd9a9da67c39995a141820316266bcf7d77dc912980d228ccbd3f36191d234f5cc389b09157b5d2a955e33e8fb368319534affd1c72b262 languageName: node linkType: hard @@ -995,28 +995,28 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-optional-catch-binding@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.23.3" +"@babel/plugin-transform-optional-catch-binding@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.23.4" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 85ac1e94ee8f21648816151628ff931cc16143ec8c904649a1ecfd8960160290eccc5a197b4ae3ee7a1c7a27a7c4189e61b4de24483d5bad4040784afe2d206f + checksum: 4ef61812af0e4928485e28301226ce61139a8b8cea9e9a919215ebec4891b9fea2eb7a83dc3090e2679b7d7b2c8653da601fbc297d2addc54a908b315173991e languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.23.3" +"@babel/plugin-transform-optional-chaining@npm:^7.23.3, @babel/plugin-transform-optional-chaining@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.23.4" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2b358962169d871392aa292a67527e5335909438da0ddbb0d19e7838c0f8a2081cc751a49e6e534ac4d6c932254531a205ac22b197f64fc4c89f41bf9f595497 + checksum: 305b773c29ad61255b0e83ec1e92b2f7af6aa58be4cba1e3852bddaa14f7d2afd7b4438f41c28b179d6faac7eb8d4fb5530a17920294f25d459b8f84406bfbfb languageName: node linkType: hard @@ -1043,9 +1043,9 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-private-property-in-object@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-private-property-in-object@npm:7.23.3" +"@babel/plugin-transform-private-property-in-object@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.23.4" dependencies: "@babel/helper-annotate-as-pure": "npm:^7.22.5" "@babel/helper-create-class-features-plugin": "npm:^7.22.15" @@ -1053,7 +1053,7 @@ __metadata: "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 9211dd25a6e87a01535f2d97a663fa6de3472b963c8dcfaacce229a2e3fa6500f2e9fc690bc100a540fc7b66c8364faf7ef19b32e9c9b9791e4561b742c15ed3 + checksum: 8d31b28f24204b4d13514cd3a8f3033abf575b1a6039759ddd6e1d82dd33ba7281f9bc85c9f38072a665d69bfa26dc40737eefaf9d397b024654a483d2357bf5 languageName: node linkType: hard @@ -1194,14 +1194,14 @@ __metadata: languageName: node linkType: hard -"@babel/preset-env@npm:7.23.3": - version: 7.23.3 - resolution: "@babel/preset-env@npm:7.23.3" +"@babel/preset-env@npm:7.23.5": + version: 7.23.5 + resolution: "@babel/preset-env@npm:7.23.5" dependencies: - "@babel/compat-data": "npm:^7.23.3" + "@babel/compat-data": "npm:^7.23.5" "@babel/helper-compilation-targets": "npm:^7.22.15" "@babel/helper-plugin-utils": "npm:^7.22.5" - "@babel/helper-validator-option": "npm:^7.22.15" + "@babel/helper-validator-option": "npm:^7.23.5" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.23.3" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.23.3" "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.23.3" @@ -1225,25 +1225,25 @@ __metadata: "@babel/plugin-syntax-top-level-await": "npm:^7.14.5" "@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6" "@babel/plugin-transform-arrow-functions": "npm:^7.23.3" - "@babel/plugin-transform-async-generator-functions": "npm:^7.23.3" + "@babel/plugin-transform-async-generator-functions": "npm:^7.23.4" "@babel/plugin-transform-async-to-generator": "npm:^7.23.3" "@babel/plugin-transform-block-scoped-functions": "npm:^7.23.3" - "@babel/plugin-transform-block-scoping": "npm:^7.23.3" + "@babel/plugin-transform-block-scoping": "npm:^7.23.4" "@babel/plugin-transform-class-properties": "npm:^7.23.3" - "@babel/plugin-transform-class-static-block": "npm:^7.23.3" - "@babel/plugin-transform-classes": "npm:^7.23.3" + "@babel/plugin-transform-class-static-block": "npm:^7.23.4" + "@babel/plugin-transform-classes": "npm:^7.23.5" "@babel/plugin-transform-computed-properties": "npm:^7.23.3" "@babel/plugin-transform-destructuring": "npm:^7.23.3" "@babel/plugin-transform-dotall-regex": "npm:^7.23.3" "@babel/plugin-transform-duplicate-keys": "npm:^7.23.3" - "@babel/plugin-transform-dynamic-import": "npm:^7.23.3" + "@babel/plugin-transform-dynamic-import": "npm:^7.23.4" "@babel/plugin-transform-exponentiation-operator": "npm:^7.23.3" - "@babel/plugin-transform-export-namespace-from": "npm:^7.23.3" + "@babel/plugin-transform-export-namespace-from": "npm:^7.23.4" "@babel/plugin-transform-for-of": "npm:^7.23.3" "@babel/plugin-transform-function-name": "npm:^7.23.3" - "@babel/plugin-transform-json-strings": "npm:^7.23.3" + "@babel/plugin-transform-json-strings": "npm:^7.23.4" "@babel/plugin-transform-literals": "npm:^7.23.3" - "@babel/plugin-transform-logical-assignment-operators": "npm:^7.23.3" + "@babel/plugin-transform-logical-assignment-operators": "npm:^7.23.4" "@babel/plugin-transform-member-expression-literals": "npm:^7.23.3" "@babel/plugin-transform-modules-amd": "npm:^7.23.3" "@babel/plugin-transform-modules-commonjs": "npm:^7.23.3" @@ -1251,15 +1251,15 @@ __metadata: "@babel/plugin-transform-modules-umd": "npm:^7.23.3" "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.22.5" "@babel/plugin-transform-new-target": "npm:^7.23.3" - "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.23.3" - "@babel/plugin-transform-numeric-separator": "npm:^7.23.3" - "@babel/plugin-transform-object-rest-spread": "npm:^7.23.3" + "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.23.4" + "@babel/plugin-transform-numeric-separator": "npm:^7.23.4" + "@babel/plugin-transform-object-rest-spread": "npm:^7.23.4" "@babel/plugin-transform-object-super": "npm:^7.23.3" - "@babel/plugin-transform-optional-catch-binding": "npm:^7.23.3" - "@babel/plugin-transform-optional-chaining": "npm:^7.23.3" + "@babel/plugin-transform-optional-catch-binding": "npm:^7.23.4" + "@babel/plugin-transform-optional-chaining": "npm:^7.23.4" "@babel/plugin-transform-parameters": "npm:^7.23.3" "@babel/plugin-transform-private-methods": "npm:^7.23.3" - "@babel/plugin-transform-private-property-in-object": "npm:^7.23.3" + "@babel/plugin-transform-private-property-in-object": "npm:^7.23.4" "@babel/plugin-transform-property-literals": "npm:^7.23.3" "@babel/plugin-transform-regenerator": "npm:^7.23.3" "@babel/plugin-transform-reserved-words": "npm:^7.23.3" @@ -1280,7 +1280,7 @@ __metadata: semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 36b02a86817ab5474bb74a8d62a110723b0b05904a52ddc5627cf89457525b8d5ac0739b8e435a6ae12ef8b90cd5fc191169898c3dc2ac9d2c84026b02f2580a + checksum: 2a0e1274dec045186e131c6433659b75492583290e8d41633c616f6bff829cb2e4b2f9a57f556283a54db3bd6aa697911e56a36f607911a29b731c445a5b5a06 languageName: node linkType: hard @@ -1324,32 +1324,32 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.23.2, @babel/traverse@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/traverse@npm:7.23.3" +"@babel/traverse@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/traverse@npm:7.23.5" dependencies: - "@babel/code-frame": "npm:^7.22.13" - "@babel/generator": "npm:^7.23.3" + "@babel/code-frame": "npm:^7.23.5" + "@babel/generator": "npm:^7.23.5" "@babel/helper-environment-visitor": "npm:^7.22.20" "@babel/helper-function-name": "npm:^7.23.0" "@babel/helper-hoist-variables": "npm:^7.22.5" "@babel/helper-split-export-declaration": "npm:^7.22.6" - "@babel/parser": "npm:^7.23.3" - "@babel/types": "npm:^7.23.3" + "@babel/parser": "npm:^7.23.5" + "@babel/types": "npm:^7.23.5" debug: "npm:^4.1.0" globals: "npm:^11.1.0" - checksum: 3c2784f4765185126d64fd5eebce0413b7aee6d54f779998594a343a7f973a9693a441ba27533df84e7ab7ce22f1239c6837f35e903132a1b25f7fc7a67bc30f + checksum: c5ea793080ca6719b0a1612198fd25e361cee1f3c14142d7a518d2a1eeb5c1d21f7eec1b26c20ea6e1ddd8ed12ab50b960ff95ffd25be353b6b46e1b54d6f825 languageName: node linkType: hard -"@babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": - version: 7.23.3 - resolution: "@babel/types@npm:7.23.3" +"@babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.5, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": + version: 7.23.5 + resolution: "@babel/types@npm:7.23.5" dependencies: - "@babel/helper-string-parser": "npm:^7.22.5" + "@babel/helper-string-parser": "npm:^7.23.4" "@babel/helper-validator-identifier": "npm:^7.22.20" to-fast-properties: "npm:^2.0.0" - checksum: 371a10dd9c8d8ebf48fc5d9e1b327dafd74453f8ea582dcbddd1cee5ae34e8881b743e783a86c08c04dcd1849b1842455472a911ae8a1c185484fe9b7b5f1595 + checksum: 7dd5e2f59828ed046ad0b06b039df2524a8b728d204affb4fc08da2502b9dd3140b1356b5166515d229dc811539a8b70dcd4bc507e06d62a89f4091a38d0b0fb languageName: node linkType: hard @@ -4407,8 +4407,8 @@ __metadata: resolution: "jenkins-ui@workspace:." dependencies: "@babel/cli": "npm:7.23.4" - "@babel/core": "npm:7.23.3" - "@babel/preset-env": "npm:7.23.3" + "@babel/core": "npm:7.23.5" + "@babel/preset-env": "npm:7.23.5" babel-loader: "npm:9.1.3" clean-webpack-plugin: "npm:4.0.0" css-loader: "npm:6.8.1" From 78f1e9c8ebabab11d468f80572986e59a98a4d9c Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Sat, 2 Dec 2023 12:17:45 -0800 Subject: [PATCH 0048/1216] Upgrade bundled plugins (#8724) --- war/pom.xml | 66 ++++++++++++++++++++++++++--------------------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/war/pom.xml b/war/pom.xml index 5bff6e5171ed..af5501f7d47f 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -282,77 +282,77 @@ THE SOFTWARE. org.jenkins-ci.plugins display-url-api - 2.3.7 + 2.200.vb_9327d658781 hpi org.jenkins-ci.plugins mailer - 457.v3f72cb_e015e5 + 463.vedf8358e006b_ hpi org.jenkins-ci.plugins matrix-auth - 3.1.8 + 3.2.1 hpi org.jenkins-ci.plugins antisamy-markup-formatter - 159.v25b_c67cd35fb_ + 162.v0e6ec0fcfcf6 hpi org.jenkins-ci.plugins matrix-project - 789.v57a_725b_63c79 + 818.v7eb_e657db_924 hpi org.jenkins-ci.plugins script-security - 1251.vfe552ed55f8d + 1294.v99333c047434 hpi org.jenkins-ci.plugins junit - 1207.va_09d5100410f + 1240.vf9529b_881428 hpi org.jenkins-ci.plugins.workflow workflow-api - 1213.v646def1087f9 + 1283.v99c10937efcb_ hpi io.jenkins.plugins plugin-util-api - 3.3.0 + 3.6.0 hpi io.jenkins.plugins bootstrap5-api - 5.3.0-1 + 5.3.2-2 hpi io.jenkins.plugins checks-api - 2.0.0 + 2.0.2 hpi @@ -360,7 +360,7 @@ THE SOFTWARE. org.jenkins-ci.plugins.workflow workflow-support - 839.v35e2736cfd5c + 865.v43e78cc44e0d hpi @@ -368,14 +368,14 @@ THE SOFTWARE. org.jenkins-ci.plugins jackson2-api - 2.15.2-350.v0c2f3f8fc595 + 2.15.3-372.v309620682326 hpi io.jenkins.plugins echarts-api - 5.4.0-5 + 5.4.3-1 hpi @@ -391,7 +391,7 @@ THE SOFTWARE. io.jenkins.plugins caffeine-api - 3.1.6-115.vb_8b_b_328e59d8 + 3.1.8-133.v17b_1ff2e0599 hpi @@ -399,15 +399,15 @@ THE SOFTWARE. io.jenkins.plugins jquery3-api - 3.7.0-1 + 3.7.1-1 hpi - + io.jenkins.plugins popper2-api - 2.11.6-2 + 2.11.6-4 hpi @@ -415,7 +415,7 @@ THE SOFTWARE. io.jenkins.plugins font-awesome-api - 6.4.0-1 + 6.4.2-1 hpi @@ -430,49 +430,49 @@ THE SOFTWARE. org.jenkins-ci.plugins scm-api - 672.v64378a_b_20c60 + 683.vb_16722fb_b_80b_ hpi org.jenkins-ci.plugins structs - 324.va_f5d6774f3a_d + 325.vcb_307d2a_2782 hpi org.jenkins-ci.plugins bouncycastle-api - 2.28 + 2.29 hpi org.jenkins-ci.plugins command-launcher - 100.v2f6722292ee8 + 107.v773860566e2e hpi org.jenkins-ci.plugins jdk-tool - 66.vd8fa_64ee91b_d + 73.vddf737284550 hpi io.jenkins.plugins jaxb - 2.3.8-1 + 2.3.9-1 hpi org.jenkins-ci.modules sshd - 3.303.vefc7119b_ec23 + 3.312.v1c601b_c83b_0e hpi @@ -500,32 +500,32 @@ THE SOFTWARE. org.jenkins-ci.modules instance-identity - 173.va_37c494ec4e5 + 185.v303dc7c645f9 hpi org.jenkins-ci.plugins apache-httpcomponents-client-4-api - 4.5.14-150.v7a_b_9d17134a_5 + 4.5.14-208.v438351942757 hpi io.jenkins.plugins commons-lang3-api - 3.12.0-36.vd97de6465d5b_ + 3.13.0-62.v7d18e55f51e2 hpi io.jenkins.plugins commons-text-api - 1.10.0-36.vc008c8fcda_7b_ + 1.11.0-94.v3e1f4a_926e49 hpi - + io.jenkins.plugins ionicons-api 56.v1b_1c8c49374e @@ -549,14 +549,14 @@ THE SOFTWARE. io.jenkins.plugins.mina-sshd-api mina-sshd-api-common - 2.10.0-69.v28e3e36d18eb_ + 2.11.0-86.v836f585d47fa_ hpi io.jenkins.plugins.mina-sshd-api mina-sshd-api-core - 2.10.0-69.v28e3e36d18eb_ + 2.11.0-86.v836f585d47fa_ hpi From 932cb225d3bcbfe15f8f843feea970012927abaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Le=20Meur?= <91831478+lemeurherve@users.noreply.github.com> Date: Sun, 3 Dec 2023 21:17:49 +0100 Subject: [PATCH 0049/1216] Don't try to publish artifacts on RC GitHub releases (#8733) --- .github/workflows/publish-release-artifact.yml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/.github/workflows/publish-release-artifact.yml b/.github/workflows/publish-release-artifact.yml index 16c26da0e7a4..86d55282ebba 100644 --- a/.github/workflows/publish-release-artifact.yml +++ b/.github/workflows/publish-release-artifact.yml @@ -13,6 +13,7 @@ jobs: outputs: project-version: ${{ steps.set-version.outputs.project-version }} is-lts: ${{ steps.set-version.outputs.is-lts }} + is-rc: ${{ steps.set-version.outputs.is-rc }} steps: - uses: actions/checkout@v4 - name: Set up JDK 11 @@ -34,16 +35,23 @@ jobs: is_lts=false fi - echo "Version is $version, is_lts: $is_lts" + is_rc=false + if [[ ${version} == *"-SNAPSHOT" ]]; then + is_rc=true + fi + + echo "Version is $version, is_lts: $is_lts, is_rc: $is_rc" echo "is-lts=${is_lts}" >> $GITHUB_OUTPUT echo "project-version=$version" >> $GITHUB_OUTPUT + echo "is-rc=${is_rc}" >> $GITHUB_OUTPUT war: permissions: contents: write # to upload release asset (softprops/action-gh-release) runs-on: ubuntu-latest needs: determine-version + if: ${{ needs.determine-version.outputs.is-rc == 'false' }} steps: - name: Fetch war id: fetch-war @@ -76,6 +84,7 @@ jobs: runs-on: ubuntu-latest needs: determine-version + if: ${{ needs.determine-version.outputs.is-rc == 'false' }} steps: - name: Fetch Deb id: fetch-deb @@ -110,6 +119,7 @@ jobs: runs-on: ubuntu-latest needs: determine-version + if: ${{ needs.determine-version.outputs.is-rc == 'false' }} steps: - name: Fetch RPM id: fetch-rpm @@ -145,6 +155,7 @@ jobs: runs-on: ubuntu-latest needs: determine-version + if: ${{ needs.determine-version.outputs.is-rc == 'false' }} steps: - name: Fetch MSI id: fetch-msi @@ -180,6 +191,7 @@ jobs: runs-on: ubuntu-latest needs: determine-version + if: ${{ needs.determine-version.outputs.is-rc == 'false' }} steps: - name: Fetch suse rpm id: fetch-suse-rpm From 1e9372ee5742d18f1181acd307f5087eeba90187 Mon Sep 17 00:00:00 2001 From: Olivier Lamy Date: Mon, 4 Dec 2023 11:02:08 +1000 Subject: [PATCH 0050/1216] Move proxy configuration form out of pluginManager screens as it is not related (#8693) * Move proxy configuration form out of pluginManager screens as it is not related --------- Signed-off-by: Olivier Lamy --- core/src/main/java/hudson/PluginManager.java | 8 +-- .../hudson/ProxyConfigurationManager.java | 72 +++++++++++++++++++ .../main/resources/hudson/Messages.properties | 2 + .../hudson/PluginManager/advanced.jelly | 19 ++--- .../hudson/PluginManager/advanced.properties | 2 + .../PluginManager/advanced_fr.properties | 1 + .../ProxyConfigurationManager/config.jelly | 37 ++++++++++ .../hudson/model/Messages.properties | 4 +- .../hudson/model/Messages_bg.properties | 4 +- .../hudson/model/Messages_de.properties | 4 +- .../hudson/model/Messages_es.properties | 4 +- .../hudson/model/Messages_fr.properties | 4 +- .../hudson/model/Messages_it.properties | 4 +- .../hudson/model/Messages_ja.properties | 4 +- .../hudson/model/Messages_lt.properties | 4 +- .../hudson/model/Messages_pt_BR.properties | 4 +- .../hudson/model/Messages_sr.properties | 4 +- .../hudson/model/Messages_zh_TW.properties | 4 +- 18 files changed, 141 insertions(+), 44 deletions(-) create mode 100644 core/src/main/java/hudson/ProxyConfigurationManager.java create mode 100644 core/src/main/resources/hudson/ProxyConfigurationManager/config.jelly diff --git a/core/src/main/java/hudson/PluginManager.java b/core/src/main/java/hudson/PluginManager.java index 649cc045b482..a7d74fcee478 100644 --- a/core/src/main/java/hudson/PluginManager.java +++ b/core/src/main/java/hudson/PluginManager.java @@ -1803,13 +1803,7 @@ public HttpResponse doProxyConfigure(StaplerRequest req) throws IOException, Ser jenkins.checkPermission(Jenkins.ADMINISTER); ProxyConfiguration pc = req.bindJSON(ProxyConfiguration.class, req.getSubmittedForm()); - if (pc.name == null) { - jenkins.proxy = null; - ProxyConfiguration.getXmlFile().delete(); - } else { - jenkins.proxy = pc; - jenkins.proxy.save(); - } + ProxyConfigurationManager.saveProxyConfiguration(pc); return new HttpRedirect("advanced"); } diff --git a/core/src/main/java/hudson/ProxyConfigurationManager.java b/core/src/main/java/hudson/ProxyConfigurationManager.java new file mode 100644 index 000000000000..52f15f84c87e --- /dev/null +++ b/core/src/main/java/hudson/ProxyConfigurationManager.java @@ -0,0 +1,72 @@ +/* + * The MIT License + * + * Copyright (c) 2023, CloudBees Inc, and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package hudson; + +import edu.umd.cs.findbugs.annotations.NonNull; +import hudson.model.Descriptor; +import java.io.IOException; +import jenkins.model.GlobalConfiguration; +import jenkins.model.Jenkins; +import net.sf.json.JSONObject; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.NoExternalUse; +import org.kohsuke.stapler.StaplerRequest; + +@Extension @Restricted(NoExternalUse.class) +public class ProxyConfigurationManager extends GlobalConfiguration { + + @NonNull + @Override + public String getDisplayName() { + return Messages.ProxyConfigurationManager_DisplayName(); + } + + public Descriptor getProxyDescriptor() { + return Jenkins.get().getDescriptor(ProxyConfiguration.class); + } + + @Override + public boolean configure(StaplerRequest req, JSONObject json) throws FormException { + ProxyConfiguration pc = req.bindJSON(ProxyConfiguration.class, json); + try { + saveProxyConfiguration(pc); + } catch (IOException e) { + throw new FormException(e.getMessage(), e, null); + } + return true; + } + + public static void saveProxyConfiguration(ProxyConfiguration pc) throws IOException { + Jenkins jenkins = Jenkins.get(); + if (pc.name == null) { + jenkins.proxy = null; + ProxyConfiguration.getXmlFile().delete(); + } else { + jenkins.proxy = pc; + jenkins.proxy.save(); + } + } + +} diff --git a/core/src/main/resources/hudson/Messages.properties b/core/src/main/resources/hudson/Messages.properties index aca1dc5ff295..f819794b72ed 100644 --- a/core/src/main/resources/hudson/Messages.properties +++ b/core/src/main/resources/hudson/Messages.properties @@ -127,3 +127,5 @@ PluginWrapper.NoSuchPlugin=No such plugin found with the name ''{0}'' PluginWrapper.Error.Disabling=There was an error disabling the ''{0}'' plugin. Error: ''{1}'' TcpSlaveAgentListener.PingAgentProtocol.displayName=Ping protocol +ProxyConfigurationManager.DisplayName=Proxy Configuration +ProxyConfigurationManager.Description=Configure the http proxy used by Jenkins diff --git a/core/src/main/resources/hudson/PluginManager/advanced.jelly b/core/src/main/resources/hudson/PluginManager/advanced.jelly index 347c9b463124..5d7184c3552e 100644 --- a/core/src/main/resources/hudson/PluginManager/advanced.jelly +++ b/core/src/main/resources/hudson/PluginManager/advanced.jelly @@ -37,22 +37,11 @@ THE SOFTWARE. +
+ ${%proxyMovedBlurb(rootURL+"/manage/configure")} +
+
-
-

${%HTTP Proxy Configuration}

- - - - - - - - - - - - -
diff --git a/core/src/main/resources/hudson/PluginManager/advanced.properties b/core/src/main/resources/hudson/PluginManager/advanced.properties index a60f0274e9af..5fe88b5809ad 100644 --- a/core/src/main/resources/hudson/PluginManager/advanced.properties +++ b/core/src/main/resources/hudson/PluginManager/advanced.properties @@ -23,3 +23,5 @@ deploytext=\ You can select a plugin file from your local system or provide a URL to install \ a plugin from outside the configured update site(s). + +proxyMovedBlurb=The Proxy configuration form has been moved to Configure System page diff --git a/core/src/main/resources/hudson/PluginManager/advanced_fr.properties b/core/src/main/resources/hudson/PluginManager/advanced_fr.properties index 70e4bf603a44..d99993b01f90 100644 --- a/core/src/main/resources/hudson/PluginManager/advanced_fr.properties +++ b/core/src/main/resources/hudson/PluginManager/advanced_fr.properties @@ -33,3 +33,4 @@ Server=Serveur User\ name=Nom d''utilisateur No\ Proxy\ Host=Pas de proxy pour Password=Mot de passe +proxyMovedBlurb=La configuration du Proxy a été déplacé ici Page du configuration du System \ No newline at end of file diff --git a/core/src/main/resources/hudson/ProxyConfigurationManager/config.jelly b/core/src/main/resources/hudson/ProxyConfigurationManager/config.jelly new file mode 100644 index 000000000000..98cfd0e1fbb0 --- /dev/null +++ b/core/src/main/resources/hudson/ProxyConfigurationManager/config.jelly @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + diff --git a/core/src/main/resources/hudson/model/Messages.properties b/core/src/main/resources/hudson/model/Messages.properties index c6e48911de7c..e0721b8fd0af 100644 --- a/core/src/main/resources/hudson/model/Messages.properties +++ b/core/src/main/resources/hudson/model/Messages.properties @@ -289,10 +289,10 @@ UpdateCenter.Status.CheckingJavaNet=Checking update center connectivity UpdateCenter.Status.Success=Success UpdateCenter.Status.UnknownHostException=\ Failed to resolve host name {0}. \ - Perhaps you need to configure HTTP proxy? + Perhaps you need to configure HTTP proxy? UpdateCenter.Status.ConnectionFailed=\ Failed to connect to {0}. \ - Perhaps you need to configure HTTP proxy? + Perhaps you need to configure HTTP proxy? UpdateCenter.init=Initialing update center UpdateCenter.CoreUpdateMonitor.DisplayName=Jenkins Update Notification diff --git a/core/src/main/resources/hudson/model/Messages_bg.properties b/core/src/main/resources/hudson/model/Messages_bg.properties index 42a23b5d8af1..b6468b07f70e 100644 --- a/core/src/main/resources/hudson/model/Messages_bg.properties +++ b/core/src/main/resources/hudson/model/Messages_bg.properties @@ -400,10 +400,10 @@ UpdateCenter.Status.Success=\ Успех UpdateCenter.Status.UnknownHostException=\ Неуспешна проверка на адреса „{0}“.\ - Вероятно трябва да настроите\ + Вероятно трябва да настроите\ сървър-посредник за HTTP. UpdateCenter.Status.ConnectionFailed=\ - Вероятно трябва да настроите\ + Вероятно трябва да настроите\ сървър-посредник за HTTP. UpdateCenter.init=\ Инициализиране на центъра за обновяване diff --git a/core/src/main/resources/hudson/model/Messages_de.properties b/core/src/main/resources/hudson/model/Messages_de.properties index 1a413b4822bb..917c6238b57e 100644 --- a/core/src/main/resources/hudson/model/Messages_de.properties +++ b/core/src/main/resources/hudson/model/Messages_de.properties @@ -291,10 +291,10 @@ UpdateCenter.Status.CheckingJavaNet=Überprüfe Zugang zu jenkins-ci.org-Server UpdateCenter.Status.Success=Erfolgreich UpdateCenter.Status.UnknownHostException=\ Hostname {0} konnte nicht aufgelöst werden. \ - Eventuell sollten Sie einen HTTP-Proxy konfigurieren? + Eventuell sollten Sie einen HTTP-Proxy konfigurieren? UpdateCenter.Status.ConnectionFailed=\ Es konnte keine Verbindung zu {0} aufgebaut werden. \ - Eventuell sollten Sie einen HTTP-Proxy konfigurieren? + Eventuell sollten Sie einen HTTP-Proxy konfigurieren? UpdateCenter.init=Initialisiere das Update Center UpdateCenter.CoreUpdateMonitor.DisplayName=Jenkins-Update-Benachrichtigungen UpdateCenter.DisplayName=Update-Center diff --git a/core/src/main/resources/hudson/model/Messages_es.properties b/core/src/main/resources/hudson/model/Messages_es.properties index 881ee8c98c7e..d57de3106e8e 100644 --- a/core/src/main/resources/hudson/model/Messages_es.properties +++ b/core/src/main/resources/hudson/model/Messages_es.properties @@ -176,10 +176,10 @@ UpdateCenter.Status.CheckingJavaNet=Probando conectividad con jenkins-ci.org UpdateCenter.Status.Success=Correcto UpdateCenter.Status.UnknownHostException=\ Nombre de servidor imposible de resolver {0}. \ - Quizás tengas que configurar to proxy + Quizás tengas que configurar to proxy UpdateCenter.Status.ConnectionFailed=\ Imposible de conectar con {0}. \ - Quizás tengas que configurar to proxy + Quizás tengas que configurar to proxy UpdateCenter.init=Inicializando centro de actualizaciones UpdateCenter.PluginCategory.builder=Plugins relacionados con la forma de ejecutar trabajos UpdateCenter.PluginCategory.buildwrapper=Plugins que añaden tareas relacionadas con la ejecución diff --git a/core/src/main/resources/hudson/model/Messages_fr.properties b/core/src/main/resources/hudson/model/Messages_fr.properties index a7b94dbac835..073805ad5139 100644 --- a/core/src/main/resources/hudson/model/Messages_fr.properties +++ b/core/src/main/resources/hudson/model/Messages_fr.properties @@ -274,10 +274,10 @@ UpdateCenter.Status.CheckingJavaNet=Vérification de la connexion à jenkins-ci. UpdateCenter.Status.Success=Succès UpdateCenter.Status.UnknownHostException=\ Impossible de résoudre le nom de host {0}. \ - Peut-être devez-vous configurer un proxy HTTP? + Peut-être devez-vous configurer un proxy HTTP? UpdateCenter.Status.ConnectionFailed=\ Echec lors de la connexion à {0}. \ - Peut-être devez-vous configurer le proxy HTTP. + Peut-être devez-vous configurer le proxy HTTP. UpdateCenter.init=Initialisation du centre de mise à jour UpdateCenter.CoreUpdateMonitor.DisplayName=Notification de mise à jour de Jenkins diff --git a/core/src/main/resources/hudson/model/Messages_it.properties b/core/src/main/resources/hudson/model/Messages_it.properties index 594c10afac37..23938f9ea828 100644 --- a/core/src/main/resources/hudson/model/Messages_it.properties +++ b/core/src/main/resources/hudson/model/Messages_it.properties @@ -437,11 +437,11 @@ UpdateCenter.Status.CheckingJavaNet=Controllo connettività al Centro \ aggiornamenti in corso UpdateCenter.Status.ConnectionFailed=Impossibile \ connettersi a {0}. Forse è necessario \ - configurare il proxy HTTP? + configurare il proxy HTTP? UpdateCenter.Status.Success=Operazione completata UpdateCenter.Status.UnknownHostException=Impossibile \ risolvere il nome host {0}. Forse è necessario \ - configurare il proxy HTTP? + configurare il proxy HTTP? User.IllegalFullname="{0}" è vietato come nome completo per motivi di sicurezza. User.IllegalUsername="{0}" è vietato come nome utente per motivi di sicurezza. View.ConfigurePermission.Description=Questo permesso consente agli utenti di \ diff --git a/core/src/main/resources/hudson/model/Messages_ja.properties b/core/src/main/resources/hudson/model/Messages_ja.properties index 3fc987f24017..475606108217 100644 --- a/core/src/main/resources/hudson/model/Messages_ja.properties +++ b/core/src/main/resources/hudson/model/Messages_ja.properties @@ -215,10 +215,10 @@ UpdateCenter.Status.CheckingJavaNet=jenkins-ci.orgとの接続をチェックし UpdateCenter.Status.Success=成功 UpdateCenter.Status.UnknownHostException=\ ホスト名 {0}の解決に失敗しました。 \ - たぶん、HTTPプロクシーを設定する必要があります。 + たぶん、HTTPプロクシーを設定する必要があります。 UpdateCenter.Status.ConnectionFailed=\ {0} との接続に失敗しました。 \ - たぶん、HTTPプロクシーを設定する必要があります。 + たぶん、HTTPプロクシーを設定する必要があります。 UpdateCenter.init=アップデートセンターの初期化中 UpdateCenter.PluginCategory.builder=ビルドツール UpdateCenter.PluginCategory.buildwrapper=ビルドラッパー diff --git a/core/src/main/resources/hudson/model/Messages_lt.properties b/core/src/main/resources/hudson/model/Messages_lt.properties index 60ff2702330d..3248fdb97d67 100644 --- a/core/src/main/resources/hudson/model/Messages_lt.properties +++ b/core/src/main/resources/hudson/model/Messages_lt.properties @@ -234,10 +234,10 @@ UpdateCenter.Status.CheckingJavaNet=Tikrinamas prisijungimas prie atnaujinimų c UpdateCenter.Status.Success=Sėkmė UpdateCenter.Status.UnknownHostException=\ Nepavyko išspręsti stoties pavadinimo {0}. \ - Gal jums reikia sukonfigūruoti HTTP šliuzą? + Gal jums reikia sukonfigūruoti HTTP šliuzą? UpdateCenter.Status.ConnectionFailed=\ Nepavyko prisijungti prie {0}. \ - Gal jums reikia sukonfigūruoti HTTP šliuzą? + Gal jums reikia sukonfigūruoti HTTP šliuzą? UpdateCenter.init=Inicializuojamas atnaujinimų centras UpdateCenter.PluginCategory.android=Android kūrimas UpdateCenter.PluginCategory.builder=Kūrimo įrankiai diff --git a/core/src/main/resources/hudson/model/Messages_pt_BR.properties b/core/src/main/resources/hudson/model/Messages_pt_BR.properties index c7dbe7f6adde..9643b131f2a9 100644 --- a/core/src/main/resources/hudson/model/Messages_pt_BR.properties +++ b/core/src/main/resources/hudson/model/Messages_pt_BR.properties @@ -132,7 +132,7 @@ Slave.Remote.Director.Mandatory=Diretório remoto é obrigatório Run.InProgressDuration={0} e contando UpdateCenter.Status.UnknownHostException=\ Erro ao resolver o nome do hospedeiro {0}. \ - Talvez você precise configurar um proxy HTTP? + Talvez você precise configurar um proxy HTTP? Hudson.NotUsesUTF8ToDecodeURL=não use caracteres UTF-8 nas URLs UpdateCenter.Status.CheckingInternet=Checando conexão com a Internet View.DeletePermission.Description=\ @@ -203,7 +203,7 @@ Hudson.NotANegativeNumber=Número não negativo UpdateCenter.PluginCategory.misc=Diversos UpdateCenter.Status.ConnectionFailed=\ Erro ao conectar em {0}. \ - Talvez voê precise configurar um proxy HTTP? + Talvez voê precise configurar um proxy HTTP? UpdateCenter.PluginCategory.maven=Maven UpdateCenter.PluginCategory.upload=Carregadores de artefatos Permalink.LastUnstableBuild=Última construção instável diff --git a/core/src/main/resources/hudson/model/Messages_sr.properties b/core/src/main/resources/hudson/model/Messages_sr.properties index fe5ca1b3adba..3802bd4820e8 100644 --- a/core/src/main/resources/hudson/model/Messages_sr.properties +++ b/core/src/main/resources/hudson/model/Messages_sr.properties @@ -201,9 +201,9 @@ UpdateCenter.Status.CheckingInternet=Провера везом са интерн UpdateCenter.Status.CheckingJavaNet=Провера везом са центар за aжурирање UpdateCenter.Status.Success=Успех UpdateCenter.Status.UnknownHostException=Неуспешна провера адресе {0}. \ -Можда морате поставити HTTP proxy? +Можда морате поставити HTTP proxy? UpdateCenter.Status.ConnectionFailed=Неуспешно повезивање са {0}. \ -Можда морате поставити HTTP proxy? +Можда морате поставити HTTP proxy? UpdateCenter.init=Инициализација центра за ажурирање UpdateCenter.PluginCategory.builder=Алати за изградњу UpdateCenter.PluginCategory.buildwrapper=Скрипт омотачи за изградњу diff --git a/core/src/main/resources/hudson/model/Messages_zh_TW.properties b/core/src/main/resources/hudson/model/Messages_zh_TW.properties index 04c6a60ca31e..b0a151aced77 100644 --- a/core/src/main/resources/hudson/model/Messages_zh_TW.properties +++ b/core/src/main/resources/hudson/model/Messages_zh_TW.properties @@ -214,10 +214,10 @@ UpdateCenter.Status.CheckingJavaNet=檢查是否能連到更新中心 UpdateCenter.Status.Success=成功 UpdateCenter.Status.UnknownHostException=\ 無法解析主機名稱 {0}。\ - 說不定您應該要設定 HTTP 代理伺服器? + 說不定您應該要設定 HTTP 代理伺服器? UpdateCenter.Status.ConnectionFailed=\ 無法連線到{0}。\ - 說不定您應該要設定 HTTP 代理伺服器? + 說不定您應該要設定 HTTP 代理伺服器? UpdateCenter.init=初始化更新中心 UpdateCenter.PluginCategory.builder=建置工具 UpdateCenter.PluginCategory.buildwrapper=建置包裝程式 From ee6535f13df77aa40422ae43c6ab9776e3659a56 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 4 Dec 2023 09:15:24 +0100 Subject: [PATCH 0051/1216] Update dependency sortablejs to v1.15.1 (#8741) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/war/package.json b/war/package.json index 815529d7dde1..b9308091bbca 100644 --- a/war/package.json +++ b/war/package.json @@ -54,7 +54,7 @@ "hotkeys-js": "3.12.2", "jquery": "3.7.1", "lodash": "4.17.21", - "sortablejs": "1.15.0", + "sortablejs": "1.15.1", "tippy.js": "6.3.7", "window-handle": "1.0.1" }, diff --git a/war/yarn.lock b/war/yarn.lock index 7e0937b69a6c..c56a73d4a6c5 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -4428,7 +4428,7 @@ __metadata: prettier: "npm:3.1.0" sass: "npm:1.69.5" sass-loader: "npm:13.3.2" - sortablejs: "npm:1.15.0" + sortablejs: "npm:1.15.1" style-loader: "npm:3.3.3" stylelint: "npm:15.10.2" stylelint-checkstyle-reporter: "npm:0.2.0" @@ -6629,10 +6629,10 @@ __metadata: languageName: node linkType: hard -"sortablejs@npm:1.15.0": - version: 1.15.0 - resolution: "sortablejs@npm:1.15.0" - checksum: de2e99309d6b8f5a521050c391cd3cbeeb5ac66cf91879b4212469cdcee13f6304bfacbfa183d43276deb618f40af6cb6d8a8c90ca3ba82ac28d8d5f5ef81bef +"sortablejs@npm:1.15.1": + version: 1.15.1 + resolution: "sortablejs@npm:1.15.1" + checksum: 851debae91d9f93f41ce705490999ab9fc0fa46bd08d9132647041a31bf8a3e1cd55a0629f9b16ca21879fb478b10e1ce9fa3bae61d540223ac1d3d774e300c4 languageName: node linkType: hard From dc983d0409668be74d28c91fa5dda4a1e076a78d Mon Sep 17 00:00:00 2001 From: Markus Winter Date: Mon, 4 Dec 2023 09:16:00 +0100 Subject: [PATCH 0052/1216] [JENKINS-72196] avoid wrong styling when deleting the first of 2 shell steps (#8739) move link elements to head fixes JENKINS-72196 when in a form there are repeatables that both contain a codemirror config via a textarea. When deleting the first of those it can happen that the link elements importing the css for codemirror are defined in a div that gets deleted. This effectively removes the css from the DOM tree, so that other textareas afterwards that also require the codemirror css are no longer styled properly. The Behaviour uses a high negative value for the priority so that the move of the link elements is applied before any other behaviour jumps in, e.g. hetero-list and repeatable add the elements to the dom via jelly of all things can that can be added and later remove them from the dom and keep them in memory. --- war/src/main/webapp/scripts/hudson-behavior.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/war/src/main/webapp/scripts/hudson-behavior.js b/war/src/main/webapp/scripts/hudson-behavior.js index 7284a14e2ba1..678260fdad17 100644 --- a/war/src/main/webapp/scripts/hudson-behavior.js +++ b/war/src/main/webapp/scripts/hudson-behavior.js @@ -1214,6 +1214,13 @@ function rowvgStartEachRow(recursive, f) { } (function () { + // This moves all link elements to the head + // fixes JENKINS-72196 when a link is inside a div of a repeatable and the + // div is deleted then the styling is lost for divs afterwards. + Behaviour.specify("body link", "move-css-to-head", -9999, function (link) { + document.head.appendChild(link); + }); + var p = 20; Behaviour.specify("TABLE.sortable", "table-sortable", ++p, function (e) { // sortable table From c637d4168ef41170908ddf0f967d70af1e8e5c4e Mon Sep 17 00:00:00 2001 From: Markus Winter Date: Mon, 4 Dec 2023 09:16:10 +0100 Subject: [PATCH 0053/1216] make displayname of HistoryWidget configurable for alternate text (#8740) make displayname of HistoryWidget configurable for use with customizable-build-now plugin make the placeholder for the history filter less specific, the title already explains what this shows so just `Filter...` should be enough. --- core/src/main/java/hudson/widgets/HistoryWidget.java | 9 ++++++++- .../hudson/widgets/HistoryWidget/index.properties | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/hudson/widgets/HistoryWidget.java b/core/src/main/java/hudson/widgets/HistoryWidget.java index c7a7f12a1d76..1c291d1a48ff 100644 --- a/core/src/main/java/hudson/widgets/HistoryWidget.java +++ b/core/src/main/java/hudson/widgets/HistoryWidget.java @@ -32,6 +32,7 @@ import hudson.model.ModelObject; import hudson.model.Queue; import hudson.model.Run; +import hudson.util.AlternativeUiTextProvider; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; @@ -61,6 +62,12 @@ * @author Kohsuke Kawaguchi */ public class HistoryWidget extends Widget { + + /** + * Replaceable title for describing the kind of tasks this history shows. Defaults to "Build History". + */ + public static final AlternativeUiTextProvider.Message> DISPLAY_NAME = new AlternativeUiTextProvider.Message<>(); + /** * The given data model of records. Newer ones first. */ @@ -115,7 +122,7 @@ protected String getOwnerUrl() { * Title of the widget. */ public String getDisplayName() { - return Messages.BuildHistoryWidget_DisplayName(); + return AlternativeUiTextProvider.get(DISPLAY_NAME, this, Messages.BuildHistoryWidget_DisplayName()); } @Override diff --git a/core/src/main/resources/hudson/widgets/HistoryWidget/index.properties b/core/src/main/resources/hudson/widgets/HistoryWidget/index.properties index 9d22534adab2..160484221909 100644 --- a/core/src/main/resources/hudson/widgets/HistoryWidget/index.properties +++ b/core/src/main/resources/hudson/widgets/HistoryWidget/index.properties @@ -1 +1 @@ -find=Filter builds... +find=Filter... From f63de705fd3e287dbe07d646f11bf03b00340515 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Dec 2023 10:37:46 -0800 Subject: [PATCH 0054/1216] Bump org.jenkins-ci.main:jenkins-test-harness from 2115.v0d2b_4a_a_e80f8 to 2116.v25a_e7e33f4b_2 (#8731) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index f651f56ba0b6..e4651997477a 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -121,7 +121,7 @@ THE SOFTWARE. ${project.groupId} jenkins-test-harness - 2115.v0d2b_4a_a_e80f8 + 2116.v25a_e7e33f4b_2 test From 0d537d43bde40d91dfa888e2191f2570551be354 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Dec 2023 12:26:52 -0800 Subject: [PATCH 0055/1216] Bump org.jenkins-ci.main:jenkins-test-harness from 2116.v25a_e7e33f4b_2 to 2118.v03a_2d036b_6c9 (#8746) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index e4651997477a..6b3c265fe230 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -121,7 +121,7 @@ THE SOFTWARE. ${project.groupId} jenkins-test-harness - 2116.v25a_e7e33f4b_2 + 2118.v03a_2d036b_6c9 test From 62d22f3277a3c4a7cd0b74b6ffe1bfc2e5775ed3 Mon Sep 17 00:00:00 2001 From: James Nord Date: Tue, 5 Dec 2023 06:27:23 +0000 Subject: [PATCH 0056/1216] do not specify anti-aliasing (#8689) specifying the anti-aliasing implies we know better than the browser (we don't). Specifiying this globally prevents the use of sub-pixel anti-aliasing where it is available and the browsers text rendering engines are these days pretty much fantastic that they should not need these hacks. and for good measure - here is an article from 10 years ago https://usabilitypost.com/2012/11/05/stop-fixing-font-smoothing/ and the mozilla doc saying do not use it on a public facing web site. https://developer.mozilla.org/en-US/docs/Web/CSS/font-smooth --- war/src/main/scss/base/_core.scss | 2 -- 1 file changed, 2 deletions(-) diff --git a/war/src/main/scss/base/_core.scss b/war/src/main/scss/base/_core.scss index 65541349fa80..ad90d35e8f55 100644 --- a/war/src/main/scss/base/_core.scss +++ b/war/src/main/scss/base/_core.scss @@ -1,8 +1,6 @@ html { height: 100%; box-sizing: border-box; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -webkit-tap-highlight-color: transparent; color: var(--text-color); } From 0f0d81b306c6452621f29bd3b0493662e12ef009 Mon Sep 17 00:00:00 2001 From: Vincent Latombe Date: Tue, 5 Dec 2023 07:27:39 +0100 Subject: [PATCH 0057/1216] Add `ExtensionList.lookupFirst` convenience method. (#8735) * Add `ExtensionList.lookupFirst` convenience method. When introducing an extension point that is meant to allow overriding a default behaviour with another implementation, generally the caller only cares about looking up only one implementation, the one with the highest ordinal. * Fix javadoc Co-authored-by: Jesse Glick --------- Co-authored-by: Jesse Glick --- core/src/main/java/hudson/ExtensionList.java | 25 ++++++++++++++++++++ test/src/test/java/lib/form/OptionTest.java | 5 ++-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/hudson/ExtensionList.java b/core/src/main/java/hudson/ExtensionList.java index 2b6866ef5a3c..202a76732bc2 100644 --- a/core/src/main/java/hudson/ExtensionList.java +++ b/core/src/main/java/hudson/ExtensionList.java @@ -459,6 +459,31 @@ public static ExtensionList create(Jenkins jenkins, Class type) { return all.get(0); } + /** + * Convenience method allowing lookup of the instance of a given type with the highest ordinal. + * Equivalent to {@code ExtensionList.lookup(type).get(0)} if there is at least one instance, + * and throws an {@link IllegalStateException} otherwise if no instance could be found. + * + * @param type The type to look up. + * @return the singleton instance of the given type in its list. + * @throws IllegalStateException if there are no instances + * + * @since TODO + */ + public static @NonNull U lookupFirst(Class type) { + var all = lookup(type); + if (!all.isEmpty()) { + return all.get(0); + } else { + if (Main.isUnitTest) { + throw new IllegalStateException("Found no instances of " + type.getName() + + " registered (possible annotation processor issue); try using `mvn clean test -Dtest=…` rather than an IDE test runner"); + } else { + throw new IllegalStateException("Found no instances of " + type.getName() + " registered"); + } + } + } + /** * Places to store static-scope legacy instances. */ diff --git a/test/src/test/java/lib/form/OptionTest.java b/test/src/test/java/lib/form/OptionTest.java index dc3cd114612c..8730cff3238f 100644 --- a/test/src/test/java/lib/form/OptionTest.java +++ b/test/src/test/java/lib/form/OptionTest.java @@ -28,6 +28,7 @@ import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertTrue; +import hudson.ExtensionList; import hudson.model.RootAction; import org.htmlunit.html.DomElement; import org.htmlunit.html.DomNodeList; @@ -216,7 +217,7 @@ private void checkJelly(int mode, String msgToInject, String bodyContainsExpected, String valueContainsExpected, boolean checkExactCharacters, boolean withValueTrue, boolean withValueFalse) throws Exception { - UsingJellyView view = j.jenkins.getExtensionList(UsingJellyView.class).get(0); + UsingJellyView view = ExtensionList.lookupFirst(UsingJellyView.class); view.setMode(mode); view.setInjection(msgToInject); @@ -242,7 +243,7 @@ private void checkGroovy(int mode, String msgToInject, String bodyContainsExpected, String valueContainsExpected, boolean checkExactCharacters, boolean withValueTrue, boolean withValueFalse) throws Exception { - UsingGroovyView view = j.jenkins.getExtensionList(UsingGroovyView.class).get(0); + UsingGroovyView view = ExtensionList.lookupFirst(UsingGroovyView.class); view.setMode(mode); view.setInjection(msgToInject); From b8344b98ec9c514e40d0e48f95957253f645be07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Le=20Meur?= <91831478+lemeurherve@users.noreply.github.com> Date: Tue, 5 Dec 2023 07:28:30 +0100 Subject: [PATCH 0058/1216] [JENKINS-72343] Accept all 2xx and 3xx status codes to validate proxy in HTTP Proxy Configuration (#8700) * Accept all 2xx and 3xx status codes validate proxy in HTTP Proxy Configuration * add status code in the response to the user --- core/src/main/java/hudson/ProxyConfiguration.java | 4 ++-- core/src/main/resources/hudson/Messages.properties | 2 +- core/src/main/resources/hudson/Messages_bg.properties | 2 +- core/src/main/resources/hudson/Messages_de.properties | 2 +- core/src/main/resources/hudson/Messages_es.properties | 2 +- core/src/main/resources/hudson/Messages_fr.properties | 2 +- core/src/main/resources/hudson/Messages_it.properties | 2 +- core/src/main/resources/hudson/Messages_ja.properties | 2 +- core/src/main/resources/hudson/Messages_pt_BR.properties | 2 +- core/src/main/resources/hudson/Messages_ru.properties | 2 +- core/src/main/resources/hudson/Messages_sr.properties | 2 +- core/src/main/resources/hudson/Messages_zh_TW.properties | 2 +- 12 files changed, 13 insertions(+), 13 deletions(-) diff --git a/core/src/main/java/hudson/ProxyConfiguration.java b/core/src/main/java/hudson/ProxyConfiguration.java index 08f7131289b2..6e54fbb0e3e1 100644 --- a/core/src/main/java/hudson/ProxyConfiguration.java +++ b/core/src/main/java/hudson/ProxyConfiguration.java @@ -576,8 +576,8 @@ public FormValidation doValidateProxy( } try { HttpResponse httpResponse = httpClient.send(httpRequest, HttpResponse.BodyHandlers.discarding()); - if (httpResponse.statusCode() == HttpURLConnection.HTTP_OK) { - return FormValidation.ok(Messages.ProxyConfiguration_Success()); + if (httpResponse.statusCode() < HttpURLConnection.HTTP_BAD_REQUEST) { + return FormValidation.ok(Messages.ProxyConfiguration_Success(httpResponse.statusCode())); } return FormValidation.error(Messages.ProxyConfiguration_FailedToConnect(testUrl, httpResponse.statusCode())); } catch (IOException e) { diff --git a/core/src/main/resources/hudson/Messages.properties b/core/src/main/resources/hudson/Messages.properties index f819794b72ed..634790b49440 100644 --- a/core/src/main/resources/hudson/Messages.properties +++ b/core/src/main/resources/hudson/Messages.properties @@ -109,7 +109,7 @@ ProxyConfiguration.TestUrlRequired=Test URL is required. ProxyConfiguration.MalformedTestUrl=Malformed Test URL {0}. ProxyConfiguration.FailedToConnectViaProxy=Failed to connect to {0}. ProxyConfiguration.FailedToConnect=Failed to connect to {0} (code {1}). -ProxyConfiguration.Success=Success +ProxyConfiguration.Success=Success (code {0}) Functions.NoExceptionDetails=No Exception details diff --git a/core/src/main/resources/hudson/Messages_bg.properties b/core/src/main/resources/hudson/Messages_bg.properties index 8e107f48482e..98b816053e44 100644 --- a/core/src/main/resources/hudson/Messages_bg.properties +++ b/core/src/main/resources/hudson/Messages_bg.properties @@ -88,7 +88,7 @@ ProxyConfiguration.FailedToConnectViaProxy=\ ProxyConfiguration.FailedToConnect=\ Неуспешна връзка към „{0}“ (код: {1}). ProxyConfiguration.Success=\ - Успех + Успех (код: {0}) Functions.NoExceptionDetails=\ Няма допълнителна информация за изключението. diff --git a/core/src/main/resources/hudson/Messages_de.properties b/core/src/main/resources/hudson/Messages_de.properties index deff47390ca7..e4068a20b58a 100644 --- a/core/src/main/resources/hudson/Messages_de.properties +++ b/core/src/main/resources/hudson/Messages_de.properties @@ -68,7 +68,7 @@ PluginWrapper.PluginWrapperAdministrativeMonitor.DisplayName=Plugin-Ladefehler ProxyConfiguration.FailedToConnectViaProxy=Konnte nicht mit {0} verbinden. ProxyConfiguration.FailedToConnect=Konnte nicht mit {0} verbinden (code {1}). ProxyConfiguration.MalformedTestUrl=Format der Test-URL ungültig -ProxyConfiguration.Success=Erfolg +ProxyConfiguration.Success=Erfolg (code {0}) ProxyConfiguration.TestUrlRequired=Test-URL muss angegeben werden. AboutJenkins.DisplayName=Über Jenkins diff --git a/core/src/main/resources/hudson/Messages_es.properties b/core/src/main/resources/hudson/Messages_es.properties index ce9b89404822..d1ae229de9bc 100644 --- a/core/src/main/resources/hudson/Messages_es.properties +++ b/core/src/main/resources/hudson/Messages_es.properties @@ -99,7 +99,7 @@ ProxyConfiguration.TestUrlRequired=Se requiere un URL de prueba. ProxyConfiguration.MalformedTestUrl=La URL de prueba está mal formada. ProxyConfiguration.FailedToConnectViaProxy=No se puede conectar a {0}. ProxyConfiguration.FailedToConnect=No se puede conectar a {0} (código {1}). -ProxyConfiguration.Success=Configurado +ProxyConfiguration.Success=Configurado (código {0}) Functions.NoExceptionDetails=No hay detalles de la excepción diff --git a/core/src/main/resources/hudson/Messages_fr.properties b/core/src/main/resources/hudson/Messages_fr.properties index a6d5e0340989..db45e76ab397 100644 --- a/core/src/main/resources/hudson/Messages_fr.properties +++ b/core/src/main/resources/hudson/Messages_fr.properties @@ -109,7 +109,7 @@ ProxyConfiguration.TestUrlRequired=Une URL de test est requise. ProxyConfiguration.MalformedTestUrl=L''URL de test {0} n''est pas correctement formée. ProxyConfiguration.FailedToConnectViaProxy=Impossible de se connecter à {0}. ProxyConfiguration.FailedToConnect=Impossible de se connecter à {0} (code {1}). -ProxyConfiguration.Success=Succès +ProxyConfiguration.Success=Succès (code {0}) Functions.NoExceptionDetails=Aucun détail concernant l''exception diff --git a/core/src/main/resources/hudson/Messages_it.properties b/core/src/main/resources/hudson/Messages_it.properties index 55611824ba4d..b929e6447cf8 100644 --- a/core/src/main/resources/hudson/Messages_it.properties +++ b/core/src/main/resources/hudson/Messages_it.properties @@ -106,7 +106,7 @@ PluginWrapper.PluginWrapperAdministrativeMonitor.DisplayName=Errore \ ProxyConfiguration.FailedToConnect=Impossibile connettersi a {0} (codice {1}). ProxyConfiguration.FailedToConnectViaProxy=Impossibile connettersi a {0}. ProxyConfiguration.MalformedTestUrl=URL di prova {0} malformato. -ProxyConfiguration.Success=Connessione riuscita +ProxyConfiguration.Success=Connessione riuscita (codice {0}) ProxyConfiguration.TestUrlRequired=È richiesto un URL di prova. TcpSlaveAgentListener.PingAgentProtocol.displayName=Protocollo ping Util.day={0} g diff --git a/core/src/main/resources/hudson/Messages_ja.properties b/core/src/main/resources/hudson/Messages_ja.properties index 640f508df11e..9844a4bca568 100644 --- a/core/src/main/resources/hudson/Messages_ja.properties +++ b/core/src/main/resources/hudson/Messages_ja.properties @@ -61,4 +61,4 @@ AboutJenkins.Description=バージョンとライセンス情報を表示しま ProxyConfiguration.TestUrlRequired=テストURLは必須です。 ProxyConfiguration.FailedToConnectViaProxy={0} に接続できませんでした。 ProxyConfiguration.FailedToConnect={0} に接続できませんでした。(コード {1}). -ProxyConfiguration.Success=成功 +ProxyConfiguration.Success=成功 (コード {0}) diff --git a/core/src/main/resources/hudson/Messages_pt_BR.properties b/core/src/main/resources/hudson/Messages_pt_BR.properties index 4ff20bbc9708..0a809578524e 100644 --- a/core/src/main/resources/hudson/Messages_pt_BR.properties +++ b/core/src/main/resources/hudson/Messages_pt_BR.properties @@ -51,7 +51,7 @@ AboutJenkins.Description=Veja a informação de versão e licença. ProxyConfiguration.TestUrlRequired=É necessário informar a URL de teste. ProxyConfiguration.FailedToConnectViaProxy=Falha ao conectar em {0}. ProxyConfiguration.FailedToConnect=Falha ao conectar em {0} (código {1}). -ProxyConfiguration.Success=Sucesso +ProxyConfiguration.Success=Sucesso (código {0}) FilePath.did_not_manage_to_validate_may_be_too_sl=Não conseguiu validar {0} (pode ser muito lento) PluginWrapper.missing=Não foi possível encontrar {0} v{1}. Para corrigir, instale v{1} ou superior. Functions.NoExceptionDetails=Sem detalhes da exception diff --git a/core/src/main/resources/hudson/Messages_ru.properties b/core/src/main/resources/hudson/Messages_ru.properties index cb66befc0413..e2f17eb05183 100644 --- a/core/src/main/resources/hudson/Messages_ru.properties +++ b/core/src/main/resources/hudson/Messages_ru.properties @@ -41,7 +41,7 @@ ProxyConfiguration.TestUrlRequired=Требуется тестовый URL ProxyConfiguration.MalformedTestUrl=Некорректный тестовый URL: {0}. ProxyConfiguration.FailedToConnectViaProxy=Не удалось подключиться к {0}. ProxyConfiguration.FailedToConnect=Не удалось подключиться к {0} (код: {1}). -ProxyConfiguration.Success=Успешно +ProxyConfiguration.Success=Успешно (код: {0}) Functions.NoExceptionDetails=Нет дополнительной информации об Исключении PluginWrapper.missing={0}, версия {1} отсутствует. Установите версию {1} или новее. PluginWrapper.failed_to_load_plugin={0}, версия {1} не удалось загрузить. diff --git a/core/src/main/resources/hudson/Messages_sr.properties b/core/src/main/resources/hudson/Messages_sr.properties index fa7cc8048839..3c266c5d67a3 100644 --- a/core/src/main/resources/hudson/Messages_sr.properties +++ b/core/src/main/resources/hudson/Messages_sr.properties @@ -31,7 +31,7 @@ ProxyConfiguration.TestUrlRequired=URL адреса за тестирање мо ProxyConfiguration.MalformedTestUrl=Неправилна тест URL адреса: {0}. ProxyConfiguration.FailedToConnectViaProxy=Успостављање везе са {0} није успело. ProxyConfiguration.FailedToConnect=Успостављање везе са {0} није успело (код: {1}). -ProxyConfiguration.Success=Успешно +ProxyConfiguration.Success=Успешно (код: {0}) Functions.NoExceptionDetails=Нема детаља о грешци PluginWrapper.missing={0}, верзија {1} не постоји. Инсталирајте верзију {1} или новије. PluginWrapper.failed_to_load_plugin=Није могло учитаи {0}, верзија {1}. diff --git a/core/src/main/resources/hudson/Messages_zh_TW.properties b/core/src/main/resources/hudson/Messages_zh_TW.properties index 872ee9ee5f66..708613e7e603 100644 --- a/core/src/main/resources/hudson/Messages_zh_TW.properties +++ b/core/src/main/resources/hudson/Messages_zh_TW.properties @@ -80,7 +80,7 @@ ProxyConfiguration.TestUrlRequired=測試 URL 為必填欄位。 ProxyConfiguration.MalformedTestUrl=測試 URL {0} 不正確。 ProxyConfiguration.FailedToConnectViaProxy=無法連線到 {0}。 ProxyConfiguration.FailedToConnect=無法連線到 {0} (代碼 {1})。 -ProxyConfiguration.Success=成功 +ProxyConfiguration.Success=成功 (代碼 {0}) Functions.NoExceptionDetails=沒有例外狀況的詳細資訊 From 17869eafc50efcf686aeb82956f4074819741286 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 5 Dec 2023 07:28:56 +0100 Subject: [PATCH 0059/1216] Update dependency eslint to v8.55.0 (#8748) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/yarn.lock | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/war/package.json b/war/package.json index b9308091bbca..5628aab0b324 100644 --- a/war/package.json +++ b/war/package.json @@ -30,7 +30,7 @@ "clean-webpack-plugin": "4.0.0", "css-loader": "6.8.1", "css-minimizer-webpack-plugin": "5.0.1", - "eslint": "8.54.0", + "eslint": "8.55.0", "eslint-config-prettier": "9.0.0", "handlebars-loader": "1.7.3", "mini-css-extract-plugin": "2.7.6", diff --git a/war/yarn.lock b/war/yarn.lock index c56a73d4a6c5..4736c61fc81d 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -1785,9 +1785,9 @@ __metadata: languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.1.3": - version: 2.1.3 - resolution: "@eslint/eslintrc@npm:2.1.3" +"@eslint/eslintrc@npm:^2.1.4": + version: 2.1.4 + resolution: "@eslint/eslintrc@npm:2.1.4" dependencies: ajv: "npm:^6.12.4" debug: "npm:^4.3.2" @@ -1798,14 +1798,14 @@ __metadata: js-yaml: "npm:^4.1.0" minimatch: "npm:^3.1.2" strip-json-comments: "npm:^3.1.1" - checksum: f4103f4346126292eb15581c5a1d12bef03410fd3719dedbdb92e1f7031d46a5a2d60de8566790445d5d4b70b75ba050876799a11f5fff8265a91ee3fa77dab0 + checksum: 32f67052b81768ae876c84569ffd562491ec5a5091b0c1e1ca1e0f3c24fb42f804952fdd0a137873bc64303ba368a71ba079a6f691cee25beee9722d94cc8573 languageName: node linkType: hard -"@eslint/js@npm:8.54.0": - version: 8.54.0 - resolution: "@eslint/js@npm:8.54.0" - checksum: d61fb4a0be6af2d8cb290121c329697664a75d6255a29926d5454fb02aeb02b87112f67fdf218d10abac42f90c570ac366126751baefc5405d0e017ed0c946c5 +"@eslint/js@npm:8.55.0": + version: 8.55.0 + resolution: "@eslint/js@npm:8.55.0" + checksum: 88ab9fc57a651becd2b32ec40a3958db27fae133b1ae77bebd733aa5bbd00a92f325bb02f20ad680d31c731fa49b22f060a4777dd52eb3e27da013d940bd978d languageName: node linkType: hard @@ -3553,14 +3553,14 @@ __metadata: languageName: node linkType: hard -"eslint@npm:8.54.0": - version: 8.54.0 - resolution: "eslint@npm:8.54.0" +"eslint@npm:8.55.0": + version: 8.55.0 + resolution: "eslint@npm:8.55.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" "@eslint-community/regexpp": "npm:^4.6.1" - "@eslint/eslintrc": "npm:^2.1.3" - "@eslint/js": "npm:8.54.0" + "@eslint/eslintrc": "npm:^2.1.4" + "@eslint/js": "npm:8.55.0" "@humanwhocodes/config-array": "npm:^0.11.13" "@humanwhocodes/module-importer": "npm:^1.0.1" "@nodelib/fs.walk": "npm:^1.2.8" @@ -3597,7 +3597,7 @@ __metadata: text-table: "npm:^0.2.0" bin: eslint: bin/eslint.js - checksum: 4f205f832bdbd0218cde374b067791f4f76d7abe8de86b2dc849c273899051126d912ebf71531ee49b8eeaa22cad77febdc8f2876698dc2a76e84a8cb976af22 + checksum: d28c0b60f19bb7d355cb8393e77b018c8f548dba3f820b799c89bb2e0c436ee26084e700c5e57e1e97e7972ec93065277849141b82e7b0c0d02c2dc1e553a2a1 languageName: node linkType: hard @@ -4413,7 +4413,7 @@ __metadata: clean-webpack-plugin: "npm:4.0.0" css-loader: "npm:6.8.1" css-minimizer-webpack-plugin: "npm:5.0.1" - eslint: "npm:8.54.0" + eslint: "npm:8.55.0" eslint-config-prettier: "npm:9.0.0" handlebars: "npm:4.7.8" handlebars-loader: "npm:1.7.3" From 9375b5d3012fa5684e7d86e69602923c9890290d Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 5 Dec 2023 13:31:24 +0000 Subject: [PATCH 0060/1216] [maven-release-plugin] prepare release jenkins-2.435 --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty10/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 616d7f77af70..8786e22ae534 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.435 jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 21aabc88e649..a91f6ce1a86f 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.435 cli diff --git a/core/pom.xml b/core/pom.xml index 45539865962a..cfec05f3d0d9 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.435 jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index 9f27c8d11cf0..d9206df40f7e 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.435 jenkins-coverage diff --git a/pom.xml b/pom.xml index e6cf069139e2..bbdb1bc958da 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.435 pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - ${scmTag} + jenkins-2.435 https://github.com/jenkinsci/jenkins diff --git a/test/pom.xml b/test/pom.xml index 6b3c265fe230..bb20fcc590ad 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.435 jenkins-test diff --git a/war/pom.xml b/war/pom.xml index af5501f7d47f..c59c5b47bba6 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.435 jenkins-war diff --git a/websocket/jetty10/pom.xml b/websocket/jetty10/pom.xml index eb4a169a59d1..05e953054451 100644 --- a/websocket/jetty10/pom.xml +++ b/websocket/jetty10/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.435 ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 77abcc3b7248..d7e0ba3f4a36 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.435 ../.. From d6f5c20409f0c05824b54f937c07c059c6bf5f9e Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 5 Dec 2023 13:31:36 +0000 Subject: [PATCH 0061/1216] [maven-release-plugin] prepare for next development iteration --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 6 +++--- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty10/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 8786e22ae534..616d7f77af70 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.435 + ${revision}${changelist} jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index a91f6ce1a86f..21aabc88e649 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.435 + ${revision}${changelist} cli diff --git a/core/pom.xml b/core/pom.xml index cfec05f3d0d9..45539865962a 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.435 + ${revision}${changelist} jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index d9206df40f7e..9f27c8d11cf0 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.435 + ${revision}${changelist} jenkins-coverage diff --git a/pom.xml b/pom.xml index bbdb1bc958da..d5e48d82d159 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.435 + ${revision}${changelist} pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - jenkins-2.435 + ${scmTag} https://github.com/jenkinsci/jenkins @@ -73,7 +73,7 @@ THE SOFTWARE. - 2.435 + 2.436 -SNAPSHOT diff --git a/test/pom.xml b/test/pom.xml index bb20fcc590ad..6b3c265fe230 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.435 + ${revision}${changelist} jenkins-test diff --git a/war/pom.xml b/war/pom.xml index c59c5b47bba6..af5501f7d47f 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.435 + ${revision}${changelist} jenkins-war diff --git a/websocket/jetty10/pom.xml b/websocket/jetty10/pom.xml index 05e953054451..eb4a169a59d1 100644 --- a/websocket/jetty10/pom.xml +++ b/websocket/jetty10/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.435 + ${revision}${changelist} ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index d7e0ba3f4a36..77abcc3b7248 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.435 + ${revision}${changelist} ../.. From 1dbfc627594aba8af12dc87af6d8d591aaaa2490 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 5 Dec 2023 10:48:09 -0800 Subject: [PATCH 0062/1216] Update dependency postcss to v8.4.32 (#8749) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/yarn.lock | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/war/package.json b/war/package.json index 5628aab0b324..98c80c17ede8 100644 --- a/war/package.json +++ b/war/package.json @@ -34,7 +34,7 @@ "eslint-config-prettier": "9.0.0", "handlebars-loader": "1.7.3", "mini-css-extract-plugin": "2.7.6", - "postcss": "8.4.31", + "postcss": "8.4.32", "postcss-loader": "7.3.3", "postcss-preset-env": "9.3.0", "postcss-scss": "4.0.9", diff --git a/war/yarn.lock b/war/yarn.lock index 4736c61fc81d..087c41898556 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -4421,7 +4421,7 @@ __metadata: jquery: "npm:3.7.1" lodash: "npm:4.17.21" mini-css-extract-plugin: "npm:2.7.6" - postcss: "npm:8.4.31" + postcss: "npm:8.4.32" postcss-loader: "npm:7.3.3" postcss-preset-env: "npm:9.3.0" postcss-scss: "npm:4.0.9" @@ -5016,12 +5016,12 @@ __metadata: languageName: node linkType: hard -"nanoid@npm:^3.3.6": - version: 3.3.6 - resolution: "nanoid@npm:3.3.6" +"nanoid@npm:^3.3.7": + version: 3.3.7 + resolution: "nanoid@npm:3.3.7" bin: nanoid: bin/nanoid.cjs - checksum: 606b355960d0fcbe3d27924c4c52ef7d47d3b57208808ece73279420d91469b01ec1dce10fae512b6d4a8c5a5432b352b228336a8b2202a6ea68e67fa348e2ee + checksum: e3fb661aa083454f40500473bb69eedb85dc160e763150b9a2c567c7e9ff560ce028a9f833123b618a6ea742e311138b591910e795614a629029e86e180660f3 languageName: node linkType: hard @@ -6124,14 +6124,14 @@ __metadata: languageName: node linkType: hard -"postcss@npm:8.4.31, postcss@npm:^8.4.21, postcss@npm:^8.4.24, postcss@npm:^8.4.25": - version: 8.4.31 - resolution: "postcss@npm:8.4.31" +"postcss@npm:8.4.32, postcss@npm:^8.4.21, postcss@npm:^8.4.24, postcss@npm:^8.4.25": + version: 8.4.32 + resolution: "postcss@npm:8.4.32" dependencies: - nanoid: "npm:^3.3.6" + nanoid: "npm:^3.3.7" picocolors: "npm:^1.0.0" source-map-js: "npm:^1.0.2" - checksum: 748b82e6e5fc34034dcf2ae88ea3d11fd09f69b6c50ecdd3b4a875cfc7cdca435c958b211e2cb52355422ab6fccb7d8f2f2923161d7a1b281029e4a913d59acf + checksum: 39308a9195fa34d4dbdd7b58a896cff0c7809f84f7a4ac1b95b68ca86c9138a395addff33075668ed3983d41b90aac05754c445237a9365eb1c3a5602ebd03ad languageName: node linkType: hard From fb3b760c458d5bad88385db5c44ac60543d88a18 Mon Sep 17 00:00:00 2001 From: Alexander Brandes Date: Tue, 5 Dec 2023 19:48:50 +0100 Subject: [PATCH 0063/1216] Fixup yarn update to 4.0.2 (#8742) --- war/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/war/pom.xml b/war/pom.xml index af5501f7d47f..2808d786b3d4 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -50,8 +50,8 @@ THE SOFTWARE. 1.22.19 - 4.0.1 - 5a9d054e67fbbae8774cd3667736fd74407ffbbb336898523ca1fe87b3fc4ee3 + 4.0.2 + 825003a0f561ad09a3b1ac4a3b3ea6207af2796d54f62a9420520915721f5186 From c49faf87a87fb6e1e446f46df7eb2eab0215a960 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Dec 2023 15:20:00 -0800 Subject: [PATCH 0064/1216] Bump io.jenkins.plugins:font-awesome-api from 6.4.2-1 to 6.5.1-1 (#8744) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index 6b3c265fe230..51cde5886405 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -67,13 +67,13 @@ THE SOFTWARE. io.jenkins.plugins commons-text-api - 1.11.0-94.v3e1f4a_926e49 + 1.11.0-95.v22a_d30ee5d36 io.jenkins.plugins font-awesome-api - 6.4.2-1 + 6.5.1-1 io.jenkins.plugins @@ -85,6 +85,11 @@ THE SOFTWARE. javax-activation-api 1.2.0-6 + + io.jenkins.plugins + plugin-util-api + 3.6.0 + org.jenkins-ci.plugins ant @@ -102,6 +107,11 @@ THE SOFTWARE. script-security 1294.v99333c047434 + + org.jenkins-ci.plugins.workflow + workflow-api + 1283.v99c10937efcb_ + org.jenkins-ci.plugins.workflow From c7e7df49f936cf07b51f9efafbb25326cbb08c98 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Dec 2023 15:20:22 -0800 Subject: [PATCH 0065/1216] Bump org.jenkins-ci.main:jenkins-test-harness from 2118.v03a_2d036b_6c9 to 2119.v453e748edd91 (#8751) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index 51cde5886405..2424b3a01bd5 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -131,7 +131,7 @@ THE SOFTWARE. ${project.groupId} jenkins-test-harness - 2118.v03a_2d036b_6c9 + 2119.v453e748edd91 test From 5cb3fa236764330e83780389fabb9f29e4beb75f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 5 Dec 2023 15:21:04 -0800 Subject: [PATCH 0066/1216] Update dependency eslint-config-prettier to v9.1.0 (#8750) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/war/package.json b/war/package.json index 98c80c17ede8..9cfa0e522b0f 100644 --- a/war/package.json +++ b/war/package.json @@ -31,7 +31,7 @@ "css-loader": "6.8.1", "css-minimizer-webpack-plugin": "5.0.1", "eslint": "8.55.0", - "eslint-config-prettier": "9.0.0", + "eslint-config-prettier": "9.1.0", "handlebars-loader": "1.7.3", "mini-css-extract-plugin": "2.7.6", "postcss": "8.4.32", diff --git a/war/yarn.lock b/war/yarn.lock index 087c41898556..241f14ff43e1 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -3515,14 +3515,14 @@ __metadata: languageName: node linkType: hard -"eslint-config-prettier@npm:9.0.0": - version: 9.0.0 - resolution: "eslint-config-prettier@npm:9.0.0" +"eslint-config-prettier@npm:9.1.0": + version: 9.1.0 + resolution: "eslint-config-prettier@npm:9.1.0" peerDependencies: eslint: ">=7.0.0" bin: eslint-config-prettier: bin/cli.js - checksum: bc1f661915845c631824178942e5d02f858fe6d0ea796f0050d63e0f681927b92696e81139dd04714c08c3e7de580fd079c66162e40070155ba79eaee78ab5d0 + checksum: 6d332694b36bc9ac6fdb18d3ca2f6ac42afa2ad61f0493e89226950a7091e38981b66bac2b47ba39d15b73fff2cd32c78b850a9cf9eed9ca9a96bfb2f3a2f10d languageName: node linkType: hard @@ -4414,7 +4414,7 @@ __metadata: css-loader: "npm:6.8.1" css-minimizer-webpack-plugin: "npm:5.0.1" eslint: "npm:8.55.0" - eslint-config-prettier: "npm:9.0.0" + eslint-config-prettier: "npm:9.1.0" handlebars: "npm:4.7.8" handlebars-loader: "npm:1.7.3" hotkeys-js: "npm:3.12.2" From 37ab66e20c7300a289fb80ef952821d5209acd7c Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Wed, 6 Dec 2023 07:27:28 -0800 Subject: [PATCH 0067/1216] Bump `tibdex/github-app-token` from 1 to 2 (#8747) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/changelog.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml index 70391d2e42dd..4b59ea80fa94 100644 --- a/.github/workflows/changelog.yml +++ b/.github/workflows/changelog.yml @@ -44,12 +44,13 @@ jobs: runs-on: ubuntu-latest if: github.repository_owner == 'jenkinsci' steps: - - uses: tibdex/github-app-token@v1 + - uses: tibdex/github-app-token@v2 id: generate-token with: app_id: ${{ secrets.JENKINS_CHANGELOG_UPDATER_APP_ID }} private_key: ${{ secrets.JENKINS_CHANGELOG_UPDATER_PRIVATE_KEY }} - repository: jenkins-infra/jenkins.io + repositories: >- + ["jenkins-infra/jenkins.io"] - name: Check out uses: actions/checkout@v4 with: From bf90ba4e66176d45cbf6f5e6d0c35c92b3fe7c46 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 6 Dec 2023 07:30:23 -0800 Subject: [PATCH 0068/1216] Bump commons-io:commons-io from 2.15.0 to 2.15.1 (#8730) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bom/pom.xml b/bom/pom.xml index 616d7f77af70..890f2264cc68 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -128,7 +128,7 @@ THE SOFTWARE. commons-io commons-io - 2.15.0 + 2.15.1 commons-jelly From 1dac7b7c76292da71c95d865df4f01fe51cd0818 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 6 Dec 2023 07:32:19 -0800 Subject: [PATCH 0069/1216] Bump commons-logging:commons-logging from 1.2 to 1.3.0 (#8732) Bumps commons-logging:commons-logging from 1.2 to 1.3.0. --- updated-dependencies: - dependency-name: commons-logging:commons-logging dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bom/pom.xml b/bom/pom.xml index 890f2264cc68..a210b72fe1c1 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -366,7 +366,7 @@ THE SOFTWARE. commons-logging commons-logging - 1.2 + 1.3.0 provided From 3273aecb70d73aa58b4bbedf3195eb3f874a8fe6 Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Wed, 6 Dec 2023 12:18:29 -0800 Subject: [PATCH 0070/1216] Bump `tibdex/github-app-token` from 1 to 2 (try 2) (#8759) --- .github/workflows/changelog.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml index 4b59ea80fa94..b1e18b9bc429 100644 --- a/.github/workflows/changelog.yml +++ b/.github/workflows/changelog.yml @@ -48,9 +48,11 @@ jobs: id: generate-token with: app_id: ${{ secrets.JENKINS_CHANGELOG_UPDATER_APP_ID }} + installation_retrieval_mode: repository + installation_retrieval_payload: jenkins-infra/jenkins.io private_key: ${{ secrets.JENKINS_CHANGELOG_UPDATER_PRIVATE_KEY }} repositories: >- - ["jenkins-infra/jenkins.io"] + ["jenkins.io"] - name: Check out uses: actions/checkout@v4 with: From dca009b286d16338b7b49100fa52adc51b494f00 Mon Sep 17 00:00:00 2001 From: Somasekhar <122535391+SomasekharSunkari@users.noreply.github.com> Date: Thu, 7 Dec 2023 01:52:19 +0530 Subject: [PATCH 0071/1216] Ssh Command modified in PrivateKeyProvider.java File in cil module (#8756) --- cli/src/test/java/hudson/cli/PrivateKeyProviderTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cli/src/test/java/hudson/cli/PrivateKeyProviderTest.java b/cli/src/test/java/hudson/cli/PrivateKeyProviderTest.java index 8d960e87a461..99586768b256 100644 --- a/cli/src/test/java/hudson/cli/PrivateKeyProviderTest.java +++ b/cli/src/test/java/hudson/cli/PrivateKeyProviderTest.java @@ -42,7 +42,7 @@ private void assertKeyPairNotNull(File file, String password) throws IOException } /** - key command: ssh-keygen -f dsa-password -t dsa -b 1024 -m PEM -p password + key command: ssh-keygen -f dsa-password -t dsa -b 1024 -m PEM -P password */ @Test public void loadKeyDSAPassword() throws IOException, GeneralSecurityException { @@ -61,7 +61,7 @@ public void loadKeyRSA() throws IOException, GeneralSecurityException { } /** - key command: ssh-keygen -f rsa-password -t rsa -b 1024 -m PEM -p password + key command: ssh-keygen -f rsa-password -t rsa -b 1024 -m PEM -P password */ @Test public void loadKeyRSAPassword() throws IOException, GeneralSecurityException { @@ -80,7 +80,7 @@ public void loadKeyOpenSSH() throws IOException, GeneralSecurityException { } /** - key command: ssh-keygen -f openssh-unsupported -t rsa -b 1024 -m PKCS8 -p password + key command: ssh-keygen -f openssh-unsupported -t rsa -b 1024 -m PKCS8 -P password */ @Test public void loadKeyOpenSSHPKCS8() throws IOException, GeneralSecurityException { From cabc8f67b9429eba47ee42e47e677623ef980398 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 6 Dec 2023 13:01:25 -0800 Subject: [PATCH 0072/1216] Bump org.jenkins-ci.main:jenkins-test-harness from 2119.v453e748edd91 to 2129.v09f309d2339c (#8757) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index 2424b3a01bd5..ffe5e884de35 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -131,7 +131,7 @@ THE SOFTWARE. ${project.groupId} jenkins-test-harness - 2119.v453e748edd91 + 2129.v09f309d2339c test From 8fbe0d39defc021dda6bf173280476dc6258a490 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Dec 2023 15:07:37 -0800 Subject: [PATCH 0073/1216] Bump com.puppycrawl.tools:checkstyle from 10.12.5 to 10.12.6 (#8760) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d5e48d82d159..eef7b86e372c 100644 --- a/pom.xml +++ b/pom.xml @@ -332,7 +332,7 @@ THE SOFTWARE. com.puppycrawl.tools checkstyle - 10.12.5 + 10.12.6 From 6f8c3fe260bc9f3f534c1803c033aef1322738d9 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Fri, 8 Dec 2023 07:45:47 -0500 Subject: [PATCH 0074/1216] Avoid `CLICommandInvoker.authorizedTo` in `QuietDownCommandTest` (#8754) --- .../java/hudson/cli/QuietDownCommandTest.java | 46 +++++++++++-------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/test/src/test/java/hudson/cli/QuietDownCommandTest.java b/test/src/test/java/hudson/cli/QuietDownCommandTest.java index 2e57ebcf8131..60932dd1e1ff 100644 --- a/test/src/test/java/hudson/cli/QuietDownCommandTest.java +++ b/test/src/test/java/hudson/cli/QuietDownCommandTest.java @@ -55,6 +55,7 @@ import org.jvnet.hudson.test.BuildWatcher; import org.jvnet.hudson.test.JenkinsRule; import org.jvnet.hudson.test.LoggerRule; +import org.jvnet.hudson.test.MockAuthorizationStrategy; /** * @author pjanouse @@ -66,6 +67,9 @@ public class QuietDownCommandTest { = new QueueTest.TestFlyweightTask(new AtomicInteger(), null); private static final String TEST_REASON = "test reason"; + private static final String VIEWER = "viewer"; + private static final String ADMIN = "admin"; + @ClassRule public static final BuildWatcher buildWatcher = new BuildWatcher(); @@ -78,22 +82,26 @@ public class QuietDownCommandTest { @Before public void setUp() { command = new CLICommandInvoker(j, "quiet-down"); + j.jenkins.setSecurityRealm(j.createDummySecurityRealm()); + j.jenkins.setAuthorizationStrategy(new MockAuthorizationStrategy(). + grant(Jenkins.ADMINISTER).everywhere().to(ADMIN). + grant(Jenkins.READ).everywhere().to(VIEWER)); } @Test public void quietDownShouldFailWithoutAdministerPermission() { final CLICommandInvoker.Result result = command - .authorizedTo(Jenkins.READ) + .asUser(VIEWER) .invoke(); assertThat(result, failedWith(6)); assertThat(result, hasNoStandardOutput()); - assertThat(result.stderr(), containsString("ERROR: user is missing the Overall/Administer permission")); + assertThat(result.stderr(), containsString("ERROR: " + VIEWER + " is missing the Overall/Administer permission")); } @Test public void quietDownShouldSuccess() { final CLICommandInvoker.Result result = command - .authorizedTo(Jenkins.READ, Jenkins.ADMINISTER) + .asUser(ADMIN) .invoke(); assertThat(result, succeededSilently()); assertJenkinsInQuietMode(); @@ -102,7 +110,7 @@ public void quietDownShouldSuccess() { @Test public void quietDownShouldSuccessWithBlock() { final CLICommandInvoker.Result result = command - .authorizedTo(Jenkins.READ, Jenkins.ADMINISTER) + .asUser(ADMIN) .invokeWithArgs("-block"); assertThat(result, succeededSilently()); assertJenkinsInQuietMode(); @@ -111,7 +119,7 @@ public void quietDownShouldSuccessWithBlock() { @Test public void quietDownShouldSuccessWithTimeout() { final CLICommandInvoker.Result result = command - .authorizedTo(Jenkins.READ, Jenkins.ADMINISTER) + .asUser(ADMIN) .invokeWithArgs("-timeout", "0"); assertThat(result, succeededSilently()); assertJenkinsInQuietMode(); @@ -120,7 +128,7 @@ public void quietDownShouldSuccessWithTimeout() { @Test public void quietDownShouldSuccessWithReason() { final CLICommandInvoker.Result result = command - .authorizedTo(Jenkins.READ, Jenkins.ADMINISTER) + .asUser(ADMIN) .invokeWithArgs("-reason", TEST_REASON); assertThat(result, succeededSilently()); assertJenkinsInQuietMode(); @@ -130,7 +138,7 @@ public void quietDownShouldSuccessWithReason() { @Test public void quietDownShouldSuccessWithBlockAndTimeout() { final CLICommandInvoker.Result result = command - .authorizedTo(Jenkins.READ, Jenkins.ADMINISTER) + .asUser(ADMIN) .invokeWithArgs("-block", "-timeout", "0"); assertThat(result, succeededSilently()); assertJenkinsInQuietMode(); @@ -139,7 +147,7 @@ public void quietDownShouldSuccessWithBlockAndTimeout() { @Test public void quietDownShouldSuccessWithBlockAndTimeoutAndReason() { final CLICommandInvoker.Result result = command - .authorizedTo(Jenkins.READ, Jenkins.ADMINISTER) + .asUser(ADMIN) .invokeWithArgs("-block", "-timeout", "0", "-reason", TEST_REASON); assertThat(result, succeededSilently()); assertJenkinsInQuietMode(); @@ -149,7 +157,7 @@ public void quietDownShouldSuccessWithBlockAndTimeoutAndReason() { @Test public void quietDownShouldFailWithEmptyTimeout() { final CLICommandInvoker.Result result = command - .authorizedTo(Jenkins.READ, Jenkins.ADMINISTER) + .asUser(ADMIN) .invokeWithArgs("-timeout"); assertThat(result, failedWith(2)); assertThat(result, hasNoStandardOutput()); @@ -161,7 +169,7 @@ public void quietDownShouldSuccessOnAlreadyQuietDownedJenkins() { j.jenkins.doQuietDown(); assertJenkinsInQuietMode(); final CLICommandInvoker.Result result = command - .authorizedTo(Jenkins.READ, Jenkins.ADMINISTER) + .asUser(ADMIN) .invoke(); assertThat(result, succeededSilently()); assertJenkinsInQuietMode(); @@ -172,7 +180,7 @@ public void quietDownShouldSuccessWithBlockOnAlreadyQuietDownedJenkins() throws j.jenkins.doQuietDown(true, 0, null, false); assertJenkinsInQuietMode(); final CLICommandInvoker.Result result = command - .authorizedTo(Jenkins.READ, Jenkins.ADMINISTER) + .asUser(ADMIN) .invokeWithArgs("-block"); assertThat(result, succeededSilently()); assertJenkinsInQuietMode(); @@ -184,7 +192,7 @@ public void quietDownShouldSuccessWithBlockAndTimeoutOnAlreadyQuietDownedJenkins assertJenkinsInQuietMode(); final long time_before = System.currentTimeMillis(); final CLICommandInvoker.Result result = command - .authorizedTo(Jenkins.READ, Jenkins.ADMINISTER) + .asUser(ADMIN) .invokeWithArgs("-block", "-timeout", "20000"); assertThat(result, succeededSilently()); assertThat(System.currentTimeMillis() < time_before + 20000, equalTo(true)); @@ -202,7 +210,7 @@ public void quietDownShouldSuccessAndRunningExecutor() throws Exception { final FreeStyleBuild build = OnlineNodeCommandTest.startBlockingAndFinishingBuild(project, finish); final CLICommandInvoker.Result result = command - .authorizedTo(Jenkins.READ, Jenkins.ADMINISTER) + .asUser(ADMIN) .invoke(); assertThat(result, succeededSilently()); assertJenkinsInQuietMode(); @@ -230,7 +238,7 @@ public void quietDownShouldSuccessWithBlockAndRunningExecutor() throws Exception assertJenkinsNotInQuietMode(); beforeCli.signal(); final CLICommandInvoker.Result result = command - .authorizedTo(Jenkins.READ, Jenkins.ADMINISTER) + .asUser(ADMIN) .invokeWithArgs("-block"); fail("Should never return from previous CLI call!"); return null; @@ -271,7 +279,7 @@ public void quietDownShouldSuccessWithBlockAndZeroTimeoutAndRunningExecutor() th assertJenkinsNotInQuietMode(); beforeCli.signal(); final CLICommandInvoker.Result result = command - .authorizedTo(Jenkins.READ, Jenkins.ADMINISTER) + .asUser(ADMIN) .invokeWithArgs("-block", "-timeout", "0"); fail("Should never return from previous CLI call!"); return null; @@ -313,7 +321,7 @@ public void quietDownShouldSuccessWithBlockPlusExpiredTimeoutAndRunningExecutor( final long time_before = System.currentTimeMillis(); beforeCli.signal(); final CLICommandInvoker.Result result = command - .authorizedTo(Jenkins.READ, Jenkins.ADMINISTER) + .asUser(ADMIN) .invokeWithArgs("-block", "-timeout", Integer.toString(TIMEOUT)); assertThat(result, succeededSilently()); assertThat(System.currentTimeMillis() > time_before + TIMEOUT, equalTo(true)); @@ -353,7 +361,7 @@ public void quietDownShouldSuccessWithBlockPlusNonExpiredTimeoutAndRunningExecut assertJenkinsNotInQuietMode(); beforeCli.signal(); final CLICommandInvoker.Result result = command - .authorizedTo(Jenkins.READ, Jenkins.ADMINISTER) + .asUser(ADMIN) .invokeWithArgs("-block", "-timeout", Integer.toString(2 * TIMEOUT)); fail("Blocking call shouldn't finish, should be killed by called thread!"); return null; @@ -397,7 +405,7 @@ public void quietDownShouldSuccessWithBlockAndFinishingExecutor() throws Excepti final long time_before = System.currentTimeMillis(); beforeCli.signal(); final CLICommandInvoker.Result result = command - .authorizedTo(Jenkins.READ, Jenkins.ADMINISTER) + .asUser(ADMIN) .invokeWithArgs("-block"); assertThat(result, succeededSilently()); assertThat(System.currentTimeMillis() > time_before + 1000, equalTo(true)); @@ -437,7 +445,7 @@ public void quietDownShouldSuccessWithBlockAndNonExpiredTimeoutAndFinishingExecu final long time_before = System.currentTimeMillis(); beforeCli.signal(); final CLICommandInvoker.Result result = command - .authorizedTo(Jenkins.READ, Jenkins.ADMINISTER) + .asUser(ADMIN) .invokeWithArgs("-block", "-timeout", Integer.toString(TIMEOUT)); assertThat(result, succeededSilently()); assertThat(System.currentTimeMillis() > time_before + 1000, equalTo(true)); From 85c1f8ddf228b1def6a8251b8d13512209552b2f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 8 Dec 2023 17:13:54 -0800 Subject: [PATCH 0075/1216] Bump org.jenkins-ci.plugins:credentials from 1309.v8835d63eb_d8a_ to 1311.vcf0a_900b_37c2 (#8764) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index ffe5e884de35..0ffbfe5a1469 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -206,7 +206,7 @@ THE SOFTWARE. org.jenkins-ci.plugins credentials - 1309.v8835d63eb_d8a_ + 1311.vcf0a_900b_37c2 test From f9a777bc682963de4640303b2f28ac488f9b93ef Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Sat, 9 Dec 2023 04:25:15 -0500 Subject: [PATCH 0076/1216] Class loading deadlock between `PermalinkProjectAction.Permalink` & `PeepholePermalink` (#8736) * Class loading deadlock between `PermalinkProjectAction` & `PeepholePermalink` * Checkstyle * Clearer reproducer * Do not let `Permalink` refer to its subclass `PeepholePermalink` in its static initializer * Cleaner test * Checkstyle * Maybe we should not run `initialized` from `Job.` either --- core/src/main/java/hudson/model/Job.java | 14 +- .../hudson/model/PermalinkProjectAction.java | 118 +++------------ .../java/jenkins/model/PeepholePermalink.java | 143 ++++++++++++++++++ .../jenkins/model/PeepholePermalinkTest.java | 65 ++++++++ 4 files changed, 234 insertions(+), 106 deletions(-) create mode 100644 core/src/test/java/jenkins/model/PeepholePermalinkTest.java diff --git a/core/src/main/java/hudson/model/Job.java b/core/src/main/java/hudson/model/Job.java index c40eee681de3..ab32752704be 100644 --- a/core/src/main/java/hudson/model/Job.java +++ b/core/src/main/java/hudson/model/Job.java @@ -92,6 +92,7 @@ import jenkins.model.Jenkins; import jenkins.model.JenkinsLocationConfiguration; import jenkins.model.ModelObjectWithChildren; +import jenkins.model.PeepholePermalink; import jenkins.model.ProjectNamingStrategy; import jenkins.model.RunIdMigrator; import jenkins.model.lazy.LazyBuildMixIn; @@ -941,7 +942,7 @@ public RunT getFirstBuild() { @Exported @QuickSilver public RunT getLastSuccessfulBuild() { - return (RunT) Permalink.LAST_SUCCESSFUL_BUILD.resolve(this); + return (RunT) PeepholePermalink.LAST_SUCCESSFUL_BUILD.resolve(this); } /** @@ -951,7 +952,7 @@ public RunT getLastSuccessfulBuild() { @Exported @QuickSilver public RunT getLastUnsuccessfulBuild() { - return (RunT) Permalink.LAST_UNSUCCESSFUL_BUILD.resolve(this); + return (RunT) PeepholePermalink.LAST_UNSUCCESSFUL_BUILD.resolve(this); } /** @@ -961,7 +962,7 @@ public RunT getLastUnsuccessfulBuild() { @Exported @QuickSilver public RunT getLastUnstableBuild() { - return (RunT) Permalink.LAST_UNSTABLE_BUILD.resolve(this); + return (RunT) PeepholePermalink.LAST_UNSTABLE_BUILD.resolve(this); } /** @@ -971,7 +972,7 @@ public RunT getLastUnstableBuild() { @Exported @QuickSilver public RunT getLastStableBuild() { - return (RunT) Permalink.LAST_STABLE_BUILD.resolve(this); + return (RunT) PeepholePermalink.LAST_STABLE_BUILD.resolve(this); } /** @@ -980,7 +981,7 @@ public RunT getLastStableBuild() { @Exported @QuickSilver public RunT getLastFailedBuild() { - return (RunT) Permalink.LAST_FAILED_BUILD.resolve(this); + return (RunT) PeepholePermalink.LAST_FAILED_BUILD.resolve(this); } /** @@ -989,7 +990,7 @@ public RunT getLastFailedBuild() { @Exported @QuickSilver public RunT getLastCompletedBuild() { - return (RunT) Permalink.LAST_COMPLETED_BUILD.resolve(this); + return (RunT) PeepholePermalink.LAST_COMPLETED_BUILD.resolve(this); } /** @@ -1067,6 +1068,7 @@ public long getEstimatedDuration() { * @return never null */ public PermalinkList getPermalinks() { + PeepholePermalink.initialized(); // TODO: shall we cache this? PermalinkList permalinks = new PermalinkList(Permalink.BUILTIN); for (PermalinkProjectAction ppa : getActions(PermalinkProjectAction.class)) { diff --git a/core/src/main/java/hudson/model/PermalinkProjectAction.java b/core/src/main/java/hudson/model/PermalinkProjectAction.java index 9013ddd5efc5..4ab5478243c3 100644 --- a/core/src/main/java/hudson/model/PermalinkProjectAction.java +++ b/core/src/main/java/hudson/model/PermalinkProjectAction.java @@ -25,7 +25,6 @@ package hudson.model; import edu.umd.cs.findbugs.annotations.CheckForNull; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; import jenkins.model.PeepholePermalink; @@ -111,114 +110,33 @@ public String getId() { return job.getLastBuild(); } }; - public static final Permalink LAST_STABLE_BUILD = new PeepholePermalink() { - @Override - public String getDisplayName() { - return Messages.Permalink_LastStableBuild(); - } - - @Override - public String getId() { - return "lastStableBuild"; - } - - @Override - public boolean apply(Run run) { - return !run.isBuilding() && run.getResult() == Result.SUCCESS; - } - }; - public static final Permalink LAST_SUCCESSFUL_BUILD = new PeepholePermalink() { - @Override - public String getDisplayName() { - return Messages.Permalink_LastSuccessfulBuild(); - } - - @Override - public String getId() { - return "lastSuccessfulBuild"; - } - - @SuppressFBWarnings(value = "NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE", justification = "TODO needs triage") - @Override - public boolean apply(Run run) { - return !run.isBuilding() && run.getResult().isBetterOrEqualTo(Result.UNSTABLE); - } - }; - public static final Permalink LAST_FAILED_BUILD = new PeepholePermalink() { - @Override - public String getDisplayName() { - return Messages.Permalink_LastFailedBuild(); - } - - @Override - public String getId() { - return "lastFailedBuild"; - } - - @Override - public boolean apply(Run run) { - return !run.isBuilding() && run.getResult() == Result.FAILURE; - } - }; - public static final Permalink LAST_UNSTABLE_BUILD = new PeepholePermalink() { - @Override - public String getDisplayName() { - return Messages.Permalink_LastUnstableBuild(); - } + /** @deprecated use {@link PeepholePermalink#LAST_STABLE_BUILD} */ + @Deprecated + public static Permalink LAST_STABLE_BUILD; - @Override - public String getId() { - return "lastUnstableBuild"; - } + /** @deprecated use {@link PeepholePermalink#LAST_SUCCESSFUL_BUILD} */ + @Deprecated + public static Permalink LAST_SUCCESSFUL_BUILD; - @Override - public boolean apply(Run run) { - return !run.isBuilding() && run.getResult() == Result.UNSTABLE; - } - }; + /** @deprecated use {@link PeepholePermalink#LAST_FAILED_BUILD} */ + @Deprecated + public static Permalink LAST_FAILED_BUILD; - public static final Permalink LAST_UNSUCCESSFUL_BUILD = new PeepholePermalink() { - @Override - public String getDisplayName() { - return Messages.Permalink_LastUnsuccessfulBuild(); - } + /** @deprecated use {@link PeepholePermalink#LAST_UNSTABLE_BUILD} */ + @Deprecated + public static Permalink LAST_UNSTABLE_BUILD; - @Override - public String getId() { - return "lastUnsuccessfulBuild"; - } - - @Override - public boolean apply(Run run) { - return !run.isBuilding() && run.getResult() != Result.SUCCESS; - } - }; - public static final Permalink LAST_COMPLETED_BUILD = new PeepholePermalink() { - @Override - public String getDisplayName() { - return Messages.Permalink_LastCompletedBuild(); - } + /** @deprecated use {@link PeepholePermalink#LAST_UNSUCCESSFUL_BUILD} */ + @Deprecated + public static Permalink LAST_UNSUCCESSFUL_BUILD; - @Override - public String getId() { - return "lastCompletedBuild"; - } - - @Override - public boolean apply(Run run) { - return !run.isBuilding(); - } - }; + /** @deprecated use {@link PeepholePermalink#LAST_COMPLETED_BUILD} */ + @Deprecated + public static Permalink LAST_COMPLETED_BUILD; static { BUILTIN.add(LAST_BUILD); - BUILTIN.add(LAST_STABLE_BUILD); - BUILTIN.add(LAST_SUCCESSFUL_BUILD); - BUILTIN.add(LAST_FAILED_BUILD); - BUILTIN.add(LAST_UNSTABLE_BUILD); - BUILTIN.add(LAST_UNSUCCESSFUL_BUILD); - BUILTIN.add(LAST_COMPLETED_BUILD); } } } diff --git a/core/src/main/java/jenkins/model/PeepholePermalink.java b/core/src/main/java/jenkins/model/PeepholePermalink.java index 256dc438d4ae..40297b6e406c 100644 --- a/core/src/main/java/jenkins/model/PeepholePermalink.java +++ b/core/src/main/java/jenkins/model/PeepholePermalink.java @@ -2,10 +2,12 @@ import edu.umd.cs.findbugs.annotations.CheckForNull; import edu.umd.cs.findbugs.annotations.NonNull; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import hudson.Extension; import hudson.Util; import hudson.model.Job; import hudson.model.PermalinkProjectAction.Permalink; +import hudson.model.Result; import hudson.model.Run; import hudson.model.TaskListener; import hudson.model.listeners.RunListener; @@ -21,6 +23,8 @@ import java.util.logging.Level; import java.util.logging.Logger; import java.util.stream.Stream; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.NoExternalUse; /** * Convenient base implementation for {@link Permalink}s that satisfy @@ -237,6 +241,145 @@ public void onCompleted(Run run, @NonNull TaskListener listener) { } } + /** + * @since TODO + */ + public static final Permalink LAST_STABLE_BUILD = new PeepholePermalink() { + @Override + public String getDisplayName() { + return hudson.model.Messages.Permalink_LastStableBuild(); + } + + @Override + public String getId() { + return "lastStableBuild"; + } + + @Override + public boolean apply(Run run) { + return !run.isBuilding() && run.getResult() == Result.SUCCESS; + } + }; + + /** + * @since TODO + */ + public static final Permalink LAST_SUCCESSFUL_BUILD = new PeepholePermalink() { + @Override + public String getDisplayName() { + return hudson.model.Messages.Permalink_LastSuccessfulBuild(); + } + + @Override + public String getId() { + return "lastSuccessfulBuild"; + } + + @SuppressFBWarnings(value = "NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE", justification = "TODO needs triage") + @Override + public boolean apply(Run run) { + return !run.isBuilding() && run.getResult().isBetterOrEqualTo(Result.UNSTABLE); + } + }; + + /** + * @since TODO + */ + public static final Permalink LAST_FAILED_BUILD = new PeepholePermalink() { + @Override + public String getDisplayName() { + return hudson.model.Messages.Permalink_LastFailedBuild(); + } + + @Override + public String getId() { + return "lastFailedBuild"; + } + + @Override + public boolean apply(Run run) { + return !run.isBuilding() && run.getResult() == Result.FAILURE; + } + }; + + /** + * @since TODO + */ + public static final Permalink LAST_UNSTABLE_BUILD = new PeepholePermalink() { + @Override + public String getDisplayName() { + return hudson.model.Messages.Permalink_LastUnstableBuild(); + } + + @Override + public String getId() { + return "lastUnstableBuild"; + } + + @Override + public boolean apply(Run run) { + return !run.isBuilding() && run.getResult() == Result.UNSTABLE; + } + }; + + /** + * @since TODO + */ + public static final Permalink LAST_UNSUCCESSFUL_BUILD = new PeepholePermalink() { + @Override + public String getDisplayName() { + return hudson.model.Messages.Permalink_LastUnsuccessfulBuild(); + } + + @Override + public String getId() { + return "lastUnsuccessfulBuild"; + } + + @Override + public boolean apply(Run run) { + return !run.isBuilding() && run.getResult() != Result.SUCCESS; + } + }; + + /** + * @since TODO + */ + public static final Permalink LAST_COMPLETED_BUILD = new PeepholePermalink() { + @Override + public String getDisplayName() { + return hudson.model.Messages.Permalink_LastCompletedBuild(); + } + + @Override + public String getId() { + return "lastCompletedBuild"; + } + + @Override + public boolean apply(Run run) { + return !run.isBuilding(); + } + }; + + static { + BUILTIN.add(LAST_STABLE_BUILD); + BUILTIN.add(LAST_SUCCESSFUL_BUILD); + BUILTIN.add(LAST_FAILED_BUILD); + BUILTIN.add(LAST_UNSTABLE_BUILD); + BUILTIN.add(LAST_UNSUCCESSFUL_BUILD); + BUILTIN.add(LAST_COMPLETED_BUILD); + Permalink.LAST_STABLE_BUILD = LAST_STABLE_BUILD; + Permalink.LAST_SUCCESSFUL_BUILD = LAST_SUCCESSFUL_BUILD; + Permalink.LAST_FAILED_BUILD = LAST_FAILED_BUILD; + Permalink.LAST_UNSTABLE_BUILD = LAST_UNSTABLE_BUILD; + Permalink.LAST_UNSUCCESSFUL_BUILD = LAST_UNSUCCESSFUL_BUILD; + Permalink.LAST_COMPLETED_BUILD = LAST_COMPLETED_BUILD; + } + + @Restricted(NoExternalUse.class) + public static void initialized() {} + private static final int RESOLVES_TO_NONE = -1; private static final Logger LOGGER = Logger.getLogger(PeepholePermalink.class.getName()); diff --git a/core/src/test/java/jenkins/model/PeepholePermalinkTest.java b/core/src/test/java/jenkins/model/PeepholePermalinkTest.java new file mode 100644 index 000000000000..8a2cb059b230 --- /dev/null +++ b/core/src/test/java/jenkins/model/PeepholePermalinkTest.java @@ -0,0 +1,65 @@ +/* + * The MIT License + * + * Copyright 2023 CloudBees, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package jenkins.model; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.containsInAnyOrder; + +import hudson.model.PermalinkProjectAction; +import hudson.model.Run; +import java.util.stream.Collectors; +import org.junit.Test; + +public final class PeepholePermalinkTest { + + @Test + public void classLoadingDeadlock() throws Exception { + PeepholePermalink.initialized(); + Thread t = new Thread(() -> { + assertThat("successfully loaded permalinks", + PermalinkProjectAction.Permalink.BUILTIN.stream().map(p -> p.getId()).collect(Collectors.toSet()), + containsInAnyOrder("lastBuild", "lastStableBuild", "lastSuccessfulBuild", "lastFailedBuild", "lastUnstableBuild", "lastUnsuccessfulBuild", "lastCompletedBuild")); + }); + t.start(); + new PeepholePermalink() { + @Override + public boolean apply(Run run) { + throw new UnsupportedOperationException(); + } + + @Override + public String getDisplayName() { + throw new UnsupportedOperationException(); + } + + @Override + public String getId() { + throw new UnsupportedOperationException(); + } + }; + t.join(); + } + +} From f1e29df3859ea22520e5db62899fb622dbb92102 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 13:02:43 -0800 Subject: [PATCH 0077/1216] Bump net.java.dev.jna:jna from 5.13.0 to 5.14.0 (#8770) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bom/pom.xml b/bom/pom.xml index a210b72fe1c1..28a945e2321e 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -163,7 +163,7 @@ THE SOFTWARE. net.java.dev.jna jna - 5.13.0 + 5.14.0 net.java.sezpoz From f885f927183d90bb4180a4a8f569fa039b3a6e5d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 15:27:22 -0800 Subject: [PATCH 0078/1216] Bump org.jenkins-ci:jenkins from 1.107 to 1.108 (#8772) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index eef7b86e372c..ab4013b25833 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci jenkins - 1.107 + 1.108 From 2952e7bcafa07a844a645a59be4297f543fd2cbb Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 12 Dec 2023 13:08:25 +0000 Subject: [PATCH 0079/1216] [maven-release-plugin] prepare release jenkins-2.436 --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty10/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 28a945e2321e..7bffa72fbf50 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.436 jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 21aabc88e649..08506ff5247d 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.436 cli diff --git a/core/pom.xml b/core/pom.xml index 45539865962a..937ae9f1d0c9 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.436 jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index 9f27c8d11cf0..7c23ecadc4fc 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.436 jenkins-coverage diff --git a/pom.xml b/pom.xml index ab4013b25833..5c990ed5045b 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.436 pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - ${scmTag} + jenkins-2.436 https://github.com/jenkinsci/jenkins diff --git a/test/pom.xml b/test/pom.xml index 0ffbfe5a1469..5fee88923f30 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.436 jenkins-test diff --git a/war/pom.xml b/war/pom.xml index 2808d786b3d4..b0a4e0212e76 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.436 jenkins-war diff --git a/websocket/jetty10/pom.xml b/websocket/jetty10/pom.xml index eb4a169a59d1..f7ac7c6241ff 100644 --- a/websocket/jetty10/pom.xml +++ b/websocket/jetty10/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.436 ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 77abcc3b7248..dbdfdea79bdb 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.436 ../.. From 24dd6c2180e0ba9544914a297da8e911ba61b9ba Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 12 Dec 2023 13:08:37 +0000 Subject: [PATCH 0080/1216] [maven-release-plugin] prepare for next development iteration --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 6 +++--- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty10/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 7bffa72fbf50..28a945e2321e 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.436 + ${revision}${changelist} jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 08506ff5247d..21aabc88e649 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.436 + ${revision}${changelist} cli diff --git a/core/pom.xml b/core/pom.xml index 937ae9f1d0c9..45539865962a 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.436 + ${revision}${changelist} jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index 7c23ecadc4fc..9f27c8d11cf0 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.436 + ${revision}${changelist} jenkins-coverage diff --git a/pom.xml b/pom.xml index 5c990ed5045b..01ccb41a6627 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.436 + ${revision}${changelist} pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - jenkins-2.436 + ${scmTag} https://github.com/jenkinsci/jenkins @@ -73,7 +73,7 @@ THE SOFTWARE. - 2.436 + 2.437 -SNAPSHOT diff --git a/test/pom.xml b/test/pom.xml index 5fee88923f30..0ffbfe5a1469 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.436 + ${revision}${changelist} jenkins-test diff --git a/war/pom.xml b/war/pom.xml index b0a4e0212e76..2808d786b3d4 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.436 + ${revision}${changelist} jenkins-war diff --git a/websocket/jetty10/pom.xml b/websocket/jetty10/pom.xml index f7ac7c6241ff..eb4a169a59d1 100644 --- a/websocket/jetty10/pom.xml +++ b/websocket/jetty10/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.436 + ${revision}${changelist} ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index dbdfdea79bdb..77abcc3b7248 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.436 + ${revision}${changelist} ../.. From 05037a087ffc751e064710c207ad6b26c51d4a38 Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Wed, 13 Dec 2023 11:10:02 -0800 Subject: [PATCH 0081/1216] Print deprecation warning when using `-jnlpUrl` (#8773) --- core/src/main/java/hudson/slaves/SlaveComputer.java | 6 ++++++ pom.xml | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/slaves/SlaveComputer.java b/core/src/main/java/hudson/slaves/SlaveComputer.java index 1633536633b0..bc9922180f39 100644 --- a/core/src/main/java/hudson/slaves/SlaveComputer.java +++ b/core/src/main/java/hudson/slaves/SlaveComputer.java @@ -877,6 +877,12 @@ public HttpResponse doSlaveAgentJnlp(StaplerRequest req, StaplerResponse res) { @WebMethod(name = "jenkins-agent.jnlp") public HttpResponse doJenkinsAgentJnlp(StaplerRequest req, StaplerResponse res) { + LOGGER.log( + Level.WARNING, + "Agent \"" + getName() + + "\" is connecting with the \"-jnlpUrl\" argument, which is deprecated." + + " Use \"-url\" and \"-name\" instead, potentially also passing in" + + " \"-webSocket\", \"-tunnel\", and/or work directory options as needed."); return new EncryptedSlaveAgentJnlpFile(this, "jenkins-agent.jnlp.jelly", getName(), CONNECT); } diff --git a/pom.xml b/pom.xml index 01ccb41a6627..03014fa4fb2e 100644 --- a/pom.xml +++ b/pom.xml @@ -86,7 +86,7 @@ THE SOFTWARE. https://www.jenkins.io/changelog - 3192.v713e3b_039fb_e + 3198.v03a_401881f3e 4.13 From 6a2d94bfbe9fca4d020f513025100b66872a1877 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Wed, 13 Dec 2023 14:10:29 -0500 Subject: [PATCH 0082/1216] Simplifying `JNLPLauncher` (#8762) --- core/src/main/java/hudson/model/Slave.java | 3 +- .../main/java/hudson/slaves/JNLPLauncher.java | 100 +++++++----------- .../slaves/RemotingWorkDirSettings.java | 15 +-- .../hudson/slaves/JNLPLauncher/config.jelly | 7 +- .../slaves/JNLPLauncher/config.properties | 4 + .../hudson/slaves/JNLPLauncher/main.jelly | 52 ++++----- .../slaves/JNLPLauncher/main.properties | 19 +++- .../slaves/JNLPLauncher/main_bg.properties | 2 - .../slaves/JNLPLauncher/main_de.properties | 1 - .../slaves/JNLPLauncher/main_es.properties | 1 - .../slaves/JNLPLauncher/main_it.properties | 2 - .../slaves/JNLPLauncher/main_pt_BR.properties | 3 +- .../slaves/JNLPLauncher/main_sr.properties | 1 - .../hudson/slaves/Messages.properties | 4 - .../hudson/slaves/Messages_pt_BR.properties | 6 -- .../hudson/slaves/Messages_ru.properties | 6 -- .../hudson/slaves/JNLPLauncherRealTest.java | 3 +- .../java/hudson/slaves/JNLPLauncherTest.java | 6 +- .../hudson/tools/InstallerTranslatorTest.java | 2 +- 19 files changed, 102 insertions(+), 135 deletions(-) create mode 100644 core/src/main/resources/hudson/slaves/JNLPLauncher/config.properties diff --git a/core/src/main/java/hudson/model/Slave.java b/core/src/main/java/hudson/model/Slave.java index 507752378996..a7a602d436f0 100644 --- a/core/src/main/java/hudson/model/Slave.java +++ b/core/src/main/java/hudson/model/Slave.java @@ -245,8 +245,7 @@ public ComputerLauncher getLauncher() { LOGGER.log(Level.WARNING, "could not update historical agentCommand setting to CommandLauncher", x); } } - // Default launcher does not use Work Directory - return launcher == null ? new JNLPLauncher(false) : launcher; + return launcher == null ? new JNLPLauncher() : launcher; } public void setLauncher(ComputerLauncher launcher) { diff --git a/core/src/main/java/hudson/slaves/JNLPLauncher.java b/core/src/main/java/hudson/slaves/JNLPLauncher.java index 917097d8267b..3e11407ef6ba 100644 --- a/core/src/main/java/hudson/slaves/JNLPLauncher.java +++ b/core/src/main/java/hudson/slaves/JNLPLauncher.java @@ -34,7 +34,6 @@ import hudson.model.Computer; import hudson.model.Descriptor; import hudson.model.TaskListener; -import hudson.util.FormValidation; import jenkins.model.Jenkins; import jenkins.model.identity.InstanceIdentityProvider; import jenkins.slaves.RemotingWorkDirSettings; @@ -43,10 +42,10 @@ import org.apache.commons.lang.StringUtils; import org.jenkinsci.Symbol; import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.DoNotUse; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.DataBoundSetter; -import org.kohsuke.stapler.QueryParameter; /** * {@link ComputerLauncher} via inbound connections. @@ -56,18 +55,11 @@ */ public class JNLPLauncher extends ComputerLauncher { /** - * If the agent needs to tunnel the connection to the controller, - * specify the "host:port" here. This can include the special - * syntax "host:" and ":port" to indicate the default host/port - * shall be used. - * - *

- * Null if no tunneling is necessary. - * - * @since 1.250 + * Deprecated (only used with deprecated {@code -jnlpUrl} mode), but cannot mark it as such without breaking CasC. */ + @DataBoundSetter @CheckForNull - public final String tunnel; + public String tunnel; /** * @deprecated No longer used. @@ -75,9 +67,11 @@ public class JNLPLauncher extends ComputerLauncher { @Deprecated public final transient String vmargs = null; + @Deprecated @NonNull private RemotingWorkDirSettings workDirSettings = RemotingWorkDirSettings.getEnabledDefaults(); + @Deprecated private boolean webSocket; /** @@ -88,14 +82,7 @@ public class JNLPLauncher extends ComputerLauncher { public static final String CUSTOM_INBOUND_URL_PROPERTY = "jenkins.agent.inboundUrl"; /** - * Constructor. - * @param tunnel Tunnel settings - * @param vmargs JVM arguments - * @param workDirSettings Settings for Work Directory management in Remoting. - * If {@code null}, {@link RemotingWorkDirSettings#getEnabledDefaults()} - * will be used to enable work directories by default in new agents. - * @since 2.68 - * @deprecated use {@link #JNLPLauncher(String, String)} and {@link #setWorkDirSettings(RemotingWorkDirSettings)} + * @deprecated no useful properties, use {@link #JNLPLauncher()} */ @Deprecated public JNLPLauncher(@CheckForNull String tunnel, @CheckForNull String vmargs, @CheckForNull RemotingWorkDirSettings workDirSettings) { @@ -105,36 +92,30 @@ public JNLPLauncher(@CheckForNull String tunnel, @CheckForNull String vmargs, @C } } - // TODO cannot easily make tunnel into a @DataBoundSetter because then the @DataBoundConstructor would be on a no-arg constructor - // which is already defined and deprecated. Could retroactively let no-arg constructor use default for workDirSettings, - // which would be a behavioral change only for callers of the Java constructor (unlikely). - @DataBoundConstructor + /** + * @deprecated no useful properties, use {@link #JNLPLauncher()} + */ + @Deprecated public JNLPLauncher(@CheckForNull String tunnel) { this.tunnel = Util.fixEmptyAndTrim(tunnel); } /** - * @deprecated use {@link JNLPLauncher#JNLPLauncher(String)} + * @deprecated no useful properties, use {@link #JNLPLauncher()} */ @Deprecated public JNLPLauncher(@CheckForNull String tunnel, @CheckForNull String vmargs) { this.tunnel = Util.fixEmptyAndTrim(tunnel); } - /** - * @deprecated This Launcher does not enable the work directory. - * It is recommended to use {@link #JNLPLauncher(boolean)} - */ - @Deprecated + @DataBoundConstructor public JNLPLauncher() { - this(false); } /** - * Constructor with default options. - * - * @param enableWorkDir If {@code true}, the work directory will be enabled with default settings. + * @deprecated no useful properties, use {@link #JNLPLauncher()} */ + @Deprecated public JNLPLauncher(boolean enableWorkDir) { this(null, null, enableWorkDir ? RemotingWorkDirSettings.getEnabledDefaults() @@ -150,16 +131,14 @@ protected Object readResolve() { return this; } - /** - * Returns work directory settings. - * - * @since 2.72 - */ - @NonNull + @Deprecated public RemotingWorkDirSettings getWorkDirSettings() { return workDirSettings; } + /** + * Deprecated (only used with deprecated {@code -jnlpUrl} mode), but cannot mark it as such without breaking CasC. + */ @DataBoundSetter public final void setWorkDirSettings(@NonNull RemotingWorkDirSettings workDirSettings) { this.workDirSettings = workDirSettings; @@ -170,15 +149,13 @@ public boolean isLaunchSupported() { return false; } - /** - * @since 2.216 - */ + @Deprecated public boolean isWebSocket() { return webSocket; } /** - * @since 2.216 + * Deprecated (only used with deprecated {@code -jnlpUrl} mode), but cannot mark it as such without breaking CasC. */ @DataBoundSetter public void setWebSocket(boolean webSocket) { @@ -210,6 +187,11 @@ public String getRemotingOptionsWindows(@NonNull Computer computer) { return getRemotingOptions(escapeWindows(computer.getName())); } + @Restricted(DoNotUse.class) + public boolean isConfigured() { + return webSocket || tunnel != null || workDirSettings.isConfigured(); + } + private String getRemotingOptions(String computerName) { StringBuilder sb = new StringBuilder(); sb.append("-name "); @@ -296,23 +278,19 @@ public boolean isWorkDirSupported() { return DescriptorImpl.class.equals(getClass()); } - public FormValidation doCheckWebSocket(@QueryParameter boolean webSocket, @QueryParameter String tunnel) { - if (webSocket) { - if (!WebSockets.isSupported()) { - return FormValidation.error(Messages.JNLPLauncher_WebsocketNotEnabled()); - } - if (Util.fixEmptyAndTrim(tunnel) != null) { - return FormValidation.error(Messages.JNLPLauncher_TunnelingNotSupported()); - } - } else { - if (Jenkins.get().getTcpSlaveAgentListener() == null) { - return FormValidation.error(Messages.JNLPLauncher_TCPPortDisabled()); - } - if (InstanceIdentityProvider.RSA.getCertificate() == null || InstanceIdentityProvider.RSA.getPrivateKey() == null) { - return FormValidation.error(Messages.JNLPLauncher_InstanceIdentityRequired()); - } - } - return FormValidation.ok(); + @Restricted(DoNotUse.class) + public boolean isTcpSupported() { + return Jenkins.get().getTcpSlaveAgentListener() != null; + } + + @Restricted(DoNotUse.class) + public boolean isInstanceIdentityInstalled() { + return InstanceIdentityProvider.RSA.getCertificate() != null && InstanceIdentityProvider.RSA.getPrivateKey() != null; + } + + @Restricted(DoNotUse.class) + public boolean isWebSocketSupported() { + return WebSockets.isSupported(); } } diff --git a/core/src/main/java/jenkins/slaves/RemotingWorkDirSettings.java b/core/src/main/java/jenkins/slaves/RemotingWorkDirSettings.java index bd9e0711ce3e..37b6454775b7 100644 --- a/core/src/main/java/jenkins/slaves/RemotingWorkDirSettings.java +++ b/core/src/main/java/jenkins/slaves/RemotingWorkDirSettings.java @@ -41,14 +41,9 @@ import org.kohsuke.stapler.DataBoundConstructor; /** - * Defines settings of the Remoting work directory. - * - * This class contains Remoting Work Directory settings, which can be used when starting Jenkins agents. - * See Remoting Work Dir Documentation. - * - * @author Oleg Nenashev - * @since 2.72 + * @deprecated only used with deprecated {@code -jnlpUrl} mode */ +@Deprecated public class RemotingWorkDirSettings implements Describable { private static final String DEFAULT_INTERNAL_DIR = "remoting"; @@ -79,6 +74,12 @@ public RemotingWorkDirSettings() { this(false, null, DEFAULT_INTERNAL_DIR, false); } + /** if this is not {@link #ENABLED_DEFAULT} */ + @Restricted(NoExternalUse.class) + public boolean isConfigured() { + return disabled || workDirPath != null || !DEFAULT_INTERNAL_DIR.equals(internalDir) || failIfWorkDirIsMissing; + } + /** * Check if workdir is disabled. * diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/config.jelly b/core/src/main/resources/hudson/slaves/JNLPLauncher/config.jelly index 773a2ca0737b..63fd66fd15da 100644 --- a/core/src/main/resources/hudson/slaves/JNLPLauncher/config.jelly +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/config.jelly @@ -24,6 +24,10 @@ THE SOFTWARE. + + + ${%configured} + @@ -36,4 +40,5 @@ THE SOFTWARE. - \ No newline at end of file + + diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/config.properties b/core/src/main/resources/hudson/slaves/JNLPLauncher/config.properties new file mode 100644 index 000000000000..eb8a1234243a --- /dev/null +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/config.properties @@ -0,0 +1,4 @@ +configured=\ + Configuring any properties on the inbound agent launcher is deprecated \ + as it would only have an effect in deprecated -jnlpUrl mode. \ + Instead pass any desired options to the agent yourself. diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/main.jelly b/core/src/main/resources/hudson/slaves/JNLPLauncher/main.jelly index 621d9ffdf068..2f211d16feae 100644 --- a/core/src/main/resources/hudson/slaves/JNLPLauncher/main.jelly +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/main.jelly @@ -25,12 +25,6 @@ THE SOFTWARE. - -

- ${%slaveAgentPort.disabled} - ${%configure.link.text}. -
- @@ -38,28 +32,6 @@ THE SOFTWARE. - - -

- ${%slaveAgent.cli.run} (Unix) - -

-
-${copy_agent_jar_unix}
-${copy_java_cmd_unix}
-
- -

- ${%slaveAgent.cli.run} (Windows) - -

-
-${copy_agent_jar_windows}
-${copy_java_cmd_windows}
-
- -
-

@@ -104,8 +76,28 @@ ${copy_secret_to_file} ${copy_agent_jar_windows} ${copy_java_cmd_secret2_windows} - - + +

+ ${%commonOptions} +

+
+ +

+ ${%tcp-port-disabled} + ${%configure.link.text}. +

+
+ +

+ ${%instance-identity-missing} + ${%install-instance-identity}. +

+
+ +

+ ${%web-socket-unsupported} +

+

${%powerShell.cli.curl}

diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/main.properties b/core/src/main/resources/hudson/slaves/JNLPLauncher/main.properties index 6615a216f326..dbb8ec9fed72 100644 --- a/core/src/main/resources/hudson/slaves/JNLPLauncher/main.properties +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/main.properties @@ -20,9 +20,22 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -configure.link.text=Go to security configuration screen and change it -slaveAgentPort.disabled=JNLP agent port is disabled and agents cannot connect this way. +configure.link.text=Go to the security configuration screen and change it slaveAgent.connected=Agent is connected. slaveAgent.cli.run=Run from agent command line: slaveAgent.cli.run.secret=Or run from agent command line, with the secret stored in a file: -powerShell.cli.curl=Note: PowerShell users must use curl.exe instead of curl because curl is a default PowerShell cmdlet alias for Invoke-WebRequest. \ No newline at end of file +powerShell.cli.curl=Note: PowerShell users must use curl.exe instead of curl because curl is a default PowerShell cmdlet alias for Invoke-WebRequest. +commonOptions=\ + The most commonly used option is -webSocket. \ + Run java -jar agent.jar -help for more. +tcp-port-disabled=\ + The TCP port is disabled so TCP agents may not be connected. \ + You may still use WebSocket agents. +instance-identity-missing=\ + The instance-identity plugin appears to be missing. \ + This would prevent you from connecting a TCP agent. \ + You may still use WebSocket agents. +install-instance-identity=Install it now +web-socket-unsupported=\ + WebSockets are not supported in this Jenkins installation. \ + You may still use TCP agents. diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/main_bg.properties b/core/src/main/resources/hudson/slaves/JNLPLauncher/main_bg.properties index b9f820d9716c..9d1eb0a998cb 100644 --- a/core/src/main/resources/hudson/slaves/JNLPLauncher/main_bg.properties +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/main_bg.properties @@ -28,8 +28,6 @@ Run\ from\ agent\ command\ line\:=\ Стартиране на агента от командния ред launch\ agent=\ стартиране на агента -slaveAgentPort.disabled=\ - Портът на агента е изключен Launch\ agent\ from\ browser=\ Стартиране на агент от браузър Connected\ via\ JNLP\ agent.=\ diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/main_de.properties b/core/src/main/resources/hudson/slaves/JNLPLauncher/main_de.properties index 36c54f92d3d8..d5344861a079 100644 --- a/core/src/main/resources/hudson/slaves/JNLPLauncher/main_de.properties +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/main_de.properties @@ -23,7 +23,6 @@ configure.link.text=Zur globalen Sicherheitskonfiguration wechseln und ändern launch\ agent=Agent starten Connected\ via\ JNLP\ agent.=Verbunden über JNLP-Agent. -slaveAgentPort.disabled=JNLP=Agenten können nicht verbinden, da der JNLP-Port deaktiviert ist. Launch\ agent\ from\ browser=JNLP-Agent via Webbrowser starten Connect\ agent\ to\ Jenkins\ one\ of\ these\ ways\:=Möglichkeiten, den Agent mit Jenkins zu verbinden: Run\ from\ agent\ command\ line\:=Auf der Befehlszeile ausführen: diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/main_es.properties b/core/src/main/resources/hudson/slaves/JNLPLauncher/main_es.properties index 3b363197bba7..2ea5a8a59665 100644 --- a/core/src/main/resources/hudson/slaves/JNLPLauncher/main_es.properties +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/main_es.properties @@ -20,7 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -slaveAgentPort.disabled=El puerto TCP para los agentes via JNLP está deshabilitado. launch\ agent=Lanzar agente Or\ if\ the\ agent\ is\ headless\:=O si el agente no tiene pantalla Run\ from\ agent\ command\ line\:=Ejecutar agente desde la línea de comandos del nodo diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/main_it.properties b/core/src/main/resources/hudson/slaves/JNLPLauncher/main_it.properties index 37b21deb833c..7dd94b6b6087 100644 --- a/core/src/main/resources/hudson/slaves/JNLPLauncher/main_it.properties +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/main_it.properties @@ -32,5 +32,3 @@ Or\ if\ the\ agent\ is\ headless\:=O se l''agente è senza interfaccia grafica: Run\ from\ agent\ command\ line\:=Esegui dalla riga di comando dell''agente Run\ from\ agent\ command\ line,\ with\ the\ secret\ stored\ in\ a\ file\:=\ Esegui dalla riga di comando dell''agente con il segreto salvato in un file -slaveAgentPort.disabled=La porta agente JNLP è disabilitata e gli agenti non \ - possono connettersi in questa modalità. diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/main_pt_BR.properties b/core/src/main/resources/hudson/slaves/JNLPLauncher/main_pt_BR.properties index 5637ae4ac28d..069a344fce80 100644 --- a/core/src/main/resources/hudson/slaves/JNLPLauncher/main_pt_BR.properties +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/main_pt_BR.properties @@ -21,9 +21,8 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -slaveAgentPort.disabled=Porta TCP para JNLP está desativada configure.link.text=Vá para a página de configuração de segurança para alterar slaveAgent.connected=O\ agente\ está\ conectado. slaveAgent.cli.run =Executar\ da\ linha\ de\ comando\ do\ agente\: slaveAgent.cli.run.secret=Ou execute pela linha de comando do agente com o segredo armazenado em um arquivo: -powerShell.cli.curl=Nota: usuários do PowerShell deverão usar curl.exe ao invés de curl porque curl é um apelido para o cmdlet padrão do PowerShell Invoke-WebRequest. \ No newline at end of file +powerShell.cli.curl=Nota: usuários do PowerShell deverão usar curl.exe ao invés de curl porque curl é um apelido para o cmdlet padrão do PowerShell Invoke-WebRequest. diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/main_sr.properties b/core/src/main/resources/hudson/slaves/JNLPLauncher/main_sr.properties index 65c5c7116f1f..fab8b513c6ea 100644 --- a/core/src/main/resources/hudson/slaves/JNLPLauncher/main_sr.properties +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/main_sr.properties @@ -1,6 +1,5 @@ # This file is under the MIT License by authors -slaveAgentPort.disabled=Порт TCP за JNLP је затворен configure.link.text=Итите на страницу за подешавања безбедности и промените га Connect\ agent\ to\ Jenkins\ one\ of\ these\ ways\:=Повежите се са Jenkins-ом путем: launch\ agent=покрени агента diff --git a/core/src/main/resources/hudson/slaves/Messages.properties b/core/src/main/resources/hudson/slaves/Messages.properties index c25afc947343..5c95fd0df998 100644 --- a/core/src/main/resources/hudson/slaves/Messages.properties +++ b/core/src/main/resources/hudson/slaves/Messages.properties @@ -42,7 +42,3 @@ ComputerLauncher.JavaVersionResult={0} -version returned {1}. ComputerLauncher.UnknownJavaVersion=Couldn’t figure out the Java version of {0} Cloud.ProvisionPermission.Description=Provision new nodes Cloud.RequiredName=Cloud must have a unique non-empty name. -JNLPLauncher.TCPPortDisabled=Either WebSocket mode is selected, or the TCP port for inbound agents must be enabled -JNLPLauncher.InstanceIdentityRequired=You must install the instance-identity plugin to use inbound agents in TCP mode -JNLPLauncher.WebsocketNotEnabled=WebSocket support is not enabled in this Jenkins installation -JNLPLauncher.TunnelingNotSupported=Tunneling is not supported in WebSocket mode diff --git a/core/src/main/resources/hudson/slaves/Messages_pt_BR.properties b/core/src/main/resources/hudson/slaves/Messages_pt_BR.properties index 2f8be57580d6..51f906814edb 100644 --- a/core/src/main/resources/hudson/slaves/Messages_pt_BR.properties +++ b/core/src/main/resources/hudson/slaves/Messages_pt_BR.properties @@ -40,9 +40,3 @@ DumbSlave.displayName=Agente permanente RetentionStrategy.Always.displayName=Mantenha este agente em serviço o máximo possível JNLPLauncher.displayName=Lançar um agente conectando-o ao controlador Cloud.ProvisionPermission.Description=Provisionar novos nós -JNLPLauncher.InstanceIdentityRequired=É necessário instalar a extensão instance-identify para usar agentes de entrada \ - no modo TCP -JNLPLauncher.TunnelingNotSupported=Tunelamento não é suportado no modo WebSocket -JNLPLauncher.WebsocketNotEnabled=O suporte a WebSocket não está habilitado para esta instalação do Jenkins -JNLPLauncher.TCPPortDisabled=Ou o modo WebSocket é selecionado ou a porta TCP para agentes de entrada precisa ser \ - habilitada diff --git a/core/src/main/resources/hudson/slaves/Messages_ru.properties b/core/src/main/resources/hudson/slaves/Messages_ru.properties index 41c3a02322a1..63c33bb51b47 100644 --- a/core/src/main/resources/hudson/slaves/Messages_ru.properties +++ b/core/src/main/resources/hudson/slaves/Messages_ru.properties @@ -40,9 +40,3 @@ ComputerLauncher.NoJavaFound=Обнаружена версия Java {0}, но т ComputerLauncher.JavaVersionResult=Команда {0} -version вернула {1}. ComputerLauncher.UnknownJavaVersion=Невозможно определить версию Java {0} Cloud.ProvisionPermission.Description=Выделить новые узлы -JNLPLauncher.TCPPortDisabled=Или включён режим WebSocket, или необходимо включить TCP-порт для агентов по \ - входящему подключению -JNLPLauncher.InstanceIdentityRequired=Необходимо установить плагин instance-identity, чтобы использовать агенты по \ - входящему подключению в режиме TCP -JNLPLauncher.WebsocketNotEnabled=В этой установке Jenkins не включена поддержка WebSocket -JNLPLauncher.TunnelingNotSupported=Туннелирование не поддерживается в режиме WebSocket \ No newline at end of file diff --git a/test/src/test/java/hudson/slaves/JNLPLauncherRealTest.java b/test/src/test/java/hudson/slaves/JNLPLauncherRealTest.java index 3e944a8da6f6..544e8383de8c 100644 --- a/test/src/test/java/hudson/slaves/JNLPLauncherRealTest.java +++ b/test/src/test/java/hudson/slaves/JNLPLauncherRealTest.java @@ -32,7 +32,6 @@ import hudson.model.FreeStyleBuild; import hudson.model.FreeStyleProject; import hudson.model.Slave; -import hudson.util.FormValidation; import java.io.File; import jenkins.agents.WebSocketAgentsTest; import jenkins.slaves.JnlpSlaveAgentProtocol4; @@ -98,7 +97,7 @@ public void run(JenkinsRule r) throws Throwable { for (PluginWrapper plugin : r.jenkins.pluginManager.getPlugins()) { System.err.println(plugin + " active=" + plugin.isActive() + " enabled=" + plugin.isEnabled()); } - assertThat(ExtensionList.lookupSingleton(JNLPLauncher.DescriptorImpl.class).doCheckWebSocket(webSocket, null).kind, is(FormValidation.Kind.OK)); + assertThat(ExtensionList.lookupSingleton(JNLPLauncher.DescriptorImpl.class).isWebSocketSupported(), is(true)); Slave agent = (Slave) r.jenkins.getNode(agentName); FreeStyleProject p = r.createFreeStyleProject(); p.setAssignedNode(agent); diff --git a/test/src/test/java/hudson/slaves/JNLPLauncherTest.java b/test/src/test/java/hudson/slaves/JNLPLauncherTest.java index f898530eb51e..813c72364558 100644 --- a/test/src/test/java/hudson/slaves/JNLPLauncherTest.java +++ b/test/src/test/java/hudson/slaves/JNLPLauncherTest.java @@ -28,6 +28,7 @@ import static org.hamcrest.Matchers.instanceOf; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -112,10 +113,8 @@ public void testNoWorkDirMigration() { } @Test - @Issue("JENKINS-44112") - @SuppressWarnings("deprecation") public void testDefaults() { - assertTrue("Work directory should be disabled for agents created via old API", new JNLPLauncher().getWorkDirSettings().isDisabled()); + assertFalse("Work directory enabled by default", new JNLPLauncher().getWorkDirSettings().isDisabled()); } @Test @@ -158,6 +157,7 @@ private ArgumentListBuilder buildJnlpArgs(Computer c) throws Exception { ArgumentListBuilder args = new ArgumentListBuilder(); args.add(new File(new File(System.getProperty("java.home")), "bin/java").getPath(), "-jar"); args.add(Which.jarFile(Launcher.class).getAbsolutePath()); + // TODO deprecated mode args.add("-jnlpUrl", j.getURL() + "computer/" + c.getName() + "/jenkins-agent.jnlp"); if (c instanceof SlaveComputer) { diff --git a/test/src/test/java/hudson/tools/InstallerTranslatorTest.java b/test/src/test/java/hudson/tools/InstallerTranslatorTest.java index 2e9fac2e6164..1f82bcbe5bc2 100644 --- a/test/src/test/java/hudson/tools/InstallerTranslatorTest.java +++ b/test/src/test/java/hudson/tools/InstallerTranslatorTest.java @@ -52,7 +52,7 @@ public class InstallerTranslatorTest { @Issue("JENKINS-23517") @Test public void offlineNodeForJDK() throws Exception { - Node slave = new DumbSlave("disconnected-slave", null, "/wherever", "1", Node.Mode.NORMAL, null, new JNLPLauncher(true), RetentionStrategy.NOOP, Collections.emptyList()); + Node slave = new DumbSlave("disconnected-slave", null, "/wherever", "1", Node.Mode.NORMAL, null, new JNLPLauncher(), RetentionStrategy.NOOP, Collections.emptyList()); String globalDefaultLocation = "/usr/lib/jdk"; JDK jdk = new JDK("my-jdk", globalDefaultLocation, List.of(new InstallSourceProperty(List.of(new CommandInstaller(null, "irrelevant", "/opt/jdk"))))); r.jenkins.getJDKs().add(jdk); From 5562c4a0f9e724601fd8a42983c489a95d6b50e9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 13 Dec 2023 11:11:19 -0800 Subject: [PATCH 0083/1216] Update dependency prettier to v3.1.1 (#8775) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/war/package.json b/war/package.json index 9cfa0e522b0f..3ac5ba0d500b 100644 --- a/war/package.json +++ b/war/package.json @@ -38,7 +38,7 @@ "postcss-loader": "7.3.3", "postcss-preset-env": "9.3.0", "postcss-scss": "4.0.9", - "prettier": "3.1.0", + "prettier": "3.1.1", "sass": "1.69.5", "sass-loader": "13.3.2", "style-loader": "3.3.3", diff --git a/war/yarn.lock b/war/yarn.lock index 241f14ff43e1..f750c04f1579 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -4425,7 +4425,7 @@ __metadata: postcss-loader: "npm:7.3.3" postcss-preset-env: "npm:9.3.0" postcss-scss: "npm:4.0.9" - prettier: "npm:3.1.0" + prettier: "npm:3.1.1" sass: "npm:1.69.5" sass-loader: "npm:13.3.2" sortablejs: "npm:1.15.1" @@ -6142,12 +6142,12 @@ __metadata: languageName: node linkType: hard -"prettier@npm:3.1.0": - version: 3.1.0 - resolution: "prettier@npm:3.1.0" +"prettier@npm:3.1.1": + version: 3.1.1 + resolution: "prettier@npm:3.1.1" bin: prettier: bin/prettier.cjs - checksum: a45ea70aa97fde162ea4c4aba3dfc7859aa6a732a1db34458d9535dc3c2c16d3bc3fb5689e6cd76aa835562555303b02d9449fd2e15af3b73c8053557e25c5b6 + checksum: facc944ba20e194ff4db765e830ffbcb642803381f0d2033ed397e79904fa4ccc877dc25ad68f42d36985c01d051c990ca1b905fb83d2d7d65fe69e4386fa1a3 languageName: node linkType: hard From 6fcfb189060c74f05c3d193e013b84acc67fff58 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 13 Dec 2023 11:13:25 -0800 Subject: [PATCH 0084/1216] Update dependency stylelint to v16 (#8767) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Alexander Brandes --- war/package.json | 2 +- .../components/_row-selection-controller.scss | 3 +- war/src/main/scss/form/_layout.scss | 3 +- war/src/main/scss/form/_search-bar.scss | 6 +- war/src/main/scss/pages/_icon-legend.scss | 3 +- war/yarn.lock | 454 +++++------------- 6 files changed, 122 insertions(+), 349 deletions(-) diff --git a/war/package.json b/war/package.json index 3ac5ba0d500b..93c6136fcfdf 100644 --- a/war/package.json +++ b/war/package.json @@ -42,7 +42,7 @@ "sass": "1.69.5", "sass-loader": "13.3.2", "style-loader": "3.3.3", - "stylelint": "15.10.2", + "stylelint": "16.0.1", "stylelint-checkstyle-reporter": "0.2.0", "stylelint-config-standard": "33.0.0", "webpack": "5.89.0", diff --git a/war/src/main/scss/components/_row-selection-controller.scss b/war/src/main/scss/components/_row-selection-controller.scss index f74dd37a0634..df5cf1553175 100644 --- a/war/src/main/scss/components/_row-selection-controller.scss +++ b/war/src/main/scss/components/_row-selection-controller.scss @@ -37,8 +37,7 @@ height: 0.85rem; grid-column-start: 1; grid-row-start: 1; - justify-self: center; - align-self: center; + place-self: center center; transition: var(--elastic-transition); transform: scale(0); color: var(--text-color); diff --git a/war/src/main/scss/form/_layout.scss b/war/src/main/scss/form/_layout.scss index e051ca5e03c9..0214d596c112 100644 --- a/war/src/main/scss/form/_layout.scss +++ b/war/src/main/scss/form/_layout.scss @@ -45,8 +45,7 @@ font-weight: var(--form-label-font-weight); margin-top: 0; margin-bottom: 0.5rem; - padding-inline-start: 0; - padding-inline-end: 0; + padding-inline: 0 0; } .jenkins-form-description { diff --git a/war/src/main/scss/form/_search-bar.scss b/war/src/main/scss/form/_search-bar.scss index a789b87a3e7e..81f7450570e4 100644 --- a/war/src/main/scss/form/_search-bar.scss +++ b/war/src/main/scss/form/_search-bar.scss @@ -100,8 +100,7 @@ max-height: 1.1rem; grid-column-start: 1; grid-row-start: 1; - justify-self: center; - align-self: center; + place-self: center center; transition: var(--standard-transition); } @@ -117,8 +116,7 @@ transition: var(--standard-transition); grid-column-start: 1; grid-row-start: 1; - justify-self: center; - align-self: center; + place-self: center center; opacity: 0; } diff --git a/war/src/main/scss/pages/_icon-legend.scss b/war/src/main/scss/pages/_icon-legend.scss index 7cbcd789363d..02cb37cff584 100644 --- a/war/src/main/scss/pages/_icon-legend.scss +++ b/war/src/main/scss/pages/_icon-legend.scss @@ -12,8 +12,7 @@ dt { display: flex; - align-items: center; - justify-items: center; + place-items: center center; svg { width: 2rem; diff --git a/war/yarn.lock b/war/yarn.lock index f750c04f1579..630e7fe727e3 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -1393,7 +1393,7 @@ __metadata: languageName: node linkType: hard -"@csstools/css-parser-algorithms@npm:2.3.2, @csstools/css-parser-algorithms@npm:^2.3.0, @csstools/css-parser-algorithms@npm:^2.3.2": +"@csstools/css-parser-algorithms@npm:2.3.2, @csstools/css-parser-algorithms@npm:^2.3.2": version: 2.3.2 resolution: "@csstools/css-parser-algorithms@npm:2.3.2" peerDependencies: @@ -1402,14 +1402,14 @@ __metadata: languageName: node linkType: hard -"@csstools/css-tokenizer@npm:^2.1.1, @csstools/css-tokenizer@npm:^2.2.1": +"@csstools/css-tokenizer@npm:^2.2.1": version: 2.2.1 resolution: "@csstools/css-tokenizer@npm:2.2.1" checksum: 0c6901d291e99c567893846a47068057c2a28b3edc4219b6da589a530f55f51ddd4675f906f707b393bfe7a508ab2604bf3f75708f064db857bb277636bd5a44 languageName: node linkType: hard -"@csstools/media-query-list-parser@npm:^2.1.2, @csstools/media-query-list-parser@npm:^2.1.5": +"@csstools/media-query-list-parser@npm:^2.1.5": version: 2.1.5 resolution: "@csstools/media-query-list-parser@npm:2.1.5" peerDependencies: @@ -2121,13 +2121,6 @@ __metadata: languageName: node linkType: hard -"@types/minimist@npm:^1.2.2": - version: 1.2.2 - resolution: "@types/minimist@npm:1.2.2" - checksum: f220f57f682bbc3793dab4518f8e2180faa79d8e2589c79614fd777d7182be203ba399020c3a056a115064f5d57a065004a32b522b2737246407621681b24137 - languageName: node - linkType: hard - "@types/node@npm:*": version: 18.0.6 resolution: "@types/node@npm:18.0.6" @@ -2135,13 +2128,6 @@ __metadata: languageName: node linkType: hard -"@types/normalize-package-data@npm:^2.4.0": - version: 2.4.1 - resolution: "@types/normalize-package-data@npm:2.4.1" - checksum: c90b163741f27a1a4c3b1869d7d5c272adbd355eb50d5f060f9ce122ce4342cf35f5b0005f55ef780596cacfeb69b7eee54cd3c2e02d37f75e664945b6e75fc6 - languageName: node - linkType: hard - "@types/yargs-parser@npm:*": version: 21.0.0 resolution: "@types/yargs-parser@npm:21.0.0" @@ -2492,6 +2478,13 @@ __metadata: languageName: node linkType: hard +"ansi-regex@npm:^6.0.1": + version: 6.0.1 + resolution: "ansi-regex@npm:6.0.1" + checksum: cbe16dbd2c6b2735d1df7976a7070dd277326434f0212f43abf6d87674095d247968209babdaad31bb00882fa68807256ba9be340eec2f1004de14ca75f52a08 + languageName: node + linkType: hard + "ansi-styles@npm:^3.2.1": version: 3.2.1 resolution: "ansi-styles@npm:3.2.1" @@ -2583,13 +2576,6 @@ __metadata: languageName: node linkType: hard -"arrify@npm:^1.0.1": - version: 1.0.1 - resolution: "arrify@npm:1.0.1" - checksum: c35c8d1a81bcd5474c0c57fe3f4bad1a4d46a5fa353cedcff7a54da315df60db71829e69104b859dff96c5d68af46bd2be259fe5e50dc6aa9df3b36bea0383ab - languageName: node - linkType: hard - "astral-regex@npm:^2.0.0": version: 2.0.0 resolution: "astral-regex@npm:2.0.0" @@ -2788,25 +2774,6 @@ __metadata: languageName: node linkType: hard -"camelcase-keys@npm:^7.0.0": - version: 7.0.2 - resolution: "camelcase-keys@npm:7.0.2" - dependencies: - camelcase: "npm:^6.3.0" - map-obj: "npm:^4.1.0" - quick-lru: "npm:^5.1.1" - type-fest: "npm:^1.2.1" - checksum: ae86a51168643e9e8a2f2c7bfa17850729979ec3dafc5253056a7d97931cbb0e3ef5b4185e59d54b7a56c54405dee2874b0c82033498d8626e512ff9034cb05c - languageName: node - linkType: hard - -"camelcase@npm:^6.3.0": - version: 6.3.0 - resolution: "camelcase@npm:6.3.0" - checksum: 0d701658219bd3116d12da3eab31acddb3f9440790c0792e0d398f0a520a6a4058018e546862b6fba89d7ae990efaeb97da71e1913e9ebf5a8b5621a3d55c710 - languageName: node - linkType: hard - "caniuse-api@npm:^3.0.0": version: 3.0.0 resolution: "caniuse-api@npm:3.0.0" @@ -3048,6 +3015,23 @@ __metadata: languageName: node linkType: hard +"cosmiconfig@npm:^9.0.0": + version: 9.0.0 + resolution: "cosmiconfig@npm:9.0.0" + dependencies: + env-paths: "npm:^2.2.1" + import-fresh: "npm:^3.3.0" + js-yaml: "npm:^4.1.0" + parse-json: "npm:^5.2.0" + peerDependencies: + typescript: ">=4.9.5" + peerDependenciesMeta: + typescript: + optional: true + checksum: 1c1703be4f02a250b1d6ca3267e408ce16abfe8364193891afc94c2d5c060b69611fdc8d97af74b7e6d5d1aac0ab2fb94d6b079573146bc2d756c2484ce5f0ee + languageName: node + linkType: hard + "cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": version: 7.0.3 resolution: "cross-spawn@npm:7.0.3" @@ -3079,10 +3063,10 @@ __metadata: languageName: node linkType: hard -"css-functions-list@npm:^3.2.0": - version: 3.2.0 - resolution: "css-functions-list@npm:3.2.0" - checksum: 640a1760c6d63536def671b7ccd89c2525a7197fc845a5ae1ec9f380fedd1aa9634f547db81f02f1a3736492867e9333ee8d6bf9aa498d211e36feae0e71a672 +"css-functions-list@npm:^3.2.1": + version: 3.2.1 + resolution: "css-functions-list@npm:3.2.1" + checksum: e6e2d9580437ad6df9f2cf18cff3f941691ec5cbbaebd4cb17a5da40d8d5dac50004807ddd05c00a121d2f21a224e2c5d339fe8e13614af21c00181d7d1c22b9 languageName: node linkType: hard @@ -3292,30 +3276,6 @@ __metadata: languageName: node linkType: hard -"decamelize-keys@npm:^1.1.0": - version: 1.1.0 - resolution: "decamelize-keys@npm:1.1.0" - dependencies: - decamelize: "npm:^1.1.0" - map-obj: "npm:^1.0.0" - checksum: 95d4e3692cf7cf6568042658b780f16475a2145910a3d4e996a8d1686c2328c061365643b67b19fee5ea4a03448afc65c9fbb844400c0ecd7dadad175a72e6ef - languageName: node - linkType: hard - -"decamelize@npm:^1.1.0": - version: 1.2.0 - resolution: "decamelize@npm:1.2.0" - checksum: 85c39fe8fbf0482d4a1e224ef0119db5c1897f8503bcef8b826adff7a1b11414972f6fef2d7dec2ee0b4be3863cf64ac1439137ae9e6af23a3d8dcbe26a5b4b2 - languageName: node - linkType: hard - -"decamelize@npm:^5.0.0": - version: 5.0.1 - resolution: "decamelize@npm:5.0.1" - checksum: 3da71022bc1e85487810fa0833138effb599fa331ca21e179650e93a765d0c4dabeb1ecdd6ad1474fa0bacd2457953c63ea335afb6e53b35f2b4bf779514e2a3 - languageName: node - linkType: hard - "deep-is@npm:^0.1.3": version: 0.1.4 resolution: "deep-is@npm:0.1.4" @@ -3455,7 +3415,7 @@ __metadata: languageName: node linkType: hard -"env-paths@npm:^2.2.0": +"env-paths@npm:^2.2.0, env-paths@npm:^2.2.1": version: 2.2.1 resolution: "env-paths@npm:2.2.1" checksum: 285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4 @@ -3675,16 +3635,16 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0": - version: 3.3.0 - resolution: "fast-glob@npm:3.3.0" +"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2": + version: 3.3.2 + resolution: "fast-glob@npm:3.3.2" dependencies: "@nodelib/fs.stat": "npm:^2.0.2" "@nodelib/fs.walk": "npm:^1.2.3" glob-parent: "npm:^5.1.2" merge2: "npm:^1.3.0" micromatch: "npm:^4.0.4" - checksum: 4700063a2d7c9aae178f575648580bee1fc3f02ab3f358236d77811f52332bc10a398e75c6d5ecde61216996f3308247b37d70e2ee605a0748abe147f01b8f64 + checksum: 42baad7b9cd40b63e42039132bde27ca2cb3a4950d0a0f9abe4639ea1aa9d3e3b40f98b1fe31cbc0cc17b664c9ea7447d911a152fa34ec5b72977b125a6fc845 languageName: node linkType: hard @@ -3734,6 +3694,15 @@ __metadata: languageName: node linkType: hard +"file-entry-cache@npm:^7.0.2": + version: 7.0.2 + resolution: "file-entry-cache@npm:7.0.2" + dependencies: + flat-cache: "npm:^3.2.0" + checksum: 822664e35c3e295e6a8ca7ec490d8d8077017607f41f94b29922f1f49c6dd07025048e3ed528e2909a1439eba66d60f802c0774aa612cf6ee053ee4ecc16c8c5 + languageName: node + linkType: hard + "fill-range@npm:^7.0.1": version: 7.0.1 resolution: "fill-range@npm:7.0.1" @@ -3783,20 +3752,21 @@ __metadata: languageName: node linkType: hard -"flat-cache@npm:^3.0.4": - version: 3.0.4 - resolution: "flat-cache@npm:3.0.4" +"flat-cache@npm:^3.0.4, flat-cache@npm:^3.2.0": + version: 3.2.0 + resolution: "flat-cache@npm:3.2.0" dependencies: - flatted: "npm:^3.1.0" + flatted: "npm:^3.2.9" + keyv: "npm:^4.5.3" rimraf: "npm:^3.0.2" - checksum: f274dcbadb09ad8d7b6edf2ee9b034bc40bf0c12638f6c4084e9f1d39208cb104a5ebbb24b398880ef048200eaa116852f73d2d8b72e8c9627aba8c3e27ca057 + checksum: b76f611bd5f5d68f7ae632e3ae503e678d205cf97a17c6ab5b12f6ca61188b5f1f7464503efae6dc18683ed8f0b41460beb48ac4b9ac63fe6201296a91ba2f75 languageName: node linkType: hard -"flatted@npm:^3.1.0": - version: 3.2.6 - resolution: "flatted@npm:3.2.6" - checksum: cc86d6c699de3557ede84ae31d4a23f24f7800fd40904e1a1645f9a6a8f23d0267a0661fcbde801e7f36e065a481a512cb2ed53d150280d2049abd0a876d4e8b +"flatted@npm:^3.2.9": + version: 3.2.9 + resolution: "flatted@npm:3.2.9" + checksum: 5c91c5a0a21bbc0b07b272231e5b4efe6b822bcb4ad317caf6bb06984be4042a9e9045026307da0fdb4583f1f545e317a67ef1231a59e71f7fced3cc429cfc53 languageName: node linkType: hard @@ -4047,13 +4017,6 @@ __metadata: languageName: node linkType: hard -"hard-rejection@npm:^2.1.0": - version: 2.1.0 - resolution: "hard-rejection@npm:2.1.0" - checksum: febc3343a1ad575aedcc112580835b44a89a89e01f400b4eda6e8110869edfdab0b00cd1bd4c3bfec9475a57e79e0b355aecd5be46454b6a62b9a359af60e564 - languageName: node - linkType: hard - "has-flag@npm:^3.0.0": version: 3.0.0 resolution: "has-flag@npm:3.0.0" @@ -4084,15 +4047,6 @@ __metadata: languageName: node linkType: hard -"hosted-git-info@npm:^4.0.1": - version: 4.1.0 - resolution: "hosted-git-info@npm:4.1.0" - dependencies: - lru-cache: "npm:^6.0.0" - checksum: 150fbcb001600336d17fdbae803264abed013548eea7946c2264c49ebe2ebd8c4441ba71dd23dd8e18c65de79d637f98b22d4760ba5fb2e0b15d62543d0fff07 - languageName: node - linkType: hard - "hotkeys-js@npm:3.12.2": version: 3.12.2 resolution: "hotkeys-js@npm:3.12.2" @@ -4162,10 +4116,10 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.2.0, ignore@npm:^5.2.4": - version: 5.2.4 - resolution: "ignore@npm:5.2.4" - checksum: 7c7cd90edd9fea6e037f9b9da4b01bf0a86b198ce78345f9bbd983929d68ff14830be31111edc5d70c264921f4962404d75b7262b4d9cc3bc12381eccbd03096 +"ignore@npm:^5.2.0, ignore@npm:^5.3.0": + version: 5.3.0 + resolution: "ignore@npm:5.3.0" + checksum: dc06bea5c23aae65d0725a957a0638b57e235ae4568dda51ca142053ed2c352de7e3bc93a69b2b32ac31966a1952e9a93c5ef2e2ab7c6b06aef9808f6b55b571 languageName: node linkType: hard @@ -4176,7 +4130,7 @@ __metadata: languageName: node linkType: hard -"import-fresh@npm:^3.2.1": +"import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": version: 3.3.0 resolution: "import-fresh@npm:3.3.0" dependencies: @@ -4186,13 +4140,6 @@ __metadata: languageName: node linkType: hard -"import-lazy@npm:^4.0.0": - version: 4.0.0 - resolution: "import-lazy@npm:4.0.0" - checksum: a3520313e2c31f25c0b06aa66d167f329832b68a4f957d7c9daf6e0fa41822b6e84948191648b9b9d8ca82f94740cdf15eecf2401a5b42cd1c33fd84f2225cca - languageName: node - linkType: hard - "import-local@npm:^3.0.2": version: 3.1.0 resolution: "import-local@npm:3.1.0" @@ -4219,13 +4166,6 @@ __metadata: languageName: node linkType: hard -"indent-string@npm:^5.0.0": - version: 5.0.0 - resolution: "indent-string@npm:5.0.0" - checksum: 8ee77b57d92e71745e133f6f444d6fa3ed503ad0e1bcd7e80c8da08b42375c07117128d670589725ed07b1978065803fa86318c309ba45415b7fe13e7f170220 - languageName: node - linkType: hard - "infer-owner@npm:^1.0.4": version: 1.0.4 resolution: "infer-owner@npm:1.0.4" @@ -4287,7 +4227,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.5.0, is-core-module@npm:^2.9.0": +"is-core-module@npm:^2.9.0": version: 2.9.0 resolution: "is-core-module@npm:2.9.0" dependencies: @@ -4365,13 +4305,6 @@ __metadata: languageName: node linkType: hard -"is-plain-obj@npm:^1.1.0": - version: 1.1.0 - resolution: "is-plain-obj@npm:1.1.0" - checksum: daaee1805add26f781b413fdf192fc91d52409583be30ace35c82607d440da63cc4cac0ac55136716688d6c0a2c6ef3edb2254fecbd1fe06056d6bd15975ee8c - languageName: node - linkType: hard - "is-plain-object@npm:^2.0.4": version: 2.0.4 resolution: "is-plain-object@npm:2.0.4" @@ -4430,7 +4363,7 @@ __metadata: sass-loader: "npm:13.3.2" sortablejs: "npm:1.15.1" style-loader: "npm:3.3.3" - stylelint: "npm:15.10.2" + stylelint: "npm:16.0.1" stylelint-checkstyle-reporter: "npm:0.2.0" stylelint-config-standard: "npm:33.0.0" tippy.js: "npm:6.3.7" @@ -4542,6 +4475,13 @@ __metadata: languageName: node linkType: hard +"json-buffer@npm:3.0.1": + version: 3.0.1 + resolution: "json-buffer@npm:3.0.1" + checksum: 0d1c91569d9588e7eef2b49b59851f297f3ab93c7b35c7c221e288099322be6b562767d11e4821da500f3219542b9afd2e54c5dc573107c1126ed1080f8e96d7 + languageName: node + linkType: hard + "json-parse-even-better-errors@npm:^2.3.0, json-parse-even-better-errors@npm:^2.3.1": version: 2.3.1 resolution: "json-parse-even-better-errors@npm:2.3.1" @@ -4590,17 +4530,26 @@ __metadata: languageName: node linkType: hard -"kind-of@npm:^6.0.2, kind-of@npm:^6.0.3": +"keyv@npm:^4.5.3": + version: 4.5.4 + resolution: "keyv@npm:4.5.4" + dependencies: + json-buffer: "npm:3.0.1" + checksum: aa52f3c5e18e16bb6324876bb8b59dd02acf782a4b789c7b2ae21107fab95fab3890ed448d4f8dba80ce05391eeac4bfabb4f02a20221342982f806fa2cf271e + languageName: node + linkType: hard + +"kind-of@npm:^6.0.2": version: 6.0.3 resolution: "kind-of@npm:6.0.3" checksum: 61cdff9623dabf3568b6445e93e31376bee1cdb93f8ba7033d86022c2a9b1791a1d9510e026e6465ebd701a6dd2f7b0808483ad8838341ac52f003f512e0b4c4 languageName: node linkType: hard -"known-css-properties@npm:^0.27.0": - version: 0.27.0 - resolution: "known-css-properties@npm:0.27.0" - checksum: 49bf8d0a773039d07726d263c92145fa73be9a18990d54c3b3cebf472fdfb0095124a3fcfca3ccd1225231d4bdf9615c82e029b2d0d508de130f6be7467af9e4 +"known-css-properties@npm:^0.29.0": + version: 0.29.0 + resolution: "known-css-properties@npm:0.29.0" + checksum: f66e9992097b8f54e97dbe729943d4a11b8d3ba15f68dbb3deb8bb0122cb89c22c90c9221ecb1e3f2e236838fe3c0faae319b43908c81b6e254ac43cafde2906 languageName: node linkType: hard @@ -4774,20 +4723,6 @@ __metadata: languageName: node linkType: hard -"map-obj@npm:^1.0.0": - version: 1.0.1 - resolution: "map-obj@npm:1.0.1" - checksum: ccca88395e7d38671ed9f5652ecf471ecd546924be2fb900836b9da35e068a96687d96a5f93dcdfa94d9a27d649d2f10a84595590f89a347fb4dda47629dcc52 - languageName: node - linkType: hard - -"map-obj@npm:^4.1.0": - version: 4.3.0 - resolution: "map-obj@npm:4.3.0" - checksum: 1c19e1c88513c8abdab25c316367154c6a0a6a0f77e3e8c391bb7c0e093aefed293f539d026dc013d86219e5e4c25f23b0003ea588be2101ccd757bacc12d43b - languageName: node - linkType: hard - "mathml-tag-names@npm:^2.1.3": version: 2.1.3 resolution: "mathml-tag-names@npm:2.1.3" @@ -4809,23 +4744,10 @@ __metadata: languageName: node linkType: hard -"meow@npm:^10.1.5": - version: 10.1.5 - resolution: "meow@npm:10.1.5" - dependencies: - "@types/minimist": "npm:^1.2.2" - camelcase-keys: "npm:^7.0.0" - decamelize: "npm:^5.0.0" - decamelize-keys: "npm:^1.1.0" - hard-rejection: "npm:^2.1.0" - minimist-options: "npm:4.1.0" - normalize-package-data: "npm:^3.0.2" - read-pkg-up: "npm:^8.0.0" - redent: "npm:^4.0.0" - trim-newlines: "npm:^4.0.2" - type-fest: "npm:^1.2.2" - yargs-parser: "npm:^20.2.9" - checksum: a513849022edd5ddcc41d28c679d31978abe414d9db5bc457e95e537a4327b2910fd2f699cdd883293f9a5da8951a50939bf60fbd62f7fe12b9ddf96a84b1b27 +"meow@npm:^12.1.1": + version: 12.1.1 + resolution: "meow@npm:12.1.1" + checksum: a125ca99a32e2306e2f4cbe651a0d27f6eb67918d43a075f6e80b35e9bf372ebf0fc3a9fbc201cbbc9516444b6265fb3c9f80c5b7ebd32f548aa93eb7c28e088 languageName: node linkType: hard @@ -4869,13 +4791,6 @@ __metadata: languageName: node linkType: hard -"min-indent@npm:^1.0.1": - version: 1.0.1 - resolution: "min-indent@npm:1.0.1" - checksum: 7e207bd5c20401b292de291f02913230cb1163abca162044f7db1d951fa245b174dc00869d40dd9a9f32a885ad6a5f3e767ee104cf278f399cb4e92d3f582d5c - languageName: node - linkType: hard - "mini-css-extract-plugin@npm:2.7.6": version: 2.7.6 resolution: "mini-css-extract-plugin@npm:2.7.6" @@ -4905,17 +4820,6 @@ __metadata: languageName: node linkType: hard -"minimist-options@npm:4.1.0": - version: 4.1.0 - resolution: "minimist-options@npm:4.1.0" - dependencies: - arrify: "npm:^1.0.1" - is-plain-obj: "npm:^1.1.0" - kind-of: "npm:^6.0.3" - checksum: 7871f9cdd15d1e7374e5b013e2ceda3d327a06a8c7b38ae16d9ef941e07d985e952c589e57213f7aa90a8744c60aed9524c0d85e501f5478382d9181f2763f54 - languageName: node - linkType: hard - "minimist@npm:^1.2.0, minimist@npm:^1.2.5": version: 1.2.7 resolution: "minimist@npm:1.2.7" @@ -5084,18 +4988,6 @@ __metadata: languageName: node linkType: hard -"normalize-package-data@npm:^3.0.2": - version: 3.0.3 - resolution: "normalize-package-data@npm:3.0.3" - dependencies: - hosted-git-info: "npm:^4.0.1" - is-core-module: "npm:^2.5.0" - semver: "npm:^7.3.4" - validate-npm-package-license: "npm:^3.0.1" - checksum: e5d0f739ba2c465d41f77c9d950e291ea4af78f8816ddb91c5da62257c40b76d8c83278b0d08ffbcd0f187636ebddad20e181e924873916d03e6e5ea2ef026be - languageName: node - linkType: hard - "normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": version: 3.0.0 resolution: "normalize-path@npm:3.0.0" @@ -6055,12 +5947,12 @@ __metadata: languageName: node linkType: hard -"postcss-safe-parser@npm:^6.0.0": - version: 6.0.0 - resolution: "postcss-safe-parser@npm:6.0.0" +"postcss-safe-parser@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-safe-parser@npm:7.0.0" peerDependencies: - postcss: ^8.3.3 - checksum: 5b0997b63de6ab4afb4b718a52dd7902e465c21d1f2e516762bcb59047787459b4dc5713132f6a19c9c8c483043b20b8a380a55fb61152ee66cbffcddf3b57f0 + postcss: ^8.4.31 + checksum: 4217afd8ce2809e959dc365e4675f499303cc6b91f94db06c8164422822db2d3b3124df701ee2234db4127ad05619b016bfb9c2bccae9bf9cf898a396f1632c9 languageName: node linkType: hard @@ -6124,7 +6016,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:8.4.32, postcss@npm:^8.4.21, postcss@npm:^8.4.24, postcss@npm:^8.4.25": +"postcss@npm:8.4.32, postcss@npm:^8.4.21, postcss@npm:^8.4.24, postcss@npm:^8.4.32": version: 8.4.32 resolution: "postcss@npm:8.4.32" dependencies: @@ -6182,13 +6074,6 @@ __metadata: languageName: node linkType: hard -"quick-lru@npm:^5.1.1": - version: 5.1.1 - resolution: "quick-lru@npm:5.1.1" - checksum: a24cba5da8cec30d70d2484be37622580f64765fb6390a928b17f60cd69e8dbd32a954b3ff9176fa1b86d86ff2ba05252fae55dc4d40d0291c60412b0ad096da - languageName: node - linkType: hard - "randombytes@npm:^2.1.0": version: 2.1.0 resolution: "randombytes@npm:2.1.0" @@ -6198,29 +6083,6 @@ __metadata: languageName: node linkType: hard -"read-pkg-up@npm:^8.0.0": - version: 8.0.0 - resolution: "read-pkg-up@npm:8.0.0" - dependencies: - find-up: "npm:^5.0.0" - read-pkg: "npm:^6.0.0" - type-fest: "npm:^1.0.1" - checksum: cf3905ccbe5cd602f23192cc7ca65ed17561bab117eadb9aed817441d5bfc6b9a11215c2a3e9505f501d046818f3c4180dbea61fa83c42083e0b4e407d5cc745 - languageName: node - linkType: hard - -"read-pkg@npm:^6.0.0": - version: 6.0.0 - resolution: "read-pkg@npm:6.0.0" - dependencies: - "@types/normalize-package-data": "npm:^2.4.0" - normalize-package-data: "npm:^3.0.2" - parse-json: "npm:^5.2.0" - type-fest: "npm:^1.0.1" - checksum: b51ee5eed75324f4fac34c9a40b5e4b403de4c532242be01959c9bbdb1ff9db1c6c2aefaba569622fec49d1ead866e97ba856ab145f6e11039b11f7bec1318ba - languageName: node - linkType: hard - "readable-stream@npm:^3.6.0": version: 3.6.0 resolution: "readable-stream@npm:3.6.0" @@ -6250,16 +6112,6 @@ __metadata: languageName: node linkType: hard -"redent@npm:^4.0.0": - version: 4.0.0 - resolution: "redent@npm:4.0.0" - dependencies: - indent-string: "npm:^5.0.0" - strip-indent: "npm:^4.0.0" - checksum: a9b640c8f4b2b5b26a1a908706475ff404dd50a97d6f094bc3c59717be922622927cc7d601d4ae2857d897ad243fd979bd76d751a0481cee8be7024e5fb4c662 - languageName: node - linkType: hard - "regenerate-unicode-properties@npm:^10.1.0": version: 10.1.0 resolution: "regenerate-unicode-properties@npm:10.1.0" @@ -6510,7 +6362,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.8": +"semver@npm:^7.3.5, semver@npm:^7.3.8": version: 7.3.8 resolution: "semver@npm:7.3.8" dependencies: @@ -6660,40 +6512,6 @@ __metadata: languageName: node linkType: hard -"spdx-correct@npm:^3.0.0": - version: 3.1.1 - resolution: "spdx-correct@npm:3.1.1" - dependencies: - spdx-expression-parse: "npm:^3.0.0" - spdx-license-ids: "npm:^3.0.0" - checksum: 25909eecc4024963a8e398399dbdd59ddb925bd7dbecd9c9cf6df0d75c29b68cd30b82123564acc51810eb02cfc4b634a2e16e88aa982433306012e318849249 - languageName: node - linkType: hard - -"spdx-exceptions@npm:^2.1.0": - version: 2.3.0 - resolution: "spdx-exceptions@npm:2.3.0" - checksum: 83089e77d2a91cb6805a5c910a2bedb9e50799da091f532c2ba4150efdef6e53f121523d3e2dc2573a340dc0189e648b03157097f65465b3a0c06da1f18d7e8a - languageName: node - linkType: hard - -"spdx-expression-parse@npm:^3.0.0": - version: 3.0.1 - resolution: "spdx-expression-parse@npm:3.0.1" - dependencies: - spdx-exceptions: "npm:^2.1.0" - spdx-license-ids: "npm:^3.0.0" - checksum: 6f8a41c87759fa184a58713b86c6a8b028250f158159f1d03ed9d1b6ee4d9eefdc74181c8ddc581a341aa971c3e7b79e30b59c23b05d2436d5de1c30bdef7171 - languageName: node - linkType: hard - -"spdx-license-ids@npm:^3.0.0": - version: 3.0.11 - resolution: "spdx-license-ids@npm:3.0.11" - checksum: 6c53cfdb3417e80fd612341319f1296507f797e0387e144047f547c378d9d38d6032ec342de42ef7883256f6690b2fca9889979d0dd015a61dc49b323f9b379b - languageName: node - linkType: hard - "sprintf-js@npm:~1.0.2": version: 1.0.3 resolution: "sprintf-js@npm:1.0.3" @@ -6739,12 +6557,12 @@ __metadata: languageName: node linkType: hard -"strip-indent@npm:^4.0.0": - version: 4.0.0 - resolution: "strip-indent@npm:4.0.0" +"strip-ansi@npm:^7.1.0": + version: 7.1.0 + resolution: "strip-ansi@npm:7.1.0" dependencies: - min-indent: "npm:^1.0.1" - checksum: 6b1fb4e22056867f5c9e7a6f3f45922d9a2436cac758607d58aeaac0d3b16ec40b1c43317de7900f1b8dd7a4107352fa47fb960f2c23566538c51e8585c8870e + ansi-regex: "npm:^6.0.1" + checksum: a198c3762e8832505328cbf9e8c8381de14a4fa50a4f9b2160138158ea88c0f5549fb50cb13c651c3088f47e63a108b34622ec18c0499b6c8c3a5ddf6b305ac4 languageName: node linkType: hard @@ -6764,13 +6582,6 @@ __metadata: languageName: node linkType: hard -"style-search@npm:^0.1.0": - version: 0.1.0 - resolution: "style-search@npm:0.1.0" - checksum: 9e5cb735e5dc4fc2f8c61bebdf211d5352f1cf01511a64da12bb726a01e8c6948c50d357eb8fd7893d44b4e3189655bdddcf8ab338f9d508fe89a8942c650b14 - languageName: node - linkType: hard - "stylehacks@npm:^6.0.0": version: 6.0.0 resolution: "stylehacks@npm:6.0.0" @@ -6812,53 +6623,51 @@ __metadata: languageName: node linkType: hard -"stylelint@npm:15.10.2": - version: 15.10.2 - resolution: "stylelint@npm:15.10.2" +"stylelint@npm:16.0.1": + version: 16.0.1 + resolution: "stylelint@npm:16.0.1" dependencies: - "@csstools/css-parser-algorithms": "npm:^2.3.0" - "@csstools/css-tokenizer": "npm:^2.1.1" - "@csstools/media-query-list-parser": "npm:^2.1.2" + "@csstools/css-parser-algorithms": "npm:^2.3.2" + "@csstools/css-tokenizer": "npm:^2.2.1" + "@csstools/media-query-list-parser": "npm:^2.1.5" "@csstools/selector-specificity": "npm:^3.0.0" balanced-match: "npm:^2.0.0" colord: "npm:^2.9.3" - cosmiconfig: "npm:^8.2.0" - css-functions-list: "npm:^3.2.0" + cosmiconfig: "npm:^9.0.0" + css-functions-list: "npm:^3.2.1" css-tree: "npm:^2.3.1" debug: "npm:^4.3.4" - fast-glob: "npm:^3.3.0" + fast-glob: "npm:^3.3.2" fastest-levenshtein: "npm:^1.0.16" - file-entry-cache: "npm:^6.0.1" + file-entry-cache: "npm:^7.0.2" global-modules: "npm:^2.0.0" globby: "npm:^11.1.0" globjoin: "npm:^0.1.4" html-tags: "npm:^3.3.1" - ignore: "npm:^5.2.4" - import-lazy: "npm:^4.0.0" + ignore: "npm:^5.3.0" imurmurhash: "npm:^0.1.4" is-plain-object: "npm:^5.0.0" - known-css-properties: "npm:^0.27.0" + known-css-properties: "npm:^0.29.0" mathml-tag-names: "npm:^2.1.3" - meow: "npm:^10.1.5" + meow: "npm:^12.1.1" micromatch: "npm:^4.0.5" normalize-path: "npm:^3.0.0" picocolors: "npm:^1.0.0" - postcss: "npm:^8.4.25" + postcss: "npm:^8.4.32" postcss-resolve-nested-selector: "npm:^0.1.1" - postcss-safe-parser: "npm:^6.0.0" + postcss-safe-parser: "npm:^7.0.0" postcss-selector-parser: "npm:^6.0.13" postcss-value-parser: "npm:^4.2.0" resolve-from: "npm:^5.0.0" string-width: "npm:^4.2.3" - strip-ansi: "npm:^6.0.1" - style-search: "npm:^0.1.0" + strip-ansi: "npm:^7.1.0" supports-hyperlinks: "npm:^3.0.0" svg-tags: "npm:^1.0.0" table: "npm:^6.8.1" write-file-atomic: "npm:^5.0.1" bin: stylelint: bin/stylelint.mjs - checksum: 8378ee868b09322d2b7e07b03461c524736778a391b2ce6d4ad46c636e55a90ed98723f253db10d9a762cfefec60200d0b9c5cd7798b2f373efd2d986768ebc7 + checksum: 957bc845dfe76216c571567f10bdf209e93592146024a3e726d860c7dcc42b84ed2a5ef4a722784e07aa371709d49f0d21dc9abd66a3a36fdbbaafb1b9cee2de languageName: node linkType: hard @@ -7031,13 +6840,6 @@ __metadata: languageName: node linkType: hard -"trim-newlines@npm:^4.0.2": - version: 4.1.1 - resolution: "trim-newlines@npm:4.1.1" - checksum: 70e60e652305efd0dda1f2bce1a5edc9bb5834a2e00d05dfde178715ec48faa8264a2bc1a7efc593b7936d03f6d42c398616329eef44b7bd5070180a02056981 - languageName: node - linkType: hard - "type-check@npm:^0.4.0, type-check@npm:~0.4.0": version: 0.4.0 resolution: "type-check@npm:0.4.0" @@ -7054,13 +6856,6 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^1.0.1, type-fest@npm:^1.2.1, type-fest@npm:^1.2.2": - version: 1.4.0 - resolution: "type-fest@npm:1.4.0" - checksum: a3c0f4ee28ff6ddf800d769eafafcdeab32efa38763c1a1b8daeae681920f6e345d7920bf277245235561d8117dab765cb5f829c76b713b4c9de0998a5397141 - languageName: node - linkType: hard - "uglify-js@npm:^3.1.4": version: 3.16.3 resolution: "uglify-js@npm:3.16.3" @@ -7149,16 +6944,6 @@ __metadata: languageName: node linkType: hard -"validate-npm-package-license@npm:^3.0.1": - version: 3.0.4 - resolution: "validate-npm-package-license@npm:3.0.4" - dependencies: - spdx-correct: "npm:^3.0.0" - spdx-expression-parse: "npm:^3.0.0" - checksum: 7b91e455a8de9a0beaa9fe961e536b677da7f48c9a493edf4d4d4a87fd80a7a10267d438723364e432c2fcd00b5650b5378275cded362383ef570276e6312f4f - languageName: node - linkType: hard - "watchpack@npm:^2.4.0": version: 2.4.0 resolution: "watchpack@npm:2.4.0" @@ -7362,13 +7147,6 @@ __metadata: languageName: node linkType: hard -"yargs-parser@npm:^20.2.9": - version: 20.2.9 - resolution: "yargs-parser@npm:20.2.9" - checksum: 0685a8e58bbfb57fab6aefe03c6da904a59769bd803a722bb098bd5b0f29d274a1357762c7258fb487512811b8063fb5d2824a3415a0a4540598335b3b086c72 - languageName: node - linkType: hard - "yocto-queue@npm:^0.1.0": version: 0.1.0 resolution: "yocto-queue@npm:0.1.0" From 38d31c1751f582eccf85feb2c66eb0eeb3b6e77b Mon Sep 17 00:00:00 2001 From: Daniel Beck <1831569+daniel-beck@users.noreply.github.com> Date: Wed, 13 Dec 2023 21:00:08 +0100 Subject: [PATCH 0085/1216] [JENKINS-60866][JENKINS-71051][JENKINS-71048] Un-inline 'Build Now' JS (#7635) * [JENKINS-60866] Un-inline 'Build Now' JS * Fix formatting * Use MorphTagLibrary to simplify API * Update docs for l:task attributes * This is a collosal waste of time Copied from 8aee10ea8a1c03c71868bd116e08efa1c9bbc1af, this is just stupid * Rename adjunct file, restructure to work around broken formatter * Exclude all documented attributes except data-* * Fix onclick behavior * Address review feedback --------- Co-authored-by: Daniel Beck --- .../lib/hudson/project/configurable.jelly | 16 ++------ .../project/configurable/configurable.js | 17 +++++++++ core/src/main/resources/lib/layout/task.jelly | 37 +++++++++++-------- .../main/resources/lib/layout/task/task.js | 28 ++++++++++++++ 4 files changed, 70 insertions(+), 28 deletions(-) create mode 100644 core/src/main/resources/lib/hudson/project/configurable/configurable.js create mode 100644 core/src/main/resources/lib/layout/task/task.js diff --git a/core/src/main/resources/lib/hudson/project/configurable.jelly b/core/src/main/resources/lib/hudson/project/configurable.jelly index 9bc320fd9266..44bac9b2b9bf 100644 --- a/core/src/main/resources/lib/hudson/project/configurable.jelly +++ b/core/src/main/resources/lib/hudson/project/configurable.jelly @@ -24,20 +24,10 @@ THE SOFTWARE. --> - + - - - + + diff --git a/core/src/main/resources/lib/hudson/project/configurable/configurable.js b/core/src/main/resources/lib/hudson/project/configurable/configurable.js new file mode 100644 index 000000000000..a96e64219502 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/configurable/configurable.js @@ -0,0 +1,17 @@ +(function () { + /* The JS formatting rules enforced in this repo can result in function declarations incompatible with HTMLUnit. + As a workaround, split function definition and assignment. */ + function foo(el, ev) { + let parameterized = el.dataset.parameterized; + let success = el.dataset.buildSuccess; + if (parameterized === "false") { + fetch(el.href, { + method: "post", + headers: crumb.wrap({}), + }); + hoverNotification(success, ev.target.parentNode); + ev.preventDefault(); + } + } + window.lib_hudson_project_configurable_build_now_callback = foo; +})(); diff --git a/core/src/main/resources/lib/layout/task.jelly b/core/src/main/resources/lib/layout/task.jelly index ec17b8e92a53..0d75a2b0b32d 100644 --- a/core/src/main/resources/lib/layout/task.jelly +++ b/core/src/main/resources/lib/layout/task.jelly @@ -77,6 +77,18 @@ THE SOFTWARE. (onclick supersedes this except in the context menu.) (since 1.512) + + Onclick inline JS handler. Deprecated, specify data-callback attribute instead. + + + Name of a global function to call when clicked. + It will be called with an element (currently 'a') as first argument, and the event as second argument. + You can specify further data-* attributes to customize behavior, those will be defined on the element passed as first argument. + See https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/dataset for more information about these attributes. + Has no effect if you specify the 'requiresConfirmation' attribute. + Has no effect on menu items showing in context menus, only 'href', 'post', and 'requiresConfirmation' attributes substantially change behavior there. + Set 'contextMenu' to 'false' to remove this task from those menus. + If set, displays the value as a small badge on the right side of the sidepanel item. (since 2.401) @@ -161,19 +173,6 @@ THE SOFTWARE. ${taskTags!=null and attrs.contextMenu!='false' ? taskTags.add(href, iconSrc, iconXml, title, post == 'true', requiresConfirmation == 'true', null, confirmationMessage ?: null) : null} - - - - @@ -191,7 +190,14 @@ THE SOFTWARE. - + + @@ -201,7 +207,8 @@ THE SOFTWARE. ${attrs.badge.text} - + + diff --git a/core/src/main/resources/lib/layout/task/task.js b/core/src/main/resources/lib/layout/task/task.js new file mode 100644 index 000000000000..5d6fd6fd008c --- /dev/null +++ b/core/src/main/resources/lib/layout/task/task.js @@ -0,0 +1,28 @@ +Behaviour.specify("a.task-link-no-confirm", "task-link", 0, function (el) { + if (el.onclick !== null) { + return; + } + + let post = el.dataset.taskPost; + let callback = el.dataset.callback; + let success = el.dataset.taskSuccess; + let href = el.href; + + if (callback !== undefined) { + el.onclick = function (ev) { + window[callback](el, ev); + }; + return; + } + + if (post === "true") { + el.onclick = function (ev) { + fetch(href, { + method: "post", + headers: crumb.wrap({}), + }); + hoverNotification(success, el.parentNode); + ev.preventDefault(); + }; + } +}); From 64dc3844b573c5efd5613b0f4498a18fceeb7443 Mon Sep 17 00:00:00 2001 From: Markus Winter Date: Wed, 13 Dec 2023 21:00:17 +0100 Subject: [PATCH 0086/1216] show node monitors on agent page (#8725) * show node monitors on agent page add an advanced button on the agent page. When clicking it will show the node monitors for this agent including any warnings/errors * fix style --- core/src/main/java/hudson/model/Computer.java | 12 ++++++++++++ .../resources/hudson/model/Computer/index.jelly | 14 +++++++++++++- war/src/main/scss/components/_table.scss | 4 ++++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/model/Computer.java b/core/src/main/java/hudson/model/Computer.java index ae41c47d341d..1759397d0b6d 100644 --- a/core/src/main/java/hudson/model/Computer.java +++ b/core/src/main/java/hudson/model/Computer.java @@ -90,6 +90,7 @@ import java.util.Enumeration; import java.util.HashMap; import java.util.HashSet; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; @@ -1161,6 +1162,17 @@ public String getSearchUrl() { return r; } + @Restricted(NoExternalUse.class) + public Map getMonitoringData() { + Map r = new LinkedHashMap<>(); + for (NodeMonitor monitor : NodeMonitor.getAll()) { + if (monitor.getColumnCaption() != null) { + r.put(monitor, monitor.data(this)); + } + } + return r; + } + /** * Gets the system properties of the JVM on this computer. * If this is the master, it returns the system property of the master computer. diff --git a/core/src/main/resources/hudson/model/Computer/index.jelly b/core/src/main/resources/hudson/model/Computer/index.jelly index 12d875f991d5..2b93c52fe3ee 100644 --- a/core/src/main/resources/hudson/model/Computer/index.jelly +++ b/core/src/main/resources/hudson/model/Computer/index.jelly @@ -69,7 +69,19 @@ THE SOFTWARE.

${%title.no_manual_launch(it.retentionStrategy.descriptor.displayName)}

- + +

+ + + + + + + +
${m.key.columnCaption}
+ + +

${%Labels}

diff --git a/war/src/main/scss/components/_table.scss b/war/src/main/scss/components/_table.scss index 0fe184f65f83..5ac54d12d927 100644 --- a/war/src/main/scss/components/_table.scss +++ b/war/src/main/scss/components/_table.scss @@ -183,6 +183,10 @@ } } + &--auto-width { + width: auto !important; + } + &--small { --table-padding: 0.2rem; From 0a9497951d8cb5693acf27513cd5344a51072c55 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Wed, 13 Dec 2023 15:00:30 -0500 Subject: [PATCH 0087/1216] Avoid file locks in `LauncherTest.remotable` (#8745) --- test/src/test/java/hudson/LauncherTest.java | 50 +++++++-------------- 1 file changed, 17 insertions(+), 33 deletions(-) diff --git a/test/src/test/java/hudson/LauncherTest.java b/test/src/test/java/hudson/LauncherTest.java index e7546b013d10..aaee823c0464 100644 --- a/test/src/test/java/hudson/LauncherTest.java +++ b/test/src/test/java/hudson/LauncherTest.java @@ -51,14 +51,11 @@ import hudson.tasks.Shell; import hudson.util.StreamTaskListener; import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.io.PrintStream; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; -import java.nio.file.Files; import java.util.HashMap; import java.util.Map; import org.junit.Rule; @@ -189,8 +186,8 @@ private static final class QuietBatchFile extends BatchFile { @Issue("JENKINS-52729") @Test public void remotable() throws Exception { - File log = new File(rule.jenkins.root, "log"); - try (var listener = new RemotableBuildListener(log)) { + try (var baos = new ByteArrayOutputStream()) { + var listener = new RemotableBuildListener(new StreamTaskListener(baos, StandardCharsets.UTF_8)); Launcher.ProcStarter ps = rule.createOnlineSlave().createLauncher(listener).launch(); if (Functions.isWindows()) { ps.cmds("cmd", "/c", "echo", "hello"); @@ -198,44 +195,38 @@ private static final class QuietBatchFile extends BatchFile { ps.cmds("echo", "hello"); } assertEquals(0, ps.stdout(listener).join()); - assertThat(Files.readString(log.toPath(), StandardCharsets.UTF_8).replace("\r\n", "\n"), + assertThat(baos.toString(StandardCharsets.UTF_8).replace("\r\n", "\n"), containsString("[master → slave0] $ " + (Functions.isWindows() ? "cmd /c " : "") + "echo hello\n" + "[master → slave0] hello")); } } - private static class RemotableBuildListener implements BuildListener, AutoCloseable { + private static class RemotableBuildListener implements BuildListener { private static final long serialVersionUID = 1; - /** location of log file streamed to by multiple sources */ - private final File logFile; - private OutputStream fos; + /** actual implementation */ + private final TaskListener delegate; /** records allocation & deserialization history; e.g., {@code master → agentName} */ private final String id; private transient PrintStream logger; - RemotableBuildListener(File logFile) { - this(logFile, "master"); + RemotableBuildListener(TaskListener delegate) { + this(delegate, "master"); } - private RemotableBuildListener(File logFile, String id) { - this.logFile = logFile; + private RemotableBuildListener(TaskListener delegate, String id) { + this.delegate = delegate; this.id = id; } @NonNull @Override public PrintStream getLogger() { if (logger == null) { - try { - fos = new FileOutputStream(logFile, true); - logger = new PrintStream(new LineTransformationOutputStream() { - @Override protected void eol(byte[] b, int len) throws IOException { - fos.write(("[" + id + "] ").getBytes(StandardCharsets.UTF_8)); - fos.write(b, 0, len); - } - }, true, StandardCharsets.UTF_8); - } catch (IOException x) { - throw new AssertionError(x); - } + logger = new PrintStream(new LineTransformationOutputStream.Delegating(delegate.getLogger()) { + @Override protected void eol(byte[] b, int len) throws IOException { + out.write(("[" + id + "] ").getBytes(StandardCharsets.UTF_8)); + out.write(b, 0, len); + } + }, true, StandardCharsets.UTF_8); } return logger; } @@ -243,14 +234,7 @@ private RemotableBuildListener(File logFile, String id) { private Object writeReplace() { Thread.dumpStack(); String name = Channel.current().getName(); - return new RemotableBuildListener(logFile, id + " → " + name); - } - - @Override - public void close() throws Exception { - if (fos != null) { - fos.close(); - } + return new RemotableBuildListener(delegate, id + " → " + name); } } From 7df7ae4a85d2f6409aebdeee2bc1cd0719bd76fb Mon Sep 17 00:00:00 2001 From: Daniel Beck <1831569+daniel-beck@users.noreply.github.com> Date: Wed, 13 Dec 2023 21:00:43 +0100 Subject: [PATCH 0088/1216] [JENKINS-72443] Do not show copy option without visible items (#8763) Co-authored-by: Daniel Beck --- .../resources/hudson/model/View/newJob.jelly | 2 +- .../jenkins/model/NewJobCopyFromTest.java | 32 +++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 test/src/test/java/jenkins/model/NewJobCopyFromTest.java diff --git a/core/src/main/resources/hudson/model/View/newJob.jelly b/core/src/main/resources/hudson/model/View/newJob.jelly index fa7f08da6055..f4f89e42af96 100644 --- a/core/src/main/resources/hudson/model/View/newJob.jelly +++ b/core/src/main/resources/hudson/model/View/newJob.jelly @@ -48,7 +48,7 @@ THE SOFTWARE.
- +

${%CopyOption.description}

diff --git a/test/src/test/java/jenkins/model/NewJobCopyFromTest.java b/test/src/test/java/jenkins/model/NewJobCopyFromTest.java new file mode 100644 index 000000000000..3a2150160a8b --- /dev/null +++ b/test/src/test/java/jenkins/model/NewJobCopyFromTest.java @@ -0,0 +1,32 @@ +package jenkins.model; + +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.CoreMatchers.nullValue; +import static org.hamcrest.MatcherAssert.assertThat; + +import hudson.model.Item; +import java.io.IOException; +import org.junit.Rule; +import org.junit.Test; +import org.jvnet.hudson.test.JenkinsRule; +import org.jvnet.hudson.test.MockAuthorizationStrategy; +import org.xml.sax.SAXException; + +public class NewJobCopyFromTest { + @Rule + public JenkinsRule j = new JenkinsRule(); + + @Test + public void checkLabel() throws IOException, SAXException { + try (JenkinsRule.WebClient wc = j.createWebClient()) { + // no items - validate assertion + assertThat(wc.goTo("newJob").getElementById("from"), is(nullValue())); + + // actual test + j.createFreeStyleProject(); + j.jenkins.setSecurityRealm(j.createDummySecurityRealm()); + j.jenkins.setAuthorizationStrategy(new MockAuthorizationStrategy().grant(Item.CREATE, Jenkins.READ).everywhere().toEveryone()); + assertThat(wc.goTo("newJob").getElementById("from"), is(nullValue())); + } + } +} From cc4e8e72e0a4e33c03d94b8fa4bfdd485a377ac2 Mon Sep 17 00:00:00 2001 From: Markus Winter Date: Wed, 13 Dec 2023 21:00:50 +0100 Subject: [PATCH 0089/1216] [JENKINS-72288] fix nested job link in mobile view (#8765) [JENKINS-72288] fix inested job link in mobile view when a view contains jobs that are from a nested folder, the links where not properly calculated. --- core/src/main/resources/lib/hudson/projectView.jelly | 1 + 1 file changed, 1 insertion(+) diff --git a/core/src/main/resources/lib/hudson/projectView.jelly b/core/src/main/resources/lib/hudson/projectView.jelly index 27d5cf967c6d..c7fdba3a542f 100644 --- a/core/src/main/resources/lib/hudson/projectView.jelly +++ b/core/src/main/resources/lib/hudson/projectView.jelly @@ -90,6 +90,7 @@ THE SOFTWARE.
+
From 0a7ab5f06eee33802b518f83bf8b8969155ae464 Mon Sep 17 00:00:00 2001 From: Markus Winter Date: Wed, 13 Dec 2023 21:01:01 +0100 Subject: [PATCH 0090/1216] [JENKINS-72157] ensure uptime is independent of system clock (#8771) --- core/src/main/java/jenkins/model/Uptime.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/jenkins/model/Uptime.java b/core/src/main/java/jenkins/model/Uptime.java index 1fa9c2f5e4f0..36daab52e636 100644 --- a/core/src/main/java/jenkins/model/Uptime.java +++ b/core/src/main/java/jenkins/model/Uptime.java @@ -13,6 +13,7 @@ @Extension public class Uptime { private long startTime; + private long startNanos; /** * Timestamp in which Jenkins became fully up and running. @@ -21,12 +22,17 @@ public long getStartTime() { return startTime; } + /** + * Duration in milliseconds since Jenkins became available + * @return uptime in milliseconds + */ public long getUptime() { - return System.currentTimeMillis() - startTime; + return (System.nanoTime() - startNanos) / 1000000L; } @Initializer(after = InitMilestone.JOB_CONFIG_ADAPTED) public void init() { startTime = System.currentTimeMillis(); + startNanos = System.nanoTime(); } } From be77274143b519c735418c972ef931b47f481662 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Dec 2023 13:50:23 -0800 Subject: [PATCH 0091/1216] Bump org.jenkins-ci.main:jenkins-test-harness from 2129.v09f309d2339c to 2135.v8f2e9795cf3f (#8778) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- test/src/test/java/hudson/model/NodeTest.java | 2 +- .../src/test/java/hudson/model/QueueTest.java | 9 +++---- .../java/hudson/tasks/BuildTriggerTest.java | 9 ++++--- .../triggers/ReverseBuildTriggerTest.java | 27 ++++++++++--------- 5 files changed, 25 insertions(+), 24 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index 0ffbfe5a1469..71d4556b7162 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -131,7 +131,7 @@ THE SOFTWARE. ${project.groupId} jenkins-test-harness - 2129.v09f309d2339c + 2135.v8f2e9795cf3f test diff --git a/test/src/test/java/hudson/model/NodeTest.java b/test/src/test/java/hudson/model/NodeTest.java index 037e53bc4d0f..7523f52c51a9 100644 --- a/test/src/test/java/hudson/model/NodeTest.java +++ b/test/src/test/java/hudson/model/NodeTest.java @@ -222,7 +222,7 @@ public void testCanTake() throws Exception { j.jenkins.setSecurityRealm(realm); realm.createAccount("John", ""); notTake = false; - QueueItemAuthenticatorConfiguration.get().getAuthenticators().add(new MockQueueItemAuthenticator(Map.of(project.getFullName(), user.impersonate()))); + QueueItemAuthenticatorConfiguration.get().getAuthenticators().add(new MockQueueItemAuthenticator(Map.of(project.getFullName(), user.impersonate2()))); assertNotNull("Node should not take project because user does not have build permission.", node.canTake(item)); message = Messages._Node_LackingBuildPermission(item.authenticate2().getName(), node.getNodeName()).toString(); assertEquals("Cause of blockage should be build permission label.", message, node.canTake(item).getShortDescription()); diff --git a/test/src/test/java/hudson/model/QueueTest.java b/test/src/test/java/hudson/model/QueueTest.java index bdacb2f72a63..bd46fc333e30 100644 --- a/test/src/test/java/hudson/model/QueueTest.java +++ b/test/src/test/java/hudson/model/QueueTest.java @@ -823,15 +823,14 @@ public boolean perform(AbstractBuild build, Launcher launcher, BuildListen p.getBuildersList().add(new TestBuilder() { @Override public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) { - assertEquals(alice2, Jenkins.getAuthentication2()); + assertEquals(alice, Jenkins.getAuthentication2()); return true; } }); r.buildAndAssertSuccess(p); } - private static Authentication alice2 = new UsernamePasswordAuthenticationToken("alice", "alice", Collections.emptySet()); - private static org.acegisecurity.Authentication alice = org.acegisecurity.Authentication.fromSpring(alice2); + private static Authentication alice = new UsernamePasswordAuthenticationToken("alice", "alice", Collections.emptySet()); /** @@ -850,7 +849,7 @@ public boolean perform(AbstractBuild build, Launcher launcher, BuildListen p.getBuildersList().add(new TestBuilder() { @Override public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) { - assertEquals(alice2, Jenkins.getAuthentication2()); + assertEquals(alice, Jenkins.getAuthentication2()); return true; } }); @@ -883,7 +882,7 @@ public ACL getACL(Node node) { if (node.getNodeName().equals(blocked)) { // ACL that allow anyone to do anything except Alice can't build. SparseACL acl = new SparseACL(null); - acl.add(new PrincipalSid(alice2), Computer.BUILD, false); + acl.add(new PrincipalSid(alice), Computer.BUILD, false); acl.add(new PrincipalSid("anonymous"), Jenkins.ADMINISTER, true); return acl; } diff --git a/test/src/test/java/hudson/tasks/BuildTriggerTest.java b/test/src/test/java/hudson/tasks/BuildTriggerTest.java index 0731854d894e..b8038afceebe 100644 --- a/test/src/test/java/hudson/tasks/BuildTriggerTest.java +++ b/test/src/test/java/hudson/tasks/BuildTriggerTest.java @@ -73,6 +73,7 @@ import org.jvnet.hudson.test.MockBuilder; import org.jvnet.hudson.test.MockQueueItemAuthenticator; import org.jvnet.hudson.test.TestBuilder; +import org.springframework.security.core.Authentication; import org.xml.sax.SAXException; public class BuildTriggerTest { @@ -150,7 +151,7 @@ public void downstreamProjectSecurity() throws Exception { auth.add(Computer.BUILD, "anonymous"); j.jenkins.setAuthorizationStrategy(auth); final FreeStyleProject upstream = j. createFreeStyleProject("upstream"); - org.acegisecurity.Authentication alice = User.getOrCreateByIdOrFullName("alice").impersonate(); + Authentication alice = User.getOrCreateByIdOrFullName("alice").impersonate2(); QueueItemAuthenticatorConfiguration.get().getAuthenticators().add(new MockQueueItemAuthenticator(Map.of("upstream", alice))); Map> perms = new HashMap<>(); perms.put(Item.READ, Set.of("alice")); @@ -206,7 +207,7 @@ public void downstreamProjectSecurity() throws Exception { assertNotNull(cause); assertEquals(b, cause.getUpstreamRun()); // Now if we have configured some QIA’s but they are not active on this job, we should normally fall back to running as anonymous. Which would normally have no permissions: - QueueItemAuthenticatorConfiguration.get().getAuthenticators().replace(new MockQueueItemAuthenticator(Map.of("upstream", Jenkins.ANONYMOUS))); + QueueItemAuthenticatorConfiguration.get().getAuthenticators().replace(new MockQueueItemAuthenticator(Map.of("upstream", Jenkins.ANONYMOUS2))); assertDoCheck(alice, Messages.BuildTrigger_you_have_no_permission_to_build_(downstreamName), upstream, downstreamName); assertDoCheck(alice, null, null, downstreamName); b = j.buildAndAssertSuccess(upstream); @@ -242,9 +243,9 @@ public void downstreamProjectSecurity() throws Exception { j.buildAndAssertSuccess(simple); } - private void assertDoCheck(org.acegisecurity.Authentication auth, @CheckForNull String expectedError, AbstractProject project, String value) { + private void assertDoCheck(Authentication auth, @CheckForNull String expectedError, AbstractProject project, String value) { FormValidation result; - try (ACLContext c = ACL.as(auth)) { + try (ACLContext c = ACL.as2(auth)) { result = j.jenkins.getDescriptorByType(BuildTrigger.DescriptorImpl.class).doCheck(project, value); } if (expectedError == null) { diff --git a/test/src/test/java/jenkins/triggers/ReverseBuildTriggerTest.java b/test/src/test/java/jenkins/triggers/ReverseBuildTriggerTest.java index d510ce069660..22dc81086364 100644 --- a/test/src/test/java/jenkins/triggers/ReverseBuildTriggerTest.java +++ b/test/src/test/java/jenkins/triggers/ReverseBuildTriggerTest.java @@ -57,6 +57,7 @@ import org.jvnet.hudson.test.JenkinsRule; import org.jvnet.hudson.test.MockAuthorizationStrategy; import org.jvnet.hudson.test.MockQueueItemAuthenticator; +import org.springframework.security.core.Authentication; public class ReverseBuildTriggerTest { @@ -115,9 +116,9 @@ public void runMoreQuickly() throws Exception { assertNotNull(JenkinsRule.getLog(b), downstream.getLastBuild()); assertEquals(1, downstream.getLastBuild().number); // A QIA is configured but does not specify any authentication for downstream, so upstream should not trigger it: - Map qiaConfig = new HashMap<>(); - qiaConfig.put(upstreamName, User.get("admin").impersonate()); - qiaConfig.put(downstreamName, Jenkins.ANONYMOUS); + Map qiaConfig = new HashMap<>(); + qiaConfig.put(upstreamName, User.get("admin").impersonate2()); + qiaConfig.put(downstreamName, Jenkins.ANONYMOUS2); QueueItemAuthenticatorConfiguration.get().getAuthenticators().add(new MockQueueItemAuthenticator(qiaConfig)); b = r.buildAndAssertSuccess(upstream); r.assertLogContains(downstreamName, b); @@ -126,8 +127,8 @@ public void runMoreQuickly() throws Exception { assertEquals(1, downstream.getLastBuild().number); // Auth for upstream is defined but cannot see downstream, so no message is printed about it: qiaConfig = new HashMap<>(); - qiaConfig.put(upstreamName, User.get("bob").impersonate()); - qiaConfig.put(downstreamName, Jenkins.ANONYMOUS); + qiaConfig.put(upstreamName, User.get("bob").impersonate2()); + qiaConfig.put(downstreamName, Jenkins.ANONYMOUS2); QueueItemAuthenticatorConfiguration.get().getAuthenticators().replace(new MockQueueItemAuthenticator(qiaConfig)); b = r.buildAndAssertSuccess(upstream); r.assertLogNotContains(downstreamName, b); @@ -136,8 +137,8 @@ public void runMoreQuickly() throws Exception { // Alice can see upstream, so downstream gets built, but the upstream build cannot see downstream: auth.grant(Item.READ).onItems(upstream).to("alice", "bob"); qiaConfig = new HashMap<>(); - qiaConfig.put(upstreamName, User.get("bob").impersonate()); - qiaConfig.put(downstreamName, User.get("alice").impersonate()); + qiaConfig.put(upstreamName, User.get("bob").impersonate2()); + qiaConfig.put(downstreamName, User.get("alice").impersonate2()); QueueItemAuthenticatorConfiguration.get().getAuthenticators().replace(new MockQueueItemAuthenticator(qiaConfig)); b = r.buildAndAssertSuccess(upstream); r.assertLogNotContains(downstreamName, b); @@ -146,8 +147,8 @@ public void runMoreQuickly() throws Exception { assertEquals(new Cause.UpstreamCause((Run) b), downstream.getLastBuild().getCause(Cause.UpstreamCause.class)); // Now if upstream build is permitted to report on downstream: qiaConfig = new HashMap<>(); - qiaConfig.put(upstreamName, User.get("admin").impersonate()); - qiaConfig.put(downstreamName, User.get("alice").impersonate()); + qiaConfig.put(upstreamName, User.get("admin").impersonate2()); + qiaConfig.put(downstreamName, User.get("alice").impersonate2()); QueueItemAuthenticatorConfiguration.get().getAuthenticators().replace(new MockQueueItemAuthenticator(qiaConfig)); b = r.buildAndAssertSuccess(upstream); r.assertLogContains(downstreamName, b); @@ -165,8 +166,8 @@ public void runMoreQuickly() throws Exception { r.jenkins.setAuthorizationStrategy(auth); auth.grant(Item.READ).onItems(downstream).to("alice"); qiaConfig = new HashMap<>(); - qiaConfig.put(upstreamName, User.get("bob").impersonate()); - qiaConfig.put(downstreamName, User.get("alice").impersonate()); + qiaConfig.put(upstreamName, User.get("bob").impersonate2()); + qiaConfig.put(downstreamName, User.get("alice").impersonate2()); QueueItemAuthenticatorConfiguration.get().getAuthenticators().replace(new MockQueueItemAuthenticator(qiaConfig)); b = r.buildAndAssertSuccess(upstream); r.assertLogNotContains(downstreamName, b); @@ -178,8 +179,8 @@ public void runMoreQuickly() throws Exception { auth.grant(Item.READ).onItems(upstream).to("bob"); auth.grant(Item.DISCOVER).onItems(upstream).to("anonymous"); qiaConfig = new HashMap<>(); - qiaConfig.put(upstreamName, User.get("bob").impersonate()); - qiaConfig.put(downstreamName, Jenkins.ANONYMOUS); + qiaConfig.put(upstreamName, User.get("bob").impersonate2()); + qiaConfig.put(downstreamName, Jenkins.ANONYMOUS2); QueueItemAuthenticatorConfiguration.get().getAuthenticators().replace(new MockQueueItemAuthenticator(qiaConfig)); b = r.buildAndAssertSuccess(upstream); r.assertLogNotContains(downstreamName, b); From 2239347454e7c0387749f9d81da8beb3129b1f2c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Dec 2023 19:41:06 -0800 Subject: [PATCH 0092/1216] Bump org.jenkins-ci.main:jenkins-test-harness from 2135.v8f2e9795cf3f to 2137.vb_4eb_49f51c4b_ (#8779) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- test/src/test/java/hudson/model/NodeTest.java | 3 +- .../src/test/java/hudson/model/QueueTest.java | 4 +- .../java/hudson/tasks/BuildTriggerTest.java | 4 +- .../triggers/ReverseBuildTriggerTest.java | 57 ++++++++++--------- 5 files changed, 36 insertions(+), 34 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index 71d4556b7162..dac1f5262364 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -131,7 +131,7 @@ THE SOFTWARE. ${project.groupId} jenkins-test-harness - 2135.v8f2e9795cf3f + 2137.vb_4eb_49f51c4b_ test diff --git a/test/src/test/java/hudson/model/NodeTest.java b/test/src/test/java/hudson/model/NodeTest.java index 7523f52c51a9..39ffe25f7643 100644 --- a/test/src/test/java/hudson/model/NodeTest.java +++ b/test/src/test/java/hudson/model/NodeTest.java @@ -58,7 +58,6 @@ import java.util.Collection; import java.util.GregorianCalendar; import java.util.List; -import java.util.Map; import jenkins.model.Jenkins; import jenkins.security.QueueItemAuthenticatorConfiguration; import org.htmlunit.HttpMethod; @@ -222,7 +221,7 @@ public void testCanTake() throws Exception { j.jenkins.setSecurityRealm(realm); realm.createAccount("John", ""); notTake = false; - QueueItemAuthenticatorConfiguration.get().getAuthenticators().add(new MockQueueItemAuthenticator(Map.of(project.getFullName(), user.impersonate2()))); + QueueItemAuthenticatorConfiguration.get().getAuthenticators().add(new MockQueueItemAuthenticator().authenticate(project.getFullName(), user.impersonate2())); assertNotNull("Node should not take project because user does not have build permission.", node.canTake(item)); message = Messages._Node_LackingBuildPermission(item.authenticate2().getName(), node.getNodeName()).toString(); assertEquals("Cause of blockage should be build permission label.", message, node.canTake(item).getShortDescription()); diff --git a/test/src/test/java/hudson/model/QueueTest.java b/test/src/test/java/hudson/model/QueueTest.java index bd46fc333e30..5e52bf6416d5 100644 --- a/test/src/test/java/hudson/model/QueueTest.java +++ b/test/src/test/java/hudson/model/QueueTest.java @@ -819,7 +819,7 @@ public boolean perform(AbstractBuild build, Launcher launcher, BuildListen */ @Test public void accessControl() throws Exception { FreeStyleProject p = r.createFreeStyleProject(); - QueueItemAuthenticatorConfiguration.get().getAuthenticators().add(new MockQueueItemAuthenticator(Map.of(p.getFullName(), alice))); + QueueItemAuthenticatorConfiguration.get().getAuthenticators().add(new MockQueueItemAuthenticator().authenticate(p.getFullName(), alice)); p.getBuildersList().add(new TestBuilder() { @Override public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) { @@ -845,7 +845,7 @@ public boolean perform(AbstractBuild build, Launcher launcher, BuildListen DumbSlave s2 = r.createSlave(); FreeStyleProject p = r.createFreeStyleProject(); - QueueItemAuthenticatorConfiguration.get().getAuthenticators().add(new MockQueueItemAuthenticator(Map.of(p.getFullName(), alice))); + QueueItemAuthenticatorConfiguration.get().getAuthenticators().add(new MockQueueItemAuthenticator().authenticate(p.getFullName(), alice)); p.getBuildersList().add(new TestBuilder() { @Override public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) { diff --git a/test/src/test/java/hudson/tasks/BuildTriggerTest.java b/test/src/test/java/hudson/tasks/BuildTriggerTest.java index b8038afceebe..aa4569d104a6 100644 --- a/test/src/test/java/hudson/tasks/BuildTriggerTest.java +++ b/test/src/test/java/hudson/tasks/BuildTriggerTest.java @@ -152,7 +152,7 @@ public void downstreamProjectSecurity() throws Exception { j.jenkins.setAuthorizationStrategy(auth); final FreeStyleProject upstream = j. createFreeStyleProject("upstream"); Authentication alice = User.getOrCreateByIdOrFullName("alice").impersonate2(); - QueueItemAuthenticatorConfiguration.get().getAuthenticators().add(new MockQueueItemAuthenticator(Map.of("upstream", alice))); + QueueItemAuthenticatorConfiguration.get().getAuthenticators().add(new MockQueueItemAuthenticator().authenticate("upstream", alice)); Map> perms = new HashMap<>(); perms.put(Item.READ, Set.of("alice")); perms.put(Item.CONFIGURE, Set.of("alice")); @@ -207,7 +207,7 @@ public void downstreamProjectSecurity() throws Exception { assertNotNull(cause); assertEquals(b, cause.getUpstreamRun()); // Now if we have configured some QIA’s but they are not active on this job, we should normally fall back to running as anonymous. Which would normally have no permissions: - QueueItemAuthenticatorConfiguration.get().getAuthenticators().replace(new MockQueueItemAuthenticator(Map.of("upstream", Jenkins.ANONYMOUS2))); + QueueItemAuthenticatorConfiguration.get().getAuthenticators().replace(new MockQueueItemAuthenticator().authenticate("upstream", Jenkins.ANONYMOUS2)); assertDoCheck(alice, Messages.BuildTrigger_you_have_no_permission_to_build_(downstreamName), upstream, downstreamName); assertDoCheck(alice, null, null, downstreamName); b = j.buildAndAssertSuccess(upstream); diff --git a/test/src/test/java/jenkins/triggers/ReverseBuildTriggerTest.java b/test/src/test/java/jenkins/triggers/ReverseBuildTriggerTest.java index 22dc81086364..a8b9022b03a1 100644 --- a/test/src/test/java/jenkins/triggers/ReverseBuildTriggerTest.java +++ b/test/src/test/java/jenkins/triggers/ReverseBuildTriggerTest.java @@ -42,9 +42,7 @@ import hudson.tasks.BuildTrigger; import hudson.tasks.BuildTriggerTest; import hudson.triggers.Trigger; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.Set; import jenkins.model.Jenkins; import jenkins.security.QueueItemAuthenticatorConfiguration; @@ -57,7 +55,6 @@ import org.jvnet.hudson.test.JenkinsRule; import org.jvnet.hudson.test.MockAuthorizationStrategy; import org.jvnet.hudson.test.MockQueueItemAuthenticator; -import org.springframework.security.core.Authentication; public class ReverseBuildTriggerTest { @@ -116,40 +113,44 @@ public void runMoreQuickly() throws Exception { assertNotNull(JenkinsRule.getLog(b), downstream.getLastBuild()); assertEquals(1, downstream.getLastBuild().number); // A QIA is configured but does not specify any authentication for downstream, so upstream should not trigger it: - Map qiaConfig = new HashMap<>(); - qiaConfig.put(upstreamName, User.get("admin").impersonate2()); - qiaConfig.put(downstreamName, Jenkins.ANONYMOUS2); - QueueItemAuthenticatorConfiguration.get().getAuthenticators().add(new MockQueueItemAuthenticator(qiaConfig)); + QueueItemAuthenticatorConfiguration.get() + .getAuthenticators() + .add(new MockQueueItemAuthenticator() + .authenticate(upstreamName, User.get("admin").impersonate2()) + .authenticate(downstreamName, Jenkins.ANONYMOUS2)); b = r.buildAndAssertSuccess(upstream); r.assertLogContains(downstreamName, b); r.assertLogContains(Messages.ReverseBuildTrigger_running_as_cannot_even_see_for_trigger_f("anonymous", upstreamName, downstreamName), b); r.waitUntilNoActivity(); assertEquals(1, downstream.getLastBuild().number); // Auth for upstream is defined but cannot see downstream, so no message is printed about it: - qiaConfig = new HashMap<>(); - qiaConfig.put(upstreamName, User.get("bob").impersonate2()); - qiaConfig.put(downstreamName, Jenkins.ANONYMOUS2); - QueueItemAuthenticatorConfiguration.get().getAuthenticators().replace(new MockQueueItemAuthenticator(qiaConfig)); + QueueItemAuthenticatorConfiguration.get() + .getAuthenticators() + .replace(new MockQueueItemAuthenticator() + .authenticate(upstreamName, User.get("bob").impersonate2()) + .authenticate(downstreamName, Jenkins.ANONYMOUS2)); b = r.buildAndAssertSuccess(upstream); r.assertLogNotContains(downstreamName, b); r.waitUntilNoActivity(); assertEquals(1, downstream.getLastBuild().number); // Alice can see upstream, so downstream gets built, but the upstream build cannot see downstream: auth.grant(Item.READ).onItems(upstream).to("alice", "bob"); - qiaConfig = new HashMap<>(); - qiaConfig.put(upstreamName, User.get("bob").impersonate2()); - qiaConfig.put(downstreamName, User.get("alice").impersonate2()); - QueueItemAuthenticatorConfiguration.get().getAuthenticators().replace(new MockQueueItemAuthenticator(qiaConfig)); + QueueItemAuthenticatorConfiguration.get() + .getAuthenticators() + .replace(new MockQueueItemAuthenticator() + .authenticate(upstreamName, User.get("bob").impersonate2()) + .authenticate(downstreamName, User.get("alice").impersonate2())); b = r.buildAndAssertSuccess(upstream); r.assertLogNotContains(downstreamName, b); r.waitUntilNoActivity(); assertEquals(2, downstream.getLastBuild().number); assertEquals(new Cause.UpstreamCause((Run) b), downstream.getLastBuild().getCause(Cause.UpstreamCause.class)); // Now if upstream build is permitted to report on downstream: - qiaConfig = new HashMap<>(); - qiaConfig.put(upstreamName, User.get("admin").impersonate2()); - qiaConfig.put(downstreamName, User.get("alice").impersonate2()); - QueueItemAuthenticatorConfiguration.get().getAuthenticators().replace(new MockQueueItemAuthenticator(qiaConfig)); + QueueItemAuthenticatorConfiguration.get() + .getAuthenticators() + .replace(new MockQueueItemAuthenticator() + .authenticate(upstreamName, User.get("admin").impersonate2()) + .authenticate(downstreamName, User.get("alice").impersonate2())); b = r.buildAndAssertSuccess(upstream); r.assertLogContains(downstreamName, b); r.waitUntilNoActivity(); @@ -165,10 +166,11 @@ public void runMoreQuickly() throws Exception { .grant(Item.DISCOVER).onItems(upstream).to("alice"); r.jenkins.setAuthorizationStrategy(auth); auth.grant(Item.READ).onItems(downstream).to("alice"); - qiaConfig = new HashMap<>(); - qiaConfig.put(upstreamName, User.get("bob").impersonate2()); - qiaConfig.put(downstreamName, User.get("alice").impersonate2()); - QueueItemAuthenticatorConfiguration.get().getAuthenticators().replace(new MockQueueItemAuthenticator(qiaConfig)); + QueueItemAuthenticatorConfiguration.get() + .getAuthenticators() + .replace(new MockQueueItemAuthenticator() + .authenticate(upstreamName, User.get("bob").impersonate2()) + .authenticate(downstreamName, User.get("alice").impersonate2())); b = r.buildAndAssertSuccess(upstream); r.assertLogNotContains(downstreamName, b); r.waitUntilNoActivity(); @@ -178,10 +180,11 @@ public void runMoreQuickly() throws Exception { // so no message is printed about it, and no Exception neither (JENKINS-42707) auth.grant(Item.READ).onItems(upstream).to("bob"); auth.grant(Item.DISCOVER).onItems(upstream).to("anonymous"); - qiaConfig = new HashMap<>(); - qiaConfig.put(upstreamName, User.get("bob").impersonate2()); - qiaConfig.put(downstreamName, Jenkins.ANONYMOUS2); - QueueItemAuthenticatorConfiguration.get().getAuthenticators().replace(new MockQueueItemAuthenticator(qiaConfig)); + QueueItemAuthenticatorConfiguration.get() + .getAuthenticators() + .replace(new MockQueueItemAuthenticator() + .authenticate(upstreamName, User.get("bob").impersonate2()) + .authenticate(downstreamName, Jenkins.ANONYMOUS2)); b = r.buildAndAssertSuccess(upstream); r.assertLogNotContains(downstreamName, b); r.assertLogNotContains("Please login to access job " + upstreamName, b); From 302e6ac2d1b64ea9035b00ab9fe79685dbf0aa68 Mon Sep 17 00:00:00 2001 From: Vincent Latombe Date: Thu, 14 Dec 2023 21:35:18 +0100 Subject: [PATCH 0093/1216] Logging improvements to `Run` related classes (#8777) Logging improvements to Run related classes --- core/src/main/java/hudson/model/Run.java | 2 ++ core/src/main/java/hudson/model/RunMap.java | 1 + .../model/lazy/AbstractLazyLoadRunMap.java | 15 ++++++++++++--- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/hudson/model/Run.java b/core/src/main/java/hudson/model/Run.java index 23358ade11f4..103d0c41ee98 100644 --- a/core/src/main/java/hudson/model/Run.java +++ b/core/src/main/java/hudson/model/Run.java @@ -2480,10 +2480,12 @@ public EnvVars getEnvironment() throws IOException, InterruptedException { } Jenkins j = Jenkins.getInstanceOrNull(); if (j == null) { + LOGGER.fine(() -> "Jenkins not running"); return null; } Job job = j.getItemByFullName(jobName, Job.class); if (job == null) { + LOGGER.fine(() -> "no such job " + jobName + " when running as " + Jenkins.getAuthentication2().getName()); return null; } return job.getBuildByNumber(number); diff --git a/core/src/main/java/hudson/model/RunMap.java b/core/src/main/java/hudson/model/RunMap.java index ca16fee660d2..b7bb97037940 100644 --- a/core/src/main/java/hudson/model/RunMap.java +++ b/core/src/main/java/hudson/model/RunMap.java @@ -239,6 +239,7 @@ protected R retrieve(File d) throws IOException { LOGGER.log(Level.WARNING, "could not load " + d, e); } } + LOGGER.fine(() -> "no config.xml in " + d); return null; } diff --git a/core/src/main/java/jenkins/model/lazy/AbstractLazyLoadRunMap.java b/core/src/main/java/jenkins/model/lazy/AbstractLazyLoadRunMap.java index 4d2710282ade..95e647cfdfdc 100644 --- a/core/src/main/java/jenkins/model/lazy/AbstractLazyLoadRunMap.java +++ b/core/src/main/java/jenkins/model/lazy/AbstractLazyLoadRunMap.java @@ -518,15 +518,21 @@ public R getByNumber(int n) { Index snapshot = index; if (snapshot.byNumber.containsKey(n)) { BuildReference ref = snapshot.byNumber.get(n); - if (ref == null) return null; // known failure + if (ref == null) { + LOGGER.fine(() -> "known failure of #" + n + " in " + dir); + return null; + } R v = unwrap(ref); - if (v != null) return v; // already in memory + if (v != null) { + return v; // already in memory + } // otherwise fall through to load } synchronized (this) { if (index.byNumber.containsKey(n)) { // JENKINS-22767: recheck inside lock BuildReference ref = index.byNumber.get(n); if (ref == null) { + LOGGER.fine(() -> "known failure of #" + n + " in " + dir); return null; } R v = unwrap(ref); @@ -655,7 +661,10 @@ private R load(File dataDir, Index editInPlace) { assert Thread.holdsLock(this); try { R r = retrieve(dataDir); - if (r == null) return null; + if (r == null) { + LOGGER.fine(() -> "nothing in " + dataDir); + return null; + } Index copy = editInPlace != null ? editInPlace : new Index(index); From 259ccc06fb01cbe5d2eb3a4bd232a49fefd835a5 Mon Sep 17 00:00:00 2001 From: Vincent Latombe Date: Thu, 14 Dec 2023 21:35:49 +0100 Subject: [PATCH 0094/1216] [JENKINS-72449] Specify that no fallback to the default locale should be used when looking up a resource bundle via `I18n` action. (#8776) [JENKINS-72449] Specify that no fallback to the default locale should be used when looking up a resource bundle When running the JVM with a default locale that is not english, the resource bundle lookup for english would return a bundle with that default locale, instead of using the "default" that is english. Also changed bundle resolution to use uberClassloader rather than iterating on all plugin classloaders --- .../java/jenkins/util/ResourceBundleUtil.java | 53 +++---------------- .../jenkins/util/ResourceBundleUtilTest.java | 47 +++++++++++----- 2 files changed, 40 insertions(+), 60 deletions(-) rename {core => test}/src/test/java/jenkins/util/ResourceBundleUtilTest.java (61%) diff --git a/core/src/main/java/jenkins/util/ResourceBundleUtil.java b/core/src/main/java/jenkins/util/ResourceBundleUtil.java index f663926e8263..f9f9310f5662 100644 --- a/core/src/main/java/jenkins/util/ResourceBundleUtil.java +++ b/core/src/main/java/jenkins/util/ResourceBundleUtil.java @@ -24,15 +24,12 @@ package jenkins.util; -import edu.umd.cs.findbugs.annotations.CheckForNull; import edu.umd.cs.findbugs.annotations.NonNull; -import hudson.PluginWrapper; import java.util.Locale; import java.util.Map; import java.util.MissingResourceException; import java.util.ResourceBundle; import java.util.concurrent.ConcurrentHashMap; -import java.util.logging.Logger; import jenkins.model.Jenkins; import net.sf.json.JSONObject; import org.kohsuke.accmod.Restricted; @@ -44,9 +41,8 @@ * @since 2.0 */ @Restricted(NoExternalUse.class) -public class ResourceBundleUtil { - - private static final Logger logger = Logger.getLogger("jenkins.util.ResourceBundle"); +public final class ResourceBundleUtil { + // TODO proper cache eviction private static final Map bundles = new ConcurrentHashMap<>(); private ResourceBundleUtil() { @@ -70,55 +66,20 @@ private ResourceBundleUtil() { * @throws MissingResourceException Missing resource bundle. */ public static @NonNull JSONObject getBundle(@NonNull String baseName, @NonNull Locale locale) throws MissingResourceException { - String bundleKey = baseName + ":" + locale; - JSONObject bundleJSON = bundles.get(bundleKey); + var bundleKey = baseName + ":" + locale; + var bundleJSON = bundles.get(bundleKey); if (bundleJSON != null) { return bundleJSON; } - - ResourceBundle bundle = getBundle(baseName, locale, Jenkins.class.getClassLoader()); - if (bundle == null) { - // Not in Jenkins core. Check the plugins. - Jenkins jenkins = Jenkins.getInstanceOrNull(); - if (jenkins != null) { - for (PluginWrapper plugin : jenkins.getPluginManager().getPlugins()) { - bundle = getBundle(baseName, locale, plugin.classLoader); - if (bundle != null) { - break; - } - } - } - } - if (bundle == null) { - throw new MissingResourceException("Can't find bundle for base name " - + baseName + ", locale " + locale, baseName + "_" + locale, ""); - } - - bundleJSON = toJSONObject(bundle); + var noFallbackControl = ResourceBundle.Control.getNoFallbackControl(ResourceBundle.Control.FORMAT_DEFAULT); + var uberClassLoader = Jenkins.get().getPluginManager().uberClassLoader; + bundleJSON = toJSONObject(ResourceBundle.getBundle(baseName, locale, uberClassLoader, noFallbackControl)); bundles.put(bundleKey, bundleJSON); return bundleJSON; } - /** - * Get a plugin bundle using the supplied Locale and classLoader - * - * @param baseName The bundle base name. - * @param locale The Locale. - * @param classLoader The classLoader - * @return The bundle JSON. - */ - private static @CheckForNull ResourceBundle getBundle(@NonNull String baseName, @NonNull Locale locale, @NonNull ClassLoader classLoader) { - try { - return ResourceBundle.getBundle(baseName, locale, classLoader); - } catch (MissingResourceException e) { - // fall through and return null. - logger.finer(e.getMessage()); - } - return null; - } - /** * Create a JSON representation of a resource bundle * diff --git a/core/src/test/java/jenkins/util/ResourceBundleUtilTest.java b/test/src/test/java/jenkins/util/ResourceBundleUtilTest.java similarity index 61% rename from core/src/test/java/jenkins/util/ResourceBundleUtilTest.java rename to test/src/test/java/jenkins/util/ResourceBundleUtilTest.java index a6265f0136db..d62ecdefd862 100644 --- a/core/src/test/java/jenkins/util/ResourceBundleUtilTest.java +++ b/test/src/test/java/jenkins/util/ResourceBundleUtilTest.java @@ -24,18 +24,23 @@ package jenkins.util; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertSame; import static org.junit.Assert.assertThrows; import java.util.Locale; import java.util.MissingResourceException; import net.sf.json.JSONObject; -import org.junit.Assert; +import org.junit.Rule; import org.junit.Test; +import org.jvnet.hudson.test.JenkinsRule; /** * @author tom.fennelly@gmail.com */ public class ResourceBundleUtilTest { + @Rule + public JenkinsRule j = new JenkinsRule(); /** * Test resource bundle loading for a defined locale. @@ -43,12 +48,20 @@ public class ResourceBundleUtilTest { @Test public void test_known_locale() { JSONObject bundle = ResourceBundleUtil.getBundle("hudson.logging.Messages", Locale.GERMAN); - Assert.assertEquals("Initialisiere Log-Rekorder", bundle.getString("LogRecorderManager.init")); + assertEquals("Initialisiere Log-Rekorder", bundle.getString("LogRecorderManager.init")); bundle = ResourceBundleUtil.getBundle("hudson.logging.Messages", new Locale("de")); - Assert.assertEquals("Initialisiere Log-Rekorder", bundle.getString("LogRecorderManager.init")); + assertEquals("Initialisiere Log-Rekorder", bundle.getString("LogRecorderManager.init")); // Test caching - should get the same bundle instance back... - Assert.assertSame(ResourceBundleUtil.getBundle("hudson.logging.Messages", new Locale("de")), bundle); + assertSame(ResourceBundleUtil.getBundle("hudson.logging.Messages", new Locale("de")), bundle); + } + + @Test + public void noFallbackLocale() { + try (var ignored = new DefaultLocale(new Locale("fr"))) { + var bundle = ResourceBundleUtil.getBundle("hudson.logging.Messages", new Locale("en")); + assertEquals("System Log", bundle.getString("LogRecorderManager.DisplayName")); + } } /** @@ -56,16 +69,8 @@ public void test_known_locale() { */ @Test public void test_unknown_locale() { - Locale defaultOSLocale = Locale.getDefault(); - try { - //Set Default-Locale to english - Locale.setDefault(new Locale("en", "US")); - - JSONObject bundle = ResourceBundleUtil.getBundle("hudson.logging.Messages", new Locale("kok")); // konkani - Assert.assertEquals("Initializing log recorders", bundle.getString("LogRecorderManager.init")); - } finally { - Locale.setDefault(defaultOSLocale); - } + JSONObject bundle = ResourceBundleUtil.getBundle("hudson.logging.Messages", new Locale("kok")); // konkani + assertEquals("Initializing log recorders", bundle.getString("LogRecorderManager.init")); } /** @@ -75,4 +80,18 @@ public void test_unknown_locale() { public void test_unknown_bundle() { assertThrows(MissingResourceException.class, () -> ResourceBundleUtil.getBundle("hudson.blah.Whatever")); } + + private static class DefaultLocale implements AutoCloseable { + private Locale previous; + + DefaultLocale(Locale locale) { + previous = Locale.getDefault(); + Locale.setDefault(locale); + } + + @Override + public void close() { + Locale.setDefault(previous); + } + } } From 9defb96b1650782fc29517415c10d7275a2daa1d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 15 Dec 2023 12:51:32 +0100 Subject: [PATCH 0095/1216] Update dependency stylelint to v16.0.2 (#8783) --- war/package.json | 2 +- war/yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/war/package.json b/war/package.json index 93c6136fcfdf..cedf5cd46bb4 100644 --- a/war/package.json +++ b/war/package.json @@ -42,7 +42,7 @@ "sass": "1.69.5", "sass-loader": "13.3.2", "style-loader": "3.3.3", - "stylelint": "16.0.1", + "stylelint": "16.0.2", "stylelint-checkstyle-reporter": "0.2.0", "stylelint-config-standard": "33.0.0", "webpack": "5.89.0", diff --git a/war/yarn.lock b/war/yarn.lock index 630e7fe727e3..7c665d6f5f4a 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -4363,7 +4363,7 @@ __metadata: sass-loader: "npm:13.3.2" sortablejs: "npm:1.15.1" style-loader: "npm:3.3.3" - stylelint: "npm:16.0.1" + stylelint: "npm:16.0.2" stylelint-checkstyle-reporter: "npm:0.2.0" stylelint-config-standard: "npm:33.0.0" tippy.js: "npm:6.3.7" @@ -6623,9 +6623,9 @@ __metadata: languageName: node linkType: hard -"stylelint@npm:16.0.1": - version: 16.0.1 - resolution: "stylelint@npm:16.0.1" +"stylelint@npm:16.0.2": + version: 16.0.2 + resolution: "stylelint@npm:16.0.2" dependencies: "@csstools/css-parser-algorithms": "npm:^2.3.2" "@csstools/css-tokenizer": "npm:^2.2.1" @@ -6667,7 +6667,7 @@ __metadata: write-file-atomic: "npm:^5.0.1" bin: stylelint: bin/stylelint.mjs - checksum: 957bc845dfe76216c571567f10bdf209e93592146024a3e726d860c7dcc42b84ed2a5ef4a722784e07aa371709d49f0d21dc9abd66a3a36fdbbaafb1b9cee2de + checksum: 5ec755e209beb1877ff40d50f18c1ebb05bf251925da1f98f28fb3911e4031195eb86adaf641ac5cdb01ba973f4c999bc0c6b0270d08c1d5c070adbdd9e734cf languageName: node linkType: hard From 8be599a9730726b933969115d72d4c6f0d42cc8b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Dec 2023 10:37:27 -0800 Subject: [PATCH 0096/1216] Bump org.jenkins-ci.plugins:junit from 1240.vf9529b_881428 to 1252.vfc2e5efa_294f (#8781) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index dac1f5262364..bb493bb4a975 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -212,7 +212,7 @@ THE SOFTWARE. org.jenkins-ci.plugins junit - 1240.vf9529b_881428 + 1252.vfc2e5efa_294f test From 2cdf80166ed41223fcf3b9a8b29fde9d31cd983f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Dec 2023 21:00:40 +0100 Subject: [PATCH 0097/1216] Bump actions/upload-artifact from 3 to 4 (#8784) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/changelog.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml index b1e18b9bc429..8383062fcc20 100644 --- a/.github/workflows/changelog.yml +++ b/.github/workflows/changelog.yml @@ -35,7 +35,7 @@ jobs: env: GITHUB_AUTH: github-actions:${{ secrets.GITHUB_TOKEN }} - name: Upload Changelog YAML - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: changelog.yaml path: changelog.yaml From c4b9e81b609bf88f7fe051215ffed15d0a6a7e27 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 15 Dec 2023 21:01:02 +0100 Subject: [PATCH 0098/1216] Update babel monorepo to v7.23.6 (#8782) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 4 +- war/yarn.lock | 157 ++++++++++++++++++++++++----------------------- 2 files changed, 81 insertions(+), 80 deletions(-) diff --git a/war/package.json b/war/package.json index cedf5cd46bb4..5fd76f8acc31 100644 --- a/war/package.json +++ b/war/package.json @@ -24,8 +24,8 @@ }, "devDependencies": { "@babel/cli": "7.23.4", - "@babel/core": "7.23.5", - "@babel/preset-env": "7.23.5", + "@babel/core": "7.23.6", + "@babel/preset-env": "7.23.6", "babel-loader": "9.1.3", "clean-webpack-plugin": "4.0.0", "css-loader": "6.8.1", diff --git a/war/yarn.lock b/war/yarn.lock index 7c665d6f5f4a..26c631d7d84a 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -59,45 +59,45 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9, @babel/compat-data@npm:^7.23.3, @babel/compat-data@npm:^7.23.5": +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.3, @babel/compat-data@npm:^7.23.5": version: 7.23.5 resolution: "@babel/compat-data@npm:7.23.5" checksum: 081278ed46131a890ad566a59c61600a5f9557bd8ee5e535890c8548192532ea92590742fd74bd9db83d74c669ef8a04a7e1c85cdea27f960233e3b83c3a957c languageName: node linkType: hard -"@babel/core@npm:7.23.5": - version: 7.23.5 - resolution: "@babel/core@npm:7.23.5" +"@babel/core@npm:7.23.6": + version: 7.23.6 + resolution: "@babel/core@npm:7.23.6" dependencies: "@ampproject/remapping": "npm:^2.2.0" "@babel/code-frame": "npm:^7.23.5" - "@babel/generator": "npm:^7.23.5" - "@babel/helper-compilation-targets": "npm:^7.22.15" + "@babel/generator": "npm:^7.23.6" + "@babel/helper-compilation-targets": "npm:^7.23.6" "@babel/helper-module-transforms": "npm:^7.23.3" - "@babel/helpers": "npm:^7.23.5" - "@babel/parser": "npm:^7.23.5" + "@babel/helpers": "npm:^7.23.6" + "@babel/parser": "npm:^7.23.6" "@babel/template": "npm:^7.22.15" - "@babel/traverse": "npm:^7.23.5" - "@babel/types": "npm:^7.23.5" + "@babel/traverse": "npm:^7.23.6" + "@babel/types": "npm:^7.23.6" convert-source-map: "npm:^2.0.0" debug: "npm:^4.1.0" gensync: "npm:^1.0.0-beta.2" json5: "npm:^2.2.3" semver: "npm:^6.3.1" - checksum: 311a512a870ee330a3f9a7ea89e5df790b2b5af0b1bd98b10b4edc0de2ac440f0df4d69ea2c0ee38a4b89041b9a495802741d93603be7d4fd834ec8bb6970bd2 + checksum: a02bae7d916029b70706dc301535e1b31e5d216f55d4ee6f64a15825c6b69ee2c14c52a213d1497ec414e925ed4e9d897d41fb0d75df9fea28ed2c0008790e31 languageName: node linkType: hard -"@babel/generator@npm:^7.23.5": - version: 7.23.5 - resolution: "@babel/generator@npm:7.23.5" +"@babel/generator@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/generator@npm:7.23.6" dependencies: - "@babel/types": "npm:^7.23.5" + "@babel/types": "npm:^7.23.6" "@jridgewell/gen-mapping": "npm:^0.3.2" "@jridgewell/trace-mapping": "npm:^0.3.17" jsesc: "npm:^2.5.1" - checksum: 14c6e874f796c4368e919bed6003bb0adc3ce837760b08f9e646d20aeb5ae7d309723ce6e4f06bcb4a2b5753145446c8e4425851380f695e40e71e1760f49e7b + checksum: 53540e905cd10db05d9aee0a5304e36927f455ce66f95d1253bb8a179f286b88fa7062ea0db354c566fe27f8bb96567566084ffd259f8feaae1de5eccc8afbda languageName: node linkType: hard @@ -119,16 +119,16 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.6": - version: 7.22.15 - resolution: "@babel/helper-compilation-targets@npm:7.22.15" +"@babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/helper-compilation-targets@npm:7.23.6" dependencies: - "@babel/compat-data": "npm:^7.22.9" - "@babel/helper-validator-option": "npm:^7.22.15" - browserslist: "npm:^4.21.9" + "@babel/compat-data": "npm:^7.23.5" + "@babel/helper-validator-option": "npm:^7.23.5" + browserslist: "npm:^4.22.2" lru-cache: "npm:^5.1.1" semver: "npm:^6.3.1" - checksum: 45b9286861296e890f674a3abb199efea14a962a27d9b8adeb44970a9fd5c54e73a9e342e8414d2851cf4f98d5994537352fbce7b05ade32e9849bbd327f9ff1 + checksum: ba38506d11185f48b79abf439462ece271d3eead1673dd8814519c8c903c708523428806f05f2ec5efd0c56e4e278698fac967e5a4b5ee842c32415da54bc6fa languageName: node linkType: hard @@ -321,7 +321,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.22.15, @babel/helper-validator-option@npm:^7.23.5": +"@babel/helper-validator-option@npm:^7.23.5": version: 7.23.5 resolution: "@babel/helper-validator-option@npm:7.23.5" checksum: af45d5c0defb292ba6fd38979e8f13d7da63f9623d8ab9ededc394f67eb45857d2601278d151ae9affb6e03d5d608485806cd45af08b4468a0515cf506510e94 @@ -339,14 +339,14 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.23.5": - version: 7.23.5 - resolution: "@babel/helpers@npm:7.23.5" +"@babel/helpers@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/helpers@npm:7.23.6" dependencies: "@babel/template": "npm:^7.22.15" - "@babel/traverse": "npm:^7.23.5" - "@babel/types": "npm:^7.23.5" - checksum: a37e2728eb4378a4888e5d614e28de7dd79b55ac8acbecd0e5c761273e2a02a8f33b34b1932d9069db55417ace2937cbf8ec37c42f1030ce6d228857d7ccaa4f + "@babel/traverse": "npm:^7.23.6" + "@babel/types": "npm:^7.23.6" + checksum: df1cf6607676ad36f52f652ec03536f2732d70aef5e76dba5c964e34d49f3c2d3dcf9fb3740db359f53071d74b64606a833d5ba156f79f437f71bfe06e2e7e19 languageName: node linkType: hard @@ -361,12 +361,12 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.5": - version: 7.23.5 - resolution: "@babel/parser@npm:7.23.5" +"@babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/parser@npm:7.23.6" bin: parser: ./bin/babel-parser.js - checksum: 3356aa90d7bafb4e2c7310e7c2c3d443c4be4db74913f088d3d577a1eb914ea4188e05fd50a47ce907a27b755c4400c4e3cbeee73dbeb37761f6ca85954f5a20 + checksum: 6f76cd5ccae1fa9bcab3525b0865c6222e9c1d22f87abc69f28c5c7b2c8816a13361f5bd06bddbd5faf903f7320a8feba02545c981468acec45d12a03db7755e languageName: node linkType: hard @@ -800,14 +800,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-for-of@npm:7.23.3" +"@babel/plugin-transform-for-of@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/plugin-transform-for-of@npm:7.23.6" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 8a36202cfee312ba80e509c7c2131e6773524e572b4dc64a8ee95bd912634fdeb5ea91c6c7747ee30e03562d0f0d333f88ed7dbb929b36b60b8d74189189e12f + checksum: 46681b6ab10f3ca2d961f50d4096b62ab5d551e1adad84e64be1ee23e72eb2f26a1e30e617e853c74f1349fffe4af68d33921a128543b6f24b6d46c09a3e2aec languageName: node linkType: hard @@ -1194,12 +1195,12 @@ __metadata: languageName: node linkType: hard -"@babel/preset-env@npm:7.23.5": - version: 7.23.5 - resolution: "@babel/preset-env@npm:7.23.5" +"@babel/preset-env@npm:7.23.6": + version: 7.23.6 + resolution: "@babel/preset-env@npm:7.23.6" dependencies: "@babel/compat-data": "npm:^7.23.5" - "@babel/helper-compilation-targets": "npm:^7.22.15" + "@babel/helper-compilation-targets": "npm:^7.23.6" "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/helper-validator-option": "npm:^7.23.5" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.23.3" @@ -1239,7 +1240,7 @@ __metadata: "@babel/plugin-transform-dynamic-import": "npm:^7.23.4" "@babel/plugin-transform-exponentiation-operator": "npm:^7.23.3" "@babel/plugin-transform-export-namespace-from": "npm:^7.23.4" - "@babel/plugin-transform-for-of": "npm:^7.23.3" + "@babel/plugin-transform-for-of": "npm:^7.23.6" "@babel/plugin-transform-function-name": "npm:^7.23.3" "@babel/plugin-transform-json-strings": "npm:^7.23.4" "@babel/plugin-transform-literals": "npm:^7.23.3" @@ -1280,7 +1281,7 @@ __metadata: semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2a0e1274dec045186e131c6433659b75492583290e8d41633c616f6bff829cb2e4b2f9a57f556283a54db3bd6aa697911e56a36f607911a29b731c445a5b5a06 + checksum: 5b24d179af52f082d04b9b98cc4777e37bf31a97cef5a91d8917e996dbd75f2f743c88c40f80744cb8529355bb674619d150c0260c32d834aa4067e21d0c8962 languageName: node linkType: hard @@ -1324,32 +1325,32 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.23.5": - version: 7.23.5 - resolution: "@babel/traverse@npm:7.23.5" +"@babel/traverse@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/traverse@npm:7.23.6" dependencies: "@babel/code-frame": "npm:^7.23.5" - "@babel/generator": "npm:^7.23.5" + "@babel/generator": "npm:^7.23.6" "@babel/helper-environment-visitor": "npm:^7.22.20" "@babel/helper-function-name": "npm:^7.23.0" "@babel/helper-hoist-variables": "npm:^7.22.5" "@babel/helper-split-export-declaration": "npm:^7.22.6" - "@babel/parser": "npm:^7.23.5" - "@babel/types": "npm:^7.23.5" - debug: "npm:^4.1.0" + "@babel/parser": "npm:^7.23.6" + "@babel/types": "npm:^7.23.6" + debug: "npm:^4.3.1" globals: "npm:^11.1.0" - checksum: c5ea793080ca6719b0a1612198fd25e361cee1f3c14142d7a518d2a1eeb5c1d21f7eec1b26c20ea6e1ddd8ed12ab50b960ff95ffd25be353b6b46e1b54d6f825 + checksum: 5b4ebb94a00a7e1daf111e4b0b45a7998d5b7598637a14e75e855e88cc1b702789e09a958726b5d599a003be1e9032dbdfde4b88ea6061332228738950d5582d languageName: node linkType: hard -"@babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.5, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": - version: 7.23.5 - resolution: "@babel/types@npm:7.23.5" +"@babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.6, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": + version: 7.23.6 + resolution: "@babel/types@npm:7.23.6" dependencies: "@babel/helper-string-parser": "npm:^7.23.4" "@babel/helper-validator-identifier": "npm:^7.22.20" to-fast-properties: "npm:^2.0.0" - checksum: 7dd5e2f59828ed046ad0b06b039df2524a8b728d204affb4fc08da2502b9dd3140b1356b5166515d229dc811539a8b70dcd4bc507e06d62a89f4091a38d0b0fb + checksum: 42cefce8a68bd09bb5828b4764aa5586c53c60128ac2ac012e23858e1c179347a4aac9c66fc577994fbf57595227611c5ec8270bf0cfc94ff033bbfac0550b70 languageName: node linkType: hard @@ -2720,17 +2721,17 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.0.0, browserslist@npm:^4.14.5, browserslist@npm:^4.21.10, browserslist@npm:^4.21.4, browserslist@npm:^4.21.9, browserslist@npm:^4.22.1": - version: 4.22.1 - resolution: "browserslist@npm:4.22.1" +"browserslist@npm:^4.0.0, browserslist@npm:^4.14.5, browserslist@npm:^4.21.10, browserslist@npm:^4.21.4, browserslist@npm:^4.22.1, browserslist@npm:^4.22.2": + version: 4.22.2 + resolution: "browserslist@npm:4.22.2" dependencies: - caniuse-lite: "npm:^1.0.30001541" - electron-to-chromium: "npm:^1.4.535" - node-releases: "npm:^2.0.13" + caniuse-lite: "npm:^1.0.30001565" + electron-to-chromium: "npm:^1.4.601" + node-releases: "npm:^2.0.14" update-browserslist-db: "npm:^1.0.13" bin: browserslist: cli.js - checksum: 6810f2d63f171d0b7b8d38cf091708e00cb31525501810a507839607839320d66e657293b0aa3d7f051ecbc025cb07390a90c037682c1d05d12604991e41050b + checksum: 2a331aab90503130043ca41dd5d281fa1e89d5e076d07a2d75e76bf4d693bd56e73d5abcd8c4f39119da6328d450578c216cf1cd5c99b82d8a90a2ae6271b465 languageName: node linkType: hard @@ -2786,10 +2787,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001538, caniuse-lite@npm:^1.0.30001541": - version: 1.0.30001547 - resolution: "caniuse-lite@npm:1.0.30001547" - checksum: bd8ef400fdd6a76aa5a4bc490a5b9b8adffbff1657d36ee1516b4be30315f1a3cfaa51ab872a46d5e7db17424eaa335593cd27e640248b4df3897b113650a7d3 +"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001538, caniuse-lite@npm:^1.0.30001565": + version: 1.0.30001570 + resolution: "caniuse-lite@npm:1.0.30001570" + checksum: e47230d2016edea56e002fa462a5289f697b48dcfbf703fb01aecc6c98ad4ecaf945ab23c253cb7af056c2d05f266e4e4cbebf45132100e2c9367439cb95b95b languageName: node linkType: hard @@ -3264,7 +3265,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": version: 4.3.4 resolution: "debug@npm:4.3.4" dependencies: @@ -3368,10 +3369,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.4.535": - version: 1.4.552 - resolution: "electron-to-chromium@npm:1.4.552" - checksum: ebb903d18fab159f7517bca266428a0139d8fc0472a71afc37819a18f5428637630b667bb14efeb45d92f7ddc9ab191f14b98c0b20117eb7c0415be8c7d4abe4 +"electron-to-chromium@npm:^1.4.601": + version: 1.4.612 + resolution: "electron-to-chromium@npm:1.4.612" + checksum: 4afeae778beb67e81a47e362b72847efc24161b7673818b3d5a36fa0678f006629436a5cfa6b0bb0291927c61d01e58b66330942cc7f4109f170bdec6bfafd73 languageName: node linkType: hard @@ -4340,8 +4341,8 @@ __metadata: resolution: "jenkins-ui@workspace:." dependencies: "@babel/cli": "npm:7.23.4" - "@babel/core": "npm:7.23.5" - "@babel/preset-env": "npm:7.23.5" + "@babel/core": "npm:7.23.6" + "@babel/preset-env": "npm:7.23.6" babel-loader: "npm:9.1.3" clean-webpack-plugin: "npm:4.0.0" css-loader: "npm:6.8.1" @@ -4970,10 +4971,10 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^2.0.13": - version: 2.0.13 - resolution: "node-releases@npm:2.0.13" - checksum: 2fb44bf70fc949d27f3a48a7fd1a9d1d603ddad4ccd091f26b3fb8b1da976605d919330d7388ccd55ca2ade0dc8b2e12841ba19ef249c8bb29bf82532d401af7 +"node-releases@npm:^2.0.14": + version: 2.0.14 + resolution: "node-releases@npm:2.0.14" + checksum: 199fc93773ae70ec9969bc6d5ac5b2bbd6eb986ed1907d751f411fef3ede0e4bfdb45ceb43711f8078bea237b6036db8b1bf208f6ff2b70c7d615afd157f3ab9 languageName: node linkType: hard From 3f1880179c7476e23a9d6dd9c8ad8f8ef336cae6 Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Sat, 16 Dec 2023 00:47:37 -0800 Subject: [PATCH 0099/1216] EOL `Global-Mask-Classes` (#8785) --- .../java/hudson/ClassicPluginStrategy.java | 17 ++-------------- .../java/hudson/util/MaskingClassLoader.java | 20 ++++++------------- 2 files changed, 8 insertions(+), 29 deletions(-) diff --git a/core/src/main/java/hudson/ClassicPluginStrategy.java b/core/src/main/java/hudson/ClassicPluginStrategy.java index 1047ec5a3dbc..10b0d179fdd7 100644 --- a/core/src/main/java/hudson/ClassicPluginStrategy.java +++ b/core/src/main/java/hudson/ClassicPluginStrategy.java @@ -86,11 +86,6 @@ public class ClassicPluginStrategy implements PluginStrategy { private final PluginManager pluginManager; - /** - * All the plugins eventually delegate this classloader to load core, servlet APIs, and SE runtime. - */ - private final MaskingClassLoader coreClassLoader = new MaskingClassLoader(getClass().getClassLoader()); - public ClassicPluginStrategy(PluginManager pluginManager) { this.pluginManager = pluginManager; } @@ -235,16 +230,8 @@ private static Manifest loadLinkedManifest(File archive) throws IOException { fix(atts, optionalDependencies); - // Register global classpath mask. This is useful for hiding JavaEE APIs that you might see from the container, - // such as database plugin for JPA support. The Mask-Classes attribute is insufficient because those classes - // also need to be masked by all the other plugins that depend on the database plugin. - String masked = atts.getValue("Global-Mask-Classes"); - if (masked != null) { - for (String pkg : masked.trim().split("[ \t\r\n]+")) - coreClassLoader.add(pkg); - } - - ClassLoader dependencyLoader = new DependencyClassLoader(coreClassLoader, archive, Util.join(dependencies, optionalDependencies), pluginManager); + ClassLoader dependencyLoader = new DependencyClassLoader( + getClass().getClassLoader(), archive, Util.join(dependencies, optionalDependencies), pluginManager); dependencyLoader = getBaseClassLoader(atts, dependencyLoader); return new PluginWrapper(pluginManager, archive, manifest, baseResourceURL, diff --git a/core/src/main/java/hudson/util/MaskingClassLoader.java b/core/src/main/java/hudson/util/MaskingClassLoader.java index efb05831ccce..74bbbe1a9863 100644 --- a/core/src/main/java/hudson/util/MaskingClassLoader.java +++ b/core/src/main/java/hudson/util/MaskingClassLoader.java @@ -31,7 +31,7 @@ import java.util.Collections; import java.util.Enumeration; import java.util.List; -import java.util.concurrent.CopyOnWriteArrayList; +import java.util.stream.Collectors; /** * {@link ClassLoader} that masks a specified set of classes @@ -46,9 +46,9 @@ public class MaskingClassLoader extends ClassLoader { /** * Prefix of the packages that should be hidden. */ - private final List masksClasses = new CopyOnWriteArrayList<>(); + private final List masksClasses; - private final List masksResources = new CopyOnWriteArrayList<>(); + private final List masksResources; static { registerAsParallelCapable(); @@ -60,14 +60,13 @@ public MaskingClassLoader(ClassLoader parent, String... masks) { public MaskingClassLoader(ClassLoader parent, Collection masks) { super(parent); - this.masksClasses.addAll(masks); + this.masksClasses = List.copyOf(masks); /* * The name of a resource is a '/'-separated path name */ - for (String mask : masks) { - masksResources.add(mask.replace('.', '/')); - } + this.masksResources = + masks.stream().map(mask -> mask.replace('.', '/')).collect(Collectors.toUnmodifiableList()); } @Override @@ -94,13 +93,6 @@ public Enumeration getResources(String name) throws IOException { return super.getResources(name); } - public void add(String prefix) { - masksClasses.add(prefix); - if (prefix != null) { - masksResources.add(prefix.replace('.', '/')); - } - } - private boolean isMasked(String name) { for (String mask : masksResources) { if (name.startsWith(mask)) From 7a2e389f0d8d1e0f2b894f5fdfba1568bc153305 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 17 Dec 2023 10:48:55 -0800 Subject: [PATCH 0100/1216] Update jenkins/ath Docker tag to v5770 (#8786) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- ath.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ath.sh b/ath.sh index db84a79fff2a..a084a1cc7b58 100644 --- a/ath.sh +++ b/ath.sh @@ -6,7 +6,7 @@ set -o xtrace cd "$(dirname "$0")" # https://github.com/jenkinsci/acceptance-test-harness/releases -export ATH_VERSION=5740.vd30f30408987 +export ATH_VERSION=5770.v81b_784f28b_d7 if [[ $# -eq 0 ]]; then export JDK=17 From 7258cad41408a35590ab85ab28cad9e9ffe4aeda Mon Sep 17 00:00:00 2001 From: Markus Winter Date: Mon, 18 Dec 2023 18:21:48 +0100 Subject: [PATCH 0101/1216] [JENKINS-72371] rework node monitor configuration (#8719) * [JENKINS-72371] rework node monitor configuration This PR reworks the way node monitors are configured. It ensures that also monitors which are set to ignored, can be configured. Previously, there was a checkbox before each monitor, where the behaviour was not totally clear. It meant that the monitor is ignored but still collecting data and not disabled as one might think. But when the monitor was disabled any configuration was lost and default values were used. * improve description * fix formatting * add since --- .../main/java/hudson/model/ComputerSet.java | 24 ++++++++++++++++--- .../AbstractNodeMonitorDescriptor.java | 19 +++++++++++++++ .../node_monitors/ArchitectureMonitor.java | 6 ++--- .../hudson/node_monitors/ClockMonitor.java | 12 ++++------ .../hudson/node_monitors/NodeMonitor.java | 2 ++ .../node_monitors/ResponseTimeMonitor.java | 7 ------ .../node_monitors/SwapSpaceMonitor.java | 12 ++++------ .../hudson/model/ComputerSet/configure.jelly | 3 ++- .../model/ComputerSet/configure.properties | 3 ++- .../ArchitectureMonitor/help.html | 2 +- .../node_monitors/ClockMonitor/help.html | 2 ++ .../node_monitors/NodeMonitor/configure.jelly | 24 +++++++++++++++++++ .../NodeMonitor/help-ignored.html | 7 ++++++ .../ResponseTimeMonitor/help.html | 3 +-- .../node_monitors/SwapSpaceMonitor/help.html | 22 +++++++++++++++++ 15 files changed, 115 insertions(+), 33 deletions(-) create mode 100644 core/src/main/resources/hudson/node_monitors/NodeMonitor/configure.jelly create mode 100644 core/src/main/resources/hudson/node_monitors/NodeMonitor/help-ignored.html create mode 100644 core/src/main/resources/hudson/node_monitors/SwapSpaceMonitor/help.html diff --git a/core/src/main/java/hudson/model/ComputerSet.java b/core/src/main/java/hudson/model/ComputerSet.java index cad9089b776f..5cb798978dea 100644 --- a/core/src/main/java/hudson/model/ComputerSet.java +++ b/core/src/main/java/hudson/model/ComputerSet.java @@ -352,15 +352,33 @@ public synchronized HttpResponse doConfigSubmit(StaplerRequest req) throws IOExc BulkChange bc = new BulkChange(MONITORS_OWNER); try { Jenkins.get().checkPermission(Jenkins.MANAGE); - monitors.rebuild(req, req.getSubmittedForm(), getNodeMonitorDescriptors()); + JSONObject json = req.getSubmittedForm(); + monitors.rebuild(req, json, getNodeMonitorDescriptors()); // add in the rest of instances are ignored instances - for (Descriptor d : NodeMonitor.all()) - if (monitors.get(d) == null) { + for (Descriptor d : NodeMonitor.all()) { + NodeMonitor monitor = monitors.get(d); + if (monitor == null) { NodeMonitor i = createDefaultInstance(d, true); if (i != null) monitors.add(i); + } else { + /* + * Some monitors in plugins do not have a DataBoundConstructor + * but a Descriptor that overrides newInstance. For those the ignored + * field is not set, so we have to explicitly set it. + */ + String name = d.getJsonSafeClassName(); + JSONObject o = json.optJSONObject(name); + boolean ignored = true; + if (o != null) { + if (o.containsKey("ignored")) { + ignored = o.getBoolean("ignored"); + } + } + monitor.setIgnored(ignored); } + } // recompute the data for (NodeMonitor nm : monitors) { diff --git a/core/src/main/java/hudson/node_monitors/AbstractNodeMonitorDescriptor.java b/core/src/main/java/hudson/node_monitors/AbstractNodeMonitorDescriptor.java index 4a2386c2a1b1..927e826ece67 100644 --- a/core/src/main/java/hudson/node_monitors/AbstractNodeMonitorDescriptor.java +++ b/core/src/main/java/hudson/node_monitors/AbstractNodeMonitorDescriptor.java @@ -65,6 +65,25 @@ protected AbstractNodeMonitorDescriptor() { this(PERIOD); } + /** + * Indicates if this monitor is capable to take agents offline in case it detects a problem. + * If true, this will enable the configuration option to ignore the monitor. + * Defaults to {@code true} so plugins that do not override this method behave as before. + * Plugins that do implement a monitor that will not take agents offline should override this + * method and return false. + * + * @return true if this monitor might take agents offline + * @since TODO + */ + public boolean canTakeOffline() { + return true; + } + + @Override + public String getConfigPage() { + return getViewPage(clazz, "configure.jelly"); + } + /** * @deprecated as of 1.522 * Extend from {@link AbstractAsyncNodeMonitorDescriptor} diff --git a/core/src/main/java/hudson/node_monitors/ArchitectureMonitor.java b/core/src/main/java/hudson/node_monitors/ArchitectureMonitor.java index d2c60a2544d0..e9c63ab74433 100644 --- a/core/src/main/java/hudson/node_monitors/ArchitectureMonitor.java +++ b/core/src/main/java/hudson/node_monitors/ArchitectureMonitor.java @@ -30,10 +30,8 @@ import hudson.remoting.Callable; import java.io.IOException; import jenkins.security.MasterToSlaveCallable; -import net.sf.json.JSONObject; import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; -import org.kohsuke.stapler.StaplerRequest; /** * Discovers the architecture of the system to display in the agent list page. @@ -60,8 +58,8 @@ public String getDisplayName() { } @Override - public NodeMonitor newInstance(StaplerRequest req, JSONObject formData) throws FormException { - return new ArchitectureMonitor(); + public boolean canTakeOffline() { + return false; } } diff --git a/core/src/main/java/hudson/node_monitors/ClockMonitor.java b/core/src/main/java/hudson/node_monitors/ClockMonitor.java index b958df61d776..b9c0f77b5c99 100644 --- a/core/src/main/java/hudson/node_monitors/ClockMonitor.java +++ b/core/src/main/java/hudson/node_monitors/ClockMonitor.java @@ -32,12 +32,10 @@ import hudson.remoting.Callable; import hudson.util.ClockDifference; import java.io.IOException; -import net.sf.json.JSONObject; import org.jenkinsci.Symbol; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.DataBoundConstructor; -import org.kohsuke.stapler.StaplerRequest; /** * {@link NodeMonitor} that checks clock of {@link Node} to @@ -72,6 +70,11 @@ public DescriptorImpl() { DESCRIPTOR = this; } + @Override + public boolean canTakeOffline() { + return false; + } + @Override protected Callable createCallable(Computer c) { Node n = c.getNode(); @@ -84,10 +87,5 @@ protected Callable createCallable(Computer c) { public String getDisplayName() { return Messages.ClockMonitor_DisplayName(); } - - @Override - public NodeMonitor newInstance(StaplerRequest req, JSONObject formData) throws FormException { - return new ClockMonitor(); - } } } diff --git a/core/src/main/java/hudson/node_monitors/NodeMonitor.java b/core/src/main/java/hudson/node_monitors/NodeMonitor.java index 0fb737a7677a..61ac5d67b7d4 100644 --- a/core/src/main/java/hudson/node_monitors/NodeMonitor.java +++ b/core/src/main/java/hudson/node_monitors/NodeMonitor.java @@ -37,6 +37,7 @@ import hudson.util.DescriptorList; import java.util.List; import jenkins.model.Jenkins; +import org.kohsuke.stapler.DataBoundSetter; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; @@ -133,6 +134,7 @@ public boolean isIgnored() { return ignored; } + @DataBoundSetter public void setIgnored(boolean ignored) { this.ignored = ignored; } diff --git a/core/src/main/java/hudson/node_monitors/ResponseTimeMonitor.java b/core/src/main/java/hudson/node_monitors/ResponseTimeMonitor.java index 5a7223039696..a2bf84ea817f 100644 --- a/core/src/main/java/hudson/node_monitors/ResponseTimeMonitor.java +++ b/core/src/main/java/hudson/node_monitors/ResponseTimeMonitor.java @@ -34,10 +34,8 @@ import java.util.Map; import java.util.logging.Logger; import jenkins.security.MasterToSlaveCallable; -import net.sf.json.JSONObject; import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; -import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; @@ -103,11 +101,6 @@ protected Map monitor() throws InterruptedException { public String getDisplayName() { return Messages.ResponseTimeMonitor_DisplayName(); } - - @Override - public NodeMonitor newInstance(StaplerRequest req, JSONObject formData) throws FormException { - return new ResponseTimeMonitor(); - } } private static final class Step1 extends MasterToSlaveCallable { diff --git a/core/src/main/java/hudson/node_monitors/SwapSpaceMonitor.java b/core/src/main/java/hudson/node_monitors/SwapSpaceMonitor.java index 09064ccb4a82..fa7f53eab70b 100644 --- a/core/src/main/java/hudson/node_monitors/SwapSpaceMonitor.java +++ b/core/src/main/java/hudson/node_monitors/SwapSpaceMonitor.java @@ -33,12 +33,10 @@ import java.io.IOException; import jenkins.model.Jenkins; import jenkins.security.MasterToSlaveCallable; -import net.sf.json.JSONObject; import org.jenkinsci.Symbol; import org.jvnet.hudson.MemoryMonitor; import org.jvnet.hudson.MemoryUsage; import org.kohsuke.stapler.DataBoundConstructor; -import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; @@ -103,6 +101,11 @@ public DescriptorImpl() { DESCRIPTOR = this; } + @Override + public boolean canTakeOffline() { + return false; + } + @Override protected MonitorTask createCallable(Computer c) { return new MonitorTask(); @@ -113,11 +116,6 @@ protected MonitorTask createCallable(Computer c) { public String getDisplayName() { return Messages.SwapSpaceMonitor_DisplayName(); } - - @Override - public NodeMonitor newInstance(StaplerRequest req, JSONObject formData) throws FormException { - return new SwapSpaceMonitor(); - } } /** diff --git a/core/src/main/resources/hudson/model/ComputerSet/configure.jelly b/core/src/main/resources/hudson/model/ComputerSet/configure.jelly index 4bbd52b4c4dc..9e58aeda59e6 100644 --- a/core/src/main/resources/hudson/model/ComputerSet/configure.jelly +++ b/core/src/main/resources/hudson/model/ComputerSet/configure.jelly @@ -42,7 +42,8 @@ THE SOFTWARE. + instances="${it.monitors}" + forceRowSet="true"/> diff --git a/core/src/main/resources/hudson/model/ComputerSet/configure.properties b/core/src/main/resources/hudson/model/ComputerSet/configure.properties index e2e74cba5ece..1df5cc610747 100644 --- a/core/src/main/resources/hudson/model/ComputerSet/configure.properties +++ b/core/src/main/resources/hudson/model/ComputerSet/configure.properties @@ -1 +1,2 @@ -description=Jenkins monitors each attached node for disk space, free temp space, free swap, clock time/sync, and response time. Nodes will be taken offline if any of these values go outside of the configured threshold. +description=Jenkins monitors each attached node for various metrics like free disk space, free temp space, free swap, clock time/sync, response time and others provided by plugins. \ + Some of these monitors are able to mark nodes temporarily offline, when the values go outside the configured thresholds. diff --git a/core/src/main/resources/hudson/node_monitors/ArchitectureMonitor/help.html b/core/src/main/resources/hudson/node_monitors/ArchitectureMonitor/help.html index 23efe3bdeff0..a67b11024f35 100644 --- a/core/src/main/resources/hudson/node_monitors/ArchitectureMonitor/help.html +++ b/core/src/main/resources/hudson/node_monitors/ArchitectureMonitor/help.html @@ -1,4 +1,4 @@
This monitor just shows the architecture of the agent for your information. It - never marks the agent offline. + never marks an agent offline.
diff --git a/core/src/main/resources/hudson/node_monitors/ClockMonitor/help.html b/core/src/main/resources/hudson/node_monitors/ClockMonitor/help.html index f9a1a868b1ab..ee5e795f2ce7 100644 --- a/core/src/main/resources/hudson/node_monitors/ClockMonitor/help.html +++ b/core/src/main/resources/hudson/node_monitors/ClockMonitor/help.html @@ -4,6 +4,8 @@ systems, version control activities and distributed file access (such as NFS, Windows file shares) tend to have strange problems when systems involved have different clocks. +
+ It never marks an agent offline.

To keep clocks in sync, refer to NTP.

diff --git a/core/src/main/resources/hudson/node_monitors/NodeMonitor/configure.jelly b/core/src/main/resources/hudson/node_monitors/NodeMonitor/configure.jelly new file mode 100644 index 000000000000..a2016d12307f --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/NodeMonitor/configure.jelly @@ -0,0 +1,24 @@ + + + +
+ ${descriptor.displayName} + +
+ +
+
+ + + + + + + + + + + +
+
+
\ No newline at end of file diff --git a/core/src/main/resources/hudson/node_monitors/NodeMonitor/help-ignored.html b/core/src/main/resources/hudson/node_monitors/NodeMonitor/help-ignored.html new file mode 100644 index 000000000000..7dfe9ac4071a --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/NodeMonitor/help-ignored.html @@ -0,0 +1,7 @@ +
+ When checked the agent will + not + be marked temporarily offline in case the monitor detects a problem. But the + monitor will still run to collect data and the corresponding field will be + highlighted in case of a problem. +
diff --git a/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/help.html b/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/help.html index ed324b07d50c..978d0a28dfb9 100644 --- a/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/help.html +++ b/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/help.html @@ -1,7 +1,6 @@
This monitors the round trip network response time from the controller to the - agent, and if it goes above a threshold repeatedly, it marks the agent - offline. + agent, and if it goes above a threshold repeatedly, it disconnects the agent.

This is useful for detecting unresponsive agents, or other network problems diff --git a/core/src/main/resources/hudson/node_monitors/SwapSpaceMonitor/help.html b/core/src/main/resources/hudson/node_monitors/SwapSpaceMonitor/help.html new file mode 100644 index 000000000000..f1827bdccbbe --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/SwapSpaceMonitor/help.html @@ -0,0 +1,22 @@ +

+ This monitors the available virtual memory (also known as + swap space + ). +

The exact definition of swap space is platform dependent.

+
    +
  • + On Windows this is the available space of the page file. As Windows can + automatically increase the page file size, this value doesn't mean much. +
  • +
  • + On Linux this value is retrieved from + /proc/meminfo + . +
  • +
  • + For other Unix systems, the value is obtained from the + top + command. +
  • +
+
From cf81b9cf935896615ff244f6d349a244f875dbff Mon Sep 17 00:00:00 2001 From: Jan Faracik <43062514+janfaracik@users.noreply.github.com> Date: Tue, 19 Dec 2023 07:38:43 +0000 Subject: [PATCH 0102/1216] Restyle widget panes (#8761) * Init * Update _style.scss * Remove more bold weights * Lower weight * Tweak widths * Fix spacing --------- Co-authored-by: Alexander Brandes Co-authored-by: Tim Jacomb --- war/src/main/scss/abstracts/_theme.scss | 2 +- war/src/main/scss/base/_style.scss | 4 +- .../scss/components/_panes-and-bigtable.scss | 3 -- .../scss/components/_side-panel-widgets.scss | 42 ++++++------------- 4 files changed, 16 insertions(+), 35 deletions(-) diff --git a/war/src/main/scss/abstracts/_theme.scss b/war/src/main/scss/abstracts/_theme.scss index 2ea8f434481d..fa97f23d6b66 100644 --- a/war/src/main/scss/abstracts/_theme.scss +++ b/war/src/main/scss/abstracts/_theme.scss @@ -200,7 +200,7 @@ $semantics: ( --link-dark-text-decoration: none; --link-dark-text-decoration--hover: underline; --link-dark-text-decoration--active: underline; - --link-dark-font-weight: 600; + --link-dark-font-weight: 500; // Pane --pane-border-width: 1px; diff --git a/war/src/main/scss/base/_style.scss b/war/src/main/scss/base/_style.scss index 2abd6d4ef10a..5d1762b54891 100644 --- a/war/src/main/scss/base/_style.scss +++ b/war/src/main/scss/base/_style.scss @@ -498,7 +498,7 @@ div.listview-jobs { } td { - padding: 8px; + padding: 0 8px 8px; } } @@ -593,7 +593,7 @@ div.listview-jobs { .build-row-cell .pane.build-name { width: 25%; - font-weight: bold; + font-weight: 500; vertical-align: top; } diff --git a/war/src/main/scss/components/_panes-and-bigtable.scss b/war/src/main/scss/components/_panes-and-bigtable.scss index 435622edcbc9..245d25cdfa5e 100644 --- a/war/src/main/scss/components/_panes-and-bigtable.scss +++ b/war/src/main/scss/components/_panes-and-bigtable.scss @@ -10,9 +10,6 @@ padding: 8px 0; color: var(--pane-header-text-color); background: var(--pane-header-bg); - border: var(--pane-border-width) solid var(--pane-header-border-color); - border-left: none; - border-right: none; } .pane { diff --git a/war/src/main/scss/components/_side-panel-widgets.scss b/war/src/main/scss/components/_side-panel-widgets.scss index 037674f61b88..bd6715cdc586 100644 --- a/war/src/main/scss/components/_side-panel-widgets.scss +++ b/war/src/main/scss/components/_side-panel-widgets.scss @@ -1,11 +1,12 @@ @use "../abstracts/mixins"; #side-panel .pane-frame { - border-radius: 0; - border-left: none; - border-right: none; - border-color: var(--panel-border-color); - border-width: 1px; + border-radius: 1rem; + background: var(--card-background); + border: var(--card-border-width) solid var(--card-border-color); + margin-left: 10px; + margin-bottom: calc(var(--section-padding) / 2); + overflow: hidden; } #side-panel .pane-header { @@ -20,16 +21,14 @@ #side-panel .pane-header, #side-panel .pane-footer { color: var(--link-dark-color); - background-color: var(--panel-header-bg-color); - border-radius: 0; - border-width: 1px; - padding: 0.5rem 1.25rem; + background: transparent; + padding: 0.65rem 1rem; } #side-panel .pane-header-title { display: inline-block; flex: 1; - font-weight: bold; + font-weight: 500; & > div { font-weight: normal; @@ -85,21 +84,6 @@ text-decoration: underline; } -#side-panel .pane-header a { - font-weight: bold; -} - -#side-panel .pane-content a { - font-weight: 600; -} - -/** - * Build Queue - */ -#buildQueue { - margin-bottom: var(--section-padding); -} - /** * Executors */ @@ -123,8 +107,8 @@ } .build-row-cell .pane.build-name { - width: 30%; - font-weight: bold; + width: 32%; + font-weight: 500; vertical-align: top; } @@ -133,7 +117,7 @@ } .build-row-cell .pane.build-controls { - width: 20%; + width: 18%; text-align: right; } @@ -257,7 +241,7 @@ .jenkins-pane__header--build-history { display: grid; grid-template-columns: auto 1fr auto; - font-weight: bold !important; + font-weight: 500 !important; .jenkins-table__cell--tight { width: auto; From b0cec677280708bbfafd3eb5eaa2bc98b241fc07 Mon Sep 17 00:00:00 2001 From: Daniel Beck <1831569+daniel-beck@users.noreply.github.com> Date: Tue, 19 Dec 2023 09:42:55 +0100 Subject: [PATCH 0103/1216] Add telemetry for basic Java system properties (#8787) --- .../telemetry/impl/JavaSystemProperties.java | 92 +++++++++++++++++++ .../help-usageStatisticsCollected.jelly | 2 +- .../JavaSystemProperties/description.jelly | 24 +++++ .../description.properties | 5 + 4 files changed, 122 insertions(+), 1 deletion(-) create mode 100644 core/src/main/java/jenkins/telemetry/impl/JavaSystemProperties.java create mode 100644 core/src/main/resources/jenkins/telemetry/impl/JavaSystemProperties/description.jelly create mode 100644 core/src/main/resources/jenkins/telemetry/impl/JavaSystemProperties/description.properties diff --git a/core/src/main/java/jenkins/telemetry/impl/JavaSystemProperties.java b/core/src/main/java/jenkins/telemetry/impl/JavaSystemProperties.java new file mode 100644 index 000000000000..90b66fd6f5bd --- /dev/null +++ b/core/src/main/java/jenkins/telemetry/impl/JavaSystemProperties.java @@ -0,0 +1,92 @@ +/* + * The MIT License + * + * Copyright (c) 2023, Daniel Beck + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package jenkins.telemetry.impl; + +import edu.umd.cs.findbugs.annotations.NonNull; +import hudson.Extension; +import java.time.LocalDate; +import java.util.Map; +import java.util.TreeMap; +import jenkins.telemetry.Telemetry; +import net.sf.json.JSONObject; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.NoExternalUse; + +/** + * Collect the value of various Java system properties describing the environment. + */ +@Extension +@Restricted(NoExternalUse.class) +public class JavaSystemProperties extends Telemetry { + private static final String[] PROPERTIES = new String[] { + "file.encoding", + "file.separator", + "java.vm.name", + "java.vm.vendor", + "java.vm.version", + "os.arch", + "os.name", + "os.version", + "user.language", + }; + + public Map getProperties() { + Map properties = new TreeMap<>(); + for (String property : PROPERTIES) { + final String value = System.getProperty(property); + properties.put(property, value); + } + return properties; + } + + @NonNull + @Override + public String getDisplayName() { + return "System Properties"; + } + + @NonNull + @Override + public LocalDate getStart() { + return LocalDate.of(2023, 12, 17); + } + + @NonNull + @Override + public LocalDate getEnd() { + return LocalDate.of(2024, 4, 1); + } + + @Override + public JSONObject createContent() { + JSONObject o = new JSONObject(); + for (Map.Entry entry : getProperties().entrySet()) { + final String value = entry.getValue(); + o = o.element(entry.getKey(), value == null ? "(undefined)" : value); + } + o.put("components", buildComponentInformation()); + return o; + } +} diff --git a/core/src/main/resources/hudson/model/UsageStatistics/help-usageStatisticsCollected.jelly b/core/src/main/resources/hudson/model/UsageStatistics/help-usageStatisticsCollected.jelly index 80237768112a..a1bef14d4e22 100644 --- a/core/src/main/resources/hudson/model/UsageStatistics/help-usageStatisticsCollected.jelly +++ b/core/src/main/resources/hudson/model/UsageStatistics/help-usageStatisticsCollected.jelly @@ -48,7 +48,7 @@
${collector.displayName}
- +

Start date: ${collector.start}
End date: ${collector.end} diff --git a/core/src/main/resources/jenkins/telemetry/impl/JavaSystemProperties/description.jelly b/core/src/main/resources/jenkins/telemetry/impl/JavaSystemProperties/description.jelly new file mode 100644 index 000000000000..02a39a039f16 --- /dev/null +++ b/core/src/main/resources/jenkins/telemetry/impl/JavaSystemProperties/description.jelly @@ -0,0 +1,24 @@ + + +

+ ${%blurb} +

+
    + +
  • + ${e.key} + + + (current value: undefined) + + + (current value: ${e.value}) + + +
  • +
    +
+

+ ${%blurb2} +

+ diff --git a/core/src/main/resources/jenkins/telemetry/impl/JavaSystemProperties/description.properties b/core/src/main/resources/jenkins/telemetry/impl/JavaSystemProperties/description.properties new file mode 100644 index 000000000000..8bdedbf8399e --- /dev/null +++ b/core/src/main/resources/jenkins/telemetry/impl/JavaSystemProperties/description.properties @@ -0,0 +1,5 @@ +blurb = This trial collects the values of some basic Java system properties, that provide information about basic system configuration \ + (OS, Java runtime, default language and character set). \ + The collected system properties and their values are listed below. +blurb2 = Additionally, this trial collects the list of installed plugins, their version, and the version of Jenkins. \ + This data will be used to understand the environments that Jenkins is running in. From a82293567f965c793dbef71be6e4522c1903cd0e Mon Sep 17 00:00:00 2001 From: Markus Winter Date: Tue, 19 Dec 2023 09:43:31 +0100 Subject: [PATCH 0104/1216] [JENKINS-71578] allow making sidepanel sticky (#8269) --- .../hudson/PluginManager/sidepanel.jelly | 2 +- .../resources/hudson/model/Job/configure.jelly | 2 +- core/src/main/resources/lib/layout/layout.jelly | 12 ++---------- .../main/resources/lib/layout/side-panel.jelly | 16 ++++++++++++++-- war/src/main/js/section-to-sidebar-items.js | 4 ---- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/core/src/main/resources/hudson/PluginManager/sidepanel.jelly b/core/src/main/resources/hudson/PluginManager/sidepanel.jelly index 21755b32072d..0d3fc3fb43d3 100644 --- a/core/src/main/resources/hudson/PluginManager/sidepanel.jelly +++ b/core/src/main/resources/hudson/PluginManager/sidepanel.jelly @@ -27,7 +27,7 @@ THE SOFTWARE. --> - + diff --git a/core/src/main/resources/hudson/model/Job/configure.jelly b/core/src/main/resources/hudson/model/Job/configure.jelly index 040a54159041..d226a966558d 100644 --- a/core/src/main/resources/hudson/model/Job/configure.jelly +++ b/core/src/main/resources/hudson/model/Job/configure.jelly @@ -36,7 +36,7 @@ THE SOFTWARE. - +
diff --git a/core/src/main/resources/lib/layout/layout.jelly b/core/src/main/resources/lib/layout/layout.jelly index 877a4463356a..371c14ab1633 100644 --- a/core/src/main/resources/lib/layout/layout.jelly +++ b/core/src/main/resources/lib/layout/layout.jelly @@ -192,16 +192,8 @@ THE SOFTWARE.
-
- - - - - - -
- -
+ +
diff --git a/core/src/main/resources/lib/layout/side-panel.jelly b/core/src/main/resources/lib/layout/side-panel.jelly index 26b8afa3b647..01595ee8c881 100644 --- a/core/src/main/resources/lib/layout/side-panel.jelly +++ b/core/src/main/resources/lib/layout/side-panel.jelly @@ -26,10 +26,22 @@ THE SOFTWARE. Generates a left side content as part of a Jenkins page. Typically known as two-column or left-side + main-content layouts + + Make the side panel sticky. Should not be used on pages that include widgets in the sidepanel and when plugins can + add their own tasks, so the number of tasks is not fixed. + + - +
+ + + + +
+ +
- \ No newline at end of file + diff --git a/war/src/main/js/section-to-sidebar-items.js b/war/src/main/js/section-to-sidebar-items.js index 282198ed26ff..38683e995f5b 100644 --- a/war/src/main/js/section-to-sidebar-items.js +++ b/war/src/main/js/section-to-sidebar-items.js @@ -5,13 +5,9 @@ const HEADER_SELECTOR = const DEFAULT_ICON = ``; window.addEventListener("load", function () { - const sidebar = document.querySelector("#side-panel"); const sidebarItems = document.querySelector("#tasks"); const sectionHeaders = document.querySelectorAll(HEADER_SELECTOR); - // Ensure sidebar is sticky - sidebar.classList.add("app-page-body__sidebar--sticky"); - // Create the sidebar items sectionHeaders.forEach(function (header, i) { const headerId = toId(header.textContent); From 018bd8e4d9bf36e3267a2b84548e0bc7b1c42999 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 19 Dec 2023 13:10:58 +0000 Subject: [PATCH 0105/1216] [maven-release-plugin] prepare release jenkins-2.437 --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty10/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 28a945e2321e..c4b3aa742b99 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.437 jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 21aabc88e649..24237f60051a 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.437 cli diff --git a/core/pom.xml b/core/pom.xml index 45539865962a..3126dbbb2d3e 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.437 jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index 9f27c8d11cf0..846759673e70 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.437 jenkins-coverage diff --git a/pom.xml b/pom.xml index 03014fa4fb2e..e344cc603a73 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.437 pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - ${scmTag} + jenkins-2.437 https://github.com/jenkinsci/jenkins diff --git a/test/pom.xml b/test/pom.xml index bb493bb4a975..ed3742558c26 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.437 jenkins-test diff --git a/war/pom.xml b/war/pom.xml index 2808d786b3d4..b4826812f139 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.437 jenkins-war diff --git a/websocket/jetty10/pom.xml b/websocket/jetty10/pom.xml index eb4a169a59d1..179d034795a0 100644 --- a/websocket/jetty10/pom.xml +++ b/websocket/jetty10/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.437 ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 77abcc3b7248..a720f4db3dff 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.437 ../.. From 2ece2ccc9db5295413d1fd7772673ac1aa5bc55f Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 19 Dec 2023 13:41:53 +0000 Subject: [PATCH 0106/1216] [maven-release-plugin] prepare for next development iteration --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 6 +++--- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty10/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index c4b3aa742b99..28a945e2321e 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.437 + ${revision}${changelist} jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 24237f60051a..21aabc88e649 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.437 + ${revision}${changelist} cli diff --git a/core/pom.xml b/core/pom.xml index 3126dbbb2d3e..45539865962a 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.437 + ${revision}${changelist} jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index 846759673e70..9f27c8d11cf0 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.437 + ${revision}${changelist} jenkins-coverage diff --git a/pom.xml b/pom.xml index e344cc603a73..b1386c7b1330 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.437 + ${revision}${changelist} pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - jenkins-2.437 + ${scmTag} https://github.com/jenkinsci/jenkins @@ -73,7 +73,7 @@ THE SOFTWARE. - 2.437 + 2.438 -SNAPSHOT diff --git a/test/pom.xml b/test/pom.xml index ed3742558c26..bb493bb4a975 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.437 + ${revision}${changelist} jenkins-test diff --git a/war/pom.xml b/war/pom.xml index b4826812f139..2808d786b3d4 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.437 + ${revision}${changelist} jenkins-war diff --git a/websocket/jetty10/pom.xml b/websocket/jetty10/pom.xml index 179d034795a0..eb4a169a59d1 100644 --- a/websocket/jetty10/pom.xml +++ b/websocket/jetty10/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.437 + ${revision}${changelist} ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index a720f4db3dff..77abcc3b7248 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.437 + ${revision}${changelist} ../.. From 3a1ac2cb44fd806ab92a01f6674fbe46e24d4a0c Mon Sep 17 00:00:00 2001 From: Jan Faracik <43062514+janfaracik@users.noreply.github.com> Date: Wed, 20 Dec 2023 21:44:51 +0000 Subject: [PATCH 0107/1216] Use Jenkins modal for 'Apply' button failures (#8394) * Init * Linting * Test fixes * Switch to dialog for simple error case --------- Co-authored-by: Tim Jacomb --- .../jenkins/model/Jenkins/oops.properties | 2 +- .../main/resources/lib/form/apply/apply.js | 113 ++++++------------ test/src/test/java/hudson/model/ViewTest.java | 4 +- .../security/StackTraceSuppressionTest.java | 2 +- 4 files changed, 38 insertions(+), 83 deletions(-) diff --git a/core/src/main/resources/jenkins/model/Jenkins/oops.properties b/core/src/main/resources/jenkins/model/Jenkins/oops.properties index d7060ef24991..2d7f460ca626 100644 --- a/core/src/main/resources/jenkins/model/Jenkins/oops.properties +++ b/core/src/main/resources/jenkins/model/Jenkins/oops.properties @@ -1,4 +1,4 @@ -problemHappened=A problem occurred while processing the request. +problemHappened=A problem occurred while processing the request checkJIRA=Please check our bug tracker to see if a similar problem has already been reported. vote=If it is already reported, please vote and put a comment on it to let us gauge the impact of the problem. pleaseReport=If you think this is a new issue, please file a new issue. diff --git a/core/src/main/resources/lib/form/apply/apply.js b/core/src/main/resources/lib/form/apply/apply.js index c79c9ce7dbcf..c9752497d7a8 100644 --- a/core/src/main/resources/lib/form/apply/apply.js +++ b/core/src/main/resources/lib/form/apply/apply.js @@ -3,104 +3,59 @@ Behaviour.specify( "apply", 0, function (e) { - var id; - var containerId = "container" + iota++; - - var responseDialog = new YAHOO.widget.Panel("wait" + iota++, { - fixedcenter: true, - close: true, - draggable: true, - zindex: 4, - modal: true, - visible: false, - }); - - responseDialog.setHeader("Error"); - responseDialog.setBody("
"); - responseDialog.render(document.body); - var target; // iframe - - function attachIframeOnload(target, f) { - if (target.attachEvent) { - target.attachEvent("onload", f); - } else { - target.onload = f; - } - } - e.addEventListener("click", function (e) { - var f = e.target.closest("FORM"); + const f = e.target.closest("FORM"); // create a throw-away IFRAME to avoid back button from loading the POST result back - id = "iframe" + iota++; - target = document.createElement("iframe"); + const id = "iframe" + iota++; + const target = document.createElement("iframe"); target.setAttribute("id", id); target.setAttribute("name", id); target.style.height = "100%"; target.style.width = "100%"; - document.getElementById(containerId).appendChild(target); + document.querySelector("body").appendChild(target); - attachIframeOnload(target, function () { + f.target = target.id; + f.elements["core:apply"].value = "true"; + f.dispatchEvent(new Event("jenkins:apply")); // give everyone a chance to write back to DOM + + try { + buildFormTree(f); + f.submit(); + } finally { + f.elements["core:apply"].value = null; + f.target = "_self"; + } + + target.addEventListener("load", () => { if ( target.contentWindow && target.contentWindow.applyCompletionHandler ) { // apply-aware server is expected to set this handler target.contentWindow.applyCompletionHandler(window); - } else { - // otherwise this is possibly an error from the server, so we need to render the whole content. - var doc = target.contentDocument || target.contentWindow.document; - var error = doc.getElementById("error-description"); - var r = YAHOO.util.Dom.getClientRegion(); - var contentHeight = r.height / 5; - var contentWidth = r.width / 2; - if (!error) { - // fallback if it's not a regular error dialog from oops.jelly: use the entire body - error = document.createElement("div"); - error.setAttribute("id", "error-description"); - error.appendChild(doc.getElementsByTagName("body")[0]); - contentHeight = (r.height * 3) / 4; - contentWidth = (r.width * 3) / 4; - } - - let oldError = document.getElementById("error-description"); - if (oldError) { - // Remove old error if there is any - document.getElementById(containerId).removeChild(oldError); - } + // Remove the iframe from the DOM + target.remove(); + return; + } - document.getElementById(containerId).appendChild(error); + // otherwise this is possibly an error from the server, so we need to render the whole content. + const doc = target.contentDocument || target.contentWindow.document; + let error = doc.getElementById("error-description"); - var dialogStyleHeight = contentHeight + 40; - var dialogStyleWidth = contentWidth + 20; + if (!error) { + // Fallback if it's not a regular error dialog from oops.jelly: use the entire body + error = document.createElement("div"); + error.appendChild(doc.querySelector("#page-body")); + } - document.getElementById(containerId).style.height = - contentHeight + "px"; - document.getElementById(containerId).style.width = - contentWidth + "px"; - document.getElementById(containerId).style.overflow = "scroll"; + dialog.modal(error, { + minWidth: "850px", + }); - responseDialog.cfg.setProperty("width", dialogStyleWidth + "px"); - responseDialog.cfg.setProperty("height", dialogStyleHeight + "px"); - responseDialog.center(); - responseDialog.show(); - } - window.setTimeout(function () { - // otherwise Firefox will fail to leave the "connecting" state - document.getElementById(id).remove(); - }, 0); + // Remove the iframe from the DOM + target.remove(); }); - - f.target = target.id; - f.elements["core:apply"].value = "true"; - f.dispatchEvent(new Event("jenkins:apply")); // give everyone a chance to write back to DOM - try { - buildFormTree(f); - f.submit(); - } finally { - f.elements["core:apply"].value = null; - f.target = "_self"; - } }); }, ); diff --git a/test/src/test/java/hudson/model/ViewTest.java b/test/src/test/java/hudson/model/ViewTest.java index 3ea19e1ee59c..1c32f3ed314a 100644 --- a/test/src/test/java/hudson/model/ViewTest.java +++ b/test/src/test/java/hudson/model/ViewTest.java @@ -700,7 +700,7 @@ public void simplifiedOriginalDescription() throws Exception { assertThat(e.getStatusCode(), equalTo(500)); // This should have a different message, but this is the current behavior demonstrating the problem. - assertThat(e.getResponse().getContentAsString(), containsString("A problem occurred while processing the request.")); + assertThat(e.getResponse().getContentAsString(), containsString("A problem occurred while processing the request")); OldDataMonitor odm = ExtensionList.lookupSingleton(OldDataMonitor.class); Map data = odm.getData(); @@ -744,7 +744,7 @@ public void simplifiedWithValidXmlAndBadField() throws Exception { assertThat(e.getStatusCode(), equalTo(500)); // This should have a different message, but this is the current behavior demonstrating the problem. - assertThat(e.getResponse().getContentAsString(), containsString("A problem occurred while processing the request.")); + assertThat(e.getResponse().getContentAsString(), containsString("A problem occurred while processing the request")); OldDataMonitor odm = ExtensionList.lookupSingleton(OldDataMonitor.class); Map data = odm.getData(); diff --git a/test/src/test/java/jenkins/security/StackTraceSuppressionTest.java b/test/src/test/java/jenkins/security/StackTraceSuppressionTest.java index 9e9b58777a52..b13a5d11c4d5 100644 --- a/test/src/test/java/jenkins/security/StackTraceSuppressionTest.java +++ b/test/src/test/java/jenkins/security/StackTraceSuppressionTest.java @@ -161,7 +161,7 @@ public void save() { } private void checBaseResponseContent(String content) { - assertThat(content, containsString("A problem occurred while processing the request.")); + assertThat(content, containsString("A problem occurred while processing the request")); assertThat(content, containsString("Logging ID=")); assertThat(content, containsString("Oops!")); } From 01c42a3dca39592e20f728ea8f19c67484004d07 Mon Sep 17 00:00:00 2001 From: Jan Faracik <43062514+janfaracik@users.noreply.github.com> Date: Wed, 20 Dec 2023 21:45:22 +0000 Subject: [PATCH 0108/1216] Update the appearance of the stop button (#8780) * Init * Fixes * Update executors.jelly * Update _buttons.scss * Fix i18n * Tidy up * Fix test * Temporary fast build CI build is too unreliable and I just want an incrementals... * Revert "Temporary fast build" This reverts commit 28df8398f3e1a0a82adae7db692b8946a2e281b7. --------- Co-authored-by: Tim Jacomb Co-authored-by: Alexander Brandes --- .../hudson/widgets/HistoryWidget/entry.jelly | 2 +- .../resources/lib/hudson/buildCaption.jelly | 2 +- .../lib/hudson/buildCaption.properties | 1 + .../resources/lib/hudson/executors.properties | 1 + .../resources/lib/layout/stopButton.jelly | 8 ++--- .../jenkins/security/Security2278Test.java | 4 +-- war/src/main/scss/components/_buttons.scss | 30 +++++++++++++++++++ 7 files changed, 40 insertions(+), 8 deletions(-) diff --git a/core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly b/core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly index d203b8a98344..a77474476625 100644 --- a/core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly +++ b/core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly @@ -71,7 +71,7 @@ THE SOFTWARE.
- +
diff --git a/core/src/main/resources/lib/hudson/buildCaption.jelly b/core/src/main/resources/lib/hudson/buildCaption.jelly index 2f29e2808f4b..6ae79d3b836e 100644 --- a/core/src/main/resources/lib/hudson/buildCaption.jelly +++ b/core/src/main/resources/lib/hudson/buildCaption.jelly @@ -49,7 +49,7 @@ THE SOFTWARE. + alt="${%cancel}"/> diff --git a/core/src/main/resources/lib/hudson/buildCaption.properties b/core/src/main/resources/lib/hudson/buildCaption.properties index 6aa3af4cc19b..435f11915242 100644 --- a/core/src/main/resources/lib/hudson/buildCaption.properties +++ b/core/src/main/resources/lib/hudson/buildCaption.properties @@ -1 +1,2 @@ confirm=Are you sure you want to abort {0}? +cancel=Cancel diff --git a/core/src/main/resources/lib/hudson/executors.properties b/core/src/main/resources/lib/hudson/executors.properties index 951d07ec26c1..8438e6602a32 100644 --- a/core/src/main/resources/lib/hudson/executors.properties +++ b/core/src/main/resources/lib/hudson/executors.properties @@ -2,3 +2,4 @@ Computers=built-in node{0,choice,0# ({1} of {2} executors busy)|1# + {0,number} agent ({1} of {2} executors busy)|1< + {0,number} agents ({1} of {2} executors busy)} confirm=Are you sure you want to abort {0}? launching=launching... +terminate\ this\ build=Cancel diff --git a/core/src/main/resources/lib/layout/stopButton.jelly b/core/src/main/resources/lib/layout/stopButton.jelly index 29f4ebcb6815..336184090622 100644 --- a/core/src/main/resources/lib/layout/stopButton.jelly +++ b/core/src/main/resources/lib/layout/stopButton.jelly @@ -39,13 +39,13 @@ THE SOFTWARE. - - + + - - + + diff --git a/test/src/test/java/jenkins/security/Security2278Test.java b/test/src/test/java/jenkins/security/Security2278Test.java index c556d5d079bf..7811c2afa884 100644 --- a/test/src/test/java/jenkins/security/Security2278Test.java +++ b/test/src/test/java/jenkins/security/Security2278Test.java @@ -70,7 +70,7 @@ public void testUi() throws Exception { assertThat(contentAsString, containsString("Build Executor Status")); assertThat(contentAsString, containsString("Unknown Task")); assertThat(contentAsString, not(containsString("job/foo/job/bar"))); - assertThat(contentAsString, not(containsString("icon-stop"))); + assertThat(contentAsString, not(containsString("stop-button-link"))); } @Test @@ -81,7 +81,7 @@ public void testUiWithPermission() throws Exception { assertThat(contentAsString, containsString("Build Executor Status")); assertThat(contentAsString, not(containsString("Unknown Task"))); assertThat(contentAsString, containsString("job/foo/job/bar")); - assertThat(contentAsString, containsString("icon-stop")); + assertThat(contentAsString, containsString("stop-button-link")); } @Test diff --git a/war/src/main/scss/components/_buttons.scss b/war/src/main/scss/components/_buttons.scss index 0368549deb7d..5108aca2c6eb 100644 --- a/war/src/main/scss/components/_buttons.scss +++ b/war/src/main/scss/components/_buttons.scss @@ -299,3 +299,33 @@ $jenkins-split-button-border-radius: 0.2rem; } } } + +.stop-button-link { + --item-background--hover: color-mix(in sRGB, var(--red) 20%, transparent); + --item-background--active: color-mix(in sRGB, var(--red) 25%, transparent); + --item-box-shadow--focus: transparent; + + @include mixins.item; + + position: relative; + display: inline-flex; + align-items: center; + justify-content: center; + width: 1rem; + height: 1rem; + border-radius: 0.25rem; + + &::before { + background: color-mix(in sRGB, var(--red) 15%, transparent); + } + + svg { + width: 87.5%; + height: 87.5%; + color: var(--red); + + * { + stroke-width: 40px; + } + } +} From 044c071235f0a64fb8390e784c7e1abb52aecb05 Mon Sep 17 00:00:00 2001 From: Daniel Beck <1831569+daniel-beck@users.noreply.github.com> Date: Thu, 21 Dec 2023 19:37:09 +0100 Subject: [PATCH 0109/1216] Fix import used for Javadoc (#8790) Co-authored-by: Daniel Beck --- core/src/main/java/hudson/cli/declarative/CLIMethod.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/cli/declarative/CLIMethod.java b/core/src/main/java/hudson/cli/declarative/CLIMethod.java index 7b9c35202bb9..3a6bc3c7f2c9 100644 --- a/core/src/main/java/hudson/cli/declarative/CLIMethod.java +++ b/core/src/main/java/hudson/cli/declarative/CLIMethod.java @@ -28,12 +28,12 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME; import hudson.cli.CLICommand; -import hudson.util.ListBoxModel.Option; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.Target; import org.jvnet.hudson.annotation_indexer.Indexed; import org.kohsuke.args4j.Argument; +import org.kohsuke.args4j.Option; /** * Annotates methods on model objects to expose them as CLI commands. From 3e04c2ac3d20207279ec246ce6385a0d3652ac3f Mon Sep 17 00:00:00 2001 From: Daniel Beck <1831569+daniel-beck@users.noreply.github.com> Date: Thu, 21 Dec 2023 19:37:23 +0100 Subject: [PATCH 0110/1216] Update Freestyle project description (#8795) * Update Freestyle project description * Fix typo * Fix another typo --------- Co-authored-by: Daniel Beck --- core/src/main/resources/hudson/model/Messages.properties | 4 ++-- core/src/main/resources/hudson/model/Messages_bg.properties | 5 ----- core/src/main/resources/hudson/model/Messages_ca.properties | 1 - core/src/main/resources/hudson/model/Messages_cs.properties | 1 - core/src/main/resources/hudson/model/Messages_da.properties | 1 - core/src/main/resources/hudson/model/Messages_de.properties | 4 +++- core/src/main/resources/hudson/model/Messages_es.properties | 1 - core/src/main/resources/hudson/model/Messages_et.properties | 1 - core/src/main/resources/hudson/model/Messages_fi.properties | 1 - core/src/main/resources/hudson/model/Messages_fr.properties | 1 - core/src/main/resources/hudson/model/Messages_it.properties | 5 ----- core/src/main/resources/hudson/model/Messages_ja.properties | 4 ---- core/src/main/resources/hudson/model/Messages_ko.properties | 1 - core/src/main/resources/hudson/model/Messages_lt.properties | 3 --- .../main/resources/hudson/model/Messages_nb_NO.properties | 1 - core/src/main/resources/hudson/model/Messages_nl.properties | 1 - core/src/main/resources/hudson/model/Messages_pl.properties | 1 - .../main/resources/hudson/model/Messages_pt_BR.properties | 3 --- .../main/resources/hudson/model/Messages_pt_PT.properties | 1 - core/src/main/resources/hudson/model/Messages_ro.properties | 1 - core/src/main/resources/hudson/model/Messages_ru.properties | 4 ---- .../main/resources/hudson/model/Messages_sv_SE.properties | 1 - core/src/main/resources/hudson/model/Messages_tr.properties | 3 --- core/src/main/resources/hudson/model/Messages_uk.properties | 1 - .../main/resources/hudson/model/Messages_zh_TW.properties | 4 ---- 25 files changed, 5 insertions(+), 49 deletions(-) diff --git a/core/src/main/resources/hudson/model/Messages.properties b/core/src/main/resources/hudson/model/Messages.properties index e0721b8fd0af..96950428fee4 100644 --- a/core/src/main/resources/hudson/model/Messages.properties +++ b/core/src/main/resources/hudson/model/Messages.properties @@ -119,8 +119,8 @@ Executor.NotAvailable=N/A FreeStyleProject.DisplayName=Freestyle project FreeStyleProject.Description=\ - This is the central feature of Jenkins. Jenkins will build your project, combining any SCM with any build system, \ - and this can be even used for something other than software build. + Classic, general-purpose job type that checks out from up to one SCM, executes build steps serially, \ + followed by post-build steps like archiving artifacts and sending email notifications. HealthReport.EmptyString= diff --git a/core/src/main/resources/hudson/model/Messages_bg.properties b/core/src/main/resources/hudson/model/Messages_bg.properties index b6468b07f70e..8117419f0a71 100644 --- a/core/src/main/resources/hudson/model/Messages_bg.properties +++ b/core/src/main/resources/hudson/model/Messages_bg.properties @@ -163,11 +163,6 @@ Executor.NotAvailable=\ FreeStyleProject.DisplayName=\ Потребителска задача -FreeStyleProject.Description=\ - Това е основна функционалност в Jenkins. Jenkins може да изгради проект като\ - комбинира произволна система за управление на версиите с произволна система за\ - изграждане на проект. Това ви позволява да ползвате Jenkins и за различни от\ - основната му цели. Hudson.BadPortNumber=\ diff --git a/core/src/main/resources/hudson/model/Messages_ca.properties b/core/src/main/resources/hudson/model/Messages_ca.properties index c92afa092c78..c952bcda1e90 100644 --- a/core/src/main/resources/hudson/model/Messages_ca.properties +++ b/core/src/main/resources/hudson/model/Messages_ca.properties @@ -1,3 +1,2 @@ ManageJenkinsAction.DisplayName=Configuració de Jenkins -FreeStyleProject.Description=Aquesta és la funcionalitat principal de Jenkins. Jenkins farà un build del vostre projecte combinant qualsevol SCM amb qualsevol sistema de build. Això també es pot usar per tasques que no siguin un build de software diff --git a/core/src/main/resources/hudson/model/Messages_cs.properties b/core/src/main/resources/hudson/model/Messages_cs.properties index 7ae3f033c417..6efe7371a14d 100644 --- a/core/src/main/resources/hudson/model/Messages_cs.properties +++ b/core/src/main/resources/hudson/model/Messages_cs.properties @@ -1,3 +1,2 @@ ManageJenkinsAction.DisplayName=Administrace -FreeStyleProject.Description=Toto je hlavní funkce Jenkins. Jenkins sestaví váš projekt, spojí jakýkoli systém pro správu verzí se systémem pro sestavení. Nemusí být použit jen pro sestavení softwaru. diff --git a/core/src/main/resources/hudson/model/Messages_da.properties b/core/src/main/resources/hudson/model/Messages_da.properties index c4818f58b170..9047645c5c27 100644 --- a/core/src/main/resources/hudson/model/Messages_da.properties +++ b/core/src/main/resources/hudson/model/Messages_da.properties @@ -59,7 +59,6 @@ Run.Summary.BrokenForALongTime=fejlet længe CLI.safe-restart.shortDescription=Sikker genstart af Jenkins FreeStyleProject.DisplayName=Byg et free-style projekt -FreeStyleProject.Description=Dette er den centrale feature i Jenkins. Jenkins vil bygge dit projekt i enhver kombination af kildekodestyring (SCM) med ethvert byggesystem og dette kan bruges til meget andet end at bygge software. ProxyView.DisplayName=Inkluder en global visning Run.Permissions.Title=Kør diff --git a/core/src/main/resources/hudson/model/Messages_de.properties b/core/src/main/resources/hudson/model/Messages_de.properties index 917c6238b57e..e03f38f6403b 100644 --- a/core/src/main/resources/hudson/model/Messages_de.properties +++ b/core/src/main/resources/hudson/model/Messages_de.properties @@ -114,7 +114,9 @@ Executor.NotAvailable=nicht verfügbar FreeStyleProject.DisplayName="Free Style"-Softwareprojekt bauen -FreeStyleProject.Description=Dieses Profil ist das meistgenutzte in Jenkins. Jenkins baut Ihr Projekt, wobei Sie universell jedes SCM System mit jedem Build-Verfahren kombinieren können. Dieses Profil ist nicht nur auf das Bauen von Software beschränkt, sondern kann darüber hinaus auch für weitere Anwendungsgebiete verwendet werden. +FreeStyleProject.Description=Der klassische, generische Projekt-Typ in Jenkins. Ein Build kann ein SCM auschecken, \ + verschiedene Buildschritte nacheinander ausführen und anschließend Post-Build-Aktionen, wie E-Mailversand oder \ + Archivierung von Artefakten, durchführen. HealthReport.EmptyString= diff --git a/core/src/main/resources/hudson/model/Messages_es.properties b/core/src/main/resources/hudson/model/Messages_es.properties index d57de3106e8e..f725a5070e39 100644 --- a/core/src/main/resources/hudson/model/Messages_es.properties +++ b/core/src/main/resources/hudson/model/Messages_es.properties @@ -72,7 +72,6 @@ Executor.NotAvailable=N/D FreeStyleProject.DisplayName=Crear un proyecto de estilo libre -FreeStyleProject.Description=Esta es la característica principal de Jenkins, la de ejecutar el proyecto combinando cualquier tipo de repositorio de software (SCM) con cualquier modo de construcción o ejecución (make, ant, mvn, rake, script ...). Por tanto se podrá tanto compilar y empaquetar software, como ejecutar cualquier proceso que requiera monitorización. Hudson.BadPortNumber=Número erróneo de puerto {0} Hudson.Computer.Caption=Principal diff --git a/core/src/main/resources/hudson/model/Messages_et.properties b/core/src/main/resources/hudson/model/Messages_et.properties index 72f77a12ac0c..67e791fe6163 100644 --- a/core/src/main/resources/hudson/model/Messages_et.properties +++ b/core/src/main/resources/hudson/model/Messages_et.properties @@ -1,2 +1 @@ -FreeStyleProject.Description=See on Jenkinsi põhifunktsioon! Jenkins ehitab su projekti, kombineerides sinu versioonihalduse mistahes ehitusprotsessiga. Sa võid seda kasutada ka muudeks asjadeks kui tarkvara ehitamine. ParametersDefinitionProperty.BuildButtonText=Bild diff --git a/core/src/main/resources/hudson/model/Messages_fi.properties b/core/src/main/resources/hudson/model/Messages_fi.properties index 3b101c72919e..b059ff22aac8 100644 --- a/core/src/main/resources/hudson/model/Messages_fi.properties +++ b/core/src/main/resources/hudson/model/Messages_fi.properties @@ -1,3 +1,2 @@ ManageJenkinsAction.DisplayName=Hallitse Jenkinsia -FreeStyleProject.Description=Tämä on Jenkins tärkein ominaisuus. Jenkins rakentaa projektisi käyttäen versionhallintaa ja buildijärjestelmiä. Voit käyttää tätä myös muuhun kuin ohjelmien kääntämiseen. diff --git a/core/src/main/resources/hudson/model/Messages_fr.properties b/core/src/main/resources/hudson/model/Messages_fr.properties index 073805ad5139..f2a938f9c9e4 100644 --- a/core/src/main/resources/hudson/model/Messages_fr.properties +++ b/core/src/main/resources/hudson/model/Messages_fr.properties @@ -113,7 +113,6 @@ Descriptor.From=(de {0}< Executor.NotAvailable=N/A FreeStyleProject.DisplayName=Construire un projet free-style -FreeStyleProject.Description=Ceci est la fonction principale de Jenkins qui sert à builder (construire) votre projet. Vous pouvez intégrer tous les outils de gestion de version avec tous les systèmes de build. Il est même possible d''utiliser Jenkins pour toute autre chose qu''un build logiciel. HealthReport.EmptyString= diff --git a/core/src/main/resources/hudson/model/Messages_it.properties b/core/src/main/resources/hudson/model/Messages_it.properties index 23938f9ea828..b61b7fe92c18 100644 --- a/core/src/main/resources/hudson/model/Messages_it.properties +++ b/core/src/main/resources/hudson/model/Messages_it.properties @@ -160,11 +160,6 @@ Descriptor.From=(da {0}) Executor.NotAvailable=N/D FileParameterDefinition.DisplayName=Parametro file FileParameterValue.IndexTitle=Parametri file -FreeStyleProject.Description=Questa è la funzionalità principale di Jenkins. \ - Jenkins eseguirà la compilazione del progetto, combinando qualunque sistema \ - di gestione del codice sorgente con qualunque sistema di compilazione, e \ - questo progetto può essere anche utilizzato per compiti diversi dalla \ - compilazione di software. FreeStyleProject.DisplayName=Progetto libero HealthReport.EmptyString= Hudson.AdministerPermission.Description=Questo permesso concede la capacità \ diff --git a/core/src/main/resources/hudson/model/Messages_ja.properties b/core/src/main/resources/hudson/model/Messages_ja.properties index 475606108217..155fed39f632 100644 --- a/core/src/main/resources/hudson/model/Messages_ja.properties +++ b/core/src/main/resources/hudson/model/Messages_ja.properties @@ -85,10 +85,6 @@ Executor.NotAvailable=N/A FreeStyleProject.DisplayName=フリースタイル・プロジェクトのビルド -FreeStyleProject.Description=\ - もっとも汎用性の高いJenkinsの中核機能です。任意のSCMからソースコードをチェックアウトし、\ - 任意のビルドシステムでプロジェクトがビルドできます。往々にして、ソフトウェアのビルド以外にも\ - 様々な仕事の自動化に利用することができます。 HealthReport.EmptyString= diff --git a/core/src/main/resources/hudson/model/Messages_ko.properties b/core/src/main/resources/hudson/model/Messages_ko.properties index 1b1194608e72..53667c659a42 100644 --- a/core/src/main/resources/hudson/model/Messages_ko.properties +++ b/core/src/main/resources/hudson/model/Messages_ko.properties @@ -1,5 +1,4 @@ ManageJenkinsAction.DisplayName=Jenkins 관리 ParametersDefinitionProperty.DisplayName=이 빌드는 매개변수가 있습니다 -FreeStyleProject.Description=이것은 Jenkins의 주요 기능입니다. Jenkins은 어느 빌드 시스템과 어떤 SCM(형상관리)으로 묶인 당신의 프로젝트를 빌드할 것이고, 소프트웨어 빌드보다 다른 어떤 것에 자주 사용될 수 있습니다. ParametersDefinitionProperty.BuildButtonText=매개변수가 필요한 빌드입니다. diff --git a/core/src/main/resources/hudson/model/Messages_lt.properties b/core/src/main/resources/hudson/model/Messages_lt.properties index 3248fdb97d67..dc319685ad2a 100644 --- a/core/src/main/resources/hudson/model/Messages_lt.properties +++ b/core/src/main/resources/hudson/model/Messages_lt.properties @@ -85,9 +85,6 @@ Descriptor.From=(iš {0}) Executor.NotAvailable=Nėra FreeStyleProject.DisplayName=Laisvo stiliaus projektas -FreeStyleProject.Description=\ - Pagrindinė Jenkinso funkcija. Jenkinsas sukurs jūsų projektą, kombinuojant bet kokią SCM su bet kokia kūrimo sistema, \ - ir visa tai galima naudoti nebūtinai programų kūrimui. HealthReport.EmptyString= diff --git a/core/src/main/resources/hudson/model/Messages_nb_NO.properties b/core/src/main/resources/hudson/model/Messages_nb_NO.properties index fa756d519fe5..99ac81854dbe 100644 --- a/core/src/main/resources/hudson/model/Messages_nb_NO.properties +++ b/core/src/main/resources/hudson/model/Messages_nb_NO.properties @@ -1,4 +1,3 @@ ManageJenkinsAction.DisplayName=Konfigurer Jenkins ParametersDefinitionProperty.DisplayName=Denne build har parametre -FreeStyleProject.Description=Dette er en sentral egenskap ved Jenkins. Jenkins bygger dine prosjekter, kombinerer SCM (Source Control Management - Kildekodekontrollsystem ) med forskjellige byggsystemer og denne kan også brukes til mer enn bare å bygge applikasjoner. diff --git a/core/src/main/resources/hudson/model/Messages_nl.properties b/core/src/main/resources/hudson/model/Messages_nl.properties index 2e81c05617b4..1ce8a56458d4 100644 --- a/core/src/main/resources/hudson/model/Messages_nl.properties +++ b/core/src/main/resources/hudson/model/Messages_nl.properties @@ -49,7 +49,6 @@ Executor.NotAvailable=Niet beschikbaar FreeStyleProject.DisplayName=Bouw een vrije stijl type software project -FreeStyleProject.Description=Dit is de basisfunctionaliteit van Jenkins. Bij dit type project kun je gebruik maken van een willekeurige combinatie van versiebeheer- en bouwsysteem. Je zou Jenkins zelfs kunnen gebruiken voor andere zaken dan het bouwen van software. Hudson.BadPortNumber=Verkeerd poortnummer {0} Hudson.Computer.Caption=Hoofdnode diff --git a/core/src/main/resources/hudson/model/Messages_pl.properties b/core/src/main/resources/hudson/model/Messages_pl.properties index a9d2c94080d5..4da9a364a8da 100644 --- a/core/src/main/resources/hudson/model/Messages_pl.properties +++ b/core/src/main/resources/hudson/model/Messages_pl.properties @@ -68,7 +68,6 @@ UpdateCenter.Status.CheckingJavaNet=Sprawdzanie połączenia z centrum aktualiza UpdateCenter.Status.Success=Zakończono MyViewsProperty.DisplayName=Moje widoki MyViewsProperty.GlobalAction.DisplayName=Moje widoki -FreeStyleProject.Description=To jest podstawowa funkcja Jenkinsa. Jenkins stworzy projekt łączący dowolny SCM z dowolnym systemem budującym, może to być również wykorzystane do czegoś innego niż budowanie oprogramowania. FreeStyleProject.DisplayName=Ogólny projekt Node.Mode.NORMAL=Wykorzystuj ten węzeł tak bardzo, jak to tylko możliwe ComputerSet.DisplayName=Węzły diff --git a/core/src/main/resources/hudson/model/Messages_pt_BR.properties b/core/src/main/resources/hudson/model/Messages_pt_BR.properties index 9643b131f2a9..f07c6fc49da0 100644 --- a/core/src/main/resources/hudson/model/Messages_pt_BR.properties +++ b/core/src/main/resources/hudson/model/Messages_pt_BR.properties @@ -45,9 +45,6 @@ BallColor.Success=Sucesso BallColor.Unstable=Instável Executor.NotAvailable=N/D FreeStyleProject.DisplayName=Construir um projeto de software de estilo livre. -FreeStyleProject.Description=Esta é a central de funcionalidades do Jenkins. Ela construirá seu projeto e você pode \ - combinar qualquer SCM com qualquer sistema de construção, e ele até mesmo pode ser usado para outras tarefas \ - diferentes de construções de software. Hudson.BadPortNumber=Número de porta ruim {0} Hudson.Computer.Caption=Mestre Hudson.Computer.DisplayName=mestre diff --git a/core/src/main/resources/hudson/model/Messages_pt_PT.properties b/core/src/main/resources/hudson/model/Messages_pt_PT.properties index 6978146ab722..585168602775 100644 --- a/core/src/main/resources/hudson/model/Messages_pt_PT.properties +++ b/core/src/main/resources/hudson/model/Messages_pt_PT.properties @@ -1,3 +1,2 @@ ManageJenkinsAction.DisplayName=Gerir o Jenkins -FreeStyleProject.Description=Isto é uma característica central do Jenkins. Jenkins vai construir o seu projecto, combinando qualquer SCM com qualquer sistema de compilação e isto pode ser usado mesmo em qualquer outra compilação de software. diff --git a/core/src/main/resources/hudson/model/Messages_ro.properties b/core/src/main/resources/hudson/model/Messages_ro.properties index c0a2697b2e0e..2911c11d5d8c 100644 --- a/core/src/main/resources/hudson/model/Messages_ro.properties +++ b/core/src/main/resources/hudson/model/Messages_ro.properties @@ -1,3 +1,2 @@ ParametersDefinitionProperty.DisplayName=Acest build este parametrizat -FreeStyleProject.Description=Aceasta este funcționalitatea principală a lui Jenkins. Jenkins va construi proiectul dvs, combinând orice SCM cu orice sistem de build-uri, și aceasta poate fi folosită chiar și la altceva decât build-uri de aplicații. diff --git a/core/src/main/resources/hudson/model/Messages_ru.properties b/core/src/main/resources/hudson/model/Messages_ru.properties index 2217b2289be5..2ce7869ed999 100644 --- a/core/src/main/resources/hudson/model/Messages_ru.properties +++ b/core/src/main/resources/hudson/model/Messages_ru.properties @@ -56,10 +56,6 @@ Executor.NotAvailable=Неизвестно FreeStyleProject.DisplayName=Создать задачу со свободной конфигурацией -FreeStyleProject.Description=\ - Это - основной и наиболее универсальный тип задач в Jenkins. \ - Jenkins будет собирать ваш проект, комбинируя любую SCM с любой сборочной системой. \ - Данный тип проектов может использоваться для задач, отличных от сборки ПО. Hudson.BadPortNumber=Некорректный номер порта: {0} Hudson.Computer.Caption=Мастер diff --git a/core/src/main/resources/hudson/model/Messages_sv_SE.properties b/core/src/main/resources/hudson/model/Messages_sv_SE.properties index eae53e2bafe4..e5dc7d4759a4 100644 --- a/core/src/main/resources/hudson/model/Messages_sv_SE.properties +++ b/core/src/main/resources/hudson/model/Messages_sv_SE.properties @@ -6,5 +6,4 @@ Job.Pronoun=Projekt ManageJenkinsAction.DisplayName=Hantera Jenkins ParametersDefinitionProperty.DisplayName=Detta bygge är parametriserat -FreeStyleProject.Description=Detta är en central del i Jenkins. Jenkins kommer att bygga ditt projekt med valfri versionshanterare och med vilket byggsystem som helst, och detta kan även användas för något annat än mjukvarubyggen. ParametersDefinitionProperty.BuildButtonText=Bygg diff --git a/core/src/main/resources/hudson/model/Messages_tr.properties b/core/src/main/resources/hudson/model/Messages_tr.properties index 9a199011159d..5df1c7a3b5b9 100644 --- a/core/src/main/resources/hudson/model/Messages_tr.properties +++ b/core/src/main/resources/hudson/model/Messages_tr.properties @@ -52,9 +52,6 @@ BallColor.Unstable=Dengesiz Executor.NotAvailable=Mevcut Değil FreeStyleProject.DisplayName=Serbest stil proje -FreeStyleProject.Description=\ - Bu Jenkins''in en temel kullanım alanıdır. Jenkins, herhangi bir SCM''yi herhangi bir yapılandırma sistemiyle birleştirerek projenizi yapılandırır, \ - ve hatta yazılım yapılandırması dışında başka işler için bile kullanılabilir. Hudson.BadPortNumber=Yanlış Port Numarası {0} Hudson.Computer.Caption=Master diff --git a/core/src/main/resources/hudson/model/Messages_uk.properties b/core/src/main/resources/hudson/model/Messages_uk.properties index 0e17bda155e3..ed5b6dadb9b7 100644 --- a/core/src/main/resources/hudson/model/Messages_uk.properties +++ b/core/src/main/resources/hudson/model/Messages_uk.properties @@ -1,3 +1,2 @@ ParametersDefinitionProperty.DisplayName=Ця будова має параметри -FreeStyleProject.Description=Це - основна відмінність Jenkins. Jenkins побудує ваш проект, комбінуючи будь-які системи управління кодом з будь-якими системами збірки, що може бути використано навіть для цілей відмінних від збірки програмного забезпечення. diff --git a/core/src/main/resources/hudson/model/Messages_zh_TW.properties b/core/src/main/resources/hudson/model/Messages_zh_TW.properties index b0a151aced77..94d7c8f1a342 100644 --- a/core/src/main/resources/hudson/model/Messages_zh_TW.properties +++ b/core/src/main/resources/hudson/model/Messages_zh_TW.properties @@ -84,10 +84,6 @@ Descriptor.From=(from {0}) Executor.NotAvailable=N/A FreeStyleProject.DisplayName=建置 Free-Style 軟體專案 -FreeStyleProject.Description=\ - 這是 Jenkins 的主要功能。\ - Jenkins 能搭配各式程式碼管理、建置系統來建置您的專案,\ - 甚至還能做軟體建置以外的其他事情。 Hudson.BadPortNumber=連接埠號 {0} 無效 Hudson.Computer.Caption=Master From 184c79a02a57f80d3d76fb0cc9ebe9b6be04c0db Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 21 Dec 2023 11:37:58 -0700 Subject: [PATCH 0111/1216] Bump org.springframework.security:spring-security-bom from 5.8.8 to 5.8.9 (#8788) Bump org.springframework.security:spring-security-bom Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 5.8.8 to 5.8.9. - [Release notes](https://github.com/spring-projects/spring-security/releases) - [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc) - [Commits](https://github.com/spring-projects/spring-security/compare/5.8.8...5.8.9) --- updated-dependencies: - dependency-name: org.springframework.security:spring-security-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bom/pom.xml b/bom/pom.xml index 28a945e2321e..c56deb98438b 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -64,7 +64,7 @@ THE SOFTWARE. org.springframework.security spring-security-bom - 5.8.8 + 5.8.9 pom import From b8ee997fccbe11a2dcbdb3402bcaf6be97022e49 Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Thu, 21 Dec 2023 10:38:14 -0800 Subject: [PATCH 0112/1216] [JENKINS-64356] Add test for missing `legacyIds` when creating jobs via REST API or CLI (#8758) --- .../java/jenkins/model/RunIdMigratorTest.java | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 test/src/test/java/jenkins/model/RunIdMigratorTest.java diff --git a/test/src/test/java/jenkins/model/RunIdMigratorTest.java b/test/src/test/java/jenkins/model/RunIdMigratorTest.java new file mode 100644 index 000000000000..4ade1afc84e1 --- /dev/null +++ b/test/src/test/java/jenkins/model/RunIdMigratorTest.java @@ -0,0 +1,100 @@ +/* + * The MIT License + * + * Copyright 2023 CloudBees, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package jenkins.model; + +import static hudson.cli.CLICommandInvoker.Matcher.succeededSilently; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import hudson.cli.CLICommandInvoker; +import hudson.cli.CreateJobCommand; +import hudson.model.FreeStyleProject; +import hudson.model.Item; +import hudson.model.User; +import java.io.ByteArrayInputStream; +import java.io.File; +import java.nio.charset.StandardCharsets; +import org.htmlunit.HttpMethod; +import org.htmlunit.WebRequest; +import org.junit.Ignore; +import org.junit.Rule; +import org.junit.Test; +import org.jvnet.hudson.test.Issue; +import org.jvnet.hudson.test.JenkinsRule; +import org.jvnet.hudson.test.MockAuthorizationStrategy; + +public class RunIdMigratorTest { + + @Rule + public JenkinsRule j = new JenkinsRule(); + + @Test + public void legacyIdsPresent() throws Exception { + FreeStyleProject p = j.createFreeStyleProject(); + File legacyIds = new File(p.getBuildDir(), "legacyIds"); + assertTrue(legacyIds.exists()); + } + + @Ignore("TODO Item#onCreatedFromScratch is not called") + @Issue("JENKINS-64356") + @Test + public void legacyIdsPresentViaRestApi() throws Exception { + User user = User.getById("user", true); + j.jenkins.setSecurityRealm(j.createDummySecurityRealm()); + j.jenkins.setAuthorizationStrategy(new MockAuthorizationStrategy() + .grant(Jenkins.READ, Item.CREATE) + .everywhere() + .to(user.getId())); + String jobName = "test" + j.jenkins.getItems().size(); + try (JenkinsRule.WebClient wc = j.createWebClient()) { + wc.login(user.getId()); + WebRequest req = new WebRequest(wc.createCrumbedUrl("createItem?name=" + jobName), HttpMethod.POST); + req.setAdditionalHeader("Content-Type", "application/xml"); + req.setRequestBody(""); + wc.getPage(req); + } + FreeStyleProject p = j.jenkins.getItemByFullName(jobName, FreeStyleProject.class); + assertNotNull(p); + File legacyIds = new File(p.getBuildDir(), "legacyIds"); + assertTrue(legacyIds.exists()); + } + + @Ignore("TODO Item#onCreatedFromScratch is not called") + @Issue("JENKINS-64356") + @Test + public void legacyIdsPresentViaCli() { + String jobName = "test" + j.jenkins.getItems().size(); + CLICommandInvoker invoker = new CLICommandInvoker(j, new CreateJobCommand()); + CLICommandInvoker.Result result = invoker.withStdin( + new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8))) + .invokeWithArgs(jobName); + assertThat(result, succeededSilently()); + FreeStyleProject p = j.jenkins.getItemByFullName(jobName, FreeStyleProject.class); + assertNotNull(p); + File legacyIds = new File(p.getBuildDir(), "legacyIds"); + assertTrue(legacyIds.exists()); + } +} From 7018b14cc3f23c9415f1397ea6da22a7be280255 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 21 Dec 2023 14:20:36 -0800 Subject: [PATCH 0113/1216] Bump org.jenkins-ci.plugins:matrix-project from 818.v7eb_e657db_924 to 822.v01b_8c85d16d2 (#8796) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index bb493bb4a975..bbc83d780ea9 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -230,7 +230,7 @@ THE SOFTWARE. org.jenkins-ci.plugins matrix-project - 818.v7eb_e657db_924 + 822.v01b_8c85d16d2 test From 8115f23fffac6ac4beda0b58572421b6485c7725 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 21 Dec 2023 14:21:51 -0800 Subject: [PATCH 0114/1216] Bump com.google.guava:guava from 32.1.3-jre to 33.0.0-jre (#8792) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bom/pom.xml b/bom/pom.xml index c56deb98438b..36c3542fad35 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -82,7 +82,7 @@ THE SOFTWARE. com.google.guava guava - 32.1.3-jre + 33.0.0-jre From 43ecf083657d0a8fc85a14f85fc70a4555eb9277 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 21 Dec 2023 14:22:54 -0800 Subject: [PATCH 0115/1216] Update dependency eslint to v8.56.0 (#8789) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/yarn.lock | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/war/package.json b/war/package.json index 5fd76f8acc31..55779ca60538 100644 --- a/war/package.json +++ b/war/package.json @@ -30,7 +30,7 @@ "clean-webpack-plugin": "4.0.0", "css-loader": "6.8.1", "css-minimizer-webpack-plugin": "5.0.1", - "eslint": "8.55.0", + "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", "handlebars-loader": "1.7.3", "mini-css-extract-plugin": "2.7.6", diff --git a/war/yarn.lock b/war/yarn.lock index 26c631d7d84a..3ff87095816c 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -1803,10 +1803,10 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:8.55.0": - version: 8.55.0 - resolution: "@eslint/js@npm:8.55.0" - checksum: 88ab9fc57a651becd2b32ec40a3958db27fae133b1ae77bebd733aa5bbd00a92f325bb02f20ad680d31c731fa49b22f060a4777dd52eb3e27da013d940bd978d +"@eslint/js@npm:8.56.0": + version: 8.56.0 + resolution: "@eslint/js@npm:8.56.0" + checksum: 60b3a1cf240e2479cec9742424224465dc50e46d781da1b7f5ef240501b2d1202c225bd456207faac4b34a64f4765833345bc4ddffd00395e1db40fa8c426f5a languageName: node linkType: hard @@ -3514,14 +3514,14 @@ __metadata: languageName: node linkType: hard -"eslint@npm:8.55.0": - version: 8.55.0 - resolution: "eslint@npm:8.55.0" +"eslint@npm:8.56.0": + version: 8.56.0 + resolution: "eslint@npm:8.56.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" "@eslint-community/regexpp": "npm:^4.6.1" "@eslint/eslintrc": "npm:^2.1.4" - "@eslint/js": "npm:8.55.0" + "@eslint/js": "npm:8.56.0" "@humanwhocodes/config-array": "npm:^0.11.13" "@humanwhocodes/module-importer": "npm:^1.0.1" "@nodelib/fs.walk": "npm:^1.2.8" @@ -3558,7 +3558,7 @@ __metadata: text-table: "npm:^0.2.0" bin: eslint: bin/eslint.js - checksum: d28c0b60f19bb7d355cb8393e77b018c8f548dba3f820b799c89bb2e0c436ee26084e700c5e57e1e97e7972ec93065277849141b82e7b0c0d02c2dc1e553a2a1 + checksum: 2be598f7da1339d045ad933ffd3d4742bee610515cd2b0d9a2b8b729395a01d4e913552fff555b559fccaefd89d7b37632825789d1b06470608737ae69ab43fb languageName: node linkType: hard @@ -4347,7 +4347,7 @@ __metadata: clean-webpack-plugin: "npm:4.0.0" css-loader: "npm:6.8.1" css-minimizer-webpack-plugin: "npm:5.0.1" - eslint: "npm:8.55.0" + eslint: "npm:8.56.0" eslint-config-prettier: "npm:9.1.0" handlebars: "npm:4.7.8" handlebars-loader: "npm:1.7.3" From 400d5e4ce4440e159436828d7fe45dd51269592a Mon Sep 17 00:00:00 2001 From: Jan Faracik <43062514+janfaracik@users.noreply.github.com> Date: Fri, 22 Dec 2023 20:50:51 +0000 Subject: [PATCH 0116/1216] Remove last usages of .bigtable (#8797) --- .../SCMTrigger/DescriptorImpl/index.jelly | 32 ++++++----- .../diagnosis/HsErrPidList/index.jelly | 54 ++++++++++--------- 2 files changed, 47 insertions(+), 39 deletions(-) diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index.jelly b/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index.jelly index 6495f391e85c..482473f16d43 100644 --- a/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index.jelly +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index.jelly @@ -46,24 +46,28 @@ THE SOFTWARE.

${%The following polling activities are currently in progress:}

- - - - - - +
${%Project}${%Running for}
+ - - + + - + + + + + + + + +
- ${r.target.asItem().fullDisplayName} - - ${r.duration} - ${%Project}${%Running for}
+ ${r.target.asItem().fullDisplayName} + + ${r.duration} +
- \ No newline at end of file + diff --git a/core/src/main/resources/jenkins/diagnosis/HsErrPidList/index.jelly b/core/src/main/resources/jenkins/diagnosis/HsErrPidList/index.jelly index c78c973137c6..cc1db0886eda 100644 --- a/core/src/main/resources/jenkins/diagnosis/HsErrPidList/index.jelly +++ b/core/src/main/resources/jenkins/diagnosis/HsErrPidList/index.jelly @@ -31,33 +31,37 @@ THE SOFTWARE.

${%blurb}

- - - - - - +
${%Name}${%Date} -
+ - - - + + + - + + + + + + + + + +
- - - ${f.path} - - - - - (${%ago(f.timeSpanString)}) - -
- - -
${%Name}${%Date}
+ + + ${f.path} + + + + + (${%ago(f.timeSpanString)}) + +
+ + +
- \ No newline at end of file + From f60c1b4872b2e7a2dfa186fdff0c87464bf8c725 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Dec 2023 21:51:23 +0100 Subject: [PATCH 0117/1216] Bump org.jenkins-ci.main:jenkins-test-harness from 2137.vb_4eb_49f51c4b_ to 2140.ve736dc2b_b_d2c (#8799) Bump org.jenkins-ci.main:jenkins-test-harness Bumps [org.jenkins-ci.main:jenkins-test-harness](https://github.com/jenkinsci/jenkins-test-harness) from 2137.vb_4eb_49f51c4b_ to 2140.ve736dc2b_b_d2c. - [Release notes](https://github.com/jenkinsci/jenkins-test-harness/releases) - [Changelog](https://github.com/jenkinsci/jenkins-test-harness/blob/master/docs/CHANGELOG-OLD.md) - [Commits](https://github.com/jenkinsci/jenkins-test-harness/commits) --- updated-dependencies: - dependency-name: org.jenkins-ci.main:jenkins-test-harness dependency-type: direct:development ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index bbc83d780ea9..23af17400807 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -131,7 +131,7 @@ THE SOFTWARE. ${project.groupId} jenkins-test-harness - 2137.vb_4eb_49f51c4b_ + 2140.ve736dc2b_b_d2c test From df03159afe15788eb74bced96ce7b44dfc70788c Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Sat, 23 Dec 2023 18:49:49 -0500 Subject: [PATCH 0118/1216] Restore JCasC compatibility for `JNLPLauncher.tunnel` (#8793) * Restore JCasC compatibility for `JNLPLauncher.tunnel` * Also removing `@Deprecated` on fields & getters --- .../main/java/hudson/slaves/JNLPLauncher.java | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/hudson/slaves/JNLPLauncher.java b/core/src/main/java/hudson/slaves/JNLPLauncher.java index 3e11407ef6ba..4645f3ffbeeb 100644 --- a/core/src/main/java/hudson/slaves/JNLPLauncher.java +++ b/core/src/main/java/hudson/slaves/JNLPLauncher.java @@ -53,11 +53,11 @@ * @author Stephen Connolly * @author Kohsuke Kawaguchi */ +@SuppressWarnings("deprecation") // see comments about CasC public class JNLPLauncher extends ComputerLauncher { /** * Deprecated (only used with deprecated {@code -jnlpUrl} mode), but cannot mark it as such without breaking CasC. */ - @DataBoundSetter @CheckForNull public String tunnel; @@ -67,11 +67,9 @@ public class JNLPLauncher extends ComputerLauncher { @Deprecated public final transient String vmargs = null; - @Deprecated @NonNull private RemotingWorkDirSettings workDirSettings = RemotingWorkDirSettings.getEnabledDefaults(); - @Deprecated private boolean webSocket; /** @@ -131,7 +129,9 @@ protected Object readResolve() { return this; } - @Deprecated + /** + * Deprecated (only used with deprecated {@code -jnlpUrl} mode), but cannot mark it as such without breaking CasC. + */ public RemotingWorkDirSettings getWorkDirSettings() { return workDirSettings; } @@ -149,7 +149,9 @@ public boolean isLaunchSupported() { return false; } - @Deprecated + /** + * Deprecated (only used with deprecated {@code -jnlpUrl} mode), but cannot mark it as such without breaking CasC. + */ public boolean isWebSocket() { return webSocket; } @@ -162,6 +164,21 @@ public void setWebSocket(boolean webSocket) { this.webSocket = webSocket; } + /** + * Deprecated (only used with deprecated {@code -jnlpUrl} mode), but cannot mark it as such without breaking CasC. + */ + public String getTunnel() { + return tunnel; + } + + /** + * Deprecated (only used with deprecated {@code -jnlpUrl} mode), but cannot mark it as such without breaking CasC. + */ + @DataBoundSetter + public void setTunnel(String tunnel) { + this.tunnel = tunnel; + } + @Override public void launch(SlaveComputer computer, TaskListener listener) { // do nothing as we cannot self start From 48da635be22e4e01d71d62a957f3b4c0803a64de Mon Sep 17 00:00:00 2001 From: Markus Winter Date: Mon, 25 Dec 2023 15:21:53 +0100 Subject: [PATCH 0119/1216] [JENKINS-71965] fix timezone in build history (#8800) * [JENKINS-71965] fix timezone in build history the timezone shown was always the daylight saving time when the users selected timezone has daylight saving. The change will now consider the actual timestamp of the build to determine if it was in daylight saving time to properly calculate the timezone to show. * make locale aware --- core/src/main/java/hudson/Functions.java | 4 ++-- .../main/resources/hudson/widgets/HistoryWidget/entry.jelly | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/hudson/Functions.java b/core/src/main/java/hudson/Functions.java index 0d5786815ed0..9cc4659ef33b 100644 --- a/core/src/main/java/hudson/Functions.java +++ b/core/src/main/java/hudson/Functions.java @@ -692,13 +692,13 @@ public static String getUserTimeZone() { } @Restricted(NoExternalUse.class) - public static String getUserTimeZonePostfix() { + public static String getUserTimeZonePostfix(Date date) { if (!isUserTimeZoneOverride()) { return ""; } TimeZone tz = TimeZone.getTimeZone(getUserTimeZone()); - return tz.getDisplayName(tz.observesDaylightTime(), TimeZone.SHORT); + return tz.getDisplayName(tz.inDaylightTime(date), TimeZone.SHORT, getCurrentLocale()); } @Restricted(NoExternalUse.class) diff --git a/core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly b/core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly index a77474476625..31dbb322fbd0 100644 --- a/core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly +++ b/core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly @@ -50,7 +50,7 @@ THE SOFTWARE. ${%Took} ${build.durationString} - ${h.getUserTimeZonePostfix()} + ${h.getUserTimeZonePostfix(build.timestamp.time)} From 5ab5ad07e9847ec89bc708fff64cb6391144268f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Dec 2023 10:04:14 -0800 Subject: [PATCH 0120/1216] Bump io.jenkins.plugins:plugin-util-api from 3.6.0 to 3.8.0 (#8801) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index 23af17400807..014299562104 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -88,7 +88,7 @@ THE SOFTWARE. io.jenkins.plugins plugin-util-api - 3.6.0 + 3.8.0 org.jenkins-ci.plugins From 49c305dfb7a07b54eff2baee5b8c87c1b6278303 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 26 Dec 2023 13:04:44 +0000 Subject: [PATCH 0121/1216] [maven-release-plugin] prepare release jenkins-2.438 --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty10/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 36c3542fad35..4d5d823bdb26 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.438 jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 21aabc88e649..eac275a0060d 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.438 cli diff --git a/core/pom.xml b/core/pom.xml index 45539865962a..d693da33f498 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.438 jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index 9f27c8d11cf0..1d7732c0d124 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.438 jenkins-coverage diff --git a/pom.xml b/pom.xml index b1386c7b1330..422600e25695 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.438 pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - ${scmTag} + jenkins-2.438 https://github.com/jenkinsci/jenkins diff --git a/test/pom.xml b/test/pom.xml index 014299562104..834131422073 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.438 jenkins-test diff --git a/war/pom.xml b/war/pom.xml index 2808d786b3d4..34b46dd2b3ef 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.438 jenkins-war diff --git a/websocket/jetty10/pom.xml b/websocket/jetty10/pom.xml index eb4a169a59d1..61f4d998c945 100644 --- a/websocket/jetty10/pom.xml +++ b/websocket/jetty10/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.438 ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 77abcc3b7248..823c105e64bf 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.438 ../.. From 111b3f28be852584b1a1e9e78a05ba9827012798 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 26 Dec 2023 13:05:08 +0000 Subject: [PATCH 0122/1216] [maven-release-plugin] prepare for next development iteration --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 6 +++--- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty10/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 4d5d823bdb26..36c3542fad35 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.438 + ${revision}${changelist} jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index eac275a0060d..21aabc88e649 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.438 + ${revision}${changelist} cli diff --git a/core/pom.xml b/core/pom.xml index d693da33f498..45539865962a 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.438 + ${revision}${changelist} jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index 1d7732c0d124..9f27c8d11cf0 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.438 + ${revision}${changelist} jenkins-coverage diff --git a/pom.xml b/pom.xml index 422600e25695..6541831b2a10 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.438 + ${revision}${changelist} pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - jenkins-2.438 + ${scmTag} https://github.com/jenkinsci/jenkins @@ -73,7 +73,7 @@ THE SOFTWARE. - 2.438 + 2.439 -SNAPSHOT diff --git a/test/pom.xml b/test/pom.xml index 834131422073..014299562104 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.438 + ${revision}${changelist} jenkins-test diff --git a/war/pom.xml b/war/pom.xml index 34b46dd2b3ef..2808d786b3d4 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.438 + ${revision}${changelist} jenkins-war diff --git a/websocket/jetty10/pom.xml b/websocket/jetty10/pom.xml index 61f4d998c945..eb4a169a59d1 100644 --- a/websocket/jetty10/pom.xml +++ b/websocket/jetty10/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.438 + ${revision}${changelist} ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 823c105e64bf..77abcc3b7248 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.438 + ${revision}${changelist} ../.. From 3a92445c2bc80a4c9e7c6fdf87731be109851405 Mon Sep 17 00:00:00 2001 From: Markus Winter Date: Thu, 28 Dec 2023 10:59:43 +0100 Subject: [PATCH 0123/1216] [JENKINS-72370][JENKINS-11889] fix SimpleScheduledRetentionStrategy with inbound agents (#8717) by implementing `isAcceptingTasks` the availability strategy ensures that no builds can start when the agent should not do anything. The current behaviour with an inbound agent is that the strategy disconnects the agent, just to get connected again by the agents java process followed by a disconnection a minute later and so on. After it is connected, the agent is actually accepting tasks. Additionally the change will only disconnect the agent when the controller the controller can itself launch the agent, this means inbound agents are not connected, to avoid playing jojo. The agent will just not accept new tasks for execution. The change also avoids the problem in [JENKINS-11889] for outbound agents where the accepting tasks of an agents seems to be not reset when changing the availability strategy to always on. --- .../SimpleScheduledRetentionStrategy.java | 77 ++++++++++--------- 1 file changed, 40 insertions(+), 37 deletions(-) diff --git a/core/src/main/java/hudson/slaves/SimpleScheduledRetentionStrategy.java b/core/src/main/java/hudson/slaves/SimpleScheduledRetentionStrategy.java index 6f09e8109973..ef6e3d0c8658 100644 --- a/core/src/main/java/hudson/slaves/SimpleScheduledRetentionStrategy.java +++ b/core/src/main/java/hudson/slaves/SimpleScheduledRetentionStrategy.java @@ -169,6 +169,11 @@ public boolean isManualLaunchAllowed(final SlaveComputer c) { return isOnlineScheduled(); } + @Override + public boolean isAcceptingTasks(SlaveComputer c) { + return isOnlineScheduled(); + } + @Override @GuardedBy("hudson.model.Queue.lock") public synchronized long check(final SlaveComputer c) { @@ -191,7 +196,6 @@ public void run() { LOGGER.log(INFO, "Enabling new jobs for computer {0} as it has started its scheduled uptime", new Object[]{c.getName()}); - c.setAcceptingTasks(true); } } catch (InterruptedException | ExecutionException e) { } @@ -199,45 +203,44 @@ public void run() { }); } } else if (!shouldBeOnline && c.isOnline()) { - if (keepUpWhenActive) { - if (!c.isIdle() && c.isAcceptingTasks()) { - c.setAcceptingTasks(false); - LOGGER.log(INFO, - "Disabling new jobs for computer {0} as it has finished its scheduled uptime", - new Object[]{c.getName()}); - return 1; - } else if (c.isIdle() && c.isAcceptingTasks()) { - Queue.withLock(new Runnable() { - @Override - public void run() { - if (c.isIdle()) { - LOGGER.log(INFO, "Disconnecting computer {0} as it has finished its scheduled uptime", - new Object[]{c.getName()}); - c.disconnect(OfflineCause - .create(Messages._SimpleScheduledRetentionStrategy_FinishedUpTime())); - } else { - c.setAcceptingTasks(false); + if (c.isLaunchSupported()) { + if (keepUpWhenActive) { + if (!c.isIdle() && c.isAcceptingTasks()) { + LOGGER.log(INFO, + "Disabling new jobs for computer {0} as it has finished its scheduled uptime", + new Object[]{c.getName()}); + return 1; + } else if (c.isIdle() && c.isAcceptingTasks()) { + Queue.withLock(new Runnable() { + @Override + public void run() { + if (c.isIdle()) { + LOGGER.log(INFO, "Disconnecting computer {0} as it has finished its scheduled uptime", + new Object[]{c.getName()}); + c.disconnect(OfflineCause + .create(Messages._SimpleScheduledRetentionStrategy_FinishedUpTime())); + } } - } - }); - } else if (c.isIdle() && !c.isAcceptingTasks()) { - Queue.withLock(new Runnable() { - @Override - public void run() { - if (c.isIdle()) { - LOGGER.log(INFO, "Disconnecting computer {0} as it has finished all jobs running when " - + "it completed its scheduled uptime", new Object[]{c.getName()}); - c.disconnect(OfflineCause - .create(Messages._SimpleScheduledRetentionStrategy_FinishedUpTime())); + }); + } else if (c.isIdle() && !c.isAcceptingTasks()) { + Queue.withLock(new Runnable() { + @Override + public void run() { + if (c.isIdle()) { + LOGGER.log(INFO, "Disconnecting computer {0} as it has finished all jobs running when " + + "it completed its scheduled uptime", new Object[]{c.getName()}); + c.disconnect(OfflineCause + .create(Messages._SimpleScheduledRetentionStrategy_FinishedUpTime())); + } } - } - }); + }); + } + } else { + // no need to get the queue lock as the user has selected the break builds option! + LOGGER.log(INFO, "Disconnecting computer {0} as it has finished its scheduled uptime", + new Object[]{c.getName()}); + c.disconnect(OfflineCause.create(Messages._SimpleScheduledRetentionStrategy_FinishedUpTime())); } - } else { - // no need to get the queue lock as the user has selected the break builds option! - LOGGER.log(INFO, "Disconnecting computer {0} as it has finished its scheduled uptime", - new Object[]{c.getName()}); - c.disconnect(OfflineCause.create(Messages._SimpleScheduledRetentionStrategy_FinishedUpTime())); } } return 1; From ee7ec9f430f778a9a0447e55c2119f6a961d8170 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 29 Dec 2023 01:21:45 +0100 Subject: [PATCH 0124/1216] Update dependency sass-loader to v13.3.3 (#8808) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/war/package.json b/war/package.json index 55779ca60538..b374e39b3b00 100644 --- a/war/package.json +++ b/war/package.json @@ -40,7 +40,7 @@ "postcss-scss": "4.0.9", "prettier": "3.1.1", "sass": "1.69.5", - "sass-loader": "13.3.2", + "sass-loader": "13.3.3", "style-loader": "3.3.3", "stylelint": "16.0.2", "stylelint-checkstyle-reporter": "0.2.0", diff --git a/war/yarn.lock b/war/yarn.lock index 3ff87095816c..6d8a87b199cc 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -4361,7 +4361,7 @@ __metadata: postcss-scss: "npm:4.0.9" prettier: "npm:3.1.1" sass: "npm:1.69.5" - sass-loader: "npm:13.3.2" + sass-loader: "npm:13.3.3" sortablejs: "npm:1.15.1" style-loader: "npm:3.3.3" stylelint: "npm:16.0.2" @@ -6285,9 +6285,9 @@ __metadata: languageName: node linkType: hard -"sass-loader@npm:13.3.2": - version: 13.3.2 - resolution: "sass-loader@npm:13.3.2" +"sass-loader@npm:13.3.3": + version: 13.3.3 + resolution: "sass-loader@npm:13.3.3" dependencies: neo-async: "npm:^2.6.2" peerDependencies: @@ -6305,7 +6305,7 @@ __metadata: optional: true sass-embedded: optional: true - checksum: 7db8132101ed663f3cf936ce765b9b960a48b14f13f17d367a4e0c2ae259e91b6c401e33ab0f27ee88c98c8b5893c778848fc8366f1f387ac788ebef244e000a + checksum: 5e955a4ffce35ee0a46fce677ce51eaa69587fb5371978588c83af00f49e7edc36dcf3bb559cbae27681c5e24a71284463ebe03a1fb65e6ecafa1db0620e3fc8 languageName: node linkType: hard From 69e20dbbaf70c92c8daabf0327144483a936a667 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 29 Dec 2023 01:23:31 +0100 Subject: [PATCH 0125/1216] Update dependency stylelint to v16.1.0 (#8804) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/yarn.lock | 259 +++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 219 insertions(+), 42 deletions(-) diff --git a/war/package.json b/war/package.json index b374e39b3b00..2c91ee9ba42a 100644 --- a/war/package.json +++ b/war/package.json @@ -42,7 +42,7 @@ "sass": "1.69.5", "sass-loader": "13.3.3", "style-loader": "3.3.3", - "stylelint": "16.0.2", + "stylelint": "16.1.0", "stylelint-checkstyle-reporter": "0.2.0", "stylelint-config-standard": "33.0.0", "webpack": "5.89.0", diff --git a/war/yarn.lock b/war/yarn.lock index 6d8a87b199cc..7aa8317d793e 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -1394,7 +1394,7 @@ __metadata: languageName: node linkType: hard -"@csstools/css-parser-algorithms@npm:2.3.2, @csstools/css-parser-algorithms@npm:^2.3.2": +"@csstools/css-parser-algorithms@npm:2.3.2": version: 2.3.2 resolution: "@csstools/css-parser-algorithms@npm:2.3.2" peerDependencies: @@ -1403,20 +1403,29 @@ __metadata: languageName: node linkType: hard -"@csstools/css-tokenizer@npm:^2.2.1": - version: 2.2.1 - resolution: "@csstools/css-tokenizer@npm:2.2.1" - checksum: 0c6901d291e99c567893846a47068057c2a28b3edc4219b6da589a530f55f51ddd4675f906f707b393bfe7a508ab2604bf3f75708f064db857bb277636bd5a44 +"@csstools/css-parser-algorithms@npm:^2.3.2, @csstools/css-parser-algorithms@npm:^2.4.0": + version: 2.4.0 + resolution: "@csstools/css-parser-algorithms@npm:2.4.0" + peerDependencies: + "@csstools/css-tokenizer": ^2.2.2 + checksum: bcfc067b9d1bd5e0bc6044bfbf6450a4a6837d88c5ffd081e2159d4e442c28f018b58c7c2b3ce176ba0bf76cbbce0fd3c65468a40b9867ad9b3e3ef90b9b2655 languageName: node linkType: hard -"@csstools/media-query-list-parser@npm:^2.1.5": - version: 2.1.5 - resolution: "@csstools/media-query-list-parser@npm:2.1.5" +"@csstools/css-tokenizer@npm:^2.2.1, @csstools/css-tokenizer@npm:^2.2.2": + version: 2.2.2 + resolution: "@csstools/css-tokenizer@npm:2.2.2" + checksum: 9e7374aab06a811f868a85127af1ff07ad7a56e22e8c46930e789a907098bdd4e6eec82e0cb0d4b8ac1cd5cd054c1f0e329ec50d8548f57d660aeee7cf9b3167 + languageName: node + linkType: hard + +"@csstools/media-query-list-parser@npm:^2.1.5, @csstools/media-query-list-parser@npm:^2.1.6": + version: 2.1.6 + resolution: "@csstools/media-query-list-parser@npm:2.1.6" peerDependencies: - "@csstools/css-parser-algorithms": ^2.3.2 - "@csstools/css-tokenizer": ^2.2.1 - checksum: ae0692c6f92cdc82053291c7a50028b692094dfed795f0259571c5eb40f4b3fa580182ac3701e56c2834e40a62a122ea6639299e43ae88b3a835ae4c869a1a12 + "@csstools/css-parser-algorithms": ^2.4.0 + "@csstools/css-tokenizer": ^2.2.2 + checksum: 06da3e5c01e4785963b821ee2eb31f4fcec622f3b0e4e0748113f287c876f241be211ba11d435d0cc1f0e9f2e26baf5fbf6f8563dc88a49709c3d49e79490b76 languageName: node linkType: hard @@ -1752,12 +1761,12 @@ __metadata: languageName: node linkType: hard -"@csstools/selector-specificity@npm:^3.0.0": - version: 3.0.0 - resolution: "@csstools/selector-specificity@npm:3.0.0" +"@csstools/selector-specificity@npm:^3.0.0, @csstools/selector-specificity@npm:^3.0.1": + version: 3.0.1 + resolution: "@csstools/selector-specificity@npm:3.0.1" peerDependencies: postcss-selector-parser: ^6.0.13 - checksum: 6f0e2fa9a3c5dcbc7a446fd827d3eb85ca775cc884f73f0bbb119ab49b4f5f0af8763dd23a37d423f4e7989069c09bb977e7e5f017db296e1417abb1fba75c30 + checksum: 4280f494726d5e38de74e28dee2ff74ec86244560dff4edeec3ddff3ac73c774c19535bd1bb70cad77949bfb359cf87e977d0ec3264591e3b7260342a20dd84f languageName: node linkType: hard @@ -1842,6 +1851,20 @@ __metadata: languageName: node linkType: hard +"@isaacs/cliui@npm:^8.0.2": + version: 8.0.2 + resolution: "@isaacs/cliui@npm:8.0.2" + dependencies: + string-width: "npm:^5.1.2" + string-width-cjs: "npm:string-width@^4.2.0" + strip-ansi: "npm:^7.0.1" + strip-ansi-cjs: "npm:strip-ansi@^6.0.1" + wrap-ansi: "npm:^8.1.0" + wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" + checksum: b1bf42535d49f11dc137f18d5e4e63a28c5569de438a221c369483731e9dac9fb797af554e8bf02b6192d1e5eba6e6402cf93900c3d0ac86391d00d04876789e + languageName: node + linkType: hard + "@jest/schemas@npm:^29.4.3": version: 29.4.3 resolution: "@jest/schemas@npm:29.4.3" @@ -2018,6 +2041,13 @@ __metadata: languageName: node linkType: hard +"@pkgjs/parseargs@npm:^0.11.0": + version: 0.11.0 + resolution: "@pkgjs/parseargs@npm:0.11.0" + checksum: 5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd + languageName: node + linkType: hard + "@popperjs/core@npm:^2.9.0": version: 2.11.6 resolution: "@popperjs/core@npm:2.11.6" @@ -2504,6 +2534,13 @@ __metadata: languageName: node linkType: hard +"ansi-styles@npm:^6.1.0": + version: 6.2.1 + resolution: "ansi-styles@npm:6.2.1" + checksum: 5d1ec38c123984bcedd996eac680d548f31828bd679a66db2bdf11844634dde55fec3efa9c6bb1d89056a5e79c1ac540c4c784d592ea1d25028a92227d2f2d5c + languageName: node + linkType: hard + "ansis@npm:1.5.2": version: 1.5.2 resolution: "ansis@npm:1.5.2" @@ -3033,7 +3070,7 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": version: 7.0.3 resolution: "cross-spawn@npm:7.0.3" dependencies: @@ -3369,6 +3406,13 @@ __metadata: languageName: node linkType: hard +"eastasianwidth@npm:^0.2.0": + version: 0.2.0 + resolution: "eastasianwidth@npm:0.2.0" + checksum: 26f364ebcdb6395f95124fda411f63137a4bfb5d3a06453f7f23dfe52502905bd84e0488172e0f9ec295fdc45f05c23d5d91baf16bd26f0fe9acd777a188dc39 + languageName: node + linkType: hard + "electron-to-chromium@npm:^1.4.601": version: 1.4.612 resolution: "electron-to-chromium@npm:1.4.612" @@ -3383,6 +3427,13 @@ __metadata: languageName: node linkType: hard +"emoji-regex@npm:^9.2.2": + version: 9.2.2 + resolution: "emoji-regex@npm:9.2.2" + checksum: af014e759a72064cf66e6e694a7fc6b0ed3d8db680427b021a89727689671cefe9d04151b2cad51dbaf85d5ba790d061cd167f1cf32eb7b281f6368b3c181639 + languageName: node + linkType: hard + "emojis-list@npm:^3.0.0": version: 3.0.0 resolution: "emojis-list@npm:3.0.0" @@ -3695,12 +3746,12 @@ __metadata: languageName: node linkType: hard -"file-entry-cache@npm:^7.0.2": - version: 7.0.2 - resolution: "file-entry-cache@npm:7.0.2" +"file-entry-cache@npm:^8.0.0": + version: 8.0.0 + resolution: "file-entry-cache@npm:8.0.0" dependencies: - flat-cache: "npm:^3.2.0" - checksum: 822664e35c3e295e6a8ca7ec490d8d8077017607f41f94b29922f1f49c6dd07025048e3ed528e2909a1439eba66d60f802c0774aa612cf6ee053ee4ecc16c8c5 + flat-cache: "npm:^4.0.0" + checksum: 9e2b5938b1cd9b6d7e3612bdc533afd4ac17b2fc646569e9a8abbf2eb48e5eb8e316bc38815a3ef6a1b456f4107f0d0f055a614ca613e75db6bf9ff4d72c1638 languageName: node linkType: hard @@ -3753,7 +3804,7 @@ __metadata: languageName: node linkType: hard -"flat-cache@npm:^3.0.4, flat-cache@npm:^3.2.0": +"flat-cache@npm:^3.0.4": version: 3.2.0 resolution: "flat-cache@npm:3.2.0" dependencies: @@ -3764,6 +3815,17 @@ __metadata: languageName: node linkType: hard +"flat-cache@npm:^4.0.0": + version: 4.0.0 + resolution: "flat-cache@npm:4.0.0" + dependencies: + flatted: "npm:^3.2.9" + keyv: "npm:^4.5.4" + rimraf: "npm:^5.0.5" + checksum: 8f99e27bb3de94e91e7b4ca5120488cdc2b7f8cd952a538f1a566101963057eb42ca318e9fac0d36987dcca34316ff04b61c1dc3dcc8084f6f5e801a52a8e547 + languageName: node + linkType: hard + "flatted@npm:^3.2.9": version: 3.2.9 resolution: "flatted@npm:3.2.9" @@ -3771,6 +3833,16 @@ __metadata: languageName: node linkType: hard +"foreground-child@npm:^3.1.0": + version: 3.1.1 + resolution: "foreground-child@npm:3.1.1" + dependencies: + cross-spawn: "npm:^7.0.0" + signal-exit: "npm:^4.0.1" + checksum: 9700a0285628abaeb37007c9a4d92bd49f67210f09067638774338e146c8e9c825c5c877f072b2f75f41dc6a2d0be8664f79ffc03f6576649f54a84fb9b47de0 + languageName: node + linkType: hard + "fraction.js@npm:^4.3.6": version: 4.3.7 resolution: "fraction.js@npm:4.3.7" @@ -3875,6 +3947,21 @@ __metadata: languageName: node linkType: hard +"glob@npm:^10.3.7": + version: 10.3.10 + resolution: "glob@npm:10.3.10" + dependencies: + foreground-child: "npm:^3.1.0" + jackspeak: "npm:^2.3.5" + minimatch: "npm:^9.0.1" + minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry: "npm:^1.10.1" + bin: + glob: dist/esm/bin.mjs + checksum: 13d8a1feb7eac7945f8c8480e11cd4a44b24d26503d99a8d8ac8d5aefbf3e9802a2b6087318a829fad04cb4e829f25c5f4f1110c68966c498720dd261c7e344d + languageName: node + linkType: hard + "glob@npm:^7.0.3, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.2.0": version: 7.2.3 resolution: "glob@npm:7.2.3" @@ -4336,6 +4423,19 @@ __metadata: languageName: node linkType: hard +"jackspeak@npm:^2.3.5": + version: 2.3.6 + resolution: "jackspeak@npm:2.3.6" + dependencies: + "@isaacs/cliui": "npm:^8.0.2" + "@pkgjs/parseargs": "npm:^0.11.0" + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: f01d8f972d894cd7638bc338e9ef5ddb86f7b208ce177a36d718eac96ec86638a6efa17d0221b10073e64b45edc2ce15340db9380b1f5d5c5d000cbc517dc111 + languageName: node + linkType: hard + "jenkins-ui@workspace:.": version: 0.0.0-use.local resolution: "jenkins-ui@workspace:." @@ -4364,7 +4464,7 @@ __metadata: sass-loader: "npm:13.3.3" sortablejs: "npm:1.15.1" style-loader: "npm:3.3.3" - stylelint: "npm:16.0.2" + stylelint: "npm:16.1.0" stylelint-checkstyle-reporter: "npm:0.2.0" stylelint-config-standard: "npm:33.0.0" tippy.js: "npm:6.3.7" @@ -4531,7 +4631,7 @@ __metadata: languageName: node linkType: hard -"keyv@npm:^4.5.3": +"keyv@npm:^4.5.3, keyv@npm:^4.5.4": version: 4.5.4 resolution: "keyv@npm:4.5.4" dependencies: @@ -4690,6 +4790,13 @@ __metadata: languageName: node linkType: hard +"lru-cache@npm:^9.1.1 || ^10.0.0": + version: 10.1.0 + resolution: "lru-cache@npm:10.1.0" + checksum: 778bc8b2626daccd75f24c4b4d10632496e21ba064b126f526c626fbdbc5b28c472013fccd45d7646b9e1ef052444824854aed617b59cd570d01a8b7d651fc1e + languageName: node + linkType: hard + "make-dir@npm:^2.1.0": version: 2.1.0 resolution: "make-dir@npm:2.1.0" @@ -4745,10 +4852,10 @@ __metadata: languageName: node linkType: hard -"meow@npm:^12.1.1": - version: 12.1.1 - resolution: "meow@npm:12.1.1" - checksum: a125ca99a32e2306e2f4cbe651a0d27f6eb67918d43a075f6e80b35e9bf372ebf0fc3a9fbc201cbbc9516444b6265fb3c9f80c5b7ebd32f548aa93eb7c28e088 +"meow@npm:^13.0.0": + version: 13.0.0 + resolution: "meow@npm:13.0.0" + checksum: fab0f91578154c048e792a81704f3f28099ffff900f364df8a85f6e770a57e1c124859a25e186186e149dad30692c7893af0dfd71517bea343bfe5d749b1fa04 languageName: node linkType: hard @@ -4821,6 +4928,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^9.0.1": + version: 9.0.3 + resolution: "minimatch@npm:9.0.3" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 85f407dcd38ac3e180f425e86553911d101455ca3ad5544d6a7cec16286657e4f8a9aa6695803025c55e31e35a91a2252b5dc8e7d527211278b8b65b4dbd5eac + languageName: node + linkType: hard + "minimist@npm:^1.2.0, minimist@npm:^1.2.5": version: 1.2.7 resolution: "minimist@npm:1.2.7" @@ -4888,6 +5004,13 @@ __metadata: languageName: node linkType: hard +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0": + version: 7.0.4 + resolution: "minipass@npm:7.0.4" + checksum: 6c7370a6dfd257bf18222da581ba89a5eaedca10e158781232a8b5542a90547540b4b9b7e7f490e4cda43acfbd12e086f0453728ecf8c19e0ef6921bc5958ac5 + languageName: node + linkType: hard + "minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": version: 2.1.2 resolution: "minizlib@npm:2.1.2" @@ -5194,6 +5317,16 @@ __metadata: languageName: node linkType: hard +"path-scurry@npm:^1.10.1": + version: 1.10.1 + resolution: "path-scurry@npm:1.10.1" + dependencies: + lru-cache: "npm:^9.1.1 || ^10.0.0" + minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" + checksum: e5dc78a7348d25eec61ab166317e9e9c7b46818aa2c2b9006c507a6ff48c672d011292d9662527213e558f5652ce0afcc788663a061d8b59ab495681840c0c1e + languageName: node + linkType: hard + "path-type@npm:^4.0.0": version: 4.0.0 resolution: "path-type@npm:4.0.0" @@ -6262,6 +6395,17 @@ __metadata: languageName: node linkType: hard +"rimraf@npm:^5.0.5": + version: 5.0.5 + resolution: "rimraf@npm:5.0.5" + dependencies: + glob: "npm:^10.3.7" + bin: + rimraf: dist/esm/bin.mjs + checksum: d50dbe724f33835decd88395b25ed35995077c60a50ae78ded06e0185418914e555817aad1b4243edbff2254548c2f6ad6f70cc850040bebb4da9e8cc016f586 + languageName: node + linkType: hard + "run-parallel@npm:^1.1.9": version: 1.2.0 resolution: "run-parallel@npm:1.2.0" @@ -6529,7 +6673,7 @@ __metadata: languageName: node linkType: hard -"string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.2.3": +"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.3": version: 4.2.3 resolution: "string-width@npm:4.2.3" dependencies: @@ -6540,6 +6684,17 @@ __metadata: languageName: node linkType: hard +"string-width@npm:^5.0.1, string-width@npm:^5.1.2": + version: 5.1.2 + resolution: "string-width@npm:5.1.2" + dependencies: + eastasianwidth: "npm:^0.2.0" + emoji-regex: "npm:^9.2.2" + strip-ansi: "npm:^7.0.1" + checksum: ab9c4264443d35b8b923cbdd513a089a60de339216d3b0ed3be3ba57d6880e1a192b70ae17225f764d7adbf5994e9bb8df253a944736c15a0240eff553c678ca + languageName: node + linkType: hard + "string_decoder@npm:^1.1.1": version: 1.3.0 resolution: "string_decoder@npm:1.3.0" @@ -6549,7 +6704,7 @@ __metadata: languageName: node linkType: hard -"strip-ansi@npm:^6.0.1": +"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": version: 6.0.1 resolution: "strip-ansi@npm:6.0.1" dependencies: @@ -6558,7 +6713,7 @@ __metadata: languageName: node linkType: hard -"strip-ansi@npm:^7.1.0": +"strip-ansi@npm:^7.0.1, strip-ansi@npm:^7.1.0": version: 7.1.0 resolution: "strip-ansi@npm:7.1.0" dependencies: @@ -6624,14 +6779,14 @@ __metadata: languageName: node linkType: hard -"stylelint@npm:16.0.2": - version: 16.0.2 - resolution: "stylelint@npm:16.0.2" +"stylelint@npm:16.1.0": + version: 16.1.0 + resolution: "stylelint@npm:16.1.0" dependencies: - "@csstools/css-parser-algorithms": "npm:^2.3.2" - "@csstools/css-tokenizer": "npm:^2.2.1" - "@csstools/media-query-list-parser": "npm:^2.1.5" - "@csstools/selector-specificity": "npm:^3.0.0" + "@csstools/css-parser-algorithms": "npm:^2.4.0" + "@csstools/css-tokenizer": "npm:^2.2.2" + "@csstools/media-query-list-parser": "npm:^2.1.6" + "@csstools/selector-specificity": "npm:^3.0.1" balanced-match: "npm:^2.0.0" colord: "npm:^2.9.3" cosmiconfig: "npm:^9.0.0" @@ -6640,7 +6795,7 @@ __metadata: debug: "npm:^4.3.4" fast-glob: "npm:^3.3.2" fastest-levenshtein: "npm:^1.0.16" - file-entry-cache: "npm:^7.0.2" + file-entry-cache: "npm:^8.0.0" global-modules: "npm:^2.0.0" globby: "npm:^11.1.0" globjoin: "npm:^0.1.4" @@ -6650,7 +6805,7 @@ __metadata: is-plain-object: "npm:^5.0.0" known-css-properties: "npm:^0.29.0" mathml-tag-names: "npm:^2.1.3" - meow: "npm:^12.1.1" + meow: "npm:^13.0.0" micromatch: "npm:^4.0.5" normalize-path: "npm:^3.0.0" picocolors: "npm:^1.0.0" @@ -6668,7 +6823,7 @@ __metadata: write-file-atomic: "npm:^5.0.1" bin: stylelint: bin/stylelint.mjs - checksum: 5ec755e209beb1877ff40d50f18c1ebb05bf251925da1f98f28fb3911e4031195eb86adaf641ac5cdb01ba973f4c999bc0c6b0270d08c1d5c070adbdd9e734cf + checksum: 765eea0b07319d1e7989502c07b8b5794938e5a8542bec00990b09ec10c3f7006891689930099e948d06c9ef9982066edb98b1ea64a435138a6b0f0905eb2b87 languageName: node linkType: hard @@ -7104,6 +7259,28 @@ __metadata: languageName: node linkType: hard +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version: 7.0.0 + resolution: "wrap-ansi@npm:7.0.0" + dependencies: + ansi-styles: "npm:^4.0.0" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + checksum: d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da + languageName: node + linkType: hard + +"wrap-ansi@npm:^8.1.0": + version: 8.1.0 + resolution: "wrap-ansi@npm:8.1.0" + dependencies: + ansi-styles: "npm:^6.1.0" + string-width: "npm:^5.0.1" + strip-ansi: "npm:^7.0.1" + checksum: 138ff58a41d2f877eae87e3282c0630fc2789012fc1af4d6bd626eeb9a2f9a65ca92005e6e69a75c7b85a68479fe7443c7dbe1eb8fbaa681a4491364b7c55c60 + languageName: node + linkType: hard + "wrappy@npm:1": version: 1.0.2 resolution: "wrappy@npm:1.0.2" From 2e267453eb7530848df3a4b75774136446e280b5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 31 Dec 2023 12:24:56 +0100 Subject: [PATCH 0126/1216] Update dependency postcss-loader to v7.3.4 (#8812) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/yarn.lock | 51 ++++++++++++++++++++++++++---------------------- 2 files changed, 29 insertions(+), 24 deletions(-) diff --git a/war/package.json b/war/package.json index 2c91ee9ba42a..307f28d71172 100644 --- a/war/package.json +++ b/war/package.json @@ -35,7 +35,7 @@ "handlebars-loader": "1.7.3", "mini-css-extract-plugin": "2.7.6", "postcss": "8.4.32", - "postcss-loader": "7.3.3", + "postcss-loader": "7.3.4", "postcss-preset-env": "9.3.0", "postcss-scss": "4.0.9", "prettier": "3.1.1", diff --git a/war/yarn.lock b/war/yarn.lock index 7aa8317d793e..3781e65b0635 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -3041,15 +3041,20 @@ __metadata: languageName: node linkType: hard -"cosmiconfig@npm:^8.2.0": - version: 8.2.0 - resolution: "cosmiconfig@npm:8.2.0" +"cosmiconfig@npm:^8.3.5": + version: 8.3.6 + resolution: "cosmiconfig@npm:8.3.6" dependencies: - import-fresh: "npm:^3.2.1" + import-fresh: "npm:^3.3.0" js-yaml: "npm:^4.1.0" - parse-json: "npm:^5.0.0" + parse-json: "npm:^5.2.0" path-type: "npm:^4.0.0" - checksum: 4180aa6d1881b75ba591b2fc04b022741a3a4b67e9e243c0eb8d169b6e1efbd3cdf7e8ca19243c0f2e53a9d59ac3eccd5cad5f95f487fcbf4e740f9e86745747 + peerDependencies: + typescript: ">=4.9.5" + peerDependenciesMeta: + typescript: + optional: true + checksum: 0382a9ed13208f8bfc22ca2f62b364855207dffdb73dc26e150ade78c3093f1cf56172df2dd460c8caf2afa91c0ed4ec8a88c62f8f9cd1cf423d26506aa8797a languageName: node linkType: hard @@ -4456,7 +4461,7 @@ __metadata: lodash: "npm:4.17.21" mini-css-extract-plugin: "npm:2.7.6" postcss: "npm:8.4.32" - postcss-loader: "npm:7.3.3" + postcss-loader: "npm:7.3.4" postcss-preset-env: "npm:9.3.0" postcss-scss: "npm:4.0.9" prettier: "npm:3.1.1" @@ -4512,12 +4517,12 @@ __metadata: languageName: node linkType: hard -"jiti@npm:^1.18.2": - version: 1.18.2 - resolution: "jiti@npm:1.18.2" +"jiti@npm:^1.20.0": + version: 1.21.0 + resolution: "jiti@npm:1.21.0" bin: jiti: bin/jiti.js - checksum: 578343e883838a5d6775350925d9e1a647e00132ade9c8cc318c163b692988612472f0af3cd9d92b8d8ca61e623092e86ab89563cbf6394900a5a39962e3c4e8 + checksum: 7f361219fe6c7a5e440d5f1dba4ab763a5538d2df8708cdc22561cf25ea3e44b837687931fca7cdd8cdd9f567300e90be989dd1321650045012d8f9ed6aab07f languageName: node linkType: hard @@ -5263,7 +5268,7 @@ __metadata: languageName: node linkType: hard -"parse-json@npm:^5.0.0, parse-json@npm:^5.2.0": +"parse-json@npm:^5.2.0": version: 5.2.0 resolution: "parse-json@npm:5.2.0" dependencies: @@ -5656,17 +5661,17 @@ __metadata: languageName: node linkType: hard -"postcss-loader@npm:7.3.3": - version: 7.3.3 - resolution: "postcss-loader@npm:7.3.3" +"postcss-loader@npm:7.3.4": + version: 7.3.4 + resolution: "postcss-loader@npm:7.3.4" dependencies: - cosmiconfig: "npm:^8.2.0" - jiti: "npm:^1.18.2" - semver: "npm:^7.3.8" + cosmiconfig: "npm:^8.3.5" + jiti: "npm:^1.20.0" + semver: "npm:^7.5.4" peerDependencies: postcss: ^7.0.0 || ^8.0.1 webpack: ^5.0.0 - checksum: d039654273f858be1f75dfdf8b550869d88905b73a7684b3e48a2937a6087619e84fd1a3551cdef78685a965a2573e985b29a532c3878d834071ecd2da0eb304 + checksum: 1bf7614aeea9ad1f8ee6be3a5451576c059391688ea67f825aedc2674056369597faeae4e4a81fe10843884c9904a71403d9a54197e1f560e8fbb9e61f2a2680 languageName: node linkType: hard @@ -6507,14 +6512,14 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.3.5, semver@npm:^7.3.8": - version: 7.3.8 - resolution: "semver@npm:7.3.8" +"semver@npm:^7.3.5, semver@npm:^7.3.8, semver@npm:^7.5.4": + version: 7.5.4 + resolution: "semver@npm:7.5.4" dependencies: lru-cache: "npm:^6.0.0" bin: semver: bin/semver.js - checksum: 7e581d679530db31757301c2117721577a2bb36a301a443aac833b8efad372cda58e7f2a464fe4412ae1041cc1f63a6c1fe0ced8c57ce5aca1e0b57bb0d627b9 + checksum: 5160b06975a38b11c1ab55950cb5b8a23db78df88275d3d8a42ccf1f29e55112ac995b3a26a522c36e3b5f76b0445f1eef70d696b8c7862a2b4303d7b0e7609e languageName: node linkType: hard From f4095698966cd901681241e994e872846429211d Mon Sep 17 00:00:00 2001 From: Alexander Brandes Date: Mon, 1 Jan 2024 08:17:56 +0100 Subject: [PATCH 0127/1216] Run GH actions release artifact uploader with JDK 17 (#8813) --- .github/workflows/publish-release-artifact.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish-release-artifact.yml b/.github/workflows/publish-release-artifact.yml index 86d55282ebba..3bb991579de8 100644 --- a/.github/workflows/publish-release-artifact.yml +++ b/.github/workflows/publish-release-artifact.yml @@ -16,11 +16,11 @@ jobs: is-rc: ${{ steps.set-version.outputs.is-rc }} steps: - uses: actions/checkout@v4 - - name: Set up JDK 11 + - name: Set up JDK 17 uses: actions/setup-java@v4 with: distribution: "temurin" - java-version: 11 + java-version: 17 cache: "maven" - name: Set version id: set-version From a82e94b05b56193066d85a17065440084fd62552 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Jan 2024 00:18:46 -0700 Subject: [PATCH 0128/1216] Update dependency sass to v1.69.6 (#8816) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/war/package.json b/war/package.json index 307f28d71172..9f3bb4c4978c 100644 --- a/war/package.json +++ b/war/package.json @@ -39,7 +39,7 @@ "postcss-preset-env": "9.3.0", "postcss-scss": "4.0.9", "prettier": "3.1.1", - "sass": "1.69.5", + "sass": "1.69.6", "sass-loader": "13.3.3", "style-loader": "3.3.3", "stylelint": "16.1.0", diff --git a/war/yarn.lock b/war/yarn.lock index 3781e65b0635..0a5ddcde88fb 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -4465,7 +4465,7 @@ __metadata: postcss-preset-env: "npm:9.3.0" postcss-scss: "npm:4.0.9" prettier: "npm:3.1.1" - sass: "npm:1.69.5" + sass: "npm:1.69.6" sass-loader: "npm:13.3.3" sortablejs: "npm:1.15.1" style-loader: "npm:3.3.3" @@ -6458,16 +6458,16 @@ __metadata: languageName: node linkType: hard -"sass@npm:1.69.5": - version: 1.69.5 - resolution: "sass@npm:1.69.5" +"sass@npm:1.69.6": + version: 1.69.6 + resolution: "sass@npm:1.69.6" dependencies: chokidar: "npm:>=3.0.0 <4.0.0" immutable: "npm:^4.0.0" source-map-js: "npm:>=0.6.2 <2.0.0" bin: sass: sass.js - checksum: a9003a9482f2e467fc412cfe58ba4fa14fb78bef7e1283ce5d64a065f8a31114ec3bbf5d4e724f94eb8512c32c768a6f91f228c7f16a26a300bbf4db293b5608 + checksum: 8153db8e51e74a9007bb54332e14d122c34288c7d21a5f2eaefef753a1b7bb13f35e042dc6247253dab5b1550b05cea27970371e7548286b4f50f23dd1147d89 languageName: node linkType: hard From 2ac59590a6a5021228936a239154300b425a6d8d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jan 2024 00:19:11 -0700 Subject: [PATCH 0129/1216] Bump slf4jVersion from 2.0.9 to 2.0.10 (#8809) Bumps `slf4jVersion` from 2.0.9 to 2.0.10. Updates `org.slf4j:jcl-over-slf4j` from 2.0.9 to 2.0.10 Updates `org.slf4j:log4j-over-slf4j` from 2.0.9 to 2.0.10 Updates `org.slf4j:slf4j-api` from 2.0.9 to 2.0.10 Updates `org.slf4j:slf4j-jdk14` from 2.0.9 to 2.0.10 --- updated-dependencies: - dependency-name: org.slf4j:jcl-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:log4j-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:slf4j-api dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:slf4j-jdk14 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bom/pom.xml b/bom/pom.xml index 36c3542fad35..a4c8690015ca 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -39,7 +39,7 @@ THE SOFTWARE. 9.6 - 2.0.9 + 2.0.10 1822.v120278426e1c 2.4.21 From b5030b74ace4bde13d44b62078596b8634a12e57 Mon Sep 17 00:00:00 2001 From: Alexander Brandes Date: Mon, 1 Jan 2024 14:31:01 +0100 Subject: [PATCH 0130/1216] Update JDK recommendations for contributors (#8818) --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0e6dbffdda9d..77c012b44c68 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -9,7 +9,7 @@ This page provides information about contributing code to the Jenkins core codeb 1. Fork the repository on GitHub 2. Clone the forked repository to your machine 3. Install the necessary development tools. In order to develop Jenkins, you need the following: - - Java Development Kit (JDK) 11 or 17. + - Java Development Kit (JDK) 11, 17 or 21. In the Jenkins project we usually use [Eclipse Temurin](https://adoptium.net/) or [OpenJDK](https://openjdk.java.net/), but you can use other JDKs as well. - Apache Maven 3.8.1 or above. You can [download Maven here](https://maven.apache.org/download.cgi). In the Jenkins project we usually use the most recent Maven release. From c878487461f1e535e39766893636f2bbf88becc0 Mon Sep 17 00:00:00 2001 From: Debayan Ghosh <66942246+debayangg@users.noreply.github.com> Date: Tue, 2 Jan 2024 08:38:59 +0530 Subject: [PATCH 0131/1216] [JENKINS-71666] Adapt to Popper deprecation in Jenkins core (#8810) Removed deprecated popper2-api from war/pom.xml --- war/pom.xml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/war/pom.xml b/war/pom.xml index 2808d786b3d4..eaacd13349e3 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -403,14 +403,6 @@ THE SOFTWARE. hpi - - - io.jenkins.plugins - popper2-api - 2.11.6-4 - hpi - - io.jenkins.plugins From 3597db8e13f8fd5ef5309b31ef55eb8121663a6b Mon Sep 17 00:00:00 2001 From: Anders Hammar Date: Tue, 2 Jan 2024 04:09:22 +0100 Subject: [PATCH 0132/1216] [JENKINS-72466] Upgrade jbcrypt dependency (#8811) JENKINS-72466: Upgrades jbcrypt dependency --- bom/pom.xml | 4 ++-- core/pom.xml | 2 +- .../security/HudsonPrivateSecurityRealmTest.java | 10 +++++++++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index a4c8690015ca..53ac85bdaa4c 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -196,9 +196,9 @@ THE SOFTWARE. ${groovy.version} - org.connectbot.jbcrypt + org.connectbot jbcrypt - 1.0.0 + 1.0.2 diff --git a/core/pom.xml b/core/pom.xml index 45539865962a..82d3b76bbb21 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -282,7 +282,7 @@ THE SOFTWARE. groovy-all - org.connectbot.jbcrypt + org.connectbot jbcrypt diff --git a/core/src/test/java/hudson/security/HudsonPrivateSecurityRealmTest.java b/core/src/test/java/hudson/security/HudsonPrivateSecurityRealmTest.java index 9d7e2b7b5980..09aab39cb0e3 100644 --- a/core/src/test/java/hudson/security/HudsonPrivateSecurityRealmTest.java +++ b/core/src/test/java/hudson/security/HudsonPrivateSecurityRealmTest.java @@ -55,7 +55,7 @@ public void timingPBKDF2() { * or slow hardware, so this is commented out but left for ease of running locally when desired. */ //@Test - public void timingBcrypt() { + public void timingJBCrypt() { // ignore the salt generation - check just matching.... JBCryptEncoder encoder = new JBCryptEncoder(); String encoded = encoder.encode("thisIsMyPassword1"); @@ -143,4 +143,12 @@ public void passwordPBKDF2HashWithInvalidKeySpec() throws Exception { assertThrows(RuntimeException.class, () -> pbkdf2PasswordEncoder.matches("MySecurePassword", PBKDF2_HMAC_SHA512_ENCODED_PASSWORD)); } } + + @Test + public void testJBCryptPasswordMatching() { + JBCryptEncoder encoder = new JBCryptEncoder(); + String encoded = encoder.encode("thisIsMyPassword"); + assertTrue(encoder.matches("thisIsMyPassword", encoded)); + assertFalse(encoder.matches("thisIsNotMyPassword", encoded)); + } } From c8156d41f2e6abf52b41669287e9ab771080b8e4 Mon Sep 17 00:00:00 2001 From: Mark Waite Date: Mon, 1 Jan 2024 20:09:42 -0700 Subject: [PATCH 0133/1216] [JENKINS-72469] Avoid repeated tool downloads from misconfigured HTTP servers (#8814) * [JENKINS-72469] Avoid repeated tool downloads from misconfigured HTTP servers The Azul Systems content delivery network stopped providing the last-modified header in their URL responses. They only provide the ETag header. Add ETag support to the Jenkins FilePath URL download method so that if ETag is provided, we use the ETag value. If last-modified is provided and matches, we continue to honor it as well. https://issues.jenkins.io/browse/JENKINS-72469 has more details. https://community.jenkins.io/t/job-stuck-on-unpacking-global-jdk-tool/11272 also includes more details. Testing done * Automated test added to FilePathTest for code changes on the controller. The automated test confirms that even without a last-modified value, the later downloads are skipped if a matching ETag is received. The automated test also confirms that download is skipped if OK is received with a matching ETag. No automated test was added to confirm download on the agent because that path is not tested by any of the other test automation of this class. * Interactive test with the Azul Systems JDK installer on the controller. I created a tool installer for the Azul JDK. I verified that before this change it was downloaded each time the job was run. I verified that after the change it was downloaded only once. * Interactive test with the Azul Systems JDK installer on an agent. I created a tool installer for the Azul JDK. I verified that before this change it was downloaded each time the job was run. I verified that after the change it was downloaded only once. * Interactive test on the controller with a file download from an NGINX web server confirmed that the tool is downloaded once and then later runs of the job did not download the file again. * Use equals instead of contains to check ETag Don't risk that a substring of an earlier ETag might cause a later ETag to incorrectly assume it does not need to download a modified installer. * Use weak comparison for ETag values https://httpwg.org/specs/rfc9110.html#field.etag describes weak comparison cases and notes that content providers may provide weak or strong entity tags. Updated code to correctly compare weak and strong entity tags. Also improves the null checks based on the suggestions from @mawinter69 in https://github.com/jenkinsci/jenkins/pull/8814#discussion_r1438909824 * Test comparison of weak and strong validators * Do not duplicate test args, more readable * Use better variable names in test Cover more branches in the equalEtags method as well * Fix variable declaration order --- core/src/main/java/hudson/FilePath.java | 42 +++++++++++- core/src/test/java/hudson/FilePathTest.java | 71 +++++++++++++++++++++ 2 files changed, 111 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/hudson/FilePath.java b/core/src/main/java/hudson/FilePath.java index cdc057ef9c54..1da338d6e549 100644 --- a/core/src/main/java/hudson/FilePath.java +++ b/core/src/main/java/hudson/FilePath.java @@ -28,6 +28,7 @@ import static hudson.Util.fileToPath; import static hudson.Util.fixEmpty; +import static hudson.Util.fixEmptyAndTrim; import com.google.common.annotations.VisibleForTesting; import com.jcraft.jzlib.GZIPInputStream; @@ -962,7 +963,7 @@ public Void invoke(File dir, VirtualChannel channel) throws IOException { * * * @param archive - * The resource that represents the tgz/zip file. This URL must support the {@code Last-Modified} header. + * The resource that represents the tgz/zip file. This URL must support the {@code Last-Modified} header or the {@code ETag} header. * (For example, you could use {@link ClassLoader#getResource}.) * @param listener * If non-null, a message will be printed to this listener once this method decides to @@ -984,12 +985,18 @@ private boolean installIfNecessaryFrom(@NonNull URL archive, @NonNull TaskListen try { FilePath timestamp = this.child(".timestamp"); long lastModified = timestamp.lastModified(); + // https://httpwg.org/specs/rfc9110.html#field.etag is the ETag specification + // Read previously stored ETag if timestamp is available + String etag = timestamp.exists() ? fixEmptyAndTrim(timestamp.readToString()) : null; URLConnection con; try { con = ProxyConfiguration.open(archive); if (lastModified != 0) { con.setIfModifiedSince(lastModified); } + if (etag != null) { + con.setRequestProperty("If-None-Match", etag); + } con.connect(); } catch (IOException x) { if (this.exists()) { @@ -1016,7 +1023,7 @@ private boolean installIfNecessaryFrom(@NonNull URL archive, @NonNull TaskListen return false; } } - if (lastModified != 0) { + if (lastModified != 0 || etag != null) { if (responseCode == HttpURLConnection.HTTP_NOT_MODIFIED) { return false; } else if (responseCode != HttpURLConnection.HTTP_OK) { @@ -1027,8 +1034,12 @@ private boolean installIfNecessaryFrom(@NonNull URL archive, @NonNull TaskListen } long sourceTimestamp = con.getLastModified(); + String resultEtag = fixEmptyAndTrim(con.getHeaderField("ETag")); if (this.exists()) { + if (equalETags(etag, resultEtag)) { + return false; // already up to date + } if (lastModified != 0 && sourceTimestamp == lastModified) return false; // already up to date this.deleteContents(); @@ -1042,6 +1053,10 @@ private boolean installIfNecessaryFrom(@NonNull URL archive, @NonNull TaskListen // First try to download from the agent machine. try { act(new Unpack(archive)); + if (resultEtag != null && !equalETags(etag, resultEtag)) { + /* Store the ETag value in the timestamp file for later use */ + timestamp.write(resultEtag, "UTF-8"); + } timestamp.touch(sourceTimestamp); return true; } catch (IOException x) { @@ -1061,6 +1076,10 @@ private boolean installIfNecessaryFrom(@NonNull URL archive, @NonNull TaskListen throw new IOException(String.format("Failed to unpack %s (%d bytes read of total %d)", archive, cis.getByteCount(), con.getContentLength()), e); } + if (resultEtag != null && !equalETags(etag, resultEtag)) { + /* Store the ETag value in the timestamp file for later use */ + timestamp.write(resultEtag, "UTF-8"); + } timestamp.touch(sourceTimestamp); return true; } catch (IOException e) { @@ -1068,6 +1087,25 @@ private boolean installIfNecessaryFrom(@NonNull URL archive, @NonNull TaskListen } } + /* Return true if etag1 equals etag2 as defined by the etag specification + https://httpwg.org/specs/rfc9110.html#field.etag + */ + private boolean equalETags(String etag1, String etag2) { + if (etag1 == null || etag2 == null) { + return false; + } + if (etag1.equals(etag2)) { + return true; + } + /* Weak tags are identified by leading characters "W/" as a marker */ + /* Weak tag marker must not be considered in tag comparison. + This implements the weak comparison in the specification at + https://httpwg.org/specs/rfc9110.html#field.etag */ + String opaqueTag1 = etag1.startsWith("W/") ? etag1.substring(2) : etag1; + String opaqueTag2 = etag2.startsWith("W/") ? etag2.substring(2) : etag2; + return opaqueTag1.equals(opaqueTag2); + } + // this reads from arbitrary URL private static final class Unpack extends MasterToSlaveFileCallable { private final URL archive; diff --git a/core/src/test/java/hudson/FilePathTest.java b/core/src/test/java/hudson/FilePathTest.java index fe152a25ba49..54d37c2b3dcd 100644 --- a/core/src/test/java/hudson/FilePathTest.java +++ b/core/src/test/java/hudson/FilePathTest.java @@ -670,6 +670,77 @@ private static void assertValidateAntFileMask(String expected, FilePath d, Strin assertTrue(d.installIfNecessaryFrom(url, null, message)); } + @Issue("JENKINS-72469") + @Test public void installIfNecessaryWithoutLastModifiedStrongValidator() throws Exception { + String strongValidator = "\"An-ETag-strong-validator\""; + installIfNecessaryWithoutLastModified(strongValidator); + } + + @Issue("JENKINS-72469") + @Test public void installIfNecessaryWithoutLastModifiedStrongValidatorNoQuotes() throws Exception { + // This ETag is a violation of the spec at https://httpwg.org/specs/rfc9110.html#field.etag + // However, better safe to handle without quotes as well, just in case + String strongValidator = "An-ETag-strong-validator-without-quotes"; + installIfNecessaryWithoutLastModified(strongValidator); + } + + @Issue("JENKINS-72469") + @Test public void installIfNecessaryWithoutLastModifiedWeakValidator() throws Exception { + String weakValidator = "W/\"An-ETag-weak-validator\""; + installIfNecessaryWithoutLastModified(weakValidator); + } + + @Issue("JENKINS-72469") + @Test public void installIfNecessaryWithoutLastModifiedStrongAndWeakValidators() throws Exception { + String strongValidator = "\"An-ETag-validator\""; + String weakValidator = "W/" + strongValidator; + installIfNecessaryWithoutLastModified(strongValidator, weakValidator); + } + + @Issue("JENKINS-72469") + @Test public void installIfNecessaryWithoutLastModifiedWeakAndStrongValidators() throws Exception { + String strongValidator = "\"An-ETag-validator\""; + String weakValidator = "W/" + strongValidator; + installIfNecessaryWithoutLastModified(weakValidator, strongValidator); + } + + private void installIfNecessaryWithoutLastModified(String validator) throws Exception { + installIfNecessaryWithoutLastModified(validator, validator); + } + + private void installIfNecessaryWithoutLastModified(String validator, String alternateValidator) throws Exception { + final HttpURLConnection con = mock(HttpURLConnection.class); + // getLastModified == 0 when last-modified header is not returned + when(con.getLastModified()).thenReturn(0L); + // An Etag is provided by Azul CDN without last-modified header + when(con.getHeaderField("ETag")).thenReturn(validator); + when(con.getInputStream()).thenReturn(someZippedContent()); + + final URL url = someUrlToZipFile(con); + + File tmp = temp.getRoot(); + final FilePath d = new FilePath(tmp); + + /* Initial download expected to occur */ + assertTrue(d.installIfNecessaryFrom(url, null, "message if failed first download")); + + /* Timestamp last modified == 0 means the header was not provided */ + assertThat(d.child(".timestamp").lastModified(), is(0L)); + + /* Second download should not occur if JENKINS-72469 is fixed and NOT_MODIFIED is returned */ + when(con.getResponseCode()).thenReturn(HttpURLConnection.HTTP_NOT_MODIFIED); + when(con.getInputStream()).thenReturn(someZippedContent()); + when(con.getHeaderField("ETag")).thenReturn(alternateValidator); + assertFalse(d.installIfNecessaryFrom(url, null, "message if failed second download")); + + /* Third download should not occur if JENKINS-72469 is fixed and OK is returned with matching ETag */ + /* Unexpected to receive an OK and a matching ETag from a real web server, but check for safety */ + when(con.getResponseCode()).thenReturn(HttpURLConnection.HTTP_OK); + when(con.getInputStream()).thenReturn(someZippedContent()); + when(con.getHeaderField("ETag")).thenReturn(alternateValidator); + assertFalse(d.installIfNecessaryFrom(url, null, "message if failed third download")); + } + private URL someUrlToZipFile(final URLConnection con) throws IOException { final URLStreamHandler urlHandler = new URLStreamHandler() { From 8118d8862eaaa90d8e850fb23eab4d93d7cfa15d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jan 2024 20:13:39 -0700 Subject: [PATCH 0134/1216] Bump com.puppycrawl.tools:checkstyle from 10.12.6 to 10.12.7 (#8819) Bumps [com.puppycrawl.tools:checkstyle](https://github.com/checkstyle/checkstyle) from 10.12.6 to 10.12.7. - [Release notes](https://github.com/checkstyle/checkstyle/releases) - [Commits](https://github.com/checkstyle/checkstyle/compare/checkstyle-10.12.6...checkstyle-10.12.7) --- updated-dependencies: - dependency-name: com.puppycrawl.tools:checkstyle dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 6541831b2a10..9de262dcd31d 100644 --- a/pom.xml +++ b/pom.xml @@ -332,7 +332,7 @@ THE SOFTWARE. com.puppycrawl.tools checkstyle - 10.12.6 + 10.12.7 From 45586a4d28cf1853a3e20fbdff7c6eb6c254d0aa Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Jan 2024 20:15:13 -0700 Subject: [PATCH 0135/1216] Update babel monorepo to v7.23.7 (#8820) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 4 +- war/yarn.lock | 118 +++++++++++++++++++++++------------------------ 2 files changed, 61 insertions(+), 61 deletions(-) diff --git a/war/package.json b/war/package.json index 9f3bb4c4978c..90c31887382d 100644 --- a/war/package.json +++ b/war/package.json @@ -24,8 +24,8 @@ }, "devDependencies": { "@babel/cli": "7.23.4", - "@babel/core": "7.23.6", - "@babel/preset-env": "7.23.6", + "@babel/core": "7.23.7", + "@babel/preset-env": "7.23.7", "babel-loader": "9.1.3", "clean-webpack-plugin": "4.0.0", "css-loader": "6.8.1", diff --git a/war/yarn.lock b/war/yarn.lock index 0a5ddcde88fb..a4fe98ca0023 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -66,26 +66,26 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:7.23.6": - version: 7.23.6 - resolution: "@babel/core@npm:7.23.6" +"@babel/core@npm:7.23.7": + version: 7.23.7 + resolution: "@babel/core@npm:7.23.7" dependencies: "@ampproject/remapping": "npm:^2.2.0" "@babel/code-frame": "npm:^7.23.5" "@babel/generator": "npm:^7.23.6" "@babel/helper-compilation-targets": "npm:^7.23.6" "@babel/helper-module-transforms": "npm:^7.23.3" - "@babel/helpers": "npm:^7.23.6" + "@babel/helpers": "npm:^7.23.7" "@babel/parser": "npm:^7.23.6" "@babel/template": "npm:^7.22.15" - "@babel/traverse": "npm:^7.23.6" + "@babel/traverse": "npm:^7.23.7" "@babel/types": "npm:^7.23.6" convert-source-map: "npm:^2.0.0" debug: "npm:^4.1.0" gensync: "npm:^1.0.0-beta.2" json5: "npm:^2.2.3" semver: "npm:^6.3.1" - checksum: a02bae7d916029b70706dc301535e1b31e5d216f55d4ee6f64a15825c6b69ee2c14c52a213d1497ec414e925ed4e9d897d41fb0d75df9fea28ed2c0008790e31 + checksum: 38c9934973d384ed83369712978453eac91dc3f22167404dbdb272b64f602e74728a6f37012c53ee57e521b8ae2da60097f050497d9b6a212d28b59cdfb2cd1d languageName: node linkType: hard @@ -164,9 +164,9 @@ __metadata: languageName: node linkType: hard -"@babel/helper-define-polyfill-provider@npm:^0.4.3": - version: 0.4.3 - resolution: "@babel/helper-define-polyfill-provider@npm:0.4.3" +"@babel/helper-define-polyfill-provider@npm:^0.4.4": + version: 0.4.4 + resolution: "@babel/helper-define-polyfill-provider@npm:0.4.4" dependencies: "@babel/helper-compilation-targets": "npm:^7.22.6" "@babel/helper-plugin-utils": "npm:^7.22.5" @@ -175,7 +175,7 @@ __metadata: resolve: "npm:^1.14.2" peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 0007035157e0d32ee9cb4ca319b89d6f3705523383efe52a59eb3d4dfa2ed08c5147e49c10a6e6d69c15221d89c76c8e5875475d6710fb44a5c37b8e69388e40 + checksum: 60126f5f719b9e2114df62e3bf3ac0797b71d8dc733db60192eb169b004fde72ee309fa5848c5fdfe98b8e8863c46f55e16da5aa8a4e420b4d2670cd0c5dd708 languageName: node linkType: hard @@ -339,14 +339,14 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.23.6": - version: 7.23.6 - resolution: "@babel/helpers@npm:7.23.6" +"@babel/helpers@npm:^7.23.7": + version: 7.23.7 + resolution: "@babel/helpers@npm:7.23.7" dependencies: "@babel/template": "npm:^7.22.15" - "@babel/traverse": "npm:^7.23.6" + "@babel/traverse": "npm:^7.23.7" "@babel/types": "npm:^7.23.6" - checksum: df1cf6607676ad36f52f652ec03536f2732d70aef5e76dba5c964e34d49f3c2d3dcf9fb3740db359f53071d74b64606a833d5ba156f79f437f71bfe06e2e7e19 + checksum: f74a61ad28a1bc1fdd9133ad571c07787b66d6db017c707b87c203b0cd06879cea8b33e9c6a8585765a4949efa5df3cc9e19b710fe867f11be38ee29fd4a0488 languageName: node linkType: hard @@ -394,15 +394,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.23.3" +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.23.7": + version: 7.23.7 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.23.7" dependencies: "@babel/helper-environment-visitor": "npm:^7.22.20" "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0 - checksum: 0f43b74741d50e637ba4dcef2786621126fe4da6ccf4ee2e94423ee23f6a04ecd91d458e59764c43e4968be139e5197ee43be8a2fea2c09f0b202a3391e548cc + checksum: 355746e21ad7f43e4f4daef54cfe2ef461ecd19446b2afedd53c39df1bf9aa2eeeeaabee2279b1321de89a97c9360e4f76e9ba950fee50ff1676c25f6929d625 languageName: node linkType: hard @@ -625,9 +625,9 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.4" +"@babel/plugin-transform-async-generator-functions@npm:^7.23.7": + version: 7.23.7 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.7" dependencies: "@babel/helper-environment-visitor": "npm:^7.22.20" "@babel/helper-plugin-utils": "npm:^7.22.5" @@ -635,7 +635,7 @@ __metadata: "@babel/plugin-syntax-async-generators": "npm:^7.8.4" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f2eef4de609975a3f7da7832576b5ffc93e43c80f87e1a99e886b0f8591096cfc4c37e2d5f52fdeaa2a9c09a25a59f3e621159abaca75d3193922a5c0e4cbe0c + checksum: 63d314edc9fbeaf2700745ca0e19bf9840e87f2d7d1f6c5638e06d2aec3e7418d0d7493ed09087e2fe369cc15e9d96c113fb2cd367cb5e3ff922e3712c27b7d4 languageName: node linkType: hard @@ -1195,9 +1195,9 @@ __metadata: languageName: node linkType: hard -"@babel/preset-env@npm:7.23.6": - version: 7.23.6 - resolution: "@babel/preset-env@npm:7.23.6" +"@babel/preset-env@npm:7.23.7": + version: 7.23.7 + resolution: "@babel/preset-env@npm:7.23.7" dependencies: "@babel/compat-data": "npm:^7.23.5" "@babel/helper-compilation-targets": "npm:^7.23.6" @@ -1205,7 +1205,7 @@ __metadata: "@babel/helper-validator-option": "npm:^7.23.5" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.23.3" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.23.3" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.23.3" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.23.7" "@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators": "npm:^7.8.4" "@babel/plugin-syntax-class-properties": "npm:^7.12.13" @@ -1226,7 +1226,7 @@ __metadata: "@babel/plugin-syntax-top-level-await": "npm:^7.14.5" "@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6" "@babel/plugin-transform-arrow-functions": "npm:^7.23.3" - "@babel/plugin-transform-async-generator-functions": "npm:^7.23.4" + "@babel/plugin-transform-async-generator-functions": "npm:^7.23.7" "@babel/plugin-transform-async-to-generator": "npm:^7.23.3" "@babel/plugin-transform-block-scoped-functions": "npm:^7.23.3" "@babel/plugin-transform-block-scoping": "npm:^7.23.4" @@ -1274,14 +1274,14 @@ __metadata: "@babel/plugin-transform-unicode-regex": "npm:^7.23.3" "@babel/plugin-transform-unicode-sets-regex": "npm:^7.23.3" "@babel/preset-modules": "npm:0.1.6-no-external-plugins" - babel-plugin-polyfill-corejs2: "npm:^0.4.6" - babel-plugin-polyfill-corejs3: "npm:^0.8.5" - babel-plugin-polyfill-regenerator: "npm:^0.5.3" + babel-plugin-polyfill-corejs2: "npm:^0.4.7" + babel-plugin-polyfill-corejs3: "npm:^0.8.7" + babel-plugin-polyfill-regenerator: "npm:^0.5.4" core-js-compat: "npm:^3.31.0" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 5b24d179af52f082d04b9b98cc4777e37bf31a97cef5a91d8917e996dbd75f2f743c88c40f80744cb8529355bb674619d150c0260c32d834aa4067e21d0c8962 + checksum: ac9def873cec52ee02a550bde6e22eced16d1ae331bb8ebc82c03e4c91c12ac17e3e4027647e61612937bcc25ac46e71370aaf99dc2e85dbd11f7777ffeed54e languageName: node linkType: hard @@ -1325,9 +1325,9 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.23.6": - version: 7.23.6 - resolution: "@babel/traverse@npm:7.23.6" +"@babel/traverse@npm:^7.23.7": + version: 7.23.7 + resolution: "@babel/traverse@npm:7.23.7" dependencies: "@babel/code-frame": "npm:^7.23.5" "@babel/generator": "npm:^7.23.6" @@ -1339,7 +1339,7 @@ __metadata: "@babel/types": "npm:^7.23.6" debug: "npm:^4.3.1" globals: "npm:^11.1.0" - checksum: 5b4ebb94a00a7e1daf111e4b0b45a7998d5b7598637a14e75e855e88cc1b702789e09a958726b5d599a003be1e9032dbdfde4b88ea6061332228738950d5582d + checksum: e32fceb4249beec2bde83968ddffe17444221c1ee5cd18c543a2feaf94e3ca83f2a4dfbc2dcca87cf226e0105973e0fe3717063a21e982a9de9945615ab3f3f5 languageName: node linkType: hard @@ -2659,39 +2659,39 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs2@npm:^0.4.6": - version: 0.4.6 - resolution: "babel-plugin-polyfill-corejs2@npm:0.4.6" +"babel-plugin-polyfill-corejs2@npm:^0.4.7": + version: 0.4.7 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.7" dependencies: "@babel/compat-data": "npm:^7.22.6" - "@babel/helper-define-polyfill-provider": "npm:^0.4.3" + "@babel/helper-define-polyfill-provider": "npm:^0.4.4" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 64a98811f343492aa6970ab253760194e389c0417e5b830522f944009c1f0c78e1251975fd1b9869cd48cc4623111b20a3389cf6732a1d10ba0d19de6fa5114f + checksum: f80f7284ec72c63e7dd751e0bdf25e9978df195a79e0887470603bfdea13ee518d62573cf360bb1bc01b80819e54915dd5edce9cff14c52d0af5f984aa3d36a3 languageName: node linkType: hard -"babel-plugin-polyfill-corejs3@npm:^0.8.5": - version: 0.8.5 - resolution: "babel-plugin-polyfill-corejs3@npm:0.8.5" +"babel-plugin-polyfill-corejs3@npm:^0.8.7": + version: 0.8.7 + resolution: "babel-plugin-polyfill-corejs3@npm:0.8.7" dependencies: - "@babel/helper-define-polyfill-provider": "npm:^0.4.3" - core-js-compat: "npm:^3.32.2" + "@babel/helper-define-polyfill-provider": "npm:^0.4.4" + core-js-compat: "npm:^3.33.1" peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 577a072971bda2929a87655c816ad14b6a8f7276e6914851b98a6465bdb56f7f2e3db6136c8b8607bd6ba4cde3cd9cbde21f0078250cd93aee3df977c0a731d0 + checksum: 094e40f4ab9f131408202063964d63740609fd4fdb70a5b6332b371761921b540ffbcee7a434c0199b8317dfb2ba4675eef674867215fd3b85e24054607c1501 languageName: node linkType: hard -"babel-plugin-polyfill-regenerator@npm:^0.5.3": - version: 0.5.3 - resolution: "babel-plugin-polyfill-regenerator@npm:0.5.3" +"babel-plugin-polyfill-regenerator@npm:^0.5.4": + version: 0.5.4 + resolution: "babel-plugin-polyfill-regenerator@npm:0.5.4" dependencies: - "@babel/helper-define-polyfill-provider": "npm:^0.4.3" + "@babel/helper-define-polyfill-provider": "npm:^0.4.4" peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: cc32313b9ebbf1d7bedc33524a861136b9e5d3b6e9be317ac360a1c2a59ae5ed1b465a6c68b2715cdefb089780ddfb0c11f4a148e49827a947beee76e43da598 + checksum: 0b903f5fe2f8c487b4260935dfe60bd9a95bcaee7ae63958f063045093b16d4e8288c232199d411261300aa21f6b106a3cb83c42cc996de013b337f5825a79fe languageName: node linkType: hard @@ -3032,12 +3032,12 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.32.2": - version: 3.33.0 - resolution: "core-js-compat@npm:3.33.0" +"core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.33.1": + version: 3.35.0 + resolution: "core-js-compat@npm:3.35.0" dependencies: - browserslist: "npm:^4.22.1" - checksum: 1db27222420548c65fdb92574192aa1ab434e8e3b80a347fc9c20004e459cc146e719dee8a8c3a3c0773190834e865542d3745ada27a160937fc312a14f66d5c + browserslist: "npm:^4.22.2" + checksum: 8c4379240b8decb94b21e81d5ba6f768418721061923b28c9dfc97574680c35d778d39c010207402fc7c8308a68a4cf6d5e02bcbcb96e931c52e6e0dce29a68c languageName: node linkType: hard @@ -4446,8 +4446,8 @@ __metadata: resolution: "jenkins-ui@workspace:." dependencies: "@babel/cli": "npm:7.23.4" - "@babel/core": "npm:7.23.6" - "@babel/preset-env": "npm:7.23.6" + "@babel/core": "npm:7.23.7" + "@babel/preset-env": "npm:7.23.7" babel-loader: "npm:9.1.3" clean-webpack-plugin: "npm:4.0.0" css-loader: "npm:6.8.1" From 81c3249ca0e6bcc69e1caa2e6828ec6c8c0884cd Mon Sep 17 00:00:00 2001 From: Mark Waite Date: Tue, 2 Jan 2024 01:11:15 -0700 Subject: [PATCH 0136/1216] Use spotbugs 4.8.2 with more exclusions (#8803) --- core/src/spotbugs/excludesFilter.xml | 123 +++++++++++++++++++++++++++ pom.xml | 4 + 2 files changed, 127 insertions(+) diff --git a/core/src/spotbugs/excludesFilter.xml b/core/src/spotbugs/excludesFilter.xml index af99fff5055f..7d36952fc372 100644 --- a/core/src/spotbugs/excludesFilter.xml +++ b/core/src/spotbugs/excludesFilter.xml @@ -53,6 +53,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 4.13 + + + 4.8.2.0 Max + FindReturnRef,ConstructorThrow Medium 1.33 From 4c423d484267cef3bff602a2e58ae7d7634b1a77 Mon Sep 17 00:00:00 2001 From: Alexander Brandes Date: Tue, 2 Jan 2024 09:11:38 +0100 Subject: [PATCH 0137/1216] Update XML namespace schemaLocation (#8817) --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 2 +- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty10/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 53ac85bdaa4c..4ecb6251acea 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -22,7 +22,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --> - + 4.0.0 diff --git a/cli/pom.xml b/cli/pom.xml index 21aabc88e649..50588e3e692b 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -1,5 +1,5 @@ - + 4.0.0 diff --git a/core/pom.xml b/core/pom.xml index 82d3b76bbb21..4280e9075da9 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -23,7 +23,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --> - + 4.0.0 diff --git a/coverage/pom.xml b/coverage/pom.xml index 9f27c8d11cf0..fe1e89a120dc 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -1,5 +1,5 @@ - + 4.0.0 diff --git a/pom.xml b/pom.xml index cd28d0f7b0ff..4bc1be3f9b55 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --> - + 4.0.0 diff --git a/test/pom.xml b/test/pom.xml index 014299562104..c91796e0c567 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -22,7 +22,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --> - + 4.0.0 diff --git a/war/pom.xml b/war/pom.xml index eaacd13349e3..8d6d579e5919 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -22,7 +22,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --> - + 4.0.0 diff --git a/websocket/jetty10/pom.xml b/websocket/jetty10/pom.xml index eb4a169a59d1..c91e1583c039 100644 --- a/websocket/jetty10/pom.xml +++ b/websocket/jetty10/pom.xml @@ -22,7 +22,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --> - + 4.0.0 diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 77abcc3b7248..a99aada6a446 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -22,7 +22,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --> - + 4.0.0 From 7dc5d1fecc2588a07ad47e3bae294f59f8de6ab8 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 2 Jan 2024 13:11:25 +0000 Subject: [PATCH 0138/1216] [maven-release-plugin] prepare release jenkins-2.439 --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty10/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 4ecb6251acea..89515189e048 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.439 jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 50588e3e692b..4746696841eb 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.439 cli diff --git a/core/pom.xml b/core/pom.xml index 4280e9075da9..da4e3bee979e 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.439 jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index fe1e89a120dc..110dd068c918 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.439 jenkins-coverage diff --git a/pom.xml b/pom.xml index 4bc1be3f9b55..dece4a5f8817 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.439 pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - ${scmTag} + jenkins-2.439 https://github.com/jenkinsci/jenkins diff --git a/test/pom.xml b/test/pom.xml index c91796e0c567..580cce79bf43 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.439 jenkins-test diff --git a/war/pom.xml b/war/pom.xml index 8d6d579e5919..02f7e82a89ff 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.439 jenkins-war diff --git a/websocket/jetty10/pom.xml b/websocket/jetty10/pom.xml index c91e1583c039..4978868a3a29 100644 --- a/websocket/jetty10/pom.xml +++ b/websocket/jetty10/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.439 ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index a99aada6a446..b3520239828d 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.439 ../.. From 95bff130c32c5c1fb049792d6419517748658633 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 2 Jan 2024 13:11:47 +0000 Subject: [PATCH 0139/1216] [maven-release-plugin] prepare for next development iteration --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 6 +++--- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty10/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 89515189e048..4ecb6251acea 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.439 + ${revision}${changelist} jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 4746696841eb..50588e3e692b 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.439 + ${revision}${changelist} cli diff --git a/core/pom.xml b/core/pom.xml index da4e3bee979e..4280e9075da9 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.439 + ${revision}${changelist} jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index 110dd068c918..fe1e89a120dc 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.439 + ${revision}${changelist} jenkins-coverage diff --git a/pom.xml b/pom.xml index dece4a5f8817..8ce605075697 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.439 + ${revision}${changelist} pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - jenkins-2.439 + ${scmTag} https://github.com/jenkinsci/jenkins @@ -73,7 +73,7 @@ THE SOFTWARE. - 2.439 + 2.440 -SNAPSHOT diff --git a/test/pom.xml b/test/pom.xml index 580cce79bf43..c91796e0c567 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.439 + ${revision}${changelist} jenkins-test diff --git a/war/pom.xml b/war/pom.xml index 02f7e82a89ff..8d6d579e5919 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.439 + ${revision}${changelist} jenkins-war diff --git a/websocket/jetty10/pom.xml b/websocket/jetty10/pom.xml index 4978868a3a29..c91e1583c039 100644 --- a/websocket/jetty10/pom.xml +++ b/websocket/jetty10/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.439 + ${revision}${changelist} ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index b3520239828d..a99aada6a446 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.439 + ${revision}${changelist} ../.. From f06a954ea4ef114ff30612f6d4c21be53364aeaf Mon Sep 17 00:00:00 2001 From: Markus Winter Date: Wed, 3 Jan 2024 01:24:22 +0100 Subject: [PATCH 0140/1216] allow to change the icon size of the node overview table (#8802) make icon size of node overview page changeable similar to the list of projects on the start page of Jenkins the icon size of the overview page of nodes can now be changed. --- core/src/main/resources/hudson/model/ComputerSet/index.jelly | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core/src/main/resources/hudson/model/ComputerSet/index.jelly b/core/src/main/resources/hudson/model/ComputerSet/index.jelly index ec4d2ab97883..1725b24b6fbc 100644 --- a/core/src/main/resources/hudson/model/ComputerSet/index.jelly +++ b/core/src/main/resources/hudson/model/ComputerSet/index.jelly @@ -56,8 +56,8 @@ THE SOFTWARE. - - + +
@@ -123,6 +123,7 @@ THE SOFTWARE.
S
+ From d75833e5e0e1983cb1c9efec28cf6746e547cab0 Mon Sep 17 00:00:00 2001 From: Jan Faracik <43062514+janfaracik@users.noreply.github.com> Date: Wed, 3 Jan 2024 09:27:14 +0000 Subject: [PATCH 0141/1216] Update appearance of controls in header (#8791) * Init * Tidy up * Update resources.css * Update resources.css * Tidy up * Update resources.css --- .../loginLink.jelly | 3 +- .../security/SecurityRealm/loginLink.jelly | 2 +- .../resources.css | 75 +++++-------------- .../main/scss/components/_page-header.scss | 40 +++------- 4 files changed, 34 insertions(+), 86 deletions(-) diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/loginLink.jelly b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/loginLink.jelly index ba75e740a89e..cd989c23f030 100644 --- a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/loginLink.jelly +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/loginLink.jelly @@ -26,7 +26,6 @@ THE SOFTWARE. - | - ${%sign up} + ${%sign up} diff --git a/core/src/main/resources/hudson/security/SecurityRealm/loginLink.jelly b/core/src/main/resources/hudson/security/SecurityRealm/loginLink.jelly index 8b065c318b2c..8fb92ed3dd1c 100644 --- a/core/src/main/resources/hudson/security/SecurityRealm/loginLink.jelly +++ b/core/src/main/resources/hudson/security/SecurityRealm/loginLink.jelly @@ -25,5 +25,5 @@ THE SOFTWARE. - ${%login} + ${%login} diff --git a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/resources.css b/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/resources.css index 5960ecd93193..d5d817c6a223 100644 --- a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/resources.css +++ b/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/resources.css @@ -1,5 +1,5 @@ .am-container { - height: 100%; + display: contents; } .am-button { @@ -14,89 +14,62 @@ border-radius: 50%; width: 0.65rem; height: 0.65rem; - background-color: #ff9800; + background-color: var(--warning-color); } .security-am .am-monitor__indicator-mobile { - background-color: #dc3545; + background-color: var(--error-color); } .am-button .am-monitor__count { - display: inline-block; display: inline-flex; justify-content: center; align-items: center; - height: 20px; - min-width: 20px; + height: 18px; + min-width: 18px; color: #fff; - background-color: #ff9800; - font-weight: bold; + background-color: var(--warning-color); + font-weight: 500; + font-size: var(--font-size-xs); - border-radius: 4px; + border-radius: 16px; } .am-button.security-am .am-monitor__count { color: #fff; - background-color: #dc3545; + background-color: var(--error-color); } .am-container div.am-list { position: absolute; top: 48px; right: 2%; height: auto; - z-index: 0; - padding: 2em; + padding: var(--section-padding); text-align: left; display: block; - background-color: #fff; background-color: var(--background); - border-radius: 5px; - - /* Darken the box shadow to make the popup visible over the search box */ - box-shadow: 0 1px 7px 0 rgba(0, 0, 0, 0.3); - - transition: all 0.15s cubic-bezier(0.84, 0.03, 0.21, 0.96); + box-shadow: var(--dropdown-box-shadow); + transition: var(--standard-transition); + border-radius: 15px; opacity: 0; - transform: scale(0); + transform: translateY(-10px) scale(0.975); + z-index: 1000; } .am-container.visible div.am-list { opacity: 1; transform: scale(1); - z-index: 1000; -} -.am-container.visible .am-button { - background-color: #404040; - background-color: var(--header-link-bg-classic-active); - text-decoration: none; -} -.am-container .am-button:after { - content: ""; - display: inline-block; - position: absolute; - bottom: 0; - left: 32%; - width: 0; - height: 0; - border-left: 7px solid transparent; - border-right: 7px solid transparent; - border-bottom: 7px solid #fff; - opacity: 0; - transition-property: all; - transition-delay: 0s; - z-index: 1001; -} -.am-container.visible .am-button:after { - opacity: 1; - transition-property: all; - transition-delay: 0.15s; } .am-container .am-message { display: block; line-height: 1.4em; margin-bottom: 1.4em; } +.am-container.visible .am-button:after { + background: var(--button-background--hover); +} .am-message-list { padding: 0; + margin: 0; } .am-container .am-message .alert form { @@ -123,22 +96,18 @@ /* Restore hyperlink style overriden by the page header */ .am-container .am-list a:link { display: inline-block; - color: #204a87; color: var(--link-color); text-decoration: underline; margin-right: 0; padding: 0; - font-weight: 600; font-weight: var(--link-font-weight); } .am-container .am-list a:visited { - color: #5c3566; color: var(--link-color); } .am-container .am-list a:hover, .am-container .am-list a:focus, .am-container .am-list a:active { - color: #5c3566; color: var(--link-color); background-color: transparent; text-decoration: underline; @@ -146,22 +115,18 @@ } .am-container .am-list .alert-success a { - color: #155724; color: var(--alert-success-text-color); } .am-container .am-list .alert-info a { - color: #31708f; color: var(--alert-info-text-color); } .am-container .am-list .alert-warning a { - color: #8a6d3b; color: var(--alert-warning-text-color); } .am-container .am-list .alert-danger a { - color: #a94442; color: var(--alert-danger-text-color); } diff --git a/war/src/main/scss/components/_page-header.scss b/war/src/main/scss/components/_page-header.scss index 13e63d91a771..e1b34ea09c71 100644 --- a/war/src/main/scss/components/_page-header.scss +++ b/war/src/main/scss/components/_page-header.scss @@ -1,3 +1,5 @@ +@use "../abstracts/mixins"; + .page-header { display: flex; align-items: center; @@ -36,8 +38,7 @@ a.page-header__brand-link { } .page-header__am-wrapper { - height: 100%; - padding: 0.5rem 0; + display: contents; } .page-header__hyperlinks { @@ -45,37 +46,22 @@ a.page-header__brand-link { align-items: center; } -.page-header__hyperlinks a { +.page-header__hyperlinks > a, +.am-container > a { + @include mixins.item; + --text-color: var(--header-link-color); display: inline-flex; align-items: center; - - // need to override an existing rule - /* stylelint-disable declaration-block-no-shorthand-property-overrides */ - padding-right: 0.5rem; + color: var(--text-color); + text-decoration: none; padding: 0.5rem; margin-right: 0 !important; - font-weight: bold; - - &:link, - &:visited { - color: var(--header-link-color); - border-radius: var(--header-item-border-radius); - text-decoration: none; - } - &:hover, - &:focus, - &.mouseIsOverMenuSelector { - color: var(--header-link-color-active); - background-color: var(--header-link-bg-classic-hover); - text-decoration: underline; - text-decoration-color: var(--header-link-color-active); - } - - &:active { - background-color: var(--header-link-bg-classic-active); + &::before, + &::after { + inset: 0 !important; } .jenkins-menu-dropdown-chevron { @@ -91,8 +77,6 @@ a.page-header__brand-link { } .page-header__hyperlinks a span { - font-weight: bold; - &:not(:first-child) { margin-left: 0.25rem; } From 444f2de993786310f998b4432e2550b35e1d7a45 Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Wed, 3 Jan 2024 01:27:32 -0800 Subject: [PATCH 0142/1216] Improve crash consistency on Linux (#8815) * Improve crash consistency * `fsync` the correct parent directory * More flexibility * Add reference to man page * fix formatting --------- Co-authored-by: Tim Jacomb <21194782+timja@users.noreply.github.com> --- .../main/java/hudson/util/AtomicFileWriter.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/core/src/main/java/hudson/util/AtomicFileWriter.java b/core/src/main/java/hudson/util/AtomicFileWriter.java index 4e871b3262f0..fabe15c5a6b6 100644 --- a/core/src/main/java/hudson/util/AtomicFileWriter.java +++ b/core/src/main/java/hudson/util/AtomicFileWriter.java @@ -26,11 +26,13 @@ import edu.umd.cs.findbugs.annotations.NonNull; import edu.umd.cs.findbugs.annotations.Nullable; +import hudson.Functions; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.Writer; import java.lang.ref.Cleaner; +import java.nio.channels.FileChannel; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.nio.file.AtomicMoveNotSupportedException; @@ -62,6 +64,9 @@ public class AtomicFileWriter extends Writer { private static /* final */ boolean DISABLE_FORCED_FLUSH = SystemProperties.getBoolean( AtomicFileWriter.class.getName() + ".DISABLE_FORCED_FLUSH"); + private static /* final */ boolean REQUIRES_DIR_FSYNC = SystemProperties.getBoolean( + AtomicFileWriter.class.getName() + ".REQUIRES_DIR_FSYNC", !Functions.isWindows()); + static { if (DISABLE_FORCED_FLUSH) { LOGGER.log(Level.WARNING, "DISABLE_FORCED_FLUSH flag used, this could result in dataloss if failures happen in your storage subsystem."); @@ -234,6 +239,18 @@ public void commit() throws IOException { throw replaceFailed; } } + + /* + * From fsync(2) on Linux: + * + * Calling fsync() does not necessarily ensure that the entry in the directory containing the file has also + * reached disk. For that an explicit fsync() on a file descriptor for the directory is also needed. + */ + if (!DISABLE_FORCED_FLUSH && REQUIRES_DIR_FSYNC) { + try (FileChannel parentChannel = FileChannel.open(destPath.getParent())) { + parentChannel.force(true); + } + } } private static final class CleanupChecker implements Runnable { From e7ed28f7b4d198ddbff0bebd115bdc0f63e134ce Mon Sep 17 00:00:00 2001 From: Alexander Brandes Date: Wed, 3 Jan 2024 22:56:53 +0100 Subject: [PATCH 0143/1216] Uppercase build cancellation message in build queue (#8824) --- .../jenkins/widgets/HistoryPageFilter/queue-items.jelly | 2 +- core/src/main/resources/lib/hudson/queue.jelly | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/resources/jenkins/widgets/HistoryPageFilter/queue-items.jelly b/core/src/main/resources/jenkins/widgets/HistoryPageFilter/queue-items.jelly index 498bc31767ff..9233148ead27 100644 --- a/core/src/main/resources/jenkins/widgets/HistoryPageFilter/queue-items.jelly +++ b/core/src/main/resources/jenkins/widgets/HistoryPageFilter/queue-items.jelly @@ -65,7 +65,7 @@ THE SOFTWARE.
- +
diff --git a/core/src/main/resources/lib/hudson/queue.jelly b/core/src/main/resources/lib/hudson/queue.jelly index 33d3ba9109ac..f36c84a59d65 100644 --- a/core/src/main/resources/lib/hudson/queue.jelly +++ b/core/src/main/resources/lib/hudson/queue.jelly @@ -93,7 +93,7 @@ THE SOFTWARE. - + From 78cdaa9f29df4a407b12973b9db04ff322e49db8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Jan 2024 15:50:43 -0800 Subject: [PATCH 0144/1216] Bump org.jenkins-ci.plugins:script-security from 1294.v99333c047434 to 1305.v487433146192 (#8826) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index c91796e0c567..489e08dac486 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -105,7 +105,7 @@ THE SOFTWARE. org.jenkins-ci.plugins script-security - 1294.v99333c047434 + 1305.v487433146192
org.jenkins-ci.plugins.workflow From e859e9cd9c87a34153bc02c02cdfc174daa5c0e3 Mon Sep 17 00:00:00 2001 From: Tim Jacomb <21194782+timja@users.noreply.github.com> Date: Fri, 5 Jan 2024 20:40:12 +0000 Subject: [PATCH 0145/1216] Allow plugins to override boot failure view (#8442) --- core/src/main/java/hudson/WebAppMain.java | 26 ++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/WebAppMain.java b/core/src/main/java/hudson/WebAppMain.java index 99603ac1e411..9f328328c710 100644 --- a/core/src/main/java/hudson/WebAppMain.java +++ b/core/src/main/java/hudson/WebAppMain.java @@ -48,6 +48,7 @@ import java.io.File; import java.io.IOException; import java.io.OutputStream; +import java.lang.reflect.InvocationTargetException; import java.net.URL; import java.net.URLClassLoader; import java.nio.charset.Charset; @@ -261,13 +262,36 @@ public void run() { new HudsonFailedToLoad(e).publish(context, _home); throw e; } catch (Exception e) { - new HudsonFailedToLoad(e).publish(context, _home); + // Allow plugins to override error page on boot with custom BootFailure subclass thrown + Throwable error = unwrapException(e); + if (error instanceof InvocationTargetException) { + Throwable targetException = ((InvocationTargetException) error).getTargetException(); + + if (targetException instanceof BootFailure) { + ((BootFailure) targetException).publish(context, _home); + } else { + new HudsonFailedToLoad(e).publish(context, _home); + } + } else { + new HudsonFailedToLoad(e).publish(context, _home); + } } finally { Jenkins instance = Jenkins.getInstanceOrNull(); if (!success && instance != null) instance.cleanUp(); } } + + private Throwable unwrapException(Exception e) { + Throwable error = e; + while (error.getCause() != null) { + if (error.getCause() instanceof InvocationTargetException) { + return error.getCause(); + } + error = error.getCause(); + } + return error; + } }; initThread.start(); } catch (BootFailure e) { From 90b8ed957cfb0d455d00ed36b74e77c59ac9cb5b Mon Sep 17 00:00:00 2001 From: Alexander Brandes Date: Fri, 5 Jan 2024 21:40:40 +0100 Subject: [PATCH 0146/1216] Add an 'Appearance' category to the wizard (#8822) --- core/src/main/resources/jenkins/install/platform-plugins.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/src/main/resources/jenkins/install/platform-plugins.json b/core/src/main/resources/jenkins/install/platform-plugins.json index 15dd708447c7..62885083fbdd 100644 --- a/core/src/main/resources/jenkins/install/platform-plugins.json +++ b/core/src/main/resources/jenkins/install/platform-plugins.json @@ -94,6 +94,10 @@ { "name": "mailer", "suggested": true } ] }, + { + "category": "Appearance", + "plugins": [{ "name": "dark-theme", "suggested": true }] + }, { "category": "Languages", "plugins": [{ "name": "locale" }, { "name": "localization-zh-cn" }] From 425df13fcdcc79ccbee68c92aac439e4515a1e76 Mon Sep 17 00:00:00 2001 From: Alexander Brandes Date: Sat, 6 Jan 2024 12:54:51 +0100 Subject: [PATCH 0147/1216] Update XML namespace schemaLocation for incrementals (#8828) --- .mvn/extensions.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.mvn/extensions.xml b/.mvn/extensions.xml index 1f36364094f1..a64ab6f242ca 100644 --- a/.mvn/extensions.xml +++ b/.mvn/extensions.xml @@ -1,4 +1,4 @@ - + io.jenkins.tools.incrementals git-changelist-maven-extension From 040cb89113404b9d338bc482850811c60c7f6a1f Mon Sep 17 00:00:00 2001 From: Alexander Brandes Date: Sat, 6 Jan 2024 18:05:12 +0100 Subject: [PATCH 0148/1216] Increase test timeout of MavenTest#sensitiveParameters() (#8837) --- test/src/test/java/hudson/tasks/MavenTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/src/test/java/hudson/tasks/MavenTest.java b/test/src/test/java/hudson/tasks/MavenTest.java index bd366adce71d..58aefa2292fb 100644 --- a/test/src/test/java/hudson/tasks/MavenTest.java +++ b/test/src/test/java/hudson/tasks/MavenTest.java @@ -66,6 +66,7 @@ import org.jvnet.hudson.test.Issue; import org.jvnet.hudson.test.JenkinsRule; import org.jvnet.hudson.test.ToolInstallations; +import org.jvnet.hudson.test.recipes.WithTimeout; import org.kohsuke.stapler.jelly.JellyFacet; /** @@ -190,7 +191,7 @@ private void verify() throws Exception { assertNotNull(isp.installers.get(MavenInstaller.class)); } - @Test public void sensitiveParameters() throws Exception { + @Test @WithTimeout(300) public void sensitiveParameters() throws Exception { FreeStyleProject project = j.createFreeStyleProject(); ParametersDefinitionProperty pdb = new ParametersDefinitionProperty( new StringParameterDefinition("string", "defaultValue", "string description"), From 7392571c65a2431832856fca941e0f1d035b228b Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Sat, 6 Jan 2024 09:07:08 -0800 Subject: [PATCH 0149/1216] Replace deprecated `-jnlpUrl` in `JNLPLauncherTest` (#8833) --- .../test/java/hudson/slaves/JNLPLauncherTest.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/test/src/test/java/hudson/slaves/JNLPLauncherTest.java b/test/src/test/java/hudson/slaves/JNLPLauncherTest.java index 813c72364558..e71b2fbcce9c 100644 --- a/test/src/test/java/hudson/slaves/JNLPLauncherTest.java +++ b/test/src/test/java/hudson/slaves/JNLPLauncherTest.java @@ -157,12 +157,21 @@ private ArgumentListBuilder buildJnlpArgs(Computer c) throws Exception { ArgumentListBuilder args = new ArgumentListBuilder(); args.add(new File(new File(System.getProperty("java.home")), "bin/java").getPath(), "-jar"); args.add(Which.jarFile(Launcher.class).getAbsolutePath()); - // TODO deprecated mode - args.add("-jnlpUrl", j.getURL() + "computer/" + c.getName() + "/jenkins-agent.jnlp"); + args.add("-url"); + args.add(j.getURL()); + args.add("-name"); + args.add(c.getName()); if (c instanceof SlaveComputer) { SlaveComputer sc = (SlaveComputer) c; + args.add("-secret"); + args.add(sc.getJnlpMac()); ComputerLauncher launcher = sc.getLauncher(); + if (launcher instanceof ComputerLauncherFilter) { + launcher = ((ComputerLauncherFilter) launcher).getCore(); + } else if (launcher instanceof DelegatingComputerLauncher) { + launcher = ((DelegatingComputerLauncher) launcher).getLauncher(); + } if (launcher instanceof JNLPLauncher) { args.add(((JNLPLauncher) launcher).getWorkDirSettings().toCommandLineArgs(sc)); } From 3dbbf2689489c620ef2adeb82af8deaf6fd41cf2 Mon Sep 17 00:00:00 2001 From: Alexander Brandes Date: Sun, 7 Jan 2024 13:42:29 +0100 Subject: [PATCH 0150/1216] Increase MavenTest#sensitiveParameters() timeout to 500s (#8840) --- test/src/test/java/hudson/tasks/MavenTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/src/test/java/hudson/tasks/MavenTest.java b/test/src/test/java/hudson/tasks/MavenTest.java index 58aefa2292fb..dbf745b672d9 100644 --- a/test/src/test/java/hudson/tasks/MavenTest.java +++ b/test/src/test/java/hudson/tasks/MavenTest.java @@ -191,7 +191,7 @@ private void verify() throws Exception { assertNotNull(isp.installers.get(MavenInstaller.class)); } - @Test @WithTimeout(300) public void sensitiveParameters() throws Exception { + @Test @WithTimeout(500) public void sensitiveParameters() throws Exception { FreeStyleProject project = j.createFreeStyleProject(); ParametersDefinitionProperty pdb = new ParametersDefinitionProperty( new StringParameterDefinition("string", "defaultValue", "string description"), From 29f3853cb50f4df58f9dcd9af0911a1c621db217 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 8 Jan 2024 09:40:51 +0000 Subject: [PATCH 0151/1216] Update dependency sass to v1.69.7 (#8835) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Mark Waite --- war/package.json | 2 +- war/yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/war/package.json b/war/package.json index 90c31887382d..a80238545ce3 100644 --- a/war/package.json +++ b/war/package.json @@ -39,7 +39,7 @@ "postcss-preset-env": "9.3.0", "postcss-scss": "4.0.9", "prettier": "3.1.1", - "sass": "1.69.6", + "sass": "1.69.7", "sass-loader": "13.3.3", "style-loader": "3.3.3", "stylelint": "16.1.0", diff --git a/war/yarn.lock b/war/yarn.lock index a4fe98ca0023..9565b31ec987 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -4465,7 +4465,7 @@ __metadata: postcss-preset-env: "npm:9.3.0" postcss-scss: "npm:4.0.9" prettier: "npm:3.1.1" - sass: "npm:1.69.6" + sass: "npm:1.69.7" sass-loader: "npm:13.3.3" sortablejs: "npm:1.15.1" style-loader: "npm:3.3.3" @@ -6458,16 +6458,16 @@ __metadata: languageName: node linkType: hard -"sass@npm:1.69.6": - version: 1.69.6 - resolution: "sass@npm:1.69.6" +"sass@npm:1.69.7": + version: 1.69.7 + resolution: "sass@npm:1.69.7" dependencies: chokidar: "npm:>=3.0.0 <4.0.0" immutable: "npm:^4.0.0" source-map-js: "npm:>=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 8153db8e51e74a9007bb54332e14d122c34288c7d21a5f2eaefef753a1b7bb13f35e042dc6247253dab5b1550b05cea27970371e7548286b4f50f23dd1147d89 + checksum: 773d0938e7d4ff3972d3fda3132f34fe98a2f712e028a58e28fecd615434795eff3266eddc38d5e13f03b90c0d6360d0e737b30bff2949a47280c64a18e0fb18 languageName: node linkType: hard From 50bc384abde662cf395dc6580f94c7e85303377e Mon Sep 17 00:00:00 2001 From: Alexander Brandes Date: Mon, 8 Jan 2024 10:42:13 +0100 Subject: [PATCH 0152/1216] Fill in since todo (#8839) --- core/src/main/java/hudson/ExtensionList.java | 2 +- core/src/main/java/hudson/Functions.java | 2 +- .../main/java/hudson/model/BuildTimelineWidget.java | 4 ++-- core/src/main/java/hudson/model/View.java | 4 ++-- .../node_monitors/AbstractNodeMonitorDescriptor.java | 2 +- .../node_monitors/DiskSpaceMonitorDescriptor.java | 4 ++-- .../node_monitors/DiskSpaceMonitorNodeProperty.java | 2 +- .../java/jenkins/console/ConsoleUrlProvider.java | 2 +- .../ConsoleUrlProviderGlobalConfiguration.java | 2 +- .../console/ConsoleUrlProviderUserProperty.java | 2 +- .../jenkins/console/DefaultConsoleUrlProvider.java | 2 +- core/src/main/java/jenkins/model/Loadable.java | 2 +- .../main/java/jenkins/model/PeepholePermalink.java | 12 ++++++------ core/src/main/java/jenkins/security/FIPS140.java | 2 +- .../java/jenkins/util/DefaultScriptListener.java | 2 +- core/src/main/java/jenkins/util/ScriptListener.java | 2 +- 16 files changed, 24 insertions(+), 24 deletions(-) diff --git a/core/src/main/java/hudson/ExtensionList.java b/core/src/main/java/hudson/ExtensionList.java index 202a76732bc2..c333b2de9ff2 100644 --- a/core/src/main/java/hudson/ExtensionList.java +++ b/core/src/main/java/hudson/ExtensionList.java @@ -468,7 +468,7 @@ public static ExtensionList create(Jenkins jenkins, Class type) { * @return the singleton instance of the given type in its list. * @throws IllegalStateException if there are no instances * - * @since TODO + * @since 2.435 */ public static @NonNull U lookupFirst(Class type) { var all = lookup(type); diff --git a/core/src/main/java/hudson/Functions.java b/core/src/main/java/hudson/Functions.java index 9cc4659ef33b..d27160aaa8a2 100644 --- a/core/src/main/java/hudson/Functions.java +++ b/core/src/main/java/hudson/Functions.java @@ -1909,7 +1909,7 @@ public static String joinPath(String... components) { * Computes the link to the console for the run for the specified executable, taking {@link ConsoleUrlProvider} into account. * @param executable the executable (normally a {@link Run}) * @return the absolute URL for accessing the build console for the executable, or null if there is no build associated with the executable - * @since TODO + * @since 2.433 */ public static @CheckForNull String getConsoleUrl(Queue.Executable executable) { if (executable == null) { diff --git a/core/src/main/java/hudson/model/BuildTimelineWidget.java b/core/src/main/java/hudson/model/BuildTimelineWidget.java index 8849e95555dc..23a372b659c7 100644 --- a/core/src/main/java/hudson/model/BuildTimelineWidget.java +++ b/core/src/main/java/hudson/model/BuildTimelineWidget.java @@ -40,9 +40,9 @@ * * @author Kohsuke Kawaguchi * @since 1.372 - * @deprecated since TODO + * @deprecated since 2.431 */ -@Deprecated +@Deprecated(since = "2.431") public class BuildTimelineWidget { protected final RunList builds; diff --git a/core/src/main/java/hudson/model/View.java b/core/src/main/java/hudson/model/View.java index c752adc24247..6bd923cd0268 100644 --- a/core/src/main/java/hudson/model/View.java +++ b/core/src/main/java/hudson/model/View.java @@ -406,7 +406,7 @@ public boolean isFilterExecutors() { } /** - * @since TODO + * @since 2.426 */ @DataBoundSetter public void setFilterExecutors(boolean filterExecutors) { @@ -421,7 +421,7 @@ public boolean isFilterQueue() { } /** - * @since TODO + * @since 2.426 */ @DataBoundSetter public void setFilterQueue(boolean filterQueue) { diff --git a/core/src/main/java/hudson/node_monitors/AbstractNodeMonitorDescriptor.java b/core/src/main/java/hudson/node_monitors/AbstractNodeMonitorDescriptor.java index 927e826ece67..7cd1c75abc8d 100644 --- a/core/src/main/java/hudson/node_monitors/AbstractNodeMonitorDescriptor.java +++ b/core/src/main/java/hudson/node_monitors/AbstractNodeMonitorDescriptor.java @@ -73,7 +73,7 @@ protected AbstractNodeMonitorDescriptor() { * method and return false. * * @return true if this monitor might take agents offline - * @since TODO + * @since 2.437 */ public boolean canTakeOffline() { return true; diff --git a/core/src/main/java/hudson/node_monitors/DiskSpaceMonitorDescriptor.java b/core/src/main/java/hudson/node_monitors/DiskSpaceMonitorDescriptor.java index 18bc935e3689..03038c054cdb 100644 --- a/core/src/main/java/hudson/node_monitors/DiskSpaceMonitorDescriptor.java +++ b/core/src/main/java/hudson/node_monitors/DiskSpaceMonitorDescriptor.java @@ -183,11 +183,11 @@ public long getFreeSize() { /** * Gets GB left. * - * @deprecated since TODO + * @deprecated * Directly use the size field or to get a human-readable value with units use * {@link Functions#humanReadableByteSize(long)} */ - @Deprecated + @Deprecated(since = "2.434") public String getGbLeft() { long space = size; space /= 1024L; // convert to KB diff --git a/core/src/main/java/hudson/node_monitors/DiskSpaceMonitorNodeProperty.java b/core/src/main/java/hudson/node_monitors/DiskSpaceMonitorNodeProperty.java index 37cb8a56f683..3ac836f3238c 100644 --- a/core/src/main/java/hudson/node_monitors/DiskSpaceMonitorNodeProperty.java +++ b/core/src/main/java/hudson/node_monitors/DiskSpaceMonitorNodeProperty.java @@ -11,7 +11,7 @@ /** * {@link NodeProperty} that allows users to set agent specific disk space thresholds. * - * @since TODO + * @since 2.434 */ public class DiskSpaceMonitorNodeProperty extends NodeProperty { private final String freeDiskSpaceThreshold; diff --git a/core/src/main/java/jenkins/console/ConsoleUrlProvider.java b/core/src/main/java/jenkins/console/ConsoleUrlProvider.java index ba4e5a000cbc..0b9e70c3db53 100644 --- a/core/src/main/java/jenkins/console/ConsoleUrlProvider.java +++ b/core/src/main/java/jenkins/console/ConsoleUrlProvider.java @@ -52,7 +52,7 @@ * Pipeline flow graph, there may be various edge cases where your visualization does not work at all, but the classic * console view is unaffected. * @see Functions#getConsoleUrl - * @since TODO + * @since 2.433 */ public interface ConsoleUrlProvider extends Describable { @Restricted(NoExternalUse.class) diff --git a/core/src/main/java/jenkins/console/ConsoleUrlProviderGlobalConfiguration.java b/core/src/main/java/jenkins/console/ConsoleUrlProviderGlobalConfiguration.java index 260321b009eb..a63fe679f200 100644 --- a/core/src/main/java/jenkins/console/ConsoleUrlProviderGlobalConfiguration.java +++ b/core/src/main/java/jenkins/console/ConsoleUrlProviderGlobalConfiguration.java @@ -48,7 +48,7 @@ /** * Allows administrators to activate and sort {@link ConsoleUrlProvider} extensions to set defaults for all users. * @see ConsoleUrlProviderUserProperty - * @since TODO + * @since 2.433 */ @Extension @Symbol("consoleUrlProvider") diff --git a/core/src/main/java/jenkins/console/ConsoleUrlProviderUserProperty.java b/core/src/main/java/jenkins/console/ConsoleUrlProviderUserProperty.java index d741a0f16fd4..3763036b9686 100644 --- a/core/src/main/java/jenkins/console/ConsoleUrlProviderUserProperty.java +++ b/core/src/main/java/jenkins/console/ConsoleUrlProviderUserProperty.java @@ -39,7 +39,7 @@ /** * Allows users to activate and sort {@link ConsoleUrlProvider} extensions based on their preferences. * @see ConsoleUrlProviderGlobalConfiguration - * @since TODO + * @since 2.433 */ @Restricted(NoExternalUse.class) public class ConsoleUrlProviderUserProperty extends UserProperty { diff --git a/core/src/main/java/jenkins/console/DefaultConsoleUrlProvider.java b/core/src/main/java/jenkins/console/DefaultConsoleUrlProvider.java index 34722301529d..59b2e8f64be3 100644 --- a/core/src/main/java/jenkins/console/DefaultConsoleUrlProvider.java +++ b/core/src/main/java/jenkins/console/DefaultConsoleUrlProvider.java @@ -36,7 +36,7 @@ * Default implementation of {@link ConsoleUrlProvider} that uses the standard Jenkins console view. *

Exists so that users have a way to override {@link ConsoleUrlProviderGlobalConfiguration} and specify the default * console view if desired via {@link ConsoleUrlProviderUserProperty}. - * @since TODO + * @since 2.433 */ @Restricted(value = NoExternalUse.class) public class DefaultConsoleUrlProvider implements ConsoleUrlProvider { diff --git a/core/src/main/java/jenkins/model/Loadable.java b/core/src/main/java/jenkins/model/Loadable.java index a8fd2eca4c56..76350cc2f4ef 100644 --- a/core/src/main/java/jenkins/model/Loadable.java +++ b/core/src/main/java/jenkins/model/Loadable.java @@ -6,7 +6,7 @@ /** * Object whose state can be loaded from disk. In general, also implements {@link Saveable}. * - * @since TODO + * @since 2.428 */ public interface Loadable { diff --git a/core/src/main/java/jenkins/model/PeepholePermalink.java b/core/src/main/java/jenkins/model/PeepholePermalink.java index 40297b6e406c..62185f39f1ae 100644 --- a/core/src/main/java/jenkins/model/PeepholePermalink.java +++ b/core/src/main/java/jenkins/model/PeepholePermalink.java @@ -242,7 +242,7 @@ public void onCompleted(Run run, @NonNull TaskListener listener) { } /** - * @since TODO + * @since 2.436 */ public static final Permalink LAST_STABLE_BUILD = new PeepholePermalink() { @Override @@ -262,7 +262,7 @@ public boolean apply(Run run) { }; /** - * @since TODO + * @since 2.436 */ public static final Permalink LAST_SUCCESSFUL_BUILD = new PeepholePermalink() { @Override @@ -283,7 +283,7 @@ public boolean apply(Run run) { }; /** - * @since TODO + * @since 2.436 */ public static final Permalink LAST_FAILED_BUILD = new PeepholePermalink() { @Override @@ -303,7 +303,7 @@ public boolean apply(Run run) { }; /** - * @since TODO + * @since 2.436 */ public static final Permalink LAST_UNSTABLE_BUILD = new PeepholePermalink() { @Override @@ -323,7 +323,7 @@ public boolean apply(Run run) { }; /** - * @since TODO + * @since 2.436 */ public static final Permalink LAST_UNSUCCESSFUL_BUILD = new PeepholePermalink() { @Override @@ -343,7 +343,7 @@ public boolean apply(Run run) { }; /** - * @since TODO + * @since 2.436 */ public static final Permalink LAST_COMPLETED_BUILD = new PeepholePermalink() { @Override diff --git a/core/src/main/java/jenkins/security/FIPS140.java b/core/src/main/java/jenkins/security/FIPS140.java index 527c90085996..8901f8932168 100644 --- a/core/src/main/java/jenkins/security/FIPS140.java +++ b/core/src/main/java/jenkins/security/FIPS140.java @@ -32,7 +32,7 @@ * The environment (host, JVM and servlet container), must be suitably configured which is outside the scope of the Jenkins project. * @see FIPS-140-2 * @see JEP-237 - * @since TODO + * @since 2.426 */ public class FIPS140 { diff --git a/core/src/main/java/jenkins/util/DefaultScriptListener.java b/core/src/main/java/jenkins/util/DefaultScriptListener.java index 3f3c966a8fd6..24957bbf68af 100644 --- a/core/src/main/java/jenkins/util/DefaultScriptListener.java +++ b/core/src/main/java/jenkins/util/DefaultScriptListener.java @@ -37,7 +37,7 @@ /** * Basic default implementation of {@link jenkins.util.ScriptListener} that just logs. * - * @since TODO + * @since 2.427 */ @Extension @Restricted(NoExternalUse.class) diff --git a/core/src/main/java/jenkins/util/ScriptListener.java b/core/src/main/java/jenkins/util/ScriptListener.java index e1f642e9d9e9..b07603c17f2a 100644 --- a/core/src/main/java/jenkins/util/ScriptListener.java +++ b/core/src/main/java/jenkins/util/ScriptListener.java @@ -49,7 +49,7 @@ * @see hudson.cli.GroovyshCommand * @see jenkins.util.groovy.GroovyHookScript * - * @since TODO + * @since 2.427 */ public interface ScriptListener extends ExtensionPoint { From 1eb29a879216fa7418724d08d5e9ed212ecd0709 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jan 2024 10:45:30 -0800 Subject: [PATCH 0153/1216] Bump org.jenkins-ci.main:remoting from 3198.v03a_401881f3e to 3203.v94ce994fdb_31 (#8836) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 8ce605075697..2bd70b413a36 100644 --- a/pom.xml +++ b/pom.xml @@ -86,7 +86,7 @@ THE SOFTWARE. https://www.jenkins.io/changelog - 3198.v03a_401881f3e + 3203.v94ce994fdb_31 4.13 From 004e72746a2732be97263c9a6099bc870f3dbe6c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Jan 2024 09:04:51 +0000 Subject: [PATCH 0154/1216] Update dependency postcss to v8.4.33 (#8841) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/war/package.json b/war/package.json index a80238545ce3..c82e10b81e83 100644 --- a/war/package.json +++ b/war/package.json @@ -34,7 +34,7 @@ "eslint-config-prettier": "9.1.0", "handlebars-loader": "1.7.3", "mini-css-extract-plugin": "2.7.6", - "postcss": "8.4.32", + "postcss": "8.4.33", "postcss-loader": "7.3.4", "postcss-preset-env": "9.3.0", "postcss-scss": "4.0.9", diff --git a/war/yarn.lock b/war/yarn.lock index 9565b31ec987..3954e1c5a242 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -4460,7 +4460,7 @@ __metadata: jquery: "npm:3.7.1" lodash: "npm:4.17.21" mini-css-extract-plugin: "npm:2.7.6" - postcss: "npm:8.4.32" + postcss: "npm:8.4.33" postcss-loader: "npm:7.3.4" postcss-preset-env: "npm:9.3.0" postcss-scss: "npm:4.0.9" @@ -6155,14 +6155,14 @@ __metadata: languageName: node linkType: hard -"postcss@npm:8.4.32, postcss@npm:^8.4.21, postcss@npm:^8.4.24, postcss@npm:^8.4.32": - version: 8.4.32 - resolution: "postcss@npm:8.4.32" +"postcss@npm:8.4.33, postcss@npm:^8.4.21, postcss@npm:^8.4.24, postcss@npm:^8.4.32": + version: 8.4.33 + resolution: "postcss@npm:8.4.33" dependencies: nanoid: "npm:^3.3.7" picocolors: "npm:^1.0.0" source-map-js: "npm:^1.0.2" - checksum: 39308a9195fa34d4dbdd7b58a896cff0c7809f84f7a4ac1b95b68ca86c9138a395addff33075668ed3983d41b90aac05754c445237a9365eb1c3a5602ebd03ad + checksum: 16eda83458fcd8a91bece287b5920c7f57164c3ea293e6c80d0ea71ce7843007bcd8592260a5160b9a7f02693e6ac93e2495b02d8c7596d3f3f72c1447e3ba79 languageName: node linkType: hard From 9865a3580b82f465280a83c777400c3ec3c060a6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Jan 2024 11:42:52 -0800 Subject: [PATCH 0155/1216] Bump org.jenkins-ci.main:remoting from 3203.v94ce994fdb_31 to 3206.vb_15dcf73f6a_9 (#8847) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2bd70b413a36..c7adda05664e 100644 --- a/pom.xml +++ b/pom.xml @@ -86,7 +86,7 @@ THE SOFTWARE. https://www.jenkins.io/changelog - 3203.v94ce994fdb_31 + 3206.vb_15dcf73f6a_9 4.13 From cdffa21e96db44cbe14c3fb0993d4c5e39c195db Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Jan 2024 11:43:13 -0800 Subject: [PATCH 0156/1216] Bump org.jenkins-ci.main:jenkins-test-harness from 2140.ve736dc2b_b_d2c to 2146.v6b_f8b_1cb_d12d (#8845) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index 489e08dac486..1cf4016bdbb9 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -131,7 +131,7 @@ THE SOFTWARE. ${project.groupId} jenkins-test-harness - 2140.ve736dc2b_b_d2c + 2146.v6b_f8b_1cb_d12d test From 773e0c692a274182af1f7b41dcf2a0842c728076 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Jan 2024 11:43:53 -0800 Subject: [PATCH 0157/1216] Bump org.jenkins-ci:jenkins from 1.108 to 1.109 (#8834) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c7adda05664e..76cafbf7cefc 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci jenkins - 1.108 + 1.109 From 0ebd1a066bb9a1d6295100cbf7371a9e33eb38f6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Jan 2024 11:44:11 -0800 Subject: [PATCH 0158/1216] Bump org.jenkins-ci.plugins:script-security from 1305.v487433146192 to 1313.v7a_6067dc7087 (#8844) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index 1cf4016bdbb9..cb905433472a 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -105,7 +105,7 @@ THE SOFTWARE. org.jenkins-ci.plugins script-security - 1305.v487433146192 + 1313.v7a_6067dc7087 org.jenkins-ci.plugins.workflow From 5da5ac7e62568908fa29ff8265c696cc6e4c7032 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Jan 2024 11:44:35 -0800 Subject: [PATCH 0159/1216] Bump SLF4J from 2.0.10 to 2.0.11 (#8846) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bom/pom.xml b/bom/pom.xml index 4ecb6251acea..29f77e1f7202 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -39,7 +39,7 @@ THE SOFTWARE. 9.6 - 2.0.10 + 2.0.11 1822.v120278426e1c 2.4.21 From f1e9bbc410604bd2f82c65df3d92d02826312a84 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Wed, 10 Jan 2024 04:35:17 +0000 Subject: [PATCH 0160/1216] [maven-release-plugin] prepare release jenkins-2.440 --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty10/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 29f77e1f7202..ce1a6c0f8f8e 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.440 jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 50588e3e692b..5d79df41defd 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.440 cli diff --git a/core/pom.xml b/core/pom.xml index 4280e9075da9..1235dd64b2e8 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.440 jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index fe1e89a120dc..b5987bf2bd3e 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.440 jenkins-coverage diff --git a/pom.xml b/pom.xml index 76cafbf7cefc..fb5036e59ee0 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.440 pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - ${scmTag} + jenkins-2.440 https://github.com/jenkinsci/jenkins diff --git a/test/pom.xml b/test/pom.xml index cb905433472a..356998ab5434 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.440 jenkins-test diff --git a/war/pom.xml b/war/pom.xml index 8d6d579e5919..5dbf13a86a39 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.440 jenkins-war diff --git a/websocket/jetty10/pom.xml b/websocket/jetty10/pom.xml index c91e1583c039..cb1e573448bf 100644 --- a/websocket/jetty10/pom.xml +++ b/websocket/jetty10/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.440 ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index a99aada6a446..9354ba25f64a 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.440 ../.. From 2923a7785ea735b0b90a8cfb2cbf67bbf864356e Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Wed, 10 Jan 2024 04:35:41 +0000 Subject: [PATCH 0161/1216] [maven-release-plugin] prepare for next development iteration --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 6 +++--- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty10/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index ce1a6c0f8f8e..29f77e1f7202 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.440 + ${revision}${changelist} jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 5d79df41defd..50588e3e692b 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.440 + ${revision}${changelist} cli diff --git a/core/pom.xml b/core/pom.xml index 1235dd64b2e8..4280e9075da9 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.440 + ${revision}${changelist} jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index b5987bf2bd3e..fe1e89a120dc 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.440 + ${revision}${changelist} jenkins-coverage diff --git a/pom.xml b/pom.xml index fb5036e59ee0..40678b5f2953 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.440 + ${revision}${changelist} pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - jenkins-2.440 + ${scmTag} https://github.com/jenkinsci/jenkins @@ -73,7 +73,7 @@ THE SOFTWARE. - 2.440 + 2.441 -SNAPSHOT diff --git a/test/pom.xml b/test/pom.xml index 356998ab5434..cb905433472a 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.440 + ${revision}${changelist} jenkins-test diff --git a/war/pom.xml b/war/pom.xml index 5dbf13a86a39..8d6d579e5919 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.440 + ${revision}${changelist} jenkins-war diff --git a/websocket/jetty10/pom.xml b/websocket/jetty10/pom.xml index cb1e573448bf..c91e1583c039 100644 --- a/websocket/jetty10/pom.xml +++ b/websocket/jetty10/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.440 + ${revision}${changelist} ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 9354ba25f64a..a99aada6a446 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.440 + ${revision}${changelist} ../.. From 7ed8c33d04c732c623fc0309db10442c7f2a83f1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 12 Jan 2024 11:41:34 +0100 Subject: [PATCH 0162/1216] Update dependency @babel/preset-env to v7.23.8 (#8859) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/yarn.lock | 23 +++++++++++------------ 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/war/package.json b/war/package.json index c82e10b81e83..04b97d7bd559 100644 --- a/war/package.json +++ b/war/package.json @@ -25,7 +25,7 @@ "devDependencies": { "@babel/cli": "7.23.4", "@babel/core": "7.23.7", - "@babel/preset-env": "7.23.7", + "@babel/preset-env": "7.23.8", "babel-loader": "9.1.3", "clean-webpack-plugin": "4.0.0", "css-loader": "6.8.1", diff --git a/war/yarn.lock b/war/yarn.lock index 3954e1c5a242..a668180a47e3 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -699,22 +699,21 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.23.5": - version: 7.23.5 - resolution: "@babel/plugin-transform-classes@npm:7.23.5" +"@babel/plugin-transform-classes@npm:^7.23.8": + version: 7.23.8 + resolution: "@babel/plugin-transform-classes@npm:7.23.8" dependencies: "@babel/helper-annotate-as-pure": "npm:^7.22.5" - "@babel/helper-compilation-targets": "npm:^7.22.15" + "@babel/helper-compilation-targets": "npm:^7.23.6" "@babel/helper-environment-visitor": "npm:^7.22.20" "@babel/helper-function-name": "npm:^7.23.0" - "@babel/helper-optimise-call-expression": "npm:^7.22.5" "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/helper-replace-supers": "npm:^7.22.20" "@babel/helper-split-export-declaration": "npm:^7.22.6" globals: "npm:^11.1.0" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 07988f52b4893151887d1ea6ff79e5fe834078c5731bd09babd5659edbbae21ea4e2de326a02443a63fd776b4c945da6177f07875b56fe66e0b7899e830a9e92 + checksum: 227ac5166501e04d9e7fbd5eda6869b084ffa4af6830ac12544ac6ea14953ca00eb1762b0df9349c0f6c8d2a799385910f558066cd0fb85b9ca437b1131a6043 languageName: node linkType: hard @@ -1195,9 +1194,9 @@ __metadata: languageName: node linkType: hard -"@babel/preset-env@npm:7.23.7": - version: 7.23.7 - resolution: "@babel/preset-env@npm:7.23.7" +"@babel/preset-env@npm:7.23.8": + version: 7.23.8 + resolution: "@babel/preset-env@npm:7.23.8" dependencies: "@babel/compat-data": "npm:^7.23.5" "@babel/helper-compilation-targets": "npm:^7.23.6" @@ -1232,7 +1231,7 @@ __metadata: "@babel/plugin-transform-block-scoping": "npm:^7.23.4" "@babel/plugin-transform-class-properties": "npm:^7.23.3" "@babel/plugin-transform-class-static-block": "npm:^7.23.4" - "@babel/plugin-transform-classes": "npm:^7.23.5" + "@babel/plugin-transform-classes": "npm:^7.23.8" "@babel/plugin-transform-computed-properties": "npm:^7.23.3" "@babel/plugin-transform-destructuring": "npm:^7.23.3" "@babel/plugin-transform-dotall-regex": "npm:^7.23.3" @@ -1281,7 +1280,7 @@ __metadata: semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: ac9def873cec52ee02a550bde6e22eced16d1ae331bb8ebc82c03e4c91c12ac17e3e4027647e61612937bcc25ac46e71370aaf99dc2e85dbd11f7777ffeed54e + checksum: e602ad954645f1a509644e3d2c72b3c63bdc2273c377e7a83b78f076eca215887ea3624ffc36aaad03deb9ac8acd89e247fd4562b96e0f2b679485e20d8ff25f languageName: node linkType: hard @@ -4447,7 +4446,7 @@ __metadata: dependencies: "@babel/cli": "npm:7.23.4" "@babel/core": "npm:7.23.7" - "@babel/preset-env": "npm:7.23.7" + "@babel/preset-env": "npm:7.23.8" babel-loader: "npm:9.1.3" clean-webpack-plugin: "npm:4.0.0" css-loader: "npm:6.8.1" From 9dd9a51a4462a3cee9c008830f2dbd6ad9657718 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Jan 2024 11:42:40 +0100 Subject: [PATCH 0163/1216] Bump org.jenkins-ci.main:jenkins-test-harness from 2146.v6b_f8b_1cb_d12d to 2148.v80482520b_d2c (#8857) Bump org.jenkins-ci.main:jenkins-test-harness Bumps [org.jenkins-ci.main:jenkins-test-harness](https://github.com/jenkinsci/jenkins-test-harness) from 2146.v6b_f8b_1cb_d12d to 2148.v80482520b_d2c. - [Release notes](https://github.com/jenkinsci/jenkins-test-harness/releases) - [Changelog](https://github.com/jenkinsci/jenkins-test-harness/blob/master/docs/CHANGELOG-OLD.md) - [Commits](https://github.com/jenkinsci/jenkins-test-harness/commits) --- updated-dependencies: - dependency-name: org.jenkins-ci.main:jenkins-test-harness dependency-type: direct:development ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index cb905433472a..d0c3f586df8d 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -131,7 +131,7 @@ THE SOFTWARE. ${project.groupId} jenkins-test-harness - 2146.v6b_f8b_1cb_d12d + 2148.v80482520b_d2c test From 214f042834a0cd3888037c791cec4783767bd931 Mon Sep 17 00:00:00 2001 From: dsrink Date: Fri, 12 Jan 2024 11:45:35 +0100 Subject: [PATCH 0164/1216] [JENKINS-66530] Change focus in the 'new item' page only if 'from' has a valid job name (#8807) * JENKINS-66530: setTimeout/focus switch to 'name' only if field 'from' points to a valid job name * yarn prettier for add-item.js --- war/src/main/js/add-item.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/war/src/main/js/add-item.js b/war/src/main/js/add-item.js index 99b251d690c3..62244731adde 100644 --- a/war/src/main/js/add-item.js +++ b/war/src/main/js/add-item.js @@ -334,7 +334,15 @@ $.when(getItems()).done(function (data) { if (!getFieldValidationStatus("name")) { activateValidationMessage("#itemname-required", ".add-item-name"); setTimeout(function () { - $('input[name="name"][type="text"]', "#createItem").focus(); + var parentName = $('input[name="from"]', "#createItem").val(); + $.get("job/" + parentName + "/api/json?tree=name").done( + function (data) { + if (data.name === parentName) { + //if "name" is invalid, but "from" is a valid job, then switch focus to "name" + $('input[name="name"][type="text"]', "#createItem").focus(); + } + }, + ); }, 400); } else { if (getFormValidationStatus()) { From dd7488bc9062afe514254652ec8e4a29843fb125 Mon Sep 17 00:00:00 2001 From: Tim Jacomb <21194782+timja@users.noreply.github.com> Date: Fri, 12 Jan 2024 20:15:41 +0000 Subject: [PATCH 0165/1216] Increase memory for war assembly (#8856) --- .mvn/jvm.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.mvn/jvm.config b/.mvn/jvm.config index f0106d148540..1d72cb7d8d93 100644 --- a/.mvn/jvm.config +++ b/.mvn/jvm.config @@ -1 +1 @@ --Xmx1100m +-Xmx1400m From 53f7e40b198aa34b0089a325eca372aa1e216131 Mon Sep 17 00:00:00 2001 From: Markus Winter Date: Sat, 13 Jan 2024 04:00:05 +0100 Subject: [PATCH 0166/1216] do not generate td when outside table for buildbutton (#8854) projectView renders a buildButton twice once inside a table for wide screens and once outside a table for narrow or mobile screens with one always hidden. But the buildButton always wraps everything in a `td`. When projectView is now itself wrapped somewhere in a table (was done in dashboard-view plugin) then the brwoser will move the `td` to the outer table and it gets always shown and breaks the UI. --- .../views/BuildButtonColumn/column.jelly | 53 ++++++++++--------- .../resources/lib/hudson/projectView.jelly | 3 +- 2 files changed, 30 insertions(+), 26 deletions(-) diff --git a/core/src/main/resources/hudson/views/BuildButtonColumn/column.jelly b/core/src/main/resources/hudson/views/BuildButtonColumn/column.jelly index df10b841083c..14740e7cddf9 100644 --- a/core/src/main/resources/hudson/views/BuildButtonColumn/column.jelly +++ b/core/src/main/resources/hudson/views/BuildButtonColumn/column.jelly @@ -23,29 +23,32 @@ THE SOFTWARE. --> - - - - - -

- - - - - - - - - - - - - - - - -
-
- + + + + jenkins-table__cell--tight + + + + +
+ + + + + + + + + + + + + + + + +
+
+
diff --git a/core/src/main/resources/lib/hudson/projectView.jelly b/core/src/main/resources/lib/hudson/projectView.jelly index c7fdba3a542f..de8d4a9316b1 100644 --- a/core/src/main/resources/lib/hudson/projectView.jelly +++ b/core/src/main/resources/lib/hudson/projectView.jelly @@ -88,6 +88,7 @@ THE SOFTWARE.
+ @@ -121,7 +122,7 @@ THE SOFTWARE.
- +
From e7e673d691bb0897db211ea4cdf4a22ab0f3f711 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 12 Jan 2024 20:00:18 -0700 Subject: [PATCH 0167/1216] Update dependency style-loader to v3.3.4 (#8861) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/war/package.json b/war/package.json index 04b97d7bd559..4fbf7246093b 100644 --- a/war/package.json +++ b/war/package.json @@ -41,7 +41,7 @@ "prettier": "3.1.1", "sass": "1.69.7", "sass-loader": "13.3.3", - "style-loader": "3.3.3", + "style-loader": "3.3.4", "stylelint": "16.1.0", "stylelint-checkstyle-reporter": "0.2.0", "stylelint-config-standard": "33.0.0", diff --git a/war/yarn.lock b/war/yarn.lock index a668180a47e3..b714a8f3c717 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -4467,7 +4467,7 @@ __metadata: sass: "npm:1.69.7" sass-loader: "npm:13.3.3" sortablejs: "npm:1.15.1" - style-loader: "npm:3.3.3" + style-loader: "npm:3.3.4" stylelint: "npm:16.1.0" stylelint-checkstyle-reporter: "npm:0.2.0" stylelint-config-standard: "npm:33.0.0" @@ -6733,12 +6733,12 @@ __metadata: languageName: node linkType: hard -"style-loader@npm:3.3.3": - version: 3.3.3 - resolution: "style-loader@npm:3.3.3" +"style-loader@npm:3.3.4": + version: 3.3.4 + resolution: "style-loader@npm:3.3.4" peerDependencies: webpack: ^5.0.0 - checksum: 104bae8abd0627579dc14f3917cf65f1117e8098e3529872f09c26b5eee07933567b7be5c8ebf94d16e322b6e726dc569c5787111bf3786915850db4e351ef33 + checksum: 8f8027fc5c6e91400cbb60066e7db3315810f8eaa0d19b2a254936eb0bec399ba8a7043b1789da9d05ab7c3ba50faf9267765ae0bf3571e48aa34ecdc774be37 languageName: node linkType: hard From 7540c95767604c1d1ae0226bc8f086aa733fa2eb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 12 Jan 2024 20:00:29 -0700 Subject: [PATCH 0168/1216] Update dependency css-loader to v6.9.0 (#8862) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/yarn.lock | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/war/package.json b/war/package.json index 4fbf7246093b..f0afba81ba0a 100644 --- a/war/package.json +++ b/war/package.json @@ -28,7 +28,7 @@ "@babel/preset-env": "7.23.8", "babel-loader": "9.1.3", "clean-webpack-plugin": "4.0.0", - "css-loader": "6.8.1", + "css-loader": "6.9.0", "css-minimizer-webpack-plugin": "5.0.1", "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", diff --git a/war/yarn.lock b/war/yarn.lock index b714a8f3c717..e354e8bdc364 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -3125,21 +3125,21 @@ __metadata: languageName: node linkType: hard -"css-loader@npm:6.8.1": - version: 6.8.1 - resolution: "css-loader@npm:6.8.1" +"css-loader@npm:6.9.0": + version: 6.9.0 + resolution: "css-loader@npm:6.9.0" dependencies: icss-utils: "npm:^5.1.0" - postcss: "npm:^8.4.21" + postcss: "npm:^8.4.31" postcss-modules-extract-imports: "npm:^3.0.0" postcss-modules-local-by-default: "npm:^4.0.3" - postcss-modules-scope: "npm:^3.0.0" + postcss-modules-scope: "npm:^3.1.0" postcss-modules-values: "npm:^4.0.0" postcss-value-parser: "npm:^4.2.0" - semver: "npm:^7.3.8" + semver: "npm:^7.5.4" peerDependencies: webpack: ^5.0.0 - checksum: a6e23de4ec1d2832f10b8ca3cfec6b6097a97ca3c73f64338ae5cd110ac270f1b218ff0273d39f677a7a561f1a9d9b0d332274664d0991bcfafaae162c2669c4 + checksum: dded9ddbf3d7d2befe6a6c8fc861a46790626219a732ada3e52d02833dd2731d81b5f9ac7be51d3871b48d1a4b840668598e033f5f82790e892c6942139dbf9c languageName: node linkType: hard @@ -4449,7 +4449,7 @@ __metadata: "@babel/preset-env": "npm:7.23.8" babel-loader: "npm:9.1.3" clean-webpack-plugin: "npm:4.0.0" - css-loader: "npm:6.8.1" + css-loader: "npm:6.9.0" css-minimizer-webpack-plugin: "npm:5.0.1" eslint: "npm:8.56.0" eslint-config-prettier: "npm:9.1.0" @@ -5781,14 +5781,14 @@ __metadata: languageName: node linkType: hard -"postcss-modules-scope@npm:^3.0.0": - version: 3.0.0 - resolution: "postcss-modules-scope@npm:3.0.0" +"postcss-modules-scope@npm:^3.1.0": + version: 3.1.0 + resolution: "postcss-modules-scope@npm:3.1.0" dependencies: postcss-selector-parser: "npm:^6.0.4" peerDependencies: postcss: ^8.1.0 - checksum: 60af503910363689568c2c3701cb019a61b58b3d739391145185eec211bea5d50ccb6ecbe6955b39d856088072fd50ea002e40a52b50e33b181ff5c41da0308a + checksum: bc8e12e9312d7070f34ccef2929f65154102e2b2984a385eaf2ef25b6d4e22234de71116c240a05b541a79946b717d6fa8c5d314f6697bf05f295261693050fe languageName: node linkType: hard @@ -6154,7 +6154,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:8.4.33, postcss@npm:^8.4.21, postcss@npm:^8.4.24, postcss@npm:^8.4.32": +"postcss@npm:8.4.33, postcss@npm:^8.4.24, postcss@npm:^8.4.31, postcss@npm:^8.4.32": version: 8.4.33 resolution: "postcss@npm:8.4.33" dependencies: @@ -6511,7 +6511,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.3.5, semver@npm:^7.3.8, semver@npm:^7.5.4": +"semver@npm:^7.3.5, semver@npm:^7.5.4": version: 7.5.4 resolution: "semver@npm:7.5.4" dependencies: From d36cf82d91b7a58fa6e1150ad5da90791beed339 Mon Sep 17 00:00:00 2001 From: Mark Waite Date: Fri, 12 Jan 2024 20:00:55 -0700 Subject: [PATCH 0169/1216] Rely on parent pom spotbugs configuration (#8855) Rely on spotbugs configuration from parent pom Removes the 81c3249ca0e6bcc69e1caa2e6828ec6c8c0884cd workaround that was added in pull request https://github.com/jenkinsci/jenkins/pull/8803 --- pom.xml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pom.xml b/pom.xml index 40678b5f2953..979c049535ce 100644 --- a/pom.xml +++ b/pom.xml @@ -90,11 +90,7 @@ THE SOFTWARE. 4.13 - - - 4.8.2.0 Max - FindReturnRef,ConstructorThrow Medium 1.33 From 6f6d99af8426c1c5878a210eb38836c7b41c3363 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 12 Jan 2024 20:36:35 -0700 Subject: [PATCH 0170/1216] Update dependency lit to v3.1.1 (#8863) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- core/src/site/site.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/site/site.xml b/core/src/site/site.xml index 76faf2e946cc..b8bbef941204 100644 --- a/core/src/site/site.xml +++ b/core/src/site/site.xml @@ -6,7 +6,7 @@ + From faf22cdb401bea57f48c45f2e62239c41e068c37 Mon Sep 17 00:00:00 2001 From: Alexander Brandes Date: Sat, 13 Jan 2024 16:09:22 +0100 Subject: [PATCH 0171/1216] Remove unused material-icons (#8831) * Update the icon path in SvgIconTest * Remove unused material-icons --- .../lib/layout/SvgIconTest/TestRootAction/index.jelly | 2 +- war/src/main/webapp/images/material-icons/computer-24px.svg | 1 - war/src/main/webapp/images/material-icons/edit.svg | 6 ------ war/src/main/webapp/images/material-icons/feed.svg | 6 ------ war/src/main/webapp/images/material-icons/rss_feed-24px.svg | 6 ------ .../images/material-icons/svg-sprite-action-symbol.svg | 1 - .../images/material-icons/svg-sprite-content-symbol.svg | 1 - .../images/material-icons/svg-sprite-navigation-symbol.svg | 1 - .../images/material-icons/svg-sprite-social-symbol.svg | 1 - .../webapp/images/material-icons/view_headline-24px.svg | 1 - 10 files changed, 1 insertion(+), 25 deletions(-) delete mode 100644 war/src/main/webapp/images/material-icons/computer-24px.svg delete mode 100644 war/src/main/webapp/images/material-icons/edit.svg delete mode 100644 war/src/main/webapp/images/material-icons/feed.svg delete mode 100644 war/src/main/webapp/images/material-icons/rss_feed-24px.svg delete mode 100644 war/src/main/webapp/images/material-icons/svg-sprite-action-symbol.svg delete mode 100644 war/src/main/webapp/images/material-icons/svg-sprite-content-symbol.svg delete mode 100644 war/src/main/webapp/images/material-icons/svg-sprite-navigation-symbol.svg delete mode 100644 war/src/main/webapp/images/material-icons/svg-sprite-social-symbol.svg delete mode 100644 war/src/main/webapp/images/material-icons/view_headline-24px.svg diff --git a/test/src/test/resources/lib/layout/SvgIconTest/TestRootAction/index.jelly b/test/src/test/resources/lib/layout/SvgIconTest/TestRootAction/index.jelly index 40d7b5b19c1e..163a2059b285 100644 --- a/test/src/test/resources/lib/layout/SvgIconTest/TestRootAction/index.jelly +++ b/test/src/test/resources/lib/layout/SvgIconTest/TestRootAction/index.jelly @@ -26,7 +26,7 @@ THE SOFTWARE.
- +
diff --git a/war/src/main/webapp/images/material-icons/computer-24px.svg b/war/src/main/webapp/images/material-icons/computer-24px.svg deleted file mode 100644 index ea9e5a0b7706..000000000000 --- a/war/src/main/webapp/images/material-icons/computer-24px.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/war/src/main/webapp/images/material-icons/edit.svg b/war/src/main/webapp/images/material-icons/edit.svg deleted file mode 100644 index 62889329055d..000000000000 --- a/war/src/main/webapp/images/material-icons/edit.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/war/src/main/webapp/images/material-icons/feed.svg b/war/src/main/webapp/images/material-icons/feed.svg deleted file mode 100644 index 42d72645a1d9..000000000000 --- a/war/src/main/webapp/images/material-icons/feed.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/war/src/main/webapp/images/material-icons/rss_feed-24px.svg b/war/src/main/webapp/images/material-icons/rss_feed-24px.svg deleted file mode 100644 index ab35422ed1e3..000000000000 --- a/war/src/main/webapp/images/material-icons/rss_feed-24px.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - diff --git a/war/src/main/webapp/images/material-icons/svg-sprite-action-symbol.svg b/war/src/main/webapp/images/material-icons/svg-sprite-action-symbol.svg deleted file mode 100644 index 84951eec8da6..000000000000 --- a/war/src/main/webapp/images/material-icons/svg-sprite-action-symbol.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/war/src/main/webapp/images/material-icons/svg-sprite-content-symbol.svg b/war/src/main/webapp/images/material-icons/svg-sprite-content-symbol.svg deleted file mode 100644 index 17bb4c67f8f8..000000000000 --- a/war/src/main/webapp/images/material-icons/svg-sprite-content-symbol.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/war/src/main/webapp/images/material-icons/svg-sprite-navigation-symbol.svg b/war/src/main/webapp/images/material-icons/svg-sprite-navigation-symbol.svg deleted file mode 100644 index 5e3fbefe1059..000000000000 --- a/war/src/main/webapp/images/material-icons/svg-sprite-navigation-symbol.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/war/src/main/webapp/images/material-icons/svg-sprite-social-symbol.svg b/war/src/main/webapp/images/material-icons/svg-sprite-social-symbol.svg deleted file mode 100644 index d9f371db0de7..000000000000 --- a/war/src/main/webapp/images/material-icons/svg-sprite-social-symbol.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/war/src/main/webapp/images/material-icons/view_headline-24px.svg b/war/src/main/webapp/images/material-icons/view_headline-24px.svg deleted file mode 100644 index 4d753fa0b345..000000000000 --- a/war/src/main/webapp/images/material-icons/view_headline-24px.svg +++ /dev/null @@ -1 +0,0 @@ - From 48661db9d1dad55af5300d3783b2834a7b15c41f Mon Sep 17 00:00:00 2001 From: Daniel Beck <1831569+daniel-beck@users.noreply.github.com> Date: Sat, 13 Jan 2024 16:09:33 +0100 Subject: [PATCH 0172/1216] [JENKINS-72543] Fix permission check in script console view (#8858) Co-authored-by: Daniel Beck Co-authored-by: Alexander Brandes --- core/src/main/resources/lib/hudson/scriptConsole.jelly | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/resources/lib/hudson/scriptConsole.jelly b/core/src/main/resources/lib/hudson/scriptConsole.jelly index f6d21d6fcda9..89998ca88001 100644 --- a/core/src/main/resources/lib/hudson/scriptConsole.jelly +++ b/core/src/main/resources/lib/hudson/scriptConsole.jelly @@ -27,7 +27,7 @@ THE SOFTWARE. --> - + From 72eb26a63b6af8d99c26194608f7bae809c398ff Mon Sep 17 00:00:00 2001 From: Mark Waite Date: Sun, 14 Jan 2024 07:17:49 -0700 Subject: [PATCH 0173/1216] Update operating system end of life data (#8864) Add end of life data for several more Linux releases Adds data for: * Alpine Linux 3.19 * Amazon Linux 2 (already end of life for Jenkins) * Amazon Linux 2023 * Fedora 39 Includes test data for more Linux operating systems that were already included in the end of life data. --- .../OperatingSystemEndOfLifeAdminMonitor.java | 6 +- .../end-of-life-data.json | 74 +++++++++++------- ...ratingSystemEndOfLifeAdminMonitorTest.java | 77 ++++++++++++------- .../jenkins/monitor/os-release-alma-9 | 18 +++++ .../jenkins/monitor/os-release-alpine-3.19 | 6 ++ .../jenkins/monitor/os-release-amazon-linux-2 | 10 +++ .../monitor/os-release-amazon-linux-2023 | 12 +++ .../jenkins/monitor/os-release-centos-8 | 13 ++++ .../jenkins/monitor/os-release-debian-11 | 9 +++ .../jenkins/monitor/os-release-debian-12 | 9 +++ .../jenkins/monitor/os-release-fedora-38 | 22 ++++++ .../jenkins/monitor/os-release-fedora-39 | 22 ++++++ .../jenkins/monitor/os-release-ubuntu-20.04 | 12 +++ .../jenkins/monitor/os-release-ubuntu-22.04 | 12 +++ 14 files changed, 245 insertions(+), 57 deletions(-) create mode 100644 core/src/test/resources/jenkins/monitor/os-release-alma-9 create mode 100644 core/src/test/resources/jenkins/monitor/os-release-alpine-3.19 create mode 100644 core/src/test/resources/jenkins/monitor/os-release-amazon-linux-2 create mode 100644 core/src/test/resources/jenkins/monitor/os-release-amazon-linux-2023 create mode 100644 core/src/test/resources/jenkins/monitor/os-release-centos-8 create mode 100644 core/src/test/resources/jenkins/monitor/os-release-debian-11 create mode 100644 core/src/test/resources/jenkins/monitor/os-release-debian-12 create mode 100644 core/src/test/resources/jenkins/monitor/os-release-fedora-38 create mode 100644 core/src/test/resources/jenkins/monitor/os-release-fedora-39 create mode 100644 core/src/test/resources/jenkins/monitor/os-release-ubuntu-20.04 create mode 100644 core/src/test/resources/jenkins/monitor/os-release-ubuntu-22.04 diff --git a/core/src/main/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitor.java b/core/src/main/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitor.java index df93685debcd..0ff40d018225 100644 --- a/core/src/main/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitor.java +++ b/core/src/main/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitor.java @@ -184,7 +184,7 @@ String readOperatingSystemName(File dataFile, @NonNull String patternStr) { if (dataFile == null || !dataFile.exists()) { return ""; } - Pattern pattern = Pattern.compile("^PRETTY_NAME=[\"](" + patternStr + ".*)[\"]"); + Pattern pattern = Pattern.compile("^PRETTY_NAME=[\"](" + patternStr + ")[\"]"); String name = ""; try { List lines = dataFile.equals(lastDataFile) ? lastLines : Files.readAllLines(dataFile.toPath()); @@ -229,8 +229,8 @@ String readDocumentationUrl(File dataFile, @NonNull String patternStr) { if (dataFile == null || !dataFile.exists()) { return ""; } - String operatingSystemName = readOperatingSystemName(dataFile, patternStr); - return buildDocumentationUrl(operatingSystemName); + String name = readOperatingSystemName(dataFile, patternStr); + return buildDocumentationUrl(name); } private String buildDocumentationUrl(String operatingSystemName) { diff --git a/core/src/main/resources/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitor/end-of-life-data.json b/core/src/main/resources/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitor/end-of-life-data.json index 3cbdde6bc8bd..e3df71741554 100644 --- a/core/src/main/resources/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitor/end-of-life-data.json +++ b/core/src/main/resources/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitor/end-of-life-data.json @@ -1,10 +1,10 @@ [ { - "pattern": "AlmaLinux.* 8", + "pattern": "AlmaLinux.* 8.*", "endOfLife": "2029-03-31" }, { - "pattern": "AlmaLinux.* 9", + "pattern": "AlmaLinux.* 9.*", "endOfLife": "2032-05-31" }, { @@ -28,111 +28,129 @@ "endOfLife": "2025-05-01" }, { - "pattern": "CentOS Linux.* 7", + "pattern": "Alpine Linux v3.19", + "endOfLife": "2025-11-01" + }, + { + "pattern": "Amazon Linux 2", + "start": "2023-05-01", + "endOfLife": "2023-11-16" + }, + { + "pattern": "Amazon Linux 2023", + "start": "2027-09-15", + "endOfLife": "2028-03-15" + }, + { + "pattern": "CentOS Linux.* 7.*", "start": "2023-05-01", "endOfLife": "2023-11-16" }, { - "pattern": "CentOS Linux.* 8", + "pattern": "CentOS Linux.* 8.*", "endOfLife": "2029-03-31" }, { - "pattern": "Debian.* 10", + "pattern": "Debian.* 10.*", "endOfLife": "2024-06-30" }, { - "pattern": "Debian.* 11", + "pattern": "Debian.* 11.*", "endOfLife": "2026-06-30" }, { - "pattern": "Debian.* 12", + "pattern": "Debian.* 12.*", "endOfLife": "2028-06-30" }, { - "pattern": "Fedora.* 36", + "pattern": "Fedora.* 36.*", "endOfLife": "2023-05-18" }, { - "pattern": "Fedora.* 37", + "pattern": "Fedora.* 37.*", "endOfLife": "2023-12-15" }, { - "pattern": "Fedora.* 38", + "pattern": "Fedora.* 38.*", "endOfLife": "2024-05-18" }, { - "pattern": "Oracle Linux.* 7", + "pattern": "Fedora.* 39.*", + "endOfLife": "2024-12-07" + }, + { + "pattern": "Oracle Linux.* 7.*", "start": "2023-05-01", "endOfLife": "2023-11-16" }, { - "pattern": "Oracle Linux.* 8", + "pattern": "Oracle Linux.* 8.*", "endOfLife": "2029-03-31" }, { - "pattern": "Oracle Linux.* 9", + "pattern": "Oracle Linux.* 9.*", "endOfLife": "2034-06-30" }, { - "pattern": "Red Hat Enterprise Linux.* 7", + "pattern": "Red Hat Enterprise Linux.* 7.*", "start": "2023-05-01", "endOfLife": "2023-11-16" }, { - "pattern": "Red Hat Enterprise Linux.* 8", + "pattern": "Red Hat Enterprise Linux.* 8.*", "endOfLife": "2029-03-31" }, { - "pattern": "Red Hat Enterprise Linux.* 9", + "pattern": "Red Hat Enterprise Linux.* 9.*", "endOfLife": "2032-05-31" }, { - "pattern": "Rocky Linux.* 8", + "pattern": "Rocky Linux.* 8.*", "endOfLife": "2029-03-31" }, { - "pattern": "Rocky Linux.* 9", + "pattern": "Rocky Linux.* 9.*", "endOfLife": "2032-05-31" }, { - "pattern": "Scientific Linux.* 7", + "pattern": "Scientific Linux.* 7.*", "start": "2023-05-01", "endOfLife": "2023-11-16" }, { - "pattern": "Ubuntu.* 16.04", + "pattern": "Ubuntu.* 16.04.*", "endOfLife": "2021-04-02" }, { - "pattern": "Ubuntu.* 18.04", + "pattern": "Ubuntu.* 18.04.*", "endOfLife": "2023-05-31" }, { - "pattern": "Ubuntu.* 20.04", + "pattern": "Ubuntu.* 20.04.*", "endOfLife": "2025-04-02" }, { - "pattern": "Ubuntu.* 20.10", + "pattern": "Ubuntu.* 20.10.*", "endOfLife": "2021-07-22" }, { - "pattern": "Ubuntu.* 21.04", + "pattern": "Ubuntu.* 21.04.*", "endOfLife": "2022-01-20" }, { - "pattern": "Ubuntu.* 21.10", + "pattern": "Ubuntu.* 21.10.*", "endOfLife": "2022-07-14" }, { - "pattern": "Ubuntu.* 22.04", + "pattern": "Ubuntu.* 22.04.*", "endOfLife": "2027-04-01" }, { - "pattern": "Ubuntu.* 22.10", + "pattern": "Ubuntu.* 22.10.*", "endOfLife": "2023-07-20" }, { - "pattern": "Ubuntu.* 23.04", + "pattern": "Ubuntu.* 23.04.*", "endOfLife": "2024-01-20" } ] diff --git a/core/src/test/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitorTest.java b/core/src/test/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitorTest.java index 2977254c5717..5cd09790cdd9 100644 --- a/core/src/test/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitorTest.java +++ b/core/src/test/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitorTest.java @@ -30,9 +30,11 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertThrows; +import static org.junit.Assert.assertTrue; import java.io.File; import java.io.IOException; +import java.net.URL; import java.util.Random; import java.util.stream.Stream; import org.junit.Test; @@ -111,30 +113,43 @@ private String docsUrl(String component) { private static Stream testReadDocumentationUrls() { return Stream.of( - Arguments.of("os-release-alma-8", "AlmaLinux.* 8", "AlmaLinux-8.7-Stone-Smilodon"), + Arguments.of("os-release-alma-8", "AlmaLinux.* 8.*", "AlmaLinux-8.7-Stone-Smilodon"), + Arguments.of("os-release-alma-9", "AlmaLinux.* 9.*", "AlmaLinux-9.3-Shamrock-Pampas-Cat"), Arguments.of("os-release-alpine-3.14", "Alpine Linux v3.14", "Alpine-Linux-v3.14"), Arguments.of("os-release-alpine-3.15", "Alpine Linux v3.15", "Alpine-Linux-v3.15"), Arguments.of("os-release-alpine-3.16", "Alpine Linux v3.16", "Alpine-Linux-v3.16"), Arguments.of("os-release-alpine-3.17", "Alpine Linux v3.17", "Alpine-Linux-v3.17"), Arguments.of("os-release-alpine-3.18", "Alpine Linux v3.18", "Alpine-Linux-v3.18"), - Arguments.of("os-release-centos-7", "CentOS Linux.* 7", "CentOS-Linux-7-Core"), - Arguments.of("os-release-debian-10", "Debian.* 10", "Debian-GNU-Linux-10-buster"), - Arguments.of("os-release-fedora-36", "Fedora.* 36", "Fedora-Linux-36-Container-Image"), - Arguments.of("os-release-fedora-37", "Fedora.* 37", "Fedora-Linux-37-Container-Image"), - Arguments.of("os-release-oracle-7", "Oracle Linux.* 7", "Oracle-Linux-Server-7.9"), - Arguments.of("os-release-oracle-8", "Oracle Linux.* 8", "Oracle-Linux-Server-8.7"), - Arguments.of("os-release-redhat-7", "Red Hat Enterprise Linux.* 7", "Red-Hat-Enterprise-Linux-Server-7.9-Maipo"), - Arguments.of("os-release-redhat-8", "Red Hat Enterprise Linux.* 8", "Red-Hat-Enterprise-Linux-8.8-Ootpa"), - Arguments.of("os-release-rocky-8", "Rocky Linux.* 8", "Rocky-Linux-8.7-Green-Obsidian"), - Arguments.of("os-release-scientific-7", "Scientific Linux.* 7", "Scientific-Linux-7.9-Nitrogen"), - Arguments.of("os-release-ubuntu-18.04", "Ubuntu.* 18", "Ubuntu-18.04.6-LTS") + Arguments.of("os-release-alpine-3.19", "Alpine Linux v3.19", "Alpine-Linux-v3.19"), + Arguments.of("os-release-amazon-linux-2", "Amazon Linux 2", "Amazon-Linux-2"), + Arguments.of("os-release-amazon-linux-2023", "Amazon Linux 2023", "Amazon-Linux-2023"), + Arguments.of("os-release-centos-7", "CentOS Linux.* 7.*", "CentOS-Linux-7-Core"), + Arguments.of("os-release-centos-8", "CentOS Linux.* 8.*", "CentOS-Linux-8"), + Arguments.of("os-release-debian-10", "Debian.* 10.*", "Debian-GNU-Linux-10-buster"), + Arguments.of("os-release-debian-11", "Debian.* 11.*", "Debian-GNU-Linux-11-bullseye"), + Arguments.of("os-release-debian-12", "Debian.* 12.*", "Debian-GNU-Linux-12-bookworm"), + Arguments.of("os-release-fedora-36", "Fedora.* 36.*", "Fedora-Linux-36-Container-Image"), + Arguments.of("os-release-fedora-37", "Fedora.* 37.*", "Fedora-Linux-37-Container-Image"), + Arguments.of("os-release-fedora-38", "Fedora.* 38.*", "Fedora-Linux-38-Container-Image"), + Arguments.of("os-release-fedora-39", "Fedora.* 39.*", "Fedora-Linux-39-Container-Image"), + Arguments.of("os-release-oracle-7", "Oracle Linux.* 7.*", "Oracle-Linux-Server-7.9"), + Arguments.of("os-release-oracle-8", "Oracle Linux.* 8.*", "Oracle-Linux-Server-8.7"), + Arguments.of("os-release-redhat-7", "Red Hat Enterprise Linux.* 7.*", "Red-Hat-Enterprise-Linux-Server-7.9-Maipo"), + Arguments.of("os-release-redhat-8", "Red Hat Enterprise Linux.* 8.*", "Red-Hat-Enterprise-Linux-8.8-Ootpa"), + Arguments.of("os-release-rocky-8", "Rocky Linux.* 8.*", "Rocky-Linux-8.7-Green-Obsidian"), + Arguments.of("os-release-scientific-7", "Scientific Linux.* 7.*", "Scientific-Linux-7.9-Nitrogen"), + Arguments.of("os-release-ubuntu-18.04", "Ubuntu.* 18.*", "Ubuntu-18.04.6-LTS"), + Arguments.of("os-release-ubuntu-20.04", "Ubuntu.* 20.*", "Ubuntu-20.04.6-LTS"), + Arguments.of("os-release-ubuntu-22.04", "Ubuntu.* 22.*", "Ubuntu-22.04.3-LTS") ); } @ParameterizedTest @MethodSource public void testReadDocumentationUrls(String fileName, String pattern, String component) throws Exception { - File releaseFile = new File(this.getClass().getResource(fileName).toURI()); + URL fileUrl = this.getClass().getResource(fileName); + assertTrue("Resource file '" + fileName + "' not found", fileUrl != null); + File releaseFile = new File(fileUrl.toURI()); assertThat(monitor.readDocumentationUrl(releaseFile, pattern), is(docsUrl(component))); } @@ -158,30 +173,40 @@ public void testReadOperatingSystemListNoPattern() { private static Stream testReadOperatingSystemNames() { return Stream.of( - Arguments.of("os-release-alma-8", "AlmaLinux.* 8", "AlmaLinux 8.7 (Stone Smilodon)"), + Arguments.of("os-release-alma-8", "AlmaLinux.* 8.*", "AlmaLinux 8.7 (Stone Smilodon)"), + Arguments.of("os-release-alma-9", "AlmaLinux.* 9.*", "AlmaLinux 9.3 (Shamrock Pampas Cat)"), Arguments.of("os-release-alpine-3.14", "Alpine Linux v3.14", "Alpine Linux v3.14"), Arguments.of("os-release-alpine-3.15", "Alpine Linux v3.15", "Alpine Linux v3.15"), Arguments.of("os-release-alpine-3.16", "Alpine Linux v3.16", "Alpine Linux v3.16"), Arguments.of("os-release-alpine-3.17", "Alpine Linux v3.17", "Alpine Linux v3.17"), Arguments.of("os-release-alpine-3.18", "Alpine Linux v3.18", "Alpine Linux v3.18"), - Arguments.of("os-release-centos-7", "CentOS Linux.* 7", "CentOS Linux 7 (Core)"), - Arguments.of("os-release-debian-10", "Debian.* 10", "Debian GNU/Linux 10 (buster)"), - Arguments.of("os-release-fedora-36", "Fedora.* 36", "Fedora Linux 36 (Container Image)"), - Arguments.of("os-release-fedora-37", "Fedora.* 37", "Fedora Linux 37 (Container Image)"), - Arguments.of("os-release-oracle-7", "Oracle Linux.* 7", "Oracle Linux Server 7.9"), - Arguments.of("os-release-oracle-8", "Oracle Linux.* 8", "Oracle Linux Server 8.7"), - Arguments.of("os-release-redhat-7", "Red Hat Enterprise Linux.* 7", "Red Hat Enterprise Linux Server 7.9 (Maipo)"), - Arguments.of("os-release-redhat-8", "Red Hat Enterprise Linux.* 8", "Red Hat Enterprise Linux 8.8 (Ootpa)"), - Arguments.of("os-release-rocky-8", "Rocky Linux.* 8", "Rocky Linux 8.7 (Green Obsidian)"), - Arguments.of("os-release-scientific-7", "Scientific Linux.* 7", "Scientific Linux 7.9 (Nitrogen)"), - Arguments.of("os-release-ubuntu-18.04", "Ubuntu.* 18", "Ubuntu 18.04.6 LTS") + Arguments.of("os-release-alpine-3.19", "Alpine Linux v3.19", "Alpine Linux v3.19"), + Arguments.of("os-release-amazon-linux-2", "Amazon Linux 2", "Amazon Linux 2"), + Arguments.of("os-release-amazon-linux-2023", "Amazon Linux 2023", "Amazon Linux 2023"), + Arguments.of("os-release-centos-7", "CentOS Linux.* 7.*", "CentOS Linux 7 (Core)"), + Arguments.of("os-release-debian-10", "Debian.* 10.*", "Debian GNU/Linux 10 (buster)"), + Arguments.of("os-release-debian-11", "Debian.* 11.*", "Debian GNU/Linux 11 (bullseye)"), + Arguments.of("os-release-debian-12", "Debian.* 12.*", "Debian GNU/Linux 12 (bookworm)"), + Arguments.of("os-release-fedora-36", "Fedora.* 36.*", "Fedora Linux 36 (Container Image)"), + Arguments.of("os-release-fedora-37", "Fedora.* 37.*", "Fedora Linux 37 (Container Image)"), + Arguments.of("os-release-oracle-7", "Oracle Linux.* 7.*", "Oracle Linux Server 7.9"), + Arguments.of("os-release-oracle-8", "Oracle Linux.* 8.*", "Oracle Linux Server 8.7"), + Arguments.of("os-release-redhat-7", "Red Hat Enterprise Linux.* 7.*", "Red Hat Enterprise Linux Server 7.9 (Maipo)"), + Arguments.of("os-release-redhat-8", "Red Hat Enterprise Linux.* 8.*", "Red Hat Enterprise Linux 8.8 (Ootpa)"), + Arguments.of("os-release-rocky-8", "Rocky Linux.* 8.*", "Rocky Linux 8.7 (Green Obsidian)"), + Arguments.of("os-release-scientific-7", "Scientific Linux.* 7.*", "Scientific Linux 7.9 (Nitrogen)"), + Arguments.of("os-release-ubuntu-18.04", "Ubuntu.* 18.*", "Ubuntu 18.04.6 LTS"), + Arguments.of("os-release-ubuntu-20.04", "Ubuntu.* 20.*", "Ubuntu 20.04.6 LTS"), + Arguments.of("os-release-ubuntu-22.04", "Ubuntu.* 22.*", "Ubuntu 22.04.3 LTS") ); } @ParameterizedTest @MethodSource public void testReadOperatingSystemNames(String fileName, String pattern, String job) throws Exception { - File releaseFile = new File(this.getClass().getResource(fileName).toURI()); + URL fileUrl = this.getClass().getResource(fileName); + assertTrue("Resource file '" + fileName + "' not found", fileUrl != null); + File releaseFile = new File(fileUrl.toURI()); assertThat(monitor.readOperatingSystemName(releaseFile, pattern), is(job)); } diff --git a/core/src/test/resources/jenkins/monitor/os-release-alma-9 b/core/src/test/resources/jenkins/monitor/os-release-alma-9 new file mode 100644 index 000000000000..d7c856620e81 --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-alma-9 @@ -0,0 +1,18 @@ +NAME="AlmaLinux" +VERSION="9.3 (Shamrock Pampas Cat)" +ID="almalinux" +ID_LIKE="rhel centos fedora" +VERSION_ID="9.3" +PLATFORM_ID="platform:el9" +PRETTY_NAME="AlmaLinux 9.3 (Shamrock Pampas Cat)" +ANSI_COLOR="0;34" +LOGO="fedora-logo-icon" +CPE_NAME="cpe:/o:almalinux:almalinux:9::baseos" +HOME_URL="https://almalinux.org/" +DOCUMENTATION_URL="https://wiki.almalinux.org/" +BUG_REPORT_URL="https://bugs.almalinux.org/" + +ALMALINUX_MANTISBT_PROJECT="AlmaLinux-9" +ALMALINUX_MANTISBT_PROJECT_VERSION="9.3" +REDHAT_SUPPORT_PRODUCT="AlmaLinux" +REDHAT_SUPPORT_PRODUCT_VERSION="9.3" diff --git a/core/src/test/resources/jenkins/monitor/os-release-alpine-3.19 b/core/src/test/resources/jenkins/monitor/os-release-alpine-3.19 new file mode 100644 index 000000000000..0c1a379f5fcf --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-alpine-3.19 @@ -0,0 +1,6 @@ +NAME="Alpine Linux" +ID=alpine +VERSION_ID=3.19.0 +PRETTY_NAME="Alpine Linux v3.19" +HOME_URL="https://alpinelinux.org/" +BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues" diff --git a/core/src/test/resources/jenkins/monitor/os-release-amazon-linux-2 b/core/src/test/resources/jenkins/monitor/os-release-amazon-linux-2 new file mode 100644 index 000000000000..7219f8668bb6 --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-amazon-linux-2 @@ -0,0 +1,10 @@ +NAME="Amazon Linux" +VERSION="2" +ID="amzn" +ID_LIKE="centos rhel fedora" +VERSION_ID="2" +PRETTY_NAME="Amazon Linux 2" +ANSI_COLOR="0;33" +CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2" +HOME_URL="https://amazonlinux.com/" +SUPPORT_END="2025-06-30" diff --git a/core/src/test/resources/jenkins/monitor/os-release-amazon-linux-2023 b/core/src/test/resources/jenkins/monitor/os-release-amazon-linux-2023 new file mode 100644 index 000000000000..97bdcb48a04a --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-amazon-linux-2023 @@ -0,0 +1,12 @@ +NAME="Amazon Linux" +VERSION="2023" +ID="amzn" +ID_LIKE="fedora" +VERSION_ID="2023" +PLATFORM_ID="platform:al2023" +PRETTY_NAME="Amazon Linux 2023" +ANSI_COLOR="0;33" +CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2023" +HOME_URL="https://aws.amazon.com/linux/" +BUG_REPORT_URL="https://github.com/amazonlinux/amazon-linux-2023" +SUPPORT_END="2028-03-15" diff --git a/core/src/test/resources/jenkins/monitor/os-release-centos-8 b/core/src/test/resources/jenkins/monitor/os-release-centos-8 new file mode 100644 index 000000000000..8e89cd340c13 --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-centos-8 @@ -0,0 +1,13 @@ +NAME="CentOS Linux" +VERSION="8" +ID="centos" +ID_LIKE="rhel fedora" +VERSION_ID="8" +PLATFORM_ID="platform:el8" +PRETTY_NAME="CentOS Linux 8" +ANSI_COLOR="0;31" +CPE_NAME="cpe:/o:centos:centos:8" +HOME_URL="https://centos.org/" +BUG_REPORT_URL="https://bugs.centos.org/" +CENTOS_MANTISBT_PROJECT="CentOS-8" +CENTOS_MANTISBT_PROJECT_VERSION="8" diff --git a/core/src/test/resources/jenkins/monitor/os-release-debian-11 b/core/src/test/resources/jenkins/monitor/os-release-debian-11 new file mode 100644 index 000000000000..611cf746b10e --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-debian-11 @@ -0,0 +1,9 @@ +PRETTY_NAME="Debian GNU/Linux 11 (bullseye)" +NAME="Debian GNU/Linux" +VERSION_ID="11" +VERSION="11 (bullseye)" +VERSION_CODENAME=bullseye +ID=debian +HOME_URL="https://www.debian.org/" +SUPPORT_URL="https://www.debian.org/support" +BUG_REPORT_URL="https://bugs.debian.org/" diff --git a/core/src/test/resources/jenkins/monitor/os-release-debian-12 b/core/src/test/resources/jenkins/monitor/os-release-debian-12 new file mode 100644 index 000000000000..3320862178e5 --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-debian-12 @@ -0,0 +1,9 @@ +PRETTY_NAME="Debian GNU/Linux 12 (bookworm)" +NAME="Debian GNU/Linux" +VERSION_ID="12" +VERSION="12 (bookworm)" +VERSION_CODENAME=bookworm +ID=debian +HOME_URL="https://www.debian.org/" +SUPPORT_URL="https://www.debian.org/support" +BUG_REPORT_URL="https://bugs.debian.org/" diff --git a/core/src/test/resources/jenkins/monitor/os-release-fedora-38 b/core/src/test/resources/jenkins/monitor/os-release-fedora-38 new file mode 100644 index 000000000000..438828f572f0 --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-fedora-38 @@ -0,0 +1,22 @@ +NAME="Fedora Linux" +VERSION="38 (Container Image)" +ID=fedora +VERSION_ID=38 +VERSION_CODENAME="" +PLATFORM_ID="platform:f38" +PRETTY_NAME="Fedora Linux 38 (Container Image)" +ANSI_COLOR="0;38;2;60;110;180" +LOGO=fedora-logo-icon +CPE_NAME="cpe:/o:fedoraproject:fedora:38" +DEFAULT_HOSTNAME="fedora" +HOME_URL="https://fedoraproject.org/" +DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f38/system-administrators-guide/" +SUPPORT_URL="https://ask.fedoraproject.org/" +BUG_REPORT_URL="https://bugzilla.redhat.com/" +REDHAT_BUGZILLA_PRODUCT="Fedora" +REDHAT_BUGZILLA_PRODUCT_VERSION=38 +REDHAT_SUPPORT_PRODUCT="Fedora" +REDHAT_SUPPORT_PRODUCT_VERSION=38 +SUPPORT_END=2024-05-14 +VARIANT="Container Image" +VARIANT_ID=container diff --git a/core/src/test/resources/jenkins/monitor/os-release-fedora-39 b/core/src/test/resources/jenkins/monitor/os-release-fedora-39 new file mode 100644 index 000000000000..26c8fbaf0423 --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-fedora-39 @@ -0,0 +1,22 @@ +NAME="Fedora Linux" +VERSION="39 (Container Image)" +ID=fedora +VERSION_ID=39 +VERSION_CODENAME="" +PLATFORM_ID="platform:f39" +PRETTY_NAME="Fedora Linux 39 (Container Image)" +ANSI_COLOR="0;38;2;60;110;180" +LOGO=fedora-logo-icon +CPE_NAME="cpe:/o:fedoraproject:fedora:39" +DEFAULT_HOSTNAME="fedora" +HOME_URL="https://fedoraproject.org/" +DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f39/system-administrators-guide/" +SUPPORT_URL="https://ask.fedoraproject.org/" +BUG_REPORT_URL="https://bugzilla.redhat.com/" +REDHAT_BUGZILLA_PRODUCT="Fedora" +REDHAT_BUGZILLA_PRODUCT_VERSION=39 +REDHAT_SUPPORT_PRODUCT="Fedora" +REDHAT_SUPPORT_PRODUCT_VERSION=39 +SUPPORT_END=2024-05-14 +VARIANT="Container Image" +VARIANT_ID=container diff --git a/core/src/test/resources/jenkins/monitor/os-release-ubuntu-20.04 b/core/src/test/resources/jenkins/monitor/os-release-ubuntu-20.04 new file mode 100644 index 000000000000..5e42801c6c24 --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-ubuntu-20.04 @@ -0,0 +1,12 @@ +NAME="Ubuntu" +VERSION="20.04.6 LTS (Focal Fossa)" +ID=ubuntu +ID_LIKE=debian +PRETTY_NAME="Ubuntu 20.04.6 LTS" +VERSION_ID="20.04" +HOME_URL="https://www.ubuntu.com/" +SUPPORT_URL="https://help.ubuntu.com/" +BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" +PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" +VERSION_CODENAME=focal +UBUNTU_CODENAME=focal diff --git a/core/src/test/resources/jenkins/monitor/os-release-ubuntu-22.04 b/core/src/test/resources/jenkins/monitor/os-release-ubuntu-22.04 new file mode 100644 index 000000000000..39240aa54b81 --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-ubuntu-22.04 @@ -0,0 +1,12 @@ +PRETTY_NAME="Ubuntu 22.04.3 LTS" +NAME="Ubuntu" +VERSION_ID="22.04" +VERSION="22.04.3 LTS (Jammy Jellyfish)" +VERSION_CODENAME=jammy +ID=ubuntu +ID_LIKE=debian +HOME_URL="https://www.ubuntu.com/" +SUPPORT_URL="https://help.ubuntu.com/" +BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" +PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" +UBUNTU_CODENAME=jammy From 7a93bc5c9da4db554531195c37e9dad8415280c0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 16:13:45 +0100 Subject: [PATCH 0174/1216] Update dependency mini-css-extract-plugin to v2.7.7 (#8865) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/war/package.json b/war/package.json index f0afba81ba0a..e583be5f71e0 100644 --- a/war/package.json +++ b/war/package.json @@ -33,7 +33,7 @@ "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", "handlebars-loader": "1.7.3", - "mini-css-extract-plugin": "2.7.6", + "mini-css-extract-plugin": "2.7.7", "postcss": "8.4.33", "postcss-loader": "7.3.4", "postcss-preset-env": "9.3.0", diff --git a/war/yarn.lock b/war/yarn.lock index e354e8bdc364..6a6da7309282 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -4458,7 +4458,7 @@ __metadata: hotkeys-js: "npm:3.12.2" jquery: "npm:3.7.1" lodash: "npm:4.17.21" - mini-css-extract-plugin: "npm:2.7.6" + mini-css-extract-plugin: "npm:2.7.7" postcss: "npm:8.4.33" postcss-loader: "npm:7.3.4" postcss-preset-env: "npm:9.3.0" @@ -4903,14 +4903,14 @@ __metadata: languageName: node linkType: hard -"mini-css-extract-plugin@npm:2.7.6": - version: 2.7.6 - resolution: "mini-css-extract-plugin@npm:2.7.6" +"mini-css-extract-plugin@npm:2.7.7": + version: 2.7.7 + resolution: "mini-css-extract-plugin@npm:2.7.7" dependencies: schema-utils: "npm:^4.0.0" peerDependencies: webpack: ^5.0.0 - checksum: 4862da928f52c18b37daa52d548c9f2a1ac65c900a48b63f7faa3354d8cfcd21618c049696559e73e2e27fc12d46748e6a490e0b885e54276429607d0d08c156 + checksum: e22f76d96966ee4dfc1318e0f4c45ac75638932df468dc7d103094e1c97cb2d01ea7ccfb354e39d9e57d1971218cdc92678b9c8676472b2f1f801bb514967c44 languageName: node linkType: hard From 6644f566f1cd1834251aa9fa9ff20750ddcf20fe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 20:01:58 -0700 Subject: [PATCH 0175/1216] Bump org.jenkins-ci:jenkins from 1.109 to 1.110 (#8867) Bumps [org.jenkins-ci:jenkins](https://github.com/jenkinsci/pom) from 1.109 to 1.110. - [Release notes](https://github.com/jenkinsci/pom/releases) - [Changelog](https://github.com/jenkinsci/pom/blob/master/CHANGELOG-old.md) - [Commits](https://github.com/jenkinsci/pom/compare/jenkins-1.109...jenkins-1.110) --- updated-dependencies: - dependency-name: org.jenkins-ci:jenkins dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 979c049535ce..f4f1503a95a7 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci jenkins - 1.109 + 1.110 From 3b0de10df3bedba515e13032104d4d84f83045be Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 16 Jan 2024 13:07:08 +0000 Subject: [PATCH 0176/1216] [maven-release-plugin] prepare release jenkins-2.441 --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty10/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 29f77e1f7202..890c56e33afb 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.441 jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 50588e3e692b..76ac5d7da1f5 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.441 cli diff --git a/core/pom.xml b/core/pom.xml index 4280e9075da9..38b469eac0ce 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.441 jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index fe1e89a120dc..d191ae202bb2 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.441 jenkins-coverage diff --git a/pom.xml b/pom.xml index f4f1503a95a7..dc1b32c197b6 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.441 pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - ${scmTag} + jenkins-2.441 https://github.com/jenkinsci/jenkins diff --git a/test/pom.xml b/test/pom.xml index d0c3f586df8d..550d8b3cd107 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.441 jenkins-test diff --git a/war/pom.xml b/war/pom.xml index 8d6d579e5919..ae6ebbdb36a7 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.441 jenkins-war diff --git a/websocket/jetty10/pom.xml b/websocket/jetty10/pom.xml index c91e1583c039..6c0a0b518e28 100644 --- a/websocket/jetty10/pom.xml +++ b/websocket/jetty10/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.441 ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index a99aada6a446..5917dd715876 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.441 ../.. From 86d39dd23bcd4d38d3bd1b278eb507618e40dc37 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 16 Jan 2024 13:08:48 +0000 Subject: [PATCH 0177/1216] [maven-release-plugin] prepare for next development iteration --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 6 +++--- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty10/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 890c56e33afb..29f77e1f7202 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.441 + ${revision}${changelist} jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 76ac5d7da1f5..50588e3e692b 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.441 + ${revision}${changelist} cli diff --git a/core/pom.xml b/core/pom.xml index 38b469eac0ce..4280e9075da9 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.441 + ${revision}${changelist} jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index d191ae202bb2..fe1e89a120dc 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.441 + ${revision}${changelist} jenkins-coverage diff --git a/pom.xml b/pom.xml index dc1b32c197b6..cc71c1535622 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.441 + ${revision}${changelist} pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - jenkins-2.441 + ${scmTag} https://github.com/jenkinsci/jenkins @@ -73,7 +73,7 @@ THE SOFTWARE. - 2.441 + 2.442 -SNAPSHOT diff --git a/test/pom.xml b/test/pom.xml index 550d8b3cd107..d0c3f586df8d 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.441 + ${revision}${changelist} jenkins-test diff --git a/war/pom.xml b/war/pom.xml index ae6ebbdb36a7..8d6d579e5919 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.441 + ${revision}${changelist} jenkins-war diff --git a/websocket/jetty10/pom.xml b/websocket/jetty10/pom.xml index 6c0a0b518e28..c91e1583c039 100644 --- a/websocket/jetty10/pom.xml +++ b/websocket/jetty10/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.441 + ${revision}${changelist} ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 5917dd715876..a99aada6a446 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.441 + ${revision}${changelist} ../.. From de450967f38398169650b55c002f1229a3fcdb1b Mon Sep 17 00:00:00 2001 From: Daniel Beck Date: Tue, 16 Jan 2024 17:07:37 +0000 Subject: [PATCH 0178/1216] [SECURITY-3315] --- core/src/main/java/hudson/cli/CLIAction.java | 21 ++++++- .../java/hudson/cli/Security3315Test.java | 62 +++++++++++++++++++ 2 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 test/src/test/java/hudson/cli/Security3315Test.java diff --git a/core/src/main/java/hudson/cli/CLIAction.java b/core/src/main/java/hudson/cli/CLIAction.java index 633ecca3437c..6123cdcf45d0 100644 --- a/core/src/main/java/hudson/cli/CLIAction.java +++ b/core/src/main/java/hudson/cli/CLIAction.java @@ -49,8 +49,10 @@ import javax.servlet.http.HttpServletResponse; import jenkins.model.Jenkins; import jenkins.util.FullDuplexHttpService; +import jenkins.util.SystemProperties; import jenkins.websocket.WebSocketSession; import jenkins.websocket.WebSockets; +import org.apache.commons.lang.StringUtils; import org.jenkinsci.Symbol; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; @@ -73,6 +75,12 @@ public class CLIAction implements UnprotectedRootAction, StaplerProxy { private static final Logger LOGGER = Logger.getLogger(CLIAction.class.getName()); + /** + * Boolean values map to allowing/disallowing WS CLI endpoint always, {@code null} is the default of doing an {@code Origin} check. + * {@code true} is only advisable if anonymous users have no permissions, and Jenkins sends SameSite=Lax cookies (or browsers use that as the implicit default). + */ + /* package-private for testing */ static /* non-final for Script Console */ Boolean ALLOW_WEBSOCKET = SystemProperties.optBoolean(CLIAction.class.getName() + ".ALLOW_WEBSOCKET"); + private final transient Map duplexServices = new HashMap<>(); @Override @@ -114,10 +122,21 @@ public boolean isWebSocketSupported() { /** * WebSocket endpoint. */ - public HttpResponse doWs() { + public HttpResponse doWs(StaplerRequest req) { if (!WebSockets.isSupported()) { return HttpResponses.notFound(); } + if (ALLOW_WEBSOCKET == null) { + final String actualOrigin = req.getHeader("Origin"); + final String expectedOrigin = StringUtils.removeEnd(StringUtils.removeEnd(Jenkins.get().getRootUrlFromRequest(), "/"), req.getContextPath()); + + if (actualOrigin == null || !actualOrigin.equals(expectedOrigin)) { + LOGGER.log(Level.FINE, () -> "Rejecting origin: " + actualOrigin + "; expected was from request: " + expectedOrigin); + return HttpResponses.forbidden(); + } + } else if (!ALLOW_WEBSOCKET) { + return HttpResponses.forbidden(); + } Authentication authentication = Jenkins.getAuthentication2(); return WebSockets.upgrade(new WebSocketSession() { ServerSideImpl connection; diff --git a/test/src/test/java/hudson/cli/Security3315Test.java b/test/src/test/java/hudson/cli/Security3315Test.java new file mode 100644 index 000000000000..83d207a49c66 --- /dev/null +++ b/test/src/test/java/hudson/cli/Security3315Test.java @@ -0,0 +1,62 @@ +package hudson.cli; + +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; + +import java.io.IOException; +import java.net.URL; +import java.util.Arrays; +import java.util.List; +import org.htmlunit.HttpMethod; +import org.htmlunit.Page; +import org.htmlunit.WebRequest; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.jvnet.hudson.test.FlagRule; +import org.jvnet.hudson.test.JenkinsRule; + +@RunWith(Parameterized.class) +public class Security3315Test { + @Rule + public JenkinsRule j = new JenkinsRule(); + + @Rule + public FlagRule escapeHatch; + + private final Boolean allowWs; + + @Parameterized.Parameters + public static List escapeHatchValues() { + return Arrays.asList(null, "true", "false"); + } + + public Security3315Test(String allowWs) { + this.allowWs = allowWs == null ? null : Boolean.valueOf(allowWs); + this.escapeHatch = new FlagRule<>(() -> CLIAction.ALLOW_WEBSOCKET, v -> { CLIAction.ALLOW_WEBSOCKET = v; }, this.allowWs); + } + + @Test + public void test() throws IOException { + try (JenkinsRule.WebClient wc = j.createWebClient().withThrowExceptionOnFailingStatusCode(false)) { + // HTTP 400 is WebSocket "success" (HTMLUnit doesn't support it) + final URL jenkinsUrl = j.getURL(); + WebRequest request = new WebRequest(new URL(jenkinsUrl.toString() + "cli/ws"), HttpMethod.GET); + Page page = wc.getPage(request); + assertThat(page.getWebResponse().getStatusCode(), is(allowWs == Boolean.TRUE ? 400 : 403)); // no Origin header + + request.setAdditionalHeader("Origin", jenkinsUrl.getProtocol() + "://example.org:" + jenkinsUrl.getPort()); + page = wc.getPage(request); + assertThat(page.getWebResponse().getStatusCode(), is(allowWs == Boolean.TRUE ? 400 : 403)); // Wrong Origin host + + request.setAdditionalHeader("Origin", jenkinsUrl.getProtocol() + "://" + jenkinsUrl.getHost()); + page = wc.getPage(request); + assertThat(page.getWebResponse().getStatusCode(), is(allowWs == Boolean.TRUE ? 400 : 403)); // Wrong Origin port + + request.setAdditionalHeader("Origin", jenkinsUrl.getProtocol() + "://" + jenkinsUrl.getHost() + ":" + jenkinsUrl.getPort()); + page = wc.getPage(request); + assertThat(page.getWebResponse().getStatusCode(), is(allowWs == Boolean.FALSE ? 403 : 400)); // Reject correct Origin if ALLOW_WS is explicitly false + } + } +} From 554f03782057c499c49bbb06575f0d28b5200edb Mon Sep 17 00:00:00 2001 From: Kevin-CB Date: Tue, 16 Jan 2024 17:07:43 +0000 Subject: [PATCH 0179/1216] [SECURITY-3314] --- core/src/main/java/hudson/cli/CLICommand.java | 16 +++++- .../hudson/cli/declarative/CLIRegisterer.java | 4 +- .../jenkins/security/Security3314Test.java | 55 +++++++++++++++++++ 3 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 test/src/test/java/jenkins/security/Security3314Test.java diff --git a/core/src/main/java/hudson/cli/CLICommand.java b/core/src/main/java/hudson/cli/CLICommand.java index e779afbc3453..f2dc2f8b5fc3 100644 --- a/core/src/main/java/hudson/cli/CLICommand.java +++ b/core/src/main/java/hudson/cli/CLICommand.java @@ -26,6 +26,7 @@ import edu.umd.cs.findbugs.annotations.CheckForNull; import edu.umd.cs.findbugs.annotations.NonNull; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import hudson.AbortException; import hudson.Extension; import hudson.ExtensionList; @@ -51,6 +52,7 @@ import java.util.logging.Level; import java.util.logging.Logger; import jenkins.model.Jenkins; +import jenkins.util.SystemProperties; import org.apache.commons.discovery.ResourceClassIterator; import org.apache.commons.discovery.ResourceNameIterator; import org.apache.commons.discovery.resource.ClassLoaders; @@ -62,6 +64,7 @@ import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.args4j.CmdLineException; import org.kohsuke.args4j.CmdLineParser; +import org.kohsuke.args4j.ParserProperties; import org.kohsuke.args4j.spi.OptionHandler; import org.springframework.security.access.AccessDeniedException; import org.springframework.security.authentication.BadCredentialsException; @@ -107,6 +110,16 @@ */ @LegacyInstancesAreScopedToHudson public abstract class CLICommand implements ExtensionPoint, Cloneable { + + /** + * Boolean values to either allow or disallow parsing of @-prefixes. + * If a command line value starts with @, it is interpreted as being a file, loaded, + * and interpreted as if the file content would have been passed to the command line + */ + @SuppressFBWarnings(value = "MS_SHOULD_BE_FINAL", justification = "Accessible via System Groovy Scripts") + @Restricted(NoExternalUse.class) + public static boolean ALLOW_AT_SYNTAX = SystemProperties.getBoolean(CLICommand.class.getName() + ".allowAtSyntax"); + /** * Connected to stdout and stderr of the CLI agent that initiated the session. * IOW, if you write to these streams, the person who launched the CLI command @@ -307,7 +320,8 @@ private void logAndPrintError(Throwable e, String errorMessage, String logMessag * @since 1.538 */ protected CmdLineParser getCmdLineParser() { - return new CmdLineParser(this); + ParserProperties properties = ParserProperties.defaults().withAtSyntax(ALLOW_AT_SYNTAX); + return new CmdLineParser(this, properties); } /** diff --git a/core/src/main/java/hudson/cli/declarative/CLIRegisterer.java b/core/src/main/java/hudson/cli/declarative/CLIRegisterer.java index 8b2f2348c577..f5d050174940 100644 --- a/core/src/main/java/hudson/cli/declarative/CLIRegisterer.java +++ b/core/src/main/java/hudson/cli/declarative/CLIRegisterer.java @@ -59,6 +59,7 @@ import org.jvnet.localizer.ResourceBundleHolder; import org.kohsuke.args4j.CmdLineException; import org.kohsuke.args4j.CmdLineParser; +import org.kohsuke.args4j.ParserProperties; import org.springframework.security.access.AccessDeniedException; import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.core.Authentication; @@ -131,7 +132,8 @@ protected CmdLineParser getCmdLineParser() { private CmdLineParser bindMethod(List binders) { registerOptionHandlers(); - CmdLineParser parser = new CmdLineParser(null); + ParserProperties properties = ParserProperties.defaults().withAtSyntax(ALLOW_AT_SYNTAX); + CmdLineParser parser = new CmdLineParser(null, properties); // build up the call sequence Stack chains = new Stack<>(); diff --git a/test/src/test/java/jenkins/security/Security3314Test.java b/test/src/test/java/jenkins/security/Security3314Test.java new file mode 100644 index 000000000000..4dbdede0a5b2 --- /dev/null +++ b/test/src/test/java/jenkins/security/Security3314Test.java @@ -0,0 +1,55 @@ +package jenkins.security; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.not; + +import hudson.cli.CLICommandInvoker; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Arrays; +import java.util.List; +import jenkins.model.Jenkins; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.jvnet.hudson.test.JenkinsRule; + +@RunWith(Parameterized.class) +public class Security3314Test { + private String commandName; + + @Rule + public final JenkinsRule j = new JenkinsRule(); + + /** + * connect-node to test the CLICommand behavior + * disable-job to test the CLIRegisterer behavior (@CLIMethod) + */ + @Parameterized.Parameters + public static List commands() { + return Arrays.asList("connect-node", "disable-job"); + } + + public Security3314Test(String commandName) { + this.commandName = commandName; + } + + @Test + public void commandShouldNotParseAt() throws Exception { + CLICommandInvoker command = new CLICommandInvoker(j, commandName); + + Path tempPath = Files.createTempFile("tempFile", ".txt"); + tempPath.toFile().deleteOnExit(); + String content = "AtGotParsed"; + Files.write(tempPath, content.getBytes()); + + final CLICommandInvoker.Result result = command + .authorizedTo(Jenkins.READ) + .invokeWithArgs("@" + tempPath); + + assertThat(result.stderr(), containsString("@" + tempPath)); + assertThat(result.stderr(), not(containsString("AtGotParsed"))); + } +} From 10b1b883319ff21bfe742bd0abe225dd12f10c2b Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Mon, 22 Jan 2024 21:35:22 +0000 Subject: [PATCH 0180/1216] [maven-release-plugin] prepare release jenkins-2.442 --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty10/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 29f77e1f7202..8c2c71ef625c 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.442 jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 50588e3e692b..b75e9e3d0299 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.442 cli diff --git a/core/pom.xml b/core/pom.xml index 4280e9075da9..9c662493ecd2 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.442 jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index fe1e89a120dc..b382423292b3 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.442 jenkins-coverage diff --git a/pom.xml b/pom.xml index cc71c1535622..53fc32959ae1 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.442 pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - ${scmTag} + jenkins-2.442 https://github.com/jenkinsci/jenkins diff --git a/test/pom.xml b/test/pom.xml index d0c3f586df8d..b1bd4e12a861 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.442 jenkins-test diff --git a/war/pom.xml b/war/pom.xml index 8d6d579e5919..5f8b308d32ea 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.442 jenkins-war diff --git a/websocket/jetty10/pom.xml b/websocket/jetty10/pom.xml index c91e1583c039..185c4bad2a7b 100644 --- a/websocket/jetty10/pom.xml +++ b/websocket/jetty10/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.442 ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index a99aada6a446..cc4802057ad0 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.442 ../.. From 92d7c3cd70ace4f99a790a430cccbb04079a64f4 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Mon, 22 Jan 2024 21:37:02 +0000 Subject: [PATCH 0181/1216] [maven-release-plugin] prepare for next development iteration --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 6 +++--- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty10/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 8c2c71ef625c..29f77e1f7202 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.442 + ${revision}${changelist} jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index b75e9e3d0299..50588e3e692b 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.442 + ${revision}${changelist} cli diff --git a/core/pom.xml b/core/pom.xml index 9c662493ecd2..4280e9075da9 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.442 + ${revision}${changelist} jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index b382423292b3..fe1e89a120dc 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.442 + ${revision}${changelist} jenkins-coverage diff --git a/pom.xml b/pom.xml index 53fc32959ae1..b467a961827a 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.442 + ${revision}${changelist} pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - jenkins-2.442 + ${scmTag} https://github.com/jenkinsci/jenkins @@ -73,7 +73,7 @@ THE SOFTWARE. - 2.442 + 2.443 -SNAPSHOT diff --git a/test/pom.xml b/test/pom.xml index b1bd4e12a861..d0c3f586df8d 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.442 + ${revision}${changelist} jenkins-test diff --git a/war/pom.xml b/war/pom.xml index 5f8b308d32ea..8d6d579e5919 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.442 + ${revision}${changelist} jenkins-war diff --git a/websocket/jetty10/pom.xml b/websocket/jetty10/pom.xml index 185c4bad2a7b..c91e1583c039 100644 --- a/websocket/jetty10/pom.xml +++ b/websocket/jetty10/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.442 + ${revision}${changelist} ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index cc4802057ad0..a99aada6a446 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.442 + ${revision}${changelist} ../.. From 9f8d343f057e3f3ea988684b9dab509d64999a20 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Jan 2024 12:45:17 -0800 Subject: [PATCH 0182/1216] Bump org.jenkins-ci.plugins:junit from 1252.vfc2e5efa_294f to 1256.v002534a_5f33e (#8869) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index d0c3f586df8d..da0b9916e43e 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -212,7 +212,7 @@ THE SOFTWARE. org.jenkins-ci.plugins junit - 1252.vfc2e5efa_294f + 1256.v002534a_5f33e test From f6febb1cabfbe0b636861f5d688514dc49493169 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Jan 2024 12:46:14 -0800 Subject: [PATCH 0183/1216] Update dependency prettier to v3.2.1 (#8868) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Tim Jacomb --- war/.babelrc | 2 +- war/package.json | 2 +- war/yarn.lock | 10 +++++----- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/war/.babelrc b/war/.babelrc index 1320b9a3272a..0715456ee108 100644 --- a/war/.babelrc +++ b/war/.babelrc @@ -1,3 +1,3 @@ { - "presets": ["@babel/preset-env"] + "presets": ["@babel/preset-env"], } diff --git a/war/package.json b/war/package.json index e583be5f71e0..bb24397dc1e6 100644 --- a/war/package.json +++ b/war/package.json @@ -38,7 +38,7 @@ "postcss-loader": "7.3.4", "postcss-preset-env": "9.3.0", "postcss-scss": "4.0.9", - "prettier": "3.1.1", + "prettier": "3.2.1", "sass": "1.69.7", "sass-loader": "13.3.3", "style-loader": "3.3.4", diff --git a/war/yarn.lock b/war/yarn.lock index 6a6da7309282..fe0485c61580 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -4463,7 +4463,7 @@ __metadata: postcss-loader: "npm:7.3.4" postcss-preset-env: "npm:9.3.0" postcss-scss: "npm:4.0.9" - prettier: "npm:3.1.1" + prettier: "npm:3.2.1" sass: "npm:1.69.7" sass-loader: "npm:13.3.3" sortablejs: "npm:1.15.1" @@ -6172,12 +6172,12 @@ __metadata: languageName: node linkType: hard -"prettier@npm:3.1.1": - version: 3.1.1 - resolution: "prettier@npm:3.1.1" +"prettier@npm:3.2.1": + version: 3.2.1 + resolution: "prettier@npm:3.2.1" bin: prettier: bin/prettier.cjs - checksum: facc944ba20e194ff4db765e830ffbcb642803381f0d2033ed397e79904fa4ccc877dc25ad68f42d36985c01d051c990ca1b905fb83d2d7d65fe69e4386fa1a3 + checksum: e01284f25c1e9a96dfaf4f7d0bfdf0726b26afc732b0e645a2653174d4ad5a1e85ae21ec4d327c71536f1acf8fee1dff5ea35c5b4b8e5b83ff00fe1dd6fef146 languageName: node linkType: hard From 788d93b49692bcb0b686c519f122a1f73f0b4ad6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Jan 2024 12:49:21 -0800 Subject: [PATCH 0184/1216] Bump org.jenkins-ci.plugins:structs from 325.vcb_307d2a_2782 to 337.v1b_04ea_4df7c8 (#8876) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index da0b9916e43e..8fa31d562672 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -236,7 +236,7 @@ THE SOFTWARE. org.jenkins-ci.plugins structs - 325.vcb_307d2a_2782 + 337.v1b_04ea_4df7c8 test From f425dd45f34f21f70cc27afeefbb21f80e3ecac0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Jan 2024 12:53:30 -0800 Subject: [PATCH 0185/1216] Bump io.jenkins.plugins:font-awesome-api from 6.5.1-1 to 6.5.1-2 (#8887) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index 8fa31d562672..317b3e306de7 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -73,7 +73,7 @@ THE SOFTWARE. io.jenkins.plugins font-awesome-api - 6.5.1-1 + 6.5.1-2 io.jenkins.plugins From f63866ea9a16d2ed79df3ad0a02c219cdfd18d25 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Jan 2024 12:57:30 -0800 Subject: [PATCH 0186/1216] Update dependency sass-loader to v14 (#8877) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/yarn.lock | 13 +++++-------- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/war/package.json b/war/package.json index bb24397dc1e6..ea693736128b 100644 --- a/war/package.json +++ b/war/package.json @@ -40,7 +40,7 @@ "postcss-scss": "4.0.9", "prettier": "3.2.1", "sass": "1.69.7", - "sass-loader": "13.3.3", + "sass-loader": "14.0.0", "style-loader": "3.3.4", "stylelint": "16.1.0", "stylelint-checkstyle-reporter": "0.2.0", diff --git a/war/yarn.lock b/war/yarn.lock index fe0485c61580..3938daa6983f 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -4465,7 +4465,7 @@ __metadata: postcss-scss: "npm:4.0.9" prettier: "npm:3.2.1" sass: "npm:1.69.7" - sass-loader: "npm:13.3.3" + sass-loader: "npm:14.0.0" sortablejs: "npm:1.15.1" style-loader: "npm:3.3.4" stylelint: "npm:16.1.0" @@ -6433,27 +6433,24 @@ __metadata: languageName: node linkType: hard -"sass-loader@npm:13.3.3": - version: 13.3.3 - resolution: "sass-loader@npm:13.3.3" +"sass-loader@npm:14.0.0": + version: 14.0.0 + resolution: "sass-loader@npm:14.0.0" dependencies: neo-async: "npm:^2.6.2" peerDependencies: - fibers: ">= 3.1.0" node-sass: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 sass: ^1.3.0 sass-embedded: "*" webpack: ^5.0.0 peerDependenciesMeta: - fibers: - optional: true node-sass: optional: true sass: optional: true sass-embedded: optional: true - checksum: 5e955a4ffce35ee0a46fce677ce51eaa69587fb5371978588c83af00f49e7edc36dcf3bb559cbae27681c5e24a71284463ebe03a1fb65e6ecafa1db0620e3fc8 + checksum: 40729573560feb1a368c984198f655b287495470fa5b5a47f6bc6ab0c474c1bd973ccccbb855d3320a91020a64913e5f0d8905e224ea13e6766d9abbb5085a41 languageName: node linkType: hard From 178b79035e26e8d2c20d784b05866a289183fab4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Jan 2024 13:01:51 -0800 Subject: [PATCH 0187/1216] Update dependency postcss-loader to v8 (#8880) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/yarn.lock | 29 ++++++----------------------- 2 files changed, 7 insertions(+), 24 deletions(-) diff --git a/war/package.json b/war/package.json index ea693736128b..1e8a3eb1cf8e 100644 --- a/war/package.json +++ b/war/package.json @@ -35,7 +35,7 @@ "handlebars-loader": "1.7.3", "mini-css-extract-plugin": "2.7.7", "postcss": "8.4.33", - "postcss-loader": "7.3.4", + "postcss-loader": "8.0.0", "postcss-preset-env": "9.3.0", "postcss-scss": "4.0.9", "prettier": "3.2.1", diff --git a/war/yarn.lock b/war/yarn.lock index 3938daa6983f..40bf443e24e5 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -3040,23 +3040,6 @@ __metadata: languageName: node linkType: hard -"cosmiconfig@npm:^8.3.5": - version: 8.3.6 - resolution: "cosmiconfig@npm:8.3.6" - dependencies: - import-fresh: "npm:^3.3.0" - js-yaml: "npm:^4.1.0" - parse-json: "npm:^5.2.0" - path-type: "npm:^4.0.0" - peerDependencies: - typescript: ">=4.9.5" - peerDependenciesMeta: - typescript: - optional: true - checksum: 0382a9ed13208f8bfc22ca2f62b364855207dffdb73dc26e150ade78c3093f1cf56172df2dd460c8caf2afa91c0ed4ec8a88c62f8f9cd1cf423d26506aa8797a - languageName: node - linkType: hard - "cosmiconfig@npm:^9.0.0": version: 9.0.0 resolution: "cosmiconfig@npm:9.0.0" @@ -4460,7 +4443,7 @@ __metadata: lodash: "npm:4.17.21" mini-css-extract-plugin: "npm:2.7.7" postcss: "npm:8.4.33" - postcss-loader: "npm:7.3.4" + postcss-loader: "npm:8.0.0" postcss-preset-env: "npm:9.3.0" postcss-scss: "npm:4.0.9" prettier: "npm:3.2.1" @@ -5660,17 +5643,17 @@ __metadata: languageName: node linkType: hard -"postcss-loader@npm:7.3.4": - version: 7.3.4 - resolution: "postcss-loader@npm:7.3.4" +"postcss-loader@npm:8.0.0": + version: 8.0.0 + resolution: "postcss-loader@npm:8.0.0" dependencies: - cosmiconfig: "npm:^8.3.5" + cosmiconfig: "npm:^9.0.0" jiti: "npm:^1.20.0" semver: "npm:^7.5.4" peerDependencies: postcss: ^7.0.0 || ^8.0.1 webpack: ^5.0.0 - checksum: 1bf7614aeea9ad1f8ee6be3a5451576c059391688ea67f825aedc2674056369597faeae4e4a81fe10843884c9904a71403d9a54197e1f560e8fbb9e61f2a2680 + checksum: a31eedd2cac3a46b60527a2aee2369010f65dfc1dafb6ee00badfe6b662cefe00269b03adaa04be1524c566ea5b00f8716c150e79fe9b5c4fc8bb39a4e372be1 languageName: node linkType: hard From 448eccd0d3bc42d5e107c6e5c4b9e6aafb9ac613 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Jan 2024 13:05:18 -0800 Subject: [PATCH 0188/1216] Update dependency css-minimizer-webpack-plugin to v6 (#8882) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/yarn.lock | 559 ++++++++++++++++++++++++----------------------- 2 files changed, 281 insertions(+), 280 deletions(-) diff --git a/war/package.json b/war/package.json index 1e8a3eb1cf8e..bca0ed52faeb 100644 --- a/war/package.json +++ b/war/package.json @@ -29,7 +29,7 @@ "babel-loader": "9.1.3", "clean-webpack-plugin": "4.0.0", "css-loader": "6.9.0", - "css-minimizer-webpack-plugin": "5.0.1", + "css-minimizer-webpack-plugin": "6.0.0", "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", "handlebars-loader": "1.7.3", diff --git a/war/yarn.lock b/war/yarn.lock index 40bf443e24e5..cdf68c0bc96f 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -1864,26 +1864,26 @@ __metadata: languageName: node linkType: hard -"@jest/schemas@npm:^29.4.3": - version: 29.4.3 - resolution: "@jest/schemas@npm:29.4.3" +"@jest/schemas@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/schemas@npm:29.6.3" dependencies: - "@sinclair/typebox": "npm:^0.25.16" - checksum: 8a35967cec454d1de2d5a58ab99b49a0ff798d1dce2d817bdd9960bb2f070493f767fbbf419e6a263860d3b1ef1e50ab609a76ae21b5f8c09bb0859e8f51a098 + "@sinclair/typebox": "npm:^0.27.8" + checksum: b329e89cd5f20b9278ae1233df74016ebf7b385e0d14b9f4c1ad18d096c4c19d1e687aa113a9c976b16ec07f021ae53dea811fb8c1248a50ac34fbe009fdf6be languageName: node linkType: hard -"@jest/types@npm:^29.5.0": - version: 29.5.0 - resolution: "@jest/types@npm:29.5.0" +"@jest/types@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/types@npm:29.6.3" dependencies: - "@jest/schemas": "npm:^29.4.3" + "@jest/schemas": "npm:^29.6.3" "@types/istanbul-lib-coverage": "npm:^2.0.0" "@types/istanbul-reports": "npm:^3.0.0" "@types/node": "npm:*" "@types/yargs": "npm:^17.0.8" chalk: "npm:^4.0.0" - checksum: f1cccd2e9b00a985bfdac03517f906cdf7a481be3606c335f8ec08a7272b7cf700b23484ce323a912b374defb90d3ab88c643cf2a2f47635c1c4feacfa1c1b2d + checksum: ea4e493dd3fb47933b8ccab201ae573dcc451f951dc44ed2a86123cd8541b82aa9d2b1031caf9b1080d6673c517e2dcc25a44b2dc4f3fbc37bfc965d444888c0 languageName: node linkType: hard @@ -1908,10 +1908,10 @@ __metadata: languageName: node linkType: hard -"@jridgewell/resolve-uri@npm:3.1.0": - version: 3.1.0 - resolution: "@jridgewell/resolve-uri@npm:3.1.0" - checksum: 78055e2526108331126366572045355051a930f017d1904a4f753d3f4acee8d92a14854948095626f6163cffc24ea4e3efa30637417bb866b84743dec7ef6fd9 +"@jridgewell/resolve-uri@npm:^3.1.0": + version: 3.1.1 + resolution: "@jridgewell/resolve-uri@npm:3.1.1" + checksum: 0dbc9e29bc640bbbdc5b9876d2859c69042bfcf1423c1e6421bcca53e826660bff4e41c7d4bcb8dbea696404231a6f902f76ba41835d049e20f2dd6cffb713bf languageName: node linkType: hard @@ -1932,20 +1932,20 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.10": - version: 1.4.14 - resolution: "@jridgewell/sourcemap-codec@npm:1.4.14" - checksum: 3fbaff1387c1338b097eeb6ff92890d7838f7de0dde259e4983763b44540bfd5ca6a1f7644dc8ad003a57f7e80670d5b96a8402f1386ba9aee074743ae9bad51 +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14": + version: 1.4.15 + resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" + checksum: 0c6b5ae663087558039052a626d2d7ed5208da36cfd707dcc5cea4a07cfc918248403dcb5989a8f7afaf245ce0573b7cc6fd94c4a30453bd10e44d9363940ba5 languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.9": - version: 0.3.18 - resolution: "@jridgewell/trace-mapping@npm:0.3.18" +"@jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.21, @jridgewell/trace-mapping@npm:^0.3.9": + version: 0.3.22 + resolution: "@jridgewell/trace-mapping@npm:0.3.22" dependencies: - "@jridgewell/resolve-uri": "npm:3.1.0" - "@jridgewell/sourcemap-codec": "npm:1.4.14" - checksum: e5045775f076022b6c7cc64a7b55742faa5442301cb3389fd0e6712fafc46a2bb13c68fa1ffaf7b8bb665a91196f050b4115885fc802094ebc06a1cf665935ac + "@jridgewell/resolve-uri": "npm:^3.1.0" + "@jridgewell/sourcemap-codec": "npm:^1.4.14" + checksum: 18cf19f88e2792c1c91515f2b629aae05f3cdbb2e60c3886e16e80725234ce26dd10144c4981c05d9366e7094498c0b4fe5c1a89f4a730d7376a4ba4af448149 languageName: node linkType: hard @@ -2054,10 +2054,10 @@ __metadata: languageName: node linkType: hard -"@sinclair/typebox@npm:^0.25.16": - version: 0.25.24 - resolution: "@sinclair/typebox@npm:0.25.24" - checksum: 2faf9878f3a65a1f2855add80b0fe8c6fe83f084ea1ab432fa7506e7c85c55ae121c4af516d089b5737f5fad23b3628fcc83a6a5df29030c3f611185ce0388ac +"@sinclair/typebox@npm:^0.27.8": + version: 0.27.8 + resolution: "@sinclair/typebox@npm:0.27.8" + checksum: ef6351ae073c45c2ac89494dbb3e1f87cc60a93ce4cde797b782812b6f97da0d620ae81973f104b43c9b7eaa789ad20ba4f6a1359f1cc62f63729a55a7d22d4e languageName: node linkType: hard @@ -2757,7 +2757,7 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.0.0, browserslist@npm:^4.14.5, browserslist@npm:^4.21.10, browserslist@npm:^4.21.4, browserslist@npm:^4.22.1, browserslist@npm:^4.22.2": +"browserslist@npm:^4.0.0, browserslist@npm:^4.14.5, browserslist@npm:^4.21.10, browserslist@npm:^4.22.1, browserslist@npm:^4.22.2": version: 4.22.2 resolution: "browserslist@npm:4.22.2" dependencies: @@ -3079,12 +3079,12 @@ __metadata: languageName: node linkType: hard -"css-declaration-sorter@npm:^6.3.1": - version: 6.4.0 - resolution: "css-declaration-sorter@npm:6.4.0" +"css-declaration-sorter@npm:^7.1.1": + version: 7.1.1 + resolution: "css-declaration-sorter@npm:7.1.1" peerDependencies: postcss: ^8.0.9 - checksum: aef4d5927e576bae04349457be0607af44525cf5f4b28a91843c7b7f28fcbb302ba149385bb0e2172380556994e31680c5177b42d03502c417789b139e20cbc2 + checksum: bea446e441bafde21c3c7b3f7639559311da12eea140db7ee3c61e4f41df455b7b098df107f99bc0cca32a5020841cc94bf8a2d5efb1b383e51f9de478c4816e languageName: node linkType: hard @@ -3126,16 +3126,16 @@ __metadata: languageName: node linkType: hard -"css-minimizer-webpack-plugin@npm:5.0.1": - version: 5.0.1 - resolution: "css-minimizer-webpack-plugin@npm:5.0.1" +"css-minimizer-webpack-plugin@npm:6.0.0": + version: 6.0.0 + resolution: "css-minimizer-webpack-plugin@npm:6.0.0" dependencies: - "@jridgewell/trace-mapping": "npm:^0.3.18" - cssnano: "npm:^6.0.1" - jest-worker: "npm:^29.4.3" - postcss: "npm:^8.4.24" - schema-utils: "npm:^4.0.1" - serialize-javascript: "npm:^6.0.1" + "@jridgewell/trace-mapping": "npm:^0.3.21" + cssnano: "npm:^6.0.3" + jest-worker: "npm:^29.7.0" + postcss: "npm:^8.4.33" + schema-utils: "npm:^4.2.0" + serialize-javascript: "npm:^6.0.2" peerDependencies: webpack: ^5.0.0 peerDependenciesMeta: @@ -3151,7 +3151,7 @@ __metadata: optional: true lightningcss: optional: true - checksum: 1792259e18f7c5ee25b6bbf60b38b64201747add83d1f751c8c654159b46ebacd0d1103d35f17d97197033e21e02d2ba4a4e9aa14c9c0d067b7c7653c721814e + checksum: 5ad6690c8700a190851f5dc263ae1086b68f4bfd7eeff715c689c6d1a0742763e7af792fe474854b7ce5ee6d4f2ee4d95b1e0714db32aba5ded69ccbf9aefd30 languageName: node linkType: hard @@ -3177,7 +3177,7 @@ __metadata: languageName: node linkType: hard -"css-tree@npm:^2.2.1, css-tree@npm:^2.3.1": +"css-tree@npm:^2.3.1": version: 2.3.1 resolution: "css-tree@npm:2.3.1" dependencies: @@ -3220,63 +3220,63 @@ __metadata: languageName: node linkType: hard -"cssnano-preset-default@npm:^6.0.1": - version: 6.0.1 - resolution: "cssnano-preset-default@npm:6.0.1" - dependencies: - css-declaration-sorter: "npm:^6.3.1" - cssnano-utils: "npm:^4.0.0" - postcss-calc: "npm:^9.0.0" - postcss-colormin: "npm:^6.0.0" - postcss-convert-values: "npm:^6.0.0" - postcss-discard-comments: "npm:^6.0.0" - postcss-discard-duplicates: "npm:^6.0.0" - postcss-discard-empty: "npm:^6.0.0" - postcss-discard-overridden: "npm:^6.0.0" - postcss-merge-longhand: "npm:^6.0.0" - postcss-merge-rules: "npm:^6.0.1" - postcss-minify-font-values: "npm:^6.0.0" - postcss-minify-gradients: "npm:^6.0.0" - postcss-minify-params: "npm:^6.0.0" - postcss-minify-selectors: "npm:^6.0.0" - postcss-normalize-charset: "npm:^6.0.0" - postcss-normalize-display-values: "npm:^6.0.0" - postcss-normalize-positions: "npm:^6.0.0" - postcss-normalize-repeat-style: "npm:^6.0.0" - postcss-normalize-string: "npm:^6.0.0" - postcss-normalize-timing-functions: "npm:^6.0.0" - postcss-normalize-unicode: "npm:^6.0.0" - postcss-normalize-url: "npm:^6.0.0" - postcss-normalize-whitespace: "npm:^6.0.0" - postcss-ordered-values: "npm:^6.0.0" - postcss-reduce-initial: "npm:^6.0.0" - postcss-reduce-transforms: "npm:^6.0.0" - postcss-svgo: "npm:^6.0.0" - postcss-unique-selectors: "npm:^6.0.0" - peerDependencies: - postcss: ^8.2.15 - checksum: 401a8d0712cca6577df52cf4aac234ff4a946f0f51c0d09e7c518fff389706cff54d702ff22762e834b23401a89b836aef113e69cc66fa5dfa1f361bdd932495 - languageName: node - linkType: hard - -"cssnano-utils@npm:^4.0.0": - version: 4.0.0 - resolution: "cssnano-utils@npm:4.0.0" +"cssnano-preset-default@npm:^6.0.3": + version: 6.0.3 + resolution: "cssnano-preset-default@npm:6.0.3" + dependencies: + css-declaration-sorter: "npm:^7.1.1" + cssnano-utils: "npm:^4.0.1" + postcss-calc: "npm:^9.0.1" + postcss-colormin: "npm:^6.0.2" + postcss-convert-values: "npm:^6.0.2" + postcss-discard-comments: "npm:^6.0.1" + postcss-discard-duplicates: "npm:^6.0.1" + postcss-discard-empty: "npm:^6.0.1" + postcss-discard-overridden: "npm:^6.0.1" + postcss-merge-longhand: "npm:^6.0.2" + postcss-merge-rules: "npm:^6.0.3" + postcss-minify-font-values: "npm:^6.0.1" + postcss-minify-gradients: "npm:^6.0.1" + postcss-minify-params: "npm:^6.0.2" + postcss-minify-selectors: "npm:^6.0.2" + postcss-normalize-charset: "npm:^6.0.1" + postcss-normalize-display-values: "npm:^6.0.1" + postcss-normalize-positions: "npm:^6.0.1" + postcss-normalize-repeat-style: "npm:^6.0.1" + postcss-normalize-string: "npm:^6.0.1" + postcss-normalize-timing-functions: "npm:^6.0.1" + postcss-normalize-unicode: "npm:^6.0.2" + postcss-normalize-url: "npm:^6.0.1" + postcss-normalize-whitespace: "npm:^6.0.1" + postcss-ordered-values: "npm:^6.0.1" + postcss-reduce-initial: "npm:^6.0.2" + postcss-reduce-transforms: "npm:^6.0.1" + postcss-svgo: "npm:^6.0.2" + postcss-unique-selectors: "npm:^6.0.2" peerDependencies: - postcss: ^8.2.15 - checksum: ca5cb2be5ec8ea624c28f5f54c00a440557afd3c2b25cb568517db44d230833743f3db30729126efe4d7fc616a42718dd76255bbefcb7d3cc7e3ff5989d907b3 + postcss: ^8.4.31 + checksum: d100a1f8ab71adbb6df85e00f4a9e5d04ac06fc50343157eef853aded3f75dd0489dd845a5b2fb43ca701bd88c39c5aa88673f842bc1f94f4318c7b38ced1963 languageName: node linkType: hard -"cssnano@npm:^6.0.1": - version: 6.0.1 - resolution: "cssnano@npm:6.0.1" +"cssnano-utils@npm:^4.0.1": + version: 4.0.1 + resolution: "cssnano-utils@npm:4.0.1" + peerDependencies: + postcss: ^8.4.31 + checksum: 20513a393402f283c85c450ece43d1a6a06a9906b524481043ac203a86888a4ca5cbef878c615a58fdd82a9e870ce62c6f3fea9f51814034a084d8980e17cf96 + languageName: node + linkType: hard + +"cssnano@npm:^6.0.3": + version: 6.0.3 + resolution: "cssnano@npm:6.0.3" dependencies: - cssnano-preset-default: "npm:^6.0.1" - lilconfig: "npm:^2.1.0" + cssnano-preset-default: "npm:^6.0.3" + lilconfig: "npm:^3.0.0" peerDependencies: - postcss: ^8.2.15 - checksum: b73a3a257dd32201ce504cb34b08f1259c8a260b063f58d33e03283149d94ee2ba938d7f9beae1413f0f34e06828759575ade6ae95fa01d199f291e1d4f6d2c2 + postcss: ^8.4.31 + checksum: d1669eb987fd96159bae262ef2f76c1a64fffefe8fa593918a6bda377977798b60fb4a6a871a9b9a9deb11258130ee254fdb8c3144769b3060ad9f2a95a4ed0a languageName: node linkType: hard @@ -4433,7 +4433,7 @@ __metadata: babel-loader: "npm:9.1.3" clean-webpack-plugin: "npm:4.0.0" css-loader: "npm:6.9.0" - css-minimizer-webpack-plugin: "npm:5.0.1" + css-minimizer-webpack-plugin: "npm:6.0.0" eslint: "npm:8.56.0" eslint-config-prettier: "npm:9.1.0" handlebars: "npm:4.7.8" @@ -4462,17 +4462,17 @@ __metadata: languageName: unknown linkType: soft -"jest-util@npm:^29.5.0": - version: 29.5.0 - resolution: "jest-util@npm:29.5.0" +"jest-util@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-util@npm:29.7.0" dependencies: - "@jest/types": "npm:^29.5.0" + "@jest/types": "npm:^29.6.3" "@types/node": "npm:*" chalk: "npm:^4.0.0" ci-info: "npm:^3.2.0" graceful-fs: "npm:^4.2.9" picomatch: "npm:^2.2.3" - checksum: c7f1dc8ae82cd9614a31e09806499560b4812beb57589b214241dd213d3cc6d24417593aef2caf2d3d9694925438849fec371ff36ca8a7f1be8438fd41e83373 + checksum: bc55a8f49fdbb8f51baf31d2a4f312fb66c9db1483b82f602c9c990e659cdd7ec529c8e916d5a89452ecbcfae4949b21b40a7a59d4ffc0cd813a973ab08c8150 languageName: node linkType: hard @@ -4487,15 +4487,15 @@ __metadata: languageName: node linkType: hard -"jest-worker@npm:^29.4.3": - version: 29.5.0 - resolution: "jest-worker@npm:29.5.0" +"jest-worker@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-worker@npm:29.7.0" dependencies: "@types/node": "npm:*" - jest-util: "npm:^29.5.0" + jest-util: "npm:^29.7.0" merge-stream: "npm:^2.0.0" supports-color: "npm:^8.0.0" - checksum: 4191ec3209cb1d838c931d47c7328fec7279eb7a5d40fa86bb3fac4d34cbad835349bc366150712259a274507fd210ddb450733032394d8e0b19640b3d3ac17d + checksum: 5570a3a005b16f46c131968b8a5b56d291f9bbb85ff4217e31c80bd8a02e7de799e59a54b95ca28d5c302f248b54cbffde2d177c2f0f52ffcee7504c6eabf660 languageName: node linkType: hard @@ -4651,10 +4651,10 @@ __metadata: languageName: node linkType: hard -"lilconfig@npm:^2.1.0": - version: 2.1.0 - resolution: "lilconfig@npm:2.1.0" - checksum: 64645641aa8d274c99338e130554abd6a0190533c0d9eb2ce7ebfaf2e05c7d9961f3ffe2bfa39efd3b60c521ba3dd24fa236fe2775fc38501bf82bf49d4678b8 +"lilconfig@npm:^3.0.0": + version: 3.0.0 + resolution: "lilconfig@npm:3.0.0" + checksum: 7f5ee7a658dc016cacf146815e8d88b06f06f4402823b8b0934e305a57a197f55ccc9c5cd4fb5ea1b2b821c8ccaf2d54abd59602a4931af06eabda332388d3e6 languageName: node linkType: hard @@ -5394,7 +5394,7 @@ __metadata: languageName: node linkType: hard -"postcss-calc@npm:^9.0.0": +"postcss-calc@npm:^9.0.1": version: 9.0.1 resolution: "postcss-calc@npm:9.0.1" dependencies: @@ -5451,29 +5451,29 @@ __metadata: languageName: node linkType: hard -"postcss-colormin@npm:^6.0.0": - version: 6.0.0 - resolution: "postcss-colormin@npm:6.0.0" +"postcss-colormin@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-colormin@npm:6.0.2" dependencies: - browserslist: "npm:^4.21.4" + browserslist: "npm:^4.22.2" caniuse-api: "npm:^3.0.0" colord: "npm:^2.9.1" postcss-value-parser: "npm:^4.2.0" peerDependencies: - postcss: ^8.2.15 - checksum: b05763b68f7f23333f408734f13be4bde641934ecbde25ac7d7fa648ab5e826716bffac0193067b317e861c6dabad81db9c012e865a83f81b6bce5c7e25c0fdd + postcss: ^8.4.31 + checksum: 229681f9b89ba0909b4c69563837b0c32cc3d1c17ed1b00c33d4abfb0a0ef455124968e4885b5f92c64482e92074cd1958018ec111ed5d118f1e24baeda19c14 languageName: node linkType: hard -"postcss-convert-values@npm:^6.0.0": - version: 6.0.0 - resolution: "postcss-convert-values@npm:6.0.0" +"postcss-convert-values@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-convert-values@npm:6.0.2" dependencies: - browserslist: "npm:^4.21.4" + browserslist: "npm:^4.22.2" postcss-value-parser: "npm:^4.2.0" peerDependencies: - postcss: ^8.2.15 - checksum: 8c20d31a39e0ddf7db4fde0da62e293279b5ee84c36919f2e5760650fa6f2984f1a40bfdbe8d1f7829bd37b17e5e589535f0aaaf71d4df29ad203cef830b9d7a + postcss: ^8.4.31 + checksum: 882d0b7839ef07ac8ffbf9cb48db0f610939a3496bd0321c7f23096ead676f13e09ab3d9c20ff3dbe2c887e855826051ca7dffeaffce5068cfdc9aaa573a3842 languageName: node linkType: hard @@ -5530,39 +5530,39 @@ __metadata: languageName: node linkType: hard -"postcss-discard-comments@npm:^6.0.0": - version: 6.0.0 - resolution: "postcss-discard-comments@npm:6.0.0" +"postcss-discard-comments@npm:^6.0.1": + version: 6.0.1 + resolution: "postcss-discard-comments@npm:6.0.1" peerDependencies: - postcss: ^8.2.15 - checksum: c8792cd99c7696b21917d55937e02fb854a82ee308edf7564f18ad19bec4abf4756ba234e17f7d129d6b0dbaf6253bcddc435b1aeee190d4d26dcc2448f5453a + postcss: ^8.4.31 + checksum: 5e9128ffb8c005081bb0521f5a23cf090e8513d928ed39935504ffde2e335a62a7e1a749c5c7bc2d03f06a8667900d19dd7eed19dfa4273043b5fd760476260d languageName: node linkType: hard -"postcss-discard-duplicates@npm:^6.0.0": - version: 6.0.0 - resolution: "postcss-discard-duplicates@npm:6.0.0" +"postcss-discard-duplicates@npm:^6.0.1": + version: 6.0.1 + resolution: "postcss-discard-duplicates@npm:6.0.1" peerDependencies: - postcss: ^8.2.15 - checksum: 5fb0de3b187b09538a8c10f25bcc3e7b0865337a96a0599f8213864f0d52812f6c90142d170258293a30484b95e096dee28fc8fddb302016f93d4a8d269bb18f + postcss: ^8.4.31 + checksum: b9ea10a3c7528bb1630613c11756f809a95da634822d943fa91b28f2a37787e7cdb9ff96deed9776e2c3753d35e42c8afd5074b630930df7b5150573d4beda23 languageName: node linkType: hard -"postcss-discard-empty@npm:^6.0.0": - version: 6.0.0 - resolution: "postcss-discard-empty@npm:6.0.0" +"postcss-discard-empty@npm:^6.0.1": + version: 6.0.1 + resolution: "postcss-discard-empty@npm:6.0.1" peerDependencies: - postcss: ^8.2.15 - checksum: 5dfe01f93ee2bb85e71f7832498bd051b772b9c724a5630f749237b07a14b47c2b2800b4215ab4cf0d8cba29552725b40334f3ef9d349f7aacf410ad351715dc + postcss: ^8.4.31 + checksum: 6b95e588a3e8fb262e56bd313060daf29d7c9d44184bb6c4c5858ae81d6cd2907b15b3e3023b6621d50a67cfc10e6077920ff1e908892b207dee29477376498f languageName: node linkType: hard -"postcss-discard-overridden@npm:^6.0.0": - version: 6.0.0 - resolution: "postcss-discard-overridden@npm:6.0.0" +"postcss-discard-overridden@npm:^6.0.1": + version: 6.0.1 + resolution: "postcss-discard-overridden@npm:6.0.1" peerDependencies: - postcss: ^8.2.15 - checksum: 3a0c91241a95a887ef10227c761fb2c48870966bda5530de635002e485abc2743dfbfdc96e3b6a21f10c6231f0cfbe1a0eae0a01a89629d64a711eab3ee008c6 + postcss: ^8.4.31 + checksum: 22f9d56e53b90bc0f8e6d1c24d6da6c7c1a9d757644a128a7a4263a5479aaa8eca4ce3bfe9db10358051635ed40e8778a68c3f1831b7163eae10ced001db4a87 languageName: node linkType: hard @@ -5668,77 +5668,77 @@ __metadata: languageName: node linkType: hard -"postcss-merge-longhand@npm:^6.0.0": - version: 6.0.0 - resolution: "postcss-merge-longhand@npm:6.0.0" +"postcss-merge-longhand@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-merge-longhand@npm:6.0.2" dependencies: postcss-value-parser: "npm:^4.2.0" - stylehacks: "npm:^6.0.0" + stylehacks: "npm:^6.0.2" peerDependencies: - postcss: ^8.2.15 - checksum: 0b67c590d301ab7f087ea7421e1eac0cccd2ff1c146a2dfa16d3f32b770d12a5999b8c6ea177efc443f4fb9df13b941c401365c634533878eef1982ad9d0bb98 + postcss: ^8.4.31 + checksum: 2b3fae51bffc5962258d638bc7f415237593b515f369233e023f0eae5b13116297463c04b8c47a7b7af51cba5faaa7f517b653f6123e51935d670d4d4de5a26d languageName: node linkType: hard -"postcss-merge-rules@npm:^6.0.1": - version: 6.0.1 - resolution: "postcss-merge-rules@npm:6.0.1" +"postcss-merge-rules@npm:^6.0.3": + version: 6.0.3 + resolution: "postcss-merge-rules@npm:6.0.3" dependencies: - browserslist: "npm:^4.21.4" + browserslist: "npm:^4.22.2" caniuse-api: "npm:^3.0.0" - cssnano-utils: "npm:^4.0.0" - postcss-selector-parser: "npm:^6.0.5" + cssnano-utils: "npm:^4.0.1" + postcss-selector-parser: "npm:^6.0.15" peerDependencies: - postcss: ^8.2.15 - checksum: b6a2a196905cd170757aa7b8bc74dab1fc7e2b2ca6a19c6d355fb7c41ff736023b4176c1008a7049f6a1b24a94a30d066c4e51229c1282a941f7fd6056085af7 + postcss: ^8.4.31 + checksum: c8355db11aa60bedcb1e6535fcd70f6ecec2dadd5c2975d3accf0eedbc92af782ac1f5e91a53866816ce332e4cbf1b94749a9425067935be066bc0c974e30fee languageName: node linkType: hard -"postcss-minify-font-values@npm:^6.0.0": - version: 6.0.0 - resolution: "postcss-minify-font-values@npm:6.0.0" +"postcss-minify-font-values@npm:^6.0.1": + version: 6.0.1 + resolution: "postcss-minify-font-values@npm:6.0.1" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: - postcss: ^8.2.15 - checksum: 6b74b1ec19bf76dcae7947c42145cb200b38767680512728f76168ae246db453798760e56111bd28ade9011d3655a79da4b33a93e5349f98fb0c1b22cc65ff36 + postcss: ^8.4.31 + checksum: 15af236245a6d27f1c83c943ef90d144ca043894bbd86f134506a984811a936a06824739984824965c7c3fd5a0ff4ed299f26a33f3b628662aa4fb40d7536fd0 languageName: node linkType: hard -"postcss-minify-gradients@npm:^6.0.0": - version: 6.0.0 - resolution: "postcss-minify-gradients@npm:6.0.0" +"postcss-minify-gradients@npm:^6.0.1": + version: 6.0.1 + resolution: "postcss-minify-gradients@npm:6.0.1" dependencies: colord: "npm:^2.9.1" - cssnano-utils: "npm:^4.0.0" + cssnano-utils: "npm:^4.0.1" postcss-value-parser: "npm:^4.2.0" peerDependencies: - postcss: ^8.2.15 - checksum: 59046acd470bee151291ba99421846d776c4ed243acb05a005e74f64f92b968d712d35e727f5e4a90e632d6d6aeb3a01083469f50bfdf1fb9ecae7f4ae52d9b8 + postcss: ^8.4.31 + checksum: e700c3f6dc425072ff739fb18bb71c970599e0d909b326f4a5c84e91cf24c4f1ee78e4d161bd4cdf6e25b7d78f1ad082bb885afdd2a150f9b281520fc6359d5c languageName: node linkType: hard -"postcss-minify-params@npm:^6.0.0": - version: 6.0.0 - resolution: "postcss-minify-params@npm:6.0.0" +"postcss-minify-params@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-minify-params@npm:6.0.2" dependencies: - browserslist: "npm:^4.21.4" - cssnano-utils: "npm:^4.0.0" + browserslist: "npm:^4.22.2" + cssnano-utils: "npm:^4.0.1" postcss-value-parser: "npm:^4.2.0" peerDependencies: - postcss: ^8.2.15 - checksum: d4d1469b7ad7fe53900eb19c156ec6dcfeaf71641d29ba4df31f47d8fa8ac700df5b8d3e3768e66d695d5356ed348cea901314653046c8e48422962f165a1933 + postcss: ^8.4.31 + checksum: 6638460d2be4a2eca8adee8409b70d6c6a19aff8cf93fda1b45c9da627b258b6baaa6acb48f51d26cd287704a235f9c9ae2e4744335b1fd47e163177c33896df languageName: node linkType: hard -"postcss-minify-selectors@npm:^6.0.0": - version: 6.0.0 - resolution: "postcss-minify-selectors@npm:6.0.0" +"postcss-minify-selectors@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-minify-selectors@npm:6.0.2" dependencies: - postcss-selector-parser: "npm:^6.0.5" + postcss-selector-parser: "npm:^6.0.15" peerDependencies: - postcss: ^8.2.15 - checksum: 1cdd3bd231cf25f54ab370d959f727dfcbe839a1d97bcfd65add9df73747a45d299a009ff16111bbe78943e8f81dcf5f84ae4106847b23dd3652de7aadc0b297 + postcss: ^8.4.31 + checksum: 5437b586c1237fc442e7e6078d4f23c987efc456366368b07a0da67332b04bd55821cedf0441e73e1209689f63139e272d930508e2963ba6e27c46561a661128 languageName: node linkType: hard @@ -5798,101 +5798,101 @@ __metadata: languageName: node linkType: hard -"postcss-normalize-charset@npm:^6.0.0": - version: 6.0.0 - resolution: "postcss-normalize-charset@npm:6.0.0" +"postcss-normalize-charset@npm:^6.0.1": + version: 6.0.1 + resolution: "postcss-normalize-charset@npm:6.0.1" peerDependencies: - postcss: ^8.2.15 - checksum: 5232eac7f62097b1d349546182af2db7db34989867c147517cd407ab23c8450558a7f858eb8dac130959dae2d02d3460c5afa510e0ffe22221cb218f2bd79adb + postcss: ^8.4.31 + checksum: 8c09eedaf8813123875c65ab35120f14a87d6b9e8d6805fa808e3a714a8f868d15123f34f61e2240d89225f2f5c2bdabbcdf6385ce86b2487370d8994a65a857 languageName: node linkType: hard -"postcss-normalize-display-values@npm:^6.0.0": - version: 6.0.0 - resolution: "postcss-normalize-display-values@npm:6.0.0" +"postcss-normalize-display-values@npm:^6.0.1": + version: 6.0.1 + resolution: "postcss-normalize-display-values@npm:6.0.1" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: - postcss: ^8.2.15 - checksum: 58163258a52610fa0d2b61bd6e872b9a2b25da1f2209cbf34fad3b62a4139fff9e0e6b298dcd1adfe6ac556098aad8b79c387280f3a949180f8fb12e6b41fecf + postcss: ^8.4.31 + checksum: d08a92c653fb4f2506e029ceb8e3fdae9bc937fb1a7e80ecde759d02f6d15f69211af384d89d8582b160fd129abd9c77c8c64d75379417098ee5a2ba779e33d3 languageName: node linkType: hard -"postcss-normalize-positions@npm:^6.0.0": - version: 6.0.0 - resolution: "postcss-normalize-positions@npm:6.0.0" +"postcss-normalize-positions@npm:^6.0.1": + version: 6.0.1 + resolution: "postcss-normalize-positions@npm:6.0.1" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: - postcss: ^8.2.15 - checksum: de2ced6cfdf2931d7cbc8f9c96bb12487119dba1b454c7ac01fd19f7afdaa9bf6c63f59624281293379ead5a3d5e883007a3f192f02c40ab41528ccc5a399f5c + postcss: ^8.4.31 + checksum: bb0267b13c92791543f5e9f94b119a0540e08aa46f600acd73a692cd38d07d2d2fddb11148a81adb58e3f65671eebb05ea38d2ded48f3202b2582f1199aa848e languageName: node linkType: hard -"postcss-normalize-repeat-style@npm:^6.0.0": - version: 6.0.0 - resolution: "postcss-normalize-repeat-style@npm:6.0.0" +"postcss-normalize-repeat-style@npm:^6.0.1": + version: 6.0.1 + resolution: "postcss-normalize-repeat-style@npm:6.0.1" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: - postcss: ^8.2.15 - checksum: 1643132094067709ca7d1fa2beededd28565c83bc8a6c2a4dec879a97e1d425ca1293a8832a45732eef12b52960f024330cfb654a8a222fb7ea768a75989c31e + postcss: ^8.4.31 + checksum: f6e943dbbf9341dd6ce2c9fc6820e8ae2a838d1db84f58f75b1e5c1b8b9d6895d17fb30b320e2189b8747f844713ec687540b5b1d52ccd6c9108d6d35328c659 languageName: node linkType: hard -"postcss-normalize-string@npm:^6.0.0": - version: 6.0.0 - resolution: "postcss-normalize-string@npm:6.0.0" +"postcss-normalize-string@npm:^6.0.1": + version: 6.0.1 + resolution: "postcss-normalize-string@npm:6.0.1" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: - postcss: ^8.2.15 - checksum: d586ce274451229c6a3d625edef882b342ab7702babb632845c8c201c7bcc08481f282000d19d17edb7b5ef0b1982e715a16ab60990d124e937c4aef3304151e + postcss: ^8.4.31 + checksum: afcdd69522fc3ebafc349c2ef4b62f1e734ade9b6148fd20f2b841477808ac6cf6e5bfbb533c492fdc6bb2184b84be8ebb800a6ae174c4313f87fb0695088cc0 languageName: node linkType: hard -"postcss-normalize-timing-functions@npm:^6.0.0": - version: 6.0.0 - resolution: "postcss-normalize-timing-functions@npm:6.0.0" +"postcss-normalize-timing-functions@npm:^6.0.1": + version: 6.0.1 + resolution: "postcss-normalize-timing-functions@npm:6.0.1" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: - postcss: ^8.2.15 - checksum: a70742648cec15eea031096f2ad99c21c79228ce4c4ccc9f63c277c07e9e3add96298cc67b0b1797896507248153e0a662f85f490f53147ded7008b459dd5ba3 + postcss: ^8.4.31 + checksum: c1c81d0dcb2f74fbd69cc45b0b6bd6cde390a0c9df602aabbf3eb2149a49da48e808837e811d22a525ffb036e158e63b4b2cf12c94cf28f2c2f6af858876134e languageName: node linkType: hard -"postcss-normalize-unicode@npm:^6.0.0": - version: 6.0.0 - resolution: "postcss-normalize-unicode@npm:6.0.0" +"postcss-normalize-unicode@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-normalize-unicode@npm:6.0.2" dependencies: - browserslist: "npm:^4.21.4" + browserslist: "npm:^4.22.2" postcss-value-parser: "npm:^4.2.0" peerDependencies: - postcss: ^8.2.15 - checksum: cd9b06ed09c29ccc0b2cb222044d7ec49fb710fdd6f0878b26d7f3324478d8271a555ba3d82fc8d9fdcf8671a83c499cdfa09c0e73d4dee928adff4042ed8b22 + postcss: ^8.4.31 + checksum: ea696194f65ad31de2a9c022f1946a07c298f04070706d88a20061845e1e052e645c74b5bc785595814db87d14e435f85e968a44855dedc207d8c0b5d43b1aee languageName: node linkType: hard -"postcss-normalize-url@npm:^6.0.0": - version: 6.0.0 - resolution: "postcss-normalize-url@npm:6.0.0" +"postcss-normalize-url@npm:^6.0.1": + version: 6.0.1 + resolution: "postcss-normalize-url@npm:6.0.1" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: - postcss: ^8.2.15 - checksum: 719a7feee4adf638cc0b4bc204d89485388ca81f0ad0a181a225122f488f956abd29f429d69e5a57fffe93fbd2a22eab7737bd8b55b19979efba26e008b2ec11 + postcss: ^8.4.31 + checksum: 4e3e713a95e01f263feccd041b2b10016a0a09e494c81567f012d1326d9b2d57dc4a68956a820313630370c0ef591bdbb37cc96ed259022559623be179aad436 languageName: node linkType: hard -"postcss-normalize-whitespace@npm:^6.0.0": - version: 6.0.0 - resolution: "postcss-normalize-whitespace@npm:6.0.0" +"postcss-normalize-whitespace@npm:^6.0.1": + version: 6.0.1 + resolution: "postcss-normalize-whitespace@npm:6.0.1" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: - postcss: ^8.2.15 - checksum: 8421dd5813c1e555d7c2847dd8b71a5138ee2091341ebd1ea686d5b00cd46d249a29027e142289f873ca7f5fc995b51eb68f9693fec6d61cf951c759d109c37d + postcss: ^8.4.31 + checksum: 259c0b7653f033ed14303602a30e458c37dc63ee55f47226b6379a6ea553ca7c9b971d49715b8f3f36a3a06927f6f87d7997c027ad4664af3bca37a5fe30352e languageName: node linkType: hard @@ -5905,15 +5905,15 @@ __metadata: languageName: node linkType: hard -"postcss-ordered-values@npm:^6.0.0": - version: 6.0.0 - resolution: "postcss-ordered-values@npm:6.0.0" +"postcss-ordered-values@npm:^6.0.1": + version: 6.0.1 + resolution: "postcss-ordered-values@npm:6.0.1" dependencies: - cssnano-utils: "npm:^4.0.0" + cssnano-utils: "npm:^4.0.1" postcss-value-parser: "npm:^4.2.0" peerDependencies: - postcss: ^8.2.15 - checksum: b01352b0ea014e0037a5b8b3bd866696924bfb2cf3b47b73547786a1954e6771c04790fbe4c651bf029bafdbfde70f49e611f9ef309e945f753425841f343017 + postcss: ^8.4.31 + checksum: 2e71f035c90b26d7a8d31e1b716f977532367f75bc76de3318b6ba7b2e1ec43c011cc09e741f59f7d93dff427b7d90a35db0b460d2f171a6f0c6e8c938ef30ad languageName: node linkType: hard @@ -6029,26 +6029,26 @@ __metadata: languageName: node linkType: hard -"postcss-reduce-initial@npm:^6.0.0": - version: 6.0.0 - resolution: "postcss-reduce-initial@npm:6.0.0" +"postcss-reduce-initial@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-reduce-initial@npm:6.0.2" dependencies: - browserslist: "npm:^4.21.4" + browserslist: "npm:^4.22.2" caniuse-api: "npm:^3.0.0" peerDependencies: - postcss: ^8.2.15 - checksum: 7cf6340bde9f70c7d9b20bc3ee53e883bf27ed56fcc3bb2a2c736b311d977098a7c3a6b9e4be4d2c159d0042bf7742bb5af59628cd89cf838968dacc5ae15c80 + postcss: ^8.4.31 + checksum: d35ad6f9725cdceb390a97a461e8594df7fbed4c55497c90d07c42f8343bf80139e720eaebc580bf480bf10e92959490aa308af66d8802ba71c327bdf08c93a1 languageName: node linkType: hard -"postcss-reduce-transforms@npm:^6.0.0": - version: 6.0.0 - resolution: "postcss-reduce-transforms@npm:6.0.0" +"postcss-reduce-transforms@npm:^6.0.1": + version: 6.0.1 + resolution: "postcss-reduce-transforms@npm:6.0.1" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: - postcss: ^8.2.15 - checksum: 6da900d22dd8760b8a2ace32013036e3c4c4d9d560c31255eceea54563e3ddb2ca830bc9072fe2a1abacb8c48a008656887fc2f6ba1873e590342ad8e6bc269d + postcss: ^8.4.31 + checksum: de7631302311071d86622166539162e69df506785e3674afab0602c86ed9aa67799e44405b40327f0011d58089d2dc4e2ae481b21812177818e28f9272d350a5 languageName: node linkType: hard @@ -6097,36 +6097,36 @@ __metadata: languageName: node linkType: hard -"postcss-selector-parser@npm:^6.0.10, postcss-selector-parser@npm:^6.0.11, postcss-selector-parser@npm:^6.0.13, postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4, postcss-selector-parser@npm:^6.0.5": - version: 6.0.13 - resolution: "postcss-selector-parser@npm:6.0.13" +"postcss-selector-parser@npm:^6.0.10, postcss-selector-parser@npm:^6.0.11, postcss-selector-parser@npm:^6.0.13, postcss-selector-parser@npm:^6.0.15, postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4": + version: 6.0.15 + resolution: "postcss-selector-parser@npm:6.0.15" dependencies: cssesc: "npm:^3.0.0" util-deprecate: "npm:^1.0.2" - checksum: 51f099b27f7c7198ea1826470ef0adfa58b3bd3f59b390fda123baa0134880a5fa9720137b6009c4c1373357b144f700b0edac73335d0067422063129371444e + checksum: 48b425d6cef497bcf6b7d136f6fd95cfca43026955e07ec9290d3c15457de3a862dbf251dd36f42c07a0d5b5ab6f31e41acefeff02528995a989b955505e440b languageName: node linkType: hard -"postcss-svgo@npm:^6.0.0": - version: 6.0.0 - resolution: "postcss-svgo@npm:6.0.0" +"postcss-svgo@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-svgo@npm:6.0.2" dependencies: postcss-value-parser: "npm:^4.2.0" - svgo: "npm:^3.0.2" + svgo: "npm:^3.2.0" peerDependencies: - postcss: ^8.2.15 - checksum: ec567cd5e982e3c0393695628bc508b87dcfe4e4b2049930e79e6c629c349fad19403f0d39d76ceda3e0f15ffd065304e76152f397fae2f3f848cdb847a0b564 + postcss: ^8.4.31 + checksum: db607404d09af256c7957a0ace822d651a00a52a1796da603f93ba3f0a095ac7595e1f624b9dc53f362ab10e382845d7873f485980f9c92fcb86256833f5e835 languageName: node linkType: hard -"postcss-unique-selectors@npm:^6.0.0": - version: 6.0.0 - resolution: "postcss-unique-selectors@npm:6.0.0" +"postcss-unique-selectors@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-unique-selectors@npm:6.0.2" dependencies: - postcss-selector-parser: "npm:^6.0.5" + postcss-selector-parser: "npm:^6.0.15" peerDependencies: - postcss: ^8.2.15 - checksum: 63e81a7965ff8874fdf39ef0ae0f12cc21352548733538f52eda73f0ed5a7fab7fda9090facf50395d07873c5a6f02d31a6171fd476c80858b03090ec4c61d31 + postcss: ^8.4.31 + checksum: a0fe112d1094f90e1bfcfd2174a74b2fd0630a24449e9942923d02956c7d64ea4add5adede53d9efb3f6d40cd388ac150d032a115f6a46b73d5f3d3d26fa1bb7 languageName: node linkType: hard @@ -6137,7 +6137,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:8.4.33, postcss@npm:^8.4.24, postcss@npm:^8.4.31, postcss@npm:^8.4.32": +"postcss@npm:8.4.33, postcss@npm:^8.4.31, postcss@npm:^8.4.32, postcss@npm:^8.4.33": version: 8.4.33 resolution: "postcss@npm:8.4.33" dependencies: @@ -6461,7 +6461,7 @@ __metadata: languageName: node linkType: hard -"schema-utils@npm:^4.0.0, schema-utils@npm:^4.0.1": +"schema-utils@npm:^4.0.0, schema-utils@npm:^4.2.0": version: 4.2.0 resolution: "schema-utils@npm:4.2.0" dependencies: @@ -6502,12 +6502,12 @@ __metadata: languageName: node linkType: hard -"serialize-javascript@npm:^6.0.1": - version: 6.0.1 - resolution: "serialize-javascript@npm:6.0.1" +"serialize-javascript@npm:^6.0.1, serialize-javascript@npm:^6.0.2": + version: 6.0.2 + resolution: "serialize-javascript@npm:6.0.2" dependencies: randombytes: "npm:^2.1.0" - checksum: 1af427f4fee3fee051f54ffe15f77068cff78a3c96d20f5c1178d20630d3ab122d8350e639d5e13cde8111ef9db9439b871305ffb185e24be0a2149cec230988 + checksum: 2dd09ef4b65a1289ba24a788b1423a035581bef60817bea1f01eda8e3bda623f86357665fe7ac1b50f6d4f583f97db9615b3f07b2a2e8cbcb75033965f771dd2 languageName: node linkType: hard @@ -6722,15 +6722,15 @@ __metadata: languageName: node linkType: hard -"stylehacks@npm:^6.0.0": - version: 6.0.0 - resolution: "stylehacks@npm:6.0.0" +"stylehacks@npm:^6.0.2": + version: 6.0.2 + resolution: "stylehacks@npm:6.0.2" dependencies: - browserslist: "npm:^4.21.4" - postcss-selector-parser: "npm:^6.0.4" + browserslist: "npm:^4.22.2" + postcss-selector-parser: "npm:^6.0.15" peerDependencies: - postcss: ^8.2.15 - checksum: 6ce277c816dd826fdc765258d612a160bad03dae52ab51ef1676efae07e96923ebeb6880d6522eefc50d2e81cb90b632615120c73aed190f345e8d836def67b6 + postcss: ^8.4.31 + checksum: 658cac8b28edcb94d1db67808ab3aaa511cb1b9293594fc95607ee42ac4f57e742d9a1fa3ff5d5849db692971dc2a310e9ac1ed0bd4ea4bc48c80f5a6ef823fc languageName: node linkType: hard @@ -6862,19 +6862,20 @@ __metadata: languageName: node linkType: hard -"svgo@npm:^3.0.2": - version: 3.0.2 - resolution: "svgo@npm:3.0.2" +"svgo@npm:^3.2.0": + version: 3.2.0 + resolution: "svgo@npm:3.2.0" dependencies: "@trysound/sax": "npm:0.2.0" commander: "npm:^7.2.0" css-select: "npm:^5.1.0" - css-tree: "npm:^2.2.1" + css-tree: "npm:^2.3.1" + css-what: "npm:^6.1.0" csso: "npm:^5.0.5" picocolors: "npm:^1.0.0" bin: - svgo: bin/svgo - checksum: d682d416dd68cdcbab5e1e77b93d621325480e97dfe87777e845ea9a0ce05d03fc837ce17080af67e787f6b24430b805ff79f4591dda30a0ab4060b6a3ac2adf + svgo: ./bin/svgo + checksum: 28fa9061ccbcf2e3616d48d1feb613aaa05f8f290a329beb0e585914f1864385152934a7d4d683a4609fafbae3d51666633437c359c5c5ef74fb58ad09092a7c languageName: node linkType: hard From 8f955329ba92e57137ce8cc237d9fcd5ed1ce70d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Jan 2024 13:07:56 -0800 Subject: [PATCH 0189/1216] Update dependency css-loader to v6.9.1 (#8885) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/yarn.lock | 34 +++++++++++++++++----------------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/war/package.json b/war/package.json index bca0ed52faeb..06dc00efb414 100644 --- a/war/package.json +++ b/war/package.json @@ -28,7 +28,7 @@ "@babel/preset-env": "7.23.8", "babel-loader": "9.1.3", "clean-webpack-plugin": "4.0.0", - "css-loader": "6.9.0", + "css-loader": "6.9.1", "css-minimizer-webpack-plugin": "6.0.0", "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", diff --git a/war/yarn.lock b/war/yarn.lock index cdf68c0bc96f..d1f2dc0b4c5a 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -3108,21 +3108,21 @@ __metadata: languageName: node linkType: hard -"css-loader@npm:6.9.0": - version: 6.9.0 - resolution: "css-loader@npm:6.9.0" +"css-loader@npm:6.9.1": + version: 6.9.1 + resolution: "css-loader@npm:6.9.1" dependencies: icss-utils: "npm:^5.1.0" - postcss: "npm:^8.4.31" + postcss: "npm:^8.4.33" postcss-modules-extract-imports: "npm:^3.0.0" - postcss-modules-local-by-default: "npm:^4.0.3" - postcss-modules-scope: "npm:^3.1.0" + postcss-modules-local-by-default: "npm:^4.0.4" + postcss-modules-scope: "npm:^3.1.1" postcss-modules-values: "npm:^4.0.0" postcss-value-parser: "npm:^4.2.0" semver: "npm:^7.5.4" peerDependencies: webpack: ^5.0.0 - checksum: dded9ddbf3d7d2befe6a6c8fc861a46790626219a732ada3e52d02833dd2731d81b5f9ac7be51d3871b48d1a4b840668598e033f5f82790e892c6942139dbf9c + checksum: 3dfff7d4372a1d8f2b1606a8376f2f5e484e59d7ffdc373ea3b04aa2b54ecd052aaf72c090a97148b0eb8a164cdc1f9dcb7a68686b2d5d190d69367c30f76132 languageName: node linkType: hard @@ -4432,7 +4432,7 @@ __metadata: "@babel/preset-env": "npm:7.23.8" babel-loader: "npm:9.1.3" clean-webpack-plugin: "npm:4.0.0" - css-loader: "npm:6.9.0" + css-loader: "npm:6.9.1" css-minimizer-webpack-plugin: "npm:6.0.0" eslint: "npm:8.56.0" eslint-config-prettier: "npm:9.1.0" @@ -5751,27 +5751,27 @@ __metadata: languageName: node linkType: hard -"postcss-modules-local-by-default@npm:^4.0.3": - version: 4.0.3 - resolution: "postcss-modules-local-by-default@npm:4.0.3" +"postcss-modules-local-by-default@npm:^4.0.4": + version: 4.0.4 + resolution: "postcss-modules-local-by-default@npm:4.0.4" dependencies: icss-utils: "npm:^5.0.0" postcss-selector-parser: "npm:^6.0.2" postcss-value-parser: "npm:^4.1.0" peerDependencies: postcss: ^8.1.0 - checksum: be49b86efbfb921f42287e227584aac91af9826fc1083db04958ae283dfe215ca539421bfba71f9da0f0b10651f28e95a64b5faca7166f578a1933b8646051f7 + checksum: 9ebf464867eb10b29b73501b1466dcac8352ed852ef68ec23571f515daa74401d7ace9a6c72f354542081fdbb47d098c9bc6b05373b553a6e35779d072f967bb languageName: node linkType: hard -"postcss-modules-scope@npm:^3.1.0": - version: 3.1.0 - resolution: "postcss-modules-scope@npm:3.1.0" +"postcss-modules-scope@npm:^3.1.1": + version: 3.1.1 + resolution: "postcss-modules-scope@npm:3.1.1" dependencies: postcss-selector-parser: "npm:^6.0.4" peerDependencies: postcss: ^8.1.0 - checksum: bc8e12e9312d7070f34ccef2929f65154102e2b2984a385eaf2ef25b6d4e22234de71116c240a05b541a79946b717d6fa8c5d314f6697bf05f295261693050fe + checksum: 3ef6ac14fcda1581bc43e37622256bd87b99ea49c59b2aae648d057d57f5ecc634648cce9910166220a797567af674bc09246ccc010f1dd58d2863b805719109 languageName: node linkType: hard @@ -6137,7 +6137,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:8.4.33, postcss@npm:^8.4.31, postcss@npm:^8.4.32, postcss@npm:^8.4.33": +"postcss@npm:8.4.33, postcss@npm:^8.4.32, postcss@npm:^8.4.33": version: 8.4.33 resolution: "postcss@npm:8.4.33" dependencies: From 702d2f206330f43297654413e5df3d4bc73c1fd0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Jan 2024 13:11:05 -0800 Subject: [PATCH 0190/1216] Update dependency sass to v1.70.0 (#8883) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/war/package.json b/war/package.json index 06dc00efb414..031f53dea267 100644 --- a/war/package.json +++ b/war/package.json @@ -39,7 +39,7 @@ "postcss-preset-env": "9.3.0", "postcss-scss": "4.0.9", "prettier": "3.2.1", - "sass": "1.69.7", + "sass": "1.70.0", "sass-loader": "14.0.0", "style-loader": "3.3.4", "stylelint": "16.1.0", diff --git a/war/yarn.lock b/war/yarn.lock index d1f2dc0b4c5a..610d7f0c999b 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -4447,7 +4447,7 @@ __metadata: postcss-preset-env: "npm:9.3.0" postcss-scss: "npm:4.0.9" prettier: "npm:3.2.1" - sass: "npm:1.69.7" + sass: "npm:1.70.0" sass-loader: "npm:14.0.0" sortablejs: "npm:1.15.1" style-loader: "npm:3.3.4" @@ -6437,16 +6437,16 @@ __metadata: languageName: node linkType: hard -"sass@npm:1.69.7": - version: 1.69.7 - resolution: "sass@npm:1.69.7" +"sass@npm:1.70.0": + version: 1.70.0 + resolution: "sass@npm:1.70.0" dependencies: chokidar: "npm:>=3.0.0 <4.0.0" immutable: "npm:^4.0.0" source-map-js: "npm:>=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 773d0938e7d4ff3972d3fda3132f34fe98a2f712e028a58e28fecd615434795eff3266eddc38d5e13f03b90c0d6360d0e737b30bff2949a47280c64a18e0fb18 + checksum: 7c309ee1c096d591746d122da9f1ebd65b4c4b3a60c2cc0ec720fd98fe1205fa8b44c9f563d113b9fdfeb25af1e32ec9b3e048bd4b8e05d267f020953bd7baf0 languageName: node linkType: hard From d982cad688a11e2a4038e3818103de25fc5153a9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Jan 2024 13:14:18 -0800 Subject: [PATCH 0191/1216] Update dependency stylelint to v16.2.0 (#8886) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/yarn.lock | 62 ++++++++++++++++++++++++------------------------ 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/war/package.json b/war/package.json index 031f53dea267..323d17873537 100644 --- a/war/package.json +++ b/war/package.json @@ -42,7 +42,7 @@ "sass": "1.70.0", "sass-loader": "14.0.0", "style-loader": "3.3.4", - "stylelint": "16.1.0", + "stylelint": "16.2.0", "stylelint-checkstyle-reporter": "0.2.0", "stylelint-config-standard": "33.0.0", "webpack": "5.89.0", diff --git a/war/yarn.lock b/war/yarn.lock index 610d7f0c999b..71e285d06ef4 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -1402,29 +1402,29 @@ __metadata: languageName: node linkType: hard -"@csstools/css-parser-algorithms@npm:^2.3.2, @csstools/css-parser-algorithms@npm:^2.4.0": - version: 2.4.0 - resolution: "@csstools/css-parser-algorithms@npm:2.4.0" +"@csstools/css-parser-algorithms@npm:^2.3.2, @csstools/css-parser-algorithms@npm:^2.5.0": + version: 2.5.0 + resolution: "@csstools/css-parser-algorithms@npm:2.5.0" peerDependencies: - "@csstools/css-tokenizer": ^2.2.2 - checksum: bcfc067b9d1bd5e0bc6044bfbf6450a4a6837d88c5ffd081e2159d4e442c28f018b58c7c2b3ce176ba0bf76cbbce0fd3c65468a40b9867ad9b3e3ef90b9b2655 + "@csstools/css-tokenizer": ^2.2.3 + checksum: 31b4a523d956e204af9842183678cca5a88ad76551d54dcb6083f8a6f2dfd8fdec6c09bca5410842af54b90997308bebee7593c17dbc1a4e951453b54bd3f024 languageName: node linkType: hard -"@csstools/css-tokenizer@npm:^2.2.1, @csstools/css-tokenizer@npm:^2.2.2": - version: 2.2.2 - resolution: "@csstools/css-tokenizer@npm:2.2.2" - checksum: 9e7374aab06a811f868a85127af1ff07ad7a56e22e8c46930e789a907098bdd4e6eec82e0cb0d4b8ac1cd5cd054c1f0e329ec50d8548f57d660aeee7cf9b3167 +"@csstools/css-tokenizer@npm:^2.2.1, @csstools/css-tokenizer@npm:^2.2.3": + version: 2.2.3 + resolution: "@csstools/css-tokenizer@npm:2.2.3" + checksum: 557266ec52e8b36c19008a5bbd7151effba085cdd6d68270c01afebf914981caac698eda754b2a530a8a9947a3dd70e3f3a39a5e037c4170bb2a055a92754acb languageName: node linkType: hard -"@csstools/media-query-list-parser@npm:^2.1.5, @csstools/media-query-list-parser@npm:^2.1.6": - version: 2.1.6 - resolution: "@csstools/media-query-list-parser@npm:2.1.6" +"@csstools/media-query-list-parser@npm:^2.1.5, @csstools/media-query-list-parser@npm:^2.1.7": + version: 2.1.7 + resolution: "@csstools/media-query-list-parser@npm:2.1.7" peerDependencies: - "@csstools/css-parser-algorithms": ^2.4.0 - "@csstools/css-tokenizer": ^2.2.2 - checksum: 06da3e5c01e4785963b821ee2eb31f4fcec622f3b0e4e0748113f287c876f241be211ba11d435d0cc1f0e9f2e26baf5fbf6f8563dc88a49709c3d49e79490b76 + "@csstools/css-parser-algorithms": ^2.5.0 + "@csstools/css-tokenizer": ^2.2.3 + checksum: 433aef06b00f1d402fd24074a1919b8e2de94245a3b780da6466c8cc9e0f3cc93d2db930f0fce36c7d6908cd50b626cd61e803d3f62dddad79eeb742858028ef languageName: node linkType: hard @@ -4451,7 +4451,7 @@ __metadata: sass-loader: "npm:14.0.0" sortablejs: "npm:1.15.1" style-loader: "npm:3.3.4" - stylelint: "npm:16.1.0" + stylelint: "npm:16.2.0" stylelint-checkstyle-reporter: "npm:0.2.0" stylelint-config-standard: "npm:33.0.0" tippy.js: "npm:6.3.7" @@ -4839,10 +4839,10 @@ __metadata: languageName: node linkType: hard -"meow@npm:^13.0.0": - version: 13.0.0 - resolution: "meow@npm:13.0.0" - checksum: fab0f91578154c048e792a81704f3f28099ffff900f364df8a85f6e770a57e1c124859a25e186186e149dad30692c7893af0dfd71517bea343bfe5d749b1fa04 +"meow@npm:^13.1.0": + version: 13.1.0 + resolution: "meow@npm:13.1.0" + checksum: 2dac9dbf99a17ce29618fe5919072a9b28e2aedb9547f9b1f15d046d5501dd6c14fe1f35f7a5665d0ee7111c98c4d359fcf3f985463ec5896dd50177363f442d languageName: node linkType: hard @@ -6137,7 +6137,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:8.4.33, postcss@npm:^8.4.32, postcss@npm:^8.4.33": +"postcss@npm:8.4.33, postcss@npm:^8.4.33": version: 8.4.33 resolution: "postcss@npm:8.4.33" dependencies: @@ -6763,13 +6763,13 @@ __metadata: languageName: node linkType: hard -"stylelint@npm:16.1.0": - version: 16.1.0 - resolution: "stylelint@npm:16.1.0" +"stylelint@npm:16.2.0": + version: 16.2.0 + resolution: "stylelint@npm:16.2.0" dependencies: - "@csstools/css-parser-algorithms": "npm:^2.4.0" - "@csstools/css-tokenizer": "npm:^2.2.2" - "@csstools/media-query-list-parser": "npm:^2.1.6" + "@csstools/css-parser-algorithms": "npm:^2.5.0" + "@csstools/css-tokenizer": "npm:^2.2.3" + "@csstools/media-query-list-parser": "npm:^2.1.7" "@csstools/selector-specificity": "npm:^3.0.1" balanced-match: "npm:^2.0.0" colord: "npm:^2.9.3" @@ -6789,14 +6789,14 @@ __metadata: is-plain-object: "npm:^5.0.0" known-css-properties: "npm:^0.29.0" mathml-tag-names: "npm:^2.1.3" - meow: "npm:^13.0.0" + meow: "npm:^13.1.0" micromatch: "npm:^4.0.5" normalize-path: "npm:^3.0.0" picocolors: "npm:^1.0.0" - postcss: "npm:^8.4.32" + postcss: "npm:^8.4.33" postcss-resolve-nested-selector: "npm:^0.1.1" postcss-safe-parser: "npm:^7.0.0" - postcss-selector-parser: "npm:^6.0.13" + postcss-selector-parser: "npm:^6.0.15" postcss-value-parser: "npm:^4.2.0" resolve-from: "npm:^5.0.0" string-width: "npm:^4.2.3" @@ -6807,7 +6807,7 @@ __metadata: write-file-atomic: "npm:^5.0.1" bin: stylelint: bin/stylelint.mjs - checksum: 765eea0b07319d1e7989502c07b8b5794938e5a8542bec00990b09ec10c3f7006891689930099e948d06c9ef9982066edb98b1ea64a435138a6b0f0905eb2b87 + checksum: 6fdf0451833c11b18c9aa502f687febd6881a912ac94f39d509b894b0f74ccb636f3dac2991c69cc82dc6190731cc2fa48e307fed477d2a0fce57067cd22b572 languageName: node linkType: hard From d480a76706f3b7f77effc106549795fe8c994355 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Jan 2024 13:20:12 -0800 Subject: [PATCH 0192/1216] Update dependency prettier to v3.2.4 (#8892) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/.babelrc | 2 +- war/package.json | 2 +- war/yarn.lock | 10 +++++----- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/war/.babelrc b/war/.babelrc index 0715456ee108..1320b9a3272a 100644 --- a/war/.babelrc +++ b/war/.babelrc @@ -1,3 +1,3 @@ { - "presets": ["@babel/preset-env"], + "presets": ["@babel/preset-env"] } diff --git a/war/package.json b/war/package.json index 323d17873537..c073a11bc3fa 100644 --- a/war/package.json +++ b/war/package.json @@ -38,7 +38,7 @@ "postcss-loader": "8.0.0", "postcss-preset-env": "9.3.0", "postcss-scss": "4.0.9", - "prettier": "3.2.1", + "prettier": "3.2.4", "sass": "1.70.0", "sass-loader": "14.0.0", "style-loader": "3.3.4", diff --git a/war/yarn.lock b/war/yarn.lock index 71e285d06ef4..f9a24b825272 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -4446,7 +4446,7 @@ __metadata: postcss-loader: "npm:8.0.0" postcss-preset-env: "npm:9.3.0" postcss-scss: "npm:4.0.9" - prettier: "npm:3.2.1" + prettier: "npm:3.2.4" sass: "npm:1.70.0" sass-loader: "npm:14.0.0" sortablejs: "npm:1.15.1" @@ -6155,12 +6155,12 @@ __metadata: languageName: node linkType: hard -"prettier@npm:3.2.1": - version: 3.2.1 - resolution: "prettier@npm:3.2.1" +"prettier@npm:3.2.4": + version: 3.2.4 + resolution: "prettier@npm:3.2.4" bin: prettier: bin/prettier.cjs - checksum: e01284f25c1e9a96dfaf4f7d0bfdf0726b26afc732b0e645a2653174d4ad5a1e85ae21ec4d327c71536f1acf8fee1dff5ea35c5b4b8e5b83ff00fe1dd6fef146 + checksum: 88dfeb78ac6096522c9a5b81f1413d875f568420d9bb6a5e5103527912519b993f2bcdcac311fcff5718d5869671d44e4f85827d3626f3a6ce32b9abc65d88e0 languageName: node linkType: hard From 5b364bc022c51914bb2fb3e279d486085c53e0fd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Jan 2024 13:22:55 -0800 Subject: [PATCH 0193/1216] Update dependency sortablejs to v1.15.2 (#8871) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/war/package.json b/war/package.json index c073a11bc3fa..534a0e1fc8e9 100644 --- a/war/package.json +++ b/war/package.json @@ -54,7 +54,7 @@ "hotkeys-js": "3.12.2", "jquery": "3.7.1", "lodash": "4.17.21", - "sortablejs": "1.15.1", + "sortablejs": "1.15.2", "tippy.js": "6.3.7", "window-handle": "1.0.1" }, diff --git a/war/yarn.lock b/war/yarn.lock index f9a24b825272..29101d3d9dff 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -4449,7 +4449,7 @@ __metadata: prettier: "npm:3.2.4" sass: "npm:1.70.0" sass-loader: "npm:14.0.0" - sortablejs: "npm:1.15.1" + sortablejs: "npm:1.15.2" style-loader: "npm:3.3.4" stylelint: "npm:16.2.0" stylelint-checkstyle-reporter: "npm:0.2.0" @@ -6610,10 +6610,10 @@ __metadata: languageName: node linkType: hard -"sortablejs@npm:1.15.1": - version: 1.15.1 - resolution: "sortablejs@npm:1.15.1" - checksum: 851debae91d9f93f41ce705490999ab9fc0fa46bd08d9132647041a31bf8a3e1cd55a0629f9b16ca21879fb478b10e1ce9fa3bae61d540223ac1d3d774e300c4 +"sortablejs@npm:1.15.2": + version: 1.15.2 + resolution: "sortablejs@npm:1.15.2" + checksum: 9b9101f47a46976070f1e7ab45d1850a8754f6e71252506868731292af46a7f1a3add03914fe074cd2a6bdfe8cd6cad149cfa260fe8a53475f5306ae679bf38c languageName: node linkType: hard From 34a6d0e466cd2347a3a05b29c912bdab24a36a52 Mon Sep 17 00:00:00 2001 From: Daniel Beck <1831569+daniel-beck@users.noreply.github.com> Date: Wed, 24 Jan 2024 22:30:34 +0100 Subject: [PATCH 0194/1216] [JENKINS-72603] Update bundled Matrix Project Plugin to 822.824.v14451b_c0fd42 (#8891) --- test/pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index 317b3e306de7..3a3150fc9653 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -230,7 +230,7 @@ THE SOFTWARE. org.jenkins-ci.plugins matrix-project - 822.v01b_8c85d16d2 + 822.824.v14451b_c0fd42 test diff --git a/war/pom.xml b/war/pom.xml index 8d6d579e5919..1cfdf1ee5fed 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -310,7 +310,7 @@ THE SOFTWARE. org.jenkins-ci.plugins matrix-project - 818.v7eb_e657db_924 + 822.824.v14451b_c0fd42 hpi From a32f24c4498950c5d74ee0ee438f79ef5867e755 Mon Sep 17 00:00:00 2001 From: Balaji Sivasakthi Date: Thu, 25 Jan 2024 03:06:49 +0530 Subject: [PATCH 0195/1216] [JENKINS-72579] Adjust heap dump file name for compatibility with OpenJDK file suffix requirements (#8881) --- core/src/main/java/hudson/util/RemotingDiagnostics.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/util/RemotingDiagnostics.java b/core/src/main/java/hudson/util/RemotingDiagnostics.java index 61d97f91cbd7..993fe7849a44 100644 --- a/core/src/main/java/hudson/util/RemotingDiagnostics.java +++ b/core/src/main/java/hudson/util/RemotingDiagnostics.java @@ -176,7 +176,7 @@ public static FilePath getHeapDump(VirtualChannel channel) throws IOException, I private static class GetHeapDump extends MasterToSlaveCallable { @Override public FilePath call() throws IOException { - final File hprof = File.createTempFile("hudson-heapdump", "hprof"); + final File hprof = File.createTempFile("hudson-heapdump", ".hprof"); Files.delete(Util.fileToPath(hprof)); try { MBeanServer server = ManagementFactory.getPlatformMBeanServer(); From 49e5ab32ce40662fb4c1dca38931cf2ad4d9c3c1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Jan 2024 15:55:15 -0800 Subject: [PATCH 0196/1216] Bump org.jenkins-ci.plugins:cloudbees-folder from 6.858.v898218f3609d to 6.897.vb_943ea_6b_a_08b_ (#8894) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index 3a3150fc9653..bfe0afe3c149 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -200,7 +200,7 @@ THE SOFTWARE. org.jenkins-ci.plugins cloudbees-folder - 6.858.v898218f3609d + 6.897.vb_943ea_6b_a_08b_ test From 76d4e1eed426a39e327c31dbd8c5ccf607b74928 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Jan 2024 15:58:14 -0800 Subject: [PATCH 0197/1216] Bump org.glassfish.tyrus.bundles:tyrus-standalone-client-jdk from 2.1.4 to 2.1.5 (#8875) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- cli/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/pom.xml b/cli/pom.xml index 50588e3e692b..763d83529103 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -65,7 +65,7 @@ org.glassfish.tyrus.bundles tyrus-standalone-client-jdk - 2.1.4 + 2.1.5 true From 8aa627660907d3a15b9d7e23de01eaed6071bf41 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Jan 2024 15:58:38 -0800 Subject: [PATCH 0198/1216] Bump org.jenkins-ci.main:jenkins-test-harness from 2148.v80482520b_d2c to 2152.v60323ca_97732 (#8873) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index bfe0afe3c149..1506aa44e30a 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -131,7 +131,7 @@ THE SOFTWARE. ${project.groupId} jenkins-test-harness - 2148.v80482520b_d2c + 2152.v60323ca_97732 test From 3e83c64df4de7840cb7fbbac511af83e10cc5515 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Jan 2024 16:17:03 -0800 Subject: [PATCH 0199/1216] Update dependency stylelint-config-standard to v36 (#8805) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/src/main/scss/abstracts/_theme.scss | 1 + war/src/main/scss/base/_layout-commons.scss | 2 ++ .../scss/components/_side-panel-tasks.scss | 1 + war/yarn.lock | 24 +++++++++---------- 5 files changed, 17 insertions(+), 13 deletions(-) diff --git a/war/package.json b/war/package.json index 534a0e1fc8e9..517aa757eeff 100644 --- a/war/package.json +++ b/war/package.json @@ -44,7 +44,7 @@ "style-loader": "3.3.4", "stylelint": "16.2.0", "stylelint-checkstyle-reporter": "0.2.0", - "stylelint-config-standard": "33.0.0", + "stylelint-config-standard": "36.0.0", "webpack": "5.89.0", "webpack-cli": "5.1.4", "webpack-remove-empty-scripts": "1.0.4" diff --git a/war/src/main/scss/abstracts/_theme.scss b/war/src/main/scss/abstracts/_theme.scss index fa97f23d6b66..d779588c13e7 100644 --- a/war/src/main/scss/abstracts/_theme.scss +++ b/war/src/main/scss/abstracts/_theme.scss @@ -256,6 +256,7 @@ $semantics: ( --form-item-max-width--medium: min(50vw, 1400px); --form-item-max-width--small: min(35vw, 1200px); + /* stylelint-disable-next-line media-query-no-invalid */ @media screen and (max-width: breakpoints.$tablet-breakpoint) { --section-padding: 1.25rem; --form-item-max-width: 100%; diff --git a/war/src/main/scss/base/_layout-commons.scss b/war/src/main/scss/base/_layout-commons.scss index 1ce9ed2aeb5f..36201c78b080 100644 --- a/war/src/main/scss/base/_layout-commons.scss +++ b/war/src/main/scss/base/_layout-commons.scss @@ -33,6 +33,7 @@ } .app-page-body__sidebar { + /* stylelint-disable-next-line media-query-no-invalid */ @media (min-width: breakpoints.$tablet-breakpoint) { &--sticky { position: sticky; @@ -96,6 +97,7 @@ body.full-screen #main-panel { padding: 0; } +/* stylelint-disable-next-line media-query-no-invalid */ @media (max-width: breakpoints.$tablet-breakpoint) { body.two-column #page-body { flex-wrap: wrap; diff --git a/war/src/main/scss/components/_side-panel-tasks.scss b/war/src/main/scss/components/_side-panel-tasks.scss index 94e1d7696ef3..46acadd3f956 100644 --- a/war/src/main/scss/components/_side-panel-tasks.scss +++ b/war/src/main/scss/components/_side-panel-tasks.scss @@ -10,6 +10,7 @@ $background-outset: 0.7rem; margin: var(--section-padding); gap: 5px; + /* stylelint-disable-next-line media-query-no-invalid */ @media (min-width: breakpoints.$tablet-breakpoint) { margin-right: calc($background-outset); } diff --git a/war/yarn.lock b/war/yarn.lock index 29101d3d9dff..1aa1ffb2a80c 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -4453,7 +4453,7 @@ __metadata: style-loader: "npm:3.3.4" stylelint: "npm:16.2.0" stylelint-checkstyle-reporter: "npm:0.2.0" - stylelint-config-standard: "npm:33.0.0" + stylelint-config-standard: "npm:36.0.0" tippy.js: "npm:6.3.7" webpack: "npm:5.89.0" webpack-cli: "npm:5.1.4" @@ -6743,23 +6743,23 @@ __metadata: languageName: node linkType: hard -"stylelint-config-recommended@npm:^12.0.0": - version: 12.0.0 - resolution: "stylelint-config-recommended@npm:12.0.0" +"stylelint-config-recommended@npm:^14.0.0": + version: 14.0.0 + resolution: "stylelint-config-recommended@npm:14.0.0" peerDependencies: - stylelint: ^15.5.0 - checksum: 907d93bf99e072f6964bff5e1b7a86ea9712521e8979639b29ec5a55ef09789eecb7fcdeafa688324f1a69e38c462a8f87de973b8b1fcc53058c2ca177b4f426 + stylelint: ^16.0.0 + checksum: 4ad15c36e8c03291aa7bbe4b672ebfb0f46ab698e7580a0da8d29644046d102d7f31dbf00a2a6eab94b565c390c6fb0d5d528737b83ac3acf6dc2ef085a90b11 languageName: node linkType: hard -"stylelint-config-standard@npm:33.0.0": - version: 33.0.0 - resolution: "stylelint-config-standard@npm:33.0.0" +"stylelint-config-standard@npm:36.0.0": + version: 36.0.0 + resolution: "stylelint-config-standard@npm:36.0.0" dependencies: - stylelint-config-recommended: "npm:^12.0.0" + stylelint-config-recommended: "npm:^14.0.0" peerDependencies: - stylelint: ^15.5.0 - checksum: d84629f691f8d04ff2ae31c8f5ec9a4a30ec23b97b945b8a8c3e62dca3c35e00d226e47a5d56385341c6328c18bf235545bb67468ceffaeb41ff67fa4ff0c575 + stylelint: ^16.1.0 + checksum: 1fc9adddfc5cf0a1d7a443182a0731712a3950ace72a24081b4ede2b0bb6fc1eebd003c009f1d8d06c3a64ba9b31b0ed12512db2f91c8fa549238d8341580e4b languageName: node linkType: hard From dbd5f115ad67542592af0a72bb21bebd77b1bf86 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Jan 2024 19:07:43 -0800 Subject: [PATCH 0200/1216] Bump org.jenkins-ci.main:jenkins-test-harness from 2152.v60323ca_97732 to 2154.v9367950e9176 (#8897) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index 1506aa44e30a..eae8c9ab3437 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -131,7 +131,7 @@ THE SOFTWARE. ${project.groupId} jenkins-test-harness - 2152.v60323ca_97732 + 2154.v9367950e9176 test From 68131ec1826a3289b00594b881527b005d774834 Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Thu, 25 Jan 2024 06:06:24 -0800 Subject: [PATCH 0201/1216] Upgrade transitive frontend dependencies (#8896) --- war/yarn.lock | 1648 ++++++++++++++++++++++--------------------------- 1 file changed, 747 insertions(+), 901 deletions(-) diff --git a/war/yarn.lock b/war/yarn.lock index 1aa1ffb2a80c..b2df9024d10e 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -13,12 +13,12 @@ __metadata: linkType: hard "@ampproject/remapping@npm:^2.2.0": - version: 2.2.0 - resolution: "@ampproject/remapping@npm:2.2.0" + version: 2.2.1 + resolution: "@ampproject/remapping@npm:2.2.1" dependencies: - "@jridgewell/gen-mapping": "npm:^0.1.0" + "@jridgewell/gen-mapping": "npm:^0.3.0" "@jridgewell/trace-mapping": "npm:^0.3.9" - checksum: d267d8def81d75976bed4f1f81418a234a75338963ed0b8565342ef3918b07e9043806eb3a1736df7ac0774edb98e2890f880bba42817f800495e4ae3fac995e + checksum: 92ce5915f8901d8c7cd4f4e6e2fe7b9fd335a29955b400caa52e0e5b12ca3796ada7c2f10e78c9c5b0f9c2539dff0ffea7b19850a56e1487aa083531e1e46d43 languageName: node linkType: hard @@ -133,21 +133,21 @@ __metadata: linkType: hard "@babel/helper-create-class-features-plugin@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/helper-create-class-features-plugin@npm:7.22.15" + version: 7.23.7 + resolution: "@babel/helper-create-class-features-plugin@npm:7.23.7" dependencies: "@babel/helper-annotate-as-pure": "npm:^7.22.5" - "@babel/helper-environment-visitor": "npm:^7.22.5" - "@babel/helper-function-name": "npm:^7.22.5" - "@babel/helper-member-expression-to-functions": "npm:^7.22.15" + "@babel/helper-environment-visitor": "npm:^7.22.20" + "@babel/helper-function-name": "npm:^7.23.0" + "@babel/helper-member-expression-to-functions": "npm:^7.23.0" "@babel/helper-optimise-call-expression": "npm:^7.22.5" - "@babel/helper-replace-supers": "npm:^7.22.9" + "@babel/helper-replace-supers": "npm:^7.22.20" "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" "@babel/helper-split-export-declaration": "npm:^7.22.6" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 2ae5759fe8845fda99b34f2ba6cd0794fc860213d14c93a87aa9180960252bce621157a79c373b7fbb423b25a55fb0e20eae0d5f8e4ad5ef22dc70e7c2af3805 + checksum: f594e99f97211bda5530756712751c1c4ce6063bb376f1f38cc540309a086bd0f4b62aff969ddb29e7310e936c2d3745934a2b292c4710be8112e57fbe3f3381 languageName: node linkType: hard @@ -179,7 +179,22 @@ __metadata: languageName: node linkType: hard -"@babel/helper-environment-visitor@npm:^7.22.20, @babel/helper-environment-visitor@npm:^7.22.5": +"@babel/helper-define-polyfill-provider@npm:^0.5.0": + version: 0.5.0 + resolution: "@babel/helper-define-polyfill-provider@npm:0.5.0" + dependencies: + "@babel/helper-compilation-targets": "npm:^7.22.6" + "@babel/helper-plugin-utils": "npm:^7.22.5" + debug: "npm:^4.1.1" + lodash.debounce: "npm:^4.0.8" + resolve: "npm:^1.14.2" + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 2b053b96a0c604a7e0f5c7d13a8a55f4451d938f7af42bd40f62a87df15e6c87a0b1dbd893a0f0bb51077b54dc3ba00a58b166531a5940ad286ab685dd8979ec + languageName: node + linkType: hard + +"@babel/helper-environment-visitor@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-environment-visitor@npm:7.22.20" checksum: e762c2d8f5d423af89bd7ae9abe35bd4836d2eb401af868a63bbb63220c513c783e25ef001019418560b3fdc6d9a6fb67e6c0b650bcdeb3a2ac44b5c3d2bdd94 @@ -205,7 +220,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.22.15": +"@babel/helper-member-expression-to-functions@npm:^7.22.15, @babel/helper-member-expression-to-functions@npm:^7.23.0": version: 7.23.0 resolution: "@babel/helper-member-expression-to-functions@npm:7.23.0" dependencies: @@ -267,7 +282,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.22.20, @babel/helper-replace-supers@npm:^7.22.9": +"@babel/helper-replace-supers@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-replace-supers@npm:7.22.20" dependencies: @@ -340,13 +355,13 @@ __metadata: linkType: hard "@babel/helpers@npm:^7.23.7": - version: 7.23.7 - resolution: "@babel/helpers@npm:7.23.7" + version: 7.23.8 + resolution: "@babel/helpers@npm:7.23.8" dependencies: "@babel/template": "npm:^7.22.15" "@babel/traverse": "npm:^7.23.7" "@babel/types": "npm:^7.23.6" - checksum: f74a61ad28a1bc1fdd9133ad571c07787b66d6db017c707b87c203b0cd06879cea8b33e9c6a8585765a4949efa5df3cc9e19b710fe867f11be38ee29fd4a0488 + checksum: d9fce49278a31aaa017a40c1fcdaa450999c49e33582cce8138058c58b1acbe3a2d2488f010f28e91dedf0d35795ea32f0ee18745bbb6c7f54052ae0fd7e6a3f languageName: node linkType: hard @@ -1305,11 +1320,11 @@ __metadata: linkType: hard "@babel/runtime@npm:^7.8.4": - version: 7.18.9 - resolution: "@babel/runtime@npm:7.18.9" + version: 7.23.8 + resolution: "@babel/runtime@npm:7.23.8" dependencies: - regenerator-runtime: "npm:^0.13.4" - checksum: f996fca79e2cd3c80289c2655e95358254f0437ca28cf10ec4343498dd4a59002fc506d5ce6f37019f1a961e8f26ce43523844ee5a87412d32c17a8ef2f608ee + regenerator-runtime: "npm:^0.14.0" + checksum: ba5e8fbb32ef04f6cab5e89c54a0497c2fde7b730595cc1af93496270314f13ff2c6a9360fdb2f0bdd4d6b376752ce3cf85642bd6b876969a6a62954934c2df8 languageName: node linkType: hard @@ -1353,52 +1368,43 @@ __metadata: languageName: node linkType: hard -"@csstools/cascade-layer-name-parser@npm:^1.0.5": - version: 1.0.5 - resolution: "@csstools/cascade-layer-name-parser@npm:1.0.5" +"@csstools/cascade-layer-name-parser@npm:^1.0.5, @csstools/cascade-layer-name-parser@npm:^1.0.7": + version: 1.0.7 + resolution: "@csstools/cascade-layer-name-parser@npm:1.0.7" peerDependencies: - "@csstools/css-parser-algorithms": ^2.3.2 - "@csstools/css-tokenizer": ^2.2.1 - checksum: 074e1b79d4cec863fcb844910eb971c04e404839f5ca7a145dba750a6e4bedb81a89e07f851db437c2b745461ee1497cc47714dcd5a0cf16975cbc3b2ccbc726 + "@csstools/css-parser-algorithms": ^2.5.0 + "@csstools/css-tokenizer": ^2.2.3 + checksum: bd7d6d080c37a1d7331906f8703b284fd4c823f8f3fb45bd52fda4043eb165adc0af3114ef913f66ac17851ef5293afbf383f5f35cc27e2e5788b9fbeb7ff388 languageName: node linkType: hard -"@csstools/color-helpers@npm:^3.0.2": - version: 3.0.2 - resolution: "@csstools/color-helpers@npm:3.0.2" - checksum: aa7c7d471676d4f026298d4a3fb8b2fc053bea7a4a8c8610b7053863d171a7551ddd4c4d4d61bcea9863c4368b902287627ff0c9f5559607ed22c2123fa5fdd2 +"@csstools/color-helpers@npm:^4.0.0": + version: 4.0.0 + resolution: "@csstools/color-helpers@npm:4.0.0" + checksum: fc78871253f8c92789ed64a0e5555bd2873c2b62a49c30baced88487561fe09fe897b0d16fcf7bf2a94f78ff37530773a4395ce5efc016810c094041b5bbcd42 languageName: node linkType: hard -"@csstools/css-calc@npm:^1.1.4": - version: 1.1.4 - resolution: "@csstools/css-calc@npm:1.1.4" +"@csstools/css-calc@npm:^1.1.6": + version: 1.1.6 + resolution: "@csstools/css-calc@npm:1.1.6" peerDependencies: - "@csstools/css-parser-algorithms": ^2.3.2 - "@csstools/css-tokenizer": ^2.2.1 - checksum: 1d2d1b1f5044bc17a9c2ecfa1164dfb51c983ab5295ce15f132837934dc4d6f856c1bfe0c39bd9fe9214957d43ed6475ef38793191401e039f0da589b27880da + "@csstools/css-parser-algorithms": ^2.5.0 + "@csstools/css-tokenizer": ^2.2.3 + checksum: e313834ad3517bd53b4b15abd4c9bf7951ccf3671669be4ed185c8b1af9dc8fe463d0cd75a61845364a9d6c7b8107dfba1032a2bde5eb7c905ab956a764ee56d languageName: node linkType: hard -"@csstools/css-color-parser@npm:^1.4.0": - version: 1.4.0 - resolution: "@csstools/css-color-parser@npm:1.4.0" +"@csstools/css-color-parser@npm:^1.5.1": + version: 1.5.1 + resolution: "@csstools/css-color-parser@npm:1.5.1" dependencies: - "@csstools/color-helpers": "npm:^3.0.2" - "@csstools/css-calc": "npm:^1.1.4" + "@csstools/color-helpers": "npm:^4.0.0" + "@csstools/css-calc": "npm:^1.1.6" peerDependencies: - "@csstools/css-parser-algorithms": ^2.3.2 - "@csstools/css-tokenizer": ^2.2.1 - checksum: afec343effa2d75bc3adcc2f20e84228c73dba1516ab3acb1ae64a834c2572177f72da9ffa378ec4b120d0bb5fe02e6ff01fd646ff4131cc56a3de926a1e23f9 - languageName: node - linkType: hard - -"@csstools/css-parser-algorithms@npm:2.3.2": - version: 2.3.2 - resolution: "@csstools/css-parser-algorithms@npm:2.3.2" - peerDependencies: - "@csstools/css-tokenizer": ^2.2.1 - checksum: ccae373a3ab5c10716418b69ce1f6db10a26d3a2d60b65df5fe69099afe4fb1d3192925f3c0f93c3b17c3ab1964b0f39ad2b0e97312ec4a51caa55d6b6a31672 + "@csstools/css-parser-algorithms": ^2.5.0 + "@csstools/css-tokenizer": ^2.2.3 + checksum: 98c3fe23064e6218976d951b9e13da1c9d067075318004be511f7c752b972ada038b750c1c844f94d73d78c55bc8571bd2a123f0747ce107845b39678b833873 languageName: node linkType: hard @@ -1429,338 +1435,338 @@ __metadata: linkType: hard "@csstools/postcss-cascade-layers@npm:^4.0.1": - version: 4.0.1 - resolution: "@csstools/postcss-cascade-layers@npm:4.0.1" + version: 4.0.2 + resolution: "@csstools/postcss-cascade-layers@npm:4.0.2" dependencies: - "@csstools/selector-specificity": "npm:^3.0.0" + "@csstools/selector-specificity": "npm:^3.0.1" postcss-selector-parser: "npm:^6.0.13" peerDependencies: postcss: ^8.4 - checksum: e15e01546de886a1d8a03828ce9409dcf1656d38a9d7c211893075d4370acca2b86fcbc8796a4ed59fa5420e57cd8cca26d5221e4ea5bee283ab8545b916bd9f + checksum: bc4babdaaa025c9b3e417af989d58f9c7987ebc997c5d6bb4b150df5e9377175de393525a71868a48944e8a21aed4ce4d9023952201bf529e0113fbb5d79ace5 languageName: node linkType: hard "@csstools/postcss-color-function@npm:^3.0.7": - version: 3.0.7 - resolution: "@csstools/postcss-color-function@npm:3.0.7" + version: 3.0.9 + resolution: "@csstools/postcss-color-function@npm:3.0.9" dependencies: - "@csstools/css-color-parser": "npm:^1.4.0" - "@csstools/css-parser-algorithms": "npm:^2.3.2" - "@csstools/css-tokenizer": "npm:^2.2.1" - "@csstools/postcss-progressive-custom-properties": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^1.5.1" + "@csstools/css-parser-algorithms": "npm:^2.5.0" + "@csstools/css-tokenizer": "npm:^2.2.3" + "@csstools/postcss-progressive-custom-properties": "npm:^3.0.3" peerDependencies: postcss: ^8.4 - checksum: 4be64f7e375eace1da54b4d37bd3dc93c4e4c5c11f41c81646402b723cf76bb12f126e56045f416affc993d6647d79bb666bce4c11316f6c71873d958ec7a350 + checksum: 9a1acf462a9fede8ddb280ca4b49f070cf17f94c68f083b6d9a3d2ce649d436b159ac606d3b526a7aa4dee1a63f01b6cb75078ba0db32d3ab0ff75c8eeba92e1 languageName: node linkType: hard "@csstools/postcss-color-mix-function@npm:^2.0.7": - version: 2.0.7 - resolution: "@csstools/postcss-color-mix-function@npm:2.0.7" + version: 2.0.9 + resolution: "@csstools/postcss-color-mix-function@npm:2.0.9" dependencies: - "@csstools/css-color-parser": "npm:^1.4.0" - "@csstools/css-parser-algorithms": "npm:^2.3.2" - "@csstools/css-tokenizer": "npm:^2.2.1" - "@csstools/postcss-progressive-custom-properties": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^1.5.1" + "@csstools/css-parser-algorithms": "npm:^2.5.0" + "@csstools/css-tokenizer": "npm:^2.2.3" + "@csstools/postcss-progressive-custom-properties": "npm:^3.0.3" peerDependencies: postcss: ^8.4 - checksum: 02c786917c23a2deb10d4699b91f3bc9244abacf3196dd6db3ea12719b9d7a68a0fa5fc7deb7c0dcbc71e598d2ac615e6d38a5684452f05411b44467448e7638 + checksum: cb7bc4d2fc6d882ee0a974998c6ac3b0bd95633f206bbee8d4075e3b057cf1fcea0a4f873b6efd51e57bdcb071ff622689e03e09c2d7633d4506d3fa79106a87 languageName: node linkType: hard "@csstools/postcss-exponential-functions@npm:^1.0.1": - version: 1.0.1 - resolution: "@csstools/postcss-exponential-functions@npm:1.0.1" + version: 1.0.3 + resolution: "@csstools/postcss-exponential-functions@npm:1.0.3" dependencies: - "@csstools/css-calc": "npm:^1.1.4" - "@csstools/css-parser-algorithms": "npm:^2.3.2" - "@csstools/css-tokenizer": "npm:^2.2.1" + "@csstools/css-calc": "npm:^1.1.6" + "@csstools/css-parser-algorithms": "npm:^2.5.0" + "@csstools/css-tokenizer": "npm:^2.2.3" peerDependencies: postcss: ^8.4 - checksum: bf2055cc1e986cafdf245ea655c935e8306345ffabd7a64b0bbae70941f8ddddace9e71f9b210effc56c902dc595e342e31795444c3725ebc6e9917df169763c + checksum: e82d6394cb267679825338edb212a6746dab920de54eda3e21fa53b562f3c05da662ad45b5d1d170e4672de351881c93482ff4084953a440609402f8ae006cd1 languageName: node linkType: hard "@csstools/postcss-font-format-keywords@npm:^3.0.0": - version: 3.0.0 - resolution: "@csstools/postcss-font-format-keywords@npm:3.0.0" + version: 3.0.1 + resolution: "@csstools/postcss-font-format-keywords@npm:3.0.1" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 523b8dc1a5a42a5bf3b6cc3e22950a5215cb24daea3ecae886a2cbf344854b293a9bf93093b8e4873b88926f6fad6af226202dcfeb1c2373d930c46d3c52464c + checksum: 1a0fe7b5b27c55818729616f4529d9d183b721e9156ba06d36e9be502a6e5a417a5d125423024e7d7155e12a294597100b9cdc9db3cf693376ed5331aead5ac8 languageName: node linkType: hard "@csstools/postcss-gamut-mapping@npm:^1.0.0": - version: 1.0.0 - resolution: "@csstools/postcss-gamut-mapping@npm:1.0.0" + version: 1.0.2 + resolution: "@csstools/postcss-gamut-mapping@npm:1.0.2" dependencies: - "@csstools/css-color-parser": "npm:^1.4.0" - "@csstools/css-parser-algorithms": "npm:2.3.2" - "@csstools/css-tokenizer": "npm:^2.2.1" + "@csstools/css-color-parser": "npm:^1.5.1" + "@csstools/css-parser-algorithms": "npm:^2.5.0" + "@csstools/css-tokenizer": "npm:^2.2.3" peerDependencies: postcss: ^8.4 - checksum: de8a7c920e3f6ecf8c3d16f5de8a1415a0b7744563bcec2e147fc8915633cc98ff76622af8f7cc8e1200595fb18c950b259c1c424b682e1599f78c1d0ad655f6 + checksum: 11c06908aab864d20a02fc4aa3083630e003530f1596d52bd775a537cf8a7de02c03906886ee45d0081661042bcae1a0090429c706496ba3baae1b1fbac92c13 languageName: node linkType: hard "@csstools/postcss-gradients-interpolation-method@npm:^4.0.7": - version: 4.0.7 - resolution: "@csstools/postcss-gradients-interpolation-method@npm:4.0.7" + version: 4.0.9 + resolution: "@csstools/postcss-gradients-interpolation-method@npm:4.0.9" dependencies: - "@csstools/css-color-parser": "npm:^1.4.0" - "@csstools/css-parser-algorithms": "npm:^2.3.2" - "@csstools/css-tokenizer": "npm:^2.2.1" - "@csstools/postcss-progressive-custom-properties": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^1.5.1" + "@csstools/css-parser-algorithms": "npm:^2.5.0" + "@csstools/css-tokenizer": "npm:^2.2.3" + "@csstools/postcss-progressive-custom-properties": "npm:^3.0.3" peerDependencies: postcss: ^8.4 - checksum: 1f23ecd1fdcbeec6750cc1e8e6cb123bfe175bae02ff4e152c7823afc27c9233eafaeda4f547c27112ece0c1fe521a1edbff88e98bc178dfbdbf1c69f2eef650 + checksum: 6c6c8e788345affac10116fd8b7744e5e5e025fb7ef192fb3981ec003e2cca1590ba2a4464a178178dd42b99cd4a83e4594d5a531a4efde1c1b0e20610955a62 languageName: node linkType: hard "@csstools/postcss-hwb-function@npm:^3.0.6": - version: 3.0.6 - resolution: "@csstools/postcss-hwb-function@npm:3.0.6" + version: 3.0.8 + resolution: "@csstools/postcss-hwb-function@npm:3.0.8" dependencies: - "@csstools/css-color-parser": "npm:^1.4.0" - "@csstools/css-parser-algorithms": "npm:^2.3.2" - "@csstools/css-tokenizer": "npm:^2.2.1" + "@csstools/css-color-parser": "npm:^1.5.1" + "@csstools/css-parser-algorithms": "npm:^2.5.0" + "@csstools/css-tokenizer": "npm:^2.2.3" peerDependencies: postcss: ^8.4 - checksum: f2a339ae9832d02838447022979d4d2fd0249549fbf09d01a731444568f70f3485e3a752b0b45717628ff18b42974d4dd03e3bce3a13cc0e61fddbb140694754 + checksum: af5efa6d9d79fcdf2755bb8e730d9c8670b4e6e97abfdc9dc4d2c91f672c36ddbba41b5ee1eda469686d96fe1efdea5bc400f5b3131c4cfd9e1079399bb8a75e languageName: node linkType: hard "@csstools/postcss-ic-unit@npm:^3.0.2": - version: 3.0.2 - resolution: "@csstools/postcss-ic-unit@npm:3.0.2" + version: 3.0.3 + resolution: "@csstools/postcss-ic-unit@npm:3.0.3" dependencies: - "@csstools/postcss-progressive-custom-properties": "npm:^3.0.2" + "@csstools/postcss-progressive-custom-properties": "npm:^3.0.3" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 28552d5fe0af8a7e6bae48f3b68193d286aec43e3bc1cc698c142636cfd7598ab88b804adc3c52ecf23c35f4abd18315ad92b34069ca9cc4caadcd2007938a51 + checksum: ea7523a4572df9551b92c4ccd1ca525d1e269556749293df35b26aa617d3e8f31d77ff4179fb6b04c52f7106a1834bd1487b163228aeb229c17ac6aee5ee82db languageName: node linkType: hard "@csstools/postcss-initial@npm:^1.0.0": - version: 1.0.0 - resolution: "@csstools/postcss-initial@npm:1.0.0" + version: 1.0.1 + resolution: "@csstools/postcss-initial@npm:1.0.1" peerDependencies: postcss: ^8.4 - checksum: 518c69916a87a715f3c19d4e67730849b7faa823269da2e7cf726de5f457574ea86ab48a31aa3db358dc9e6332c3f17c7513952854d2794c8fb04f1499509657 + checksum: 5d21c7c611d90a4b6758ba5be5e38d8d9eea9499c62797c4f5e01fbc9ccc2c68daf1c201850efe70ffa4ff9e979e7dea80b854b8793768550879562881aa6f9f languageName: node linkType: hard "@csstools/postcss-is-pseudo-class@npm:^4.0.3": - version: 4.0.3 - resolution: "@csstools/postcss-is-pseudo-class@npm:4.0.3" + version: 4.0.4 + resolution: "@csstools/postcss-is-pseudo-class@npm:4.0.4" dependencies: - "@csstools/selector-specificity": "npm:^3.0.0" + "@csstools/selector-specificity": "npm:^3.0.1" postcss-selector-parser: "npm:^6.0.13" peerDependencies: postcss: ^8.4 - checksum: d64af2ad69146fa45b0b5a9799ea393f65a21822eaa767a2b4ae147b8f8dfe3948a8e34b449ab55247cb4d98fcde747cd5f454a3c7d915a326cc580adcb29afb + checksum: b4dc0ad3d8b2fb251ac791e628947fc688636e9a0c45973820bf3ec5c5e27d78bf2bb96765e58269069efa176cd4c157a3e35375f5e41d263c187d9524c844be languageName: node linkType: hard "@csstools/postcss-logical-float-and-clear@npm:^2.0.0": - version: 2.0.0 - resolution: "@csstools/postcss-logical-float-and-clear@npm:2.0.0" + version: 2.0.1 + resolution: "@csstools/postcss-logical-float-and-clear@npm:2.0.1" peerDependencies: postcss: ^8.4 - checksum: d71b77d8ae1bb90325581092f873be24bdc6d6b71d9933e4aaffb4a160f9ac3034993d1cb86474d1bcbf4ad6854b9b9cc645861684980cf5439e27c4a518c2ba + checksum: 92d9184bf8a159753a5872463dcfde580abd9b935e2a59f7ebe601cd14d9871f2f9f4dc18d8bbe251e7d8a3e446e302d9d99bf408d9cabbd9a6323825f5e833d languageName: node linkType: hard "@csstools/postcss-logical-overflow@npm:^1.0.0": - version: 1.0.0 - resolution: "@csstools/postcss-logical-overflow@npm:1.0.0" + version: 1.0.1 + resolution: "@csstools/postcss-logical-overflow@npm:1.0.1" peerDependencies: postcss: ^8.4 - checksum: 5268a8960f484841d0fc070d1fcb8cc5e46290253300a116532498ab8ceb1d8900cb45ddbca33ad2f344af207176e6bde54a17ccbe88126c4a5de7830ad0efa7 + checksum: a8f5b1fdaf4ce7b1665407dac2f2e0c0ea11195e6873cfc714d9cd206489170fd91fc172b337330baf60191206f60579e235264f0dc7fee750ccd27ffe02c163 languageName: node linkType: hard "@csstools/postcss-logical-overscroll-behavior@npm:^1.0.0": - version: 1.0.0 - resolution: "@csstools/postcss-logical-overscroll-behavior@npm:1.0.0" + version: 1.0.1 + resolution: "@csstools/postcss-logical-overscroll-behavior@npm:1.0.1" peerDependencies: postcss: ^8.4 - checksum: b468fb9c8bd836a9a2c3d4126d68c0ab25b3b5042e63a4e9eb9c55394fed8928c751d8f1c67f754702605963385d4becfa2cf9fe7446606ffbe33b580fb9a29e + checksum: 9485502bd9235276525351818d6cc11544ac1b270bb4f527f3fac32fe98ac66269366c34cdb8f61920b10ff9aac5824935004a5927490a5febca77eb41226604 languageName: node linkType: hard "@csstools/postcss-logical-resize@npm:^2.0.0": - version: 2.0.0 - resolution: "@csstools/postcss-logical-resize@npm:2.0.0" + version: 2.0.1 + resolution: "@csstools/postcss-logical-resize@npm:2.0.1" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 040f7db9771da02d2de70343084b179a3a16997e684db83b1ef32f5cb3444bd6350f0ffa5dcc54692a7d23c78de67d6a1942bc0ad1ae74a1818e41d480532bb4 + checksum: 18f7e19ea465a15b334d8231b9ed98b630c74a6c2a6c52884437b852065f7b55bb1282cdbbdc1136aade479e996605b01799ab0ab771e2c47fd78d966ed33162 languageName: node linkType: hard "@csstools/postcss-logical-viewport-units@npm:^2.0.3": - version: 2.0.3 - resolution: "@csstools/postcss-logical-viewport-units@npm:2.0.3" + version: 2.0.5 + resolution: "@csstools/postcss-logical-viewport-units@npm:2.0.5" dependencies: - "@csstools/css-tokenizer": "npm:^2.2.1" + "@csstools/css-tokenizer": "npm:^2.2.3" peerDependencies: postcss: ^8.4 - checksum: 690a02a7fc211bd711dd0408e21ce63a4ec4ce7e38f7324ade3b3c0a885d1db1704700cfeecc590cd834f7f20a1ec1284565e6b88e46d440ff66caa7f7046e6f + checksum: 0737db6af3a0161e8b85f0754554b940f340c562f88d300e13b1d654ead70e10942ca24f1efee48a46b817593eb942013711bd7fdc93f067d3b88855d7910edc languageName: node linkType: hard "@csstools/postcss-media-minmax@npm:^1.1.0": - version: 1.1.0 - resolution: "@csstools/postcss-media-minmax@npm:1.1.0" + version: 1.1.2 + resolution: "@csstools/postcss-media-minmax@npm:1.1.2" dependencies: - "@csstools/css-calc": "npm:^1.1.4" - "@csstools/css-parser-algorithms": "npm:^2.3.2" - "@csstools/css-tokenizer": "npm:^2.2.1" - "@csstools/media-query-list-parser": "npm:^2.1.5" + "@csstools/css-calc": "npm:^1.1.6" + "@csstools/css-parser-algorithms": "npm:^2.5.0" + "@csstools/css-tokenizer": "npm:^2.2.3" + "@csstools/media-query-list-parser": "npm:^2.1.7" peerDependencies: postcss: ^8.4 - checksum: 2cfd25608bbc84d69ff25e81b62792828ee9d96d09a4d3260da098d9be1a5ee95168a9a84042d820e934c689d7a69f9b401936ed93d2746637ed7576bdd08d46 + checksum: 90821fcc373cd4f6ba4bf7a3b087048fb89c4d78ef5896121b652d9c41bdde16a2ef0e69e627b32b6e13e88ac4ee76078e05fa11f4d21afcfe3220575431fb2c languageName: node linkType: hard "@csstools/postcss-media-queries-aspect-ratio-number-values@npm:^2.0.3": - version: 2.0.3 - resolution: "@csstools/postcss-media-queries-aspect-ratio-number-values@npm:2.0.3" + version: 2.0.5 + resolution: "@csstools/postcss-media-queries-aspect-ratio-number-values@npm:2.0.5" dependencies: - "@csstools/css-parser-algorithms": "npm:^2.3.2" - "@csstools/css-tokenizer": "npm:^2.2.1" - "@csstools/media-query-list-parser": "npm:^2.1.5" + "@csstools/css-parser-algorithms": "npm:^2.5.0" + "@csstools/css-tokenizer": "npm:^2.2.3" + "@csstools/media-query-list-parser": "npm:^2.1.7" peerDependencies: postcss: ^8.4 - checksum: b4636df948690017f8ee7f2fb4aeb4b9848e72e84ff244308c342725a5d0aa5507cbab362e0d790938a433c1b20e2e10f71ea273e02608ed8ae073c9289f32c3 + checksum: 8dd1fc0f13fb6d4ffdb7de02d08825bc304fe7a7a0c7e8c7f85cd945334ec746c152b0fcf20d3ababf92267bdafe0c336843fc602897f6b5e8568c104dcd5442 languageName: node linkType: hard "@csstools/postcss-nested-calc@npm:^3.0.0": - version: 3.0.0 - resolution: "@csstools/postcss-nested-calc@npm:3.0.0" + version: 3.0.1 + resolution: "@csstools/postcss-nested-calc@npm:3.0.1" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 6619825637e769854f8b4bd74dcc01dbbb4817d22f8a92be4cba7647ff50336d00719d9551461f01d8cb22d3d333e19cf3a7ce3a34573af6e964d50a06143173 + checksum: a1a091cd9343312b4464cd7d5fa62808e97c02ca33f815013e57f5ad9724306c5fbbd9af257bef62f87cb39b9ee594d508175111ad558e0022762c55ae0bcea6 languageName: node linkType: hard "@csstools/postcss-normalize-display-values@npm:^3.0.1": - version: 3.0.1 - resolution: "@csstools/postcss-normalize-display-values@npm:3.0.1" + version: 3.0.2 + resolution: "@csstools/postcss-normalize-display-values@npm:3.0.2" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: dcd406efdbb4af7975ed57695efb86f801205dd0f3b78622cee6ec1d7a08706ff0cac7d6816f507dc8a86c650c8d931f79a380b73307c1f862bfe4f94815c7f8 + checksum: a20e2f4c213a5ec6e004c2ba76b543d3288a39aae21b3198b06a57df0d2c7916111d2cd70dcb0e8c6ca1cf1b01751e88fd2fe9abbc070e1efab1a4e54dcdbbbe languageName: node linkType: hard "@csstools/postcss-oklab-function@npm:^3.0.7": - version: 3.0.7 - resolution: "@csstools/postcss-oklab-function@npm:3.0.7" + version: 3.0.9 + resolution: "@csstools/postcss-oklab-function@npm:3.0.9" dependencies: - "@csstools/css-color-parser": "npm:^1.4.0" - "@csstools/css-parser-algorithms": "npm:^2.3.2" - "@csstools/css-tokenizer": "npm:^2.2.1" - "@csstools/postcss-progressive-custom-properties": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^1.5.1" + "@csstools/css-parser-algorithms": "npm:^2.5.0" + "@csstools/css-tokenizer": "npm:^2.2.3" + "@csstools/postcss-progressive-custom-properties": "npm:^3.0.3" peerDependencies: postcss: ^8.4 - checksum: 5c13e901d1b98b90ea462257db0be18588dbbe4602cd45f54b89b47ef5137b12de1ea64e644843c4e170e0d28689aa4534a101fcaa9f334fffe40165daf6c4b8 + checksum: 256bab33588bb63c2cdf2c8bddc9b51ab017394b3bf2532cb1cf11e00ce18d78a39833e58f398e5096572fb46faae08a22fb1cef56473878e1f253c6ba17f1ed languageName: node linkType: hard -"@csstools/postcss-progressive-custom-properties@npm:^3.0.2": - version: 3.0.2 - resolution: "@csstools/postcss-progressive-custom-properties@npm:3.0.2" +"@csstools/postcss-progressive-custom-properties@npm:^3.0.2, @csstools/postcss-progressive-custom-properties@npm:^3.0.3": + version: 3.0.3 + resolution: "@csstools/postcss-progressive-custom-properties@npm:3.0.3" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 7237717b8e690ff6f3831f2ae5d20526905ed4e9c916cf63c5118c73efa0dc8519c3e5bd11a362a706a66d20aeed516901f36ee19cc92537cfcbf191e067d6cb + checksum: c2f228b71ddf71a368583c4a240ae109f371adf459b5cb5ef0ae7899a31662776d7430ef43be0a988c8d57bda1d709399d9b8488cf05f7c4ff56d1d8ba286eed languageName: node linkType: hard "@csstools/postcss-relative-color-syntax@npm:^2.0.7": - version: 2.0.7 - resolution: "@csstools/postcss-relative-color-syntax@npm:2.0.7" + version: 2.0.9 + resolution: "@csstools/postcss-relative-color-syntax@npm:2.0.9" dependencies: - "@csstools/css-color-parser": "npm:^1.4.0" - "@csstools/css-parser-algorithms": "npm:^2.3.2" - "@csstools/css-tokenizer": "npm:^2.2.1" - "@csstools/postcss-progressive-custom-properties": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^1.5.1" + "@csstools/css-parser-algorithms": "npm:^2.5.0" + "@csstools/css-tokenizer": "npm:^2.2.3" + "@csstools/postcss-progressive-custom-properties": "npm:^3.0.3" peerDependencies: postcss: ^8.4 - checksum: 51aa1b481f3682fa26fe8948df4a036dfb4383385d9f8169ecb7f5b7b05a888b49b917a60eb9de6ff297f3ab67eb3e1b604774471007852df0b70abba1d414ce + checksum: dc61871efbc7f2dd1db7fb6a16d1e29dbac9e3b5b1179096decf380afb7932717f75c246d015969c0ea7be045691ba83690cbe002d9999ce924e0be8aa943f54 languageName: node linkType: hard "@csstools/postcss-scope-pseudo-class@npm:^3.0.0": - version: 3.0.0 - resolution: "@csstools/postcss-scope-pseudo-class@npm:3.0.0" + version: 3.0.1 + resolution: "@csstools/postcss-scope-pseudo-class@npm:3.0.1" dependencies: postcss-selector-parser: "npm:^6.0.13" peerDependencies: postcss: ^8.4 - checksum: 8198e453cb4d6571cc4ce477cd33fc5a077e434aadeb2d91cb0dbf55d3b3c300ed0d61a373bc02ef89e2406cf4e0f8aca83adc9164fc4e15fb2b90f611548118 + checksum: 489c5469951277b810754ba02e9f6c42196e03f2203b908181a81747bf1dcaa7b194c8c0f5c7dcb6b7276d08f2573a71bd7df4f2251c034ef1b92968c7070285 languageName: node linkType: hard "@csstools/postcss-stepped-value-functions@npm:^3.0.2": - version: 3.0.2 - resolution: "@csstools/postcss-stepped-value-functions@npm:3.0.2" + version: 3.0.4 + resolution: "@csstools/postcss-stepped-value-functions@npm:3.0.4" dependencies: - "@csstools/css-calc": "npm:^1.1.4" - "@csstools/css-parser-algorithms": "npm:^2.3.2" - "@csstools/css-tokenizer": "npm:^2.2.1" + "@csstools/css-calc": "npm:^1.1.6" + "@csstools/css-parser-algorithms": "npm:^2.5.0" + "@csstools/css-tokenizer": "npm:^2.2.3" peerDependencies: postcss: ^8.4 - checksum: b80206bec3f535d1b09c25b3560575ec8747326370d0c1c807b724f12bc995d139a5e5317c0883d90a6797248445c18d5b7ced40c40358e54b6ad6c60945f81a + checksum: fc32c29cf237e9d6bf77d7cfd95abd4b98a92984f3e236009c72717ab8777427ef73a6b5425a3e1b0906ef7c694837c669a45da03493a66d556c4bbca7d39a4c languageName: node linkType: hard "@csstools/postcss-text-decoration-shorthand@npm:^3.0.3": - version: 3.0.3 - resolution: "@csstools/postcss-text-decoration-shorthand@npm:3.0.3" + version: 3.0.4 + resolution: "@csstools/postcss-text-decoration-shorthand@npm:3.0.4" dependencies: - "@csstools/color-helpers": "npm:^3.0.2" + "@csstools/color-helpers": "npm:^4.0.0" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: ac66a073b3fd64977ee789a1ba5c341946064ba74dabee537a0df701018e7b44f3aca2a87ec23a301ad3322b1452ab98b1e44f8dc260d0d209c5df9e5c4883ad + checksum: 2e17535bbeed8ca5f095e6aecfb552004c1920597f16146fe6ec773b46af95f9e0e3cf77181d4216a23528de8e042bd85f82df1562447f52e7687ed8628f0adc languageName: node linkType: hard "@csstools/postcss-trigonometric-functions@npm:^3.0.2": - version: 3.0.2 - resolution: "@csstools/postcss-trigonometric-functions@npm:3.0.2" + version: 3.0.4 + resolution: "@csstools/postcss-trigonometric-functions@npm:3.0.4" dependencies: - "@csstools/css-calc": "npm:^1.1.4" - "@csstools/css-parser-algorithms": "npm:^2.3.2" - "@csstools/css-tokenizer": "npm:^2.2.1" + "@csstools/css-calc": "npm:^1.1.6" + "@csstools/css-parser-algorithms": "npm:^2.5.0" + "@csstools/css-tokenizer": "npm:^2.2.3" peerDependencies: postcss: ^8.4 - checksum: 93799eb2a7caf0b0d13fa7c2b984eecdaffdfb3a0c12337c0a3b4ff521851cca540b7d6b40467b8b22da0539b20d90d0aa4353a885f751ce07211ccfbb2836e1 + checksum: 4db1cc7389d77df21968c3d256277ce9e50a3fd1b0cfa7f94b522800ae761dc40b838c544af777c5807cb813cad9e11190403e01a61704417e02096a0d36404e languageName: node linkType: hard "@csstools/postcss-unset-value@npm:^3.0.0": - version: 3.0.0 - resolution: "@csstools/postcss-unset-value@npm:3.0.0" + version: 3.0.1 + resolution: "@csstools/postcss-unset-value@npm:3.0.1" peerDependencies: postcss: ^8.4 - checksum: 0bad86c0eff261c0d9924a1c913984fb2fb3a2f730d4b7087015ebc64f3e0450b0105a890861b507b9e58ba7e7060889e2d4092ae00d4fd73b1d77663ac42c87 + checksum: 5032c3125eada0a3a77d0867644cf994e28b789aaa40e990e7eebcdf5a9ed9f36b30e0904827044cea39849c9a9a19c90e82d3ca655550d82a7530872b3b6ff8 languageName: node linkType: hard -"@csstools/selector-specificity@npm:^3.0.0, @csstools/selector-specificity@npm:^3.0.1": +"@csstools/selector-specificity@npm:^3.0.1": version: 3.0.1 resolution: "@csstools/selector-specificity@npm:3.0.1" peerDependencies: @@ -1777,20 +1783,20 @@ __metadata: linkType: hard "@eslint-community/eslint-utils@npm:^4.2.0": - version: 4.2.0 - resolution: "@eslint-community/eslint-utils@npm:4.2.0" + version: 4.4.0 + resolution: "@eslint-community/eslint-utils@npm:4.4.0" dependencies: eslint-visitor-keys: "npm:^3.3.0" peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - checksum: 7877b963583586b7885a57e3b59fa58363fbb06a9b752e22721f98fbed906fbb412521bd54a1f6597b4123663a23e907fba8ba74807008f5148c16d8db13a945 + checksum: 7e559c4ce59cd3a06b1b5a517b593912e680a7f981ae7affab0d01d709e99cd5647019be8fafa38c350305bc32f1f7d42c7073edde2ab536c745e365f37b607e languageName: node linkType: hard "@eslint-community/regexpp@npm:^4.6.1": - version: 4.6.2 - resolution: "@eslint-community/regexpp@npm:4.6.2" - checksum: da800788298f8419f4c4e04eaa4e3c97e7f57537e822e7b150de662e420e3d437816b863e490807bd0b00e715b0989f9d8864bf54357cbcfa84e4255b910789d + version: 4.10.0 + resolution: "@eslint-community/regexpp@npm:4.10.0" + checksum: c5f60ef1f1ea7649fa7af0e80a5a79f64b55a8a8fa5086de4727eb4c86c652aedee407a9c143b8995d2c0b2d75c1222bec9ba5d73dbfc1f314550554f0979ef4 languageName: node linkType: hard @@ -1818,21 +1824,14 @@ __metadata: languageName: node linkType: hard -"@gar/promisify@npm:^1.1.3": - version: 1.1.3 - resolution: "@gar/promisify@npm:1.1.3" - checksum: 0b3c9958d3cd17f4add3574975e3115ae05dc7f1298a60810414b16f6f558c137b5fb3cd3905df380bacfd955ec13f67c1e6710cbb5c246a7e8d65a8289b2bff - languageName: node - linkType: hard - "@humanwhocodes/config-array@npm:^0.11.13": - version: 0.11.13 - resolution: "@humanwhocodes/config-array@npm:0.11.13" + version: 0.11.14 + resolution: "@humanwhocodes/config-array@npm:0.11.14" dependencies: - "@humanwhocodes/object-schema": "npm:^2.0.1" - debug: "npm:^4.1.1" + "@humanwhocodes/object-schema": "npm:^2.0.2" + debug: "npm:^4.3.1" minimatch: "npm:^3.0.5" - checksum: d76ca802d853366094d0e98ff0d0994117fc8eff96649cd357b15e469e428228f597cd2e929d54ab089051684949955f16ee905bb19f7b2f0446fb377157be7a + checksum: 66f725b4ee5fdd8322c737cb5013e19fac72d4d69c8bf4b7feb192fcb83442b035b92186f8e9497c220e58b2d51a080f28a73f7899bc1ab288c3be172c467541 languageName: node linkType: hard @@ -1843,10 +1842,10 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/object-schema@npm:^2.0.1": - version: 2.0.1 - resolution: "@humanwhocodes/object-schema@npm:2.0.1" - checksum: 9dba24e59fdb4041829d92b693aacb778add3b6f612aaa9c0774f3b650c11a378cc64f042a59da85c11dae33df456580a3c36837b953541aed6ff94294f97fac +"@humanwhocodes/object-schema@npm:^2.0.2": + version: 2.0.2 + resolution: "@humanwhocodes/object-schema@npm:2.0.2" + checksum: 6fd83dc320231d71c4541d0244051df61f301817e9f9da9fd4cb7e44ec8aacbde5958c1665b0c419401ab935114fdf532a6ad5d4e7294b1af2f347dd91a6983f languageName: node linkType: hard @@ -1887,24 +1886,14 @@ __metadata: languageName: node linkType: hard -"@jridgewell/gen-mapping@npm:^0.1.0": - version: 0.1.1 - resolution: "@jridgewell/gen-mapping@npm:0.1.1" - dependencies: - "@jridgewell/set-array": "npm:^1.0.0" - "@jridgewell/sourcemap-codec": "npm:^1.4.10" - checksum: 3d784d87aee604bc4d48d3d9e547e0466d9f4a432cd9b3a4f3e55d104313bf3945e7e970cd5fa767bc145df11f1d568a01ab6659696be41f0ed2a817f3b583a3 - languageName: node - linkType: hard - "@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.2": - version: 0.3.2 - resolution: "@jridgewell/gen-mapping@npm:0.3.2" + version: 0.3.3 + resolution: "@jridgewell/gen-mapping@npm:0.3.3" dependencies: "@jridgewell/set-array": "npm:^1.0.1" "@jridgewell/sourcemap-codec": "npm:^1.4.10" "@jridgewell/trace-mapping": "npm:^0.3.9" - checksum: 82685c8735c63fe388badee45e2970a6bc83eed1c84d46d8652863bafeca22a6c6cc15812f5999a4535366f4668ccc9ba6d5c67dfb72e846fa8a063806f10afd + checksum: 376fc11cf5a967318ba3ddd9d8e91be528eab6af66810a713c49b0c3f8dc67e9949452c51c38ab1b19aa618fb5e8594da5a249977e26b1e7fea1ee5a1fcacc74 languageName: node linkType: hard @@ -1915,20 +1904,20 @@ __metadata: languageName: node linkType: hard -"@jridgewell/set-array@npm:^1.0.0, @jridgewell/set-array@npm:^1.0.1": +"@jridgewell/set-array@npm:^1.0.1": version: 1.1.2 resolution: "@jridgewell/set-array@npm:1.1.2" checksum: bc7ab4c4c00470de4e7562ecac3c0c84f53e7ee8a711e546d67c47da7febe7c45cd67d4d84ee3c9b2c05ae8e872656cdded8a707a283d30bd54fbc65aef821ab languageName: node linkType: hard -"@jridgewell/source-map@npm:^0.3.2": - version: 0.3.2 - resolution: "@jridgewell/source-map@npm:0.3.2" +"@jridgewell/source-map@npm:^0.3.3": + version: 0.3.5 + resolution: "@jridgewell/source-map@npm:0.3.5" dependencies: "@jridgewell/gen-mapping": "npm:^0.3.0" "@jridgewell/trace-mapping": "npm:^0.3.9" - checksum: 1540da323456878281c8e03fc4edc444ea151aa441eb38a43d84d39df8fec9446e375202cd999b54637f4627e42e2a38b3ab07195e5e49616fc6b7eee1b7119f + checksum: b985d9ebd833a21a6e9ace820c8a76f60345a34d9e28d98497c16b6e93ce1f131bff0abd45f8585f14aa382cce678ed680d628c631b40a9616a19cfbc2049b68 languageName: node linkType: hard @@ -1939,7 +1928,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.21, @jridgewell/trace-mapping@npm:^0.3.9": +"@jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.20, @jridgewell/trace-mapping@npm:^0.3.21, @jridgewell/trace-mapping@npm:^0.3.9": version: 0.3.22 resolution: "@jridgewell/trace-mapping@npm:0.3.22" dependencies: @@ -1983,23 +1972,25 @@ __metadata: languageName: node linkType: hard -"@npmcli/fs@npm:^2.1.0": - version: 2.1.1 - resolution: "@npmcli/fs@npm:2.1.1" +"@npmcli/agent@npm:^2.0.0": + version: 2.2.0 + resolution: "@npmcli/agent@npm:2.2.0" dependencies: - "@gar/promisify": "npm:^1.1.3" - semver: "npm:^7.3.5" - checksum: a553c45cef26b846170ee10c04a177d915aaf3ac128ac4ff7e4afb2619aad4b4aef37a945f1e6bfdeaf60a56dec0a3fd75031e082ea0b930182a50bf648ca09b + agent-base: "npm:^7.1.0" + http-proxy-agent: "npm:^7.0.0" + https-proxy-agent: "npm:^7.0.1" + lru-cache: "npm:^10.0.1" + socks-proxy-agent: "npm:^8.0.1" + checksum: 7b89590598476dda88e79c473766b67c682aae6e0ab0213491daa6083dcc0c171f86b3868f5506f22c09aa5ea69ad7dfb78f4bf39a8dca375d89a42f408645b3 languageName: node linkType: hard -"@npmcli/move-file@npm:^2.0.0": - version: 2.0.0 - resolution: "@npmcli/move-file@npm:2.0.0" +"@npmcli/fs@npm:^3.1.0": + version: 3.1.0 + resolution: "@npmcli/fs@npm:3.1.0" dependencies: - mkdirp: "npm:^1.0.4" - rimraf: "npm:^3.0.2" - checksum: 3a1920e02fa05c1c06c63b7a9614f440403942ce849cc59a2b2aed3e29f2871c4009fdf17de29d84bea3c43f2c370fbcf78d8bcb051339939eaf7cdcb7fb7132 + semver: "npm:^7.3.5" + checksum: 162b4a0b8705cd6f5c2470b851d1dc6cd228c86d2170e1769d738c1fbb69a87160901411c3c035331e9e99db72f1f1099a8b734bf1637cc32b9a5be1660e4e1e languageName: node linkType: hard @@ -2048,9 +2039,9 @@ __metadata: linkType: hard "@popperjs/core@npm:^2.9.0": - version: 2.11.6 - resolution: "@popperjs/core@npm:2.11.6" - checksum: 90b1361ab1a19cd351e482a88cb6cf13cf25973e20797bf9b97223e64b87bde8d9668ab2f33be24475e2a092d362ac256c361b16ea4e4ab5b21f2aeaef5f9bb7 + version: 2.11.8 + resolution: "@popperjs/core@npm:2.11.8" + checksum: 4681e682abc006d25eb380d0cf3efc7557043f53b6aea7a5057d0d1e7df849a00e281cd8ea79c902a35a414d7919621fc2ba293ecec05f413598e0b23d5a1e63 languageName: node linkType: hard @@ -2061,13 +2052,6 @@ __metadata: languageName: node linkType: hard -"@tootallnate/once@npm:2": - version: 2.0.0 - resolution: "@tootallnate/once@npm:2.0.0" - checksum: 073bfa548026b1ebaf1659eb8961e526be22fa77139b10d60e712f46d2f0f05f4e6c8bec62a087d41088ee9e29faa7f54838568e475ab2f776171003c3920858 - languageName: node - linkType: hard - "@trysound/sax@npm:0.2.0": version: 0.2.0 resolution: "@trysound/sax@npm:0.2.0" @@ -2076,29 +2060,29 @@ __metadata: linkType: hard "@types/eslint-scope@npm:^3.7.3": - version: 3.7.4 - resolution: "@types/eslint-scope@npm:3.7.4" + version: 3.7.7 + resolution: "@types/eslint-scope@npm:3.7.7" dependencies: "@types/eslint": "npm:*" "@types/estree": "npm:*" - checksum: f8a19cddf9d402f079bcc261958fff5ff2616465e4fb4cd423aa966a6a32bf5d3c65ca3ca0fbe824776b48c5cd525efbaf927b98b8eeef093aa68a1a2ba19359 + checksum: a0ecbdf2f03912679440550817ff77ef39a30fa8bfdacaf6372b88b1f931828aec392f52283240f0d648cf3055c5ddc564544a626bcf245f3d09fcb099ebe3cc languageName: node linkType: hard "@types/eslint@npm:*": - version: 8.4.5 - resolution: "@types/eslint@npm:8.4.5" + version: 8.56.2 + resolution: "@types/eslint@npm:8.56.2" dependencies: "@types/estree": "npm:*" "@types/json-schema": "npm:*" - checksum: 81d4f9920d0ef0f694555fefe8c8b5f81cd0dfe52f4455afdc63eb724bbb0e033fc19a8bc580fb5674b6fbc8be2a2a516c370f020bbd3dd0d309cb716b1c70d6 + checksum: e33ca87a30a9454ba9943e1270ac759996f5fe598a1c1afbaec1d1e7346a339e20bf2a9d81f177067116bbaa6cfa4f748993cb338f57978ae862ad38ffae56fe languageName: node linkType: hard "@types/estree@npm:*, @types/estree@npm:^1.0.0": - version: 1.0.0 - resolution: "@types/estree@npm:1.0.0" - checksum: 4e73ff606bf7c7ccdaa66092de650c410a4ad2ecc388fdbed8242cac9dbcad72407e1ceff041b7da691babb02ff74ab885d6231fb09368fdd1eabbf1b5253d49 + version: 1.0.5 + resolution: "@types/estree@npm:1.0.5" + checksum: b3b0e334288ddb407c7b3357ca67dbee75ee22db242ca7c56fe27db4e1a31989cb8af48a84dd401deb787fe10cc6b2ab1ee82dc4783be87ededbe3d53c79c70d languageName: node linkType: hard @@ -2113,64 +2097,66 @@ __metadata: linkType: hard "@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0": - version: 2.0.4 - resolution: "@types/istanbul-lib-coverage@npm:2.0.4" - checksum: af5f6b64e788331ed3f7b2e2613cb6ca659c58b8500be94bbda8c995ad3da9216c006f1cfe6f66b321c39392b1bda18b16e63cef090a77d24a00b4bd5ba3b018 + version: 2.0.6 + resolution: "@types/istanbul-lib-coverage@npm:2.0.6" + checksum: 3948088654f3eeb45363f1db158354fb013b362dba2a5c2c18c559484d5eb9f6fd85b23d66c0a7c2fcfab7308d0a585b14dadaca6cc8bf89ebfdc7f8f5102fb7 languageName: node linkType: hard "@types/istanbul-lib-report@npm:*": - version: 3.0.0 - resolution: "@types/istanbul-lib-report@npm:3.0.0" + version: 3.0.3 + resolution: "@types/istanbul-lib-report@npm:3.0.3" dependencies: "@types/istanbul-lib-coverage": "npm:*" - checksum: 7ced458631276a28082ee40645224c3cdd8b861961039ff811d841069171c987ec7e50bc221845ec0d04df0022b2f457a21fb2f816dab2fbe64d59377b32031f + checksum: 247e477bbc1a77248f3c6de5dadaae85ff86ac2d76c5fc6ab1776f54512a745ff2a5f791d22b942e3990ddbd40f3ef5289317c4fca5741bedfaa4f01df89051c languageName: node linkType: hard "@types/istanbul-reports@npm:^3.0.0": - version: 3.0.1 - resolution: "@types/istanbul-reports@npm:3.0.1" + version: 3.0.4 + resolution: "@types/istanbul-reports@npm:3.0.4" dependencies: "@types/istanbul-lib-report": "npm:*" - checksum: e147f0db9346a0cae9a359220bc76f7c78509fb6979a2597feb24d64b6e8328d2d26f9d152abbd59c6bca721e4ea2530af20116d01df50815efafd1e151fd777 + checksum: 1647fd402aced5b6edac87274af14ebd6b3a85447ef9ad11853a70fd92a98d35f81a5d3ea9fcb5dbb5834e800c6e35b64475e33fcae6bfa9acc70d61497c54ee languageName: node linkType: hard "@types/json-schema@npm:*, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": - version: 7.0.11 - resolution: "@types/json-schema@npm:7.0.11" - checksum: bd1f9a7b898ff15c4bb494eb19124f2d688b804c39f07cbf135ac73f35324970e9e8329b72aae1fb543d925ea295a1568b23056c26658cecec4741fa28c3b81a + version: 7.0.15 + resolution: "@types/json-schema@npm:7.0.15" + checksum: a996a745e6c5d60292f36731dd41341339d4eeed8180bb09226e5c8d23759067692b1d88e5d91d72ee83dfc00d3aca8e7bd43ea120516c17922cbcb7c3e252db languageName: node linkType: hard "@types/minimatch@npm:*": - version: 3.0.5 - resolution: "@types/minimatch@npm:3.0.5" - checksum: a1a19ba342d6f39b569510f621ae4bbe972dc9378d15e9a5e47904c440ee60744f5b09225bc73be1c6490e3a9c938eee69eb53debf55ce1f15761201aa965f97 + version: 5.1.2 + resolution: "@types/minimatch@npm:5.1.2" + checksum: 83cf1c11748891b714e129de0585af4c55dd4c2cafb1f1d5233d79246e5e1e19d1b5ad9e8db449667b3ffa2b6c80125c429dbee1054e9efb45758dbc4e118562 languageName: node linkType: hard "@types/node@npm:*": - version: 18.0.6 - resolution: "@types/node@npm:18.0.6" - checksum: 720178d0c14aa4fc20db299f1446163fbe8b5d97ed54ab697135ab5685352e468f99735d319a081b55436bf66ed8a84ea234876317ca4b71998be9e09c1ef170 + version: 20.11.6 + resolution: "@types/node@npm:20.11.6" + dependencies: + undici-types: "npm:~5.26.4" + checksum: 922bc1e78076bb79fd168902c80321b54487181e3be3386e183fc535d102d91c8902da25148eaec841410fab7fb872fd4a93ec9ac9299cedf0ebcbf16b442aa1 languageName: node linkType: hard "@types/yargs-parser@npm:*": - version: 21.0.0 - resolution: "@types/yargs-parser@npm:21.0.0" - checksum: cb89f3bb2e8002f1479a65a934e825be4cc18c50b350bbc656405d41cf90b8a299b105e7da497d7eb1aa460472a07d1e5a389f3af0862f1d1252279cfcdd017c + version: 21.0.3 + resolution: "@types/yargs-parser@npm:21.0.3" + checksum: e71c3bd9d0b73ca82e10bee2064c384ab70f61034bbfb78e74f5206283fc16a6d85267b606b5c22cb2a3338373586786fed595b2009825d6a9115afba36560a0 languageName: node linkType: hard "@types/yargs@npm:^17.0.8": - version: 17.0.13 - resolution: "@types/yargs@npm:17.0.13" + version: 17.0.32 + resolution: "@types/yargs@npm:17.0.32" dependencies: "@types/yargs-parser": "npm:*" - checksum: 5005e1e7408b9fea96c356becf19256f1a9bca02120852d3c0089ba7123528b0b6891185e9c92bac25cb5c04090a7a714b201523a6bf4a8a226852205c631208 + checksum: 2095e8aad8a4e66b86147415364266b8d607a3b95b4239623423efd7e29df93ba81bb862784a6e08664f645cc1981b25fd598f532019174cd3e5e1e689e1cccf languageName: node linkType: hard @@ -2181,154 +2167,154 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/ast@npm:1.11.5, @webassemblyjs/ast@npm:^1.11.5": - version: 1.11.5 - resolution: "@webassemblyjs/ast@npm:1.11.5" +"@webassemblyjs/ast@npm:1.11.6, @webassemblyjs/ast@npm:^1.11.5": + version: 1.11.6 + resolution: "@webassemblyjs/ast@npm:1.11.6" dependencies: - "@webassemblyjs/helper-numbers": "npm:1.11.5" - "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.5" - checksum: e18a6613b0edf70dcafb210941bd7923a233280b9b9d6ae65b165da9856fb5a7f2576d18587e9ec83fcb618a0e22df5be2d5b046fec063355f70ad7f974d13ae + "@webassemblyjs/helper-numbers": "npm:1.11.6" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.6" + checksum: e28476a183c8a1787adcf0e5df1d36ec4589467ab712c674fe4f6769c7fb19d1217bfb5856b3edd0f3e0a148ebae9e4bbb84110cee96664966dfef204d9c31fb languageName: node linkType: hard -"@webassemblyjs/floating-point-hex-parser@npm:1.11.5": - version: 1.11.5 - resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.11.5" - checksum: 9ac08fbbe10539e88e4b2aa04c2af89caab25e1489ce14f4de7cd3ec1e86512d6a94c0285637553f64430ef46362813604d412e8af9e98acea6c7c4eca5952df +"@webassemblyjs/floating-point-hex-parser@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.11.6" + checksum: 37fe26f89e18e4ca0e7d89cfe3b9f17cfa327d7daf906ae01400416dbb2e33c8a125b4dc55ad7ff405e5fcfb6cf0d764074c9bc532b9a31a71e762be57d2ea0a languageName: node linkType: hard -"@webassemblyjs/helper-api-error@npm:1.11.5": - version: 1.11.5 - resolution: "@webassemblyjs/helper-api-error@npm:1.11.5" - checksum: 18b9f58f41f3a71cd6d307dd1585f1a193e0bcadada2d3b0e6ebb82ae00808588dba378512375e7ee8a5c8cf6027172d79315394bbb451fdaf63a8949bf7b750 +"@webassemblyjs/helper-api-error@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-api-error@npm:1.11.6" + checksum: a681ed51863e4ff18cf38d223429f414894e5f7496856854d9a886eeddcee32d7c9f66290f2919c9bb6d2fc2b2fae3f989b6a1e02a81e829359738ea0c4d371a languageName: node linkType: hard -"@webassemblyjs/helper-buffer@npm:1.11.5": - version: 1.11.5 - resolution: "@webassemblyjs/helper-buffer@npm:1.11.5" - checksum: d1e3ff85164821cf1c503a91cd848984f2499feee42509074ba9780d07e9138911816c34b8e263547312f7bd5f3b81e96a176c01e0c702f97a85a2d824ef01b5 +"@webassemblyjs/helper-buffer@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-buffer@npm:1.11.6" + checksum: 55b5d67db95369cdb2a505ae7ebdf47194d49dfc1aecb0f5403277dcc899c7d3e1f07e8d279646adf8eafd89959272db62ca66fbe803321661ab184176ddfd3a languageName: node linkType: hard -"@webassemblyjs/helper-numbers@npm:1.11.5": - version: 1.11.5 - resolution: "@webassemblyjs/helper-numbers@npm:1.11.5" +"@webassemblyjs/helper-numbers@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-numbers@npm:1.11.6" dependencies: - "@webassemblyjs/floating-point-hex-parser": "npm:1.11.5" - "@webassemblyjs/helper-api-error": "npm:1.11.5" + "@webassemblyjs/floating-point-hex-parser": "npm:1.11.6" + "@webassemblyjs/helper-api-error": "npm:1.11.6" "@xtuc/long": "npm:4.2.2" - checksum: 50ef3f194f3e8d8a3be180d6ab513036acc8d1647cb8311b32e1fa43c6876cc9a5862ec5019607170538f74fdeaa5d9507fc78d54c8e4dac2cd17cec128374bd + checksum: c7d5afc0ff3bd748339b466d8d2f27b908208bf3ff26b2e8e72c39814479d486e0dca6f3d4d776fd9027c1efe05b5c0716c57a23041eb34473892b2731c33af3 languageName: node linkType: hard -"@webassemblyjs/helper-wasm-bytecode@npm:1.11.5": - version: 1.11.5 - resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.11.5" - checksum: 249ac6259737b370d30ee4b7a9bc07f9e92d2200a6d0cebb87ca0d18de4f2921f76a481599d777d1c83015ac0f4cc407100678afe4e6b1aab9d0827b201e3eff +"@webassemblyjs/helper-wasm-bytecode@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.11.6" + checksum: 79d2bebdd11383d142745efa32781249745213af8e022651847382685ca76709f83e1d97adc5f0d3c2b8546bf02864f8b43a531fdf5ca0748cb9e4e0ef2acaa5 languageName: node linkType: hard -"@webassemblyjs/helper-wasm-section@npm:1.11.5": - version: 1.11.5 - resolution: "@webassemblyjs/helper-wasm-section@npm:1.11.5" +"@webassemblyjs/helper-wasm-section@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-wasm-section@npm:1.11.6" dependencies: - "@webassemblyjs/ast": "npm:1.11.5" - "@webassemblyjs/helper-buffer": "npm:1.11.5" - "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.5" - "@webassemblyjs/wasm-gen": "npm:1.11.5" - checksum: 4c732d60131d488efaee32ecb228fe1b6991e79953cfbfbcd782ea87ac097dd2bc5b84abc5d5fdf3e277d1eb309c6d0e31a43a6c6033a5ec937f538e3a63ee63 + "@webassemblyjs/ast": "npm:1.11.6" + "@webassemblyjs/helper-buffer": "npm:1.11.6" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.6" + "@webassemblyjs/wasm-gen": "npm:1.11.6" + checksum: b79b19a63181f32e5ee0e786fa8264535ea5360276033911fae597d2de15e1776f028091d08c5a813a3901fd2228e74cd8c7e958fded064df734f00546bef8ce languageName: node linkType: hard -"@webassemblyjs/ieee754@npm:1.11.5": - version: 1.11.5 - resolution: "@webassemblyjs/ieee754@npm:1.11.5" +"@webassemblyjs/ieee754@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/ieee754@npm:1.11.6" dependencies: "@xtuc/ieee754": "npm:^1.2.0" - checksum: 6af4e17da909ba86b7ca2065912220d99689d5af0a05b819317b05e0454a950322530044cb82ce63c841454871e934546d38ad96ab2979872dafb96b0f34f9d4 + checksum: 59de0365da450322c958deadade5ec2d300c70f75e17ae55de3c9ce564deff5b429e757d107c7ec69bd0ba169c6b6cc2ff66293ab7264a7053c829b50ffa732f languageName: node linkType: hard -"@webassemblyjs/leb128@npm:1.11.5": - version: 1.11.5 - resolution: "@webassemblyjs/leb128@npm:1.11.5" +"@webassemblyjs/leb128@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/leb128@npm:1.11.6" dependencies: "@xtuc/long": "npm:4.2.2" - checksum: 7f10ce18f226445b8d6a904be614bf07e7eec421bb7b22d202d9b6817faeb440bcd6b35e291446d4c46dd98c90d0673f3d682891428a9bf07d7fe82d73d8de57 + checksum: cb344fc04f1968209804de4da018679c5d4708a03b472a33e0fa75657bb024978f570d3ccf9263b7f341f77ecaa75d0e051b9cd4b7bb17a339032cfd1c37f96e languageName: node linkType: hard -"@webassemblyjs/utf8@npm:1.11.5": - version: 1.11.5 - resolution: "@webassemblyjs/utf8@npm:1.11.5" - checksum: a396ccc6635d0eeac99a0c812ea8a4b28d7a035242dc0b555723268219b1141cd5a18c85fa9dec899c69765d8c8d5ec0537c777395389ee6f79cab94b78fcd79 +"@webassemblyjs/utf8@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/utf8@npm:1.11.6" + checksum: 14d6c24751a89ad9d801180b0d770f30a853c39f035a15fbc96266d6ac46355227abd27a3fd2eeaa97b4294ced2440a6b012750ae17bafe1a7633029a87b6bee languageName: node linkType: hard "@webassemblyjs/wasm-edit@npm:^1.11.5": - version: 1.11.5 - resolution: "@webassemblyjs/wasm-edit@npm:1.11.5" + version: 1.11.6 + resolution: "@webassemblyjs/wasm-edit@npm:1.11.6" dependencies: - "@webassemblyjs/ast": "npm:1.11.5" - "@webassemblyjs/helper-buffer": "npm:1.11.5" - "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.5" - "@webassemblyjs/helper-wasm-section": "npm:1.11.5" - "@webassemblyjs/wasm-gen": "npm:1.11.5" - "@webassemblyjs/wasm-opt": "npm:1.11.5" - "@webassemblyjs/wasm-parser": "npm:1.11.5" - "@webassemblyjs/wast-printer": "npm:1.11.5" - checksum: f8db94190805a68ff9389ddf5dd16bdcb27e59e307fe5922aab64ae396fa66538a86c00c9b1a0013e2488aa22a3e2572b5cf9aeabcb6b0ab859a096390b0bc4c + "@webassemblyjs/ast": "npm:1.11.6" + "@webassemblyjs/helper-buffer": "npm:1.11.6" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.6" + "@webassemblyjs/helper-wasm-section": "npm:1.11.6" + "@webassemblyjs/wasm-gen": "npm:1.11.6" + "@webassemblyjs/wasm-opt": "npm:1.11.6" + "@webassemblyjs/wasm-parser": "npm:1.11.6" + "@webassemblyjs/wast-printer": "npm:1.11.6" + checksum: 9a56b6bf635cf7aa5d6e926eaddf44c12fba050170e452a8e17ab4e1b937708678c03f5817120fb9de1e27167667ce693d16ce718d41e5a16393996a6017ab73 languageName: node linkType: hard -"@webassemblyjs/wasm-gen@npm:1.11.5": - version: 1.11.5 - resolution: "@webassemblyjs/wasm-gen@npm:1.11.5" +"@webassemblyjs/wasm-gen@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/wasm-gen@npm:1.11.6" dependencies: - "@webassemblyjs/ast": "npm:1.11.5" - "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.5" - "@webassemblyjs/ieee754": "npm:1.11.5" - "@webassemblyjs/leb128": "npm:1.11.5" - "@webassemblyjs/utf8": "npm:1.11.5" - checksum: c5097c28e0fcc26d8afc77783f677cf4e74b1fdb1039fc3e2ecd8cc921b9c02acc2b74c12f7f8d5ee04bf455c1b9c0543b023e65c37bef67f92690306b1aa453 + "@webassemblyjs/ast": "npm:1.11.6" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.6" + "@webassemblyjs/ieee754": "npm:1.11.6" + "@webassemblyjs/leb128": "npm:1.11.6" + "@webassemblyjs/utf8": "npm:1.11.6" + checksum: ce9a39d3dab2eb4a5df991bc9f3609960daa4671d25d700f4617152f9f79da768547359f817bee10cd88532c3e0a8a1714d383438e0a54217eba53cb822bd5ad languageName: node linkType: hard -"@webassemblyjs/wasm-opt@npm:1.11.5": - version: 1.11.5 - resolution: "@webassemblyjs/wasm-opt@npm:1.11.5" +"@webassemblyjs/wasm-opt@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/wasm-opt@npm:1.11.6" dependencies: - "@webassemblyjs/ast": "npm:1.11.5" - "@webassemblyjs/helper-buffer": "npm:1.11.5" - "@webassemblyjs/wasm-gen": "npm:1.11.5" - "@webassemblyjs/wasm-parser": "npm:1.11.5" - checksum: be0c21c2d597dcfea6065ef33e8208cc651adfaf013284b7ab6ca21edfa25c4faaf97553c23f89daabd5a8e100875c241058955234a44f41420eb1f61e92c0ed + "@webassemblyjs/ast": "npm:1.11.6" + "@webassemblyjs/helper-buffer": "npm:1.11.6" + "@webassemblyjs/wasm-gen": "npm:1.11.6" + "@webassemblyjs/wasm-parser": "npm:1.11.6" + checksum: 82788408054171688e9f12883b693777219366d6867003e34dccc21b4a0950ef53edc9d2b4d54cabdb6ee869cf37c8718401b4baa4f70a7f7dd3867c75637298 languageName: node linkType: hard -"@webassemblyjs/wasm-parser@npm:1.11.5, @webassemblyjs/wasm-parser@npm:^1.11.5": - version: 1.11.5 - resolution: "@webassemblyjs/wasm-parser@npm:1.11.5" +"@webassemblyjs/wasm-parser@npm:1.11.6, @webassemblyjs/wasm-parser@npm:^1.11.5": + version: 1.11.6 + resolution: "@webassemblyjs/wasm-parser@npm:1.11.6" dependencies: - "@webassemblyjs/ast": "npm:1.11.5" - "@webassemblyjs/helper-api-error": "npm:1.11.5" - "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.5" - "@webassemblyjs/ieee754": "npm:1.11.5" - "@webassemblyjs/leb128": "npm:1.11.5" - "@webassemblyjs/utf8": "npm:1.11.5" - checksum: f1accb914be6526a9630c669e090abfcd0070290d8d7e0f4ddab2e5689de262f987a0ca24b9ca51a3ce84c514c889bcb632fa7a604eced04ae5ad869e523eaea + "@webassemblyjs/ast": "npm:1.11.6" + "@webassemblyjs/helper-api-error": "npm:1.11.6" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.6" + "@webassemblyjs/ieee754": "npm:1.11.6" + "@webassemblyjs/leb128": "npm:1.11.6" + "@webassemblyjs/utf8": "npm:1.11.6" + checksum: 7a97a5f34f98bdcfd812157845a06d53f3d3f67dbd4ae5d6bf66e234e17dc4a76b2b5e74e5dd70b4cab9778fc130194d50bbd6f9a1d23e15ed1ed666233d6f5f languageName: node linkType: hard -"@webassemblyjs/wast-printer@npm:1.11.5": - version: 1.11.5 - resolution: "@webassemblyjs/wast-printer@npm:1.11.5" +"@webassemblyjs/wast-printer@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/wast-printer@npm:1.11.6" dependencies: - "@webassemblyjs/ast": "npm:1.11.5" + "@webassemblyjs/ast": "npm:1.11.6" "@xtuc/long": "npm:4.2.2" - checksum: 7d506ebe0f03c1fb039eec667cc7dea8bb424be3e67e5899389da7eb093a239b443b6502a0a254b6dc981198a1ce9351375d5c323d09933f4dbee43cac5d618d + checksum: 916b90fa3a8aadd95ca41c21d4316d0a7582cf6d0dcf6d9db86ab0de823914df513919fba60ac1edd227ff00e93a66b927b15cbddd36b69d8a34c8815752633c languageName: node linkType: hard @@ -2379,10 +2365,10 @@ __metadata: languageName: node linkType: hard -"abbrev@npm:1": - version: 1.1.1 - resolution: "abbrev@npm:1.1.1" - checksum: 3f762677702acb24f65e813070e306c61fafe25d4b2583f9dfc935131f774863f3addd5741572ed576bd69cabe473c5af18e1e108b829cb7b6b4747884f726e6 +"abbrev@npm:^2.0.0": + version: 2.0.0 + resolution: "abbrev@npm:2.0.0" + checksum: f742a5a107473946f426c691c08daba61a1d15942616f300b5d32fd735be88fef5cba24201757b6c407fd564555fb48c751cfa33519b2605c8a7aadd22baf372 languageName: node linkType: hard @@ -2404,32 +2390,21 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.5.0, acorn@npm:^8.7.1, acorn@npm:^8.9.0": - version: 8.9.0 - resolution: "acorn@npm:8.9.0" +"acorn@npm:^8.7.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": + version: 8.11.3 + resolution: "acorn@npm:8.11.3" bin: acorn: bin/acorn - checksum: 5b51689d56f1ca5d6ea1fa58af478affd8d3396403637abcbc7caf28e1a47beb537cf1654f537b6cf4c73377f3e1aa99fd4a50674e64daefe08cb25c799ded28 + checksum: 3ff155f8812e4a746fee8ecff1f227d527c4c45655bb1fad6347c3cb58e46190598217551b1500f18542d2bbe5c87120cb6927f5a074a59166fbdd9468f0a299 languageName: node linkType: hard -"agent-base@npm:6, agent-base@npm:^6.0.2": - version: 6.0.2 - resolution: "agent-base@npm:6.0.2" - dependencies: - debug: "npm:4" - checksum: dc4f757e40b5f3e3d674bc9beb4f1048f4ee83af189bae39be99f57bf1f48dde166a8b0a5342a84b5944ee8e6ed1e5a9d801858f4ad44764e84957122fe46261 - languageName: node - linkType: hard - -"agentkeepalive@npm:^4.2.1": - version: 4.2.1 - resolution: "agentkeepalive@npm:4.2.1" +"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0": + version: 7.1.0 + resolution: "agent-base@npm:7.1.0" dependencies: - debug: "npm:^4.1.0" - depd: "npm:^1.1.2" - humanize-ms: "npm:^1.2.1" - checksum: 259dafa84a9e1f9e277ac8b31995a7a4f4db36a1df1710e9d413d98c6c013ab81370ad585d92038045cc8657662e578b07fd60b312b212f59ad426b10e1d6dce + debug: "npm:^4.3.4" + checksum: fc974ab57ffdd8421a2bc339644d312a9cca320c20c3393c9d8b1fd91731b9bbabdb985df5fc860f5b79d81c3e350daa3fcb31c5c07c0bb385aafc817df004ce languageName: node linkType: hard @@ -2548,29 +2523,12 @@ __metadata: linkType: hard "anymatch@npm:~3.1.2": - version: 3.1.2 - resolution: "anymatch@npm:3.1.2" + version: 3.1.3 + resolution: "anymatch@npm:3.1.3" dependencies: normalize-path: "npm:^3.0.0" picomatch: "npm:^2.0.4" - checksum: 900645535aee46ed7958f4f5b5e38abcbf474b5230406e913de15fc9a1310f0d5322775deb609688efe31010fa57831e55d36040b19826c22ce61d537e9b9759 - languageName: node - linkType: hard - -"aproba@npm:^1.0.3 || ^2.0.0": - version: 2.0.0 - resolution: "aproba@npm:2.0.0" - checksum: d06e26384a8f6245d8c8896e138c0388824e259a329e0c9f196b4fa533c82502a6fd449586e3604950a0c42921832a458bb3aa0aa9f0ba449cfd4f50fd0d09b5 - languageName: node - linkType: hard - -"are-we-there-yet@npm:^3.0.0": - version: 3.0.0 - resolution: "are-we-there-yet@npm:3.0.0" - dependencies: - delegates: "npm:^1.0.0" - readable-stream: "npm:^3.6.0" - checksum: 91cd4ad8a914437720bd726a36304ae279209fb13ce0f7e183ae752ae6d0070b56717a06a96b186728f9e74cb90837e5ee167a717119367b0ff3c4d2cef389ff + checksum: 57b06ae984bc32a0d22592c87384cd88fe4511b1dd7581497831c56d41939c8a001b28e7b853e1450f2bf61992dfcaa8ae2d0d161a0a90c4fb631ef07098fbac languageName: node linkType: hard @@ -2621,19 +2579,19 @@ __metadata: linkType: hard "async@npm:^3.2.2": - version: 3.2.4 - resolution: "async@npm:3.2.4" - checksum: b5d02fed64717edf49e35b2b156debd9cf524934ea670108fa5528e7615ed66a5e0bf6c65f832c9483b63aa7f0bffe3e588ebe8d58a539b833798d324516e1c9 + version: 3.2.5 + resolution: "async@npm:3.2.5" + checksum: 1408287b26c6db67d45cb346e34892cee555b8b59e6c68e6f8c3e495cad5ca13b4f218180e871f3c2ca30df4ab52693b66f2f6ff43644760cab0b2198bda79c1 languageName: node linkType: hard "autoprefixer@npm:^10.4.16": - version: 10.4.16 - resolution: "autoprefixer@npm:10.4.16" + version: 10.4.17 + resolution: "autoprefixer@npm:10.4.17" dependencies: - browserslist: "npm:^4.21.10" - caniuse-lite: "npm:^1.0.30001538" - fraction.js: "npm:^4.3.6" + browserslist: "npm:^4.22.2" + caniuse-lite: "npm:^1.0.30001578" + fraction.js: "npm:^4.3.7" normalize-range: "npm:^0.1.2" picocolors: "npm:^1.0.0" postcss-value-parser: "npm:^4.2.0" @@ -2641,7 +2599,7 @@ __metadata: postcss: ^8.1.0 bin: autoprefixer: bin/autoprefixer - checksum: e00256e754d481a026d928bca729b25954074dd142dbec022f0a7db0d3bbc0dc2e2dc7542e94fec22eff81e21fe140e6856448e2d9a002660cb1e2ad434daee0 + checksum: 1d21cc8edb7bf993682094ceed03a32c18f5293f071182a64c2c6defb44bbe91d576ad775d2347469a81997b80cea0bbc4ad3eeb5b12710f9feacf2e6c04bb51 languageName: node linkType: hard @@ -2659,15 +2617,15 @@ __metadata: linkType: hard "babel-plugin-polyfill-corejs2@npm:^0.4.7": - version: 0.4.7 - resolution: "babel-plugin-polyfill-corejs2@npm:0.4.7" + version: 0.4.8 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.8" dependencies: "@babel/compat-data": "npm:^7.22.6" - "@babel/helper-define-polyfill-provider": "npm:^0.4.4" + "@babel/helper-define-polyfill-provider": "npm:^0.5.0" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: f80f7284ec72c63e7dd751e0bdf25e9978df195a79e0887470603bfdea13ee518d62573cf360bb1bc01b80819e54915dd5edce9cff14c52d0af5f984aa3d36a3 + checksum: 843e7528de0e03a31a6f3837896a95f75b0b24b0294a077246282372279e974400b0bdd82399e8f9cbfe42c87ed56540fd71c33eafb7c8e8b9adac546ecc5fe5 languageName: node linkType: hard @@ -2684,13 +2642,13 @@ __metadata: linkType: hard "babel-plugin-polyfill-regenerator@npm:^0.5.4": - version: 0.5.4 - resolution: "babel-plugin-polyfill-regenerator@npm:0.5.4" + version: 0.5.5 + resolution: "babel-plugin-polyfill-regenerator@npm:0.5.5" dependencies: - "@babel/helper-define-polyfill-provider": "npm:^0.4.4" + "@babel/helper-define-polyfill-provider": "npm:^0.5.0" peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 0b903f5fe2f8c487b4260935dfe60bd9a95bcaee7ae63958f063045093b16d4e8288c232199d411261300aa21f6b106a3cb83c42cc996de013b337f5825a79fe + checksum: 2aab692582082d54e0df9f9373dca1b223e65b4e7e96440160f27ed8803d417a1fa08da550f08aa3820d2010329ca91b68e2b6e9bd7aed51c93d46dfe79629bb languageName: node linkType: hard @@ -2757,7 +2715,7 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.0.0, browserslist@npm:^4.14.5, browserslist@npm:^4.21.10, browserslist@npm:^4.22.1, browserslist@npm:^4.22.2": +"browserslist@npm:^4.0.0, browserslist@npm:^4.14.5, browserslist@npm:^4.22.1, browserslist@npm:^4.22.2": version: 4.22.2 resolution: "browserslist@npm:4.22.2" dependencies: @@ -2778,29 +2736,23 @@ __metadata: languageName: node linkType: hard -"cacache@npm:^16.1.0": - version: 16.1.1 - resolution: "cacache@npm:16.1.1" +"cacache@npm:^18.0.0": + version: 18.0.2 + resolution: "cacache@npm:18.0.2" dependencies: - "@npmcli/fs": "npm:^2.1.0" - "@npmcli/move-file": "npm:^2.0.0" - chownr: "npm:^2.0.0" - fs-minipass: "npm:^2.1.0" - glob: "npm:^8.0.1" - infer-owner: "npm:^1.0.4" - lru-cache: "npm:^7.7.1" - minipass: "npm:^3.1.6" - minipass-collect: "npm:^1.0.2" + "@npmcli/fs": "npm:^3.1.0" + fs-minipass: "npm:^3.0.0" + glob: "npm:^10.2.2" + lru-cache: "npm:^10.0.1" + minipass: "npm:^7.0.3" + minipass-collect: "npm:^2.0.1" minipass-flush: "npm:^1.0.5" minipass-pipeline: "npm:^1.2.4" - mkdirp: "npm:^1.0.4" p-map: "npm:^4.0.0" - promise-inflight: "npm:^1.0.1" - rimraf: "npm:^3.0.2" - ssri: "npm:^9.0.0" + ssri: "npm:^10.0.0" tar: "npm:^6.1.11" - unique-filename: "npm:^1.1.1" - checksum: 8f257699d9bfe41c40340522cb4920ce88b35d07ea7733f92c5e56ead390ae43468035627385a3d6019ad89dd96e8bc3eeca646980290921406ec1fa9199ba7d + unique-filename: "npm:^3.0.0" + checksum: 7992665305cc251a984f4fdbab1449d50e88c635bc43bf2785530c61d239c61b349e5734461baa461caaee65f040ab14e2d58e694f479c0810cffd181ba5eabc languageName: node linkType: hard @@ -2823,10 +2775,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001538, caniuse-lite@npm:^1.0.30001565": - version: 1.0.30001570 - resolution: "caniuse-lite@npm:1.0.30001570" - checksum: e47230d2016edea56e002fa462a5289f697b48dcfbf703fb01aecc6c98ad4ecaf945ab23c253cb7af056c2d05f266e4e4cbebf45132100e2c9367439cb95b95b +"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001565, caniuse-lite@npm:^1.0.30001578": + version: 1.0.30001579 + resolution: "caniuse-lite@npm:1.0.30001579" + checksum: 4003970f8d01a5fa314e39f4a21751dc750a530f3d19aed225e18e8e02892b590b8b0debfa0961eae9bc0e49b77bfb17cf30d2469540e428a8305e3cc9164fb8 languageName: node linkType: hard @@ -2885,9 +2837,9 @@ __metadata: linkType: hard "ci-info@npm:^3.2.0": - version: 3.4.0 - resolution: "ci-info@npm:3.4.0" - checksum: 725cabad267e601ec4be269e1af744bedede3bdd42f25bc269d97c05be31bc2edfa8511d8b0eedf27c42ffb87c1dc21af49b20fae1d9ac0345963b13499e8a99 + version: 3.9.0 + resolution: "ci-info@npm:3.9.0" + checksum: 6f0109e36e111684291d46123d491bc4e7b7a1934c3a20dea28cba89f1d4a03acd892f5f6a81ed3855c38647e285a150e3c9ba062e38943bef57fee6c1554c3a languageName: node linkType: hard @@ -2952,15 +2904,6 @@ __metadata: languageName: node linkType: hard -"color-support@npm:^1.1.3": - version: 1.1.3 - resolution: "color-support@npm:1.1.3" - bin: - color-support: bin.js - checksum: 8ffeaa270a784dc382f62d9be0a98581db43e11eee301af14734a6d089bd456478b1a8b3e7db7ca7dc5b18a75f828f775c44074020b51c05fc00e6d0992b1cc6 - languageName: node - linkType: hard - "colord@npm:^2.9.1, colord@npm:^2.9.3": version: 2.9.3 resolution: "colord@npm:2.9.3" @@ -2969,9 +2912,9 @@ __metadata: linkType: hard "colorette@npm:^2.0.14": - version: 2.0.19 - resolution: "colorette@npm:2.0.19" - checksum: 2bcc9134095750fece6e88167011499b964b78bf0ea953469130ddb1dba3c8fe6c03debb0ae181e710e2be10900d117460f980483a7df4ba4a1bac3b182ecb64 + version: 2.0.20 + resolution: "colorette@npm:2.0.20" + checksum: e94116ff33b0ff56f3b83b9ace895e5bf87c2a7a47b3401b8c3f3226e050d5ef76cf4072fb3325f9dc24d1698f9b730baf4e05eeaf861d74a1883073f4c98a40 languageName: node linkType: hard @@ -3017,13 +2960,6 @@ __metadata: languageName: node linkType: hard -"console-control-strings@npm:^1.1.0": - version: 1.1.0 - resolution: "console-control-strings@npm:1.1.0" - checksum: 7ab51d30b52d461412cd467721bb82afe695da78fff8f29fe6f6b9cbaac9a2328e27a22a966014df9532100f6dd85370460be8130b9c677891ba36d96a343f50 - languageName: node - linkType: hard - "convert-source-map@npm:^2.0.0": version: 2.0.0 resolution: "convert-source-map@npm:2.0.0" @@ -3032,11 +2968,11 @@ __metadata: linkType: hard "core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.33.1": - version: 3.35.0 - resolution: "core-js-compat@npm:3.35.0" + version: 3.35.1 + resolution: "core-js-compat@npm:3.35.1" dependencies: browserslist: "npm:^4.22.2" - checksum: 8c4379240b8decb94b21e81d5ba6f768418721061923b28c9dfc97574680c35d778d39c010207402fc7c8308a68a4cf6d5e02bcbcb96e931c52e6e0dce29a68c + checksum: c3b872e1f9703aa9554cce816207d85730da4703f1776c540b4da11bbbef6d9a1e6041625b5c1f58d2ada3d05f4a2b92897b7de5315c5ecd5d33d50dec86cca7 languageName: node linkType: hard @@ -3069,13 +3005,13 @@ __metadata: linkType: hard "css-blank-pseudo@npm:^6.0.0": - version: 6.0.0 - resolution: "css-blank-pseudo@npm:6.0.0" + version: 6.0.1 + resolution: "css-blank-pseudo@npm:6.0.1" dependencies: postcss-selector-parser: "npm:^6.0.13" peerDependencies: postcss: ^8.4 - checksum: 2cbcc79dc56d27152a1c4b7af522228f78e12c2a59158944736b49ced63e197c69ff16927198286fb3630e4ffe202106de4b5775f10e661e58d741a6ac3593a6 + checksum: 04f2dc1c39a429cb4958b60a9d00b03e29a78e3e55fe111b3a0660b7c6c478455d5907eda7c7a495cf72dbe83ae3c80b409e0468ca1ba5ccef992e69a8f49df8 languageName: node linkType: hard @@ -3096,15 +3032,15 @@ __metadata: linkType: hard "css-has-pseudo@npm:^6.0.0": - version: 6.0.0 - resolution: "css-has-pseudo@npm:6.0.0" + version: 6.0.1 + resolution: "css-has-pseudo@npm:6.0.1" dependencies: - "@csstools/selector-specificity": "npm:^3.0.0" + "@csstools/selector-specificity": "npm:^3.0.1" postcss-selector-parser: "npm:^6.0.13" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: b1de0133f2fd8c8317409e982d01bf9ecdf381c13127542accd99d13ddb3e52a2a077c5287580d42eccc9a80613faa23741f69f624a470d3c8285d61d0c804e7 + checksum: 3f48dd4165bcc8e3a4f66e096f944eb18255daca62a389ca64227193bd2320a3ada1b884aac8a61c0834cae41647c1a3358049a6c9ab3c04725e0231260cbf63 languageName: node linkType: hard @@ -3156,11 +3092,11 @@ __metadata: linkType: hard "css-prefers-color-scheme@npm:^9.0.0": - version: 9.0.0 - resolution: "css-prefers-color-scheme@npm:9.0.0" + version: 9.0.1 + resolution: "css-prefers-color-scheme@npm:9.0.1" peerDependencies: postcss: ^8.4 - checksum: 35664c553865480e567ccc30172a0682f243b42309c26cc98f5063c2518a6e053b42a3e5b4455ca334074907fb447a883dcd1edd7a8fa1e09263f8f4e9d89568 + checksum: b94da00d84c4ebb56eb8fce96d4fdb20d2e622a7cd8cd6d7b87d1d2b718a55ce88bccc9d871771bfe77c5107de06132ba87190e3656f049e45f19f652d50136c languageName: node linkType: hard @@ -3205,9 +3141,9 @@ __metadata: linkType: hard "cssdb@npm:^7.9.0": - version: 7.9.0 - resolution: "cssdb@npm:7.9.0" - checksum: 7c8082c58a0288d0ee04e8d44357dc9070ad600e02fb446cfaca01d820f3e00f7d7cbd4151a5b155dd6c6b51b60fc1381acf27268ae3fe00cd90b5b86c918a7f + version: 7.10.0 + resolution: "cssdb@npm:7.10.0" + checksum: 2e0ee41481680515e5d08eabe426fa98d4aa04b8a76fd004b8b0c4fdfbfafc28957d84837542a7e6da8b408b2f1f3fb655a3ce9bc68d5cfa5634895f904910e4 languageName: node linkType: hard @@ -3289,7 +3225,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4": version: 4.3.4 resolution: "debug@npm:4.3.4" dependencies: @@ -3323,20 +3259,6 @@ __metadata: languageName: node linkType: hard -"delegates@npm:^1.0.0": - version: 1.0.0 - resolution: "delegates@npm:1.0.0" - checksum: ba05874b91148e1db4bf254750c042bf2215febd23a6d3cda2e64896aef79745fbd4b9996488bd3cafb39ce19dbce0fd6e3b6665275638befffe1c9b312b91b5 - languageName: node - linkType: hard - -"depd@npm:^1.1.2": - version: 1.1.2 - resolution: "depd@npm:1.1.2" - checksum: acb24aaf936ef9a227b6be6d495f0d2eb20108a9a6ad40585c5bda1a897031512fef6484e4fdbb80bd249fdaa82841fa1039f416ece03188e677ba11bcfda249 - languageName: node - linkType: hard - "dir-glob@npm:^3.0.1": version: 3.0.1 resolution: "dir-glob@npm:3.0.1" @@ -3373,7 +3295,7 @@ __metadata: languageName: node linkType: hard -"domhandler@npm:^5.0.1, domhandler@npm:^5.0.2": +"domhandler@npm:^5.0.2, domhandler@npm:^5.0.3": version: 5.0.3 resolution: "domhandler@npm:5.0.3" dependencies: @@ -3383,13 +3305,13 @@ __metadata: linkType: hard "domutils@npm:^3.0.1": - version: 3.0.1 - resolution: "domutils@npm:3.0.1" + version: 3.1.0 + resolution: "domutils@npm:3.1.0" dependencies: dom-serializer: "npm:^2.0.0" domelementtype: "npm:^2.3.0" - domhandler: "npm:^5.0.1" - checksum: 8ec14e7e54f58cae0062fa9aaf97c05a094733ff6df8ede588c57d96799ceb45d1ea46479e8dd285f43af43b3e7618a501b2b41d2c2080078d5947b5fee2b5f9 + domhandler: "npm:^5.0.3" + checksum: 342d64cf4d07b8a0573fb51e0a6312a88fb520c7fefd751870bf72fa5fc0f2e0cb9a3958a573610b1d608c6e2a69b8e9b4b40f0bfb8f87a71bce4f180cca1887 languageName: node linkType: hard @@ -3401,9 +3323,9 @@ __metadata: linkType: hard "electron-to-chromium@npm:^1.4.601": - version: 1.4.612 - resolution: "electron-to-chromium@npm:1.4.612" - checksum: 4afeae778beb67e81a47e362b72847efc24161b7673818b3d5a36fa0678f006629436a5cfa6b0bb0291927c61d01e58b66330942cc7f4109f170bdec6bfafd73 + version: 1.4.645 + resolution: "electron-to-chromium@npm:1.4.645" + checksum: a77ad457b960fae4ca109eda9e0d6263686c9868ded5c02029ad18cd69387376395ab113104b01a3355ae5efd4a4d63deb3d00af41c52b48c1408aa7719aec75 languageName: node linkType: hard @@ -3448,9 +3370,9 @@ __metadata: linkType: hard "entities@npm:^4.2.0": - version: 4.4.0 - resolution: "entities@npm:4.4.0" - checksum: b7971419897622d3996bbbff99249e166caaaf3ea95d3841d6dc5d3bf315f133b649fbe932623e3cc527d871112e7563a8284e24f23e472126aa90c4e9c3215b + version: 4.5.0 + resolution: "entities@npm:4.5.0" + checksum: 5b039739f7621f5d1ad996715e53d964035f75ad3b9a4d38c6b3804bb226e282ffeae2443624d8fdd9c47d8e926ae9ac009c54671243f0c3294c26af7cc85250 languageName: node linkType: hard @@ -3462,11 +3384,11 @@ __metadata: linkType: hard "envinfo@npm:^7.7.3": - version: 7.8.1 - resolution: "envinfo@npm:7.8.1" + version: 7.11.0 + resolution: "envinfo@npm:7.11.0" bin: envinfo: dist/cli.js - checksum: 01efe7fcf55d4b84a146bc638ef89a89a70b610957db64636ac7cc4247d627eeb1c808ed79d3cfbe3d4fed5e8ba3d61db79c1ca1a3fea9f38639561eefd68733 + checksum: 4415b9c1ca32cdf92ce126136b9965eeac2efd6ab7e5278c06e8f86d048edad87ef4084710313a6d938ef9bc084ab17e1caee16339d731d230f3e2650f3aaf4d languageName: node linkType: hard @@ -3487,9 +3409,9 @@ __metadata: linkType: hard "es-module-lexer@npm:^1.2.1": - version: 1.2.1 - resolution: "es-module-lexer@npm:1.2.1" - checksum: 6e0a9095e0abe38f480e0f366cdeca19db64d85a533da9332739a64d70e97a61e68c1f98a2396468ae6229245b8e5edcb1e48c4d3615ae4da9052a1bdc2367e2 + version: 1.4.1 + resolution: "es-module-lexer@npm:1.4.1" + checksum: b7260a138668554d3f0ddcc728cb4b60c2fa463f15545cf155ecbdd5450a1348952d58298a7f48642e900ee579f21d7f5304b6b3c61b3d9fc2d4b2109b5a9dff languageName: node linkType: hard @@ -3622,11 +3544,11 @@ __metadata: linkType: hard "esquery@npm:^1.4.2": - version: 1.4.2 - resolution: "esquery@npm:1.4.2" + version: 1.5.0 + resolution: "esquery@npm:1.5.0" dependencies: estraverse: "npm:^5.1.0" - checksum: b4109b3d8301e79bf0be10bbafe4ac9c5469274e61b07a16e7174e99efe815081bc18ac2e6d951d06df95004ac5772751db5d5b14483e51aefa96b018726117d + checksum: a084bd049d954cc88ac69df30534043fb2aee5555b56246493f42f27d1e168f00d9e5d4192e46f10290d312dc30dc7d58994d61a609c579c1219d636996f9213 languageName: node linkType: hard @@ -3667,6 +3589,13 @@ __metadata: languageName: node linkType: hard +"exponential-backoff@npm:^3.1.1": + version: 3.1.1 + resolution: "exponential-backoff@npm:3.1.1" + checksum: 160456d2d647e6019640bd07111634d8c353038d9fa40176afb7cd49b0548bdae83b56d05e907c2cce2300b81cae35d800ef92fefb9d0208e190fa3b7d6bb579 + languageName: node + linkType: hard + "fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": version: 3.1.3 resolution: "fast-deep-equal@npm:3.1.3" @@ -3716,11 +3645,11 @@ __metadata: linkType: hard "fastq@npm:^1.6.0": - version: 1.13.0 - resolution: "fastq@npm:1.13.0" + version: 1.16.0 + resolution: "fastq@npm:1.16.0" dependencies: reusify: "npm:^1.0.4" - checksum: 76c7b5dafb93c7e74359a3e6de834ce7a7c2e3a3184050ed4cb652661de55cf8d4895178d8d3ccd23069395056c7bb15450660d38fb382ca88c142b22694d7c9 + checksum: 38c1b49adba639af020727284a02af021acab764efd7f088bc31364e8a5b01ce9031eb6c5f7f304019b8267c3b7c236e79d6904884f50f94f83b1700b8a6619a languageName: node linkType: hard @@ -3813,6 +3742,15 @@ __metadata: languageName: node linkType: hard +"flat@npm:^5.0.2": + version: 5.0.2 + resolution: "flat@npm:5.0.2" + bin: + flat: cli.js + checksum: f178b13482f0cd80c7fede05f4d10585b1f2fdebf26e12edc138e32d3150c6ea6482b7f12813a1091143bad52bb6d3596bca51a162257a21163c0ff438baa5fe + languageName: node + linkType: hard + "flatted@npm:^3.2.9": version: 3.2.9 resolution: "flatted@npm:3.2.9" @@ -3830,14 +3768,14 @@ __metadata: languageName: node linkType: hard -"fraction.js@npm:^4.3.6": +"fraction.js@npm:^4.3.7": version: 4.3.7 resolution: "fraction.js@npm:4.3.7" checksum: df291391beea9ab4c263487ffd9d17fed162dbb736982dee1379b2a8cc94e4e24e46ed508c6d278aded9080ba51872f1bc5f3a5fd8d7c74e5f105b508ac28711 languageName: node linkType: hard -"fs-minipass@npm:^2.0.0, fs-minipass@npm:^2.1.0": +"fs-minipass@npm:^2.0.0": version: 2.1.0 resolution: "fs-minipass@npm:2.1.0" dependencies: @@ -3846,6 +3784,15 @@ __metadata: languageName: node linkType: hard +"fs-minipass@npm:^3.0.0": + version: 3.0.3 + resolution: "fs-minipass@npm:3.0.3" + dependencies: + minipass: "npm:^7.0.3" + checksum: 63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94 + languageName: node + linkType: hard + "fs-readdir-recursive@npm:^1.1.0": version: 1.1.0 resolution: "fs-readdir-recursive@npm:1.1.0" @@ -3861,44 +3808,28 @@ __metadata: linkType: hard "fsevents@npm:~2.3.2": - version: 2.3.2 - resolution: "fsevents@npm:2.3.2" + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" dependencies: node-gyp: "npm:latest" - checksum: be78a3efa3e181cda3cf7a4637cb527bcebb0bd0ea0440105a3bb45b86f9245b307dc10a2507e8f4498a7d4ec349d1910f4d73e4d4495b16103106e07eee735b + checksum: a1f0c44595123ed717febbc478aa952e47adfc28e2092be66b8ab1635147254ca6cfe1df792a8997f22716d4cbafc73309899ff7bfac2ac3ad8cf2e4ecc3ec60 conditions: os=darwin languageName: node linkType: hard "fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin": - version: 2.3.2 - resolution: "fsevents@patch:fsevents@npm%3A2.3.2#optional!builtin::version=2.3.2&hash=df0bf1" + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1" dependencies: node-gyp: "npm:latest" conditions: os=darwin languageName: node linkType: hard -"function-bind@npm:^1.1.1": - version: 1.1.1 - resolution: "function-bind@npm:1.1.1" - checksum: 60b74b2407e1942e1ed7f8c284f8ef714d0689dcfce5319985a5b7da3fc727f40b4a59ec72dc55aa83365ad7b8fa4fac3a30d93c850a2b452f29ae03dbc10a1e - languageName: node - linkType: hard - -"gauge@npm:^4.0.3": - version: 4.0.4 - resolution: "gauge@npm:4.0.4" - dependencies: - aproba: "npm:^1.0.3 || ^2.0.0" - color-support: "npm:^1.1.3" - console-control-strings: "npm:^1.1.0" - has-unicode: "npm:^2.0.1" - signal-exit: "npm:^3.0.7" - string-width: "npm:^4.2.3" - strip-ansi: "npm:^6.0.1" - wide-align: "npm:^1.1.5" - checksum: ef10d7981113d69225135f994c9f8c4369d945e64a8fc721d655a3a38421b738c9fe899951721d1b47b73c41fdb5404ac87cc8903b2ecbed95d2800363e7e58c +"function-bind@npm:^1.1.2": + version: 1.1.2 + resolution: "function-bind@npm:1.1.2" + checksum: d8680ee1e5fcd4c197e4ac33b2b4dce03c71f4d91717292785703db200f5c21f977c568d28061226f9b5900cbcd2c84463646134fd5337e7925e0942bc3f46d5 languageName: node linkType: hard @@ -3934,7 +3865,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.3.7": +"glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.7": version: 10.3.10 resolution: "glob@npm:10.3.10" dependencies: @@ -3949,7 +3880,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.0.3, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.2.0": +"glob@npm:^7.0.3, glob@npm:^7.1.3, glob@npm:^7.2.0": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -3963,19 +3894,6 @@ __metadata: languageName: node linkType: hard -"glob@npm:^8.0.1": - version: 8.0.3 - resolution: "glob@npm:8.0.3" - dependencies: - fs.realpath: "npm:^1.0.0" - inflight: "npm:^1.0.4" - inherits: "npm:2" - minimatch: "npm:^5.0.1" - once: "npm:^1.3.0" - checksum: 07ebaf2ed83e76b10901ec4982040ebd85458b787b4386f751a0514f6c8e416ed6c9eec5a892571eb0ef00b09d1bd451f72b5d9fb7b63770efd400532486e731 - languageName: node - linkType: hard - "global-modules@npm:^2.0.0": version: 2.0.0 resolution: "global-modules@npm:2.0.0" @@ -4004,11 +3922,11 @@ __metadata: linkType: hard "globals@npm:^13.19.0": - version: 13.19.0 - resolution: "globals@npm:13.19.0" + version: 13.24.0 + resolution: "globals@npm:13.24.0" dependencies: type-fest: "npm:^0.20.2" - checksum: d2bb3164ed9f5ec82b91e96d6a5ffc1cca3cb10f6c41df9687cd7712ba82f5534ed028b11c5717d71c938403bf8ffc97bb06f5f2eab8c1b91e6273b08b33b5e6 + checksum: d3c11aeea898eb83d5ec7a99508600fbe8f83d2cf00cbb77f873dbf2bcb39428eff1b538e4915c993d8a3b3473fa71eeebfe22c9bb3a3003d1e26b1f2c8a42cd languageName: node linkType: hard @@ -4047,9 +3965,9 @@ __metadata: linkType: hard "graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": - version: 4.2.10 - resolution: "graceful-fs@npm:4.2.10" - checksum: 4223a833e38e1d0d2aea630c2433cfb94ddc07dfc11d511dbd6be1d16688c5be848acc31f9a5d0d0ddbfb56d2ee5a6ae0278aceeb0ca6a13f27e06b9956fb952 + version: 4.2.11 + resolution: "graceful-fs@npm:4.2.11" + checksum: 386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 languageName: node linkType: hard @@ -4106,19 +4024,12 @@ __metadata: languageName: node linkType: hard -"has-unicode@npm:^2.0.1": - version: 2.0.1 - resolution: "has-unicode@npm:2.0.1" - checksum: ebdb2f4895c26bb08a8a100b62d362e49b2190bcfd84b76bc4be1a3bd4d254ec52d0dd9f2fbcc093fc5eb878b20c52146f9dfd33e2686ed28982187be593b47c - languageName: node - linkType: hard - -"has@npm:^1.0.3": - version: 1.0.3 - resolution: "has@npm:1.0.3" +"hasown@npm:^2.0.0": + version: 2.0.0 + resolution: "hasown@npm:2.0.0" dependencies: - function-bind: "npm:^1.1.1" - checksum: e1da0d2bd109f116b632f27782cf23182b42f14972ca9540e4c5aa7e52647407a0a4a76937334fddcb56befe94a3494825ec22b19b51f5e5507c3153fd1a5e1b + function-bind: "npm:^1.1.2" + checksum: 5d415b114f410661208c95e7ab4879f1cc2765b8daceff4dc8718317d1cb7b9ffa7c5d1eafd9a4389c9aab7445d6ea88e05f3096cb1e529618b55304956b87fc languageName: node linkType: hard @@ -4136,40 +4047,30 @@ __metadata: languageName: node linkType: hard -"http-cache-semantics@npm:^4.1.0": +"http-cache-semantics@npm:^4.1.1": version: 4.1.1 resolution: "http-cache-semantics@npm:4.1.1" checksum: ce1319b8a382eb3cbb4a37c19f6bfe14e5bb5be3d09079e885e8c513ab2d3cd9214902f8a31c9dc4e37022633ceabfc2d697405deeaf1b8f3552bb4ed996fdfc languageName: node linkType: hard -"http-proxy-agent@npm:^5.0.0": - version: 5.0.0 - resolution: "http-proxy-agent@npm:5.0.0" +"http-proxy-agent@npm:^7.0.0": + version: 7.0.0 + resolution: "http-proxy-agent@npm:7.0.0" dependencies: - "@tootallnate/once": "npm:2" - agent-base: "npm:6" - debug: "npm:4" - checksum: 32a05e413430b2c1e542e5c74b38a9f14865301dd69dff2e53ddb684989440e3d2ce0c4b64d25eb63cf6283e6265ff979a61cf93e3ca3d23047ddfdc8df34a32 + agent-base: "npm:^7.1.0" + debug: "npm:^4.3.4" + checksum: a11574ff39436cee3c7bc67f259444097b09474605846ddd8edf0bf4ad8644be8533db1aa463426e376865047d05dc22755e638632819317c0c2f1b2196657c8 languageName: node linkType: hard -"https-proxy-agent@npm:^5.0.0": - version: 5.0.1 - resolution: "https-proxy-agent@npm:5.0.1" +"https-proxy-agent@npm:^7.0.1": + version: 7.0.2 + resolution: "https-proxy-agent@npm:7.0.2" dependencies: - agent-base: "npm:6" + agent-base: "npm:^7.0.2" debug: "npm:4" - checksum: 6dd639f03434003577c62b27cafdb864784ef19b2de430d8ae2a1d45e31c4fd60719e5637b44db1a88a046934307da7089e03d6089ec3ddacc1189d8de8897d1 - languageName: node - linkType: hard - -"humanize-ms@npm:^1.2.1": - version: 1.2.1 - resolution: "humanize-ms@npm:1.2.1" - dependencies: - ms: "npm:^2.0.0" - checksum: f34a2c20161d02303c2807badec2f3b49cbfbbb409abd4f95a07377ae01cfe6b59e3d15ac609cffcd8f2521f0eb37b7e1091acf65da99aa2a4f1ad63c21e7e7a + checksum: 7735eb90073db087e7e79312e3d97c8c04baf7ea7ca7b013382b6a45abbaa61b281041a98f4e13c8c80d88f843785bcc84ba189165b4b4087b1e3496ba656d77 languageName: node linkType: hard @@ -4199,9 +4100,9 @@ __metadata: linkType: hard "immutable@npm:^4.0.0": - version: 4.3.0 - resolution: "immutable@npm:4.3.0" - checksum: e09d40ceb442972f1cbd2914638d1a201853155b8edfbafc44e7aabcf221890e55e8f03d5b3d884666264bf973e02bbf72f83a12b9754bc2c9e47cf8827dd571 + version: 4.3.4 + resolution: "immutable@npm:4.3.4" + checksum: c15b9f0fa7b3c9315725cb00704fddad59f0e668a7379c39b9a528a8386140ee9effb015ae51a5b423e05c59d15fc0b38c970db6964ad6b3e05d0761db68441f languageName: node linkType: hard @@ -4241,13 +4142,6 @@ __metadata: languageName: node linkType: hard -"infer-owner@npm:^1.0.4": - version: 1.0.4 - resolution: "infer-owner@npm:1.0.4" - checksum: a7b241e3149c26e37474e3435779487f42f36883711f198c45794703c7556bc38af224088bd4d1a221a45b8208ae2c2bcf86200383621434d0c099304481c5b9 - languageName: node - linkType: hard - "inflight@npm:^1.0.4": version: 1.0.6 resolution: "inflight@npm:1.0.6" @@ -4258,7 +4152,7 @@ __metadata: languageName: node linkType: hard -"inherits@npm:2, inherits@npm:^2.0.3": +"inherits@npm:2": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: 4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 @@ -4302,12 +4196,12 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.9.0": - version: 2.9.0 - resolution: "is-core-module@npm:2.9.0" +"is-core-module@npm:^2.13.0": + version: 2.13.1 + resolution: "is-core-module@npm:2.13.1" dependencies: - has: "npm:^1.0.3" - checksum: 056fe4c5f9f383dc1c1b0dc3250c300880b9b1e17e1885077d64a1667926ecc11ba696776597616bfd2fd7f87c7476c01b127a0c842b4821bee2414d0e296e6e + hasown: "npm:^2.0.0" + checksum: 2cba9903aaa52718f11c4896dabc189bab980870aae86a62dc0d5cedb546896770ee946fb14c84b7adf0735f5eaea4277243f1b95f5cefa90054f92fbcac2518 languageName: node linkType: hard @@ -4403,6 +4297,13 @@ __metadata: languageName: node linkType: hard +"isexe@npm:^3.1.1": + version: 3.1.1 + resolution: "isexe@npm:3.1.1" + checksum: 9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7 + languageName: node + linkType: hard + "isobject@npm:^3.0.1": version: 3.0.1 resolution: "isobject@npm:3.0.1" @@ -4752,6 +4653,13 @@ __metadata: languageName: node linkType: hard +"lru-cache@npm:^10.0.1, lru-cache@npm:^9.1.1 || ^10.0.0": + version: 10.1.0 + resolution: "lru-cache@npm:10.1.0" + checksum: 778bc8b2626daccd75f24c4b4d10632496e21ba064b126f526c626fbdbc5b28c472013fccd45d7646b9e1ef052444824854aed617b59cd570d01a8b7d651fc1e + languageName: node + linkType: hard + "lru-cache@npm:^5.1.1": version: 5.1.1 resolution: "lru-cache@npm:5.1.1" @@ -4770,20 +4678,6 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^7.7.1": - version: 7.13.1 - resolution: "lru-cache@npm:7.13.1" - checksum: 72034557cdb0d2ae32e5c1db928ee32b6d2b3a3e7b5aae2860f4f4c7272fefd4ebc5292a9df1dde10d07a78517836c49d84d8b101df13c100343bba80839c6cf - languageName: node - linkType: hard - -"lru-cache@npm:^9.1.1 || ^10.0.0": - version: 10.1.0 - resolution: "lru-cache@npm:10.1.0" - checksum: 778bc8b2626daccd75f24c4b4d10632496e21ba064b126f526c626fbdbc5b28c472013fccd45d7646b9e1ef052444824854aed617b59cd570d01a8b7d651fc1e - languageName: node - linkType: hard - "make-dir@npm:^2.1.0": version: 2.1.0 resolution: "make-dir@npm:2.1.0" @@ -4794,27 +4688,22 @@ __metadata: languageName: node linkType: hard -"make-fetch-happen@npm:^10.0.3": - version: 10.2.0 - resolution: "make-fetch-happen@npm:10.2.0" +"make-fetch-happen@npm:^13.0.0": + version: 13.0.0 + resolution: "make-fetch-happen@npm:13.0.0" dependencies: - agentkeepalive: "npm:^4.2.1" - cacache: "npm:^16.1.0" - http-cache-semantics: "npm:^4.1.0" - http-proxy-agent: "npm:^5.0.0" - https-proxy-agent: "npm:^5.0.0" + "@npmcli/agent": "npm:^2.0.0" + cacache: "npm:^18.0.0" + http-cache-semantics: "npm:^4.1.1" is-lambda: "npm:^1.0.1" - lru-cache: "npm:^7.7.1" - minipass: "npm:^3.1.6" - minipass-collect: "npm:^1.0.2" - minipass-fetch: "npm:^2.0.3" + minipass: "npm:^7.0.2" + minipass-fetch: "npm:^3.0.0" minipass-flush: "npm:^1.0.5" minipass-pipeline: "npm:^1.2.4" negotiator: "npm:^0.6.3" promise-retry: "npm:^2.0.1" - socks-proxy-agent: "npm:^7.0.0" - ssri: "npm:^9.0.0" - checksum: ec51ded78f2d47be39aab4c4c1091e1850cf32b66472e252fc8927e26ad393c5c582178a95d5e77153566e9b2584909f2a7427ca5963f034b8ff0ba9c9f6518d + ssri: "npm:^10.0.0" + checksum: 43b9f6dcbc6fe8b8604cb6396957c3698857a15ba4dbc38284f7f0e61f248300585ef1eb8cc62df54e9c724af977e45b5cdfd88320ef7f53e45070ed3488da55 languageName: node linkType: hard @@ -4906,15 +4795,6 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^5.0.1": - version: 5.1.0 - resolution: "minimatch@npm:5.1.0" - dependencies: - brace-expansion: "npm:^2.0.1" - checksum: 21c4877438068da0728eeb678107ea716fd3c76fcde713c9d11b01d7d15c276071aa2fecfcd353b970a290cffd572c3ed43e0a64804470ab9ae97717ed13fb18 - languageName: node - linkType: hard - "minimatch@npm:^9.0.1": version: 9.0.3 resolution: "minimatch@npm:9.0.3" @@ -4925,33 +4805,33 @@ __metadata: linkType: hard "minimist@npm:^1.2.0, minimist@npm:^1.2.5": - version: 1.2.7 - resolution: "minimist@npm:1.2.7" - checksum: 8808da67ca50ee19ab2d69051d77ee78572e67297fd8a1635ecc757a15106ccdfb5b8c4d11d84750120142f1684e5329a141295728c755e5d149eedd73cc6572 + version: 1.2.8 + resolution: "minimist@npm:1.2.8" + checksum: 19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6 languageName: node linkType: hard -"minipass-collect@npm:^1.0.2": - version: 1.0.2 - resolution: "minipass-collect@npm:1.0.2" +"minipass-collect@npm:^2.0.1": + version: 2.0.1 + resolution: "minipass-collect@npm:2.0.1" dependencies: - minipass: "npm:^3.0.0" - checksum: 8f82bd1f3095b24f53a991b04b67f4c710c894e518b813f0864a31de5570441a509be1ca17e0bb92b047591a8fdbeb886f502764fefb00d2f144f4011791e898 + minipass: "npm:^7.0.3" + checksum: 5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e languageName: node linkType: hard -"minipass-fetch@npm:^2.0.3": - version: 2.1.0 - resolution: "minipass-fetch@npm:2.1.0" +"minipass-fetch@npm:^3.0.0": + version: 3.0.4 + resolution: "minipass-fetch@npm:3.0.4" dependencies: encoding: "npm:^0.1.13" - minipass: "npm:^3.1.6" + minipass: "npm:^7.0.3" minipass-sized: "npm:^1.0.3" minizlib: "npm:^2.1.2" dependenciesMeta: encoding: optional: true - checksum: 42c033fc1dfc245bd0d673922780dd68b769d3f9f973aeea2f03dd9fe37854a0a2892aa86c4db67e8179d2a271437212027419a866b91e5e2345fc56f9d1f71e + checksum: 1b63c1f3313e88eeac4689f1b71c9f086598db9a189400e3ee960c32ed89e06737fa23976c9305c2d57464fb3fcdc12749d3378805c9d6176f5569b0d0ee8a75 languageName: node linkType: hard @@ -4982,16 +4862,23 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^3.0.0, minipass@npm:^3.1.1, minipass@npm:^3.1.6": - version: 3.3.4 - resolution: "minipass@npm:3.3.4" +"minipass@npm:^3.0.0": + version: 3.3.6 + resolution: "minipass@npm:3.3.6" dependencies: yallist: "npm:^4.0.0" - checksum: 942522f16a60b651de81031a095149206ebb8647f7d029f5eb4eed23b04e4f872a93ffec5f7dceb6defb00fa80cc413dd5aa1131471a480a24d7167f8264a273 + checksum: a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c languageName: node linkType: hard -"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0": +"minipass@npm:^5.0.0": + version: 5.0.0 + resolution: "minipass@npm:5.0.0" + checksum: a91d8043f691796a8ac88df039da19933ef0f633e3d7f0d35dcd5373af49131cf2399bfc355f41515dc495e3990369c3858cd319e5c2722b4753c90bf3152462 + languageName: node + linkType: hard + +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3": version: 7.0.4 resolution: "minipass@npm:7.0.4" checksum: 6c7370a6dfd257bf18222da581ba89a5eaedca10e158781232a8b5542a90547540b4b9b7e7f490e4cda43acfbd12e086f0453728ecf8c19e0ef6921bc5958ac5 @@ -5008,7 +4895,7 @@ __metadata: languageName: node linkType: hard -"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": +"mkdirp@npm:^1.0.3": version: 1.0.4 resolution: "mkdirp@npm:1.0.4" bin: @@ -5024,13 +4911,6 @@ __metadata: languageName: node linkType: hard -"ms@npm:^2.0.0": - version: 2.1.3 - resolution: "ms@npm:2.1.3" - checksum: d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 - languageName: node - linkType: hard - "nanoid@npm:^3.3.7": version: 3.3.7 resolution: "nanoid@npm:3.3.7" @@ -5062,22 +4942,22 @@ __metadata: linkType: hard "node-gyp@npm:latest": - version: 9.1.0 - resolution: "node-gyp@npm:9.1.0" + version: 10.0.1 + resolution: "node-gyp@npm:10.0.1" dependencies: env-paths: "npm:^2.2.0" - glob: "npm:^7.1.4" + exponential-backoff: "npm:^3.1.1" + glob: "npm:^10.3.10" graceful-fs: "npm:^4.2.6" - make-fetch-happen: "npm:^10.0.3" - nopt: "npm:^5.0.0" - npmlog: "npm:^6.0.0" - rimraf: "npm:^3.0.2" + make-fetch-happen: "npm:^13.0.0" + nopt: "npm:^7.0.0" + proc-log: "npm:^3.0.0" semver: "npm:^7.3.5" tar: "npm:^6.1.2" - which: "npm:^2.0.2" + which: "npm:^4.0.0" bin: node-gyp: bin/node-gyp.js - checksum: 906a1ddcfadfdfcaad140bdf010bda42fe1c012b24c2176f58460fda4687a720f50753a1b9f3dd231fa25fb47abebe199d2c70ce84d3a4c134176c04bde2704d + checksum: abddfff7d873312e4ed4a5fb75ce893a5c4fb69e7fcb1dfa71c28a6b92a7f1ef6b62790dffb39181b5a82728ba8f2f32d229cf8cbe66769fe02cea7db4a555aa languageName: node linkType: hard @@ -5088,14 +4968,14 @@ __metadata: languageName: node linkType: hard -"nopt@npm:^5.0.0": - version: 5.0.0 - resolution: "nopt@npm:5.0.0" +"nopt@npm:^7.0.0": + version: 7.2.0 + resolution: "nopt@npm:7.2.0" dependencies: - abbrev: "npm:1" + abbrev: "npm:^2.0.0" bin: nopt: bin/nopt.js - checksum: fc5c4f07155cb455bf5fc3dd149fac421c1a40fd83c6bfe83aa82b52f02c17c5e88301321318adaa27611c8a6811423d51d29deaceab5fa158b585a61a551061 + checksum: 9bd7198df6f16eb29ff16892c77bcf7f0cc41f9fb5c26280ac0def2cf8cf319f3b821b3af83eba0e74c85807cc430a16efe0db58fe6ae1f41e69519f585b6aff languageName: node linkType: hard @@ -5113,18 +4993,6 @@ __metadata: languageName: node linkType: hard -"npmlog@npm:^6.0.0": - version: 6.0.2 - resolution: "npmlog@npm:6.0.2" - dependencies: - are-we-there-yet: "npm:^3.0.0" - console-control-strings: "npm:^1.1.0" - gauge: "npm:^4.0.3" - set-blocking: "npm:^2.0.0" - checksum: 0cacedfbc2f6139c746d9cd4a85f62718435ad0ca4a2d6459cd331dd33ae58206e91a0742c1558634efcde3f33f8e8e7fd3adf1bfe7978310cf00bd55cccf890 - languageName: node - linkType: hard - "nth-check@npm:^2.0.1": version: 2.1.1 resolution: "nth-check@npm:2.1.1" @@ -5418,36 +5286,38 @@ __metadata: linkType: hard "postcss-color-functional-notation@npm:^6.0.2": - version: 6.0.2 - resolution: "postcss-color-functional-notation@npm:6.0.2" + version: 6.0.4 + resolution: "postcss-color-functional-notation@npm:6.0.4" dependencies: - "@csstools/postcss-progressive-custom-properties": "npm:^3.0.2" - postcss-value-parser: "npm:^4.2.0" + "@csstools/css-color-parser": "npm:^1.5.1" + "@csstools/css-parser-algorithms": "npm:^2.5.0" + "@csstools/css-tokenizer": "npm:^2.2.3" + "@csstools/postcss-progressive-custom-properties": "npm:^3.0.3" peerDependencies: postcss: ^8.4 - checksum: 068303305c1a005bd3b14ce319e6d35cfcb3b80176829258abba12fdc32b511e0cfa276cebb6b37fe6abc7b50f7f535b765209bc9c487edef62a183de7546e73 + checksum: 592b21cd2740d9699b253f363cfbb57cea8a263d8c2eff67a8bcec0e0d64e6dbbb5d78ce7bec939430f0a9f2bccaccf3a58c64eeef23b9859cd2b7bb489a9c41 languageName: node linkType: hard "postcss-color-hex-alpha@npm:^9.0.2": - version: 9.0.2 - resolution: "postcss-color-hex-alpha@npm:9.0.2" + version: 9.0.3 + resolution: "postcss-color-hex-alpha@npm:9.0.3" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 77c0cf0769ed4a8a2c728df6f69a7487ea9211246b7c9836cb83e68e395591ed5fb0045de589f58ed2500a1878e058f3ec0ebfad56b69c2768539d48ae6646c6 + checksum: 677808d6ebed00ff115c4aca650bca338c1e5a5591dc16e8ee6b03b0c9b1e595de90bbc31e39d28d02d2482bf45eb4f9ecc96b7f07d000721761cbe309acdc19 languageName: node linkType: hard "postcss-color-rebeccapurple@npm:^9.0.1": - version: 9.0.1 - resolution: "postcss-color-rebeccapurple@npm:9.0.1" + version: 9.0.2 + resolution: "postcss-color-rebeccapurple@npm:9.0.2" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 2c95edec1f6fba34e1b3335e93068ce532ee68e7b36a8047c4b20b910286f7c7015f76db6fda7e90826a350552f45395a026264367ca71eca7ed307bd5c11b70 + checksum: 6da563b15f102879494618a7b9163b5f0cc697fb760dc62dbfda573e57ed0ed567932ff32de055d2d5a461906df9350e383d4e18b1c0d0d5cd67f92860ca3ccc languageName: node linkType: hard @@ -5492,16 +5362,16 @@ __metadata: linkType: hard "postcss-custom-properties@npm:^13.3.2": - version: 13.3.2 - resolution: "postcss-custom-properties@npm:13.3.2" + version: 13.3.4 + resolution: "postcss-custom-properties@npm:13.3.4" dependencies: - "@csstools/cascade-layer-name-parser": "npm:^1.0.5" - "@csstools/css-parser-algorithms": "npm:^2.3.2" - "@csstools/css-tokenizer": "npm:^2.2.1" + "@csstools/cascade-layer-name-parser": "npm:^1.0.7" + "@csstools/css-parser-algorithms": "npm:^2.5.0" + "@csstools/css-tokenizer": "npm:^2.2.3" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: cffed99917b217e90f5b27995593cec66f4c8a1ab0c068cd2cfcf973967e45f36ce517b022b8e9227b42fa45e595d71b46c3ad2c0aa2e2b0eff2b2570f0f645e + checksum: 57192dce51f8c535d3ea807d09632fd2d1cba3d7185a2e7be7953200c4df4de402ff0fe3fc300ca87a93958e1a00634c0d811114359d319a5436b03445ab95d7 languageName: node linkType: hard @@ -5520,13 +5390,13 @@ __metadata: linkType: hard "postcss-dir-pseudo-class@npm:^8.0.0": - version: 8.0.0 - resolution: "postcss-dir-pseudo-class@npm:8.0.0" + version: 8.0.1 + resolution: "postcss-dir-pseudo-class@npm:8.0.1" dependencies: postcss-selector-parser: "npm:^6.0.13" peerDependencies: postcss: ^8.4 - checksum: b3d58899bb361c14bad7e90a54b752d243fa9f5b1cc3397c4a42d6074e5804690b2f002208bd363f95644582add291e8b4fb254f28373426fcfdecac77912150 + checksum: 8c096e096b09e4041818bd2edf5581b5172375621f5eeca013633166ea100ab98e71bf60fccd92fa20cfa7b55c57598605a1655c6bcbe54a80728a7d4e36859e languageName: node linkType: hard @@ -5567,36 +5437,36 @@ __metadata: linkType: hard "postcss-double-position-gradients@npm:^5.0.2": - version: 5.0.2 - resolution: "postcss-double-position-gradients@npm:5.0.2" + version: 5.0.3 + resolution: "postcss-double-position-gradients@npm:5.0.3" dependencies: - "@csstools/postcss-progressive-custom-properties": "npm:^3.0.2" + "@csstools/postcss-progressive-custom-properties": "npm:^3.0.3" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: e4ba0cb024b85aa7597f707b3d6753e9c125d3e4f063ba8df0769223a09b7fe42ef200fd1f8dc1774ad9a077c8b2c52be456f5fc79ac4bfba70b1e8c36b198f2 + checksum: c5763f6ea302a2c281c975af2ef3047d5da1b7123c62e8dd8e1cb42b3e5a08b36fc99c4dacc1bbc996652a2b78dc78ae20f220bc29ffa90b2cdcbbb415cb5b14 languageName: node linkType: hard "postcss-focus-visible@npm:^9.0.0": - version: 9.0.0 - resolution: "postcss-focus-visible@npm:9.0.0" + version: 9.0.1 + resolution: "postcss-focus-visible@npm:9.0.1" dependencies: postcss-selector-parser: "npm:^6.0.13" peerDependencies: postcss: ^8.4 - checksum: c241728485e85a94d17520fa0b4af3e17fa17dbc2c45eacc1d6875d1e8f1a3dbef6f76feaaab533e21b1489a1114b21bffdf34da3271d8d3337fed30cb737758 + checksum: b8eb14ef51df62969559a7b2b4a4b6313a802fc2de225de293ad484ed6528833fc6bb7574aad5fabe7eeb27e8cd62663c2d547b25ff058d31c06d3d066abd904 languageName: node linkType: hard "postcss-focus-within@npm:^8.0.0": - version: 8.0.0 - resolution: "postcss-focus-within@npm:8.0.0" + version: 8.0.1 + resolution: "postcss-focus-within@npm:8.0.1" dependencies: postcss-selector-parser: "npm:^6.0.13" peerDependencies: postcss: ^8.4 - checksum: 451c2e0e66cc0fd7975ad62b277feff2a596be6db541281f3ef5d6c583f5b2fb995ad68278ef1935099c831f681051d88b3484b1b89b644ce08d735a414e9168 + checksum: cb0380d89f3b9313345dbea65c78c7ad16a6e6ab2ba9e90451d5b14f05ee691a0cdf458376368061327182e031644da21eee7e6e9ae508d195f083e0a20c0502 languageName: node linkType: hard @@ -5610,36 +5480,36 @@ __metadata: linkType: hard "postcss-gap-properties@npm:^5.0.0": - version: 5.0.0 - resolution: "postcss-gap-properties@npm:5.0.0" + version: 5.0.1 + resolution: "postcss-gap-properties@npm:5.0.1" peerDependencies: postcss: ^8.4 - checksum: 1fefa0b88510c22483bb62f3d1baf40a4cbc3c9bae3b88e1e132f6a8b3d930a33f5e8310f25ff86b9a160d431bffe22698271b8edea41ed4c5571dc09a76dfb6 + checksum: 3b28c38819add37a2fc7decd7e3bdda1cab1de861af228abfb3e4310d87786eff4572a693bec6cea1c435bcd3dd0bb58bc9a58f1dde3a1c7def9feaf800762b8 languageName: node linkType: hard "postcss-image-set-function@npm:^6.0.1": - version: 6.0.1 - resolution: "postcss-image-set-function@npm:6.0.1" + version: 6.0.2 + resolution: "postcss-image-set-function@npm:6.0.2" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 61381e33ce41b70a9846f81bcf821c07c85945fd95a68e6e78441dfc6bf03df5e91f63e07e4098b1832d1f5a1d5f8208349c22e0aa2959b5c61f20090b0fa157 + checksum: a8e28e4e774bfe5a5b3ac821663779954423fa8e287d5faf37b2c02bcc7d622a2edd067f8bce9241ed3be56b1d154969bcd3aff7b5be82edf4924da3d8c60ce9 languageName: node linkType: hard "postcss-lab-function@npm:^6.0.7": - version: 6.0.7 - resolution: "postcss-lab-function@npm:6.0.7" + version: 6.0.9 + resolution: "postcss-lab-function@npm:6.0.9" dependencies: - "@csstools/css-color-parser": "npm:^1.4.0" - "@csstools/css-parser-algorithms": "npm:^2.3.2" - "@csstools/css-tokenizer": "npm:^2.2.1" - "@csstools/postcss-progressive-custom-properties": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^1.5.1" + "@csstools/css-parser-algorithms": "npm:^2.5.0" + "@csstools/css-tokenizer": "npm:^2.2.3" + "@csstools/postcss-progressive-custom-properties": "npm:^3.0.3" peerDependencies: postcss: ^8.4 - checksum: ccaa5ed8a3934df1716356d7f0e13ce285e075b7f7fc88e75eb7d16d19823887b59796424eafe805eaeb5b2a41e4ee4cc87a426eb131a5a264e58944b5085c22 + checksum: 116e8ded33cc0e20be35e40317f24b066e7c26a9bd8d87dfc93931456119f496b7e5a8a6669ecf69a6a678938898d37e8590869bf55ff6b005b238edb80150bf languageName: node linkType: hard @@ -5658,13 +5528,13 @@ __metadata: linkType: hard "postcss-logical@npm:^7.0.0": - version: 7.0.0 - resolution: "postcss-logical@npm:7.0.0" + version: 7.0.1 + resolution: "postcss-logical@npm:7.0.1" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 7897971e0cb5d16ee76b195b57645956bfc0b51606957bdfb91f594f66e2e974055ee5619566bd905b6ab9a7499698e59f4893c034b529975003398708e3cec7 + checksum: 66a06b5d3cb31181dd76c80286addd219205066a4a8c216076869fc54769ee0011cdaa8063e1b2c19c114cdc5ad12a2e2e8b730f6971960dc77d55f25f290223 languageName: node linkType: hard @@ -5787,14 +5657,14 @@ __metadata: linkType: hard "postcss-nesting@npm:^12.0.1": - version: 12.0.1 - resolution: "postcss-nesting@npm:12.0.1" + version: 12.0.2 + resolution: "postcss-nesting@npm:12.0.2" dependencies: - "@csstools/selector-specificity": "npm:^3.0.0" + "@csstools/selector-specificity": "npm:^3.0.1" postcss-selector-parser: "npm:^6.0.13" peerDependencies: postcss: ^8.4 - checksum: 7e59febfdae1fb5f95b77c2a9040193a552db435acaa6399a80c83d0c10920f5b7d05a2965d40717433a1f4820667fbcf16da86fd21a589a482850b2cef8f7c2 + checksum: 9bb69cb5f5a3cd4945f2f427800a620176c924b11f79f819d9076f0c67bfe8cbc04e6a7f7d0224f712b85338d970eed67fa98271e63155b4670aec1285de2750 languageName: node linkType: hard @@ -5918,13 +5788,13 @@ __metadata: linkType: hard "postcss-overflow-shorthand@npm:^5.0.0": - version: 5.0.0 - resolution: "postcss-overflow-shorthand@npm:5.0.0" + version: 5.0.1 + resolution: "postcss-overflow-shorthand@npm:5.0.1" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 8559c50a07475c2eb4e5fe824ed44f0c9a53f06b6c68e57229b90132665a9dd188ad0e1583eddde3ec123820501721951fc1e8be12957f6cc52da5883857b18b + checksum: 328407adffae084c096b3ea2c03037f0083a0000cae744872bb1168fdd317eef12bb049cdfef749343c3ed65b4275dc6eefe577d99cbc78e3617cb36d07e8717 languageName: node linkType: hard @@ -5938,13 +5808,13 @@ __metadata: linkType: hard "postcss-place@npm:^9.0.0": - version: 9.0.0 - resolution: "postcss-place@npm:9.0.0" + version: 9.0.1 + resolution: "postcss-place@npm:9.0.1" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: e7f87a38c6ab6c85c4ca36632a12a17146dd01bc89354e6bc60de00f0dc782d3f996f3820d541905db3662a70dd2d632a4ab14360d9da8647aabe4d77499eed8 + checksum: d0fb5b0416fd15d5ac7da5fcc1829b9b78c5a90caba5bd045052c6ac0467910cbbeb2fff6c5257190affa656be27168c94ff339f86c0b7df54f9bea04bcadba7 languageName: node linkType: hard @@ -6019,13 +5889,13 @@ __metadata: linkType: hard "postcss-pseudo-class-any-link@npm:^9.0.0": - version: 9.0.0 - resolution: "postcss-pseudo-class-any-link@npm:9.0.0" + version: 9.0.1 + resolution: "postcss-pseudo-class-any-link@npm:9.0.1" dependencies: postcss-selector-parser: "npm:^6.0.13" peerDependencies: postcss: ^8.4 - checksum: 6213db4f05d06f827d8a9fe1ee67ce1b5723472e542ba50c02c320ebf4bb5c505901ff241f60f00e9958594dfce2dc222fe62d5389055976afd0170e65be28d7 + checksum: 2d33f486af442a0ee095b7b8875701ed3f54ea3f80d2c4d1c1b35d105088b569c847e1c71fde2adf6cefb4920e8fb7d057ff1ad56e62c65892c7b68e26213b98 languageName: node linkType: hard @@ -6164,10 +6034,10 @@ __metadata: languageName: node linkType: hard -"promise-inflight@npm:^1.0.1": - version: 1.0.1 - resolution: "promise-inflight@npm:1.0.1" - checksum: d179d148d98fbff3d815752fa9a08a87d3190551d1420f17c4467f628214db12235ae068d98cd001f024453676d8985af8f28f002345646c4ece4600a79620bc +"proc-log@npm:^3.0.0": + version: 3.0.0 + resolution: "proc-log@npm:3.0.0" + checksum: f66430e4ff947dbb996058f6fd22de2c66612ae1a89b097744e17fb18a4e8e7a86db99eda52ccf15e53f00b63f4ec0b0911581ff2aac0355b625c8eac509b0dc languageName: node linkType: hard @@ -6182,9 +6052,9 @@ __metadata: linkType: hard "punycode@npm:^2.1.0": - version: 2.1.1 - resolution: "punycode@npm:2.1.1" - checksum: 83815ca9b9177f055771f31980cbec7ffaef10257d50a95ab99b4a30f0404846e85fa6887ee1bbc0aaddb7bad6d96e2fa150a016051ff0f6b92be4ad613ddca8 + version: 2.3.1 + resolution: "punycode@npm:2.3.1" + checksum: 14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9 languageName: node linkType: hard @@ -6204,17 +6074,6 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^3.6.0": - version: 3.6.0 - resolution: "readable-stream@npm:3.6.0" - dependencies: - inherits: "npm:^2.0.3" - string_decoder: "npm:^1.1.1" - util-deprecate: "npm:^1.0.1" - checksum: 937bedd29ac8a68331666291922bea892fa2be1a33269e582de9f844a2002f146cf831e39cd49fe6a378d3f0c27358f259ed0e20d20f0bdc6a3f8fc21fce42dc - languageName: node - linkType: hard - "readdirp@npm:~3.6.0": version: 3.6.0 resolution: "readdirp@npm:3.6.0" @@ -6234,11 +6093,11 @@ __metadata: linkType: hard "regenerate-unicode-properties@npm:^10.1.0": - version: 10.1.0 - resolution: "regenerate-unicode-properties@npm:10.1.0" + version: 10.1.1 + resolution: "regenerate-unicode-properties@npm:10.1.1" dependencies: regenerate: "npm:^1.4.2" - checksum: 17818ea6f67c5a4884b9e18842edc4b3838a12f62e24f843e80fbb6d8cb649274b5b86d98bb02075074e02021850e597a92ff6b58bbe5caba4bf5fd8e4e38b56 + checksum: 89adb5ee5ba081380c78f9057c02e156a8181969f6fcca72451efc45612e0c3df767b4333f8d8479c274d9c6fe52ec4854f0d8a22ef95dccbe87da8e5f2ac77d languageName: node linkType: hard @@ -6249,10 +6108,10 @@ __metadata: languageName: node linkType: hard -"regenerator-runtime@npm:^0.13.4": - version: 0.13.9 - resolution: "regenerator-runtime@npm:0.13.9" - checksum: b0f26612204f061a84064d2f3361629eae09993939112b9ffc3680bb369ecd125764d6654eace9ef11b36b44282ee52b988dda946ea52d372e7599a30eea73ee +"regenerator-runtime@npm:^0.14.0": + version: 0.14.1 + resolution: "regenerator-runtime@npm:0.14.1" + checksum: 1b16eb2c4bceb1665c89de70dcb64126a22bc8eb958feef3cd68fe11ac6d2a4899b5cd1b80b0774c7c03591dc57d16631a7f69d2daa2ec98100e2f29f7ec4cc4 languageName: node linkType: hard @@ -6321,28 +6180,28 @@ __metadata: linkType: hard "resolve@npm:^1.14.2, resolve@npm:^1.20.0": - version: 1.22.1 - resolution: "resolve@npm:1.22.1" + version: 1.22.8 + resolution: "resolve@npm:1.22.8" dependencies: - is-core-module: "npm:^2.9.0" + is-core-module: "npm:^2.13.0" path-parse: "npm:^1.0.7" supports-preserve-symlinks-flag: "npm:^1.0.0" bin: resolve: bin/resolve - checksum: 6d58b1cb40f3fc80b9e45dd799d84cdc3829a993e4b9fa3b59d331e1dfacd0870e1851f4d0eb549d68c796e0b7087b43d1aec162653ccccff9e18191221a6e7d + checksum: 07e179f4375e1fd072cfb72ad66d78547f86e6196c4014b31cb0b8bb1db5f7ca871f922d08da0fbc05b94e9fd42206f819648fa3b5b873ebbc8e1dc68fec433a languageName: node linkType: hard "resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin": - version: 1.22.1 - resolution: "resolve@patch:resolve@npm%3A1.22.1#optional!builtin::version=1.22.1&hash=c3c19d" + version: 1.22.8 + resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d" dependencies: - is-core-module: "npm:^2.9.0" + is-core-module: "npm:^2.13.0" path-parse: "npm:^1.0.7" supports-preserve-symlinks-flag: "npm:^1.0.0" bin: resolve: bin/resolve - checksum: 0d8ccceba5537769c42aa75e4aa75ae854aac866a11d7e9ffdb1663f0158ee646a0d48fc2818ed5e7fb364d64220a1fb9092a160e11e00cbdd5fbab39a13092c + checksum: 0446f024439cd2e50c6c8fa8ba77eaa8370b4180f401a96abf3d1ebc770ac51c1955e12764cde449fde3fff480a61f84388e3505ecdbab778f4bef5f8212c729 languageName: node linkType: hard @@ -6402,7 +6261,7 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:^5.1.0, safe-buffer@npm:~5.2.0": +"safe-buffer@npm:^5.1.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" checksum: 6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 @@ -6511,13 +6370,6 @@ __metadata: languageName: node linkType: hard -"set-blocking@npm:^2.0.0": - version: 2.0.0 - resolution: "set-blocking@npm:2.0.0" - checksum: 9f8c1b2d800800d0b589de1477c753492de5c1548d4ade52f57f1d1f5e04af5481554d75ce5e5c43d4004b80a3eb714398d6907027dc0534177b7539119f4454 - languageName: node - linkType: hard - "shallow-clone@npm:^3.0.0": version: 3.0.1 resolution: "shallow-clone@npm:3.0.1" @@ -6543,17 +6395,10 @@ __metadata: languageName: node linkType: hard -"signal-exit@npm:^3.0.7": - version: 3.0.7 - resolution: "signal-exit@npm:3.0.7" - checksum: 25d272fa73e146048565e08f3309d5b942c1979a6f4a58a8c59d5fa299728e9c2fcd1a759ec870863b1fd38653670240cd420dad2ad9330c71f36608a6a1c912 - languageName: node - linkType: hard - "signal-exit@npm:^4.0.1": - version: 4.0.1 - resolution: "signal-exit@npm:4.0.1" - checksum: 8ff362b7fe81d50cb664c773d2406d68f02aef7ab50b2fdb6a0bb2514730529062be4f981cc5534c05f34a20caa6f91a78a5d1dc90446a968359d80adb63b014 + version: 4.1.0 + resolution: "signal-exit@npm:4.1.0" + checksum: 41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83 languageName: node linkType: hard @@ -6589,24 +6434,24 @@ __metadata: languageName: node linkType: hard -"socks-proxy-agent@npm:^7.0.0": - version: 7.0.0 - resolution: "socks-proxy-agent@npm:7.0.0" +"socks-proxy-agent@npm:^8.0.1": + version: 8.0.2 + resolution: "socks-proxy-agent@npm:8.0.2" dependencies: - agent-base: "npm:^6.0.2" - debug: "npm:^4.3.3" - socks: "npm:^2.6.2" - checksum: b859f7eb8e96ec2c4186beea233ae59c02404094f3eb009946836af27d6e5c1627d1975a69b4d2e20611729ed543b6db3ae8481eb38603433c50d0345c987600 + agent-base: "npm:^7.0.2" + debug: "npm:^4.3.4" + socks: "npm:^2.7.1" + checksum: a842402fc9b8848a31367f2811ca3cd14c4106588b39a0901cd7a69029998adfc6456b0203617c18ed090542ad0c24ee4e9d4c75a0c4b75071e214227c177eb7 languageName: node linkType: hard -"socks@npm:^2.6.2": - version: 2.7.0 - resolution: "socks@npm:2.7.0" +"socks@npm:^2.7.1": + version: 2.7.1 + resolution: "socks@npm:2.7.1" dependencies: ip: "npm:^2.0.0" smart-buffer: "npm:^4.2.0" - checksum: 5cc9ea8d0f1fae370d7ac319b5dd8973fa24bc58d0194a8140687fd10be53a1f348b1b02b97932ce67ddae0edf459e5da0fe4b13cd5dd22ce46ac4d1a83239ec + checksum: 43f69dbc9f34fc8220bc51c6eea1c39715ab3cfdb115d6e3285f6c7d1a603c5c75655668a5bbc11e3c7e2c99d60321fb8d7ab6f38cda6a215fadd0d6d0b52130 languageName: node linkType: hard @@ -6648,16 +6493,16 @@ __metadata: languageName: node linkType: hard -"ssri@npm:^9.0.0": - version: 9.0.1 - resolution: "ssri@npm:9.0.1" +"ssri@npm:^10.0.0": + version: 10.0.5 + resolution: "ssri@npm:10.0.5" dependencies: - minipass: "npm:^3.1.1" - checksum: c5d153ce03b5980d683ecaa4d805f6a03d8dc545736213803e168a1907650c46c08a4e5ce6d670a0205482b35c35713d9d286d9133bdd79853a406e22ad81f04 + minipass: "npm:^7.0.3" + checksum: b091f2ae92474183c7ac5ed3f9811457e1df23df7a7e70c9476eaa9a0c4a0c8fc190fb45acefbf023ca9ee864dd6754237a697dc52a0fb182afe65d8e77443d8 languageName: node linkType: hard -"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.3": +"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0, string-width@npm:^4.2.3": version: 4.2.3 resolution: "string-width@npm:4.2.3" dependencies: @@ -6679,15 +6524,6 @@ __metadata: languageName: node linkType: hard -"string_decoder@npm:^1.1.1": - version: 1.3.0 - resolution: "string_decoder@npm:1.3.0" - dependencies: - safe-buffer: "npm:~5.2.0" - checksum: 810614ddb030e271cd591935dcd5956b2410dd079d64ff92a1844d6b7588bf992b3e1b69b0f4d34a3e06e0bd73046ac646b5264c1987b20d0601f81ef35d731d - languageName: node - linkType: hard - "strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": version: 6.0.1 resolution: "strip-ansi@npm:6.0.1" @@ -6900,28 +6736,28 @@ __metadata: linkType: hard "tar@npm:^6.1.11, tar@npm:^6.1.2": - version: 6.1.11 - resolution: "tar@npm:6.1.11" + version: 6.2.0 + resolution: "tar@npm:6.2.0" dependencies: chownr: "npm:^2.0.0" fs-minipass: "npm:^2.0.0" - minipass: "npm:^3.0.0" + minipass: "npm:^5.0.0" minizlib: "npm:^2.1.1" mkdirp: "npm:^1.0.3" yallist: "npm:^4.0.0" - checksum: 5a016f5330f43815420797b87ade578e2ea60affd47439c988a3fc8f7bb6b36450d627c31ba6a839346fae248b4c8c12bb06bb0716211f37476838c7eff91f05 + checksum: 02ca064a1a6b4521fef88c07d389ac0936730091f8c02d30ea60d472e0378768e870769ab9e986d87807bfee5654359cf29ff4372746cc65e30cbddc352660d8 languageName: node linkType: hard "terser-webpack-plugin@npm:^5.3.7": - version: 5.3.7 - resolution: "terser-webpack-plugin@npm:5.3.7" + version: 5.3.10 + resolution: "terser-webpack-plugin@npm:5.3.10" dependencies: - "@jridgewell/trace-mapping": "npm:^0.3.17" + "@jridgewell/trace-mapping": "npm:^0.3.20" jest-worker: "npm:^27.4.5" schema-utils: "npm:^3.1.1" serialize-javascript: "npm:^6.0.1" - terser: "npm:^5.16.5" + terser: "npm:^5.26.0" peerDependencies: webpack: ^5.1.0 peerDependenciesMeta: @@ -6931,21 +6767,21 @@ __metadata: optional: true uglify-js: optional: true - checksum: fe54487e67dfff86f874561a2ee8c43aaf6a41ac1474527d8dc60209502a779e74ae0d647523cd9d98c9d3c4d7e77a3ad0eddf3be36745424a0dd05603e94bb1 + checksum: 66d1ed3174542560911cf96f4716aeea8d60e7caab212291705d50072b6ba844c7391442541b13c848684044042bea9ec87512b8506528c12854943da05faf91 languageName: node linkType: hard -"terser@npm:^5.16.5": - version: 5.16.9 - resolution: "terser@npm:5.16.9" +"terser@npm:^5.26.0": + version: 5.27.0 + resolution: "terser@npm:5.27.0" dependencies: - "@jridgewell/source-map": "npm:^0.3.2" - acorn: "npm:^8.5.0" + "@jridgewell/source-map": "npm:^0.3.3" + acorn: "npm:^8.8.2" commander: "npm:^2.20.0" source-map-support: "npm:~0.5.20" bin: terser: bin/terser - checksum: eb883b606aa698e314957aa2cf6e70c1dc632d0d2dcda13e7a2cc73569a05034721826c0d6f9b31c6bb08bbc4fc633b6591871814dada71da9d34af9e284dc4f + checksum: bed0d39d9a7f2b82c87173e48081c46426a8820ba1dcb864bbfccd2df2b7fb8498a7ea4c8ef045ccce5713b23a6b4c3a784967f1b9f3115adaa7f51712f6e6ae languageName: node linkType: hard @@ -6998,11 +6834,18 @@ __metadata: linkType: hard "uglify-js@npm:^3.1.4": - version: 3.16.3 - resolution: "uglify-js@npm:3.16.3" + version: 3.17.4 + resolution: "uglify-js@npm:3.17.4" bin: uglifyjs: bin/uglifyjs - checksum: d951a66caf16c2412274b699d8902dc644acd69e4b9458e7999e6689a4e3a8e29f427809b74a1fac9864e5d97a86200410a257c673ac84bc0571631b2b147b46 + checksum: 8b7fcdca69deb284fed7d2025b73eb747ce37f9aca6af53422844f46427152d5440601b6e2a033e77856a2f0591e4167153d5a21b68674ad11f662034ec13ced + languageName: node + linkType: hard + +"undici-types@npm:~5.26.4": + version: 5.26.5 + resolution: "undici-types@npm:5.26.5" + checksum: bb673d7876c2d411b6eb6c560e0c571eef4a01c1c19925175d16e3a30c4c428181fb8d7ae802a261f283e4166a0ac435e2f505743aa9e45d893f9a3df017b501 languageName: node linkType: hard @@ -7031,27 +6874,27 @@ __metadata: linkType: hard "unicode-property-aliases-ecmascript@npm:^2.0.0": - version: 2.0.0 - resolution: "unicode-property-aliases-ecmascript@npm:2.0.0" - checksum: db7f7ae188ce1a59b133a2c97021aebe30acc18a55f41074d126dcce5ac9d789dbd3ce7947e391b23db27f969251037b6ae05871d036aaa6cc0a6510c429aa1c + version: 2.1.0 + resolution: "unicode-property-aliases-ecmascript@npm:2.1.0" + checksum: 50ded3f8c963c7785e48c510a3b7c6bc4e08a579551489aa0349680a35b1ceceec122e33b2b6c1b579d0be2250f34bb163ac35f5f8695fe10bbc67fb757f0af8 languageName: node linkType: hard -"unique-filename@npm:^1.1.1": - version: 1.1.1 - resolution: "unique-filename@npm:1.1.1" +"unique-filename@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-filename@npm:3.0.0" dependencies: - unique-slug: "npm:^2.0.0" - checksum: d005bdfaae6894da8407c4de2b52f38b3c58ec86e79fc2ee19939da3085374413b073478ec54e721dc8e32b102cf9e50d0481b8331abdc62202e774b789ea874 + unique-slug: "npm:^4.0.0" + checksum: 6363e40b2fa758eb5ec5e21b3c7fb83e5da8dcfbd866cc0c199d5534c42f03b9ea9ab069769cc388e1d7ab93b4eeef28ef506ab5f18d910ef29617715101884f languageName: node linkType: hard -"unique-slug@npm:^2.0.0": - version: 2.0.2 - resolution: "unique-slug@npm:2.0.2" +"unique-slug@npm:^4.0.0": + version: 4.0.0 + resolution: "unique-slug@npm:4.0.0" dependencies: imurmurhash: "npm:^0.1.4" - checksum: 9eabc51680cf0b8b197811a48857e41f1364b25362300c1ff636c0eca5ec543a92a38786f59cf0697e62c6f814b11ecbe64e8093db71246468a1f03b80c83970 + checksum: cb811d9d54eb5821b81b18205750be84cb015c20a4a44280794e915f5a0a70223ce39066781a354e872df3572e8155c228f43ff0cce94c7cbf4da2cc7cbdd635 languageName: node linkType: hard @@ -7078,7 +6921,7 @@ __metadata: languageName: node linkType: hard -"util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2": +"util-deprecate@npm:^1.0.2": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" checksum: 41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942 @@ -7128,12 +6971,13 @@ __metadata: linkType: hard "webpack-merge@npm:^5.7.3": - version: 5.8.0 - resolution: "webpack-merge@npm:5.8.0" + version: 5.10.0 + resolution: "webpack-merge@npm:5.10.0" dependencies: clone-deep: "npm:^4.0.1" + flat: "npm:^5.0.2" wildcard: "npm:^2.0.0" - checksum: 400eaaba69d2240d51dc7a4427dde37849a8f2fdf93731be6a8aad34d70d55bb38cb10c5001c7b339fc91f8c8547e782ecbd79eff24ad861e21e6a4c5dc959fb + checksum: b607c84cabaf74689f965420051a55a08722d897bdd6c29cb0b2263b451c090f962d41ecf8c9bf56b0ab3de56e65476ace0a8ecda4f4a4663684243d90e0512b languageName: node linkType: hard @@ -7203,7 +7047,7 @@ __metadata: languageName: node linkType: hard -"which@npm:^2.0.1, which@npm:^2.0.2": +"which@npm:^2.0.1": version: 2.0.2 resolution: "which@npm:2.0.2" dependencies: @@ -7214,19 +7058,21 @@ __metadata: languageName: node linkType: hard -"wide-align@npm:^1.1.5": - version: 1.1.5 - resolution: "wide-align@npm:1.1.5" +"which@npm:^4.0.0": + version: 4.0.0 + resolution: "which@npm:4.0.0" dependencies: - string-width: "npm:^1.0.2 || 2 || 3 || 4" - checksum: 1d9c2a3e36dfb09832f38e2e699c367ef190f96b82c71f809bc0822c306f5379df87bab47bed27ea99106d86447e50eb972d3c516c2f95782807a9d082fbea95 + isexe: "npm:^3.1.1" + bin: + node-which: bin/which.js + checksum: 449fa5c44ed120ccecfe18c433296a4978a7583bf2391c50abce13f76878d2476defde04d0f79db8165bdf432853c1f8389d0485ca6e8ebce3bbcded513d5e6a languageName: node linkType: hard "wildcard@npm:^2.0.0": - version: 2.0.0 - resolution: "wildcard@npm:2.0.0" - checksum: 4e22a45f4fa7f0f0d3e11860ee9ce9225246d41af6ec507e6a7d64c2692afb40d695b92c8f801deda8d3536007c2ec07981079fd0c8bb38b8521de072b33ab7a + version: 2.0.1 + resolution: "wildcard@npm:2.0.1" + checksum: 08f70cd97dd9a20aea280847a1fe8148e17cae7d231640e41eb26d2388697cbe65b67fd9e68715251c39b080c5ae4f76d71a9a69fa101d897273efdfb1b58bf7 languageName: node linkType: hard From ae9b71cfeca9023451abf0d24a2940be3560e88c Mon Sep 17 00:00:00 2001 From: FilipRazek <65445960+FilipRazek@users.noreply.github.com> Date: Thu, 25 Jan 2024 15:40:32 +0100 Subject: [PATCH 0202/1216] [JENKINS-66677] Localize "This folder is empty" text (#8890) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [JENKINS-66677] Localize "This folder is empty" text * Apply code review suggestions Co-authored-by: Hervé Le Meur <91831478+lemeurherve@users.noreply.github.com> --------- Co-authored-by: Hervé Le Meur <91831478+lemeurherve@users.noreply.github.com> --- core/src/main/resources/hudson/model/AllView/noJob.groovy | 2 +- core/src/main/resources/hudson/model/AllView/noJob.properties | 1 + .../main/resources/hudson/model/AllView/noJob_fr.properties | 1 + .../main/resources/hudson/model/Job/configure_fr.properties | 2 ++ core/src/main/resources/hudson/model/Messages_fr.properties | 3 +++ 5 files changed, 8 insertions(+), 1 deletion(-) diff --git a/core/src/main/resources/hudson/model/AllView/noJob.groovy b/core/src/main/resources/hudson/model/AllView/noJob.groovy index 6daf221b403e..f62125fed9b6 100644 --- a/core/src/main/resources/hudson/model/AllView/noJob.groovy +++ b/core/src/main/resources/hudson/model/AllView/noJob.groovy @@ -81,7 +81,7 @@ div { // we're in a folder section(class: "empty-state-section") { - h2(_("This folder is empty"), class: "h4") + h2(_("thisFolderIsEmpty"), class: "h4") ul(class: "empty-state-section-list") { li(class: "content-block") { diff --git a/core/src/main/resources/hudson/model/AllView/noJob.properties b/core/src/main/resources/hudson/model/AllView/noJob.properties index 157679ee2c4f..c5c114df188f 100644 --- a/core/src/main/resources/hudson/model/AllView/noJob.properties +++ b/core/src/main/resources/hudson/model/AllView/noJob.properties @@ -26,6 +26,7 @@ setUpDistributedBuilds=Set up a distributed build setUpAgent=Set up an agent setUpCloud=Configure a cloud learnMoreDistributedBuilds=Learn more about distributed builds +thisFolderIsEmpty=This folder is empty startBuilding=Start building your software project createJob=Create a job diff --git a/core/src/main/resources/hudson/model/AllView/noJob_fr.properties b/core/src/main/resources/hudson/model/AllView/noJob_fr.properties index 32d9fa71c5bf..61cbb6192bbd 100644 --- a/core/src/main/resources/hudson/model/AllView/noJob_fr.properties +++ b/core/src/main/resources/hudson/model/AllView/noJob_fr.properties @@ -28,3 +28,4 @@ setUpDistributedBuilds=Configurer un build distribué setUpAgent=Mettre en place un agent setUpCloud=Configurer un cloud learnMoreDistributedBuilds=En apprendre plus sur les builds distribués +thisFolderIsEmpty=Ce dossier est vide diff --git a/core/src/main/resources/hudson/model/Job/configure_fr.properties b/core/src/main/resources/hudson/model/Job/configure_fr.properties index eb6da2e9e368..881d0c5c8446 100644 --- a/core/src/main/resources/hudson/model/Job/configure_fr.properties +++ b/core/src/main/resources/hudson/model/Job/configure_fr.properties @@ -26,3 +26,5 @@ Save=Sauvegarder Apply=Appliquer LOADING=CHARGEMENT Strategy=Stratégie +General=Général +Configure=Configurer diff --git a/core/src/main/resources/hudson/model/Messages_fr.properties b/core/src/main/resources/hudson/model/Messages_fr.properties index f2a938f9c9e4..1d64aee184f3 100644 --- a/core/src/main/resources/hudson/model/Messages_fr.properties +++ b/core/src/main/resources/hudson/model/Messages_fr.properties @@ -113,6 +113,9 @@ Descriptor.From=(de {0}< Executor.NotAvailable=N/A FreeStyleProject.DisplayName=Construire un projet free-style +FreeStyleProject.Description=\ + Job legacy polyvalent qui récupère l''état depuis un outil de gestion de version au plus, exécute les étapes de build en série, \ + suivi d''étapes post-construction telles que l''archivage d''artefacts et l''envoi de notifications par e-mail. HealthReport.EmptyString= From a665b45ba5862110d8b174d654c28541e23bedf9 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Thu, 25 Jan 2024 09:43:09 -0500 Subject: [PATCH 0203/1216] Missing `VirtualFile.run` usage in `DirectoryBrowserSupport` (#8874) * Missing `VirtualFile.run` usage in `DirectoryBrowserSupport` * Might as well handle `containsSymLink` the same way. Will never matter for artifact display with either the built-in or pluggable managers, but could improve performance of workspace listing with slow agent connections. * Checkstyle --------- Co-authored-by: Daniel Beck --- .../hudson/model/DirectoryBrowserSupport.java | 32 +++++++++++++------ 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/core/src/main/java/hudson/model/DirectoryBrowserSupport.java b/core/src/main/java/hudson/model/DirectoryBrowserSupport.java index 6f8bf2e6ee77..cc83eefd0652 100644 --- a/core/src/main/java/hudson/model/DirectoryBrowserSupport.java +++ b/core/src/main/java/hudson/model/DirectoryBrowserSupport.java @@ -325,9 +325,10 @@ private void serveFile(StaplerRequest req, StaplerResponse rsp, VirtualFile root } else if (serveDirIndex) { // serve directory index - glob = baseFile.run(new BuildChildPaths(root, baseFile, req.getLocale())); - containsSymlink = baseFile.containsSymLinkChild(getOpenOptions()); - containsTmpDir = baseFile.containsTmpDirChild(getOpenOptions()); + var result = baseFile.run(new BuildChildPaths(baseFile, req.getLocale(), getOpenOptions())); + glob = result.glob; + containsSymlink = result.containsSymLink; + containsTmpDir = result.containsTmpDir; } if (glob != null) { @@ -747,19 +748,32 @@ private int dirRank(VirtualFile f) { } } - private static final class BuildChildPaths extends MasterToSlaveCallable>, IOException> { - private VirtualFile root; + private static final class BuildChildPathsResult implements Serializable { // TODO Java 21+ record + private static final long serialVersionUID = 1; + private final List> glob; + private final boolean containsSymLink; + private final boolean containsTmpDir; + + BuildChildPathsResult(List> glob, boolean containsSymLink, boolean containsTmpDir) { + this.glob = glob; + this.containsSymLink = containsSymLink; + this.containsTmpDir = containsTmpDir; + } + } + + private static final class BuildChildPaths extends MasterToSlaveCallable { private final VirtualFile cur; private final Locale locale; + private final OpenOption[] openOptions; - BuildChildPaths(VirtualFile root, VirtualFile cur, Locale locale) { - this.root = root; + BuildChildPaths(VirtualFile cur, Locale locale, OpenOption[] openOptions) { this.cur = cur; this.locale = locale; + this.openOptions = openOptions; } - @Override public List> call() throws IOException { - return buildChildPaths(cur, locale); + @Override public BuildChildPathsResult call() throws IOException { + return new BuildChildPathsResult(buildChildPaths(cur, locale), cur.containsSymLinkChild(openOptions), cur.containsTmpDirChild(openOptions)); } } /** From 70f2237147f238adb54b21edf3e354fc672aeae3 Mon Sep 17 00:00:00 2001 From: Markus Winter Date: Thu, 25 Jan 2024 15:43:34 +0100 Subject: [PATCH 0204/1216] [JENKINS-72407] missing folder icon (#8872) when a folder icon is provided and relies on the getImageOf method this leads to a missing icon, e.g. gitlab branch source or when using a custom folder icon So fall back to the ballColorTd when we have no iconname which handles all cases properly. --- .../hudson/views/StatusColumn/column.jelly | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/core/src/main/resources/hudson/views/StatusColumn/column.jelly b/core/src/main/resources/hudson/views/StatusColumn/column.jelly index 5ac989e40521..428a173fedf6 100644 --- a/core/src/main/resources/hudson/views/StatusColumn/column.jelly +++ b/core/src/main/resources/hudson/views/StatusColumn/column.jelly @@ -23,18 +23,18 @@ THE SOFTWARE. --> - - -
- - + + + + +
- - - - - - -
- +
+ + + + + + +
From f640efc087add43d31fdd92cd24be99af99fa4f5 Mon Sep 17 00:00:00 2001 From: Markus Winter Date: Thu, 25 Jan 2024 15:45:20 +0100 Subject: [PATCH 0205/1216] [JENKINS-71025] Remove inline JS from configure-common (#8866) * [JENKINS-71025] Remove inline JS from configure-common replaces #6861 * remove inline jd for jdk check --- core/src/main/java/hudson/model/AbstractProject.java | 5 +++++ .../hudson/model/AbstractProject/configure-common.jelly | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/hudson/model/AbstractProject.java b/core/src/main/java/hudson/model/AbstractProject.java index cceff9c42b19..c554ef813440 100644 --- a/core/src/main/java/hudson/model/AbstractProject.java +++ b/core/src/main/java/hudson/model/AbstractProject.java @@ -1940,6 +1940,11 @@ public boolean isApplicable(Descriptor descriptor) { return true; } + @Restricted(DoNotUse.class) + public FormValidation doCheckDisplayNameOrNull(@AncestorInPath AbstractProject project, @QueryParameter String value) { + return Jenkins.get().doCheckDisplayName(value, project.getName()); + } + @Restricted(DoNotUse.class) public FormValidation doCheckAssignedLabelString(@AncestorInPath AbstractProject project, @QueryParameter String value) { diff --git a/core/src/main/resources/hudson/model/AbstractProject/configure-common.jelly b/core/src/main/resources/hudson/model/AbstractProject/configure-common.jelly index 096922c27966..25121308d1a4 100644 --- a/core/src/main/resources/hudson/model/AbstractProject/configure-common.jelly +++ b/core/src/main/resources/hudson/model/AbstractProject/configure-common.jelly @@ -35,7 +35,7 @@ THE SOFTWARE. - @@ -54,7 +54,7 @@ THE SOFTWARE. - + From b83c92666b5005d4c6e0b01cfda6c409a30bcf5d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Jan 2024 13:45:35 -0800 Subject: [PATCH 0206/1216] Bump org.jenkins-ci.plugins.workflow:workflow-api from 1283.v99c10937efcb_ to 1289.va_cf779f32df0 (#8898) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index eae8c9ab3437..8ce1b31f01e0 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -110,7 +110,7 @@ THE SOFTWARE. org.jenkins-ci.plugins.workflow workflow-api - 1283.v99c10937efcb_ + 1289.va_cf779f32df0 From 8088f30d396318bf90ea30b2ec2e253dea98c25c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 26 Jan 2024 05:45:34 -0800 Subject: [PATCH 0207/1216] Bump org.jenkins-ci.plugins:credentials from 1311.vcf0a_900b_37c2 to 1317.v0ce519a_92b_3e (#8901) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index 8ce1b31f01e0..8a48b64c8d2d 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -206,7 +206,7 @@ THE SOFTWARE. org.jenkins-ci.plugins credentials - 1311.vcf0a_900b_37c2 + 1317.v0ce519a_92b_3e test From d2a9fd2b1fc60381d18c79c66850cd89bd20814f Mon Sep 17 00:00:00 2001 From: Tim Jacomb <21194782+timja@users.noreply.github.com> Date: Fri, 26 Jan 2024 19:38:32 +0000 Subject: [PATCH 0208/1216] [JENKINS-72505] f:validateButton finds selected radio button (#8832) JENKINS-72505 f:validateButton finds selected radio button Co-authored-by: Mark Waite Co-authored-by: Alexander Brandes --- .../java/lib/form/ValidateButtonTest.java | 5 ++++- .../TestValidateIsCalled/index.jelly | 22 ++++++++++++++++++- .../main/webapp/scripts/hudson-behavior.js | 7 +++++- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/test/src/test/java/lib/form/ValidateButtonTest.java b/test/src/test/java/lib/form/ValidateButtonTest.java index ac092e145285..da9bc286be14 100644 --- a/test/src/test/java/lib/form/ValidateButtonTest.java +++ b/test/src/test/java/lib/form/ValidateButtonTest.java @@ -109,13 +109,16 @@ public static final class DescriptorImpl extends Descriptore2 - + + + + + + + + + + + + + + + + + + + + +
diff --git a/war/src/main/webapp/scripts/hudson-behavior.js b/war/src/main/webapp/scripts/hudson-behavior.js index 678260fdad17..3be3a4fddadb 100644 --- a/war/src/main/webapp/scripts/hudson-behavior.js +++ b/war/src/main/webapp/scripts/hudson-behavior.js @@ -2708,8 +2708,13 @@ function validateButton(checkUrl, paramList, button) { paramList.split(",").forEach(function (name) { var p = findPreviousFormItem(button, name); if (p != null) { - if (p.type == "checkbox") { + if (p.type === "checkbox") { parameters[name] = p.checked; + } else if (p.type === "radio") { + while (p && !p.checked) { + p = findPreviousFormItem(p, name); + } + parameters[name] = p.value; } else { parameters[name] = p.value; } From 27b8a5e505651bf1f0904246095aac2fa93a1112 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 26 Jan 2024 12:39:23 -0700 Subject: [PATCH 0209/1216] Bump org.jenkins-ci.plugins:cloudbees-folder from 6.897.vb_943ea_6b_a_08b_ to 6.901.vb_4c7a_da_75da_3 (#8903) Bump org.jenkins-ci.plugins:cloudbees-folder Bumps [org.jenkins-ci.plugins:cloudbees-folder](https://github.com/jenkinsci/cloudbees-folder-plugin) from 6.897.vb_943ea_6b_a_08b_ to 6.901.vb_4c7a_da_75da_3. - [Release notes](https://github.com/jenkinsci/cloudbees-folder-plugin/releases) - [Commits](https://github.com/jenkinsci/cloudbees-folder-plugin/commits) --- updated-dependencies: - dependency-name: org.jenkins-ci.plugins:cloudbees-folder dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index 8a48b64c8d2d..7300afc5f841 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -200,7 +200,7 @@ THE SOFTWARE. org.jenkins-ci.plugins cloudbees-folder - 6.897.vb_943ea_6b_a_08b_ + 6.901.vb_4c7a_da_75da_3 test From 4ec1639b9a9562028f2834da6c42e0ac962aad5f Mon Sep 17 00:00:00 2001 From: Ullrich Hafner Date: Fri, 26 Jan 2024 20:43:55 +0100 Subject: [PATCH 0210/1216] Replace cobertura with coverage plugin in plugin installation wizard (#8879) Replace cobertura with coverage plugin. The coverage plugin combines all coverage tools into a single plugin. See https://github.com/jenkinsci/coverage-plugin. --- core/src/main/resources/jenkins/install/platform-plugins.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/resources/jenkins/install/platform-plugins.json b/core/src/main/resources/jenkins/install/platform-plugins.json index 62885083fbdd..a8a5b5010664 100644 --- a/core/src/main/resources/jenkins/install/platform-plugins.json +++ b/core/src/main/resources/jenkins/install/platform-plugins.json @@ -35,7 +35,7 @@ { "category": "Build Analysis and Reporting", "plugins": [ - { "name": "cobertura" }, + { "name": "coverage" }, { "name": "htmlpublisher" }, { "name": "junit" }, { "name": "warnings-ng" }, From c414546f8bf856056957ff4af3208a3993db492c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 27 Jan 2024 00:12:37 +0100 Subject: [PATCH 0211/1216] Update dependency node to v20.11.0 (#8899) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/pom.xml b/war/pom.xml index 1cfdf1ee5fed..b609b7f22409 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -46,7 +46,7 @@ THE SOFTWARE. localhost 8080 - 20.10.0 + 20.11.0 1.22.19 From c32f4dfc7ffb2b5f1e6f1745a503572b2d0e420a Mon Sep 17 00:00:00 2001 From: Filipe Roque Date: Sun, 28 Jan 2024 08:30:20 -0800 Subject: [PATCH 0212/1216] Replace reference to ui-samples-plugin with design-library in javadoc (#8909) ui-samples-plugin is suspended and has been replaced with design-library: > Plugin distribution has been suspended, see https://groups.google.com/g/jenkinsci-dev/c/2vGn3t9gZ0Y for details. https://plugins.jenkins.io/ui-samples-plugin/ https://github.com/jenkinsci/design-library-plugin/pull/14 --- core/src/main/java/jenkins/util/ProgressiveRendering.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/jenkins/util/ProgressiveRendering.java b/core/src/main/java/jenkins/util/ProgressiveRendering.java index 42ef0b76861a..460ac3afd82b 100644 --- a/core/src/main/java/jenkins/util/ProgressiveRendering.java +++ b/core/src/main/java/jenkins/util/ProgressiveRendering.java @@ -70,7 +70,7 @@ *
  • As results become available, call {@link #progress}. *
  • Make {@link #data} produce whatever JSON you want to send to the page to be displayed. * - * {@code ui-samples-plugin} demonstrates all this. + * {@code design-library} demonstrates all this. * @since 1.484 */ public abstract class ProgressiveRendering { From 419539c1fa889155cee4ea27a415bc101c64f6dc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 28 Jan 2024 19:59:36 +0100 Subject: [PATCH 0213/1216] Update dependency webpack to v5.90.0 (#8906) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/yarn.lock | 48 ++++++++++++++++++++++++------------------------ 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/war/package.json b/war/package.json index 517aa757eeff..6744ee16864d 100644 --- a/war/package.json +++ b/war/package.json @@ -45,7 +45,7 @@ "stylelint": "16.2.0", "stylelint-checkstyle-reporter": "0.2.0", "stylelint-config-standard": "36.0.0", - "webpack": "5.89.0", + "webpack": "5.90.0", "webpack-cli": "5.1.4", "webpack-remove-empty-scripts": "1.0.4" }, diff --git a/war/yarn.lock b/war/yarn.lock index b2df9024d10e..a97eab420dcd 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -2079,7 +2079,7 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:*, @types/estree@npm:^1.0.0": +"@types/estree@npm:*, @types/estree@npm:^1.0.5": version: 1.0.5 resolution: "@types/estree@npm:1.0.5" checksum: b3b0e334288ddb407c7b3357ca67dbee75ee22db242ca7c56fe27db4e1a31989cb8af48a84dd401deb787fe10cc6b2ab1ee82dc4783be87ededbe3d53c79c70d @@ -2715,17 +2715,17 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.0.0, browserslist@npm:^4.14.5, browserslist@npm:^4.22.1, browserslist@npm:^4.22.2": - version: 4.22.2 - resolution: "browserslist@npm:4.22.2" +"browserslist@npm:^4.0.0, browserslist@npm:^4.21.10, browserslist@npm:^4.22.1, browserslist@npm:^4.22.2": + version: 4.22.3 + resolution: "browserslist@npm:4.22.3" dependencies: - caniuse-lite: "npm:^1.0.30001565" - electron-to-chromium: "npm:^1.4.601" + caniuse-lite: "npm:^1.0.30001580" + electron-to-chromium: "npm:^1.4.648" node-releases: "npm:^2.0.14" update-browserslist-db: "npm:^1.0.13" bin: browserslist: cli.js - checksum: 2a331aab90503130043ca41dd5d281fa1e89d5e076d07a2d75e76bf4d693bd56e73d5abcd8c4f39119da6328d450578c216cf1cd5c99b82d8a90a2ae6271b465 + checksum: 5a1f673ce0d6e61a68369835a6b66e199669bde02c3bed5ec51e77598d8daafd91719dba55b15af2021b9ad0bbaa94951fd702eb71087449eb28be8002815ece languageName: node linkType: hard @@ -2775,10 +2775,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001565, caniuse-lite@npm:^1.0.30001578": - version: 1.0.30001579 - resolution: "caniuse-lite@npm:1.0.30001579" - checksum: 4003970f8d01a5fa314e39f4a21751dc750a530f3d19aed225e18e8e02892b590b8b0debfa0961eae9bc0e49b77bfb17cf30d2469540e428a8305e3cc9164fb8 +"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001578, caniuse-lite@npm:^1.0.30001580": + version: 1.0.30001580 + resolution: "caniuse-lite@npm:1.0.30001580" + checksum: f3a41bb5a820640a60071ed69d464f20d783d9a51cc2fd8916c7b0c187b25a8062e11986d04f531bdc1798d0bc37dfb0f90dcfa90fa3227bd49691efd4272c03 languageName: node linkType: hard @@ -3322,10 +3322,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.4.601": - version: 1.4.645 - resolution: "electron-to-chromium@npm:1.4.645" - checksum: a77ad457b960fae4ca109eda9e0d6263686c9868ded5c02029ad18cd69387376395ab113104b01a3355ae5efd4a4d63deb3d00af41c52b48c1408aa7719aec75 +"electron-to-chromium@npm:^1.4.648": + version: 1.4.648 + resolution: "electron-to-chromium@npm:1.4.648" + checksum: 9f9ab328744a9d593e170c46743c76b41052341176310d481ba184098cea2541d8e04a9bd309e1d77e6e9e010ee27a4f573b149f6f23404d239613816d1d072a languageName: node linkType: hard @@ -4356,7 +4356,7 @@ __metadata: stylelint-checkstyle-reporter: "npm:0.2.0" stylelint-config-standard: "npm:36.0.0" tippy.js: "npm:6.3.7" - webpack: "npm:5.89.0" + webpack: "npm:5.90.0" webpack-cli: "npm:5.1.4" webpack-remove-empty-scripts: "npm:1.0.4" window-handle: "npm:1.0.1" @@ -6749,7 +6749,7 @@ __metadata: languageName: node linkType: hard -"terser-webpack-plugin@npm:^5.3.7": +"terser-webpack-plugin@npm:^5.3.10": version: 5.3.10 resolution: "terser-webpack-plugin@npm:5.3.10" dependencies: @@ -6999,18 +6999,18 @@ __metadata: languageName: node linkType: hard -"webpack@npm:5.89.0": - version: 5.89.0 - resolution: "webpack@npm:5.89.0" +"webpack@npm:5.90.0": + version: 5.90.0 + resolution: "webpack@npm:5.90.0" dependencies: "@types/eslint-scope": "npm:^3.7.3" - "@types/estree": "npm:^1.0.0" + "@types/estree": "npm:^1.0.5" "@webassemblyjs/ast": "npm:^1.11.5" "@webassemblyjs/wasm-edit": "npm:^1.11.5" "@webassemblyjs/wasm-parser": "npm:^1.11.5" acorn: "npm:^8.7.1" acorn-import-assertions: "npm:^1.9.0" - browserslist: "npm:^4.14.5" + browserslist: "npm:^4.21.10" chrome-trace-event: "npm:^1.0.2" enhanced-resolve: "npm:^5.15.0" es-module-lexer: "npm:^1.2.1" @@ -7024,7 +7024,7 @@ __metadata: neo-async: "npm:^2.6.2" schema-utils: "npm:^3.2.0" tapable: "npm:^2.1.1" - terser-webpack-plugin: "npm:^5.3.7" + terser-webpack-plugin: "npm:^5.3.10" watchpack: "npm:^2.4.0" webpack-sources: "npm:^3.2.3" peerDependenciesMeta: @@ -7032,7 +7032,7 @@ __metadata: optional: true bin: webpack: bin/webpack.js - checksum: 2562bf48788d651634fb7db6a5378c2fe3fce7f66831af38468da3944bd98756d68efea94a6909593993fb57b2d14cf802cbef2c83c6ef0047f7f606d59bec50 + checksum: 4acec1a719a9c5b890a30a9fb18519e671e55382f2c51120b76a2c1c1c521285b6510327faf79f85a4b11c7a2c5c01e1d2e7bf73e5cddbada1503f4d51a63441 languageName: node linkType: hard From 090ada7bfdb570cb54c6d56d397716e11162368a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Jan 2024 09:33:57 -0800 Subject: [PATCH 0214/1216] Bump org.jenkins-ci.plugins:credentials from 1317.v0ce519a_92b_3e to 1319.v7eb_51b_3a_c97b_ (#8904) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index 7300afc5f841..2928370b80d0 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -206,7 +206,7 @@ THE SOFTWARE. org.jenkins-ci.plugins credentials - 1317.v0ce519a_92b_3e + 1319.v7eb_51b_3a_c97b_ test From b62609806b4ca0a2e785af30187f928fcbb9b27d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 29 Jan 2024 09:34:21 -0800 Subject: [PATCH 0215/1216] Update babel monorepo to v7.23.9 (#8910) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 6 +- war/yarn.lock | 157 +++++++++++++++++++++-------------------------- 2 files changed, 74 insertions(+), 89 deletions(-) diff --git a/war/package.json b/war/package.json index 6744ee16864d..24aa684230a5 100644 --- a/war/package.json +++ b/war/package.json @@ -23,9 +23,9 @@ "lint": "yarn lint:js && yarn lint:css" }, "devDependencies": { - "@babel/cli": "7.23.4", - "@babel/core": "7.23.7", - "@babel/preset-env": "7.23.8", + "@babel/cli": "7.23.9", + "@babel/core": "7.23.9", + "@babel/preset-env": "7.23.9", "babel-loader": "9.1.3", "clean-webpack-plugin": "4.0.0", "css-loader": "6.9.1", diff --git a/war/yarn.lock b/war/yarn.lock index a97eab420dcd..ff02bdcf4908 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -22,9 +22,9 @@ __metadata: languageName: node linkType: hard -"@babel/cli@npm:7.23.4": - version: 7.23.4 - resolution: "@babel/cli@npm:7.23.4" +"@babel/cli@npm:7.23.9": + version: 7.23.9 + resolution: "@babel/cli@npm:7.23.9" dependencies: "@jridgewell/trace-mapping": "npm:^0.3.17" "@nicolo-ribaudo/chokidar-2": "npm:2.1.8-no-fsevents.3" @@ -45,11 +45,11 @@ __metadata: bin: babel: ./bin/babel.js babel-external-helpers: ./bin/babel-external-helpers.js - checksum: f71bc378f62dd19983adc8dae4ee33cd44ac7d8ea3224709f787f290e0c3a4b8a36dad76d672b3479de2b9f524e55b4bb12a2296154c73134ba111114a15779c + checksum: 0a5e9399e95ff0efea10db217e48682e025bd09d51aa96886e5c4d8c7b9d2115bc17d00704dc05e9ae7ab858c26467fec15e87a100cf995567c395f2941df4a0 languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.23.5": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.23.5": version: 7.23.5 resolution: "@babel/code-frame@npm:7.23.5" dependencies: @@ -66,26 +66,26 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:7.23.7": - version: 7.23.7 - resolution: "@babel/core@npm:7.23.7" +"@babel/core@npm:7.23.9": + version: 7.23.9 + resolution: "@babel/core@npm:7.23.9" dependencies: "@ampproject/remapping": "npm:^2.2.0" "@babel/code-frame": "npm:^7.23.5" "@babel/generator": "npm:^7.23.6" "@babel/helper-compilation-targets": "npm:^7.23.6" "@babel/helper-module-transforms": "npm:^7.23.3" - "@babel/helpers": "npm:^7.23.7" - "@babel/parser": "npm:^7.23.6" - "@babel/template": "npm:^7.22.15" - "@babel/traverse": "npm:^7.23.7" - "@babel/types": "npm:^7.23.6" + "@babel/helpers": "npm:^7.23.9" + "@babel/parser": "npm:^7.23.9" + "@babel/template": "npm:^7.23.9" + "@babel/traverse": "npm:^7.23.9" + "@babel/types": "npm:^7.23.9" convert-source-map: "npm:^2.0.0" debug: "npm:^4.1.0" gensync: "npm:^1.0.0-beta.2" json5: "npm:^2.2.3" semver: "npm:^6.3.1" - checksum: 38c9934973d384ed83369712978453eac91dc3f22167404dbdb272b64f602e74728a6f37012c53ee57e521b8ae2da60097f050497d9b6a212d28b59cdfb2cd1d + checksum: 03883300bf1252ab4c9ba5b52f161232dd52873dbe5cde9289bb2bb26e935c42682493acbac9194a59a3b6cbd17f4c4c84030db8d6d482588afe64531532ff9b languageName: node linkType: hard @@ -164,21 +164,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-define-polyfill-provider@npm:^0.4.4": - version: 0.4.4 - resolution: "@babel/helper-define-polyfill-provider@npm:0.4.4" - dependencies: - "@babel/helper-compilation-targets": "npm:^7.22.6" - "@babel/helper-plugin-utils": "npm:^7.22.5" - debug: "npm:^4.1.1" - lodash.debounce: "npm:^4.0.8" - resolve: "npm:^1.14.2" - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 60126f5f719b9e2114df62e3bf3ac0797b71d8dc733db60192eb169b004fde72ee309fa5848c5fdfe98b8e8863c46f55e16da5aa8a4e420b4d2670cd0c5dd708 - languageName: node - linkType: hard - "@babel/helper-define-polyfill-provider@npm:^0.5.0": version: 0.5.0 resolution: "@babel/helper-define-polyfill-provider@npm:0.5.0" @@ -354,14 +339,14 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.23.7": - version: 7.23.8 - resolution: "@babel/helpers@npm:7.23.8" +"@babel/helpers@npm:^7.23.9": + version: 7.23.9 + resolution: "@babel/helpers@npm:7.23.9" dependencies: - "@babel/template": "npm:^7.22.15" - "@babel/traverse": "npm:^7.23.7" - "@babel/types": "npm:^7.23.6" - checksum: d9fce49278a31aaa017a40c1fcdaa450999c49e33582cce8138058c58b1acbe3a2d2488f010f28e91dedf0d35795ea32f0ee18745bbb6c7f54052ae0fd7e6a3f + "@babel/template": "npm:^7.23.9" + "@babel/traverse": "npm:^7.23.9" + "@babel/types": "npm:^7.23.9" + checksum: f69fd0aca96a6fb8bd6dd044cd8a5c0f1851072d4ce23355345b9493c4032e76d1217f86b70df795e127553cf7f3fcd1587ede9d1b03b95e8b62681ca2165b87 languageName: node linkType: hard @@ -376,12 +361,12 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.6": - version: 7.23.6 - resolution: "@babel/parser@npm:7.23.6" +"@babel/parser@npm:^7.23.9": + version: 7.23.9 + resolution: "@babel/parser@npm:7.23.9" bin: parser: ./bin/babel-parser.js - checksum: 6f76cd5ccae1fa9bcab3525b0865c6222e9c1d22f87abc69f28c5c7b2c8816a13361f5bd06bddbd5faf903f7320a8feba02545c981468acec45d12a03db7755e + checksum: 7df97386431366d4810538db4b9ec538f4377096f720c0591c7587a16f6810e62747e9fbbfa1ff99257fd4330035e4fb1b5b77c7bd3b97ce0d2e3780a6618975 languageName: node linkType: hard @@ -640,9 +625,9 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.23.7": - version: 7.23.7 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.7" +"@babel/plugin-transform-async-generator-functions@npm:^7.23.9": + version: 7.23.9 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.9" dependencies: "@babel/helper-environment-visitor": "npm:^7.22.20" "@babel/helper-plugin-utils": "npm:^7.22.5" @@ -650,7 +635,7 @@ __metadata: "@babel/plugin-syntax-async-generators": "npm:^7.8.4" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 63d314edc9fbeaf2700745ca0e19bf9840e87f2d7d1f6c5638e06d2aec3e7418d0d7493ed09087e2fe369cc15e9d96c113fb2cd367cb5e3ff922e3712c27b7d4 + checksum: 4ff75f9ce500e1de8c0236fa5122e6475a477d19cb9a4c2ae8651e78e717ebb2e2cecfeca69d420def779deaec78b945843b9ffd15f02ecd7de5072030b4469b languageName: node linkType: hard @@ -910,9 +895,9 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.23.3" +"@babel/plugin-transform-modules-systemjs@npm:^7.23.9": + version: 7.23.9 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.23.9" dependencies: "@babel/helper-hoist-variables": "npm:^7.22.5" "@babel/helper-module-transforms": "npm:^7.23.3" @@ -920,7 +905,7 @@ __metadata: "@babel/helper-validator-identifier": "npm:^7.22.20" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 0d55280a276510222c8896bf4e581acb84824aa5b14c824f7102242ad6bc5104aaffe5ab22fe4d27518f4ae2811bd59c36d0c0bfa695157f9cfce33f0517a069 + checksum: 1926631fe9d87c0c53427a3420ad49da62d53320d0016b6afab64e5417a672aa5bdff3ea1d24746ffa1e43319c28a80f5d8cef0ad214760d399c293b5850500f languageName: node linkType: hard @@ -1209,9 +1194,9 @@ __metadata: languageName: node linkType: hard -"@babel/preset-env@npm:7.23.8": - version: 7.23.8 - resolution: "@babel/preset-env@npm:7.23.8" +"@babel/preset-env@npm:7.23.9": + version: 7.23.9 + resolution: "@babel/preset-env@npm:7.23.9" dependencies: "@babel/compat-data": "npm:^7.23.5" "@babel/helper-compilation-targets": "npm:^7.23.6" @@ -1240,7 +1225,7 @@ __metadata: "@babel/plugin-syntax-top-level-await": "npm:^7.14.5" "@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6" "@babel/plugin-transform-arrow-functions": "npm:^7.23.3" - "@babel/plugin-transform-async-generator-functions": "npm:^7.23.7" + "@babel/plugin-transform-async-generator-functions": "npm:^7.23.9" "@babel/plugin-transform-async-to-generator": "npm:^7.23.3" "@babel/plugin-transform-block-scoped-functions": "npm:^7.23.3" "@babel/plugin-transform-block-scoping": "npm:^7.23.4" @@ -1262,7 +1247,7 @@ __metadata: "@babel/plugin-transform-member-expression-literals": "npm:^7.23.3" "@babel/plugin-transform-modules-amd": "npm:^7.23.3" "@babel/plugin-transform-modules-commonjs": "npm:^7.23.3" - "@babel/plugin-transform-modules-systemjs": "npm:^7.23.3" + "@babel/plugin-transform-modules-systemjs": "npm:^7.23.9" "@babel/plugin-transform-modules-umd": "npm:^7.23.3" "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.22.5" "@babel/plugin-transform-new-target": "npm:^7.23.3" @@ -1288,14 +1273,14 @@ __metadata: "@babel/plugin-transform-unicode-regex": "npm:^7.23.3" "@babel/plugin-transform-unicode-sets-regex": "npm:^7.23.3" "@babel/preset-modules": "npm:0.1.6-no-external-plugins" - babel-plugin-polyfill-corejs2: "npm:^0.4.7" - babel-plugin-polyfill-corejs3: "npm:^0.8.7" - babel-plugin-polyfill-regenerator: "npm:^0.5.4" + babel-plugin-polyfill-corejs2: "npm:^0.4.8" + babel-plugin-polyfill-corejs3: "npm:^0.9.0" + babel-plugin-polyfill-regenerator: "npm:^0.5.5" core-js-compat: "npm:^3.31.0" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e602ad954645f1a509644e3d2c72b3c63bdc2273c377e7a83b78f076eca215887ea3624ffc36aaad03deb9ac8acd89e247fd4562b96e0f2b679485e20d8ff25f + checksum: 2837a42089180e51bfd6864b6d197e01fc0abec1920422e71c0513c2fc8fb5f3bfe694ed778cc4e45856c546964945bc53bf8105e4b26f3580ce3685fa50cc0f languageName: node linkType: hard @@ -1328,20 +1313,20 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/template@npm:7.22.15" +"@babel/template@npm:^7.22.15, @babel/template@npm:^7.23.9": + version: 7.23.9 + resolution: "@babel/template@npm:7.23.9" dependencies: - "@babel/code-frame": "npm:^7.22.13" - "@babel/parser": "npm:^7.22.15" - "@babel/types": "npm:^7.22.15" - checksum: 9312edd37cf1311d738907003f2aa321a88a42ba223c69209abe4d7111db019d321805504f606c7fd75f21c6cf9d24d0a8223104cd21ebd207e241b6c551f454 + "@babel/code-frame": "npm:^7.23.5" + "@babel/parser": "npm:^7.23.9" + "@babel/types": "npm:^7.23.9" + checksum: 0e8b60119433787742bc08ae762bbd8d6755611c4cabbcb7627b292ec901a55af65d93d1c88572326069efb64136ef151ec91ffb74b2df7689bbab237030833a languageName: node linkType: hard -"@babel/traverse@npm:^7.23.7": - version: 7.23.7 - resolution: "@babel/traverse@npm:7.23.7" +"@babel/traverse@npm:^7.23.9": + version: 7.23.9 + resolution: "@babel/traverse@npm:7.23.9" dependencies: "@babel/code-frame": "npm:^7.23.5" "@babel/generator": "npm:^7.23.6" @@ -1349,22 +1334,22 @@ __metadata: "@babel/helper-function-name": "npm:^7.23.0" "@babel/helper-hoist-variables": "npm:^7.22.5" "@babel/helper-split-export-declaration": "npm:^7.22.6" - "@babel/parser": "npm:^7.23.6" - "@babel/types": "npm:^7.23.6" + "@babel/parser": "npm:^7.23.9" + "@babel/types": "npm:^7.23.9" debug: "npm:^4.3.1" globals: "npm:^11.1.0" - checksum: e32fceb4249beec2bde83968ddffe17444221c1ee5cd18c543a2feaf94e3ca83f2a4dfbc2dcca87cf226e0105973e0fe3717063a21e982a9de9945615ab3f3f5 + checksum: d1615d1d02f04d47111a7ea4446a1a6275668ca39082f31d51f08380de9502e19862be434eaa34b022ce9a17dbb8f9e2b73a746c654d9575f3a680a7ffdf5630 languageName: node linkType: hard -"@babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.6, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": - version: 7.23.6 - resolution: "@babel/types@npm:7.23.6" +"@babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.6, @babel/types@npm:^7.23.9, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": + version: 7.23.9 + resolution: "@babel/types@npm:7.23.9" dependencies: "@babel/helper-string-parser": "npm:^7.23.4" "@babel/helper-validator-identifier": "npm:^7.22.20" to-fast-properties: "npm:^2.0.0" - checksum: 42cefce8a68bd09bb5828b4764aa5586c53c60128ac2ac012e23858e1c179347a4aac9c66fc577994fbf57595227611c5ec8270bf0cfc94ff033bbfac0550b70 + checksum: edc7bb180ce7e4d2aea10c6972fb10474341ac39ba8fdc4a27ffb328368dfdfbf40fca18e441bbe7c483774500d5c05e222cec276c242e952853dcaf4eb884f7 languageName: node linkType: hard @@ -2616,7 +2601,7 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs2@npm:^0.4.7": +"babel-plugin-polyfill-corejs2@npm:^0.4.8": version: 0.4.8 resolution: "babel-plugin-polyfill-corejs2@npm:0.4.8" dependencies: @@ -2629,19 +2614,19 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs3@npm:^0.8.7": - version: 0.8.7 - resolution: "babel-plugin-polyfill-corejs3@npm:0.8.7" +"babel-plugin-polyfill-corejs3@npm:^0.9.0": + version: 0.9.0 + resolution: "babel-plugin-polyfill-corejs3@npm:0.9.0" dependencies: - "@babel/helper-define-polyfill-provider": "npm:^0.4.4" - core-js-compat: "npm:^3.33.1" + "@babel/helper-define-polyfill-provider": "npm:^0.5.0" + core-js-compat: "npm:^3.34.0" peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 094e40f4ab9f131408202063964d63740609fd4fdb70a5b6332b371761921b540ffbcee7a434c0199b8317dfb2ba4675eef674867215fd3b85e24054607c1501 + checksum: b857010736c5e42e20b683973dae862448a42082fcc95b3ef188305a6864a4f94b5cbd568e49e4cd7172c6b2eace7bc403c3ba0984fbe5479474ade01126d559 languageName: node linkType: hard -"babel-plugin-polyfill-regenerator@npm:^0.5.4": +"babel-plugin-polyfill-regenerator@npm:^0.5.5": version: 0.5.5 resolution: "babel-plugin-polyfill-regenerator@npm:0.5.5" dependencies: @@ -2967,7 +2952,7 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.33.1": +"core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.34.0": version: 3.35.1 resolution: "core-js-compat@npm:3.35.1" dependencies: @@ -4328,9 +4313,9 @@ __metadata: version: 0.0.0-use.local resolution: "jenkins-ui@workspace:." dependencies: - "@babel/cli": "npm:7.23.4" - "@babel/core": "npm:7.23.7" - "@babel/preset-env": "npm:7.23.8" + "@babel/cli": "npm:7.23.9" + "@babel/core": "npm:7.23.9" + "@babel/preset-env": "npm:7.23.9" babel-loader: "npm:9.1.3" clean-webpack-plugin: "npm:4.0.0" css-loader: "npm:6.9.1" From 4e424abc285fcff4d81415b97f854c533a1ff89f Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 30 Jan 2024 13:06:57 +0000 Subject: [PATCH 0216/1216] [maven-release-plugin] prepare release jenkins-2.443 --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty10/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 29f77e1f7202..9f741ba252cd 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.443 jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 763d83529103..1218e24231ef 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.443 cli diff --git a/core/pom.xml b/core/pom.xml index 4280e9075da9..71aad53e36da 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.443 jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index fe1e89a120dc..acf85c1de9cb 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.443 jenkins-coverage diff --git a/pom.xml b/pom.xml index b467a961827a..449a77826b54 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.443 pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - ${scmTag} + jenkins-2.443 https://github.com/jenkinsci/jenkins diff --git a/test/pom.xml b/test/pom.xml index 2928370b80d0..2a1f11594d62 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.443 jenkins-test diff --git a/war/pom.xml b/war/pom.xml index b609b7f22409..435ae5970ad2 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.443 jenkins-war diff --git a/websocket/jetty10/pom.xml b/websocket/jetty10/pom.xml index c91e1583c039..3c5968f4ee1b 100644 --- a/websocket/jetty10/pom.xml +++ b/websocket/jetty10/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.443 ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index a99aada6a446..06385024cb43 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.443 ../.. From 5d5ad30cf51661dd609433885205267e0b13005d Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 30 Jan 2024 13:07:18 +0000 Subject: [PATCH 0217/1216] [maven-release-plugin] prepare for next development iteration --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 6 +++--- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty10/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 9f741ba252cd..29f77e1f7202 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.443 + ${revision}${changelist} jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 1218e24231ef..763d83529103 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.443 + ${revision}${changelist} cli diff --git a/core/pom.xml b/core/pom.xml index 71aad53e36da..4280e9075da9 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.443 + ${revision}${changelist} jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index acf85c1de9cb..fe1e89a120dc 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.443 + ${revision}${changelist} jenkins-coverage diff --git a/pom.xml b/pom.xml index 449a77826b54..1b6689b6a55e 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.443 + ${revision}${changelist} pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - jenkins-2.443 + ${scmTag} https://github.com/jenkinsci/jenkins @@ -73,7 +73,7 @@ THE SOFTWARE. - 2.443 + 2.444 -SNAPSHOT diff --git a/test/pom.xml b/test/pom.xml index 2a1f11594d62..2928370b80d0 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.443 + ${revision}${changelist} jenkins-test diff --git a/war/pom.xml b/war/pom.xml index 435ae5970ad2..b609b7f22409 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.443 + ${revision}${changelist} jenkins-war diff --git a/websocket/jetty10/pom.xml b/websocket/jetty10/pom.xml index 3c5968f4ee1b..c91e1583c039 100644 --- a/websocket/jetty10/pom.xml +++ b/websocket/jetty10/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.443 + ${revision}${changelist} ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 06385024cb43..a99aada6a446 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.443 + ${revision}${changelist} ../.. From 213bdecefc9fef76139488a722e3dbc6ea73583c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Jan 2024 08:35:28 -0800 Subject: [PATCH 0218/1216] Bump org.jenkins-ci.plugins.workflow:workflow-api from 1289.va_cf779f32df0 to 1291.v51fd2a_625da_7 (#8914) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index 2928370b80d0..dca41d7619a3 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -110,7 +110,7 @@ THE SOFTWARE. org.jenkins-ci.plugins.workflow workflow-api - 1289.va_cf779f32df0 + 1291.v51fd2a_625da_7 From 907394527c26926ba658d6353dcfaf409e10710b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Jan 2024 08:35:54 -0800 Subject: [PATCH 0219/1216] Bump com.puppycrawl.tools:checkstyle from 10.12.7 to 10.13.0 (#8915) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1b6689b6a55e..fa3aeafc11ca 100644 --- a/pom.xml +++ b/pom.xml @@ -332,7 +332,7 @@ THE SOFTWARE. com.puppycrawl.tools checkstyle - 10.12.7 + 10.13.0 From 332ac4914f84ba656407a78fd7d806dc58c60ba4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Jan 2024 08:36:18 -0800 Subject: [PATCH 0220/1216] Bump org.jenkins-ci.main:jenkins-test-harness from 2154.v9367950e9176 to 2156.vd392d386f442 (#8916) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index dca41d7619a3..bfa40f5febbb 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -131,7 +131,7 @@ THE SOFTWARE. ${project.groupId} jenkins-test-harness - 2154.v9367950e9176 + 2156.vd392d386f442 test From 4d5bb02c8fadae4a8bcf3510613d6716756d7e3e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 30 Jan 2024 08:36:41 -0800 Subject: [PATCH 0221/1216] Update dependency stylelint-checkstyle-reporter to v1 (#8919) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/yarn.lock | 51 ++++++++++++++++++++++++++++-------------------- 2 files changed, 31 insertions(+), 22 deletions(-) diff --git a/war/package.json b/war/package.json index 24aa684230a5..e3c3b45dfba7 100644 --- a/war/package.json +++ b/war/package.json @@ -43,7 +43,7 @@ "sass-loader": "14.0.0", "style-loader": "3.3.4", "stylelint": "16.2.0", - "stylelint-checkstyle-reporter": "0.2.0", + "stylelint-checkstyle-reporter": "1.0.0", "stylelint-config-standard": "36.0.0", "webpack": "5.90.0", "webpack-cli": "5.1.4", diff --git a/war/yarn.lock b/war/yarn.lock index ff02bdcf4908..531b059e2d59 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -1979,14 +1979,14 @@ __metadata: languageName: node linkType: hard -"@oozcitak/dom@npm:1.15.8": - version: 1.15.8 - resolution: "@oozcitak/dom@npm:1.15.8" +"@oozcitak/dom@npm:1.15.10": + version: 1.15.10 + resolution: "@oozcitak/dom@npm:1.15.10" dependencies: "@oozcitak/infra": "npm:1.0.8" "@oozcitak/url": "npm:1.0.4" "@oozcitak/util": "npm:8.3.8" - checksum: ce856019caedce0163ce35052d898f5db50b5a8700acae8e21936cc85240d8066573e908ab9fe42b3a8d11174a9b72e2c9d91000165054ed90a3311ffc3221fe + checksum: 128162dd35fd21976e7589a4b50e980d8fb72e1f90e5675a3baca70b23cfdd87c0df57bff1ec708e7927671247a7233f240a27a4546bb904e069be1b4d4d7a05 languageName: node linkType: hard @@ -3825,6 +3825,13 @@ __metadata: languageName: node linkType: hard +"get-stdin@npm:9.0.0": + version: 9.0.0 + resolution: "get-stdin@npm:9.0.0" + checksum: 7ef2edc0c81a0644ca9f051aad8a96ae9373d901485abafaabe59fd347a1c378689d8a3d8825fb3067415d1d09dfcaa43cb9b9516ecac6b74b3138b65a8ccc6b + languageName: node + linkType: hard + "glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": version: 5.1.2 resolution: "glob-parent@npm:5.1.2" @@ -4338,7 +4345,7 @@ __metadata: sortablejs: "npm:1.15.2" style-loader: "npm:3.3.4" stylelint: "npm:16.2.0" - stylelint-checkstyle-reporter: "npm:0.2.0" + stylelint-checkstyle-reporter: "npm:1.0.0" stylelint-config-standard: "npm:36.0.0" tippy.js: "npm:6.3.7" webpack: "npm:5.90.0" @@ -4408,15 +4415,15 @@ __metadata: languageName: node linkType: hard -"js-yaml@npm:3.14.0": - version: 3.14.0 - resolution: "js-yaml@npm:3.14.0" +"js-yaml@npm:3.14.1": + version: 3.14.1 + resolution: "js-yaml@npm:3.14.1" dependencies: argparse: "npm:^1.0.7" esprima: "npm:^4.0.0" bin: js-yaml: bin/js-yaml.js - checksum: 9b21ab19f03aae734c83e5c8a3d5e6f80bab5ce0e24bdbb186e531fb0887ff0034affd96ae3eed993c33e33bc606a6b78389207b853df97094393804d6c37184 + checksum: 6746baaaeac312c4db8e75fa22331d9a04cccb7792d126ed8ce6a0bbcfef0cedaddd0c5098fade53db067c09fe00aa1c957674b4765610a8b06a5a189e46433b languageName: node linkType: hard @@ -6555,12 +6562,15 @@ __metadata: languageName: node linkType: hard -"stylelint-checkstyle-reporter@npm:0.2.0": - version: 0.2.0 - resolution: "stylelint-checkstyle-reporter@npm:0.2.0" +"stylelint-checkstyle-reporter@npm:1.0.0": + version: 1.0.0 + resolution: "stylelint-checkstyle-reporter@npm:1.0.0" dependencies: - xmlbuilder2: "npm:^2.4.0" - checksum: a486da693225ac0ff25a75c124cb3b59b7b6bacbd4aa0dc62b05ab38d45a69e9c113599f6b3c8f21db6887ffc8fb4425a75fb634d77ecd778cc3a661ebf87e5b + get-stdin: "npm:9.0.0" + xmlbuilder2: "npm:3.1.1" + bin: + stylelint-checkstyle-reporter: dist/reporter-with-stdin.mjs + checksum: 26d45528ab75ad4129abdf34436578a2a0e6a10c552e53b1bb19fb7eff8433f1fd77ab3fb6698b295802df54f9005d8031791451b695fa86269e20385b978a9b languageName: node linkType: hard @@ -7114,16 +7124,15 @@ __metadata: languageName: node linkType: hard -"xmlbuilder2@npm:^2.4.0": - version: 2.4.1 - resolution: "xmlbuilder2@npm:2.4.1" +"xmlbuilder2@npm:3.1.1": + version: 3.1.1 + resolution: "xmlbuilder2@npm:3.1.1" dependencies: - "@oozcitak/dom": "npm:1.15.8" + "@oozcitak/dom": "npm:1.15.10" "@oozcitak/infra": "npm:1.0.8" "@oozcitak/util": "npm:8.3.8" - "@types/node": "npm:*" - js-yaml: "npm:3.14.0" - checksum: ce3ae6d671d65f86d9864dc3cad436812e630e7043e5dbc79c79477626f808c052b8451bb2032f3cf6d5e9b7a98280865988e88441cac75efe392130f9214f06 + js-yaml: "npm:3.14.1" + checksum: a3e7dd5cbc052f6b53773a4a9d5efb26b0647aa8868bc1a597478d534e78184263b5b3e495e82613f21d0bf016a24145bb793f6e197e8911139dddba9cd831cc languageName: node linkType: hard From c00a30da805e95e7fb69104af2ddaedb2a0fc74b Mon Sep 17 00:00:00 2001 From: Antonio Muniz Date: Wed, 31 Jan 2024 08:50:31 +0100 Subject: [PATCH 0222/1216] Add marker class to submit buttons (#8920) --- core/src/main/resources/lib/form/submit.jelly | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/resources/lib/form/submit.jelly b/core/src/main/resources/lib/form/submit.jelly index 579149227f08..f2b6d8895445 100644 --- a/core/src/main/resources/lib/form/submit.jelly +++ b/core/src/main/resources/lib/form/submit.jelly @@ -54,7 +54,7 @@ THE SOFTWARE. diff --git a/war/src/main/js/components/row-selection-controller/index.js b/war/src/main/js/components/row-selection-controller/index.js index d4de91b89de4..31fa374ee2c3 100644 --- a/war/src/main/js/components/row-selection-controller/index.js +++ b/war/src/main/js/components/row-selection-controller/index.js @@ -4,7 +4,10 @@ const rowSelectionControllers = document.querySelectorAll( rowSelectionControllers.forEach((headerCheckbox) => { const table = headerCheckbox.closest(".jenkins-table"); - const tableCheckboxes = table.querySelectorAll("input[type='checkbox']"); + const checkboxClass = headerCheckbox.dataset.checkboxClass; + const tableCheckboxes = table.querySelectorAll( + `input[type='checkbox'].${checkboxClass}`, + ); const moreOptionsButton = table.querySelector( ".jenkins-table__checkbox-options", ); From 15e045f03d652a7e76dc3d68e071119c86fdba6a Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Fri, 30 Aug 2024 09:26:19 -0400 Subject: [PATCH 0913/1216] Friendlier handling of `DeploymentHandshakeException` from CLI in `-webSocket` mode (#9591) --- cli/src/main/java/hudson/cli/CLI.java | 24 ++++++++++++++++++- .../test/java/hudson/cli/CLIActionTest.java | 17 +++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/cli/src/main/java/hudson/cli/CLI.java b/cli/src/main/java/hudson/cli/CLI.java index 684b01f54981..910331b3ee9a 100644 --- a/cli/src/main/java/hudson/cli/CLI.java +++ b/cli/src/main/java/hudson/cli/CLI.java @@ -32,6 +32,7 @@ import jakarta.websocket.ClientEndpointConfig; import jakarta.websocket.Endpoint; import jakarta.websocket.EndpointConfig; +import jakarta.websocket.HandshakeResponse; import jakarta.websocket.Session; import java.io.DataInputStream; import java.io.File; @@ -64,6 +65,7 @@ import org.glassfish.tyrus.client.ClientManager; import org.glassfish.tyrus.client.ClientProperties; import org.glassfish.tyrus.client.SslEngineConfigurator; +import org.glassfish.tyrus.client.exception.DeploymentHandshakeException; import org.glassfish.tyrus.container.jdk.client.JdkClientContainer; /** @@ -340,13 +342,19 @@ public void onOpen(Session session, EndpointConfig config) {} } class Authenticator extends ClientEndpointConfig.Configurator { + HandshakeResponse hr; @Override public void beforeRequest(Map> headers) { if (factory.authorization != null) { headers.put("Authorization", List.of(factory.authorization)); } } + @Override + public void afterResponse(HandshakeResponse hr) { + this.hr = hr; + } } + var authenticator = new Authenticator(); ClientManager client = ClientManager.createClient(JdkClientContainer.class.getName()); // ~ ContainerProvider.getWebSocketContainer() client.getProperties().put(ClientProperties.REDIRECT_ENABLED, true); // https://tyrus-project.github.io/documentation/1.13.1/index/tyrus-proprietary-config.html#d0e1775 @@ -357,7 +365,21 @@ public void beforeRequest(Map> headers) { sslEngineConfigurator.setHostnameVerifier((s, sslSession) -> true); client.getProperties().put(ClientProperties.SSL_ENGINE_CONFIGURATOR, sslEngineConfigurator); } - Session session = client.connectToServer(new CLIEndpoint(), ClientEndpointConfig.Builder.create().configurator(new Authenticator()).build(), URI.create(url.replaceFirst("^http", "ws") + "cli/ws")); + Session session; + try { + session = client.connectToServer(new CLIEndpoint(), ClientEndpointConfig.Builder.create().configurator(authenticator).build(), URI.create(url.replaceFirst("^http", "ws") + "cli/ws")); + } catch (DeploymentHandshakeException x) { + System.err.println("CLI handshake failed with status code " + x.getHttpStatusCode()); + if (authenticator.hr != null) { + for (var entry : authenticator.hr.getHeaders().entrySet()) { + // org.glassfish.tyrus.core.Utils.parseHeaderValue improperly splits values like Date at commas, so undo that: + System.err.println(entry.getKey() + ": " + String.join(", ", entry.getValue())); + } + // UpgradeResponse.getReasonPhrase is useless since Jetty generates it from the code, + // and the body is not accessible at all. + } + return 15; // compare CLICommand.main + } PlainCLIProtocol.Output out = new PlainCLIProtocol.Output() { @Override public void send(byte[] data) throws IOException { diff --git a/test/src/test/java/hudson/cli/CLIActionTest.java b/test/src/test/java/hudson/cli/CLIActionTest.java index 57086142bfb9..dab7ec8a88ad 100644 --- a/test/src/test/java/hudson/cli/CLIActionTest.java +++ b/test/src/test/java/hudson/cli/CLIActionTest.java @@ -1,5 +1,9 @@ package hudson.cli; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.allOf; +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertEquals; import hudson.Functions; @@ -131,6 +135,19 @@ private void assertExitCode(int code, boolean useApiToken, File jar, String... a assertEquals(code, proc.join()); } + @Test public void authenticationFailed() throws Exception { + j.jenkins.setSecurityRealm(j.createDummySecurityRealm()); + j.jenkins.setAuthorizationStrategy(new MockAuthorizationStrategy().grant(Jenkins.ADMINISTER).everywhere().toAuthenticated()); + var jar = tmp.newFile("jenkins-cli.jar"); + FileUtils.copyURLToFile(j.jenkins.getJnlpJars("jenkins-cli.jar").getURL(), jar); + var baos = new ByteArrayOutputStream(); + var exitStatus = new Launcher.LocalLauncher(StreamTaskListener.fromStderr()).launch().cmds( + "java", "-jar", jar.getAbsolutePath(), "-s", j.getURL().toString(), "-auth", "user:bogustoken", "who-am-i" + ).stdout(baos).start().join(); + assertThat(baos.toString(), allOf(containsString("status code 401"), containsString("Server: Jetty"))); + assertThat(exitStatus, is(15)); + } + @Issue("JENKINS-41745") @Test public void encodingAndLocale() throws Exception { From 5fe9a448059c5aafd2fa354cdabb12e05b3978e2 Mon Sep 17 00:00:00 2001 From: Allan Burdajewicz Date: Fri, 30 Aug 2024 23:26:27 +1000 Subject: [PATCH 0914/1216] [JENKINS-73422] Add escape hatch for Authenticated user access to Resource URL (#9644) Co-authored-by: Daniel Beck <1831569+daniel-beck@users.noreply.github.com> --- .../jenkins/security/ResourceDomainRootAction.java | 6 +++++- .../test/java/jenkins/security/ResourceDomainTest.java | 10 +++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/jenkins/security/ResourceDomainRootAction.java b/core/src/main/java/jenkins/security/ResourceDomainRootAction.java index 7955103d6be5..fc18071fade7 100644 --- a/core/src/main/java/jenkins/security/ResourceDomainRootAction.java +++ b/core/src/main/java/jenkins/security/ResourceDomainRootAction.java @@ -117,7 +117,7 @@ public Object getDynamic(String id, StaplerRequest req, StaplerResponse rsp) thr return null; } - if (!ACL.isAnonymous2(Jenkins.getAuthentication2())) { + if (!ALLOW_AUTHENTICATED_USER && !ACL.isAnonymous2(Jenkins.getAuthentication2())) { rsp.sendError(400); return null; } @@ -327,4 +327,8 @@ private static Token decode(String value) { // Not @Restricted because the entire class is @SuppressFBWarnings(value = "MS_SHOULD_BE_FINAL", justification = "for script console") public static /* not final for Groovy */ int VALID_FOR_MINUTES = SystemProperties.getInteger(ResourceDomainRootAction.class.getName() + ".validForMinutes", 30); + + /* Escape hatch for a security hardening preventing one of the known ways to elevate arbitrary file read to RCE */ + @SuppressFBWarnings(value = "MS_SHOULD_BE_FINAL", justification = "for script console") + public static /* not final for Groovy */ boolean ALLOW_AUTHENTICATED_USER = SystemProperties.getBoolean(ResourceDomainRootAction.class.getName() + ".allowAuthenticatedUser", false); } diff --git a/test/src/test/java/jenkins/security/ResourceDomainTest.java b/test/src/test/java/jenkins/security/ResourceDomainTest.java index 42f2a1dbbf78..b8f2d551b094 100644 --- a/test/src/test/java/jenkins/security/ResourceDomainTest.java +++ b/test/src/test/java/jenkins/security/ResourceDomainTest.java @@ -399,7 +399,7 @@ public HttpResponse doDynamic() throws Exception { } @Test - public void authenticatedCannotAccessResourceDomain() throws Exception { + public void authenticatedCannotAccessResourceDomainUnlessAllowedBySystemProperty() throws Exception { j.jenkins.setSecurityRealm(j.createDummySecurityRealm()); final MockAuthorizationStrategy authorizationStrategy = new MockAuthorizationStrategy(); authorizationStrategy.grant(Jenkins.ADMINISTER).everywhere().to("admin").grant(Jenkins.READ).everywhere().toEveryone(); @@ -416,5 +416,13 @@ public void authenticatedCannotAccessResourceDomain() throws Exception { try (JenkinsRule.WebClient wc = j.createWebClient().withBasicCredentials("admin")) { assertThat(assertThrows(FailingHttpStatusCodeException.class, () -> wc.getPage(new URL(resourceUrl))).getStatusCode(), is(400)); } + + ResourceDomainRootAction.ALLOW_AUTHENTICATED_USER = true; + try (JenkinsRule.WebClient wc = j.createWebClient().withBasicApiToken("admin")) { + assertThat(wc.getPage(new URL(resourceUrl)).getWebResponse().getStatusCode(), is(200)); + } + try (JenkinsRule.WebClient wc = j.createWebClient().withBasicCredentials("admin")) { + assertThat(wc.getPage(new URL(resourceUrl)).getWebResponse().getStatusCode(), is(200)); + } } } From 9ac4bf149091afbec0187767153815d6051996c9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 30 Aug 2024 15:44:17 -0700 Subject: [PATCH 0915/1216] Update dependency com.puppycrawl.tools:checkstyle to v10.18.1 (#9676) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 921d6a9f7009..c3052864caba 100644 --- a/pom.xml +++ b/pom.xml @@ -282,7 +282,7 @@ THE SOFTWARE. com.puppycrawl.tools checkstyle - 10.18.0 + 10.18.1 From 3ccaa256b89c7e3a6c13cc385bda6f5fc74e682b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 30 Aug 2024 15:44:33 -0700 Subject: [PATCH 0916/1216] Update dependency org.jenkins-ci.main:jenkins-test-harness to v2265 (#9677) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index 21089219623c..2038fd503716 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -178,7 +178,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-test-harness - 2254.vcff7a_d4969e5 + 2265.v3da_49c8134d6 test From c67e2a9ec369d29da332ed578aed4f05450081c5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 31 Aug 2024 10:04:17 +0200 Subject: [PATCH 0917/1216] Update dependency stylelint to v16.9.0 (#9678) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/yarn.lock | 36 ++++++++++++++++++------------------ 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/war/package.json b/war/package.json index 0fa3f50d288c..5c62e8cf14f3 100644 --- a/war/package.json +++ b/war/package.json @@ -45,7 +45,7 @@ "sass": "1.77.8", "sass-loader": "16.0.1", "style-loader": "4.0.0", - "stylelint": "16.8.2", + "stylelint": "16.9.0", "stylelint-checkstyle-reporter": "1.0.0", "stylelint-config-standard": "36.0.1", "webpack": "5.94.0", diff --git a/war/yarn.lock b/war/yarn.lock index b9d57852342d..62914daa4472 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -1394,7 +1394,7 @@ __metadata: languageName: node linkType: hard -"@csstools/css-parser-algorithms@npm:^3.0.0, @csstools/css-parser-algorithms@npm:^3.0.1": +"@csstools/css-parser-algorithms@npm:^3.0.1": version: 3.0.1 resolution: "@csstools/css-parser-algorithms@npm:3.0.1" peerDependencies: @@ -1403,14 +1403,14 @@ __metadata: languageName: node linkType: hard -"@csstools/css-tokenizer@npm:^3.0.0, @csstools/css-tokenizer@npm:^3.0.1": +"@csstools/css-tokenizer@npm:^3.0.1": version: 3.0.1 resolution: "@csstools/css-tokenizer@npm:3.0.1" checksum: 10c0/c9ed4373e5731b5375ea9791590081019c04e95f08b46b272977e5e7b8c3d560affc62e82263cb8def1df1e57f0673140e7e16a14a5e7be04e6a234be088d1d3 languageName: node linkType: hard -"@csstools/media-query-list-parser@npm:^3.0.0, @csstools/media-query-list-parser@npm:^3.0.1": +"@csstools/media-query-list-parser@npm:^3.0.1": version: 3.0.1 resolution: "@csstools/media-query-list-parser@npm:3.0.1" peerDependencies: @@ -4402,7 +4402,7 @@ __metadata: sass-loader: "npm:16.0.1" sortablejs: "npm:1.15.2" style-loader: "npm:4.0.0" - stylelint: "npm:16.8.2" + stylelint: "npm:16.9.0" stylelint-checkstyle-reporter: "npm:1.0.0" stylelint-config-standard: "npm:36.0.1" tippy.js: "npm:6.3.7" @@ -4799,7 +4799,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.4, micromatch@npm:^4.0.7": +"micromatch@npm:^4.0.4, micromatch@npm:^4.0.8": version: 4.0.8 resolution: "micromatch@npm:4.0.8" dependencies: @@ -6662,13 +6662,13 @@ __metadata: languageName: node linkType: hard -"stylelint@npm:16.8.2": - version: 16.8.2 - resolution: "stylelint@npm:16.8.2" +"stylelint@npm:16.9.0": + version: 16.9.0 + resolution: "stylelint@npm:16.9.0" dependencies: - "@csstools/css-parser-algorithms": "npm:^3.0.0" - "@csstools/css-tokenizer": "npm:^3.0.0" - "@csstools/media-query-list-parser": "npm:^3.0.0" + "@csstools/css-parser-algorithms": "npm:^3.0.1" + "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/media-query-list-parser": "npm:^3.0.1" "@csstools/selector-specificity": "npm:^4.0.0" "@dual-bundle/import-meta-resolve": "npm:^4.1.0" balanced-match: "npm:^2.0.0" @@ -6690,7 +6690,7 @@ __metadata: known-css-properties: "npm:^0.34.0" mathml-tag-names: "npm:^2.1.3" meow: "npm:^13.2.0" - micromatch: "npm:^4.0.7" + micromatch: "npm:^4.0.8" normalize-path: "npm:^3.0.0" picocolors: "npm:^1.0.1" postcss: "npm:^8.4.41" @@ -6701,13 +6701,13 @@ __metadata: resolve-from: "npm:^5.0.0" string-width: "npm:^4.2.3" strip-ansi: "npm:^7.1.0" - supports-hyperlinks: "npm:^3.0.0" + supports-hyperlinks: "npm:^3.1.0" svg-tags: "npm:^1.0.0" table: "npm:^6.8.2" write-file-atomic: "npm:^5.0.1" bin: stylelint: bin/stylelint.mjs - checksum: 10c0/898cde9b5d981f249133df709458eebf2af0a525e72410ddfafd76a7308f7da493578b6a909c593cc70061556b9eda1fed4f477385ee615435f0996d9e18d8df + checksum: 10c0/d3ff9c8945c56b04a2fa16ec33d163325496d5db94b6fcb5adf74c76f7f794ac992888273f9a3317652ba8b6195168b2ffff382ca2a667a241e2ace8c9505ae2 languageName: node linkType: hard @@ -6738,13 +6738,13 @@ __metadata: languageName: node linkType: hard -"supports-hyperlinks@npm:^3.0.0": - version: 3.0.0 - resolution: "supports-hyperlinks@npm:3.0.0" +"supports-hyperlinks@npm:^3.1.0": + version: 3.1.0 + resolution: "supports-hyperlinks@npm:3.1.0" dependencies: has-flag: "npm:^4.0.0" supports-color: "npm:^7.0.0" - checksum: 10c0/36aaa55e67645dded8e0f846fd81d7dd05ce82ea81e62347f58d86213577eb627b2b45298656ce7a70e7155e39f071d0d3f83be91e112aed801ebaa8db1ef1d0 + checksum: 10c0/78cc3e17eb27e6846fa355a8ebf343befe36272899cd409e45317a06c1997e95c23ff99d91080a517bd8c96508d4fa456e6ceb338c02ba5d7544277dbec0f10f languageName: node linkType: hard From 9fc6a55698c6b92e7711fc0dde5a863c5db90834 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Sep 2024 15:45:31 +0100 Subject: [PATCH 0918/1216] Update dependency @babel/cli to v7.25.6 (#9679) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/package.json | 2 +- war/yarn.lock | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/war/package.json b/war/package.json index 5c62e8cf14f3..71015ede4105 100644 --- a/war/package.json +++ b/war/package.json @@ -23,7 +23,7 @@ "lint": "yarn lint:js && yarn lint:css" }, "devDependencies": { - "@babel/cli": "7.24.8", + "@babel/cli": "7.25.6", "@babel/core": "7.25.2", "@babel/preset-env": "7.25.4", "@eslint/js": "9.9.1", diff --git a/war/yarn.lock b/war/yarn.lock index 62914daa4472..62ea2de5f6b4 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -22,13 +22,13 @@ __metadata: languageName: node linkType: hard -"@babel/cli@npm:7.24.8": - version: 7.24.8 - resolution: "@babel/cli@npm:7.24.8" +"@babel/cli@npm:7.25.6": + version: 7.25.6 + resolution: "@babel/cli@npm:7.25.6" dependencies: "@jridgewell/trace-mapping": "npm:^0.3.25" "@nicolo-ribaudo/chokidar-2": "npm:2.1.8-no-fsevents.3" - chokidar: "npm:^3.4.0" + chokidar: "npm:^3.6.0" commander: "npm:^6.2.0" convert-source-map: "npm:^2.0.0" fs-readdir-recursive: "npm:^1.1.0" @@ -45,7 +45,7 @@ __metadata: bin: babel: ./bin/babel.js babel-external-helpers: ./bin/babel-external-helpers.js - checksum: 10c0/b7f464ccb00db60aed63d71e980df823900d20c740bc2d9eb36c3abd4b3e2402cc438818382344085ef6603aeea2e6ee19af8f0ecb934966eccf077b87af7c7c + checksum: 10c0/861d3c2ed6c47b25a322c2f6127f56783d8d333fc2d02d3815f86301fe1102eca5f61b8a5c8610a6a2872d1ccfce24fd6d4a91f4f73536e43b8e2f28f9dcf5ed languageName: node linkType: hard @@ -2833,9 +2833,9 @@ __metadata: languageName: node linkType: hard -"chokidar@npm:>=3.0.0 <4.0.0, chokidar@npm:^3.4.0": - version: 3.5.3 - resolution: "chokidar@npm:3.5.3" +"chokidar@npm:>=3.0.0 <4.0.0, chokidar@npm:^3.6.0": + version: 3.6.0 + resolution: "chokidar@npm:3.6.0" dependencies: anymatch: "npm:~3.1.2" braces: "npm:~3.0.2" @@ -2848,7 +2848,7 @@ __metadata: dependenciesMeta: fsevents: optional: true - checksum: 10c0/1076953093e0707c882a92c66c0f56ba6187831aa51bb4de878c1fec59ae611a3bf02898f190efec8e77a086b8df61c2b2a3ea324642a0558bdf8ee6c5dc9ca1 + checksum: 10c0/8361dcd013f2ddbe260eacb1f3cb2f2c6f2b0ad118708a343a5ed8158941a39cb8fb1d272e0f389712e74ee90ce8ba864eece9e0e62b9705cb468a2f6d917462 languageName: node linkType: hard @@ -4375,7 +4375,7 @@ __metadata: version: 0.0.0-use.local resolution: "jenkins-ui@workspace:." dependencies: - "@babel/cli": "npm:7.24.8" + "@babel/cli": "npm:7.25.6" "@babel/core": "npm:7.25.2" "@babel/preset-env": "npm:7.25.4" "@eslint/js": "npm:9.9.1" From 1008dcb1dfe1ce00499ccc4e0b0a5bcd918882da Mon Sep 17 00:00:00 2001 From: Thorsten Scherler Date: Sun, 1 Sep 2024 16:50:49 +0200 Subject: [PATCH 0919/1216] [JENKINS-73695] BUG: Dashboard shows white space on certain width space >900px (#9667) --- .../resources/lib/hudson/projectView.jelly | 34 ++++++++++--------- war/src/main/scss/abstracts/_theme.scss | 1 + war/src/main/scss/base/_layout-commons.scss | 13 +++++-- 3 files changed, 29 insertions(+), 19 deletions(-) diff --git a/core/src/main/resources/lib/hudson/projectView.jelly b/core/src/main/resources/lib/hudson/projectView.jelly index de8d4a9316b1..75842abc1e9f 100644 --- a/core/src/main/resources/lib/hudson/projectView.jelly +++ b/core/src/main/resources/lib/hudson/projectView.jelly @@ -67,23 +67,25 @@ THE SOFTWARE.
  • - - - - - - - - - - - +
    +
    + + + + + + + + + + - - - - -
    + + + + + +
    diff --git a/war/src/main/scss/abstracts/_theme.scss b/war/src/main/scss/abstracts/_theme.scss index 9004709c76a1..c108634f7c85 100644 --- a/war/src/main/scss/abstracts/_theme.scss +++ b/war/src/main/scss/abstracts/_theme.scss @@ -267,6 +267,7 @@ $semantics: ( --tab-baseline-default-display: none; // Side panel + --side-panel-width: 340px; --panel-header-bg-color: var(--light-grey); --panel-border-color: var(--light-grey); --side-panel-hover-color: var(--panel-border-color); diff --git a/war/src/main/scss/base/_layout-commons.scss b/war/src/main/scss/base/_layout-commons.scss index c42e6dcafe67..ce45451b0add 100644 --- a/war/src/main/scss/base/_layout-commons.scss +++ b/war/src/main/scss/base/_layout-commons.scss @@ -84,7 +84,7 @@ } body.two-column #main-panel { - width: calc(100% - 320px); + width: calc(100% - var(--side-panel-width)); flex: 1; display: block; } @@ -98,7 +98,7 @@ body.full-screen #main-panel { } body.two-column #side-panel { - width: 340px; + width: var(--side-panel-width); } /* stylelint-disable-next-line media-query-no-invalid */ @@ -118,9 +118,16 @@ body.two-column #side-panel { } } +.app-project-status-table { + width: 100%; + overflow-x: auto; +} + @media (width >= 1170px) { body.two-column #main-panel { - width: calc(100% - 370px); + width: calc( + 100% - calc(var(--side-panel-width) + calc(var(--section-padding) * 2)) + ); } } From 3069dded3adabd0d43f3b309dfc51a1205d7ce7e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 3 Sep 2024 13:33:14 -0700 Subject: [PATCH 0920/1216] Update dependency io.jenkins.plugins:snakeyaml-api to v2.3-123.v13484c65210a_ (#9682) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/pom.xml b/war/pom.xml index e6b4bf8251b7..621208036302 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -372,7 +372,7 @@ THE SOFTWARE. io.jenkins.plugins snakeyaml-api - 2.2-121.v5a_68b_9300b_d4 + 2.3-123.v13484c65210a_ hpi From 4187ee4d2d7ea54a1c2f5b40470a46182817fe81 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 3 Sep 2024 13:33:32 -0700 Subject: [PATCH 0921/1216] Update dependency io.jenkins.plugins:commons-lang3-api to v3.17.0-84.vb_b_938040b_078 (#9680) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index 2038fd503716..28d74acd4513 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -63,7 +63,7 @@ THE SOFTWARE. io.jenkins.plugins commons-lang3-api - 3.16.0-82.ve2b_07d659d95 + 3.17.0-84.vb_b_938040b_078 diff --git a/war/pom.xml b/war/pom.xml index 621208036302..9045cdc38056 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -502,7 +502,7 @@ THE SOFTWARE. io.jenkins.plugins commons-lang3-api - 3.16.0-82.ve2b_07d659d95 + 3.17.0-84.vb_b_938040b_078 hpi From 4e9b6d8a3dd93aa57c7d0e9464006e2eadc125fc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 3 Sep 2024 13:34:16 -0700 Subject: [PATCH 0922/1216] Update dependency org.jenkins-ci.plugins:script-security to v1358 (#9685) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index 28d74acd4513..229c19fe390e 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -118,7 +118,7 @@ THE SOFTWARE. org.jenkins-ci.plugins script-security - 1354.va_70a_fe478c7f + 1358.vb_26663c13537 org.jenkins-ci.plugins.workflow diff --git a/war/pom.xml b/war/pom.xml index 9045cdc38056..3772fa834be2 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -300,7 +300,7 @@ THE SOFTWARE. org.jenkins-ci.plugins script-security - 1354.va_70a_fe478c7f + 1358.vb_26663c13537 hpi From 7006cded64f63f788ae91dd7b7587a4a39e70273 Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Tue, 3 Sep 2024 14:59:04 -0700 Subject: [PATCH 0923/1216] [JENKINS-73278] Migrate core from EE 8 to EE 9 (#9672) Co-authored-by: Kevin Guerroudj <91883215+Kevin-CB@users.noreply.github.com> Co-authored-by: Daniel Beck <1831569+daniel-beck@users.noreply.github.com> --- .github/renovate.json | 11 - .idea/encodings.xml | 9 +- bom/pom.xml | 14 +- core/pom.xml | 20 +- .../java/hudson/DescriptorExtensionList.java | 2 +- .../main/java/hudson/ExpressionFactory2.java | 4 +- core/src/main/java/hudson/FilePath.java | 2 +- core/src/main/java/hudson/Functions.java | 166 ++++++++++--- .../main/java/hudson/LocalPluginManager.java | 15 +- core/src/main/java/hudson/Plugin.java | 66 +++++- core/src/main/java/hudson/PluginManager.java | 91 ++++++-- core/src/main/java/hudson/PluginWrapper.java | 6 +- .../hudson/ProxyConfigurationManager.java | 4 +- .../java/hudson/ResponseHeaderFilter.java | 16 +- core/src/main/java/hudson/Util.java | 14 +- core/src/main/java/hudson/WebAppMain.java | 22 +- core/src/main/java/hudson/cli/CLIAction.java | 16 +- .../java/hudson/cli/CliCrumbExclusion.java | 8 +- .../cli/ReloadConfigurationCommand.java | 2 +- .../java/hudson/cli/UpdateNodeCommand.java | 2 +- .../hudson/console/AnnotatedLargeText.java | 61 ++++- .../console/ConsoleAnnotationDescriptor.java | 10 +- .../console/ConsoleAnnotatorFactory.java | 10 +- .../java/hudson/console/HyperlinkNote.java | 4 +- .../java/hudson/diagnosis/OldDataMonitor.java | 12 +- .../diagnosis/ReverseProxySetupMonitor.java | 4 +- .../diagnosis/TooManyJobsButNoView.java | 6 +- .../hudson/init/impl/GroovyInitScript.java | 2 +- .../impl/InstallUncaughtExceptionHandler.java | 18 +- .../lifecycle/WindowsInstallerLink.java | 16 +- .../main/java/hudson/logging/LogRecorder.java | 12 +- .../hudson/logging/LogRecorderManager.java | 12 +- .../java/hudson/markup/MarkupFormatter.java | 25 +- .../main/java/hudson/model/AbstractBuild.java | 13 +- .../main/java/hudson/model/AbstractItem.java | 107 ++++++++- .../hudson/model/AbstractModelObject.java | 53 ++++- .../java/hudson/model/AbstractProject.java | 80 +++++-- .../main/java/hudson/model/Actionable.java | 46 +++- .../hudson/model/AdministrativeMonitor.java | 8 +- core/src/main/java/hudson/model/AllView.java | 28 ++- core/src/main/java/hudson/model/Api.java | 71 +++++- .../model/AutoCompletionCandidates.java | 8 +- .../src/main/java/hudson/model/BallColor.java | 2 +- .../model/BooleanParameterDefinition.java | 4 +- .../hudson/model/BuildAuthorizationToken.java | 32 ++- .../hudson/model/BuildTimelineWidget.java | 20 +- .../model/ChoiceParameterDefinition.java | 6 +- core/src/main/java/hudson/model/Computer.java | 34 +-- .../main/java/hudson/model/ComputerSet.java | 20 +- .../main/java/hudson/model/Descriptor.java | 157 ++++++++++--- .../hudson/model/DirectlyModifiableView.java | 2 +- .../hudson/model/DirectoryBrowserSupport.java | 23 +- core/src/main/java/hudson/model/Executor.java | 3 +- core/src/main/java/hudson/model/Failure.java | 10 +- .../hudson/model/FileParameterDefinition.java | 8 +- .../java/hudson/model/FileParameterValue.java | 8 +- core/src/main/java/hudson/model/Hudson.java | 42 +++- core/src/main/java/hudson/model/Item.java | 4 +- .../java/hudson/model/ItemGroupMixIn.java | 25 +- core/src/main/java/hudson/model/Job.java | 102 ++++++-- .../main/java/hudson/model/JobProperty.java | 22 ++ .../hudson/model/JobPropertyDescriptor.java | 19 ++ core/src/main/java/hudson/model/Label.java | 6 +- core/src/main/java/hudson/model/ListView.java | 39 +++- .../hudson/model/ManageJenkinsAction.java | 8 +- .../hudson/model/ModifiableItemGroup.java | 49 +++- .../hudson/model/MultiStageTimeSeries.java | 8 +- core/src/main/java/hudson/model/MyView.java | 28 ++- .../java/hudson/model/MyViewsProperty.java | 10 +- core/src/main/java/hudson/model/Node.java | 18 ++ .../hudson/model/PaneStatusProperties.java | 6 +- .../hudson/model/ParameterDefinition.java | 58 ++++- .../java/hudson/model/ParameterValue.java | 6 +- .../model/ParametersDefinitionProperty.java | 37 +-- .../model/PasswordParameterDefinition.java | 4 +- core/src/main/java/hudson/model/Project.java | 36 ++- .../src/main/java/hudson/model/ProxyView.java | 37 ++- core/src/main/java/hudson/model/Queue.java | 8 +- core/src/main/java/hudson/model/RSS.java | 57 ++++- .../model/ReconfigurableDescribable.java | 31 ++- core/src/main/java/hudson/model/Run.java | 93 +++++++- .../hudson/model/RunParameterDefinition.java | 6 +- .../model/SimpleParameterDefinition.java | 4 +- core/src/main/java/hudson/model/Slave.java | 14 +- .../java/hudson/model/StockStatusIcon.java | 4 +- .../model/StringParameterDefinition.java | 4 +- .../main/java/hudson/model/TaskAction.java | 14 +- .../hudson/model/TextParameterDefinition.java | 4 +- .../hudson/model/TopLevelItemDescriptor.java | 2 +- .../main/java/hudson/model/UpdateCenter.java | 40 +++- .../java/hudson/model/UsageStatistics.java | 6 +- core/src/main/java/hudson/model/User.java | 20 +- .../main/java/hudson/model/UserProperty.java | 16 ++ core/src/main/java/hudson/model/View.java | 147 ++++++++++-- .../java/hudson/model/ViewDescriptor.java | 6 +- core/src/main/java/hudson/model/ViewJob.java | 30 ++- .../main/java/hudson/model/ViewProperty.java | 16 ++ .../java/hudson/model/labels/LabelAtom.java | 10 +- .../UserPropertyCategoryAccountAction.java | 8 +- .../UserPropertyCategoryAction.java | 8 +- .../java/hudson/scm/AbstractScmTagAction.java | 34 ++- .../java/hudson/scm/RepositoryBrowsers.java | 17 +- core/src/main/java/hudson/scm/SCMS.java | 22 +- core/src/main/java/hudson/search/Search.java | 59 ++++- .../hudson/search/UserSearchProperty.java | 4 +- .../security/AccessDeniedException2.java | 3 +- .../security/AccessDeniedException3.java | 15 +- .../security/AccessDeniedHandlerImpl.java | 8 +- .../AuthenticationProcessingFilter2.java | 10 +- .../security/AuthorizationStrategy.java | 4 +- .../security/BasicAuthenticationFilter.java | 28 +-- .../hudson/security/ChainedServletFilter.java | 19 +- .../security/ContainerAuthentication.java | 4 +- .../security/FederatedLoginService.java | 8 +- .../security/GlobalSecurityConfiguration.java | 12 +- .../HttpSessionContextIntegrationFilter2.java | 12 +- .../HudsonAuthenticationEntryPoint.java | 8 +- .../java/hudson/security/HudsonFilter.java | 19 +- .../security/HudsonPrivateSecurityRealm.java | 63 ++--- .../hudson/security/LegacySecurityRealm.java | 4 +- .../main/java/hudson/security/NoopFilter.java | 15 +- .../security/RememberMeServicesProxy.java | 4 +- .../java/hudson/security/SecurityRealm.java | 106 +++++++-- .../TokenBasedRememberMeServices2.java | 4 +- .../UnwrapSecurityExceptionFilter.java | 14 +- .../hudson/security/csrf/CrumbExclusion.java | 65 +++++- .../hudson/security/csrf/CrumbFilter.java | 20 +- .../hudson/security/csrf/CrumbIssuer.java | 109 ++++++++- .../security/csrf/DefaultCrumbIssuer.java | 9 +- .../csrf/GlobalCrumbIssuerConfiguration.java | 4 +- core/src/main/java/hudson/slaves/Cloud.java | 26 ++- .../EnvironmentVariablesNodeProperty.java | 2 +- .../java/hudson/slaves/NodeDescriptor.java | 8 +- .../main/java/hudson/slaves/NodeProperty.java | 19 ++ .../java/hudson/slaves/SlaveComputer.java | 16 +- .../java/hudson/tasks/ArtifactArchiver.java | 4 +- .../main/java/hudson/tasks/BuildTrigger.java | 4 +- .../main/java/hudson/tasks/Fingerprinter.java | 4 +- core/src/main/java/hudson/tasks/Maven.java | 4 +- core/src/main/java/hudson/tasks/Shell.java | 4 +- .../java/hudson/tools/ToolDescriptor.java | 21 +- .../main/java/hudson/triggers/SCMTrigger.java | 8 +- .../main/java/hudson/util/BootFailure.java | 2 +- .../hudson/util/CharacterEncodingFilter.java | 16 +- .../main/java/hudson/util/ComboBoxModel.java | 8 +- .../java/hudson/util/DescribableList.java | 23 +- .../main/java/hudson/util/DescriptorList.java | 2 +- .../main/java/hudson/util/ErrorObject.java | 10 +- core/src/main/java/hudson/util/FormApply.java | 21 +- .../java/hudson/util/FormFillFailure.java | 12 +- .../main/java/hudson/util/FormValidation.java | 18 +- core/src/main/java/hudson/util/Graph.java | 46 +++- .../main/java/hudson/util/HttpResponses.java | 8 +- .../java/hudson/util/HudsonIsLoading.java | 12 +- .../java/hudson/util/HudsonIsRestarting.java | 12 +- .../main/java/hudson/util/ListBoxModel.java | 37 ++- .../hudson/util/MultipartFormDataParser.java | 50 +++- .../java/hudson/util/PluginServletFilter.java | 69 ++++-- .../java/hudson/util/QueryParameterMap.java | 10 +- .../java/hudson/util/RemotingDiagnostics.java | 6 +- .../views/GlobalDefaultViewConfiguration.java | 4 +- .../java/hudson/views/ListViewColumn.java | 3 +- .../main/java/hudson/views/MyViewsTabBar.java | 4 +- .../main/java/hudson/views/ViewsTabBar.java | 4 +- .../java/hudson/widgets/HistoryWidget.java | 12 +- .../hudson/widgets/RenderOnDemandClosure.java | 12 +- .../java/jenkins/ErrorAttributeFilter.java | 16 +- core/src/main/java/jenkins/I18n.java | 4 +- .../jenkins/JenkinsHttpSessionListener.java | 4 +- .../main/java/jenkins/agents/CloudSet.java | 29 ++- .../java/jenkins/agents/WebSocketAgents.java | 6 +- .../AppearanceGlobalConfiguration.java | 12 +- .../jenkins/console/ConsoleUrlProvider.java | 4 +- ...ConsoleUrlProviderGlobalConfiguration.java | 4 +- .../ControllerExecutorsAgents.java | 6 +- .../ControllerExecutorsNoAgents.java | 6 +- .../diagnostics/SecurityIsOffMonitor.java | 6 +- .../diagnostics/URICheckEncodingMonitor.java | 4 +- .../GlobalFingerprintConfiguration.java | 4 +- .../java/jenkins/install/SetupWizard.java | 31 +-- .../management/AdministrativeMonitorsApi.java | 10 +- .../AdministrativeMonitorsConfiguration.java | 4 +- .../AdministrativeMonitorsDecorator.java | 4 +- .../java/jenkins/management/ShutdownLink.java | 10 +- .../model/ArtifactManagerConfiguration.java | 4 +- .../main/java/jenkins/model/AssetManager.java | 10 +- .../jenkins/model/BuiltInNodeMigration.java | 8 +- .../GlobalBuildDiscarderConfiguration.java | 4 +- .../jenkins/model/GlobalConfiguration.java | 23 +- .../GlobalNodePropertiesConfiguration.java | 4 +- .../model/GlobalPluginConfiguration.java | 6 +- ...balProjectNamingStrategyConfiguration.java | 4 +- .../model/GlobalQuietPeriodConfiguration.java | 4 +- .../GlobalSCMRetryCountConfiguration.java | 4 +- core/src/main/java/jenkins/model/Jenkins.java | 220 ++++++++++++------ .../model/JenkinsLocationConfiguration.java | 6 +- .../model/MasterBuildConfiguration.java | 4 +- .../model/ModelObjectWithChildren.java | 27 ++- .../model/ModelObjectWithContextMenu.java | 53 +++-- .../jenkins/model/OptionalJobProperty.java | 16 +- .../jenkins/model/ParameterizedJobMixIn.java | 76 ++++-- .../jenkins/model/ProjectNamingStrategy.java | 2 +- .../UserExperimentalFlagsProperty.java | 4 +- .../model/item_category/Categories.java | 8 +- .../jenkins/mvn/GlobalSettingsProvider.java | 21 +- .../java/jenkins/mvn/SettingsProvider.java | 18 +- .../AcegiSecurityExceptionFilter.java | 14 +- .../jenkins/security/ApiCrumbExclusion.java | 8 +- .../java/jenkins/security/ApiTokenFilter.java | 2 +- .../jenkins/security/ApiTokenProperty.java | 4 +- .../AuthenticationSuccessHandler.java | 4 +- .../BasicHeaderApiTokenAuthenticator.java | 6 +- .../security/BasicHeaderAuthenticator.java | 46 +++- .../security/BasicHeaderProcessor.java | 19 +- .../BasicHeaderRealPasswordAuthenticator.java | 6 +- .../LastGrantedAuthoritiesProperty.java | 4 +- .../NonSerializableSecurityContext.java | 2 +- .../QueueItemAuthenticatorConfiguration.java | 4 +- .../security/ResourceDomainConfiguration.java | 6 +- .../security/ResourceDomainFilter.java | 6 +- .../security/ResourceDomainRootAction.java | 16 +- .../jenkins/security/SecureRequester.java | 33 ++- .../security/SuspiciousRequestFilter.java | 18 +- .../UpdateSiteWarningsConfiguration.java | 4 +- .../seed/UserSeedSecurityListener.java | 6 +- .../stapler/StaplerDispatchValidator.java | 18 +- .../StaplerFilteredActionListener.java | 12 +- .../StaticRoutingDecisionProvider.java | 2 +- .../security/stapler/WebMethodConstants.java | 12 +- .../slaves/EncryptedSlaveAgentJnlpFile.java | 18 +- .../EnvVarsFilterGlobalConfiguration.java | 4 +- .../telemetry/impl/StaplerDispatches.java | 4 +- .../jenkins/telemetry/impl/UserLanguages.java | 6 +- .../tools/GlobalToolConfiguration.java | 12 +- .../jenkins/util/FullDuplexHttpService.java | 16 +- .../java/jenkins/util/HttpServletFilter.java | 19 +- .../jenkins/util/HttpSessionListener.java | 38 ++- .../jenkins/util/JSONSignatureValidator.java | 4 +- .../main/java/jenkins/util/JenkinsJVM.java | 2 +- .../jenkins/util/ProgressiveRendering.java | 8 +- .../java/jenkins/util/ScriptListener.java | 4 +- .../java/jenkins/util/SystemProperties.java | 6 +- .../jenkins/util/groovy/GroovyHookScript.java | 13 +- .../java/jenkins/websocket/WebSockets.java | 18 +- .../ui/rememberme/RememberMeServices.java | 4 +- .../RememberMeServicesSpringImpl.java | 4 +- .../jenkins/model/Jenkins/_404.jelly | 6 +- .../jenkins/model/Jenkins/_404_simple.jelly | 4 +- .../jenkins/model/Jenkins/oops.jelly | 2 +- core/src/test/java/hudson/FunctionsTest.java | 36 +-- .../hudson/GetLocaleStaticHelpUrlTest.java | 24 +- .../src/test/java/hudson/model/QueueTest.java | 8 +- core/src/test/java/hudson/model/ViewTest.java | 8 +- .../java/hudson/util/FormValidationTest.java | 5 +- .../jenkins/model/JenkinsGetRootUrlTest.java | 28 +-- .../stapler/StaplerSignaturesTest.java | 10 +- pom.xml | 5 +- .../java/hudson/CustomPluginManagerTest.java | 2 +- .../PluginManagerCheckUpdateCenterTest.java | 12 +- .../test/java/hudson/PluginManagerTest.java | 12 +- test/src/test/java/hudson/PluginTest.java | 2 +- .../java/hudson/cli/BuildCommandTest.java | 4 +- test/src/test/java/hudson/cli/CLITest.java | 22 +- .../hudson/diagnosis/OldDataMonitorTest.java | 4 +- test/src/test/java/hudson/model/ApiTest.java | 2 +- .../model/ComputerConfigDotXmlTest.java | 16 +- .../java/hudson/model/DescriptorTest.java | 8 +- .../model/DirectoryBrowserSupportTest.java | 6 +- .../java/hudson/model/JobPropertyTest.java | 6 +- .../test/java/hudson/model/ListViewTest.java | 12 +- .../ParametersDefinitionPropertyTest.java | 8 +- .../test/java/hudson/model/ProjectTest.java | 3 +- .../src/test/java/hudson/model/QueueTest.java | 2 +- .../hudson/model/UpdateCenterCustomTest.java | 6 +- .../hudson/model/UsageStatisticsTest.java | 2 +- .../java/hudson/model/ViewDescriptorTest.java | 4 +- .../java/hudson/model/ViewPropertyTest.java | 4 +- test/src/test/java/hudson/model/ViewTest.java | 10 +- .../pages/SystemConfigurationTestCase.java | 4 +- .../test/java/hudson/security/LoginTest.java | 2 +- .../hudson/security/SecurityRealmTest.java | 4 +- .../TokenBasedRememberMeServices2Test.java | 2 +- .../test/java/hudson/security/WhoAmITest.java | 6 +- .../security/csrf/CrumbExclusionTest.java | 8 +- .../security/csrf/DefaultCrumbIssuerTest.java | 2 +- .../test/java/hudson/slaves/CloudTest.java | 4 +- .../java/hudson/slaves/NodePropertyTest.java | 4 +- .../java/hudson/util/BootFailureTest.java | 12 +- .../java/hudson/util/HudsonIsLoadingTest.java | 4 +- .../hudson/util/HudsonIsRestartingTest.java | 4 +- .../util/RobustReflectionConverterTest.java | 6 +- .../hudson/util/XStream2Security383Test.java | 12 +- .../GlobalDefaultViewConfigurationTest.java | 4 +- .../URICheckEncodingMonitorTest.java | 2 +- .../java/jenkins/install/InstallUtilTest.java | 2 +- .../java/jenkins/model/ContextMenuTest.java | 2 +- .../GlobalSCMRetryCountConfigurationTest.java | 6 +- .../model/ParameterizedJobMixInTest.java | 3 +- .../security/ApiTokenPropertyTest.java | 2 +- ...etJsonInErrorMessageSanitizerHtmlTest.java | 10 +- .../jenkins/security/Security3030Test.java | 54 ++--- .../jenkins/security/Security3135Test.java | 6 +- .../security/SuspiciousRequestFilterTest.java | 2 +- .../seed/UserSeedSecurityListenerTest.java | 4 +- .../CustomRoutingDecisionProviderTest.java | 4 +- .../security/stapler/DoActionFilterTest.java | 36 +-- .../jenkins/security/stapler/DynamicTest.java | 4 +- .../security/stapler/PreventRoutingTest.java | 4 +- .../security/stapler/Security400Test.java | 2 +- .../security/stapler/StaplerAbstractTest.java | 6 +- .../stapler/StaplerDispatchValidatorTest.java | 2 +- .../stapler/StaplerRoutableActionTest.java | 4 +- .../StaticRoutingDecisionProviderTest.java | 18 +- .../security/stapler/TypedFilterTest.java | 10 +- .../java/jenkins/telemetry/TelemetryTest.java | 14 +- .../util/FullDuplexHttpServiceTest.java | 12 +- .../jenkins/util/SystemPropertiesTest.java | 10 +- .../java/lib/form/AdvancedButtonTest.java | 4 +- .../test/java/lib/form/BooleanRadioTest.java | 4 +- .../test/java/lib/form/DropdownListTest.java | 4 +- test/src/test/java/lib/form/EnumSetTest.java | 4 +- test/src/test/java/lib/form/EnumTest.java | 4 +- .../java/lib/form/ExpandableTextboxTest.java | 4 +- test/src/test/java/lib/form/NameRefTest.java | 4 +- test/src/test/java/lib/form/PasswordTest.java | 4 +- .../test/java/lib/form/RepeatableTest.java | 4 +- test/src/test/java/lib/form/RowSetTest.java | 4 +- .../java/lib/form/RowVisibilityGroupTest.java | 4 +- .../java/lib/form/ValidateButtonTest.java | 6 +- .../java/lib/layout/ConfirmationLinkTest.java | 4 +- .../test/java/lib/layout/StopButtonTest.java | 4 +- test/src/test/java/lib/layout/TaskTest.java | 8 +- .../stapler/MockStaplerRequestBuilder.java | 6 +- .../org/kohsuke/stapler/Security1097Test.java | 4 +- war/pom.xml | 24 +- websocket/jetty10/pom.xml | 85 ------- .../jenkins/websocket/Jetty10Provider.java | 179 -------------- .../{jetty12-ee8 => jetty12-ee9}/pom.xml | 6 +- .../websocket/Jetty12EE9Provider.java} | 24 +- websocket/spi/pom.xml | 2 +- .../main/java/jenkins/websocket/Provider.java | 4 +- 341 files changed, 3991 insertions(+), 1872 deletions(-) delete mode 100644 websocket/jetty10/pom.xml delete mode 100644 websocket/jetty10/src/main/java/jenkins/websocket/Jetty10Provider.java rename websocket/{jetty12-ee8 => jetty12-ee9}/pom.xml (95%) rename websocket/{jetty12-ee8/src/main/java/jenkins/websocket/Jetty12EE8Provider.java => jetty12-ee9/src/main/java/jenkins/websocket/Jetty12EE9Provider.java} (90%) diff --git a/.github/renovate.json b/.github/renovate.json index aab994ad8187..1f023c99f4f5 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -91,17 +91,6 @@ "org.jfree:jfreechart" ] }, - { - "description": "Starting with 6.x, Spring requires Java 17 at a minimum.", - "matchManagers": [ - "maven" - ], - "allowedVersions": "<6.0.0", - "matchPackageNames": [ - "org.springframework:spring-framework-bom", - "org.springframework.security:spring-security-bom" - ] - }, { "description": "Starting with 7.x, Guice switches from javax.* to jakarta.* bindings. See https://github.com/google/guice/wiki/Guice700", "matchManagers": [ diff --git a/.idea/encodings.xml b/.idea/encodings.xml index ca018ebc3ab9..68f564fff79d 100644 --- a/.idea/encodings.xml +++ b/.idea/encodings.xml @@ -29,12 +29,9 @@ - - - - - - + + + diff --git a/bom/pom.xml b/bom/pom.xml index adf65f6cf439..cd55b58d52c9 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -39,7 +39,7 @@ THE SOFTWARE. 2.0.0-M2 - 1896.v8170998149d0 + 1903.v994a_db_314d58 2.4.21 @@ -62,15 +62,15 @@ THE SOFTWARE. org.springframework spring-framework-bom - 5.3.39 + 6.1.12 pom import - + org.springframework.security spring-security-bom - 5.8.14 + 6.3.3 pom import @@ -154,12 +154,12 @@ THE SOFTWARE. jakarta.servlet jakarta.servlet-api - 4.0.4 + 5.0.0 jakarta.servlet.jsp.jstl jakarta.servlet.jsp.jstl-api - 1.2.7 + 2.0.0 jaxen @@ -295,7 +295,7 @@ THE SOFTWARE. org.jvnet.hudson commons-jelly-tags-define - 1.1-jenkins-20240510 + 1.1-jenkins-20240903 org.jvnet.localizer diff --git a/core/pom.xml b/core/pom.xml index 8e30ae211ed7..9bff5e5ad0b2 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -217,6 +217,20 @@ THE SOFTWARE. jakarta.servlet.jsp.jstl jakarta.servlet.jsp.jstl-api + + + jakarta.el + jakarta.el-api + + + jakarta.servlet + jakarta.servlet-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + jaxen @@ -288,7 +302,7 @@ THE SOFTWARE. org.apache.commons - commons-fileupload2-javax + commons-fileupload2-jakarta-servlet5 org.codehaus.groovy @@ -427,6 +441,10 @@ THE SOFTWARE. org.springframework.security spring-security-web + + io.micrometer + micrometer-observation + org.springframework spring-jcl diff --git a/core/src/main/java/hudson/DescriptorExtensionList.java b/core/src/main/java/hudson/DescriptorExtensionList.java index c92b6ae206c0..c658c83fe1fc 100644 --- a/core/src/main/java/hudson/DescriptorExtensionList.java +++ b/core/src/main/java/hudson/DescriptorExtensionList.java @@ -145,7 +145,7 @@ public T newInstanceFromRadioList(JSONObject config) throws FormException { if (config.isNullObject()) return null; // none was selected int idx = config.getInt("value"); - return get(idx).newInstance(Stapler.getCurrentRequest(), config); + return get(idx).newInstance(Stapler.getCurrentRequest2(), config); } /** diff --git a/core/src/main/java/hudson/ExpressionFactory2.java b/core/src/main/java/hudson/ExpressionFactory2.java index 7fcec22e7604..1bc99160439b 100644 --- a/core/src/main/java/hudson/ExpressionFactory2.java +++ b/core/src/main/java/hudson/ExpressionFactory2.java @@ -12,7 +12,7 @@ import org.apache.commons.jelly.expression.ExpressionSupport; import org.apache.commons.jexl.JexlContext; import org.kohsuke.stapler.Stapler; -import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.springframework.security.access.AccessDeniedException; /** @@ -78,7 +78,7 @@ public Object evaluate(JellyContext context) { // let the security exception pass through throw e; } catch (Exception e) { - StaplerRequest currentRequest = Stapler.getCurrentRequest(); + StaplerRequest2 currentRequest = Stapler.getCurrentRequest2(); LOGGER.log(Level.WARNING, "Caught exception evaluating: " + expression + " in " + (currentRequest != null ? currentRequest.getOriginalRequestURI() : "?") + ". Reason: " + e, e); return null; } finally { diff --git a/core/src/main/java/hudson/FilePath.java b/core/src/main/java/hudson/FilePath.java index 06773dd9a9ee..f5288b26d9d1 100644 --- a/core/src/main/java/hudson/FilePath.java +++ b/core/src/main/java/hudson/FilePath.java @@ -3510,7 +3510,7 @@ public FormValidation validateRelativePath(String value, boolean errorIfNotExist } private static void checkPermissionForValidate() { - AccessControlled subject = Stapler.getCurrentRequest().findAncestorObject(AbstractProject.class); + AccessControlled subject = Stapler.getCurrentRequest2().findAncestorObject(AbstractProject.class); if (subject == null) Jenkins.get().checkPermission(Jenkins.MANAGE); else diff --git a/core/src/main/java/hudson/Functions.java b/core/src/main/java/hudson/Functions.java index cd25f9bc9871..d2b62e99a2f2 100644 --- a/core/src/main/java/hudson/Functions.java +++ b/core/src/main/java/hudson/Functions.java @@ -95,6 +95,14 @@ import hudson.views.MyViewsTabBar; import hudson.views.ViewsTabBar; import hudson.widgets.RenderOnDemandClosure; +import io.jenkins.servlet.ServletExceptionWrapper; +import io.jenkins.servlet.http.CookieWrapper; +import io.jenkins.servlet.http.HttpServletRequestWrapper; +import io.jenkins.servlet.http.HttpServletResponseWrapper; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.Cookie; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; import java.io.PrintStream; @@ -148,10 +156,6 @@ import java.util.logging.SimpleFormatter; import java.util.regex.Pattern; import java.util.stream.Collectors; -import javax.servlet.ServletException; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import jenkins.console.ConsoleUrlProvider; import jenkins.model.GlobalConfiguration; import jenkins.model.GlobalConfigurationCategory; @@ -176,7 +180,9 @@ import org.kohsuke.stapler.RawHtmlArgument; import org.kohsuke.stapler.Stapler; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerResponse2; import org.springframework.security.access.AccessDeniedException; /** @@ -276,8 +282,8 @@ public static boolean isExtensionsAvailable() { } public static void initPageVariables(JellyContext context) { - StaplerRequest currentRequest = Stapler.getCurrentRequest(); - currentRequest.getWebApp().getDispatchValidator().allowDispatch(currentRequest, Stapler.getCurrentResponse()); + StaplerRequest2 currentRequest = Stapler.getCurrentRequest2(); + currentRequest.getWebApp().getDispatchValidator().allowDispatch(currentRequest, Stapler.getCurrentResponse2()); String rootURL = currentRequest.getContextPath(); Functions h = new Functions(); @@ -372,7 +378,10 @@ public static String addSuffix(int n, String singular, String plural) { return buf.toString(); } - public static RunUrl decompose(StaplerRequest req) { + /** + * @since TODO + */ + public static RunUrl decompose(StaplerRequest2 req) { List ancestors = req.getAncestors(); // find the first and last Run instances @@ -405,12 +414,20 @@ public static RunUrl decompose(StaplerRequest req) { return new RunUrl((Run) f.getObject(), head, base, rest); } + /** + * @deprecated use {@link #decompose(StaplerRequest2)} + */ + @Deprecated + public static RunUrl decompose(StaplerRequest req) { + return decompose(StaplerRequest.toStaplerRequest2(req)); + } + /** * If we know the user's screen resolution, return it. Otherwise null. * @since 1.213 */ public static Area getScreenResolution() { - Cookie res = Functions.getCookie(Stapler.getCurrentRequest(), "screenResolution"); + Cookie res = Functions.getCookie(Stapler.getCurrentRequest2(), "screenResolution"); if (res != null) return Area.parse(res.getValue()); return null; @@ -592,6 +609,9 @@ public static Iterable reverse(Collection collection) { return list; } + /** + * @since TODO + */ public static Cookie getCookie(HttpServletRequest req, String name) { Cookie[] cookies = req.getCookies(); if (cookies != null) { @@ -604,12 +624,31 @@ public static Cookie getCookie(HttpServletRequest req, String name) { return null; } + /** + * @deprecated use {@link #getCookie(HttpServletRequest, String)} + */ + @Deprecated + public static javax.servlet.http.Cookie getCookie(javax.servlet.http.HttpServletRequest req, String name) { + return CookieWrapper.fromJakartaServletHttpCookie(getCookie(HttpServletRequestWrapper.toJakartaHttpServletRequest(req), name)); + } + + /** + * @since TODO + */ public static String getCookie(HttpServletRequest req, String name, String defaultValue) { Cookie c = getCookie(req, name); if (c == null || c.getValue() == null) return defaultValue; return c.getValue(); } + /** + * @deprecated use {@link #getCookie(HttpServletRequest, String, String)} + */ + @Deprecated + public static String getCookie(javax.servlet.http.HttpServletRequest req, String name, String defaultValue) { + return getCookie(HttpServletRequestWrapper.toJakartaHttpServletRequest(req), name, defaultValue); + } + private static final Pattern ICON_SIZE = Pattern.compile("\\d+x\\d+"); @Restricted(NoExternalUse.class) @@ -713,8 +752,10 @@ public static long getHourLocalTimezone() { * Finds the given object in the ancestor list and returns its URL. * This is used to determine the "current" URL assigned to the given object, * so that one can compute relative URLs from it. + * + * @since TODO */ - public static String getNearestAncestorUrl(StaplerRequest req, Object it) { + public static String getNearestAncestorUrl(StaplerRequest2 req, Object it) { List list = req.getAncestors(); for (int i = list.size() - 1; i >= 0; i--) { Ancestor anc = (Ancestor) list.get(i); @@ -724,11 +765,19 @@ public static String getNearestAncestorUrl(StaplerRequest req, Object it) { return null; } + /** + * @deprecated use {@link #getNearestAncestorUrl(StaplerRequest2, Object)} + */ + @Deprecated + public static String getNearestAncestorUrl(StaplerRequest req, Object it) { + return getNearestAncestorUrl(StaplerRequest.toStaplerRequest2(req), it); + } + /** * Finds the inner-most {@link SearchableModelObject} in scope. */ public static String getSearchURL() { - List list = Stapler.getCurrentRequest().getAncestors(); + List list = Stapler.getCurrentRequest2().getAncestors(); for (int i = list.size() - 1; i >= 0; i--) { Ancestor anc = (Ancestor) list.get(i); if (anc.getObject() instanceof SearchableModelObject) @@ -888,7 +937,7 @@ public static void checkPermission(Object object, Permission permission) throws if (object instanceof AccessControlled) checkPermission((AccessControlled) object, permission); else { - List ancs = Stapler.getCurrentRequest().getAncestors(); + List ancs = Stapler.getCurrentRequest2().getAncestors(); for (Ancestor anc : Iterators.reverse(ancs)) { Object o = anc.getObject(); if (o instanceof AccessControlled) { @@ -920,7 +969,7 @@ public static boolean hasPermission(Object object, Permission permission) throws if (object instanceof AccessControlled) return ((AccessControlled) object).hasPermission(permission); else { - List ancs = Stapler.getCurrentRequest().getAncestors(); + List ancs = Stapler.getCurrentRequest2().getAncestors(); for (Ancestor anc : Iterators.reverse(ancs)) { Object o = anc.getObject(); if (o instanceof AccessControlled) { @@ -931,10 +980,13 @@ public static boolean hasPermission(Object object, Permission permission) throws } } - public static void adminCheck(StaplerRequest req, StaplerResponse rsp, Object required, Permission permission) throws IOException, ServletException { + /** + * @since TODO + */ + public static void adminCheck(StaplerRequest2 req, StaplerResponse2 rsp, Object required, Permission permission) throws IOException, ServletException { // this is legacy --- all views should be eventually converted to // the permission based model. - if (required != null && !Hudson.adminCheck(req, rsp)) { + if (required != null && !Hudson.adminCheck(StaplerRequest.fromStaplerRequest2(req), StaplerResponse.fromStaplerResponse2(rsp))) { // check failed. commit the FORBIDDEN response, then abort. rsp.setStatus(HttpServletResponse.SC_FORBIDDEN); rsp.getOutputStream().close(); @@ -946,10 +998,24 @@ public static void adminCheck(StaplerRequest req, StaplerResponse rsp, Object re checkPermission(permission); } + /** + * @deprecated use {@link #adminCheck(StaplerRequest2, StaplerResponse2, Object, Permission)} + */ + @Deprecated + public static void adminCheck(StaplerRequest req, StaplerResponse rsp, Object required, Permission permission) throws IOException, javax.servlet.ServletException { + try { + adminCheck(StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp), required, permission); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } + } + /** * Infers the hudson installation URL from the given request. + * + * @since TODO */ - public static String inferHudsonURL(StaplerRequest req) { + public static String inferHudsonURL(StaplerRequest2 req) { String rootUrl = Jenkins.get().getRootUrl(); if (rootUrl != null) // prefer the one explicitly configured, to work with load-balancer, frontend, etc. @@ -963,6 +1029,14 @@ public static String inferHudsonURL(StaplerRequest req) { return buf.toString(); } + /** + * @deprecated use {@link #inferHudsonURL(StaplerRequest2)} + */ + @Deprecated + public static String inferHudsonURL(StaplerRequest req) { + return inferHudsonURL(StaplerRequest.toStaplerRequest2(req)); + } + /** * Returns the link to be displayed in the footer of the UI. */ @@ -1226,7 +1300,7 @@ public static boolean hasAnyPermission(Object object, Permission[] permissions) if (object instanceof AccessControlled) return hasAnyPermission((AccessControlled) object, permissions); else { - AccessControlled ac = Stapler.getCurrentRequest().findAncestorObject(AccessControlled.class); + AccessControlled ac = Stapler.getCurrentRequest2().findAncestorObject(AccessControlled.class); if (ac != null) { return hasAnyPermission(ac, permissions); } @@ -1264,7 +1338,7 @@ public static void checkAnyPermission(Object object, Permission[] permissions) t if (object instanceof AccessControlled) checkAnyPermission((AccessControlled) object, permissions); else { - List ancs = Stapler.getCurrentRequest().getAncestors(); + List ancs = Stapler.getCurrentRequest2().getAncestors(); for (Ancestor anc : Iterators.reverse(ancs)) { Object o = anc.getObject(); if (o instanceof AccessControlled) { @@ -1335,7 +1409,7 @@ public static String getRelativeLinkTo(Item p) { Map ancestors = new HashMap<>(); View view = null; - StaplerRequest request = Stapler.getCurrentRequest(); + StaplerRequest2 request = Stapler.getCurrentRequest2(); for (Ancestor a : request.getAncestors()) { ancestors.put(a.getObject(), a.getRelativePath()); if (a.getObject() instanceof View) @@ -1681,7 +1755,7 @@ public static String getViewResource(Object it, String path) { if (it instanceof Descriptor) clazz = ((Descriptor) it).clazz; - String buf = Stapler.getCurrentRequest().getContextPath() + Jenkins.VIEW_RESOURCE_PATH + '/' + + String buf = Stapler.getCurrentRequest2().getContextPath() + Jenkins.VIEW_RESOURCE_PATH + '/' + clazz.getName().replace('.', '/').replace('$', '/') + '/' + path; return buf; @@ -1689,7 +1763,7 @@ public static String getViewResource(Object it, String path) { public static boolean hasView(Object it, String path) throws IOException { if (it == null) return false; - return Stapler.getCurrentRequest().getView(it, path) != null; + return Stapler.getCurrentRequest2().getView(it, path) != null; } /** @@ -1900,10 +1974,10 @@ public static String joinPath(String... components) { return null; } if (urlName.startsWith("/")) - return joinPath(Stapler.getCurrentRequest().getContextPath(), urlName); + return joinPath(Stapler.getCurrentRequest2().getContextPath(), urlName); else // relative URL name - return joinPath(Stapler.getCurrentRequest().getContextPath() + '/' + itUrl, urlName); + return joinPath(Stapler.getCurrentRequest2().getContextPath() + '/' + itUrl, urlName); } /** @@ -1966,7 +2040,7 @@ public String getServerName() { } catch (MalformedURLException e) { // fall back to HTTP request } - return Stapler.getCurrentRequest().getServerName(); + return Stapler.getCurrentRequest2().getServerName(); } /** @@ -2004,7 +2078,7 @@ public void calcCheckUrl(Map attributes, String userDefined, Object descriptor, * Used in {@code task.jelly} to decide if the page should be highlighted. */ public boolean hyperlinkMatchesCurrentPage(String href) { - String url = Stapler.getCurrentRequest().getRequestURL().toString(); + String url = Stapler.getCurrentRequest2().getRequestURL().toString(); if (href == null || href.length() <= 1) return ".".equals(href) && url.endsWith("/"); url = URLDecoder.decode(url, StandardCharsets.UTF_8); href = URLDecoder.decode(href, StandardCharsets.UTF_8); @@ -2063,12 +2137,23 @@ public static List> getCrumbIssuerDescriptors() { return CrumbIssuer.all(); } - public static String getCrumb(StaplerRequest req) { + /** + * @since TODO + */ + public static String getCrumb(StaplerRequest2 req) { Jenkins h = Jenkins.getInstanceOrNull(); CrumbIssuer issuer = h != null ? h.getCrumbIssuer() : null; return issuer != null ? issuer.getCrumb(req) : ""; } + /** + * @deprecated use {@link #getCrumb(StaplerRequest2)} + */ + @Deprecated + public static String getCrumb(StaplerRequest req) { + return getCrumb(req != null ? StaplerRequest.toStaplerRequest2(req) : null); + } + public static String getCrumbRequestField() { Jenkins h = Jenkins.getInstanceOrNull(); CrumbIssuer issuer = h != null ? h.getCrumbIssuer() : null; @@ -2081,7 +2166,7 @@ public static Date getCurrentTime() { public static Locale getCurrentLocale() { Locale locale = null; - StaplerRequest req = Stapler.getCurrentRequest(); + StaplerRequest2 req = Stapler.getCurrentRequest2(); if (req != null) locale = req.getLocale(); if (locale == null) @@ -2094,7 +2179,7 @@ public static Locale getCurrentLocale() { * from {@link ConsoleAnnotatorFactory}s and {@link ConsoleAnnotationDescriptor}s. */ public static String generateConsoleAnnotationScriptAndStylesheet() { - String cp = Stapler.getCurrentRequest().getContextPath() + Jenkins.RESOURCE_PATH; + String cp = Stapler.getCurrentRequest2().getContextPath() + Jenkins.RESOURCE_PATH; StringBuilder buf = new StringBuilder(); for (ConsoleAnnotatorFactory f : ConsoleAnnotatorFactory.all()) { String path = cp + "/extensionList/" + ConsoleAnnotatorFactory.class.getName() + "/" + f.getClass().getName(); @@ -2147,7 +2232,7 @@ public String getPasswordValue(Object o) { } /* Mask from Extended Read */ - StaplerRequest req = Stapler.getCurrentRequest(); + StaplerRequest2 req = Stapler.getCurrentRequest2(); if (o instanceof Secret || Secret.BLANK_NONSECRET_PASSWORD_FIELDS_WITHOUT_ITEM_CONFIGURE) { if (req != null) { Item item = req.findAncestorObject(Item.class); @@ -2243,15 +2328,17 @@ public static boolean isWipeOutPermissionEnabled() { @Deprecated public static String createRenderOnDemandProxy(JellyContext context, String attributesToCapture) { - return Stapler.getCurrentRequest().createJavaScriptProxy(new RenderOnDemandClosure(context, attributesToCapture)); + return Stapler.getCurrentRequest2().createJavaScriptProxy(new RenderOnDemandClosure(context, attributesToCapture)); } /** * Called from renderOnDemand.jelly to generate the parameters for the proxy object generation. + * + * @since TODO */ @Restricted(NoExternalUse.class) - public static StaplerRequest.RenderOnDemandParameters createRenderOnDemandProxyParameters(JellyContext context, String attributesToCapture) { - return Stapler.getCurrentRequest().createJavaScriptProxyParameters(new RenderOnDemandClosure(context, attributesToCapture)); + public static StaplerRequest2.RenderOnDemandParameters createRenderOnDemandProxyParameters(JellyContext context, String attributesToCapture) { + return Stapler.getCurrentRequest2().createJavaScriptProxyParameters(new RenderOnDemandClosure(context, attributesToCapture)); } public static String getCurrentDescriptorByNameUrl() { @@ -2260,18 +2347,18 @@ public static String getCurrentDescriptorByNameUrl() { public static String setCurrentDescriptorByNameUrl(String value) { String o = getCurrentDescriptorByNameUrl(); - Stapler.getCurrentRequest().setAttribute("currentDescriptorByNameUrl", value); + Stapler.getCurrentRequest2().setAttribute("currentDescriptorByNameUrl", value); return o; } public static void restoreCurrentDescriptorByNameUrl(String old) { - Stapler.getCurrentRequest().setAttribute("currentDescriptorByNameUrl", old); + Stapler.getCurrentRequest2().setAttribute("currentDescriptorByNameUrl", old); } public static List getRequestHeaders(String name) { List r = new ArrayList<>(); - Enumeration e = Stapler.getCurrentRequest().getHeaders(name); + Enumeration e = Stapler.getCurrentRequest2().getHeaders(name); while (e.hasMoreElements()) { r.add(e.nextElement().toString()); } @@ -2366,6 +2453,7 @@ public static String breakableString(final String plain) { * Advertises the minimum set of HTTP headers that assist programmatic * discovery of Jenkins. */ + @SuppressFBWarnings(value = "UC_USELESS_VOID_METHOD", justification = "TODO needs triage") public static void advertiseHeaders(HttpServletResponse rsp) { Jenkins j = Jenkins.getInstanceOrNull(); if (j != null) { @@ -2375,6 +2463,14 @@ public static void advertiseHeaders(HttpServletResponse rsp) { } } + /** + * @deprecated use {@link #advertiseHeaders(HttpServletResponse)} + */ + @Deprecated + public static void advertiseHeaders(javax.servlet.http.HttpServletResponse rsp) { + advertiseHeaders(HttpServletResponseWrapper.toJakartaHttpServletResponse(rsp)); + } + @Restricted(NoExternalUse.class) // for actions.jelly and ContextMenu.add public static boolean isContextMenuVisible(Action a) { if (a instanceof ModelObjectWithContextMenu.ContextMenuVisibility) { @@ -2449,7 +2545,7 @@ public static String tryGetIconPath(String iconGuess, JellyContext context) { return iconGuess; } - StaplerRequest currentRequest = Stapler.getCurrentRequest(); + StaplerRequest2 currentRequest = Stapler.getCurrentRequest2(); String rootURL = currentRequest.getContextPath(); Icon iconMetadata = tryGetIcon(iconGuess); diff --git a/core/src/main/java/hudson/LocalPluginManager.java b/core/src/main/java/hudson/LocalPluginManager.java index d1fcfd678e3a..7ee8c68b40d3 100644 --- a/core/src/main/java/hudson/LocalPluginManager.java +++ b/core/src/main/java/hudson/LocalPluginManager.java @@ -26,11 +26,12 @@ import edu.umd.cs.findbugs.annotations.CheckForNull; import edu.umd.cs.findbugs.annotations.NonNull; +import io.jenkins.servlet.ServletContextWrapper; +import jakarta.servlet.ServletContext; import java.io.File; import java.util.Collection; import java.util.Collections; import java.util.logging.Logger; -import javax.servlet.ServletContext; import jenkins.model.Jenkins; import jenkins.util.SystemProperties; @@ -49,12 +50,20 @@ public LocalPluginManager(@CheckForNull ServletContext context, @NonNull File ro super(context, new File(rootDir, "plugins")); } + /** + * @deprecated use {@link #LocalPluginManager(ServletContext, File)} + */ + @Deprecated + public LocalPluginManager(@CheckForNull javax.servlet.ServletContext context, @NonNull File rootDir) { + this(context != null ? ServletContextWrapper.toJakartaServletContext(context) : null, rootDir); + } + /** * Creates a new LocalPluginManager * @param jenkins Jenkins instance that will use the plugin manager. */ public LocalPluginManager(@NonNull Jenkins jenkins) { - this(jenkins.servletContext, jenkins.getRootDir()); + this(jenkins.getServletContext(), jenkins.getRootDir()); } /** @@ -62,7 +71,7 @@ public LocalPluginManager(@NonNull Jenkins jenkins) { * @param rootDir Jenkins home directory. */ public LocalPluginManager(@NonNull File rootDir) { - this(null, rootDir); + this((ServletContext) null, rootDir); } @Override diff --git a/core/src/main/java/hudson/Plugin.java b/core/src/main/java/hudson/Plugin.java index c87a2cbe9b3c..1427da9fda8a 100644 --- a/core/src/main/java/hudson/Plugin.java +++ b/core/src/main/java/hudson/Plugin.java @@ -33,25 +33,29 @@ import hudson.model.Saveable; import hudson.model.listeners.ItemListener; import hudson.model.listeners.SaveableListener; +import io.jenkins.servlet.ServletExceptionWrapper; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; import java.net.URL; import java.util.Locale; import java.util.concurrent.TimeUnit; import java.util.logging.Logger; -import javax.servlet.ServletContext; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletResponse; import jenkins.model.GlobalConfiguration; import jenkins.model.Jenkins; import jenkins.model.Loadable; +import jenkins.security.stapler.StaplerNotDispatchable; import jenkins.util.SystemProperties; import net.sf.json.JSONObject; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.StaplerProxy; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerResponse2; /** * Base class of Hudson plugin. @@ -92,11 +96,11 @@ public abstract class Plugin implements Loadable, Saveable, StaplerProxy { /** * You do not need to create custom subtypes: *
      - *
    • {@code config.jelly}, {@link #configure(StaplerRequest, JSONObject)}, {@link #load}, and {@link #save} + *
    • {@code config.jelly}, {@link #configure(StaplerRequest2, JSONObject)}, {@link #load}, and {@link #save} * can be replaced by {@link GlobalConfiguration} *
    • {@link #start} and {@link #postInitialize} can be replaced by {@link Initializer} (or {@link ItemListener#onLoaded}) *
    • {@link #stop} can be replaced by {@link Terminator} - *
    • {@link #setServletContext} can be replaced by {@link Jenkins#servletContext} + *
    • {@link #setServletContext} can be replaced by {@link Jenkins#getServletContext} *
    * Note that every plugin gets a {@link DummyImpl} by default, * which will still route the URL space, serve {@link #getWrapper}, and so on. @@ -189,10 +193,10 @@ public void stop() throws Exception { /** * @since 1.233 - * @deprecated as of 1.305 override {@link #configure(StaplerRequest,JSONObject)} instead + * @deprecated as of 1.305 override {@link #configure(StaplerRequest2,JSONObject)} instead */ @Deprecated - public void configure(JSONObject formData) throws IOException, ServletException, FormException { + public void configure(JSONObject formData) throws IOException, javax.servlet.ServletException, FormException { } /** @@ -220,16 +224,60 @@ public void configure(JSONObject formData) throws IOException, ServletException, *

    * If you are using this method, you'll likely be interested in * using {@link #save()} and {@link #load()}. + * @since TODO + */ + public void configure(StaplerRequest2 req, JSONObject formData) throws IOException, ServletException, FormException { + try { + if (Util.isOverridden(Plugin.class, getClass(), "configure", StaplerRequest.class, JSONObject.class)) { + configure(StaplerRequest.fromStaplerRequest2(req), formData); + } else { + configure(formData); + } + } catch (javax.servlet.ServletException e) { + throw ServletExceptionWrapper.toJakartaServletException(e); + } + } + + /** + * @deprecated use {@link #configure(StaplerRequest2, JSONObject)} * @since 1.305 */ - public void configure(StaplerRequest req, JSONObject formData) throws IOException, ServletException, FormException { + @Deprecated + public void configure(StaplerRequest req, JSONObject formData) throws IOException, javax.servlet.ServletException, FormException { configure(formData); } /** * This method serves static resources in the plugin under {@code hudson/plugin/SHORTNAME}. + * + * @since TODO + */ + public void doDynamic(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { + if (Util.isOverridden(Plugin.class, getClass(), "doDynamic", StaplerRequest.class, StaplerResponse.class)) { + try { + doDynamic(StaplerRequest.fromStaplerRequest2(req), StaplerResponse.fromStaplerResponse2(rsp)); + } catch (javax.servlet.ServletException e) { + throw ServletExceptionWrapper.toJakartaServletException(e); + } + } else { + doDynamicImpl(req, rsp); + } + } + + /** + * @deprecated use {@link #doDynamic(StaplerRequest2, StaplerResponse2)} */ - public void doDynamic(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + @Deprecated + @StaplerNotDispatchable + public void doDynamic(StaplerRequest req, StaplerResponse rsp) throws IOException, javax.servlet.ServletException { + try { + doDynamicImpl(StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp)); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } + } + + private void doDynamicImpl(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { String path = req.getRestOfPath(); String pathUC = path.toUpperCase(Locale.ENGLISH); diff --git a/core/src/main/java/hudson/PluginManager.java b/core/src/main/java/hudson/PluginManager.java index 16c22e9ca90c..e1f5d4cc1184 100644 --- a/core/src/main/java/hudson/PluginManager.java +++ b/core/src/main/java/hudson/PluginManager.java @@ -66,6 +66,10 @@ import hudson.util.Service; import hudson.util.VersionNumber; import hudson.util.XStream2; +import io.jenkins.servlet.ServletContextWrapper; +import io.jenkins.servlet.ServletExceptionWrapper; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletException; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FilenameFilter; @@ -118,8 +122,6 @@ import java.util.logging.Level; import java.util.logging.Logger; import java.util.stream.Collectors; -import javax.servlet.ServletContext; -import javax.servlet.ServletException; import javax.xml.XMLConstants; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParserFactory; @@ -134,6 +136,7 @@ import jenkins.model.Jenkins; import jenkins.plugins.DetachedPluginsUtil; import jenkins.security.CustomClassFilter; +import jenkins.security.stapler.StaplerNotDispatchable; import jenkins.util.SystemProperties; import jenkins.util.io.OnMaster; import jenkins.util.xml.RestrictiveEntityResolver; @@ -143,8 +146,8 @@ import org.apache.commons.fileupload2.core.DiskFileItemFactory; import org.apache.commons.fileupload2.core.FileItem; import org.apache.commons.fileupload2.core.FileUploadException; -import org.apache.commons.fileupload2.javax.JavaxServletDiskFileUpload; -import org.apache.commons.fileupload2.javax.JavaxServletFileUpload; +import org.apache.commons.fileupload2.jakarta.servlet5.JakartaServletDiskFileUpload; +import org.apache.commons.fileupload2.jakarta.servlet5.JakartaServletFileUpload; import org.apache.commons.io.FileUtils; import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.IOUtils; @@ -165,7 +168,8 @@ import org.kohsuke.stapler.StaplerOverridable; import org.kohsuke.stapler.StaplerProxy; import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; import org.kohsuke.stapler.interceptor.RequirePOST; @@ -237,11 +241,22 @@ PluginManager doCreate(@NonNull Class klass, return klass.getConstructor(Jenkins.class).newInstance(jenkins); } }, + SC_FILE2 { + @Override + @NonNull PluginManager doCreate(@NonNull Class klass, + @NonNull Jenkins jenkins) throws ReflectiveOperationException { + return klass.getConstructor(ServletContext.class, File.class).newInstance(jenkins.getServletContext(), jenkins.getRootDir()); + } + }, + /** + * @deprecated use {@link #SC_FILE2} + */ + @Deprecated SC_FILE { @Override @NonNull PluginManager doCreate(@NonNull Class klass, @NonNull Jenkins jenkins) throws ReflectiveOperationException { - return klass.getConstructor(ServletContext.class, File.class).newInstance(jenkins.servletContext, jenkins.getRootDir()); + return klass.getConstructor(javax.servlet.ServletContext.class, File.class).newInstance(jenkins.servletContext, jenkins.getRootDir()); } }, FILE { @@ -363,6 +378,9 @@ PluginManager doCreate(@NonNull Class klass, */ private final PluginStrategy strategy; + /** + * @since TODO + */ protected PluginManager(ServletContext context, File rootDir) { this.context = context; @@ -378,6 +396,14 @@ protected PluginManager(ServletContext context, File rootDir) { strategy = createPluginStrategy(); } + /** + * @deprecated use {@link #PluginManager(ServletContext, File)} + */ + @Deprecated + protected PluginManager(javax.servlet.ServletContext context, File rootDir) { + this(context != null ? ServletContextWrapper.toJakartaServletContext(context) : null, rootDir); + } + public Api getApi() { Jenkins.get().checkPermission(Jenkins.SYSTEM_READ); return new Api(this); @@ -655,7 +681,7 @@ void considerDetachedPlugin(String shortName, String source) { protected @NonNull Set loadPluginsFromWar(@NonNull String fromPath, @CheckForNull FilenameFilter filter) { Set names = new HashSet<>(); - ServletContext context = Jenkins.get().servletContext; + ServletContext context = Jenkins.get().getServletContext(); Set plugins = Util.fixNull(context.getResourcePaths(fromPath)); Set copiedPlugins = new HashSet<>(); Set dependencies = new HashSet<>(); @@ -723,7 +749,7 @@ protected static void addDependencies(URL hpiResUrl, String fromPath, Set d String dependencySpec = manifest.getMainAttributes().getValue("Plugin-Dependencies"); if (dependencySpec != null) { String[] dependencyTokens = dependencySpec.split(","); - ServletContext context = Jenkins.get().servletContext; + ServletContext context = Jenkins.get().getServletContext(); for (String dependencyToken : dependencyTokens) { if (dependencyToken.endsWith(";resolution:=optional")) { @@ -1597,7 +1623,7 @@ public HttpResponse doPlugins() { } @RequirePOST - public HttpResponse doUpdateSources(StaplerRequest req) throws IOException { + public HttpResponse doUpdateSources(StaplerRequest2 req) throws IOException { Jenkins.get().checkPermission(Jenkins.ADMINISTER); if (req.hasParameter("remove")) { @@ -1632,7 +1658,7 @@ public void doInstallPluginsDone() { * Performs the installation of the plugins. */ @RequirePOST - public void doInstall(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doInstall(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { Jenkins.get().checkPermission(Jenkins.ADMINISTER); Set plugins = new LinkedHashSet<>(); @@ -1656,12 +1682,12 @@ public void doInstall(StaplerRequest req, StaplerResponse rsp) throws IOExceptio * @param req The request object. * @return A JSON response that includes a "correlationId" in the "data" element. * That "correlationId" can then be used in calls to - * {@link UpdateCenter#doInstallStatus(org.kohsuke.stapler.StaplerRequest)}. + * {@link UpdateCenter#doInstallStatus(org.kohsuke.stapler.StaplerRequest2)}. * @throws IOException Error reading JSON payload fro request. */ @RequirePOST @Restricted(DoNotUse.class) // WebOnly - public HttpResponse doInstallPlugins(StaplerRequest req) throws IOException { + public HttpResponse doInstallPlugins(StaplerRequest2 req) throws IOException { Jenkins.get().checkPermission(Jenkins.ADMINISTER); String payload = IOUtils.toString(req.getInputStream(), req.getCharacterEncoding()); JSONObject request = JSONObject.fromObject(payload); @@ -1815,7 +1841,7 @@ public HttpResponse doSiteConfigure(@QueryParameter String site) throws IOExcept } @POST - public HttpResponse doProxyConfigure(StaplerRequest req) throws IOException, ServletException { + public HttpResponse doProxyConfigure(StaplerRequest2 req) throws IOException, ServletException { Jenkins jenkins = Jenkins.get(); jenkins.checkPermission(Jenkins.ADMINISTER); @@ -1880,14 +1906,39 @@ public void cleanup() { * Uploads a plugin. */ @RequirePOST - public HttpResponse doUploadPlugin(StaplerRequest req) throws IOException, ServletException { + public HttpResponse doUploadPlugin(StaplerRequest2 req) throws IOException, ServletException { + if (Util.isOverridden(PluginManager.class, getClass(), "doUploadPlugin", StaplerRequest.class)) { + try { + return doUploadPlugin(StaplerRequest.fromStaplerRequest2(req)); + } catch (javax.servlet.ServletException e) { + throw ServletExceptionWrapper.toJakartaServletException(e); + } + } else { + return doUploadPluginImpl(req); + } + } + + /** + * @deprecated use {@link #doUploadPlugin(StaplerRequest2)} + */ + @Deprecated + @StaplerNotDispatchable + public HttpResponse doUploadPlugin(StaplerRequest req) throws IOException, javax.servlet.ServletException { + try { + return doUploadPluginImpl(StaplerRequest.toStaplerRequest2(req)); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } + } + + private HttpResponse doUploadPluginImpl(StaplerRequest2 req) throws IOException, ServletException { try { Jenkins.get().checkPermission(Jenkins.ADMINISTER); String fileName = ""; PluginCopier copier; File tmpDir = Files.createTempDirectory("uploadDir").toFile(); - JavaxServletFileUpload upload = new JavaxServletDiskFileUpload(DiskFileItemFactory.builder().setFile(tmpDir).get()); + JakartaServletFileUpload upload = new JakartaServletDiskFileUpload(DiskFileItemFactory.builder().setFile(tmpDir).get()); List items = upload.parseRequest(req); String string = items.get(1).getString(); if (string != null && !string.isBlank()) { @@ -1965,7 +2016,7 @@ public HttpResponse doUploadPlugin(StaplerRequest req) throws IOException, Servl } @Restricted(NoExternalUse.class) - @RequirePOST public FormValidation doCheckPluginUrl(StaplerRequest request, @QueryParameter String value) throws IOException { + @RequirePOST public FormValidation doCheckPluginUrl(StaplerRequest2 request, @QueryParameter String value) throws IOException { if (value != null && !value.isBlank()) { try { URL url = new URL(value); @@ -1984,7 +2035,7 @@ public HttpResponse doUploadPlugin(StaplerRequest req) throws IOException, Servl } @Restricted(NoExternalUse.class) - @RequirePOST public FormValidation doCheckUpdateSiteUrl(StaplerRequest request, @QueryParameter String value) throws InterruptedException { + @RequirePOST public FormValidation doCheckUpdateSiteUrl(StaplerRequest2 request, @QueryParameter String value) throws InterruptedException { Jenkins.get().checkPermission(Jenkins.ADMINISTER); return checkUpdateSiteURL(value); } @@ -2217,7 +2268,7 @@ private void logPluginWarnings(Map.Entry requestedPlugin, } /** - * Like {@link #doInstallNecessaryPlugins(StaplerRequest)} but only checks if everything is installed + * Like {@link #doInstallNecessaryPlugins(StaplerRequest2)} but only checks if everything is installed * or if some plugins need updates or installation. * * This method runs without side-effect. I'm still requiring the ADMINISTER permission since @@ -2227,7 +2278,7 @@ private void logPluginWarnings(Map.Entry requestedPlugin, * @since 1.483 */ @RequirePOST - public JSONArray doPrevalidateConfig(StaplerRequest req) throws IOException { + public JSONArray doPrevalidateConfig(StaplerRequest2 req) throws IOException { Jenkins.get().checkPermission(Jenkins.ADMINISTER); JSONArray response = new JSONArray(); @@ -2252,7 +2303,7 @@ public JSONArray doPrevalidateConfig(StaplerRequest req) throws IOException { * @since 1.483 */ @RequirePOST - public HttpResponse doInstallNecessaryPlugins(StaplerRequest req) throws IOException { + public HttpResponse doInstallNecessaryPlugins(StaplerRequest2 req) throws IOException { prevalidateConfig(req.getInputStream()); return HttpResponses.redirectViaContextPath("pluginManager/updates/"); } diff --git a/core/src/main/java/hudson/PluginWrapper.java b/core/src/main/java/hudson/PluginWrapper.java index 47cfcb02d955..c8cd9f5240a0 100644 --- a/core/src/main/java/hudson/PluginWrapper.java +++ b/core/src/main/java/hudson/PluginWrapper.java @@ -80,8 +80,8 @@ import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.HttpResponses; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; import org.kohsuke.stapler.interceptor.RequirePOST; @@ -1212,7 +1212,7 @@ public PluginWrapper getPlugin(String shortName) { /** * Depending on whether the user said "dismiss" or "correct", send him to the right place. */ - public void doAct(StaplerRequest req, StaplerResponse rsp) throws IOException { + public void doAct(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException { if (req.hasParameter("correct")) { rsp.sendRedirect(req.getContextPath() + "/pluginManager"); diff --git a/core/src/main/java/hudson/ProxyConfigurationManager.java b/core/src/main/java/hudson/ProxyConfigurationManager.java index 52f15f84c87e..d3ae0d79ee0e 100644 --- a/core/src/main/java/hudson/ProxyConfigurationManager.java +++ b/core/src/main/java/hudson/ProxyConfigurationManager.java @@ -32,7 +32,7 @@ import net.sf.json.JSONObject; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; -import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; @Extension @Restricted(NoExternalUse.class) public class ProxyConfigurationManager extends GlobalConfiguration { @@ -48,7 +48,7 @@ public Descriptor getProxyDescriptor() { } @Override - public boolean configure(StaplerRequest req, JSONObject json) throws FormException { + public boolean configure(StaplerRequest2 req, JSONObject json) throws FormException { ProxyConfiguration pc = req.bindJSON(ProxyConfiguration.class, json); try { saveProxyConfiguration(pc); diff --git a/core/src/main/java/hudson/ResponseHeaderFilter.java b/core/src/main/java/hudson/ResponseHeaderFilter.java index 90fb0be87d37..416e5c4c6919 100644 --- a/core/src/main/java/hudson/ResponseHeaderFilter.java +++ b/core/src/main/java/hudson/ResponseHeaderFilter.java @@ -24,15 +24,15 @@ package hudson; +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Enumeration; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletResponse; +import org.kohsuke.stapler.CompatibleFilter; /** * This filter allows you to modify headers set by the container or other servlets @@ -77,7 +77,7 @@ * * @author Mike Wille */ -public class ResponseHeaderFilter implements Filter { +public class ResponseHeaderFilter implements CompatibleFilter { private FilterConfig config; @Override diff --git a/core/src/main/java/hudson/Util.java b/core/src/main/java/hudson/Util.java index abe9f97d6551..5ca66e9c4424 100644 --- a/core/src/main/java/hudson/Util.java +++ b/core/src/main/java/hudson/Util.java @@ -125,6 +125,7 @@ import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; /** * Various utility methods that don't have more proper home. @@ -1850,9 +1851,11 @@ public static long daysElapsedSince(@NonNull Date date) { /** * Find the specific ancestor, or throw an exception. * Useful for an ancestor we know is inside the URL to ease readability + * + * @since TODO */ @Restricted(NoExternalUse.class) - public static @NonNull T getNearestAncestorOfTypeOrThrow(@NonNull StaplerRequest request, @NonNull Class clazz) { + public static @NonNull T getNearestAncestorOfTypeOrThrow(@NonNull StaplerRequest2 request, @NonNull Class clazz) { T t = request.findAncestorObject(clazz); if (t == null) { throw new IllegalArgumentException("No ancestor of type " + clazz.getName() + " in the request"); @@ -1860,6 +1863,15 @@ public static long daysElapsedSince(@NonNull Date date) { return t; } + /** + * @deprecated use {@link #getNearestAncestorOfTypeOrThrow(StaplerRequest2, Class)} + */ + @Deprecated + @Restricted(NoExternalUse.class) + public static @NonNull T getNearestAncestorOfTypeOrThrow(@NonNull StaplerRequest request, @NonNull Class clazz) { + return getNearestAncestorOfTypeOrThrow(StaplerRequest.toStaplerRequest2(request), clazz); + } + @Restricted(NoExternalUse.class) public static void printRedirect(String contextPath, String redirectUrl, String message, PrintWriter out) { out.printf( diff --git a/core/src/main/java/hudson/WebAppMain.java b/core/src/main/java/hudson/WebAppMain.java index 9f328328c710..986452797f90 100644 --- a/core/src/main/java/hudson/WebAppMain.java +++ b/core/src/main/java/hudson/WebAppMain.java @@ -45,6 +45,12 @@ import hudson.util.NoHomeDir; import hudson.util.NoTempDir; import hudson.util.RingBufferLogHandler; +import io.jenkins.servlet.ServletContextEventWrapper; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletContextEvent; +import jakarta.servlet.ServletContextListener; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.SessionTrackingMode; import java.io.File; import java.io.IOException; import java.io.OutputStream; @@ -65,11 +71,6 @@ import java.util.logging.Level; import java.util.logging.LogRecord; import java.util.logging.Logger; -import javax.servlet.ServletContext; -import javax.servlet.ServletContextEvent; -import javax.servlet.ServletContextListener; -import javax.servlet.ServletResponse; -import javax.servlet.SessionTrackingMode; import jenkins.model.Jenkins; import jenkins.util.JenkinsJVM; import jenkins.util.SystemProperties; @@ -320,10 +321,21 @@ private void recordBootAttempt(File home) { } } + /** + * @since TODO + */ public static void installExpressionFactory(ServletContextEvent event) { JellyFacet.setExpressionFactory(event, new ExpressionFactory2()); } + /** + * @deprecated use {@link #installExpressionFactory(ServletContextEvent)} + */ + @Deprecated + public static void installExpressionFactory(javax.servlet.ServletContextEvent event) { + installExpressionFactory(ServletContextEventWrapper.toJakartaServletContextEvent(event)); + } + /** * Installs log handler to monitor all Hudson logs. */ diff --git a/core/src/main/java/hudson/cli/CLIAction.java b/core/src/main/java/hudson/cli/CLIAction.java index 9e29b141560c..a2fc5f590197 100644 --- a/core/src/main/java/hudson/cli/CLIAction.java +++ b/core/src/main/java/hudson/cli/CLIAction.java @@ -26,6 +26,8 @@ import hudson.Extension; import hudson.model.UnprotectedRootAction; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletResponse; import java.io.ByteArrayInputStream; import java.io.DataInputStream; import java.io.IOException; @@ -45,8 +47,6 @@ import java.util.UUID; import java.util.logging.Level; import java.util.logging.Logger; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletResponse; import jenkins.model.Jenkins; import jenkins.util.FullDuplexHttpService; import jenkins.util.SystemProperties; @@ -59,8 +59,8 @@ import org.kohsuke.stapler.HttpResponses; import org.kohsuke.stapler.Stapler; import org.kohsuke.stapler.StaplerProxy; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.springframework.security.core.Authentication; /** @@ -97,7 +97,7 @@ public String getUrlName() { return "cli"; } - public void doCommand(StaplerRequest req, StaplerResponse rsp) throws ServletException, IOException { + public void doCommand(StaplerRequest2 req, StaplerResponse2 rsp) throws ServletException, IOException { final Jenkins jenkins = Jenkins.get(); jenkins.checkPermission(Jenkins.READ); @@ -121,7 +121,7 @@ public boolean isWebSocketSupported() { /** * WebSocket endpoint. */ - public HttpResponse doWs(StaplerRequest req) { + public HttpResponse doWs(StaplerRequest2 req) { if (!WebSockets.isSupported()) { return HttpResponses.notFound(); } @@ -216,7 +216,7 @@ protected void closed(int statusCode, String reason) { @Override public Object getTarget() { - StaplerRequest req = Stapler.getCurrentRequest(); + StaplerRequest2 req = Stapler.getCurrentRequest2(); if (req.getRestOfPath().isEmpty() && "POST".equals(req.getMethod())) { // CLI connection request if ("false".equals(req.getParameter("remoting"))) { @@ -349,7 +349,7 @@ private class PlainCliEndpointResponse extends FullDuplexHttpService.Response { } @Override - protected FullDuplexHttpService createService(StaplerRequest req, UUID uuid) throws IOException { + protected FullDuplexHttpService createService(StaplerRequest2 req, UUID uuid) throws IOException { return new FullDuplexHttpService(uuid) { @Override protected void run(InputStream upload, OutputStream download) throws IOException, InterruptedException { diff --git a/core/src/main/java/hudson/cli/CliCrumbExclusion.java b/core/src/main/java/hudson/cli/CliCrumbExclusion.java index 4e3064f43178..08c204eb55b1 100644 --- a/core/src/main/java/hudson/cli/CliCrumbExclusion.java +++ b/core/src/main/java/hudson/cli/CliCrumbExclusion.java @@ -26,11 +26,11 @@ import hudson.Extension; import hudson.security.csrf.CrumbExclusion; +import jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.DoNotUse; diff --git a/core/src/main/java/hudson/cli/ReloadConfigurationCommand.java b/core/src/main/java/hudson/cli/ReloadConfigurationCommand.java index 6b29dcf52904..aab260747f65 100644 --- a/core/src/main/java/hudson/cli/ReloadConfigurationCommand.java +++ b/core/src/main/java/hudson/cli/ReloadConfigurationCommand.java @@ -50,7 +50,7 @@ protected int run() throws Exception { // Or perhaps simpler to inline the thread body of doReload? j.doReload(); Object app; - while ((app = WebApp.get(j.servletContext).getApp()) instanceof HudsonIsLoading) { + while ((app = WebApp.get(j.getServletContext()).getApp()) instanceof HudsonIsLoading) { Thread.sleep(100); } if (app instanceof Jenkins) { diff --git a/core/src/main/java/hudson/cli/UpdateNodeCommand.java b/core/src/main/java/hudson/cli/UpdateNodeCommand.java index c9210f89cc68..5909a2f0fcf2 100644 --- a/core/src/main/java/hudson/cli/UpdateNodeCommand.java +++ b/core/src/main/java/hudson/cli/UpdateNodeCommand.java @@ -26,8 +26,8 @@ import hudson.Extension; import hudson.model.Node; +import jakarta.servlet.ServletException; import java.io.IOException; -import javax.servlet.ServletException; import org.kohsuke.args4j.Argument; /** diff --git a/core/src/main/java/hudson/console/AnnotatedLargeText.java b/core/src/main/java/hudson/console/AnnotatedLargeText.java index 4e0d3b9908af..1798512f3e03 100644 --- a/core/src/main/java/hudson/console/AnnotatedLargeText.java +++ b/core/src/main/java/hudson/console/AnnotatedLargeText.java @@ -30,6 +30,7 @@ import edu.umd.cs.findbugs.annotations.CheckReturnValue; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; +import hudson.Util; import hudson.remoting.ObjectInputStreamEx; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -50,10 +51,13 @@ import javax.crypto.CipherOutputStream; import jenkins.model.Jenkins; import jenkins.security.CryptoConfidentialKey; +import jenkins.security.stapler.StaplerNotDispatchable; import org.jenkinsci.remoting.util.AnonymousClassWarnings; import org.kohsuke.stapler.Stapler; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.framework.io.ByteBuffer; import org.kohsuke.stapler.framework.io.LargeText; @@ -90,14 +94,44 @@ public AnnotatedLargeText(ByteBuffer memory, Charset charset, boolean completed, this.context = context; } + /** + * @since TODO + */ + public void doProgressiveHtml(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException { + if (Util.isOverridden(AnnotatedLargeText.class, getClass(), "doProgressiveHtml", StaplerRequest.class, StaplerResponse.class)) { + doProgressiveHtml(StaplerRequest.fromStaplerRequest2(req), StaplerResponse.fromStaplerResponse2(rsp)); + } else { + doProgressiveHtmlImpl(req, rsp); + } + } + + /** + * @deprecated use {@link #doProgressiveHtml(StaplerRequest2, StaplerResponse2)} + */ + @Deprecated + @StaplerNotDispatchable public void doProgressiveHtml(StaplerRequest req, StaplerResponse rsp) throws IOException { + doProgressiveHtmlImpl(StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp)); + } + + private void doProgressiveHtmlImpl(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException { req.setAttribute("html", true); doProgressText(req, rsp); } /** * Aliasing what I think was a wrong name in {@link LargeText} + * + * @since TODO */ + public void doProgressiveText(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException { + doProgressText(req, rsp); + } + + /** + * @deprecated use {@link #doProgressiveText(StaplerRequest2, StaplerResponse2)} + */ + @Deprecated public void doProgressiveText(StaplerRequest req, StaplerResponse rsp) throws IOException { doProgressText(req, rsp); } @@ -107,16 +141,35 @@ public void doProgressiveText(StaplerRequest req, StaplerResponse rsp) throws IO * and use this request attribute to differentiate. */ private boolean isHtml() { - StaplerRequest req = Stapler.getCurrentRequest(); + StaplerRequest2 req = Stapler.getCurrentRequest2(); return req != null && req.getAttribute("html") != null; } + /** + * @since TODO + */ @Override + protected void setContentType(StaplerResponse2 rsp) { + if (Util.isOverridden(AnnotatedLargeText.class, getClass(), "setContentType", StaplerResponse.class)) { + setContentType(StaplerResponse.fromStaplerResponse2(rsp)); + } else { + setContentTypeImpl(rsp); + } + } + + /** + * @deprecated use {@link #setContentType(StaplerResponse2)} + */ + @Deprecated protected void setContentType(StaplerResponse rsp) { + setContentTypeImpl(StaplerResponse.toStaplerResponse2(rsp)); + } + + private void setContentTypeImpl(StaplerResponse2 rsp) { rsp.setContentType(isHtml() ? "text/html;charset=UTF-8" : "text/plain;charset=UTF-8"); } - private ConsoleAnnotator createAnnotator(StaplerRequest req) throws IOException { + private ConsoleAnnotator createAnnotator(StaplerRequest2 req) throws IOException { try { String base64 = req != null ? req.getHeader("X-ConsoleAnnotator") : null; if (base64 != null) { @@ -176,7 +229,7 @@ public long writeRawLogTo(long start, OutputStream out) throws IOException { @CheckReturnValue public long writeHtmlTo(long start, Writer w) throws IOException { ConsoleAnnotationOutputStream caw = new ConsoleAnnotationOutputStream<>( - w, createAnnotator(Stapler.getCurrentRequest()), context, charset); + w, createAnnotator(Stapler.getCurrentRequest2()), context, charset); long r = super.writeLogTo(start, caw); ByteArrayOutputStream baos = new ByteArrayOutputStream(); @@ -185,7 +238,7 @@ public long writeHtmlTo(long start, Writer w) throws IOException { oos.writeLong(System.currentTimeMillis()); // send timestamp to prevent a replay attack oos.writeObject(caw.getConsoleAnnotator()); oos.close(); - StaplerResponse rsp = Stapler.getCurrentResponse(); + StaplerResponse2 rsp = Stapler.getCurrentResponse2(); if (rsp != null) rsp.setHeader("X-ConsoleAnnotator", Base64.getEncoder().encodeToString(baos.toByteArray())); return r; diff --git a/core/src/main/java/hudson/console/ConsoleAnnotationDescriptor.java b/core/src/main/java/hudson/console/ConsoleAnnotationDescriptor.java index bb68ccc66194..e63e2dab5cae 100644 --- a/core/src/main/java/hudson/console/ConsoleAnnotationDescriptor.java +++ b/core/src/main/java/hudson/console/ConsoleAnnotationDescriptor.java @@ -28,13 +28,13 @@ import hudson.DescriptorExtensionList; import hudson.ExtensionPoint; import hudson.model.Descriptor; +import jakarta.servlet.ServletException; import java.io.IOException; import java.net.URL; import java.util.concurrent.TimeUnit; -import javax.servlet.ServletException; import jenkins.model.Jenkins; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.WebMethod; /** @@ -81,12 +81,12 @@ private URL hasResource(String name) { } @WebMethod(name = "script.js") - public void doScriptJs(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doScriptJs(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { rsp.serveFile(req, hasResource("/script.js"), TimeUnit.DAYS.toMillis(1)); } @WebMethod(name = "style.css") - public void doStyleCss(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doStyleCss(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { rsp.serveFile(req, hasResource("/style.css"), TimeUnit.DAYS.toMillis(1)); } diff --git a/core/src/main/java/hudson/console/ConsoleAnnotatorFactory.java b/core/src/main/java/hudson/console/ConsoleAnnotatorFactory.java index b2f6948fd155..3e56f80ed5d0 100644 --- a/core/src/main/java/hudson/console/ConsoleAnnotatorFactory.java +++ b/core/src/main/java/hudson/console/ConsoleAnnotatorFactory.java @@ -28,15 +28,15 @@ import hudson.ExtensionList; import hudson.ExtensionPoint; import hudson.model.Run; +import jakarta.servlet.ServletException; import java.io.IOException; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.net.URL; import java.util.concurrent.TimeUnit; -import javax.servlet.ServletException; import org.jvnet.tiger_types.Types; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.WebMethod; /** @@ -113,12 +113,12 @@ private URL getResource(String fileName) { * Serves the JavaScript file associated with this console annotator factory. */ @WebMethod(name = "script.js") - public void doScriptJs(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doScriptJs(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { rsp.serveFile(req, getResource("/script.js"), TimeUnit.DAYS.toMillis(1)); } @WebMethod(name = "style.css") - public void doStyleCss(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doStyleCss(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { rsp.serveFile(req, getResource("/style.css"), TimeUnit.DAYS.toMillis(1)); } diff --git a/core/src/main/java/hudson/console/HyperlinkNote.java b/core/src/main/java/hudson/console/HyperlinkNote.java index 1e582dab2b4a..8aa011660592 100644 --- a/core/src/main/java/hudson/console/HyperlinkNote.java +++ b/core/src/main/java/hudson/console/HyperlinkNote.java @@ -37,7 +37,7 @@ import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.Stapler; -import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; /** * Turns a text into a hyperlink by specifying the URL separately. @@ -62,7 +62,7 @@ public HyperlinkNote(String url, int length) { public ConsoleAnnotator annotate(Object context, MarkupText text, int charPos) { String url = this.url; if (url.startsWith("/")) { - StaplerRequest req = Stapler.getCurrentRequest(); + StaplerRequest2 req = Stapler.getCurrentRequest2(); if (req != null) { // if we are serving HTTP request, we want to use app relative URL url = req.getContextPath() + url; diff --git a/core/src/main/java/hudson/diagnosis/OldDataMonitor.java b/core/src/main/java/hudson/diagnosis/OldDataMonitor.java index e2bfa4678fc9..425c52150949 100644 --- a/core/src/main/java/hudson/diagnosis/OldDataMonitor.java +++ b/core/src/main/java/hudson/diagnosis/OldDataMonitor.java @@ -65,8 +65,8 @@ import org.kohsuke.stapler.HttpRedirect; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.HttpResponses; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.interceptor.RequirePOST; /** @@ -310,7 +310,7 @@ public Iterator getVersionList() { * Depending on whether the user said "yes" or "no", send him to the right place. */ @RequirePOST - public HttpResponse doAct(StaplerRequest req, StaplerResponse rsp) throws IOException { + public HttpResponse doAct(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException { if (req.hasParameter("no")) { disable(true); return HttpResponses.redirectViaContextPath("/manage"); @@ -324,7 +324,7 @@ public HttpResponse doAct(StaplerRequest req, StaplerResponse rsp) throws IOExce * Remove those items from the data map. */ @RequirePOST - public HttpResponse doUpgrade(StaplerRequest req, StaplerResponse rsp) { + public HttpResponse doUpgrade(StaplerRequest2 req, StaplerResponse2 rsp) { final String thruVerParam = req.getParameter("thruVer"); final VersionNumber thruVer = thruVerParam.equals("all") ? null : new VersionNumber(thruVerParam); @@ -341,7 +341,7 @@ public HttpResponse doUpgrade(StaplerRequest req, StaplerResponse rsp) { * Remove those items from the data map. */ @RequirePOST - public HttpResponse doDiscard(StaplerRequest req, StaplerResponse rsp) { + public HttpResponse doDiscard(StaplerRequest2 req, StaplerResponse2 rsp) { saveAndRemoveEntries(entry -> entry.getValue().max == null); return HttpResponses.forwardToPreviousPage(); @@ -377,7 +377,7 @@ private void saveAndRemoveEntries(Predicate handleException(j, e, req, rsp, 500)); + UncaughtExceptionFilter.setUncaughtExceptionHandler(j.getServletContext(), (e, context, req, rsp) -> handleException(j, e, req, rsp, 500)); try { Thread.setDefaultUncaughtExceptionHandler(new DefaultUncaughtExceptionHandler()); LOGGER.log(Level.FINE, "Successfully installed a global UncaughtExceptionHandler."); @@ -53,10 +53,10 @@ private static void handleException(Jenkins j, Throwable e, HttpServletRequest r String id = UUID.randomUUID().toString(); LOGGER.log(isEOFException(e) ? Level.FINE : Level.WARNING, "Caught unhandled exception with ID " + id, e); req.setAttribute("jenkins.exception.id", id); - req.setAttribute("javax.servlet.error.exception", e); + req.setAttribute("jakarta.servlet.error.exception", e); rsp.setStatus(code); try { - WebApp.get(j.servletContext).getSomeStapler().invoke(req, rsp, j, "/oops"); + WebApp.get(j.getServletContext()).getSomeStapler().invoke(req, rsp, j, "/oops"); } catch (ServletException | IOException x) { if (!Stapler.isSocketException(x)) { throw x; @@ -75,7 +75,7 @@ public HttpResponses.HttpResponseException handleError(int code, Throwable cause } return new HttpResponses.HttpResponseException(cause) { @Override - public void generateResponse(StaplerRequest req, StaplerResponse rsp, Object node) throws IOException, ServletException { + public void generateResponse(StaplerRequest2 req, StaplerResponse2 rsp, Object node) throws IOException, ServletException { handleException(Jenkins.get(), cause, req, rsp, code); } }; diff --git a/core/src/main/java/hudson/lifecycle/WindowsInstallerLink.java b/core/src/main/java/hudson/lifecycle/WindowsInstallerLink.java index 875a3e4ef7e0..c54a90d1c576 100644 --- a/core/src/main/java/hudson/lifecycle/WindowsInstallerLink.java +++ b/core/src/main/java/hudson/lifecycle/WindowsInstallerLink.java @@ -35,6 +35,7 @@ import hudson.model.TaskListener; import hudson.util.StreamTaskListener; import hudson.util.jna.DotNet; +import jakarta.servlet.ServletException; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; @@ -43,7 +44,6 @@ import java.nio.file.Files; import java.util.logging.Level; import java.util.logging.Logger; -import javax.servlet.ServletException; import jenkins.model.Jenkins; import jenkins.util.SystemProperties; import org.apache.commons.io.FileUtils; @@ -52,8 +52,8 @@ import org.apache.tools.ant.taskdefs.Move; import org.apache.tools.ant.types.FileSet; import org.kohsuke.stapler.QueryParameter; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.interceptor.RequirePOST; /** @@ -116,7 +116,7 @@ public boolean isInstalled() { * Performs installation. */ @RequirePOST - public void doDoInstall(StaplerRequest req, StaplerResponse rsp, @QueryParameter("dir") String _dir) throws IOException, ServletException { + public void doDoInstall(StaplerRequest2 req, StaplerResponse2 rsp, @QueryParameter("dir") String _dir) throws IOException, ServletException { Jenkins.get().checkPermission(Jenkins.ADMINISTER); if (installationDir != null) { @@ -168,7 +168,7 @@ public void doDoInstall(StaplerRequest req, StaplerResponse rsp, @QueryParameter /** * Copies a single resource into the target folder, by the given name, and handle errors gracefully. */ - private void copy(StaplerRequest req, StaplerResponse rsp, File dir, URL src, String name) throws ServletException, IOException { + private void copy(StaplerRequest2 req, StaplerResponse2 rsp, File dir, URL src, String name) throws ServletException, IOException { try { FileUtils.copyURLToFile(src, new File(dir, name)); } catch (IOException e) { @@ -179,7 +179,7 @@ private void copy(StaplerRequest req, StaplerResponse rsp, File dir, URL src, St } @RequirePOST - public void doRestart(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doRestart(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { Jenkins.get().checkPermission(Jenkins.ADMINISTER); if (installationDir == null) { @@ -250,11 +250,11 @@ private DefaultLogger createLogger() { /** * Displays the error in a page. */ - protected final void sendError(Exception e, StaplerRequest req, StaplerResponse rsp) throws ServletException, IOException { + protected final void sendError(Exception e, StaplerRequest2 req, StaplerResponse2 rsp) throws ServletException, IOException { sendError(e.getMessage(), req, rsp); } - protected final void sendError(String message, StaplerRequest req, StaplerResponse rsp) throws ServletException, IOException { + protected final void sendError(String message, StaplerRequest2 req, StaplerResponse2 rsp) throws ServletException, IOException { req.setAttribute("message", message); req.setAttribute("pre", true); rsp.forward(Jenkins.get(), "error", req); diff --git a/core/src/main/java/hudson/logging/LogRecorder.java b/core/src/main/java/hudson/logging/LogRecorder.java index 86aea6575048..ad4c40028547 100644 --- a/core/src/main/java/hudson/logging/LogRecorder.java +++ b/core/src/main/java/hudson/logging/LogRecorder.java @@ -48,6 +48,7 @@ import hudson.util.HttpResponses; import hudson.util.RingBufferLogHandler; import hudson.util.XStream2; +import jakarta.servlet.ServletException; import java.io.File; import java.io.IOException; import java.io.Serializable; @@ -71,7 +72,6 @@ import java.util.logging.LogManager; import java.util.logging.LogRecord; import java.util.logging.Logger; -import javax.servlet.ServletException; import jenkins.model.Jenkins; import jenkins.model.Loadable; import jenkins.security.MasterToSlaveCallable; @@ -82,8 +82,8 @@ import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.QueryParameter; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.interceptor.RequirePOST; import org.kohsuke.stapler.verb.POST; @@ -439,7 +439,7 @@ public LogRecorderManager getParent() { * Accepts submission from the configuration page. */ @POST - public synchronized void doConfigSubmit(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public synchronized void doConfigSubmit(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { Jenkins.get().checkPermission(Jenkins.ADMINISTER); JSONObject src = req.getSubmittedForm(); @@ -536,7 +536,7 @@ public int hashCode() { * Deletes this recorder, then go back to the parent. */ @RequirePOST - public synchronized void doDoDelete(StaplerResponse rsp) throws IOException, ServletException { + public synchronized void doDoDelete(StaplerResponse2 rsp) throws IOException, ServletException { delete(); rsp.sendRedirect2(".."); } @@ -562,7 +562,7 @@ public void delete() throws IOException { /** * RSS feed for log entries. */ - public void doRss(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doRss(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { LogRecorderManager.doRss(req, rsp, getLogRecords()); } diff --git a/core/src/main/java/hudson/logging/LogRecorderManager.java b/core/src/main/java/hudson/logging/LogRecorderManager.java index 70856024df12..2c589adaa612 100644 --- a/core/src/main/java/hudson/logging/LogRecorderManager.java +++ b/core/src/main/java/hudson/logging/LogRecorderManager.java @@ -38,6 +38,7 @@ import hudson.model.RSS; import hudson.util.CopyOnWriteMap; import hudson.util.FormValidation; +import jakarta.servlet.ServletException; import java.io.File; import java.io.FileFilter; import java.io.IOException; @@ -53,7 +54,6 @@ import java.util.logging.LogManager; import java.util.logging.LogRecord; import java.util.logging.Logger; -import javax.servlet.ServletException; import jenkins.model.Jenkins; import jenkins.model.JenkinsLocationConfiguration; import jenkins.model.ModelObjectWithChildren; @@ -68,8 +68,8 @@ import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.StaplerProxy; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.interceptor.RequirePOST; /** @@ -188,7 +188,7 @@ public FormValidation doCheckNewName(@QueryParameter String name) { } @Override - public ContextMenu doChildrenContextMenu(StaplerRequest request, StaplerResponse response) throws Exception { + public ContextMenu doChildrenContextMenu(StaplerRequest2 request, StaplerResponse2 response) throws Exception { ContextMenu menu = new ContextMenu(); menu.add("all", "All Jenkins Logs"); for (LogRecorder lr : recorders) { @@ -225,14 +225,14 @@ public HttpResponse doConfigLogger(@QueryParameter String name, @QueryParameter /** * RSS feed for log entries. */ - public void doRss(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doRss(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { doRss(req, rsp, Jenkins.logRecords); } /** * Renders the given log recorders as RSS. */ - /*package*/ static void doRss(StaplerRequest req, StaplerResponse rsp, List logs) throws IOException, ServletException { + /*package*/ static void doRss(StaplerRequest2 req, StaplerResponse2 rsp, List logs) throws IOException, ServletException { // filter log records based on the log level String entryType = "all"; String level = req.getParameter("level"); diff --git a/core/src/main/java/hudson/markup/MarkupFormatter.java b/core/src/main/java/hudson/markup/MarkupFormatter.java index e588e0cfcc8e..a3bf53a739a1 100644 --- a/core/src/main/java/hudson/markup/MarkupFormatter.java +++ b/core/src/main/java/hudson/markup/MarkupFormatter.java @@ -28,6 +28,7 @@ import edu.umd.cs.findbugs.annotations.NonNull; import hudson.ExtensionPoint; import hudson.model.AbstractDescribableImpl; +import jakarta.servlet.ServletException; import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; @@ -44,7 +45,8 @@ import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.QueryParameter; -import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.WebMethod; import org.kohsuke.stapler.verb.GET; import org.kohsuke.stapler.verb.POST; @@ -138,7 +140,7 @@ public HttpResponse doPreviewDescription(@QueryParameter String text) throws IOE @GET @WebMethod(name = "previewDescription") @Restricted(NoExternalUse.class) - public HttpResponse previewsNowNeedPostForSecurity2153(@QueryParameter String text, StaplerRequest req) throws IOException { + public HttpResponse previewsNowNeedPostForSecurity2153(@QueryParameter String text, StaplerRequest2 req) throws IOException { LOGGER.log(Level.FINE, "Received a GET request at " + req.getRequestURL()); if (PREVIEWS_ALLOW_GET) { return doPreviewDescription(text); @@ -155,15 +157,18 @@ public HttpResponse previewsNowNeedPostForSecurity2153(@QueryParameter String te */ private static HttpResponse html(int status, @NonNull String html, @NonNull Map headers) { // TODO Move to Stapler's HttpResponses, (also add a corresponding 'text' method) - return (req, rsp, node) -> { - rsp.setContentType("text/html;charset=UTF-8"); - rsp.setStatus(status); - for (Map.Entry header : headers.entrySet()) { - rsp.setHeader(header.getKey(), header.getValue()); + return new HttpResponse() { + @Override + public void generateResponse(StaplerRequest2 req, StaplerResponse2 rsp, Object node) throws IOException, ServletException { + rsp.setContentType("text/html;charset=UTF-8"); + rsp.setStatus(status); + for (Map.Entry header : headers.entrySet()) { + rsp.setHeader(header.getKey(), header.getValue()); + } + PrintWriter pw = rsp.getWriter(); + pw.print(html); + pw.flush(); } - PrintWriter pw = rsp.getWriter(); - pw.print(html); - pw.flush(); }; } } diff --git a/core/src/main/java/hudson/model/AbstractBuild.java b/core/src/main/java/hudson/model/AbstractBuild.java index 85d62df78896..d993d722eacb 100644 --- a/core/src/main/java/hudson/model/AbstractBuild.java +++ b/core/src/main/java/hudson/model/AbstractBuild.java @@ -62,6 +62,8 @@ import hudson.util.HttpResponses; import hudson.util.Iterators; import hudson.util.VariableResolver; +import io.jenkins.servlet.ServletExceptionWrapper; +import jakarta.servlet.ServletException; import java.io.File; import java.io.IOException; import java.io.InterruptedIOException; @@ -81,7 +83,6 @@ import java.util.TreeSet; import java.util.logging.Level; import java.util.logging.Logger; -import javax.servlet.ServletException; import jenkins.model.Jenkins; import jenkins.model.lazy.BuildReference; import jenkins.model.lazy.LazyBuildMixIn; @@ -275,7 +276,7 @@ public Queue.Executable getParentExecutable() { */ @Deprecated(since = "2.364") public String getUpUrl() { - return Functions.getNearestAncestorUrl(Stapler.getCurrentRequest(), getParent()) + '/'; + return Functions.getNearestAncestorUrl(Stapler.getCurrentRequest2(), getParent()) + '/'; } /** @@ -1391,8 +1392,12 @@ public List getBuilds() { */ @Deprecated @RequirePOST // #doStop() should be preferred, but better to be safe - public void doStop(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { - doStop().generateResponse(req, rsp, this); + public void doStop(StaplerRequest req, StaplerResponse rsp) throws IOException, javax.servlet.ServletException { + try { + doStop().generateResponse(StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp), this); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } } /** diff --git a/core/src/main/java/hudson/model/AbstractItem.java b/core/src/main/java/hudson/model/AbstractItem.java index adebec8f289f..af64ff19df34 100644 --- a/core/src/main/java/hudson/model/AbstractItem.java +++ b/core/src/main/java/hudson/model/AbstractItem.java @@ -25,7 +25,7 @@ package hudson.model; -import static javax.servlet.http.HttpServletResponse.SC_BAD_REQUEST; +import static jakarta.servlet.http.HttpServletResponse.SC_BAD_REQUEST; import com.infradna.tool.bridge_method_injector.WithBridgeMethods; import edu.umd.cs.findbugs.annotations.NonNull; @@ -47,6 +47,8 @@ import hudson.util.FormValidation; import hudson.util.IOUtils; import hudson.util.Secret; +import io.jenkins.servlet.ServletExceptionWrapper; +import jakarta.servlet.ServletException; import java.io.File; import java.io.IOException; import java.io.OutputStream; @@ -59,7 +61,6 @@ import java.util.logging.Logger; import java.util.regex.Matcher; import java.util.regex.Pattern; -import javax.servlet.ServletException; import javax.xml.transform.Source; import javax.xml.transform.TransformerException; import javax.xml.transform.sax.SAXSource; @@ -70,6 +71,7 @@ import jenkins.model.Loadable; import jenkins.model.queue.ItemDeletion; import jenkins.security.NotReallyRoleSensitiveCallable; +import jenkins.security.stapler.StaplerNotDispatchable; import jenkins.util.SystemProperties; import jenkins.util.xml.XMLUtils; import org.apache.tools.ant.Project; @@ -87,7 +89,9 @@ import org.kohsuke.stapler.Stapler; import org.kohsuke.stapler.StaplerProxy; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.WebMethod; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; @@ -530,7 +534,7 @@ public void onCopiedFrom(Item src) { @Override public final String getUrl() { // try to stick to the current view if possible - StaplerRequest req = Stapler.getCurrentRequest(); + StaplerRequest2 req = Stapler.getCurrentRequest2(); String shortUrl = getShortUrl(); String uri = req == null ? null : req.getRequestURI(); if (req != null) { @@ -644,9 +648,36 @@ private Object readResolve() { /** * Accepts the new description. + * + * @since TODO */ @RequirePOST - public synchronized void doSubmitDescription(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public synchronized void doSubmitDescription(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { + if (Util.isOverridden(AbstractItem.class, getClass(), "doSubmitDescription", StaplerRequest.class, StaplerResponse.class)) { + try { + doSubmitDescription(StaplerRequest.fromStaplerRequest2(req), StaplerResponse.fromStaplerResponse2(rsp)); + } catch (javax.servlet.ServletException e) { + throw ServletExceptionWrapper.toJakartaServletException(e); + } + } else { + doSubmitDescriptionImpl(req, rsp); + } + } + + /** + * @deprecated use {@link #doSubmitDescription(StaplerRequest2, StaplerResponse2)} + */ + @Deprecated + @StaplerNotDispatchable + public synchronized void doSubmitDescription(StaplerRequest req, StaplerResponse rsp) throws IOException, javax.servlet.ServletException { + try { + doSubmitDescriptionImpl(StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp)); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } + } + + private void doSubmitDescriptionImpl(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { checkPermission(CONFIGURE); setDescription(req.getParameter("description")); @@ -658,9 +689,32 @@ public synchronized void doSubmitDescription(StaplerRequest req, StaplerResponse * Note on the funny name: for reasons of historical compatibility, this URL is {@code /doDelete} * since it predates {@code }. {@code /delete} goes to a Jelly page * which should now be unused by core but is left in case plugins are still using it. + * + * @since TODO */ @RequirePOST - public void doDoDelete(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException, InterruptedException { + public void doDoDelete(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException, InterruptedException { + if (Util.isOverridden(AbstractItem.class, getClass(), "doDoDelete", StaplerRequest.class, StaplerResponse.class)) { + try { + doDoDelete(StaplerRequest.fromStaplerRequest2(req), StaplerResponse.fromStaplerResponse2(rsp)); + } catch (javax.servlet.ServletException e) { + throw ServletExceptionWrapper.toJakartaServletException(e); + } + } else { + doDoDeleteImpl(req, rsp); + } + } + + /** + * @deprecated use {@link #doDoDelete(StaplerRequest2, StaplerResponse2)} + */ + @Deprecated + @StaplerNotDispatchable + public void doDoDelete(StaplerRequest req, StaplerResponse rsp) throws IOException, javax.servlet.ServletException, InterruptedException { + doDoDeleteImpl(StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp)); + } + + private void doDoDeleteImpl(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, InterruptedException { delete(); if (req == null || rsp == null) { // CLI return; @@ -681,8 +735,28 @@ public void doDoDelete(StaplerRequest req, StaplerResponse rsp) throws IOExcepti rsp.sendRedirect2(req.getContextPath() + '/' + url); } + /** + * @since TODO + */ @Override - public void delete(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void delete(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { + deleteImpl(rsp); + } + + /** + * @deprecated use {@link #delete(StaplerRequest2, StaplerResponse2)} + */ + @Deprecated + @Override + public void delete(StaplerRequest req, StaplerResponse rsp) throws IOException, javax.servlet.ServletException { + try { + deleteImpl(StaplerResponse.toStaplerResponse2(rsp)); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } + } + + private void deleteImpl(StaplerResponse2 rsp) throws IOException, ServletException { try { delete(); rsp.setStatus(204); @@ -755,10 +829,31 @@ protected void performDelete() throws IOException, InterruptedException { /** * Accepts {@code config.xml} submission, as well as serve it. + * + * @since TODO */ @WebMethod(name = "config.xml") + public void doConfigDotXml(StaplerRequest2 req, StaplerResponse2 rsp) + throws IOException { + if (Util.isOverridden(AbstractItem.class, getClass(), "doConfigDotXml", StaplerRequest.class, StaplerResponse.class)) { + doConfigDotXml(StaplerRequest.fromStaplerRequest2(req), StaplerResponse.fromStaplerResponse2(rsp)); + } else { + doConfigDotXmlImpl(req, rsp); + } + } + + /** + * @deprecated use {@link #doConfigDotXml(StaplerRequest2, StaplerResponse2)} + */ + @Deprecated + @StaplerNotDispatchable public void doConfigDotXml(StaplerRequest req, StaplerResponse rsp) throws IOException { + doConfigDotXmlImpl(StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp)); + } + + private void doConfigDotXmlImpl(StaplerRequest2 req, StaplerResponse2 rsp) + throws IOException { if (req.getMethod().equals("GET")) { // read rsp.setContentType("application/xml"); diff --git a/core/src/main/java/hudson/model/AbstractModelObject.java b/core/src/main/java/hudson/model/AbstractModelObject.java index f6c7104f8e42..87b42527a86e 100644 --- a/core/src/main/java/hudson/model/AbstractModelObject.java +++ b/core/src/main/java/hudson/model/AbstractModelObject.java @@ -29,11 +29,14 @@ import hudson.search.SearchIndex; import hudson.search.SearchIndexBuilder; import hudson.search.SearchableModelObject; +import io.jenkins.servlet.ServletExceptionWrapper; +import jakarta.servlet.ServletException; import java.io.IOException; -import javax.servlet.ServletException; import org.kohsuke.stapler.Stapler; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.interceptor.RequirePOST; /** @@ -45,33 +48,69 @@ public abstract class AbstractModelObject implements SearchableModelObject { /** * Displays the error in a page. */ - protected final void sendError(Exception e, StaplerRequest req, StaplerResponse rsp) throws ServletException, IOException { + protected final void sendError(Exception e, StaplerRequest2 req, StaplerResponse2 rsp) throws ServletException, IOException { req.setAttribute("exception", e); sendError(e.getMessage(), req, rsp); } + /** + * @deprecated use {@link #sendError(Exception, StaplerRequest2, StaplerResponse2)} + */ + @Deprecated + protected final void sendError(Exception e, StaplerRequest req, StaplerResponse rsp) throws javax.servlet.ServletException, IOException { + try { + sendError(e, StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp)); + } catch (ServletException ex) { + throw ServletExceptionWrapper.fromJakartaServletException(ex); + } + } + protected final void sendError(Exception e) throws ServletException, IOException { - sendError(e, Stapler.getCurrentRequest(), Stapler.getCurrentResponse()); + sendError(e, Stapler.getCurrentRequest2(), Stapler.getCurrentResponse2()); } - protected final void sendError(String message, StaplerRequest req, StaplerResponse rsp) throws ServletException, IOException { + protected final void sendError(String message, StaplerRequest2 req, StaplerResponse2 rsp) throws ServletException, IOException { req.setAttribute("message", message); rsp.forward(this, "error", req); } + /** + * @deprecated use {@link #sendError(String, StaplerRequest2, StaplerResponse2)} + */ + @Deprecated + protected final void sendError(String message, StaplerRequest req, StaplerResponse rsp) throws javax.servlet.ServletException, IOException { + try { + sendError(message, StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp)); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } + } + /** * @param pre * If true, the message is put in a PRE tag. */ - protected final void sendError(String message, StaplerRequest req, StaplerResponse rsp, boolean pre) throws ServletException, IOException { + protected final void sendError(String message, StaplerRequest2 req, StaplerResponse2 rsp, boolean pre) throws ServletException, IOException { req.setAttribute("message", message); if (pre) req.setAttribute("pre", true); rsp.forward(this, "error", req); } + /** + * @deprecated use {@link #sendError(String, StaplerRequest2, StaplerResponse2, boolean)} + */ + @Deprecated + protected final void sendError(String message, StaplerRequest req, StaplerResponse rsp, boolean pre) throws javax.servlet.ServletException, IOException { + try { + sendError(message, StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp), pre); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } + } + protected final void sendError(String message) throws ServletException, IOException { - sendError(message, Stapler.getCurrentRequest(), Stapler.getCurrentResponse()); + sendError(message, Stapler.getCurrentRequest2(), Stapler.getCurrentResponse2()); } /** @@ -82,7 +121,7 @@ protected final void sendError(String message) throws ServletException, IOExcept */ @Deprecated protected final void requirePOST() throws ServletException { - StaplerRequest req = Stapler.getCurrentRequest(); + StaplerRequest2 req = Stapler.getCurrentRequest2(); if (req == null) return; // invoked outside the context of servlet String method = req.getMethod(); if (!method.equalsIgnoreCase("POST")) diff --git a/core/src/main/java/hudson/model/AbstractProject.java b/core/src/main/java/hudson/model/AbstractProject.java index 917ff1f7b81f..a380943687f7 100644 --- a/core/src/main/java/hudson/model/AbstractProject.java +++ b/core/src/main/java/hudson/model/AbstractProject.java @@ -77,6 +77,8 @@ import hudson.util.AlternativeUiTextProvider.Message; import hudson.util.DescribableList; import hudson.util.FormValidation; +import io.jenkins.servlet.ServletExceptionWrapper; +import jakarta.servlet.ServletException; import java.io.File; import java.io.IOException; import java.util.ArrayList; @@ -96,7 +98,6 @@ import java.util.concurrent.atomic.AtomicReferenceFieldUpdater; import java.util.logging.Level; import java.util.logging.Logger; -import javax.servlet.ServletException; import jenkins.model.BlockedBecauseOfBuildInProgress; import jenkins.model.Jenkins; import jenkins.model.ParameterizedJobMixIn; @@ -120,7 +121,9 @@ import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.interceptor.RequirePOST; import org.kohsuke.stapler.verb.POST; @@ -769,7 +772,7 @@ public List getProminentActions() { @Override @POST - public void doConfigSubmit(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException, FormException { + public void doConfigSubmit(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException, FormException { super.doConfigSubmit(req, rsp); updateTransientActions(); @@ -1726,10 +1729,14 @@ protected SearchIndexBuilder makeSearchIndex() { // // - /** @deprecated use {@link #doBuild(StaplerRequest, StaplerResponse, TimeDuration)} */ + /** @deprecated use {@link #doBuild(StaplerRequest2, StaplerResponse2, TimeDuration)} */ @Deprecated - public void doBuild(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { - doBuild(req, rsp, TimeDuration.fromString(req.getParameter("delay"))); + public void doBuild(StaplerRequest req, StaplerResponse rsp) throws IOException, javax.servlet.ServletException { + try { + doBuild(StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp), TimeDuration.fromString(req.getParameter("delay"))); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } } /** @@ -1739,7 +1746,7 @@ public void doBuild(StaplerRequest req, StaplerResponse rsp) throws IOException, * Inject {@link TimeDuration}. */ @Deprecated - public int getDelay(StaplerRequest req) throws ServletException { + public int getDelay(StaplerRequest req) throws javax.servlet.ServletException { String delay = req.getParameter("delay"); if (delay == null) return getQuietPeriod(); @@ -1749,26 +1756,59 @@ public int getDelay(StaplerRequest req) throws ServletException { if (delay.endsWith("secs")) delay = delay.substring(0, delay.length() - 4); return Integer.parseInt(delay); } catch (NumberFormatException e) { - throw new ServletException("Invalid delay parameter value: " + delay, e); + throw new javax.servlet.ServletException("Invalid delay parameter value: " + delay, e); } } - /** @deprecated use {@link #doBuildWithParameters(StaplerRequest, StaplerResponse, TimeDuration)} */ + /** @deprecated use {@link #doBuildWithParameters(StaplerRequest2, StaplerResponse2, TimeDuration)} */ @Deprecated - public void doBuildWithParameters(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { - doBuildWithParameters(req, rsp, TimeDuration.fromString(req.getParameter("delay"))); + public void doBuildWithParameters(StaplerRequest req, StaplerResponse rsp) throws IOException, javax.servlet.ServletException { + try { + doBuildWithParameters(StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp), TimeDuration.fromString(req.getParameter("delay"))); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } } @Override // in case schedulePolling was overridden - public void doPolling(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doPolling(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { BuildAuthorizationToken.checkPermission((Job) this, authToken, req, rsp); schedulePolling(); rsp.sendRedirect("."); } + /** + * @since TODO + */ + @Override + protected void submit(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException, FormException { + if (Util.isOverridden(AbstractProject.class, getClass(), "submit", StaplerRequest.class, StaplerResponse.class)) { + try { + submit(StaplerRequest.fromStaplerRequest2(req), StaplerResponse.fromStaplerResponse2(rsp)); + } catch (javax.servlet.ServletException e) { + throw ServletExceptionWrapper.toJakartaServletException(e); + } + } else { + super.submit(req, rsp); + submitImpl(req, rsp); + } + } + + /** + * @deprecated use {@link #submit(StaplerRequest2, StaplerResponse2)} + */ + @Deprecated @Override - protected void submit(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException, FormException { + protected void submit(StaplerRequest req, StaplerResponse rsp) throws IOException, javax.servlet.ServletException, FormException { super.submit(req, rsp); + try { + submitImpl(StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp)); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } + } + + private void submitImpl(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException, FormException { JSONObject json = req.getSubmittedForm(); makeDisabled(!json.optBoolean("enable")); @@ -1835,14 +1875,18 @@ protected void submit(StaplerRequest req, StaplerResponse rsp) throws IOExceptio /** * @deprecated - * As of 1.261. Use {@link #buildDescribable(StaplerRequest, List)} instead. + * As of 1.261. Use {@link #buildDescribable(StaplerRequest2, List)} instead. */ @Deprecated - protected final > List buildDescribable(StaplerRequest req, List> descriptors, String prefix) throws FormException, ServletException { - return buildDescribable(req, descriptors); + protected final > List buildDescribable(StaplerRequest req, List> descriptors, String prefix) throws FormException, javax.servlet.ServletException { + try { + return buildDescribable(StaplerRequest.toStaplerRequest2(req), descriptors); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } } - protected final > List buildDescribable(StaplerRequest req, List> descriptors) + protected final > List buildDescribable(StaplerRequest2 req, List> descriptors) throws FormException, ServletException { JSONObject data = req.getSubmittedForm(); @@ -1860,7 +1904,7 @@ protected final > List buildDescribable(StaplerReque /** * Serves the workspace files. */ - public DirectoryBrowserSupport doWs(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException, InterruptedException { + public DirectoryBrowserSupport doWs(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException, InterruptedException { checkPermission(Item.WORKSPACE); FilePath ws = getSomeWorkspace(); if (ws == null || !ws.exists()) { @@ -1887,7 +1931,7 @@ public DirectoryBrowserSupport doWs(StaplerRequest req, StaplerResponse rsp) thr * Wipes out the workspace. */ @RequirePOST - public HttpResponse doDoWipeOutWorkspace() throws IOException, ServletException, InterruptedException { + public HttpResponse doDoWipeOutWorkspace() throws IOException, InterruptedException { checkPermission(Functions.isWipeOutPermissionEnabled() ? WIPEOUT : BUILD); R b = getSomeBuildWithWorkspace(); FilePath ws = b != null ? b.getWorkspace() : null; diff --git a/core/src/main/java/hudson/model/Actionable.java b/core/src/main/java/hudson/model/Actionable.java index 7e3e695d9c4f..d8088319021b 100644 --- a/core/src/main/java/hudson/model/Actionable.java +++ b/core/src/main/java/hudson/model/Actionable.java @@ -37,8 +37,11 @@ import java.util.logging.Logger; import jenkins.model.ModelObjectWithContextMenu; import jenkins.model.TransientActionFactory; +import jenkins.security.stapler.StaplerNotDispatchable; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; @@ -338,7 +341,26 @@ public T getAction(Class type) { return null; } + /** + * @since TODO + */ + public Object getDynamic(String token, StaplerRequest2 req, StaplerResponse2 rsp) { + if (Util.isOverridden(Actionable.class, getClass(), "getDynamic", String.class, StaplerRequest.class, StaplerResponse.class)) { + return getDynamic(token, StaplerRequest.fromStaplerRequest2(req), StaplerResponse.fromStaplerResponse2(rsp)); + } else { + return getDynamicImpl(token, req, rsp); + } + } + + /** + * @deprecated use {@link #getDynamic(String, StaplerRequest2, StaplerResponse2)} + */ + @Deprecated public Object getDynamic(String token, StaplerRequest req, StaplerResponse rsp) { + return getDynamicImpl(token, StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp)); + } + + private Object getDynamicImpl(String token, StaplerRequest2 req, StaplerResponse2 rsp) { for (Action a : getAllActions()) { if (a == null) continue; // be defensive @@ -351,7 +373,29 @@ public Object getDynamic(String token, StaplerRequest req, StaplerResponse rsp) return null; } - @Override public ContextMenu doContextMenu(StaplerRequest request, StaplerResponse response) throws Exception { + /** + * @since TODO + */ + @Override + public ContextMenu doContextMenu(StaplerRequest2 request, StaplerResponse2 response) throws Exception { + if (Util.isOverridden(Actionable.class, getClass(), "doContextMenu", StaplerRequest.class, StaplerResponse.class)) { + return doContextMenu(StaplerRequest.fromStaplerRequest2(request), StaplerResponse.fromStaplerResponse2(response)); + } else { + return doContextMenuImpl(request, response); + } + } + + /** + * @deprecated use {@link #doContextMenu(StaplerRequest2, StaplerResponse2)} + */ + @Deprecated + @StaplerNotDispatchable + @Override + public ContextMenu doContextMenu(StaplerRequest request, StaplerResponse response) throws Exception { + return doContextMenuImpl(StaplerRequest.toStaplerRequest2(request), StaplerResponse.toStaplerResponse2(response)); + } + + private ContextMenu doContextMenuImpl(StaplerRequest2 request, StaplerResponse2 response) throws Exception { return new ContextMenu().from(this, request, response); } diff --git a/core/src/main/java/hudson/model/AdministrativeMonitor.java b/core/src/main/java/hudson/model/AdministrativeMonitor.java index bdbfb48027d3..59518ba79e57 100644 --- a/core/src/main/java/hudson/model/AdministrativeMonitor.java +++ b/core/src/main/java/hudson/model/AdministrativeMonitor.java @@ -37,8 +37,8 @@ import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.StaplerProxy; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.interceptor.RequirePOST; /** @@ -175,7 +175,7 @@ public boolean isSecurity() { * URL binding to disable this monitor. */ @RequirePOST - public void doDisable(StaplerRequest req, StaplerResponse rsp) throws IOException { + public void doDisable(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException { Jenkins.get().checkPermission(Jenkins.ADMINISTER); disable(true); rsp.sendRedirect2(req.getContextPath() + "/manage"); @@ -188,7 +188,7 @@ public void doDisable(StaplerRequest req, StaplerResponse rsp) throws IOExceptio * Changing this permission check to return {@link Jenkins#SYSTEM_READ} will make the active * administrative monitor appear on {@code manage.jelly} and on the globally visible * {@link jenkins.management.AdministrativeMonitorsDecorator} to users without Administer permission. - * {@link #doDisable(StaplerRequest, StaplerResponse)} will still always require Administer permission. + * {@link #doDisable(StaplerRequest2, StaplerResponse2)} will still always require Administer permission. *

    *

    * This method only allows for a single permission to be returned. If more complex permission checks are required, diff --git a/core/src/main/java/hudson/model/AllView.java b/core/src/main/java/hudson/model/AllView.java index ca1ef0d5cc0d..3972625ea7ab 100644 --- a/core/src/main/java/hudson/model/AllView.java +++ b/core/src/main/java/hudson/model/AllView.java @@ -26,7 +26,10 @@ import edu.umd.cs.findbugs.annotations.NonNull; import hudson.Extension; +import hudson.Util; import hudson.model.Descriptor.FormException; +import io.jenkins.servlet.ServletExceptionWrapper; +import jakarta.servlet.ServletException; import java.io.IOException; import java.util.Collection; import java.util.List; @@ -34,12 +37,12 @@ import java.util.Objects; import java.util.logging.Level; import java.util.logging.Logger; -import javax.servlet.ServletException; import jenkins.util.SystemProperties; import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.interceptor.RequirePOST; /** @@ -91,7 +94,7 @@ public String getDisplayName() { @RequirePOST @Override - public Item doCreateItem(StaplerRequest req, StaplerResponse rsp) + public Item doCreateItem(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { ItemGroup ig = getOwner().getItemGroup(); if (ig instanceof ModifiableItemGroup) @@ -110,7 +113,24 @@ public String getPostConstructLandingPage() { } @Override - protected void submit(StaplerRequest req) throws IOException, ServletException, FormException { + protected void submit(StaplerRequest2 req) throws IOException, ServletException, FormException { + if (Util.isOverridden(AllView.class, getClass(), "submit", StaplerRequest.class)) { + try { + submit(StaplerRequest.fromStaplerRequest2(req)); + } catch (javax.servlet.ServletException e) { + throw ServletExceptionWrapper.toJakartaServletException(e); + } + } else { + // noop + } + } + + /** + * @deprecated use {@link #submit(StaplerRequest2)} + */ + @Deprecated + @Override + protected void submit(StaplerRequest req) throws IOException, javax.servlet.ServletException, FormException { // noop } diff --git a/core/src/main/java/hudson/model/Api.java b/core/src/main/java/hudson/model/Api.java index 23e72072112f..4b16e1b0b540 100644 --- a/core/src/main/java/hudson/model/Api.java +++ b/core/src/main/java/hudson/model/Api.java @@ -25,6 +25,10 @@ package hudson.model; import hudson.ExtensionList; +import hudson.Util; +import io.jenkins.servlet.ServletExceptionWrapper; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStream; import java.io.StringReader; @@ -34,11 +38,10 @@ import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletResponse; import javax.xml.transform.stream.StreamResult; import jenkins.model.Jenkins; import jenkins.security.SecureRequester; +import jenkins.security.stapler.StaplerNotDispatchable; import jenkins.util.xml.FilteredFunctionContext; import org.dom4j.CharacterData; import org.dom4j.Document; @@ -52,7 +55,9 @@ import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.Flavor; import org.kohsuke.stapler.export.Model; @@ -96,7 +101,7 @@ public String getSearchUrl() { /** * Exposes the bean as XML. */ - public void doXml(StaplerRequest req, StaplerResponse rsp, + public void doXml(StaplerRequest2 req, StaplerResponse2 rsp, @QueryParameter String xpath, @QueryParameter String wrapper, @QueryParameter String tree, @@ -212,7 +217,7 @@ private boolean isSimpleOutput(Object result) { /** * Generate schema. */ - public void doSchema(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doSchema(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { setHeaders(rsp); rsp.setContentType("application/xml"); StreamResult r = new StreamResult(rsp.getOutputStream()); @@ -223,7 +228,32 @@ public void doSchema(StaplerRequest req, StaplerResponse rsp) throws IOException /** * Exposes the bean as JSON. */ - public void doJson(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doJson(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { + if (Util.isOverridden(Api.class, getClass(), "doJson", StaplerRequest.class, StaplerResponse.class)) { + try { + doJson(StaplerRequest.fromStaplerRequest2(req), StaplerResponse.fromStaplerResponse2(rsp)); + } catch (javax.servlet.ServletException e) { + throw ServletExceptionWrapper.toJakartaServletException(e); + } + } else { + doJsonImpl(req, rsp); + } + } + + /** + * @deprecated use {@link #doJson(StaplerRequest2, StaplerResponse2)} + */ + @Deprecated + @StaplerNotDispatchable + public void doJson(StaplerRequest req, StaplerResponse rsp) throws IOException, javax.servlet.ServletException { + try { + doJsonImpl(StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp)); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } + } + + private void doJsonImpl(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { if (req.getParameter("jsonp") == null || permit(req)) { setHeaders(rsp); rsp.serveExposedBean(req, bean, req.getParameter("jsonp") == null ? Flavor.JSON : Flavor.JSONP); @@ -235,12 +265,37 @@ public void doJson(StaplerRequest req, StaplerResponse rsp) throws IOException, /** * Exposes the bean as Python literal. */ - public void doPython(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doPython(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { + if (Util.isOverridden(Api.class, getClass(), "doPython", StaplerRequest.class, StaplerResponse.class)) { + try { + doPython(StaplerRequest.fromStaplerRequest2(req), StaplerResponse.fromStaplerResponse2(rsp)); + } catch (javax.servlet.ServletException e) { + throw ServletExceptionWrapper.toJakartaServletException(e); + } + } else { + doPythonImpl(req, rsp); + } + } + + /** + * @deprecated use {@link #doPython(StaplerRequest2, StaplerResponse2)} + */ + @Deprecated + @StaplerNotDispatchable + public void doPython(StaplerRequest req, StaplerResponse rsp) throws IOException, javax.servlet.ServletException { + try { + doPythonImpl(StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp)); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } + } + + private void doPythonImpl(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { setHeaders(rsp); rsp.serveExposedBean(req, bean, Flavor.PYTHON); } - private boolean permit(StaplerRequest req) { + private boolean permit(StaplerRequest2 req) { for (SecureRequester r : ExtensionList.lookup(SecureRequester.class)) { if (r.permit(req, bean)) { return true; @@ -250,7 +305,7 @@ private boolean permit(StaplerRequest req) { } @Restricted(NoExternalUse.class) - protected void setHeaders(StaplerResponse rsp) { + protected void setHeaders(StaplerResponse2 rsp) { rsp.setHeader("X-Jenkins", Jenkins.VERSION); rsp.setHeader("X-Jenkins-Session", Jenkins.SESSION_HASH); // to be really defensive against dumb browsers not taking into consideration the content-type being set diff --git a/core/src/main/java/hudson/model/AutoCompletionCandidates.java b/core/src/main/java/hudson/model/AutoCompletionCandidates.java index d2f5f17c255f..366f626e3144 100644 --- a/core/src/main/java/hudson/model/AutoCompletionCandidates.java +++ b/core/src/main/java/hudson/model/AutoCompletionCandidates.java @@ -28,16 +28,16 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import hudson.search.Search; import hudson.search.UserSearchProperty; +import jakarta.servlet.ServletException; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Locale; -import javax.servlet.ServletException; import jenkins.model.Jenkins; import org.kohsuke.stapler.HttpResponse; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.export.Flavor; /** @@ -69,7 +69,7 @@ public List getValues() { } @Override - public void generateResponse(StaplerRequest req, StaplerResponse rsp, Object o) throws IOException, ServletException { + public void generateResponse(StaplerRequest2 req, StaplerResponse2 rsp, Object o) throws IOException, ServletException { Search.Result r = new Search.Result(); for (String value : values) { r.suggestions.add(new hudson.search.Search.Item(value)); diff --git a/core/src/main/java/hudson/model/BallColor.java b/core/src/main/java/hudson/model/BallColor.java index 5913f59466f9..3e8dc2f28802 100644 --- a/core/src/main/java/hudson/model/BallColor.java +++ b/core/src/main/java/hudson/model/BallColor.java @@ -113,7 +113,7 @@ public String getImage() { @Override public String getImageOf(String size) { - return Stapler.getCurrentRequest().getContextPath() + Jenkins.RESOURCE_PATH + "/images/" + size + '/' + image; + return Stapler.getCurrentRequest2().getContextPath() + Jenkins.RESOURCE_PATH + "/images/" + size + '/' + image; } /** diff --git a/core/src/main/java/hudson/model/BooleanParameterDefinition.java b/core/src/main/java/hudson/model/BooleanParameterDefinition.java index 6e9db32216fd..6bf1a50096e3 100644 --- a/core/src/main/java/hudson/model/BooleanParameterDefinition.java +++ b/core/src/main/java/hudson/model/BooleanParameterDefinition.java @@ -33,7 +33,7 @@ import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.DataBoundSetter; -import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; /** * {@link ParameterDefinition} that is either 'true' or 'false'. @@ -79,7 +79,7 @@ public void setDefaultValue(boolean defaultValue) { } @Override - public ParameterValue createValue(StaplerRequest req, JSONObject jo) { + public ParameterValue createValue(StaplerRequest2 req, JSONObject jo) { BooleanParameterValue value = req.bindJSON(BooleanParameterValue.class, jo); value.setDescription(getDescription()); return value; diff --git a/core/src/main/java/hudson/model/BuildAuthorizationToken.java b/core/src/main/java/hudson/model/BuildAuthorizationToken.java index a09ed113e1cf..3611824fb54d 100644 --- a/core/src/main/java/hudson/model/BuildAuthorizationToken.java +++ b/core/src/main/java/hudson/model/BuildAuthorizationToken.java @@ -27,11 +27,13 @@ import com.thoughtworks.xstream.converters.basic.AbstractSingleValueConverter; import hudson.Util; import hudson.security.ACL; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; -import javax.servlet.http.HttpServletResponse; import org.kohsuke.stapler.HttpResponses; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerResponse2; import org.springframework.security.access.AccessDeniedException; /** @@ -51,7 +53,10 @@ public BuildAuthorizationToken(String token) { this.token = token; } - public static BuildAuthorizationToken create(StaplerRequest req) { + /** + * @since TODO + */ + public static BuildAuthorizationToken create(StaplerRequest2 req) { if (req.getParameter("pseudoRemoteTrigger") != null) { String token = Util.fixEmpty(req.getParameter("authToken")); if (token != null) @@ -61,11 +66,22 @@ public static BuildAuthorizationToken create(StaplerRequest req) { return null; } + /** + * @deprecated use {@link #create(StaplerRequest2)} + */ + @Deprecated + public static BuildAuthorizationToken create(StaplerRequest req) { + return create(StaplerRequest.toStaplerRequest2(req)); + } + @Deprecated public static void checkPermission(AbstractProject project, BuildAuthorizationToken token, StaplerRequest req, StaplerResponse rsp) throws IOException { - checkPermission((Job) project, token, req, rsp); + checkPermission((Job) project, token, StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp)); } - public static void checkPermission(Job project, BuildAuthorizationToken token, StaplerRequest req, StaplerResponse rsp) throws IOException { + /** + * @since TODO + */ + public static void checkPermission(Job project, BuildAuthorizationToken token, StaplerRequest2 req, StaplerResponse2 rsp) throws IOException { if (token != null && token.token != null) { //check the provided token String providedToken = req.getParameter("token"); @@ -86,6 +102,14 @@ public static void checkPermission(Job project, BuildAuthorizationToken to throw HttpResponses.forwardToView(project, "requirePOST.jelly"); } + /** + * @deprecated use {@link #checkPermission(Job, BuildAuthorizationToken, StaplerRequest2, StaplerResponse2)} + */ + @Deprecated + public static void checkPermission(Job project, BuildAuthorizationToken token, StaplerRequest req, StaplerResponse rsp) throws IOException { + checkPermission(project, token, StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp)); + } + public String getToken() { return token; } diff --git a/core/src/main/java/hudson/model/BuildTimelineWidget.java b/core/src/main/java/hudson/model/BuildTimelineWidget.java index 9691969162d4..4f5ccbf1c67a 100644 --- a/core/src/main/java/hudson/model/BuildTimelineWidget.java +++ b/core/src/main/java/hudson/model/BuildTimelineWidget.java @@ -25,12 +25,15 @@ package hudson.model; import hudson.util.RunList; +import jakarta.servlet.ServletException; +import java.io.IOException; import java.util.ArrayList; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.QueryParameter; -import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; /** * UI widget for showing the SIMILE timeline control. @@ -60,12 +63,15 @@ public BuildTimelineWidget(RunList builds) { return builds.getLastBuild(); } - public HttpResponse doData(StaplerRequest req, @QueryParameter long min, @QueryParameter long max) { - return (req1, rsp, node) -> { - JSONObject o = new JSONObject(); - o.put("events", JSONArray.fromObject(new ArrayList<>())); - rsp.setContentType("text/javascript;charset=UTF-8"); - o.write(rsp.getWriter()); + public HttpResponse doData(StaplerRequest2 req, @QueryParameter long min, @QueryParameter long max) { + return new HttpResponse() { + @Override + public void generateResponse(StaplerRequest2 req, StaplerResponse2 rsp, Object node) throws IOException, ServletException { + JSONObject o = new JSONObject(); + o.put("events", JSONArray.fromObject(new ArrayList<>())); + rsp.setContentType("text/javascript;charset=UTF-8"); + o.write(rsp.getWriter()); + } }; } diff --git a/core/src/main/java/hudson/model/ChoiceParameterDefinition.java b/core/src/main/java/hudson/model/ChoiceParameterDefinition.java index 7b12a9b2cee3..98bdcf2e8072 100644 --- a/core/src/main/java/hudson/model/ChoiceParameterDefinition.java +++ b/core/src/main/java/hudson/model/ChoiceParameterDefinition.java @@ -20,7 +20,7 @@ import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.DataBoundSetter; import org.kohsuke.stapler.QueryParameter; -import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.export.Exported; /** @@ -152,7 +152,7 @@ public boolean isValid(ParameterValue value) { } @Override - public ParameterValue createValue(StaplerRequest req, JSONObject jo) { + public ParameterValue createValue(StaplerRequest2 req, JSONObject jo) { StringParameterValue value = req.bindJSON(StringParameterValue.class, jo); value.setDescription(getDescription()); checkValue(value, value.getValue()); @@ -218,7 +218,7 @@ public String getHelpFile() { /* * We need this for JENKINS-26143 -- reflective creation cannot handle setChoices(Object). See that method for context. */ - public ParameterDefinition newInstance(@Nullable StaplerRequest req, @NonNull JSONObject formData) throws FormException { + public ParameterDefinition newInstance(@Nullable StaplerRequest2 req, @NonNull JSONObject formData) throws FormException { String name = formData.getString("name"); String desc = formData.getString("description"); String choiceText = formData.getString("choices"); diff --git a/core/src/main/java/hudson/model/Computer.java b/core/src/main/java/hudson/model/Computer.java index 14a311381a37..a4878a2c8f91 100644 --- a/core/src/main/java/hudson/model/Computer.java +++ b/core/src/main/java/hudson/model/Computer.java @@ -26,7 +26,7 @@ package hudson.model; -import static javax.servlet.http.HttpServletResponse.SC_BAD_REQUEST; +import static jakarta.servlet.http.HttpServletResponse.SC_BAD_REQUEST; import edu.umd.cs.findbugs.annotations.CheckForNull; import edu.umd.cs.findbugs.annotations.NonNull; @@ -73,6 +73,7 @@ import hudson.util.RemotingDiagnostics; import hudson.util.RemotingDiagnostics.HeapDump; import hudson.util.RunList; +import jakarta.servlet.ServletException; import java.io.File; import java.io.IOException; import java.io.InputStream; @@ -105,7 +106,6 @@ import java.util.logging.Logger; import java.util.regex.Matcher; import java.util.regex.Pattern; -import javax.servlet.ServletException; import jenkins.model.Jenkins; import jenkins.security.ImpersonatingExecutorService; import jenkins.security.MasterToSlaveCallable; @@ -129,8 +129,8 @@ import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.Stapler; import org.kohsuke.stapler.StaplerProxy; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.WebMethod; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; @@ -227,7 +227,7 @@ * @since 1.607 */ public void recordTermination() { - StaplerRequest request = Stapler.getCurrentRequest(); + StaplerRequest2 request = Stapler.getCurrentRequest2(); if (request != null) { terminatedBy.add(new TerminationRequest( String.format("Termination requested at %s by %s [id=%d] from HTTP request for %s", @@ -416,7 +416,7 @@ public String getOfflineCauseReason() { /** * If {@link #getChannel()}==null, attempts to relaunch the agent. */ - public abstract void doLaunchSlaveAgent(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException; + public abstract void doLaunchSlaveAgent(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException; /** * @deprecated since 2009-01-06. Use {@link #connect(boolean)} @@ -427,7 +427,7 @@ public final void launch() { } /** - * Do the same as {@link #doLaunchSlaveAgent(StaplerRequest, StaplerResponse)} + * Do the same as {@link #doLaunchSlaveAgent(StaplerRequest2, StaplerResponse2)} * but outside the context of serving a request. * *

    @@ -1391,12 +1391,12 @@ public String call() throws IOException { // // @Restricted(DoNotUse.class) - public void doRssAll(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doRssAll(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { RSS.rss(req, rsp, "Jenkins:" + getDisplayName() + " (all builds)", getUrl(), getBuilds()); } @Restricted(DoNotUse.class) - public void doRssFailed(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doRssFailed(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { RSS.rss(req, rsp, "Jenkins:" + getDisplayName() + " (failed builds)", getUrl(), getBuilds().failureOnly()); } @@ -1407,7 +1407,7 @@ public void doRssFailed(StaplerRequest req, StaplerResponse rsp) throws IOExcept * @since 2.215 */ @Restricted(DoNotUse.class) - public void doRssLatest(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doRssLatest(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { final List lastBuilds = new ArrayList<>(); for (AbstractProject p : Jenkins.get().allItems(AbstractProject.class)) { if (p.getLastBuild() != null) { @@ -1452,7 +1452,7 @@ public Api getApi() { /** * Dumps the contents of the export table. */ - public void doDumpExportTable(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException, InterruptedException { + public void doDumpExportTable(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException, InterruptedException { // this is a debug probe and may expose sensitive information checkPermission(Jenkins.ADMINISTER); @@ -1488,18 +1488,18 @@ public String call() throws IOException { * For system diagnostics. * Run arbitrary Groovy script. */ - public void doScript(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doScript(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { _doScript(req, rsp, "_script.jelly"); } /** * Run arbitrary Groovy script and return result as plain text. */ - public void doScriptText(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doScriptText(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { _doScript(req, rsp, "_scriptText.jelly"); } - protected void _doScript(StaplerRequest req, StaplerResponse rsp, String view) throws IOException, ServletException { + protected void _doScript(StaplerRequest2 req, StaplerResponse2 rsp, String view) throws IOException, ServletException { Jenkins._doScript(req, rsp, req.getView(this, view), getChannel(), getACL()); } @@ -1507,7 +1507,7 @@ protected void _doScript(StaplerRequest req, StaplerResponse rsp, String view) t * Accepts the update to the node configuration. */ @POST - public void doConfigSubmit(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException, FormException { + public void doConfigSubmit(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException, FormException { checkPermission(CONFIGURE); String proposedName = Util.fixEmptyAndTrim(req.getSubmittedForm().getString("name")); @@ -1547,7 +1547,7 @@ public void doConfigSubmit(StaplerRequest req, StaplerResponse rsp) throws IOExc * Accepts {@code config.xml} submission, as well as serve it. */ @WebMethod(name = "config.xml") - public void doConfigDotXml(StaplerRequest req, StaplerResponse rsp) + public void doConfigDotXml(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { if (req.getMethod().equals("GET")) { @@ -1626,7 +1626,7 @@ public void waitUntilOffline() throws InterruptedException { /** * Handles incremental log. */ - public void doProgressiveLog(StaplerRequest req, StaplerResponse rsp) throws IOException { + public void doProgressiveLog(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException { getLogText().doProgressText(req, rsp); } diff --git a/core/src/main/java/hudson/model/ComputerSet.java b/core/src/main/java/hudson/model/ComputerSet.java index 5cb798978dea..f25d25a19a50 100644 --- a/core/src/main/java/hudson/model/ComputerSet.java +++ b/core/src/main/java/hudson/model/ComputerSet.java @@ -41,6 +41,7 @@ import hudson.util.DescribableList; import hudson.util.FormApply; import hudson.util.FormValidation; +import jakarta.servlet.ServletException; import java.io.File; import java.io.IOException; import java.lang.reflect.InvocationTargetException; @@ -52,7 +53,6 @@ import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; -import javax.servlet.ServletException; import jenkins.model.Jenkins; import jenkins.model.ModelObjectWithChildren; import jenkins.model.ModelObjectWithContextMenu.ContextMenu; @@ -61,8 +61,8 @@ import net.sf.json.JSONObject; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.QueryParameter; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; import org.kohsuke.stapler.interceptor.RequirePOST; @@ -112,7 +112,7 @@ public Computer[] get_all() { } @Override - public ContextMenu doChildrenContextMenu(StaplerRequest request, StaplerResponse response) throws Exception { + public ContextMenu doChildrenContextMenu(StaplerRequest2 request, StaplerResponse2 response) throws Exception { ContextMenu m = new ContextMenu(); for (Computer c : get_all()) { m.add(c); @@ -206,12 +206,12 @@ public String getSearchUrl() { return "/computers/"; } - public Computer getDynamic(String token, StaplerRequest req, StaplerResponse rsp) { + public Computer getDynamic(String token, StaplerRequest2 req, StaplerResponse2 rsp) { return Jenkins.get().getComputer(token); } @RequirePOST - public void do_launchAll(StaplerRequest req, StaplerResponse rsp) throws IOException { + public void do_launchAll(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException { Jenkins.get().checkPermission(Jenkins.ADMINISTER); for (Computer c : get_all()) { @@ -227,7 +227,7 @@ public void do_launchAll(StaplerRequest req, StaplerResponse rsp) throws IOExcep * TODO: ajax on the client side to wait until the update completion might be nice. */ @RequirePOST - public void doUpdateNow(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doUpdateNow(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { Jenkins.get().checkPermission(Jenkins.MANAGE); for (NodeMonitor nodeMonitor : NodeMonitor.getAll()) { @@ -244,7 +244,7 @@ public void doUpdateNow(StaplerRequest req, StaplerResponse rsp) throws IOExcept * First check point in creating a new agent. */ @RequirePOST - public synchronized void doCreateItem(StaplerRequest req, StaplerResponse rsp, + public synchronized void doCreateItem(StaplerRequest2 req, StaplerResponse2 rsp, @QueryParameter String name, @QueryParameter String mode, @QueryParameter String from) throws IOException, ServletException { final Jenkins app = Jenkins.get(); @@ -290,7 +290,7 @@ public synchronized void doCreateItem(StaplerRequest req, StaplerResponse rsp, * Really creates a new agent. */ @POST - public synchronized void doDoCreateItem(StaplerRequest req, StaplerResponse rsp, + public synchronized void doDoCreateItem(StaplerRequest2 req, StaplerResponse2 rsp, @QueryParameter String name, @QueryParameter String type) throws IOException, ServletException, FormException { final Jenkins app = Jenkins.get(); @@ -348,7 +348,7 @@ public FormValidation doCheckName(@QueryParameter String value) throws IOExcepti * Accepts submission from the configuration page. */ @POST - public synchronized HttpResponse doConfigSubmit(StaplerRequest req) throws IOException, ServletException, FormException { + public synchronized HttpResponse doConfigSubmit(StaplerRequest2 req) throws IOException, ServletException, FormException { BulkChange bc = new BulkChange(MONITORS_OWNER); try { Jenkins.get().checkPermission(Jenkins.MANAGE); diff --git a/core/src/main/java/hudson/model/Descriptor.java b/core/src/main/java/hudson/model/Descriptor.java index b5eb07784d27..e2067bfc6944 100644 --- a/core/src/main/java/hudson/model/Descriptor.java +++ b/core/src/main/java/hudson/model/Descriptor.java @@ -25,7 +25,7 @@ package hudson.model; import static hudson.util.QuotedStringTokenizer.quote; -import static javax.servlet.http.HttpServletResponse.SC_NOT_FOUND; +import static jakarta.servlet.http.HttpServletResponse.SC_NOT_FOUND; import edu.umd.cs.findbugs.annotations.CheckForNull; import edu.umd.cs.findbugs.annotations.NonNull; @@ -45,6 +45,9 @@ import hudson.util.ReflectionUtils; import hudson.util.ReflectionUtils.Parameter; import hudson.views.ListViewColumn; +import io.jenkins.servlet.ServletExceptionWrapper; +import jakarta.servlet.RequestDispatcher; +import jakarta.servlet.ServletException; import java.beans.Introspector; import java.io.File; import java.io.IOException; @@ -71,13 +74,12 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; -import javax.servlet.RequestDispatcher; -import javax.servlet.ServletException; import jenkins.model.GlobalConfiguration; import jenkins.model.GlobalConfigurationCategory; import jenkins.model.Jenkins; import jenkins.model.Loadable; import jenkins.security.RedactSecretJsonInErrorMessageSanitizer; +import jenkins.security.stapler.StaplerNotDispatchable; import jenkins.util.io.OnMaster; import net.sf.json.JSONArray; import net.sf.json.JSONObject; @@ -92,7 +94,9 @@ import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.Stapler; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.WebApp; import org.kohsuke.stapler.jelly.JellyCompatibleFacet; import org.kohsuke.stapler.lang.Klass; @@ -382,7 +386,7 @@ public final String getDescriptorFullUrl() { * @since 1.402 */ public static String getCurrentDescriptorByNameUrl() { - StaplerRequest req = Stapler.getCurrentRequest(); + StaplerRequest2 req = Stapler.getCurrentRequest2(); // this override allows RenderOnDemandClosure to preserve the proper value Object url = req.getAttribute("currentDescriptorByNameUrl"); @@ -576,16 +580,33 @@ public T newInstance(StaplerRequest req) throws FormException { * * @throws FormException * Signals a problem in the submitted form. + * @since TODO + */ + public T newInstance(@Nullable StaplerRequest2 req, @NonNull JSONObject formData) throws FormException { + if (Util.isOverridden(Descriptor.class, getClass(), "newInstance", StaplerRequest.class, JSONObject.class)) { + return newInstance(req != null ? StaplerRequest.fromStaplerRequest2(req) : null, formData); + } else { + return newInstanceImpl(req, formData); + } + } + + /** + * @deprecated use {@link #newInstance(StaplerRequest2, JSONObject)} * @since 1.145 */ + @Deprecated public T newInstance(@Nullable StaplerRequest req, @NonNull JSONObject formData) throws FormException { + return newInstanceImpl(req != null ? StaplerRequest.toStaplerRequest2(req) : null, formData); + } + + private T newInstanceImpl(@Nullable StaplerRequest2 req, @NonNull JSONObject formData) throws FormException { try { Method m = getClass().getMethod("newInstance", StaplerRequest.class); if (!Modifier.isAbstract(m.getDeclaringClass().getModifiers())) { // this class overrides newInstance(StaplerRequest). // maintain the backward compatible behavior - return verifyNewInstance(newInstance(req)); + return verifyNewInstance(newInstance(StaplerRequest.fromStaplerRequest2(req))); } else { if (req == null) { // yes, req is supposed to be always non-null, but see the note above @@ -602,16 +623,25 @@ public T newInstance(@Nullable StaplerRequest req, @NonNull JSONObject formData) } /** - * Replacement for {@link StaplerRequest#bindJSON(Class, JSONObject)} which honors {@link #newInstance(StaplerRequest, JSONObject)}. - * This is automatically used inside {@link #newInstance(StaplerRequest, JSONObject)} so a direct call would only be necessary - * in case the top level binding might use a {@link Descriptor} which overrides {@link #newInstance(StaplerRequest, JSONObject)}. + * Replacement for {@link StaplerRequest2#bindJSON(Class, JSONObject)} which honors {@link #newInstance(StaplerRequest2, JSONObject)}. + * This is automatically used inside {@link #newInstance(StaplerRequest2, JSONObject)} so a direct call would only be necessary + * in case the top level binding might use a {@link Descriptor} which overrides {@link #newInstance(StaplerRequest2, JSONObject)}. + * @since TODO + */ + public static T bindJSON(StaplerRequest2 req, Class type, JSONObject src) { + return bindJSON(req, type, src, false); + } + + /** + * @deprecated use {@link #bindJSON(StaplerRequest2, Class, JSONObject)} * @since 2.342 */ + @Deprecated public static T bindJSON(StaplerRequest req, Class type, JSONObject src) { - return bindJSON(req, type, src, false); + return bindJSON(StaplerRequest.toStaplerRequest2(req), type, src); } - private static T bindJSON(StaplerRequest req, Class type, JSONObject src, boolean fromNewInstance) { + private static T bindJSON(StaplerRequest2 req, Class type, JSONObject src, boolean fromNewInstance) { BindInterceptor oldInterceptor = req.getBindInterceptor(); try { NewInstanceBindInterceptor interceptor; @@ -631,9 +661,9 @@ private static T bindJSON(StaplerRequest req, Class type, JSONObject src, } /** - * Ensures that calls to {@link StaplerRequest#bindJSON(Class, JSONObject)} from {@link #newInstance(StaplerRequest, JSONObject)} recurse properly. + * Ensures that calls to {@link StaplerRequest2#bindJSON(Class, JSONObject)} from {@link #newInstance(StaplerRequest2, JSONObject)} recurse properly. * {@code doConfigSubmit}-like methods will wind up calling {@code newInstance} directly - * or via {@link #newInstancesFromHeteroList(StaplerRequest, Object, Collection)}, + * or via {@link #newInstancesFromHeteroList(StaplerRequest2, Object, Collection)}, * which consult any custom {@code newInstance} overrides for top-level {@link Describable} objects. * But for nested describable objects Stapler would know nothing about {@code newInstance} without this trick. */ @@ -671,7 +701,7 @@ public Object instantiate(Class actualType, JSONObject json) { try { final Descriptor descriptor = Jenkins.get().getDescriptor(actualType); if (descriptor != null) { - return descriptor.newInstance(Stapler.getCurrentRequest(), json); + return descriptor.newInstance(Stapler.getCurrentRequest2(), json); } else { LOGGER.log(Level.WARNING, "Descriptor not found. Falling back to default instantiation " + actualType.getName() + " " + json); @@ -694,7 +724,7 @@ public Object onConvert(Type targetType, Class targetTypeErasure, Object jsonSou if (isApplicable(targetTypeErasure, json)) { LOGGER.log(Level.FINE, "switching to newInstance {0} {1}", new Object[] {targetTypeErasure.getName(), json}); try { - return Jenkins.get().getDescriptor(targetTypeErasure).newInstance(Stapler.getCurrentRequest(), json); + return Jenkins.get().getDescriptor(targetTypeErasure).newInstance(Stapler.getCurrentRequest2(), json); } catch (Exception x) { LOGGER.log(Level.WARNING, "falling back to default instantiation " + targetTypeErasure.getName() + " " + json, x); } @@ -776,13 +806,13 @@ public String getHelpFile(Klass clazz, String fieldName) { } try { - if (Stapler.getCurrentRequest().getView(c, "help" + suffix) != null) + if (Stapler.getCurrentRequest2().getView(c, "help" + suffix) != null) return page; } catch (IOException e) { throw new Error(e); } - if (getStaticHelpUrl(Stapler.getCurrentRequest(), c, suffix) != null) return page; + if (getStaticHelpUrl(Stapler.getCurrentRequest2(), c, suffix) != null) return page; } return null; } @@ -812,7 +842,7 @@ public final boolean isSubTypeOf(Class type) { /** * @deprecated - * As of 1.239, use {@link #configure(StaplerRequest, JSONObject)}. + * As of 1.239, use {@link #configure(StaplerRequest2, JSONObject)}. */ @Deprecated public boolean configure(StaplerRequest req) throws FormException { @@ -829,7 +859,21 @@ public boolean configure(StaplerRequest req) throws FormException { * See the developer documentation. * @return false * to keep the client in the same config page. + * @since TODO */ + public boolean configure(StaplerRequest2 req, JSONObject json) throws FormException { + if (Util.isOverridden(Descriptor.class, getClass(), "configure", StaplerRequest.class, JSONObject.class)) { + return configure(StaplerRequest.fromStaplerRequest2(req), json); + } else { + // compatibility + return configure(StaplerRequest.fromStaplerRequest2(req)); + } + } + + /** + * @deprecated use {@link #configure(StaplerRequest2, JSONObject)} + */ + @Deprecated public boolean configure(StaplerRequest req, JSONObject json) throws FormException { // compatibility return configure(req); @@ -895,7 +939,7 @@ protected final String getViewPage(Class clazz, String pageName) { protected List getPossibleViewNames(String baseName) { List names = new ArrayList<>(); - for (Facet f : WebApp.get(Jenkins.get().servletContext).facets) { + for (Facet f : WebApp.get(Jenkins.get().getServletContext()).facets) { if (f instanceof JellyCompatibleFacet jcf) { for (String ext : jcf.getScriptExtensions()) names.add(baseName + ext); @@ -957,7 +1001,32 @@ protected PluginWrapper getPlugin() { /** * Serves {@code help.html} from the resource of {@link #clazz}. */ - public void doHelp(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doHelp(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { + if (Util.isOverridden(Descriptor.class, getClass(), "doHelp", StaplerRequest.class, StaplerResponse.class)) { + try { + doHelp(StaplerRequest.fromStaplerRequest2(req), StaplerResponse.fromStaplerResponse2(rsp)); + } catch (javax.servlet.ServletException e) { + throw ServletExceptionWrapper.toJakartaServletException(e); + } + } else { + doHelpImpl(req, rsp); + } + } + + /** + * @deprecated use {@link #doHelp(StaplerRequest2, StaplerResponse2)} + */ + @Deprecated + @StaplerNotDispatchable + public void doHelp(StaplerRequest req, StaplerResponse rsp) throws IOException, javax.servlet.ServletException { + try { + doHelpImpl(StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp)); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } + } + + private void doHelpImpl(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { String path = req.getRestOfPath(); if (path.contains("..")) throw new ServletException("Illegal path: " + path); @@ -972,13 +1041,13 @@ public void doHelp(StaplerRequest req, StaplerResponse rsp) throws IOException, } for (Klass c = getKlass(); c != null; c = c.getSuperClass()) { - RequestDispatcher rd = Stapler.getCurrentRequest().getView(c, "help" + path); + RequestDispatcher rd = Stapler.getCurrentRequest2().getView(c, "help" + path); if (rd != null) { // template based help page rd.forward(req, rsp); return; } - URL url = getStaticHelpUrl(Stapler.getCurrentRequest(), c, path); + URL url = getStaticHelpUrl(Stapler.getCurrentRequest2(), c, path); if (url != null) { // TODO: generalize macro expansion and perhaps even support JEXL rsp.setContentType("text/html;charset=UTF-8"); @@ -992,8 +1061,11 @@ public void doHelp(StaplerRequest req, StaplerResponse rsp) throws IOException, rsp.sendError(SC_NOT_FOUND); } + /** + * @since TODO + */ @Restricted(NoExternalUse.class) - public static URL getStaticHelpUrl(StaplerRequest req, Klass c, String suffix) { + public static URL getStaticHelpUrl(StaplerRequest2 req, Klass c, String suffix) { String base = "help" + suffix; URL url; @@ -1017,6 +1089,15 @@ public static URL getStaticHelpUrl(StaplerRequest req, Klass c, String suffix return c.getResource(base + ".html"); } + /** + * @deprecated use {@link #getStaticHelpUrl(StaplerRequest2, Klass, String)} + */ + @Deprecated + @Restricted(NoExternalUse.class) + public static URL getStaticHelpUrl(StaplerRequest req, Klass c, String suffix) { + return getStaticHelpUrl(StaplerRequest.toStaplerRequest2(req), c, suffix); + } + // // static methods @@ -1061,16 +1142,30 @@ Map, T> toMap(Iterable describables) { * List of descriptors to create instances from. * @return * Can be empty but never null. + * @since TODO */ public static > - List newInstancesFromHeteroList(StaplerRequest req, JSONObject formData, String key, + List newInstancesFromHeteroList(StaplerRequest2 req, JSONObject formData, String key, Collection> descriptors) throws FormException { return newInstancesFromHeteroList(req, formData.get(key), descriptors); } + /** + * @deprecated use {@link #newInstancesFromHeteroList(StaplerRequest2, JSONObject, String, Collection)} + */ + @Deprecated + public static > + List newInstancesFromHeteroList(StaplerRequest req, JSONObject formData, String key, + Collection> descriptors) throws FormException { + return newInstancesFromHeteroList(StaplerRequest.toStaplerRequest2(req), formData, key, descriptors); + } + + /** + * @since TODO + */ public static > - List newInstancesFromHeteroList(StaplerRequest req, Object formData, + List newInstancesFromHeteroList(StaplerRequest2 req, Object formData, Collection> descriptors) throws FormException { List items = new ArrayList<>(); @@ -1086,7 +1181,7 @@ List newInstancesFromHeteroList(StaplerRequest req, Object formData, if (kind != null) { // Only applies when Descriptor.getId is overridden. // Note that kind is only supported here, - // *not* inside the StaplerRequest.bindJSON which is normally called by newInstance + // *not* inside the StaplerRequest2.bindJSON which is normally called by newInstance // (since Descriptor.newInstance is not itself available to Stapler). // If you merely override getId for some reason, but use @DataBoundConstructor on your Describable, // there is no problem; but you can only rely on newInstance being called at top level. @@ -1114,6 +1209,16 @@ List newInstancesFromHeteroList(StaplerRequest req, Object formData, return items; } + /** + * @deprecated use {@link #newInstancesFromHeteroList(StaplerRequest2, JSONObject, String, Collection)} + */ + @Deprecated + public static > + List newInstancesFromHeteroList(StaplerRequest req, Object formData, + Collection> descriptors) throws FormException { + return newInstancesFromHeteroList(StaplerRequest.toStaplerRequest2(req), formData, descriptors); + } + /** * Finds a descriptor from a collection by its ID. * @param id should match {@link #getId} @@ -1199,7 +1304,7 @@ public String getFormField() { } @Override - public void generateResponse(StaplerRequest req, StaplerResponse rsp, Object node) throws IOException, ServletException { + public void generateResponse(StaplerRequest2 req, StaplerResponse2 rsp, Object node) throws IOException, ServletException { if (FormApply.isApply(req)) { FormApply.applyResponse("notificationBar.show(" + quote(getMessage()) + ",notificationBar.ERROR)") .generateResponse(req, rsp, node); diff --git a/core/src/main/java/hudson/model/DirectlyModifiableView.java b/core/src/main/java/hudson/model/DirectlyModifiableView.java index 61362272c248..138f33a6a32c 100644 --- a/core/src/main/java/hudson/model/DirectlyModifiableView.java +++ b/core/src/main/java/hudson/model/DirectlyModifiableView.java @@ -26,8 +26,8 @@ import edu.umd.cs.findbugs.annotations.NonNull; +import jakarta.servlet.ServletException; import java.io.IOException; -import javax.servlet.ServletException; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.interceptor.RequirePOST; diff --git a/core/src/main/java/hudson/model/DirectoryBrowserSupport.java b/core/src/main/java/hudson/model/DirectoryBrowserSupport.java index 9d455f4c1bd3..72da0c7514c1 100644 --- a/core/src/main/java/hudson/model/DirectoryBrowserSupport.java +++ b/core/src/main/java/hudson/model/DirectoryBrowserSupport.java @@ -27,6 +27,9 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import hudson.FilePath; import hudson.Util; +import io.jenkins.servlet.ServletExceptionWrapper; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; import java.io.InputStream; @@ -55,8 +58,6 @@ import java.util.regex.Pattern; import java.util.stream.Collectors; import java.util.stream.Stream; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletResponse; import jenkins.model.Jenkins; import jenkins.security.MasterToSlaveCallable; import jenkins.security.ResourceDomainConfiguration; @@ -70,7 +71,9 @@ import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerResponse2; /** * Has convenience methods to serve file system. @@ -157,7 +160,7 @@ public DirectoryBrowserSupport(ModelObject owner, VirtualFile base, String title } @Override - public void generateResponse(StaplerRequest req, StaplerResponse rsp, Object node) throws IOException, ServletException { + public void generateResponse(StaplerRequest2 req, StaplerResponse2 rsp, Object node) throws IOException, ServletException { if (!ResourceDomainConfiguration.isResourceRequest(req) && ResourceDomainConfiguration.isResourceDomainConfigured()) { resourceToken = ResourceDomainRootAction.get().getToken(this, req); } @@ -191,11 +194,15 @@ public void setIndexFileName(String fileName) { * from the {@code doXYZ} method and let Stapler generate a response for you. */ @Deprecated - public void serveFile(StaplerRequest req, StaplerResponse rsp, FilePath root, String icon, boolean serveDirIndex) throws IOException, ServletException, InterruptedException { - serveFile(req, rsp, root.toVirtualFile(), icon, serveDirIndex); + public void serveFile(StaplerRequest req, StaplerResponse rsp, FilePath root, String icon, boolean serveDirIndex) throws IOException, javax.servlet.ServletException, InterruptedException { + try { + serveFile(StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp), root.toVirtualFile(), icon, serveDirIndex); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } } - private void serveFile(StaplerRequest req, StaplerResponse rsp, VirtualFile root, String icon, boolean serveDirIndex) throws IOException, ServletException, InterruptedException { + private void serveFile(StaplerRequest2 req, StaplerResponse2 rsp, VirtualFile root, String icon, boolean serveDirIndex) throws IOException, ServletException, InterruptedException { // handle form submission String pattern = req.getParameter("pattern"); if (pattern == null) @@ -492,7 +499,7 @@ private boolean isDescendant(VirtualFile root, String relativePath) { } } - private String getPath(StaplerRequest req) { + private String getPath(StaplerRequest2 req) { String path = req.getRestOfPath(); if (path.isEmpty()) path = "/"; @@ -521,7 +528,7 @@ private static String createBackRef(int times) { return "../".repeat(times); } - private static void zip(StaplerResponse rsp, VirtualFile root, VirtualFile dir, String glob) throws IOException, InterruptedException { + private static void zip(StaplerResponse2 rsp, VirtualFile root, VirtualFile dir, String glob) throws IOException, InterruptedException { OutputStream outputStream = rsp.getOutputStream(); try (ZipOutputStream zos = new ZipOutputStream(outputStream)) { zos.setEncoding(Charset.defaultCharset().displayName()); // TODO JENKINS-20663 make this overridable via query parameter diff --git a/core/src/main/java/hudson/model/Executor.java b/core/src/main/java/hudson/model/Executor.java index 020399bdd5b8..94aa1c770d21 100644 --- a/core/src/main/java/hudson/model/Executor.java +++ b/core/src/main/java/hudson/model/Executor.java @@ -59,7 +59,6 @@ import java.util.logging.Level; import java.util.logging.Logger; import java.util.stream.Collectors; -import javax.servlet.ServletException; import jenkins.model.CauseOfInterruption; import jenkins.model.CauseOfInterruption.UserInterruption; import jenkins.model.InterruptedBuildAction; @@ -852,7 +851,7 @@ public void start() { */ @RequirePOST @Deprecated - public void doStop(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doStop(StaplerRequest req, StaplerResponse rsp) throws IOException, javax.servlet.ServletException { doStop().generateResponse(req, rsp, this); } diff --git a/core/src/main/java/hudson/model/Failure.java b/core/src/main/java/hudson/model/Failure.java index 71318dd0464b..0546f0a7e090 100644 --- a/core/src/main/java/hudson/model/Failure.java +++ b/core/src/main/java/hudson/model/Failure.java @@ -25,12 +25,12 @@ package hudson.model; import edu.umd.cs.findbugs.annotations.CheckForNull; +import jakarta.servlet.ServletException; import java.io.IOException; -import javax.servlet.ServletException; import jenkins.model.Jenkins; import org.kohsuke.stapler.HttpResponse; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; /** * Represents an error induced by user, encountered during HTTP request processing. @@ -55,7 +55,7 @@ public Failure(String message, boolean pre) { this.pre = pre; } - public void generateResponse(StaplerRequest req, StaplerResponse rsp, Object node, @CheckForNull Throwable throwable) throws IOException, ServletException { + public void generateResponse(StaplerRequest2 req, StaplerResponse2 rsp, Object node, @CheckForNull Throwable throwable) throws IOException, ServletException { if (throwable != null) { req.setAttribute("exception", throwable); } @@ -63,7 +63,7 @@ public void generateResponse(StaplerRequest req, StaplerResponse rsp, Object nod } @Override - public void generateResponse(StaplerRequest req, StaplerResponse rsp, Object node) throws IOException, ServletException { + public void generateResponse(StaplerRequest2 req, StaplerResponse2 rsp, Object node) throws IOException, ServletException { req.setAttribute("message", getMessage()); if (pre) req.setAttribute("pre", true); diff --git a/core/src/main/java/hudson/model/FileParameterDefinition.java b/core/src/main/java/hudson/model/FileParameterDefinition.java index 25cb08336da3..b8332f5911c5 100644 --- a/core/src/main/java/hudson/model/FileParameterDefinition.java +++ b/core/src/main/java/hudson/model/FileParameterDefinition.java @@ -29,17 +29,17 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import hudson.Extension; import hudson.cli.CLICommand; +import jakarta.servlet.ServletException; import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.util.Objects; -import javax.servlet.ServletException; import net.sf.json.JSONObject; import org.apache.commons.fileupload2.core.FileItem; import org.apache.commons.io.FileUtils; import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; -import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; /** * {@link ParameterDefinition} for doing file upload. @@ -65,7 +65,7 @@ public FileParameterDefinition(@NonNull String name, @CheckForNull String descri } @Override - public FileParameterValue createValue(StaplerRequest req, JSONObject jo) { + public FileParameterValue createValue(StaplerRequest2 req, JSONObject jo) { FileParameterValue p = req.bindJSON(FileParameterValue.class, jo); p.setLocation(getName()); p.setDescription(getDescription()); @@ -87,7 +87,7 @@ public String getHelpFile() { } @Override - public ParameterValue createValue(StaplerRequest req) { + public ParameterValue createValue(StaplerRequest2 req) { FileItem src; try { src = req.getFileItem2(getName()); diff --git a/core/src/main/java/hudson/model/FileParameterValue.java b/core/src/main/java/hudson/model/FileParameterValue.java index 343e30bb64f4..abeb1f41816a 100644 --- a/core/src/main/java/hudson/model/FileParameterValue.java +++ b/core/src/main/java/hudson/model/FileParameterValue.java @@ -50,8 +50,8 @@ import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.DataBoundConstructor; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; /** * {@link ParameterValue} for {@link FileParameterDefinition}. @@ -235,9 +235,9 @@ public String toString() { } /** - * Serve this file parameter in response to a {@link StaplerRequest}. + * Serve this file parameter in response to a {@link StaplerRequest2}. */ - public DirectoryBrowserSupport doDynamic(StaplerRequest request, StaplerResponse response) { + public DirectoryBrowserSupport doDynamic(StaplerRequest2 request, StaplerResponse2 response) { AbstractBuild build = (AbstractBuild) request.findAncestor(AbstractBuild.class).getObject(); File fileParameter = getFileParameterFolderUnderBuild(build); return new DirectoryBrowserSupport(build, new FilePath(fileParameter), Messages.FileParameterValue_IndexTitle(), "folder.png", false); diff --git a/core/src/main/java/hudson/model/Hudson.java b/core/src/main/java/hudson/model/Hudson.java index 784fa47da20e..7d45fd63d749 100644 --- a/core/src/main/java/hudson/model/Hudson.java +++ b/core/src/main/java/hudson/model/Hudson.java @@ -38,14 +38,16 @@ import hudson.slaves.ComputerListener; import hudson.util.CopyOnWriteList; import hudson.util.FormValidation; +import io.jenkins.servlet.ServletContextWrapper; +import io.jenkins.servlet.ServletExceptionWrapper; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; import java.text.NumberFormat; import java.text.ParseException; import java.util.List; -import javax.servlet.ServletContext; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletResponse; import jenkins.model.Jenkins; import org.jvnet.hudson.reactor.ReactorException; import org.kohsuke.stapler.QueryParameter; @@ -78,14 +80,36 @@ public static Hudson getInstance() { return (Hudson) Jenkins.get(); } + /** + * @since TODO + */ public Hudson(File root, ServletContext context) throws IOException, InterruptedException, ReactorException { this(root, context, null); } + /** + * @deprecated use {@link #Hudson(File, ServletContext)} + */ + @Deprecated + public Hudson(File root, javax.servlet.ServletContext context) throws IOException, InterruptedException, ReactorException { + this(root, ServletContextWrapper.toJakartaServletContext(context)); + } + + /** + * @since TODO + */ public Hudson(File root, ServletContext context, PluginManager pluginManager) throws IOException, InterruptedException, ReactorException { super(root, context, pluginManager); } + /** + * @deprecated use {@link #Hudson(File, ServletContext, PluginManager)} + */ + @Deprecated + public Hudson(File root, javax.servlet.ServletContext context, PluginManager pluginManager) throws IOException, InterruptedException, ReactorException { + this(root, ServletContextWrapper.toJakartaServletContext(context), pluginManager); + } + /** * Gets all the installed {@link ItemListener}s. * @@ -173,8 +197,12 @@ public TopLevelItem getJobCaseInsensitive(String name) { */ @Deprecated @RequirePOST - public synchronized void doQuietDown(StaplerResponse rsp) throws IOException, ServletException { - doQuietDown().generateResponse(null, rsp, this); + public synchronized void doQuietDown(StaplerResponse rsp) throws IOException, javax.servlet.ServletException { + try { + doQuietDown().generateResponse(null, StaplerResponse.toStaplerResponse2(rsp), this); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } } /** @@ -184,7 +212,7 @@ public synchronized void doQuietDown(StaplerResponse rsp) throws IOException, Se * As on 1.267, moved to "/log/rss..." */ @Deprecated - public void doLogRss(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doLogRss(StaplerRequest req, StaplerResponse rsp) throws IOException, javax.servlet.ServletException { String qs = req.getQueryString(); rsp.sendRedirect2("./log/rss" + (qs == null ? "" : '?' + qs)); } @@ -194,7 +222,7 @@ public void doLogRss(StaplerRequest req, StaplerResponse rsp) throws IOException * Define your own check method, instead of relying on this generic one. */ @Deprecated - public void doFieldCheck(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doFieldCheck(StaplerRequest req, StaplerResponse rsp) throws IOException, javax.servlet.ServletException { doFieldCheck( fixEmpty(req.getParameter("value")), fixEmpty(req.getParameter("type")), diff --git a/core/src/main/java/hudson/model/Item.java b/core/src/main/java/hudson/model/Item.java index a57011579b15..838f4e6f75a7 100644 --- a/core/src/main/java/hudson/model/Item.java +++ b/core/src/main/java/hudson/model/Item.java @@ -41,7 +41,7 @@ import jenkins.model.Jenkins; import jenkins.util.SystemProperties; import jenkins.util.io.OnMaster; -import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; /** * Basic configuration unit in Hudson. @@ -183,7 +183,7 @@ default String getRelativeNameFrom(@NonNull Item item) { /** * Returns the absolute URL of this item. This relies on the current - * {@link StaplerRequest} to figure out what the host name is, + * {@link StaplerRequest2} to figure out what the host name is, * so can be used only during processing client requests. * * @return diff --git a/core/src/main/java/hudson/model/ItemGroupMixIn.java b/core/src/main/java/hudson/model/ItemGroupMixIn.java index faa214dee621..62a46f395247 100644 --- a/core/src/main/java/hudson/model/ItemGroupMixIn.java +++ b/core/src/main/java/hudson/model/ItemGroupMixIn.java @@ -32,6 +32,9 @@ import hudson.util.CopyOnWriteMap; import hudson.util.Function1; import hudson.util.Secret; +import io.jenkins.servlet.ServletExceptionWrapper; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; import java.io.InputStream; @@ -42,8 +45,6 @@ import java.util.logging.Level; import java.util.logging.Logger; import java.util.regex.Matcher; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletResponse; import javax.xml.transform.TransformerException; import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; @@ -51,7 +52,9 @@ import jenkins.security.NotReallyRoleSensitiveCallable; import jenkins.util.xml.XMLUtils; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerResponse2; import org.springframework.security.access.AccessDeniedException; import org.xml.sax.SAXException; @@ -140,8 +143,10 @@ public static Map loadChildren(ItemGroup parent, File /** * Creates a {@link TopLevelItem} for example from the submission of the {@code /lib/hudson/newFromList/form} tag * or throws an exception if it fails. + * + * @since TODO */ - public synchronized TopLevelItem createTopLevelItem(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public synchronized TopLevelItem createTopLevelItem(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { acl.checkPermission(Item.CREATE); TopLevelItem result; @@ -206,10 +211,22 @@ public synchronized TopLevelItem createTopLevelItem(StaplerRequest req, StaplerR return result; } + /** + * @deprecated use {@link #createTopLevelItem(StaplerRequest2, StaplerResponse2)} + */ + @Deprecated + public synchronized TopLevelItem createTopLevelItem(StaplerRequest req, StaplerResponse rsp) throws IOException, javax.servlet.ServletException { + try { + return createTopLevelItem(StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp)); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } + } + /** * Computes the redirection target URL for the newly created {@link TopLevelItem}. */ - protected String redirectAfterCreateItem(StaplerRequest req, TopLevelItem result) throws IOException { + protected String redirectAfterCreateItem(StaplerRequest2 req, TopLevelItem result) throws IOException { return req.getContextPath() + '/' + result.getUrl() + "configure"; } diff --git a/core/src/main/java/hudson/model/Job.java b/core/src/main/java/hudson/model/Job.java index 4bd28ff2e325..10637d666d68 100644 --- a/core/src/main/java/hudson/model/Job.java +++ b/core/src/main/java/hudson/model/Job.java @@ -24,8 +24,8 @@ package hudson.model; -import static javax.servlet.http.HttpServletResponse.SC_BAD_REQUEST; -import static javax.servlet.http.HttpServletResponse.SC_NO_CONTENT; +import static jakarta.servlet.http.HttpServletResponse.SC_BAD_REQUEST; +import static jakarta.servlet.http.HttpServletResponse.SC_NO_CONTENT; import com.infradna.tool.bridge_method_injector.WithBridgeMethods; import edu.umd.cs.findbugs.annotations.CheckForNull; @@ -69,6 +69,8 @@ import hudson.widgets.HistoryWidget; import hudson.widgets.HistoryWidget.Adapter; import hudson.widgets.Widget; +import io.jenkins.servlet.ServletExceptionWrapper; +import jakarta.servlet.ServletException; import java.awt.Color; import java.awt.Paint; import java.io.File; @@ -85,7 +87,6 @@ import java.util.SortedMap; import java.util.logging.Level; import java.util.logging.Logger; -import javax.servlet.ServletException; import jenkins.model.BuildDiscarder; import jenkins.model.BuildDiscarderProperty; import jenkins.model.DirectlyModifiableTopLevelItemGroup; @@ -98,6 +99,7 @@ import jenkins.model.lazy.LazyBuildMixIn; import jenkins.scm.RunWithSCM; import jenkins.security.HexStringConfidentialKey; +import jenkins.security.stapler.StaplerNotDispatchable; import jenkins.triggers.SCMTriggerItem; import jenkins.widgets.HasWidgets; import net.sf.json.JSONException; @@ -122,7 +124,9 @@ import org.kohsuke.args4j.CmdLineException; import org.kohsuke.stapler.StaplerOverridable; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.interceptor.RequirePOST; import org.kohsuke.stapler.verb.POST; @@ -854,9 +858,43 @@ public RunT getNearestOldBuild(int n) { return m.get(m.firstKey()); } + /** + * @since TODO + */ + @Override + public Object getDynamic(String token, StaplerRequest2 req, + StaplerResponse2 rsp) { + if (Util.isOverridden(Job.class, getClass(), "getDynamic", String.class, StaplerRequest.class, StaplerResponse.class)) { + return getDynamic(token, StaplerRequest.fromStaplerRequest2(req), StaplerResponse.fromStaplerResponse2(rsp)); + } + try { + // try to interpret the token as build number + return getBuildByNumber(Integer.parseInt(token)); + } catch (NumberFormatException e) { + // try to map that to widgets + for (Widget w : getWidgets()) { + if (w.getUrlName().equals(token)) + return w; + } + + // is this a permalink? + for (Permalink p : getPermalinks()) { + if (p.getId().equals(token)) + return p.resolve(this); + } + + return super.getDynamic(token, req, rsp); + } + } + + /** + * @deprecated use {@link #getDynamic(String, StaplerRequest2, StaplerResponse2)} + */ + @Deprecated @Override public Object getDynamic(String token, StaplerRequest req, StaplerResponse rsp) { + // Intentionally not factoring this out into a common implementation method because it contains a call to super. try { // try to interpret the token as build number return getBuildByNumber(Integer.parseInt(token)); @@ -1092,7 +1130,7 @@ public PermalinkList getPermalinks() { * * @since 2.60 */ - public void doRssChangelog(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doRssChangelog(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { class FeedItem { ChangeLogSet.Entry e; int idx; @@ -1168,8 +1206,29 @@ public String getEntryAuthor(FeedItem entry) { } + /** + * @since TODO + */ + @Override + public ContextMenu doChildrenContextMenu(StaplerRequest2 request, StaplerResponse2 response) throws Exception { + if (Util.isOverridden(Job.class, getClass(), "doChildrenContextMenu", StaplerRequest.class, StaplerResponse.class)) { + return doChildrenContextMenu(StaplerRequest.fromStaplerRequest2(request), StaplerResponse.fromStaplerResponse2(response)); + } else { + return doChildrenContextMenuImpl(request, response); + } + } - @Override public ContextMenu doChildrenContextMenu(StaplerRequest request, StaplerResponse response) throws Exception { + /** + * @deprecated use {@link #doChildrenContextMenu(StaplerRequest2, StaplerResponse2)} + */ + @Deprecated + @StaplerNotDispatchable + @Override + public ContextMenu doChildrenContextMenu(StaplerRequest request, StaplerResponse response) throws Exception { + return doChildrenContextMenuImpl(StaplerRequest.toStaplerRequest2(request), StaplerResponse.toStaplerResponse2(response)); + } + + private ContextMenu doChildrenContextMenuImpl(StaplerRequest2 request, StaplerResponse2 response) { // not sure what would be really useful here. This needs more thoughts. // for the time being, I'm starting with permalinks ContextMenu menu = new ContextMenu(); @@ -1327,8 +1386,8 @@ private HealthReport getBuildStabilityHealthReport() { * Accepts submission from the configuration page. */ @POST - public synchronized void doConfigSubmit(StaplerRequest req, - StaplerResponse rsp) throws IOException, ServletException, FormException { + public synchronized void doConfigSubmit(StaplerRequest2 req, + StaplerResponse2 rsp) throws IOException, ServletException, FormException { checkPermission(CONFIGURE); description = req.getParameter("description"); @@ -1373,15 +1432,32 @@ public synchronized void doConfigSubmit(StaplerRequest req, /** * Derived class can override this to perform additional config submission * work. + * + * @since TODO */ - protected void submit(StaplerRequest req, StaplerResponse rsp) + protected void submit(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException, FormException { + if (Util.isOverridden(Job.class, getClass(), "submit", StaplerRequest.class, StaplerResponse.class)) { + try { + submit(StaplerRequest.fromStaplerRequest2(req), StaplerResponse.fromStaplerResponse2(rsp)); + } catch (javax.servlet.ServletException e) { + throw ServletExceptionWrapper.toJakartaServletException(e); + } + } + } + + /** + * @deprecated use {@link #submit(StaplerRequest2, StaplerResponse2)} + */ + @Deprecated + protected void submit(StaplerRequest req, StaplerResponse rsp) + throws IOException, javax.servlet.ServletException, FormException { } /** * Accepts and serves the job description */ - public void doDescription(StaplerRequest req, StaplerResponse rsp) + public void doDescription(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException { if (req.getMethod().equals("GET")) { //read @@ -1407,7 +1483,7 @@ public void doDescription(StaplerRequest req, StaplerResponse rsp) /** * Returns the image that shows the current buildCommand status. */ - public void doBuildStatus(StaplerRequest req, StaplerResponse rsp) + public void doBuildStatus(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException { rsp.sendRedirect2(req.getContextPath() + "/images/48x48/" + getBuildStatusUrl()); } @@ -1577,7 +1653,7 @@ private Calendar getLastBuildTime() { @RequirePOST public/* not synchronized. see renameTo() */void doDoRename( StaplerRequest req, StaplerResponse rsp) throws IOException, - ServletException { + javax.servlet.ServletException { String newName = req.getParameter("newName"); doConfirmRename(newName).generateResponse(req, rsp, null); } @@ -1589,12 +1665,12 @@ protected void checkRename(String newName) throws Failure { } } - public void doRssAll(StaplerRequest req, StaplerResponse rsp) + public void doRssAll(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { RSS.rss(req, rsp, "Jenkins:" + getDisplayName() + " (all builds)", getUrl(), getBuilds().newBuilds()); } - public void doRssFailed(StaplerRequest req, StaplerResponse rsp) + public void doRssFailed(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { RSS.rss(req, rsp, "Jenkins:" + getDisplayName() + " (failed builds)", getUrl(), getBuilds().failureOnly().newBuilds()); } diff --git a/core/src/main/java/hudson/model/JobProperty.java b/core/src/main/java/hudson/model/JobProperty.java index 14ff87591fe9..70ef159547c0 100644 --- a/core/src/main/java/hudson/model/JobProperty.java +++ b/core/src/main/java/hudson/model/JobProperty.java @@ -27,6 +27,7 @@ import edu.umd.cs.findbugs.annotations.NonNull; import hudson.ExtensionPoint; import hudson.Launcher; +import hudson.Util; import hudson.model.Descriptor.FormException; import hudson.model.queue.SubTask; import hudson.tasks.BuildStep; @@ -41,6 +42,7 @@ import jenkins.model.OptionalJobProperty; import net.sf.json.JSONObject; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.export.ExportedBean; /** @@ -183,8 +185,28 @@ public Collection getJobOverrides() { return Collections.emptyList(); } + /** + * @since TODO + */ + @Override + public JobProperty reconfigure(StaplerRequest2 req, JSONObject form) throws FormException { + if (Util.isOverridden(JobProperty.class, getClass(), "reconfigure", StaplerRequest.class, JSONObject.class)) { + return reconfigure(StaplerRequest.fromStaplerRequest2(req), form); + } else { + return reconfigureImpl(req, form); + } + } + + /** + * @deprecated use {@link #reconfigure(StaplerRequest2, JSONObject)} + */ + @Deprecated @Override public JobProperty reconfigure(StaplerRequest req, JSONObject form) throws FormException { + return reconfigureImpl(StaplerRequest.toStaplerRequest2(req), form); + } + + private JobProperty reconfigureImpl(StaplerRequest2 req, JSONObject form) throws FormException { return form == null ? null : getDescriptor().newInstance(req, form); } diff --git a/core/src/main/java/hudson/model/JobPropertyDescriptor.java b/core/src/main/java/hudson/model/JobPropertyDescriptor.java index 1f1c3aa7e6f0..eb9b990b7056 100644 --- a/core/src/main/java/hudson/model/JobPropertyDescriptor.java +++ b/core/src/main/java/hudson/model/JobPropertyDescriptor.java @@ -24,6 +24,7 @@ package hudson.model; +import hudson.Util; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.util.ArrayList; @@ -34,6 +35,7 @@ import net.sf.json.JSONObject; import org.jvnet.tiger_types.Types; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; /** * {@link Descriptor} for {@link JobProperty}. @@ -61,6 +63,23 @@ protected JobPropertyDescriptor() { * null to avoid setting an instance of {@link JobProperty} to the target project (or just use {@link OptionalJobProperty}) */ @Override + public JobProperty newInstance(StaplerRequest2 req, JSONObject formData) throws FormException { + if (Util.isOverridden(JobPropertyDescriptor.class, getClass(), "newInstance", StaplerRequest.class, JSONObject.class)) { + return newInstance(req != null ? StaplerRequest.fromStaplerRequest2(req) : null, formData); + } else { + // JobPropertyDescriptors are bit different in that we allow them even without any user-visible configuration parameter, + // so replace the lack of form data by an empty one. + if (formData.isNullObject()) formData = new JSONObject(); + + return super.newInstance(req, formData); + } + } + + /** + * @deprecated use {@link #newInstance(StaplerRequest2, JSONObject)} + */ + @Deprecated + @Override public JobProperty newInstance(StaplerRequest req, JSONObject formData) throws FormException { // JobPropertyDescriptors are bit different in that we allow them even without any user-visible configuration parameter, // so replace the lack of form data by an empty one. diff --git a/core/src/main/java/hudson/model/Label.java b/core/src/main/java/hudson/model/Label.java index 88661c6df690..53c51db9cc4b 100644 --- a/core/src/main/java/hudson/model/Label.java +++ b/core/src/main/java/hudson/model/Label.java @@ -71,8 +71,8 @@ import org.antlr.v4.runtime.CommonTokenStream; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.DoNotUse; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; @@ -548,7 +548,7 @@ public String toString() { } @Override - public ContextMenu doChildrenContextMenu(StaplerRequest request, StaplerResponse response) throws Exception { + public ContextMenu doChildrenContextMenu(StaplerRequest2 request, StaplerResponse2 response) throws Exception { ContextMenu menu = new ContextMenu(); for (Node node : getNodes()) { menu.add(node); diff --git a/core/src/main/java/hudson/model/ListView.java b/core/src/main/java/hudson/model/ListView.java index d8f6a8d48bcb..a2e25f1f1d1b 100644 --- a/core/src/main/java/hudson/model/ListView.java +++ b/core/src/main/java/hudson/model/ListView.java @@ -41,6 +41,8 @@ import hudson.views.ListViewColumn; import hudson.views.StatusFilter; import hudson.views.ViewJobFilter; +import io.jenkins.servlet.ServletExceptionWrapper; +import jakarta.servlet.ServletException; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; @@ -55,7 +57,6 @@ import java.util.logging.Logger; import java.util.regex.Pattern; import java.util.regex.PatternSyntaxException; -import javax.servlet.ServletException; import jenkins.model.Jenkins; import net.jcip.annotations.GuardedBy; import net.sf.json.JSONObject; @@ -67,7 +68,8 @@ import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.interceptor.RequirePOST; import org.kohsuke.stapler.verb.POST; import org.springframework.security.access.AccessDeniedException; @@ -97,7 +99,7 @@ public class ListView extends View implements DirectlyModifiableView { /** * Whether to recurse in ItemGroups */ - private boolean recurse; + private volatile boolean recurse; /** * Compiled include pattern from the includeRegex string. @@ -357,7 +359,7 @@ public boolean isAddToCurrentView() { } } - private boolean needToAddToCurrentView(StaplerRequest req) throws ServletException { + private boolean needToAddToCurrentView(StaplerRequest2 req) throws ServletException { String json = req.getParameter("json"); if (json != null && !json.isEmpty()) { // Submitted via UI @@ -371,7 +373,7 @@ private boolean needToAddToCurrentView(StaplerRequest req) throws ServletExcepti @Override @POST - public Item doCreateItem(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public Item doCreateItem(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { ItemGroup ig = getOwner().getItemGroup(); if (ig instanceof ModifiableItemGroup) { TopLevelItem item = ((ModifiableItemGroup) ig).doCreateItem(req, rsp); @@ -439,7 +441,32 @@ public HttpResponse doRemoveJobFromView(@QueryParameter String name) throws IOEx * Load view-specific properties here. */ @Override - protected void submit(StaplerRequest req) throws ServletException, FormException, IOException { + protected void submit(StaplerRequest2 req) throws ServletException, FormException, IOException { + if (Util.isOverridden(View.class, getClass(), "submit", StaplerRequest.class)) { + try { + submit(StaplerRequest.fromStaplerRequest2(req)); + } catch (javax.servlet.ServletException e) { + throw ServletExceptionWrapper.toJakartaServletException(e); + } + } else { + submitImpl(req); + } + } + + /** + * @deprecated use {@link #submit(StaplerRequest2)} + */ + @Deprecated + @Override + protected void submit(StaplerRequest req) throws javax.servlet.ServletException, FormException, IOException { + try { + submitImpl(StaplerRequest.toStaplerRequest2(req)); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } + } + + private void submitImpl(StaplerRequest2 req) throws ServletException, FormException, IOException { JSONObject json = req.getSubmittedForm(); synchronized (this) { recurse = json.optBoolean("recurse", true); diff --git a/core/src/main/java/hudson/model/ManageJenkinsAction.java b/core/src/main/java/hudson/model/ManageJenkinsAction.java index c6c37a57662a..776b37c4f265 100644 --- a/core/src/main/java/hudson/model/ManageJenkinsAction.java +++ b/core/src/main/java/hudson/model/ManageJenkinsAction.java @@ -36,8 +36,8 @@ import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.Stapler; import org.kohsuke.stapler.StaplerFallback; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; /** * Adds the "Manage Jenkins" link to the top page. @@ -70,7 +70,7 @@ public Object getStaplerFallback() { } @Override - public ContextMenu doContextMenu(StaplerRequest request, StaplerResponse response) throws JellyException, IOException { + public ContextMenu doContextMenu(StaplerRequest2 request, StaplerResponse2 response) throws JellyException, IOException { return new ContextMenu().from(this, request, response, "index"); } @@ -80,7 +80,7 @@ public ContextMenu doContextMenu(StaplerRequest request, StaplerResponse respons */ @Restricted(NoExternalUse.class) public void addContextMenuItem(ContextMenu menu, String url, String icon, String iconXml, String text, boolean post, boolean requiresConfirmation, Badge badge, String message) { - if (Stapler.getCurrentRequest().findAncestorObject(this.getClass()) != null || !Util.isSafeToRedirectTo(url)) { + if (Stapler.getCurrentRequest2().findAncestorObject(this.getClass()) != null || !Util.isSafeToRedirectTo(url)) { // Default behavior if the URL is absolute or scheme-relative, or the current object is an ancestor (i.e. would resolve correctly) menu.add(url, icon, iconXml, text, post, requiresConfirmation, badge, message); return; diff --git a/core/src/main/java/hudson/model/ModifiableItemGroup.java b/core/src/main/java/hudson/model/ModifiableItemGroup.java index 726a0455dc74..35e41305afb5 100644 --- a/core/src/main/java/hudson/model/ModifiableItemGroup.java +++ b/core/src/main/java/hudson/model/ModifiableItemGroup.java @@ -24,10 +24,15 @@ package hudson.model; +import io.jenkins.servlet.ServletExceptionWrapper; +import jakarta.servlet.ServletException; import java.io.IOException; -import javax.servlet.ServletException; +import jenkins.security.stapler.StaplerNotDispatchable; +import org.kohsuke.stapler.ReflectionUtils; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerResponse2; /** * {@link ItemGroup} that is a general purpose container, which allows users and the rest of the program @@ -45,5 +50,45 @@ public interface ModifiableItemGroup extends ItemGroup { * The request format follows that of {@code <n:form xmlns:n="/lib/form">}. * */ - T doCreateItem(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException; + @StaplerNotDispatchable + default T doCreateItem(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { + if (ReflectionUtils.isOverridden( + ModifiableItemGroup.class, + getClass(), + "doCreateItem", + StaplerRequest.class, + StaplerResponse.class)) { + try { + return doCreateItem(StaplerRequest.fromStaplerRequest2(req), StaplerResponse.fromStaplerResponse2(rsp)); + } catch (javax.servlet.ServletException e) { + throw ServletExceptionWrapper.toJakartaServletException(e); + } + } else { + throw new AbstractMethodError("The class " + getClass().getName() + " must override at least one of the " + + ModifiableItemGroup.class.getSimpleName() + ".doCreateItem methods"); + } + } + + /** + * @deprecated use {@link #doCreateItem(StaplerRequest2, StaplerResponse2)} + */ + @Deprecated + @StaplerNotDispatchable + default T doCreateItem(StaplerRequest req, StaplerResponse rsp) throws IOException, javax.servlet.ServletException { + if (ReflectionUtils.isOverridden( + ModifiableItemGroup.class, + getClass(), + "doCreateItem", + StaplerRequest2.class, + StaplerResponse2.class)) { + try { + return doCreateItem(StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp)); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } + } else { + throw new AbstractMethodError("The class " + getClass().getName() + " must override at least one of the " + + ModifiableItemGroup.class.getSimpleName() + ".doCreateItem methods"); + } + } } diff --git a/core/src/main/java/hudson/model/MultiStageTimeSeries.java b/core/src/main/java/hudson/model/MultiStageTimeSeries.java index ea9d25a043c0..84963cde928f 100644 --- a/core/src/main/java/hudson/model/MultiStageTimeSeries.java +++ b/core/src/main/java/hudson/model/MultiStageTimeSeries.java @@ -26,6 +26,7 @@ import hudson.util.ChartUtil; import hudson.util.NoOverlapCategoryAxis; +import jakarta.servlet.ServletException; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Font; @@ -39,7 +40,6 @@ import java.util.List; import java.util.Locale; import java.util.concurrent.TimeUnit; -import javax.servlet.ServletException; import org.jfree.chart.ChartFactory; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.CategoryAxis; @@ -53,7 +53,9 @@ import org.jvnet.localizer.Localizable; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; @@ -298,8 +300,8 @@ protected void configurePlot(CategoryPlot plot) { * Renders this object as an image. */ @Override - public void generateResponse(StaplerRequest req, StaplerResponse rsp, Object node) throws IOException, ServletException { - ChartUtil.generateGraph(req, rsp, createChart(), 500, 400); + public void generateResponse(StaplerRequest2 req, StaplerResponse2 rsp, Object node) throws IOException, ServletException { + ChartUtil.generateGraph(StaplerRequest.fromStaplerRequest2(req), StaplerResponse.fromStaplerResponse2(rsp), createChart(), 500, 400); } } diff --git a/core/src/main/java/hudson/model/MyView.java b/core/src/main/java/hudson/model/MyView.java index bc98d9a55f7f..93c9967e0e86 100644 --- a/core/src/main/java/hudson/model/MyView.java +++ b/core/src/main/java/hudson/model/MyView.java @@ -26,18 +26,21 @@ import edu.umd.cs.findbugs.annotations.NonNull; import hudson.Extension; +import hudson.Util; import hudson.model.Descriptor.FormException; +import io.jenkins.servlet.ServletExceptionWrapper; +import jakarta.servlet.ServletException; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; -import javax.servlet.ServletException; import jenkins.model.Jenkins; import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.interceptor.RequirePOST; /** @@ -64,7 +67,7 @@ public boolean contains(TopLevelItem item) { @RequirePOST @Override - public TopLevelItem doCreateItem(StaplerRequest req, StaplerResponse rsp) + public TopLevelItem doCreateItem(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { ItemGroup ig = getOwner().getItemGroup(); if (ig instanceof ModifiableItemGroup) { @@ -85,7 +88,24 @@ public String getPostConstructLandingPage() { } @Override - protected void submit(StaplerRequest req) throws IOException, ServletException, FormException { + protected void submit(StaplerRequest2 req) throws IOException, ServletException, FormException { + if (Util.isOverridden(MyView.class, getClass(), "submit", StaplerRequest.class)) { + try { + submit(StaplerRequest.fromStaplerRequest2(req)); + } catch (javax.servlet.ServletException e) { + throw ServletExceptionWrapper.toJakartaServletException(e); + } + } else { + // noop + } + } + + /** + * @deprecated use {@link #submit(StaplerRequest2)} + */ + @Deprecated + @Override + protected void submit(StaplerRequest req) throws IOException, javax.servlet.ServletException, FormException { // noop } diff --git a/core/src/main/java/hudson/model/MyViewsProperty.java b/core/src/main/java/hudson/model/MyViewsProperty.java index 49fdfac48d2d..32ef03f73ecd 100644 --- a/core/src/main/java/hudson/model/MyViewsProperty.java +++ b/core/src/main/java/hudson/model/MyViewsProperty.java @@ -35,13 +35,13 @@ import hudson.util.FormValidation; import hudson.views.MyViewsTabBar; import hudson.views.ViewsTabBar; +import jakarta.servlet.ServletException; import java.io.IOException; import java.text.ParseException; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; -import javax.servlet.ServletException; import jenkins.model.Jenkins; import jenkins.util.SystemProperties; import net.sf.json.JSONObject; @@ -54,8 +54,8 @@ import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.StaplerFallback; import org.kohsuke.stapler.StaplerProxy; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.verb.POST; /** @@ -196,7 +196,7 @@ public HttpResponse doIndex() { } @POST - public synchronized void doCreateView(StaplerRequest req, StaplerResponse rsp) + public synchronized void doCreateView(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException, ParseException, FormException { checkPermission(View.CREATE); addView(View.create(req, rsp, this)); @@ -276,7 +276,7 @@ public UserProperty newInstance(User user) { } @Override - public UserProperty reconfigure(StaplerRequest req, JSONObject form) throws FormException { + public UserProperty reconfigure(StaplerRequest2 req, JSONObject form) throws FormException { req.bindJSON(this, form); return this; } diff --git a/core/src/main/java/hudson/model/Node.java b/core/src/main/java/hudson/model/Node.java index 8ba16e77d4d3..55cacd269133 100644 --- a/core/src/main/java/hudson/model/Node.java +++ b/core/src/main/java/hudson/model/Node.java @@ -79,6 +79,7 @@ import org.kohsuke.stapler.BindInterceptor; import org.kohsuke.stapler.Stapler; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; import org.springframework.security.core.Authentication; @@ -560,8 +561,25 @@ public ACL getACL() { return Jenkins.get().getAuthorizationStrategy().getACL(this); } + @Override + public Node reconfigure(@NonNull final StaplerRequest2 req, JSONObject form) throws FormException { + if (Util.isOverridden(Node.class, getClass(), "reconfigure", StaplerRequest.class, JSONObject.class)) { + return reconfigure(StaplerRequest.fromStaplerRequest2(req), form); + } else { + return reconfigureImpl(req, form); + } + } + + /** + * @deprecated use {@link #reconfigure(StaplerRequest2, JSONObject)} + */ + @Deprecated @Override public Node reconfigure(@NonNull final StaplerRequest req, JSONObject form) throws FormException { + return reconfigureImpl(StaplerRequest.toStaplerRequest2(req), form); + } + + private Node reconfigureImpl(@NonNull final StaplerRequest2 req, JSONObject form) throws FormException { if (form == null) return null; final JSONObject jsonForProperties = form.optJSONObject("nodeProperties"); diff --git a/core/src/main/java/hudson/model/PaneStatusProperties.java b/core/src/main/java/hudson/model/PaneStatusProperties.java index 4807020ca714..12cb0003d671 100644 --- a/core/src/main/java/hudson/model/PaneStatusProperties.java +++ b/core/src/main/java/hudson/model/PaneStatusProperties.java @@ -6,8 +6,8 @@ import hudson.Extension; import hudson.model.userproperty.UserPropertyCategory; import hudson.util.PersistedList; +import jakarta.servlet.http.HttpSession; import java.io.IOException; -import javax.servlet.http.HttpSession; import org.jenkinsci.Symbol; import org.kohsuke.stapler.Stapler; @@ -70,13 +70,13 @@ private static class PaneStatusPropertiesSessionFallback extends PaneStatusPrope @Override public boolean isCollapsed(String paneId) { - final HttpSession session = Stapler.getCurrentRequest().getSession(); + final HttpSession session = Stapler.getCurrentRequest2().getSession(); return session.getAttribute(format(attribute, paneId)) != null; } @Override public boolean toggleCollapsed(String paneId) { - final HttpSession session = Stapler.getCurrentRequest().getSession(); + final HttpSession session = Stapler.getCurrentRequest2().getSession(); final String property = format(attribute, paneId); final Object collapsed = session.getAttribute(property); if (collapsed == null) { diff --git a/core/src/main/java/hudson/model/ParameterDefinition.java b/core/src/main/java/hudson/model/ParameterDefinition.java index 262b632ab5a2..29653c0250f4 100644 --- a/core/src/main/java/hudson/model/ParameterDefinition.java +++ b/core/src/main/java/hudson/model/ParameterDefinition.java @@ -41,6 +41,7 @@ import net.sf.json.JSONObject; import org.kohsuke.stapler.DataBoundSetter; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; @@ -59,7 +60,7 @@ *

    * Three classes are used to model build parameters. First is the * {@link ParameterDescriptor}, which tells Hudson what kind of implementations are - * available. From {@link ParameterDescriptor#newInstance(StaplerRequest, JSONObject)}, + * available. From {@link ParameterDescriptor#newInstance(StaplerRequest2, JSONObject)}, * Hudson creates {@link ParameterDefinition}s based on the job configuration. * For example, if the user defines two string parameters "database-type" and * "appserver-type", we'll get two {@link StringParameterDefinition} instances @@ -69,7 +70,7 @@ * When a job is configured with {@link ParameterDefinition} (or more precisely, * {@link ParametersDefinitionProperty}, which in turns retains {@link ParameterDefinition}s), * user would have to enter the values for the defined build parameters. - * The {@link #createValue(StaplerRequest, JSONObject)} method is used to convert this + * The {@link #createValue(StaplerRequest2, JSONObject)} method is used to convert this * form submission into {@link ParameterValue} objects, which are then accessible * during a build. * @@ -85,12 +86,12 @@ *

    config.jelly

    * {@link ParameterDefinition} class uses {@code config.jelly} to contribute a form * fragment in the job configuration screen. Values entered there are fed back to - * {@link ParameterDescriptor#newInstance(StaplerRequest, JSONObject)} to create {@link ParameterDefinition}s. + * {@link ParameterDescriptor#newInstance(StaplerRequest2, JSONObject)} to create {@link ParameterDefinition}s. * *

    index.jelly

    * The {@code index.jelly} view contributes a form fragment in the page where the user * enters actual values of parameters for a build. The result of this form submission - * is then fed to {@link ParameterDefinition#createValue(StaplerRequest, JSONObject)} to + * is then fed to {@link ParameterDefinition#createValue(StaplerRequest2, JSONObject)} to * create {@link ParameterValue}s. * * @see StringParameterDefinition @@ -183,14 +184,37 @@ public ParameterDescriptor getDescriptor() { * and submits it to the server. */ @CheckForNull - public abstract ParameterValue createValue(StaplerRequest req, JSONObject jo); + public /* abstract */ ParameterValue createValue(StaplerRequest2 req, JSONObject jo) { + return Util.ifOverridden( + () -> createValue(StaplerRequest.fromStaplerRequest2(req), jo), + ParameterDefinition.class, + getClass(), + "createValue", + StaplerRequest.class, + JSONObject.class); + } + + /** + * @deprecated use {@link #createValue(StaplerRequest2, JSONObject)} + */ + @CheckForNull + @Deprecated + public ParameterValue createValue(StaplerRequest req, JSONObject jo) { + return Util.ifOverridden( + () -> createValue(StaplerRequest.toStaplerRequest2(req), jo), + ParameterDefinition.class, + getClass(), + "createValue", + StaplerRequest2.class, + JSONObject.class); + } /** * Create a parameter value from a GET with query string. * If no value is available in the request, it returns a default value if possible, or null. * *

    - * Unlike {@link #createValue(StaplerRequest, JSONObject)}, this method is intended to support + * Unlike {@link #createValue(StaplerRequest2, JSONObject)}, this method is intended to support * the programmatic POST-ing of the build URL. This form is less expressive (as it doesn't support * the tree form), but it's more scriptable. * @@ -202,8 +226,28 @@ public ParameterDescriptor getDescriptor() { * If the parameter is deemed required but was missing in the submission. */ @CheckForNull - public abstract ParameterValue createValue(StaplerRequest req); + public /* abstract */ ParameterValue createValue(StaplerRequest2 req) { + return Util.ifOverridden( + () -> createValue(StaplerRequest.fromStaplerRequest2(req)), + ParameterDefinition.class, + getClass(), + "createValue", + StaplerRequest.class); + } + /** + * @deprecated use {@link #createValue(StaplerRequest2)} + */ + @CheckForNull + @Deprecated + public ParameterValue createValue(StaplerRequest req) { + return Util.ifOverridden( + () -> createValue(StaplerRequest.toStaplerRequest2(req)), + ParameterDefinition.class, + getClass(), + "createValue", + StaplerRequest2.class); + } /** * Create a parameter value from the string given in the CLI. diff --git a/core/src/main/java/hudson/model/ParameterValue.java b/core/src/main/java/hudson/model/ParameterValue.java index 5da680b3bb76..2fd481446f4b 100644 --- a/core/src/main/java/hudson/model/ParameterValue.java +++ b/core/src/main/java/hudson/model/ParameterValue.java @@ -43,14 +43,14 @@ import net.sf.json.JSONObject; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.DoNotUse; -import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; /** * A value for a parameter in a build. * - * Created by {@link ParameterDefinition#createValue(StaplerRequest, JSONObject)} for + * Created by {@link ParameterDefinition#createValue(StaplerRequest2, JSONObject)} for * a particular build (although this 'owner' build object is passed in for every method * call as a parameter so that the parameter won't have to persist it.) * @@ -240,7 +240,7 @@ public VariableResolver createVariableResolver(AbstractBuild build * @deprecated since 2008-09-20. * parameter definition may change any time. So if you find yourself * in need of accessing the information from {@link ParameterDefinition}, - * instead copy them in {@link ParameterDefinition#createValue(StaplerRequest, JSONObject)} + * instead copy them in {@link ParameterDefinition#createValue(StaplerRequest2, JSONObject)} * into {@link ParameterValue}. */ @Deprecated diff --git a/core/src/main/java/hudson/model/ParametersDefinitionProperty.java b/core/src/main/java/hudson/model/ParametersDefinitionProperty.java index 66a70047e89d..a9019e5a8f1f 100644 --- a/core/src/main/java/hudson/model/ParametersDefinitionProperty.java +++ b/core/src/main/java/hudson/model/ParametersDefinitionProperty.java @@ -25,8 +25,8 @@ package hudson.model; -import static javax.servlet.http.HttpServletResponse.SC_CREATED; -import static javax.servlet.http.HttpServletResponse.SC_SEE_OTHER; +import static jakarta.servlet.http.HttpServletResponse.SC_CREATED; +import static jakarta.servlet.http.HttpServletResponse.SC_SEE_OTHER; import edu.umd.cs.findbugs.annotations.CheckForNull; import edu.umd.cs.findbugs.annotations.NonNull; @@ -35,6 +35,8 @@ import hudson.model.Queue.WaitingItem; import hudson.model.queue.ScheduleResult; import hudson.util.AlternativeUiTextProvider; +import io.jenkins.servlet.ServletExceptionWrapper; +import jakarta.servlet.ServletException; import java.io.IOException; import java.util.AbstractList; import java.util.ArrayList; @@ -43,7 +45,6 @@ import java.util.List; import java.util.Set; import java.util.concurrent.TimeUnit; -import javax.servlet.ServletException; import jenkins.model.Jenkins; import jenkins.model.OptionalJobProperty; import jenkins.model.ParameterizedJobMixIn; @@ -56,7 +57,9 @@ import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; @@ -133,19 +136,23 @@ public Collection getJobActions(AbstractProject job) { return (AbstractProject) owner; } - /** @deprecated use {@link #_doBuild(StaplerRequest, StaplerResponse, TimeDuration)} */ + /** @deprecated use {@link #_doBuild(StaplerRequest2, StaplerResponse2, TimeDuration)} */ @Deprecated - public void _doBuild(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { - _doBuild(req, rsp, TimeDuration.fromString(req.getParameter("delay"))); + public void _doBuild(StaplerRequest req, StaplerResponse rsp) throws IOException, javax.servlet.ServletException { + try { + _doBuild(StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp), TimeDuration.fromString(req.getParameter("delay"))); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } } /** * Interprets the form submission and schedules a build for a parameterized job. * *

    - * This method is supposed to be invoked from {@link ParameterizedJobMixIn#doBuild(StaplerRequest, StaplerResponse, TimeDuration)}. + * This method is supposed to be invoked from {@link ParameterizedJobMixIn#doBuild(StaplerRequest2, StaplerResponse2, TimeDuration)}. */ - public void _doBuild(StaplerRequest req, StaplerResponse rsp, @QueryParameter TimeDuration delay) throws IOException, ServletException { + public void _doBuild(StaplerRequest2 req, StaplerResponse2 rsp, @QueryParameter TimeDuration delay) throws IOException, ServletException { if (delay == null) delay = new TimeDuration(TimeUnit.MILLISECONDS.convert(getJob().getQuietPeriod(), TimeUnit.SECONDS)); @@ -185,13 +192,17 @@ public void _doBuild(StaplerRequest req, StaplerResponse rsp, @QueryParameter Ti rsp.sendRedirect("."); } - /** @deprecated use {@link #buildWithParameters(StaplerRequest, StaplerResponse, TimeDuration)} */ + /** @deprecated use {@link #buildWithParameters(StaplerRequest2, StaplerResponse2, TimeDuration)} */ @Deprecated - public void buildWithParameters(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { - buildWithParameters(req, rsp, TimeDuration.fromString(req.getParameter("delay"))); + public void buildWithParameters(StaplerRequest req, StaplerResponse rsp) throws IOException, javax.servlet.ServletException { + try { + buildWithParameters(StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp), TimeDuration.fromString(req.getParameter("delay"))); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } } - public void buildWithParameters(StaplerRequest req, StaplerResponse rsp, @CheckForNull TimeDuration delay) throws IOException, ServletException { + public void buildWithParameters(StaplerRequest2 req, StaplerResponse2 rsp, @CheckForNull TimeDuration delay) throws IOException, ServletException { List values = new ArrayList<>(); for (ParameterDefinition d : parameterDefinitions) { ParameterValue value = d.createValue(req); @@ -232,7 +243,7 @@ public ParameterDefinition getParameterDefinition(String name) { @Symbol("parameters") public static class DescriptorImpl extends OptionalJobPropertyDescriptor { @Override - public ParametersDefinitionProperty newInstance(StaplerRequest req, JSONObject formData) throws FormException { + public ParametersDefinitionProperty newInstance(StaplerRequest2 req, JSONObject formData) throws FormException { ParametersDefinitionProperty prop = (ParametersDefinitionProperty) super.newInstance(req, formData); if (prop != null && prop.parameterDefinitions.isEmpty()) { return null; diff --git a/core/src/main/java/hudson/model/PasswordParameterDefinition.java b/core/src/main/java/hudson/model/PasswordParameterDefinition.java index 8074740088f0..901f1ee66712 100644 --- a/core/src/main/java/hudson/model/PasswordParameterDefinition.java +++ b/core/src/main/java/hudson/model/PasswordParameterDefinition.java @@ -36,7 +36,7 @@ import org.kohsuke.accmod.restrictions.DoNotUse; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.DataBoundConstructor; -import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; /** * Parameter whose value is a {@link Secret} and is hidden from the UI. @@ -80,7 +80,7 @@ public ParameterValue createValue(String value) { } @Override - public PasswordParameterValue createValue(StaplerRequest req, JSONObject jo) { + public PasswordParameterValue createValue(StaplerRequest2 req, JSONObject jo) { PasswordParameterValue value = req.bindJSON(PasswordParameterValue.class, jo); if (value.getValue().getPlainText().equals(DEFAULT_VALUE)) { value = new PasswordParameterValue(getName(), getDefaultValue()); diff --git a/core/src/main/java/hudson/model/Project.java b/core/src/main/java/hudson/model/Project.java index 7dc8b692d940..eb31add23938 100644 --- a/core/src/main/java/hudson/model/Project.java +++ b/core/src/main/java/hudson/model/Project.java @@ -40,6 +40,8 @@ import hudson.triggers.SCMTrigger; import hudson.triggers.Trigger; import hudson.util.DescribableList; +import io.jenkins.servlet.ServletExceptionWrapper; +import jakarta.servlet.ServletException; import java.io.IOException; import java.util.Collection; import java.util.HashSet; @@ -49,11 +51,12 @@ import java.util.concurrent.atomic.AtomicReferenceFieldUpdater; import java.util.logging.Level; import java.util.logging.Logger; -import javax.servlet.ServletException; import jenkins.triggers.SCMTriggerItem; import net.sf.json.JSONObject; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerResponse2; /** * Buildable software project. @@ -223,10 +226,39 @@ public MavenInstallation inferMavenInstallation() { // actions // // + + /** + * @since TODO + */ + @Override + protected void submit(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException, FormException { + if (Util.isOverridden(Project.class, getClass(), "submit", StaplerRequest.class, StaplerResponse.class)) { + try { + submit(StaplerRequest.fromStaplerRequest2(req), StaplerResponse.fromStaplerResponse2(rsp)); + } catch (javax.servlet.ServletException e) { + throw ServletExceptionWrapper.toJakartaServletException(e); + } + } else { + super.submit(req, rsp); + submitImpl(req, rsp); + } + } + + /** + * @deprecated use {@link #submit(StaplerRequest2, StaplerResponse2)} + */ + @Deprecated @Override - protected void submit(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException, FormException { + protected void submit(StaplerRequest req, StaplerResponse rsp) throws IOException, javax.servlet.ServletException, FormException { super.submit(req, rsp); + try { + submitImpl(StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp)); + } catch (ServletException e) { + throw new javax.servlet.ServletException(e); + } + } + private void submitImpl(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException, FormException { JSONObject json = req.getSubmittedForm(); getBuildWrappersList().rebuild(req, json, BuildWrappers.getFor(this)); diff --git a/core/src/main/java/hudson/model/ProxyView.java b/core/src/main/java/hudson/model/ProxyView.java index b3d19282752c..41aa51df389e 100644 --- a/core/src/main/java/hudson/model/ProxyView.java +++ b/core/src/main/java/hudson/model/ProxyView.java @@ -29,9 +29,10 @@ import hudson.Util; import hudson.model.Descriptor.FormException; import hudson.util.FormValidation; +import io.jenkins.servlet.ServletExceptionWrapper; +import jakarta.servlet.ServletException; import java.io.IOException; import java.util.Collection; -import javax.servlet.ServletException; import jenkins.model.Jenkins; import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; @@ -39,7 +40,8 @@ import org.kohsuke.stapler.Stapler; import org.kohsuke.stapler.StaplerFallback; import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.interceptor.RequirePOST; /** @@ -98,7 +100,32 @@ public TopLevelItem getItem(String name) { } @Override - protected void submit(StaplerRequest req) throws IOException, ServletException, FormException { + protected void submit(StaplerRequest2 req) throws IOException, ServletException, FormException { + if (Util.isOverridden(ProxyView.class, getClass(), "submit", StaplerRequest.class)) { + try { + submit(StaplerRequest.fromStaplerRequest2(req)); + } catch (javax.servlet.ServletException e) { + throw ServletExceptionWrapper.toJakartaServletException(e); + } + } else { + submitImpl(req); + } + } + + /** + * @deprecated use {@link #submit(StaplerRequest2)} + */ + @Deprecated + @Override + protected void submit(StaplerRequest req) throws IOException, javax.servlet.ServletException, FormException { + try { + submitImpl(StaplerRequest.toStaplerRequest2(req)); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } + } + + private void submitImpl(StaplerRequest2 req) throws ServletException, FormException { String proxiedViewName = req.getSubmittedForm().getString("proxiedViewName"); if (Jenkins.get().getView(proxiedViewName) == null) { throw new FormException("Not an existing global view", "proxiedViewName"); @@ -108,7 +135,7 @@ protected void submit(StaplerRequest req) throws IOException, ServletException, @RequirePOST @Override - public Item doCreateItem(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public Item doCreateItem(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { return getProxiedView().doCreateItem(req, rsp); } @@ -139,7 +166,7 @@ public String getDisplayName() { @Override public boolean isInstantiable() { // doesn't make sense to add a ProxyView to the global views - return !(Stapler.getCurrentRequest().findAncestorObject(ViewGroup.class) instanceof Jenkins); + return !(Stapler.getCurrentRequest2().findAncestorObject(ViewGroup.class) instanceof Jenkins); } } diff --git a/core/src/main/java/hudson/model/Queue.java b/core/src/main/java/hudson/model/Queue.java index 0d299fb9426d..a8d4ca08ea0d 100644 --- a/core/src/main/java/hudson/model/Queue.java +++ b/core/src/main/java/hudson/model/Queue.java @@ -76,6 +76,8 @@ import hudson.util.ConsistentHash; import hudson.util.Futures; import hudson.util.XStream2; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; import java.lang.ref.WeakReference; @@ -107,8 +109,6 @@ import java.util.logging.Level; import java.util.logging.Logger; import java.util.stream.Collectors; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletResponse; import jenkins.model.Jenkins; import jenkins.model.queue.AsynchronousExecution; import jenkins.model.queue.CompositeCauseOfBlockage; @@ -130,7 +130,7 @@ import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.HttpResponses; import org.kohsuke.stapler.QueryParameter; -import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; import org.kohsuke.stapler.interceptor.RequirePOST; @@ -2415,7 +2415,7 @@ public Api getApi() throws AccessDeniedException { } } - public HttpResponse doIndex(StaplerRequest req) { + public HttpResponse doIndex(StaplerRequest2 req) { return HttpResponses.text("Queue item exists. For details check, for example, " + req.getRequestURI() + "api/json?tree=cancelled,executable[url]"); } diff --git a/core/src/main/java/hudson/model/RSS.java b/core/src/main/java/hudson/model/RSS.java index 19727656e729..bb41c8af10a2 100644 --- a/core/src/main/java/hudson/model/RSS.java +++ b/core/src/main/java/hudson/model/RSS.java @@ -26,13 +26,17 @@ import hudson.FeedAdapter; import hudson.util.RunList; +import io.jenkins.servlet.ServletExceptionWrapper; +import io.jenkins.servlet.http.HttpServletResponseWrapper; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Collection; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletResponse; import jenkins.model.Jenkins; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerResponse2; /** * RSS related code. @@ -52,8 +56,9 @@ public final class RSS { * Entries to be listed in the RSS feed. * @param adapter * Controls how to render entries to RSS. + * @since TODO */ - public static void forwardToRss(String title, String url, Collection entries, FeedAdapter adapter, StaplerRequest req, HttpServletResponse rsp) throws IOException, ServletException { + public static void forwardToRss(String title, String url, Collection entries, FeedAdapter adapter, StaplerRequest2 req, HttpServletResponse rsp) throws IOException, ServletException { req.setAttribute("adapter", adapter); req.setAttribute("title", title); req.setAttribute("url", url); @@ -72,6 +77,18 @@ public static void forwardToRss(String title, String url, Collection void forwardToRss(String title, String url, Collection entries, FeedAdapter adapter, StaplerRequest req, javax.servlet.http.HttpServletResponse rsp) throws IOException, javax.servlet.ServletException { + try { + forwardToRss(title, url, entries, adapter, StaplerRequest.toStaplerRequest2(req), HttpServletResponseWrapper.toJakartaHttpServletResponse(rsp)); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } + } + /** * Sends the RSS feed to the client using a default feed adapter. * @@ -81,12 +98,25 @@ public static void forwardToRss(String title, String url, Collection feedAdapter) throws IOException, ServletException { + public static void rss(StaplerRequest2 req, StaplerResponse2 rsp, String title, String url, RunList runList, FeedAdapter feedAdapter) throws IOException, ServletException { final FeedAdapter feedAdapter_ = feedAdapter == null ? Run.FEED_ADAPTER : feedAdapter; forwardToRss(title, url, runList, feedAdapter_, req, rsp); } + + /** + * @deprecated use {@link #rss(StaplerRequest2, StaplerResponse2, String, String, RunList, FeedAdapter)} + * @since 2.215 + */ + @Deprecated + public static void rss(StaplerRequest req, StaplerResponse rsp, String title, String url, RunList runList, FeedAdapter feedAdapter) throws IOException, javax.servlet.ServletException { + try { + rss(StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp), title, url, runList, feedAdapter); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } + } } diff --git a/core/src/main/java/hudson/model/ReconfigurableDescribable.java b/core/src/main/java/hudson/model/ReconfigurableDescribable.java index 1747fdb452c1..c044391b77ad 100644 --- a/core/src/main/java/hudson/model/ReconfigurableDescribable.java +++ b/core/src/main/java/hudson/model/ReconfigurableDescribable.java @@ -26,10 +26,13 @@ import edu.umd.cs.findbugs.annotations.CheckForNull; import edu.umd.cs.findbugs.annotations.NonNull; +import hudson.Util; import hudson.model.Descriptor.FormException; import hudson.slaves.NodeProperty; +import jenkins.security.stapler.StaplerNotDispatchable; import net.sf.json.JSONObject; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; /** * Marks modern {@link Describable}s that allow the current instances to pass information down to the next @@ -44,7 +47,7 @@ * Invisible Property: * This mechanism can be used to create an entirely invisible {@link Describable}, which is handy * for {@link NodeProperty}, {@link JobProperty}, etc. To do so, define an empty config.jelly to prevent it from - * showing up in the config UI, then implement {@link #reconfigure(StaplerRequest, JSONObject)} + * showing up in the config UI, then implement {@link #reconfigure(StaplerRequest2, JSONObject)} * and simply return {@code this}. * *

    @@ -78,5 +81,29 @@ public interface ReconfigurableDescribable bytes) { return new String(byteArray, getCharset()); } - public void doBuildStatus(StaplerRequest req, StaplerResponse rsp) throws IOException { + public void doBuildStatus(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException { rsp.sendRedirect2(req.getContextPath() + "/images/48x48/" + getBuildStatusUrl()); } @@ -2260,7 +2264,7 @@ public abstract static class StatusSummarizer implements ExtensionPoint { /** * Returns the build number in the body. */ - public void doBuildNumber(StaplerResponse rsp) throws IOException { + public void doBuildNumber(StaplerResponse2 rsp) throws IOException { rsp.setContentType("text/plain"); rsp.setCharacterEncoding("US-ASCII"); rsp.setStatus(HttpServletResponse.SC_OK); @@ -2270,7 +2274,7 @@ public void doBuildNumber(StaplerResponse rsp) throws IOException { /** * Returns the build time stamp in the body. */ - public void doBuildTimestamp(StaplerRequest req, StaplerResponse rsp, @QueryParameter String format) throws IOException { + public void doBuildTimestamp(StaplerRequest2 req, StaplerResponse2 rsp, @QueryParameter String format) throws IOException { rsp.setContentType("text/plain"); rsp.setCharacterEncoding("US-ASCII"); rsp.setStatus(HttpServletResponse.SC_OK); @@ -2282,8 +2286,27 @@ public void doBuildTimestamp(StaplerRequest req, StaplerResponse rsp, @QueryPara /** * Sends out the raw console output. + * + * @since TODO */ + public void doConsoleText(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException { + if (Util.isOverridden(Run.class, getClass(), "doConsoleText", StaplerRequest.class, StaplerResponse.class)) { + doConsoleText(StaplerRequest.fromStaplerRequest2(req), StaplerResponse.fromStaplerResponse2(rsp)); + } else { + doConsoleTextImpl(req, rsp); + } + } + + /** + * @deprecated use {@link #doConsoleText(StaplerRequest2, StaplerResponse2)} + */ + @Deprecated + @StaplerNotDispatchable public void doConsoleText(StaplerRequest req, StaplerResponse rsp) throws IOException { + doConsoleTextImpl(StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp)); + } + + private void doConsoleTextImpl(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException { rsp.setContentType("text/plain;charset=UTF-8"); try (InputStream input = getLogInputStream(); OutputStream os = rsp.getOutputStream(); @@ -2299,7 +2322,7 @@ public void doConsoleText(StaplerRequest req, StaplerResponse rsp) throws IOExce */ @Deprecated public void doProgressiveLog(StaplerRequest req, StaplerResponse rsp) throws IOException { - getLogText().doProgressText(req, rsp); + getLogText().doProgressText(StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp)); } /** @@ -2320,7 +2343,7 @@ public boolean canToggleLogKeep() { } @RequirePOST - public void doToggleLogKeep(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doToggleLogKeep(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { keepLog(!keepLog); rsp.forwardToPreviousPage(req); } @@ -2341,9 +2364,37 @@ public void keepLog(boolean newValue) throws IOException { /** * Deletes the build when the button is pressed. + * + * @since TODO */ @RequirePOST - public void doDoDelete(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doDoDelete(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { + if (Util.isOverridden(Run.class, getClass(), "doDoDelete", StaplerRequest.class, StaplerResponse.class)) { + try { + doDoDelete(StaplerRequest.fromStaplerRequest2(req), StaplerResponse.fromStaplerResponse2(rsp)); + } catch (javax.servlet.ServletException e) { + throw ServletExceptionWrapper.toJakartaServletException(e); + } + return; + } else { + doDoDeleteImpl(req, rsp); + } + } + + /** + * @deprecated use {@link #doDoDelete(StaplerRequest2, StaplerResponse2)} + */ + @Deprecated + @StaplerNotDispatchable + public void doDoDelete(StaplerRequest req, StaplerResponse rsp) throws IOException, javax.servlet.ServletException { + try { + doDoDeleteImpl(StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp)); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } + } + + private void doDoDeleteImpl(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { checkPermission(DELETE); // We should not simply delete the build if it has been explicitly @@ -2376,7 +2427,7 @@ public void setDescription(String description) throws IOException { * Accepts the new description. */ @RequirePOST - public synchronized void doSubmitDescription(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public synchronized void doSubmitDescription(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { setDescription(req.getParameter("description")); rsp.sendRedirect("."); // go to the top page } @@ -2507,7 +2558,7 @@ public long getEstimatedDuration() { } @POST - public @NonNull HttpResponse doConfigSubmit(StaplerRequest req) throws IOException, ServletException, FormException { + public @NonNull HttpResponse doConfigSubmit(StaplerRequest2 req) throws IOException, ServletException, FormException { checkPermission(UPDATE); try (BulkChange bc = new BulkChange(this)) { JSONObject json = req.getSubmittedForm(); @@ -2625,9 +2676,27 @@ public String getEntryAuthor(Run entry) { } } + @Override + public Object getDynamic(String token, StaplerRequest2 req, StaplerResponse2 rsp) { + if (Util.isOverridden(Run.class, getClass(), "getDynamic", String.class, StaplerRequest.class, StaplerResponse.class)) { + return getDynamic(token, StaplerRequest.fromStaplerRequest2(req), StaplerResponse.fromStaplerResponse2(rsp)); + } else { + Object returnedResult = super.getDynamic(token, req, rsp); + return getDynamicImpl(token, returnedResult); + } + } + + /** + * @deprecated use {@link #getDynamic(String, StaplerRequest2, StaplerResponse2)} + */ + @Deprecated @Override public Object getDynamic(String token, StaplerRequest req, StaplerResponse rsp) { Object returnedResult = super.getDynamic(token, req, rsp); + return getDynamicImpl(token, returnedResult); + } + + private Object getDynamicImpl(String token, Object returnedResult) { if (returnedResult == null) { //check transient actions too for (Action action : getTransientActions()) { @@ -2669,7 +2738,7 @@ public Object getTarget() { public static class RedirectUp { - public void doDynamic(StaplerRequest req, StaplerResponse rsp) throws IOException { + public void doDynamic(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException { // Compromise to handle both browsers (auto-redirect) and programmatic access // (want accurate 404 response).. send 404 with javascript to redirect browsers. rsp.setStatus(HttpServletResponse.SC_NOT_FOUND); diff --git a/core/src/main/java/hudson/model/RunParameterDefinition.java b/core/src/main/java/hudson/model/RunParameterDefinition.java index 9aec159686b9..487d895839dd 100644 --- a/core/src/main/java/hudson/model/RunParameterDefinition.java +++ b/core/src/main/java/hudson/model/RunParameterDefinition.java @@ -38,7 +38,7 @@ import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.Stapler; -import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.export.Exported; public class RunParameterDefinition extends SimpleParameterDefinition { @@ -155,7 +155,7 @@ public String getHelpFile() { } @Override - public ParameterDefinition newInstance(StaplerRequest req, JSONObject formData) throws FormException { + public ParameterDefinition newInstance(StaplerRequest2 req, JSONObject formData) throws FormException { return req.bindJSON(RunParameterDefinition.class, formData); } @@ -202,7 +202,7 @@ public ParameterValue getDefaultParameterValue() { } @Override - public ParameterValue createValue(StaplerRequest req, JSONObject jo) { + public ParameterValue createValue(StaplerRequest2 req, JSONObject jo) { RunParameterValue value = req.bindJSON(RunParameterValue.class, jo); value.setDescription(getDescription()); return value; diff --git a/core/src/main/java/hudson/model/SimpleParameterDefinition.java b/core/src/main/java/hudson/model/SimpleParameterDefinition.java index 0be175bb4a86..f52f9a338922 100644 --- a/core/src/main/java/hudson/model/SimpleParameterDefinition.java +++ b/core/src/main/java/hudson/model/SimpleParameterDefinition.java @@ -5,7 +5,7 @@ import hudson.cli.CLICommand; import java.io.IOException; import org.kohsuke.stapler.DataBoundConstructor; -import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; /** * Convenient base class for {@link ParameterDefinition} whose value can be represented in a context-independent single string token. @@ -31,7 +31,7 @@ protected SimpleParameterDefinition(@NonNull String name, @CheckForNull String d public abstract ParameterValue createValue(String value); @Override - public final ParameterValue createValue(StaplerRequest req) { + public final ParameterValue createValue(StaplerRequest2 req) { String[] value = req.getParameterValues(getName()); if (value == null) { return getDefaultParameterValue(); diff --git a/core/src/main/java/hudson/model/Slave.java b/core/src/main/java/hudson/model/Slave.java index 4ad75e039386..588dbf70b40d 100644 --- a/core/src/main/java/hudson/model/Slave.java +++ b/core/src/main/java/hudson/model/Slave.java @@ -51,6 +51,7 @@ import hudson.util.ClockDifference; import hudson.util.DescribableList; import hudson.util.FormValidation; +import jakarta.servlet.ServletException; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; @@ -69,7 +70,6 @@ import java.util.jar.Manifest; import java.util.logging.Level; import java.util.logging.Logger; -import javax.servlet.ServletException; import jenkins.model.Jenkins; import jenkins.security.MasterToSlaveCallable; import jenkins.slaves.WorkspaceLocator; @@ -80,8 +80,8 @@ import org.kohsuke.stapler.DataBoundSetter; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.QueryParameter; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; /** * Information about a Hudson agent node. @@ -418,7 +418,7 @@ public JnlpJar(String fileName) { this.fileName = fileName; } - public void doIndex(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doIndex(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { URLConnection con = connect(); // since we end up redirecting users to jnlpJars/foo.jar/, set the content disposition // so that browsers can download them in the right file name. @@ -430,7 +430,7 @@ public void doIndex(StaplerRequest req, StaplerResponse rsp) throws IOException, } @Override - public void generateResponse(StaplerRequest req, StaplerResponse rsp, Object node) throws IOException, ServletException { + public void generateResponse(StaplerRequest2 req, StaplerResponse2 rsp, Object node) throws IOException, ServletException { doIndex(req, rsp); } @@ -465,7 +465,7 @@ public URL getURL() throws IOException { } } - URL res = Jenkins.get().servletContext.getResource("/WEB-INF/" + name); + URL res = Jenkins.get().getServletContext().getResource("/WEB-INF/" + name); if (res == null) { throw new FileNotFoundException(name); // giving up } else { @@ -622,7 +622,7 @@ public FormValidation doCheckNumExecutors(@QueryParameter String value) { /** * Performs syntactical check on the remote FS for agents. */ - public FormValidation doCheckRemoteFS(@QueryParameter String value) throws IOException, ServletException { + public FormValidation doCheckRemoteFS(@QueryParameter String value) throws IOException { if (Util.fixEmptyAndTrim(value) == null) return FormValidation.error(Messages.Slave_Remote_Director_Mandatory()); diff --git a/core/src/main/java/hudson/model/StockStatusIcon.java b/core/src/main/java/hudson/model/StockStatusIcon.java index 00ce50b0453b..4fb1a9bfa007 100644 --- a/core/src/main/java/hudson/model/StockStatusIcon.java +++ b/core/src/main/java/hudson/model/StockStatusIcon.java @@ -29,9 +29,9 @@ public StockStatusIcon(String image, Localizable description) { @Override public String getImageOf(String size) { if (image.endsWith(".svg")) { - return Stapler.getCurrentRequest().getContextPath() + Jenkins.RESOURCE_PATH + "/images/svgs/" + image; + return Stapler.getCurrentRequest2().getContextPath() + Jenkins.RESOURCE_PATH + "/images/svgs/" + image; } else { - return Stapler.getCurrentRequest().getContextPath() + Jenkins.RESOURCE_PATH + + return Stapler.getCurrentRequest2().getContextPath() + Jenkins.RESOURCE_PATH + "/images/" + size + "/" + image; } } diff --git a/core/src/main/java/hudson/model/StringParameterDefinition.java b/core/src/main/java/hudson/model/StringParameterDefinition.java index 8a5dfa9f1b04..160e1b1a9c0c 100644 --- a/core/src/main/java/hudson/model/StringParameterDefinition.java +++ b/core/src/main/java/hudson/model/StringParameterDefinition.java @@ -36,7 +36,7 @@ import org.kohsuke.accmod.restrictions.DoNotUse; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.DataBoundSetter; -import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; /** * Parameter whose value is a string value. @@ -147,7 +147,7 @@ public String getHelpFile() { } @Override - public ParameterValue createValue(StaplerRequest req, JSONObject jo) { + public ParameterValue createValue(StaplerRequest2 req, JSONObject jo) { StringParameterValue value = req.bindJSON(StringParameterValue.class, jo); if (isTrim()) { value.doTrim(); diff --git a/core/src/main/java/hudson/model/TaskAction.java b/core/src/main/java/hudson/model/TaskAction.java index 60ca66ac0536..e0597218f5d5 100644 --- a/core/src/main/java/hudson/model/TaskAction.java +++ b/core/src/main/java/hudson/model/TaskAction.java @@ -27,12 +27,12 @@ import hudson.console.AnnotatedLargeText; import hudson.security.ACL; import hudson.security.Permission; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.lang.ref.WeakReference; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletResponse; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.framework.io.LargeText; import org.kohsuke.stapler.interceptor.RequirePOST; @@ -113,7 +113,7 @@ public TaskThread getWorkerThread() { /** * Handles incremental log output. */ - public void doProgressiveLog(StaplerRequest req, StaplerResponse rsp) throws IOException { + public void doProgressiveLog(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException { AnnotatedLargeText text = obtainLog(); if (text != null) { text.doProgressText(req, rsp); @@ -125,7 +125,7 @@ public void doProgressiveLog(StaplerRequest req, StaplerResponse rsp) throws IOE /** * Handles incremental log output. */ - public void doProgressiveHtml(StaplerRequest req, StaplerResponse rsp) throws IOException { + public void doProgressiveHtml(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException { AnnotatedLargeText text = obtainLog(); if (text != null) { text.doProgressiveHtml(req, rsp); @@ -138,7 +138,7 @@ public void doProgressiveHtml(StaplerRequest req, StaplerResponse rsp) throws IO * Clears the error status. */ @RequirePOST - public synchronized void doClearError(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public synchronized void doClearError(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { getACL().checkPermission(getPermission()); if (workerThread != null && !workerThread.isRunning()) diff --git a/core/src/main/java/hudson/model/TextParameterDefinition.java b/core/src/main/java/hudson/model/TextParameterDefinition.java index a22b1903e59b..96d973dc765a 100644 --- a/core/src/main/java/hudson/model/TextParameterDefinition.java +++ b/core/src/main/java/hudson/model/TextParameterDefinition.java @@ -32,7 +32,7 @@ import net.sf.json.JSONObject; import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; -import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; /** * {@link StringParameterDefinition} that uses textarea, instead of text box. @@ -68,7 +68,7 @@ public StringParameterValue getDefaultParameterValue() { } @Override - public ParameterValue createValue(StaplerRequest req, JSONObject jo) { + public ParameterValue createValue(StaplerRequest2 req, JSONObject jo) { TextParameterValue value = req.bindJSON(TextParameterValue.class, jo); value.setDescription(getDescription()); return value; diff --git a/core/src/main/java/hudson/model/TopLevelItemDescriptor.java b/core/src/main/java/hudson/model/TopLevelItemDescriptor.java index d84e4a684f22..817c1194a3d5 100644 --- a/core/src/main/java/hudson/model/TopLevelItemDescriptor.java +++ b/core/src/main/java/hudson/model/TopLevelItemDescriptor.java @@ -164,7 +164,7 @@ public String getDescription() { DefaultScriptInvoker dsi = new DefaultScriptInvoker(); StringWriter sw = new StringWriter(); XMLOutput xml = dsi.createXMLOutput(sw, true); - dsi.invokeScript(Stapler.getCurrentRequest(), Stapler.getCurrentResponse(), s, this, xml); + dsi.invokeScript(Stapler.getCurrentRequest2(), Stapler.getCurrentResponse2(), s, this, xml); return sw.toString(); } catch (Exception e) { LOGGER.log(Level.WARNING, null, e); diff --git a/core/src/main/java/hudson/model/UpdateCenter.java b/core/src/main/java/hudson/model/UpdateCenter.java index 4df95b7b3f45..437444feb434 100644 --- a/core/src/main/java/hudson/model/UpdateCenter.java +++ b/core/src/main/java/hudson/model/UpdateCenter.java @@ -58,6 +58,7 @@ import hudson.util.PersistedList; import hudson.util.VersionNumber; import hudson.util.XStream2; +import jakarta.servlet.ServletException; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; @@ -107,7 +108,6 @@ import java.util.logging.Level; import java.util.logging.Logger; import javax.net.ssl.SSLHandshakeException; -import javax.servlet.ServletException; import jenkins.MissingDependencyException; import jenkins.RestartRequiredException; import jenkins.install.InstallUtil; @@ -115,6 +115,7 @@ import jenkins.model.Jenkins; import jenkins.model.Loadable; import jenkins.security.stapler.StaplerDispatchable; +import jenkins.security.stapler.StaplerNotDispatchable; import jenkins.util.SystemProperties; import jenkins.util.Timer; import jenkins.util.io.OnMaster; @@ -129,7 +130,8 @@ import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.StaplerProxy; import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; import org.kohsuke.stapler.interceptor.RequirePOST; @@ -439,7 +441,25 @@ public Badge getBadge() { * @return The current connection status. */ @Restricted(DoNotUse.class) + public HttpResponse doConnectionStatus(StaplerRequest2 request) { + if (Util.isOverridden(UpdateCenter.class, getClass(), "doConnectionStatus", StaplerRequest.class)) { + return doConnectionStatus(StaplerRequest.fromStaplerRequest2(request)); + } else { + return doConnectionStatusImpl(request); + } + } + + /** + * @deprecated use {@link #doConnectionStatus(StaplerRequest2)} + */ + @Deprecated + @StaplerNotDispatchable + @Restricted(DoNotUse.class) public HttpResponse doConnectionStatus(StaplerRequest request) { + return doConnectionStatusImpl(StaplerRequest.toStaplerRequest2(request)); + } + + private HttpResponse doConnectionStatusImpl(StaplerRequest2 request) { Jenkins.get().checkPermission(Jenkins.SYSTEM_READ); try { String siteId = request.getParameter("siteId"); @@ -536,12 +556,12 @@ public synchronized void persistInstallStatus() { *

    * Supports a "correlationId" request parameter if you only want to get the * install status of a set of plugins requested for install through - * {@link PluginManager#doInstallPlugins(org.kohsuke.stapler.StaplerRequest)}. + * {@link PluginManager#doInstallPlugins(org.kohsuke.stapler.StaplerRequest2)}. * * @return The current installation status of a plugin set. */ @Restricted(DoNotUse.class) - public HttpResponse doInstallStatus(StaplerRequest request) { + public HttpResponse doInstallStatus(StaplerRequest2 request) { try { String correlationId = request.getParameter("correlationId"); Map response = new HashMap<>(); @@ -754,7 +774,7 @@ private boolean checkMinVersion(@CheckForNull Plugin p, @CheckForNull VersionNum * Schedules a Jenkins upgrade. */ @RequirePOST - public void doUpgrade(StaplerResponse rsp) throws IOException, ServletException { + public void doUpgrade(StaplerResponse2 rsp) throws IOException, ServletException { Jenkins.get().checkPermission(Jenkins.ADMINISTER); HudsonUpgradeJob job = new HudsonUpgradeJob(getCoreSource(), Jenkins.getAuthentication2()); if (!Lifecycle.get().canRewriteHudsonWar()) { @@ -786,7 +806,7 @@ public HttpResponse doInvalidateData() { * Schedules a Jenkins restart. */ @RequirePOST - public void doSafeRestart(StaplerRequest request, StaplerResponse response) throws IOException, ServletException { + public void doSafeRestart(StaplerRequest2 request, StaplerResponse2 response) throws IOException, ServletException { Jenkins.get().checkPermission(Jenkins.ADMINISTER); synchronized (jobs) { if (!isRestartScheduled()) { @@ -801,7 +821,7 @@ public void doSafeRestart(StaplerRequest request, StaplerResponse response) thro * Cancel all scheduled jenkins restarts */ @RequirePOST - public void doCancelRestart(StaplerResponse response) throws IOException, ServletException { + public void doCancelRestart(StaplerResponse2 response) throws IOException, ServletException { Jenkins.get().checkPermission(Jenkins.ADMINISTER); synchronized (jobs) { for (UpdateCenterJob job : jobs) { @@ -860,7 +880,7 @@ public boolean isDowngradable() { * Performs hudson downgrade. */ @RequirePOST - public void doDowngrade(StaplerResponse rsp) throws IOException, ServletException { + public void doDowngrade(StaplerResponse2 rsp) throws IOException, ServletException { Jenkins.get().checkPermission(Jenkins.ADMINISTER); if (!isDowngradable()) { sendError("Jenkins downgrade is not possible, probably backup does not exist"); @@ -877,7 +897,7 @@ public void doDowngrade(StaplerResponse rsp) throws IOException, ServletExceptio * Performs hudson downgrade. */ @RequirePOST - public void doRestart(StaplerResponse rsp) throws IOException, ServletException { + public void doRestart(StaplerResponse2 rsp) throws IOException, ServletException { Jenkins.get().checkPermission(Jenkins.ADMINISTER); HudsonDowngradeJob job = new HudsonDowngradeJob(getCoreSource(), Jenkins.getAuthentication2()); LOGGER.info("Scheduling the core downgrade"); @@ -2392,7 +2412,7 @@ private File getCached(DownloadJob job) { * Could make PluginManager#getDetachedLocation public and consume it here, but this method is * best-effort anyway. */ - src = Jenkins.get().servletContext.getResource(String.format("/WEB-INF/detached-plugins/%s.hpi", plugin.name)); + src = Jenkins.get().getServletContext().getResource(String.format("/WEB-INF/detached-plugins/%s.hpi", plugin.name)); } catch (MalformedURLException e) { return null; } diff --git a/core/src/main/java/hudson/model/UsageStatistics.java b/core/src/main/java/hudson/model/UsageStatistics.java index 341f135c52f1..04d1be58209a 100644 --- a/core/src/main/java/hudson/model/UsageStatistics.java +++ b/core/src/main/java/hudson/model/UsageStatistics.java @@ -67,7 +67,7 @@ import jenkins.security.FIPS140; import jenkins.util.SystemProperties; import net.sf.json.JSONObject; -import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; /** * @author Kohsuke Kawaguchi @@ -138,7 +138,7 @@ public String getStatData() throws IOException { JSONObject o = new JSONObject(); o.put("stat", 1); o.put("install", j.getLegacyInstanceId()); - o.put("servletContainer", j.servletContext.getServerInfo()); + o.put("servletContainer", j.getServletContext().getServerInfo()); o.put("version", Jenkins.VERSION); List nodes = new ArrayList<>(); @@ -212,7 +212,7 @@ public Permission getRequiredGlobalConfigPagePermission() { } @Override - public boolean configure(StaplerRequest req, JSONObject json) throws FormException { + public boolean configure(StaplerRequest2 req, JSONObject json) throws FormException { try { // for backward compatibility reasons, this configuration is stored in Jenkins if (DISABLED) { diff --git a/core/src/main/java/hudson/model/User.java b/core/src/main/java/hudson/model/User.java index 792622eb3c54..685a80e540a9 100644 --- a/core/src/main/java/hudson/model/User.java +++ b/core/src/main/java/hudson/model/User.java @@ -47,6 +47,8 @@ import hudson.util.FormValidation; import hudson.util.RunList; import hudson.util.XStream2; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; import java.util.ArrayList; @@ -64,8 +66,6 @@ import java.util.function.Predicate; import java.util.logging.Level; import java.util.logging.Logger; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletResponse; import jenkins.model.IdStrategy; import jenkins.model.Jenkins; import jenkins.model.Loadable; @@ -79,8 +79,8 @@ import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.StaplerProxy; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; import org.kohsuke.stapler.interceptor.RequirePOST; @@ -485,7 +485,7 @@ private LegitimateButUnknownUserDetails(String username) throws IllegalArgumentE * Accepts the new description. */ @RequirePOST - public void doSubmitDescription(StaplerRequest req, StaplerResponse rsp) throws IOException { + public void doSubmitDescription(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException { checkPermission(Jenkins.ADMINISTER); description = req.getParameter("description"); @@ -882,7 +882,7 @@ public Api getApi() { * Deletes this user from Hudson. */ @RequirePOST - public void doDoDelete(StaplerRequest req, StaplerResponse rsp) throws IOException { + public void doDoDelete(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException { checkPermission(Jenkins.ADMINISTER); if (idStrategy().equals(id, Jenkins.getAuthentication2().getName())) { rsp.sendError(HttpServletResponse.SC_BAD_REQUEST, "Cannot delete self"); @@ -894,15 +894,15 @@ public void doDoDelete(StaplerRequest req, StaplerResponse rsp) throws IOExcepti rsp.sendRedirect2("../.."); } - public void doRssAll(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doRssAll(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { RSS.rss(req, rsp, "Jenkins:" + getDisplayName() + " (all builds)", getUrl(), getBuilds().newBuilds()); } - public void doRssFailed(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doRssFailed(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { RSS.rss(req, rsp, "Jenkins:" + getDisplayName() + " (failed builds)", getUrl(), getBuilds().regressionOnly()); } - public void doRssLatest(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doRssLatest(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { final List lastBuilds = new ArrayList<>(); for (Job p : Jenkins.get().allItems(Job.class)) { for (Run b = p.getLastBuild(); b != null; b = b.getPreviousBuild()) { @@ -1010,7 +1010,7 @@ public List getTransientActions() { } @Override - public ContextMenu doContextMenu(StaplerRequest request, StaplerResponse response) throws Exception { + public ContextMenu doContextMenu(StaplerRequest2 request, StaplerResponse2 response) throws Exception { return new ContextMenu().from(this, request, response); } diff --git a/core/src/main/java/hudson/model/UserProperty.java b/core/src/main/java/hudson/model/UserProperty.java index a6ebeb738b23..9813cfaba62b 100644 --- a/core/src/main/java/hudson/model/UserProperty.java +++ b/core/src/main/java/hudson/model/UserProperty.java @@ -27,6 +27,7 @@ import edu.umd.cs.findbugs.annotations.NonNull; import hudson.DescriptorExtensionList; import hudson.ExtensionPoint; +import hudson.Util; import hudson.model.Descriptor.FormException; import hudson.model.userproperty.UserPropertyCategory; import java.util.ArrayList; @@ -34,6 +35,7 @@ import jenkins.model.Jenkins; import net.sf.json.JSONObject; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.export.ExportedBean; /** @@ -101,8 +103,22 @@ public static List allByCategoryClass(@NonNull Class - * This method should call {@link ModifiableItemGroup#doCreateItem(StaplerRequest, StaplerResponse)} + * This method should call {@link ModifiableItemGroup#doCreateItem(StaplerRequest2, StaplerResponse2)} * and then add the newly created item to this view. * * @return * null if fails. + * @since TODO */ - public abstract Item doCreateItem(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException; + @RequirePOST + public /* abstract */ Item doCreateItem(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { + if (Util.isOverridden(View.class, getClass(), "doCreateItem", StaplerRequest.class, StaplerResponse.class)) { + try { + return doCreateItem(StaplerRequest.fromStaplerRequest2(req), StaplerResponse.fromStaplerResponse2(rsp)); + } catch (javax.servlet.ServletException e) { + throw ServletExceptionWrapper.toJakartaServletException(e); + } + } else { + throw new AbstractMethodError("The class " + getClass().getName() + " must override at least one of the " + + View.class.getSimpleName() + ".doCreateItem methods"); + } + } + + /** + * @deprecated use {@link #doCreateItem(StaplerRequest2, StaplerResponse2)} + */ + @Deprecated + @StaplerNotDispatchable + public Item doCreateItem(StaplerRequest req, StaplerResponse rsp) throws IOException, javax.servlet.ServletException { + if (Util.isOverridden(View.class, getClass(), "doCreateItem", StaplerRequest2.class, StaplerResponse2.class)) { + try { + return doCreateItem(StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp)); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } + } else { + throw new AbstractMethodError("The class " + getClass().getName() + " must override at least one of the " + + View.class.getSimpleName() + ".doCreateItem methods"); + } + } /** * Makes sure that the given name is good as a job name. @@ -774,7 +859,7 @@ public FormValidation doCheckJobName(@QueryParameter String value) { * @return A {@link Categories} entity that is shown as JSON file. */ @Restricted(DoNotUse.class) - public Categories doItemCategories(StaplerRequest req, StaplerResponse rsp, @QueryParameter String iconStyle) throws IOException, ServletException { + public Categories doItemCategories(StaplerRequest2 req, StaplerResponse2 rsp, @QueryParameter String iconStyle) throws IOException, ServletException { getOwner().checkPermission(Item.CREATE); rsp.addHeader("Cache-Control", "no-cache, no-store, must-revalidate"); @@ -833,11 +918,11 @@ public Categories doItemCategories(StaplerRequest req, StaplerResponse rsp, @Que return categories; } - public void doRssAll(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doRssAll(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { RSS.rss(req, rsp, "Jenkins:" + getDisplayName() + " (all builds)", getUrl(), getBuilds().newBuilds()); } - public void doRssFailed(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doRssFailed(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { RSS.rss(req, rsp, "Jenkins:" + getDisplayName() + " (failed builds)", getUrl(), getBuilds().failureOnly().newBuilds()); } @@ -851,7 +936,7 @@ public BuildTimelineWidget getTimeline() { return new BuildTimelineWidget(getBuilds()); } - public void doRssLatest(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doRssLatest(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { List lastBuilds = new ArrayList<>(); for (TopLevelItem item : getItems()) { if (item instanceof Job job) { @@ -866,13 +951,13 @@ public void doRssLatest(StaplerRequest req, StaplerResponse rsp) throws IOExcept * Accepts {@code config.xml} submission, as well as serve it. */ @WebMethod(name = "config.xml") - public HttpResponse doConfigDotXml(StaplerRequest req) throws IOException { + public HttpResponse doConfigDotXml(StaplerRequest2 req) throws IOException { if (req.getMethod().equals("GET")) { // read checkPermission(READ); return new HttpResponse() { @Override - public void generateResponse(StaplerRequest req, StaplerResponse rsp, Object node) throws IOException, ServletException { + public void generateResponse(StaplerRequest2 req, StaplerResponse2 rsp, Object node) throws IOException, ServletException { rsp.setContentType("application/xml"); View.this.writeXml(rsp.getOutputStream()); } @@ -940,7 +1025,7 @@ public void updateByXml(Source source) throws IOException { } @Override - public ModelObjectWithContextMenu.ContextMenu doChildrenContextMenu(StaplerRequest request, StaplerResponse response) throws Exception { + public ModelObjectWithContextMenu.ContextMenu doChildrenContextMenu(StaplerRequest2 request, StaplerResponse2 response) throws Exception { ModelObjectWithContextMenu.ContextMenu m = new ModelObjectWithContextMenu.ContextMenu(); for (TopLevelItem i : getItems()) m.add(Functions.getRelativeLinkTo(i), Functions.getRelativeDisplayNameFrom(i, getOwner().getItemGroup())); @@ -964,15 +1049,15 @@ public static DescriptorExtensionList all() { /** * Returns the {@link ViewDescriptor} instances that can be instantiated for the {@link ViewGroup} in the current - * {@link StaplerRequest}. + * {@link StaplerRequest2}. *

    - * NOTE: Historically this method is only ever called from a {@link StaplerRequest} - * @return the list of instantiable {@link ViewDescriptor} instances for the current {@link StaplerRequest} + * NOTE: Historically this method is only ever called from a {@link StaplerRequest2} + * @return the list of instantiable {@link ViewDescriptor} instances for the current {@link StaplerRequest2} */ @NonNull public static List allInstantiable() { List r = new ArrayList<>(); - StaplerRequest request = Stapler.getCurrentRequest(); + StaplerRequest2 request = Stapler.getCurrentRequest2(); if (request == null) { throw new IllegalStateException("This method can only be invoked from a stapler request"); } @@ -1018,7 +1103,10 @@ public static Permission getItemCreatePermission() { return Item.CREATE; } - public static View create(StaplerRequest req, StaplerResponse rsp, ViewGroup owner) + /** + * @since TODO + */ + public static View create(StaplerRequest2 req, StaplerResponse2 rsp, ViewGroup owner) throws FormException, IOException, ServletException { String mode = req.getParameter("mode"); @@ -1070,7 +1158,20 @@ public static View create(StaplerRequest req, StaplerResponse rsp, ViewGroup own return v; } - private static View copy(StaplerRequest req, ViewGroup owner, String name) throws IOException { + /** + * @deprecated use {@link #create(StaplerRequest2, StaplerResponse2, ViewGroup)} + */ + @Deprecated + public static View create(StaplerRequest req, StaplerResponse rsp, ViewGroup owner) + throws FormException, IOException, javax.servlet.ServletException { + try { + return create(StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp), owner); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } + } + + private static View copy(StaplerRequest2 req, ViewGroup owner, String name) throws IOException { View v; String from = req.getParameter("from"); View src = owner.getView(from); diff --git a/core/src/main/java/hudson/model/ViewDescriptor.java b/core/src/main/java/hudson/model/ViewDescriptor.java index f38e5d846d9a..e140ac474054 100644 --- a/core/src/main/java/hudson/model/ViewDescriptor.java +++ b/core/src/main/java/hudson/model/ViewDescriptor.java @@ -40,7 +40,7 @@ import org.kohsuke.stapler.AncestorInPath; import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.Stapler; -import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; /** * {@link Descriptor} for {@link View}. @@ -108,7 +108,7 @@ public AutoCompletionCandidates doAutoCompleteCopyNewItemFrom(@QueryParameter fi * Possible {@link ListViewColumnDescriptor}s that can be used with this view. */ public List> getColumnsDescriptors() { - StaplerRequest request = Stapler.getCurrentRequest(); + StaplerRequest2 request = Stapler.getCurrentRequest2(); if (request != null) { View view = request.findAncestorObject(clazz); return view == null ? DescriptorVisibilityFilter.applyType(clazz, ListViewColumn.all()) @@ -121,7 +121,7 @@ public List> getColumnsDescriptors() { * Possible {@link ViewJobFilter} types that can be used with this view. */ public List> getJobFiltersDescriptors() { - StaplerRequest request = Stapler.getCurrentRequest(); + StaplerRequest2 request = Stapler.getCurrentRequest2(); if (request != null) { View view = request.findAncestorObject(clazz); return view == null ? DescriptorVisibilityFilter.applyType(clazz, ViewJobFilter.all()) diff --git a/core/src/main/java/hudson/model/ViewJob.java b/core/src/main/java/hudson/model/ViewJob.java index 0da32700c1bd..055b98cafdb5 100644 --- a/core/src/main/java/hudson/model/ViewJob.java +++ b/core/src/main/java/hudson/model/ViewJob.java @@ -25,7 +25,10 @@ package hudson.model; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; +import hudson.Util; import hudson.model.Descriptor.FormException; +import io.jenkins.servlet.ServletExceptionWrapper; +import jakarta.servlet.ServletException; import java.io.File; import java.io.IOException; import java.util.LinkedHashSet; @@ -34,11 +37,12 @@ import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; -import javax.servlet.ServletException; import jenkins.model.Jenkins; import jenkins.util.SystemProperties; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerResponse2; /** * {@link Job} that monitors activities that happen outside Hudson, @@ -165,8 +169,30 @@ private void _reload() { protected abstract void reload(); @Override - protected void submit(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException, FormException { + protected void submit(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException, FormException { + if (Util.isOverridden(ViewJob.class, getClass(), "submit", StaplerRequest.class, StaplerResponse.class)) { + try { + submit(StaplerRequest.fromStaplerRequest2(req), StaplerResponse.fromStaplerResponse2(rsp)); + } catch (javax.servlet.ServletException e) { + throw ServletExceptionWrapper.toJakartaServletException(e); + } + } else { + super.submit(req, rsp); + submitImpl(); + } + } + + /** + * @deprecated use {@link #submit(StaplerRequest2, StaplerResponse2)} + */ + @Deprecated + @Override + protected void submit(StaplerRequest req, StaplerResponse rsp) throws IOException, javax.servlet.ServletException, FormException { super.submit(req, rsp); + submitImpl(); + } + + private void submitImpl() { // make sure to reload to reflect this config change. nextUpdate = 0; } diff --git a/core/src/main/java/hudson/model/ViewProperty.java b/core/src/main/java/hudson/model/ViewProperty.java index 31ad3078d449..15f0e62164c4 100644 --- a/core/src/main/java/hudson/model/ViewProperty.java +++ b/core/src/main/java/hudson/model/ViewProperty.java @@ -26,9 +26,11 @@ import hudson.DescriptorExtensionList; import hudson.ExtensionPoint; +import hudson.Util; import jenkins.model.Jenkins; import net.sf.json.JSONObject; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; /** * Extensible property of {@link View}. @@ -68,8 +70,22 @@ public static DescriptorExtensionList all( return Jenkins.get().getDescriptorList(ViewProperty.class); } + @Override + public ViewProperty reconfigure(StaplerRequest2 req, JSONObject form) throws Descriptor.FormException { + if (Util.isOverridden(ViewProperty.class, getClass(), "reconfigure", StaplerRequest.class, JSONObject.class)) { + return reconfigure(StaplerRequest.fromStaplerRequest2(req), form); + } else { + return reconfigureImpl(req, form); + } + } + + @Deprecated @Override public ViewProperty reconfigure(StaplerRequest req, JSONObject form) throws Descriptor.FormException { + return reconfigureImpl(StaplerRequest.toStaplerRequest2(req), form); + } + + private ViewProperty reconfigureImpl(StaplerRequest2 req, JSONObject form) throws Descriptor.FormException { return form == null ? null : getDescriptor().newInstance(req, form); } } diff --git a/core/src/main/java/hudson/model/labels/LabelAtom.java b/core/src/main/java/hudson/model/labels/LabelAtom.java index 84ee083c488d..f5e597b71b30 100644 --- a/core/src/main/java/hudson/model/labels/LabelAtom.java +++ b/core/src/main/java/hudson/model/labels/LabelAtom.java @@ -46,6 +46,7 @@ import hudson.util.QuotedStringTokenizer; import hudson.util.VariableResolver; import hudson.util.XStream2; +import jakarta.servlet.ServletException; import java.io.File; import java.io.IOException; import java.util.ArrayList; @@ -56,13 +57,12 @@ import java.util.logging.Level; import java.util.logging.Logger; import java.util.regex.Pattern; -import javax.servlet.ServletException; import jenkins.model.Jenkins; import jenkins.util.SystemProperties; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.DoNotUse; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.interceptor.RequirePOST; import org.kohsuke.stapler.verb.POST; @@ -221,7 +221,7 @@ public List getApplicablePropertyDescriptors() { * Accepts the update to the node configuration. */ @POST - public void doConfigSubmit(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException, FormException { + public void doConfigSubmit(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException, FormException { final Jenkins app = Jenkins.get(); app.checkPermission(Jenkins.ADMINISTER); @@ -249,7 +249,7 @@ private boolean isInvalidName() { */ @RequirePOST @Restricted(DoNotUse.class) - public synchronized void doSubmitDescription(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public synchronized void doSubmitDescription(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { Jenkins.get().checkPermission(Jenkins.ADMINISTER); setDescription(req.getParameter("description")); diff --git a/core/src/main/java/hudson/model/userproperty/UserPropertyCategoryAccountAction.java b/core/src/main/java/hudson/model/userproperty/UserPropertyCategoryAccountAction.java index 822cdc6f4c99..c0424e828419 100644 --- a/core/src/main/java/hudson/model/userproperty/UserPropertyCategoryAccountAction.java +++ b/core/src/main/java/hudson/model/userproperty/UserPropertyCategoryAccountAction.java @@ -32,20 +32,20 @@ import hudson.model.User; import hudson.model.UserProperty; import hudson.model.UserPropertyDescriptor; +import jakarta.servlet.ServletException; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; -import javax.servlet.ServletException; import jenkins.model.Jenkins; import jenkins.security.UserDetailsCache; import net.sf.json.JSONObject; import org.jenkinsci.Symbol; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.verb.POST; @Restricted(NoExternalUse.class) @@ -91,7 +91,7 @@ private static List allByTwoCategoryClasses( } @POST - public void doConfigSubmit(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException, Descriptor.FormException { + public void doConfigSubmit(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException, Descriptor.FormException { User targetUser = this.getTargetUser(); targetUser.checkPermission(Jenkins.ADMINISTER); diff --git a/core/src/main/java/hudson/model/userproperty/UserPropertyCategoryAction.java b/core/src/main/java/hudson/model/userproperty/UserPropertyCategoryAction.java index caec7c1bdf88..6eadb9f89ece 100644 --- a/core/src/main/java/hudson/model/userproperty/UserPropertyCategoryAction.java +++ b/core/src/main/java/hudson/model/userproperty/UserPropertyCategoryAction.java @@ -6,14 +6,14 @@ import hudson.model.UserProperty; import hudson.model.UserPropertyDescriptor; import hudson.util.FormApply; +import jakarta.servlet.ServletException; import java.io.IOException; import java.util.ArrayList; import java.util.List; -import javax.servlet.ServletException; import jenkins.model.Jenkins; import net.sf.json.JSONObject; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.verb.POST; public abstract class UserPropertyCategoryAction { @@ -31,7 +31,7 @@ public UserPropertyCategoryAction(User targetUser) { public @NonNull abstract List getMyCategoryDescriptors(); @POST - public void doConfigSubmit(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException, Descriptor.FormException { + public void doConfigSubmit(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException, Descriptor.FormException { this.targetUser.checkPermission(Jenkins.ADMINISTER); JSONObject json = req.getSubmittedForm(); diff --git a/core/src/main/java/hudson/scm/AbstractScmTagAction.java b/core/src/main/java/hudson/scm/AbstractScmTagAction.java index b861a90b15fe..3bf14e753242 100644 --- a/core/src/main/java/hudson/scm/AbstractScmTagAction.java +++ b/core/src/main/java/hudson/scm/AbstractScmTagAction.java @@ -24,17 +24,22 @@ package hudson.scm; +import hudson.Util; import hudson.model.AbstractBuild; import hudson.model.BuildBadgeAction; import hudson.model.Run; import hudson.model.TaskAction; import hudson.security.ACL; import hudson.security.Permission; +import io.jenkins.servlet.ServletExceptionWrapper; +import jakarta.servlet.ServletException; import java.io.IOException; -import javax.servlet.ServletException; import jenkins.model.RunAction2; +import jenkins.security.stapler.StaplerNotDispatchable; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerResponse2; /** * Common part of {@code CVSSCM.TagAction} and {@code SubversionTagAction}. @@ -108,7 +113,32 @@ protected ACL getACL() { return run.getACL(); } - public void doIndex(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doIndex(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { + if (Util.isOverridden(AbstractScmTagAction.class, getClass(), "doIndex", StaplerRequest.class, StaplerResponse.class)) { + try { + doIndex(StaplerRequest.fromStaplerRequest2(req), StaplerResponse.fromStaplerResponse2(rsp)); + } catch (javax.servlet.ServletException e) { + throw ServletExceptionWrapper.toJakartaServletException(e); + } + } else { + doIndexImpl(req, rsp); + } + } + + /** + * @deprecated use {@link #doIndex(StaplerRequest2, StaplerResponse2)} + */ + @Deprecated + @StaplerNotDispatchable + public void doIndex(StaplerRequest req, StaplerResponse rsp) throws IOException, javax.servlet.ServletException { + try { + doIndexImpl(StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp)); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } + } + + private void doIndexImpl(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { req.getView(this, chooseAction()).forward(req, rsp); } diff --git a/core/src/main/java/hudson/scm/RepositoryBrowsers.java b/core/src/main/java/hudson/scm/RepositoryBrowsers.java index 0a1e28d1a152..3562f1c13964 100644 --- a/core/src/main/java/hudson/scm/RepositoryBrowsers.java +++ b/core/src/main/java/hudson/scm/RepositoryBrowsers.java @@ -32,6 +32,7 @@ import java.util.List; import net.sf.json.JSONObject; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; /** * List of all installed {@link RepositoryBrowsers}. @@ -63,7 +64,7 @@ public static List>> filter(Class @@ -82,13 +83,23 @@ T createInstance(Class type, StaplerRequest req, String fieldName) throws For /** * Creates an instance of {@link RepositoryBrowser} from a form submission. * - * @since 1.227 + * @since TODO */ public static - T createInstance(Class type, StaplerRequest req, JSONObject parent, String fieldName) throws FormException { + T createInstance(Class type, StaplerRequest2 req, JSONObject parent, String fieldName) throws FormException { JSONObject o = (JSONObject) parent.get(fieldName); if (o == null) return null; return req.bindJSON(type, o); } + + /** + * @deprecated use {@link #createInstance(Class, StaplerRequest2, JSONObject, String)} + * @since 1.227 + */ + @Deprecated + public static + T createInstance(Class type, StaplerRequest req, JSONObject parent, String fieldName) throws FormException { + return createInstance(type, StaplerRequest.toStaplerRequest2(req), parent, fieldName); + } } diff --git a/core/src/main/java/hudson/scm/SCMS.java b/core/src/main/java/hudson/scm/SCMS.java index a8fd4ddc4dc1..de92d453d248 100644 --- a/core/src/main/java/hudson/scm/SCMS.java +++ b/core/src/main/java/hudson/scm/SCMS.java @@ -28,9 +28,11 @@ import hudson.model.AbstractProject; import hudson.model.Descriptor.FormException; import hudson.util.DescriptorList; +import io.jenkins.servlet.ServletExceptionWrapper; +import jakarta.servlet.ServletException; import java.util.List; -import javax.servlet.ServletException; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; /** * List of all installed SCMs. @@ -53,7 +55,7 @@ public class SCMS { * The project for which this SCM is configured to. */ @SuppressWarnings("deprecation") - public static SCM parseSCM(StaplerRequest req, AbstractProject target) throws FormException, ServletException { + public static SCM parseSCM(StaplerRequest2 req, AbstractProject target) throws FormException, ServletException { SCM scm = SCM.all().newInstanceFromRadioList(req.getSubmittedForm().getJSONObject("scm")); if (scm == null) { scm = new NullSCM(); // JENKINS-36043 workaround for AbstractMultiBranchProject.submit @@ -62,12 +64,24 @@ public static SCM parseSCM(StaplerRequest req, AbstractProject target) throws Fo return scm; } + /** + * @deprecated use {@link #parseSCM(StaplerRequest2, AbstractProject)} + */ + @Deprecated + public static SCM parseSCM(StaplerRequest req, AbstractProject target) throws FormException, javax.servlet.ServletException { + try { + return parseSCM(StaplerRequest.toStaplerRequest2(req), target); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } + } + /** * @deprecated as of 1.294 - * Use {@link #parseSCM(StaplerRequest, AbstractProject)} and pass in the caller's project type. + * Use {@link #parseSCM(StaplerRequest2, AbstractProject)} and pass in the caller's project type. */ @Deprecated - public static SCM parseSCM(StaplerRequest req) throws FormException, ServletException { + public static SCM parseSCM(StaplerRequest req) throws FormException, javax.servlet.ServletException { return parseSCM(req, null); } diff --git a/core/src/main/java/hudson/search/Search.java b/core/src/main/java/hudson/search/Search.java index a3a674ae1106..7773d9e9d696 100644 --- a/core/src/main/java/hudson/search/Search.java +++ b/core/src/main/java/hudson/search/Search.java @@ -25,12 +25,14 @@ package hudson.search; -import static javax.servlet.http.HttpServletResponse.SC_NOT_FOUND; +import static jakarta.servlet.http.HttpServletResponse.SC_NOT_FOUND; import edu.umd.cs.findbugs.annotations.CheckForNull; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import hudson.Util; import hudson.util.EditDistance; +import io.jenkins.servlet.ServletExceptionWrapper; +import jakarta.servlet.ServletException; import java.io.IOException; import java.util.AbstractList; import java.util.ArrayList; @@ -40,8 +42,8 @@ import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; -import javax.servlet.ServletException; import jenkins.model.Jenkins; +import jenkins.security.stapler.StaplerNotDispatchable; import jenkins.util.MemoryReductionUtil; import jenkins.util.SystemProperties; import org.kohsuke.accmod.Restricted; @@ -50,7 +52,9 @@ import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.StaplerProxy; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.export.DataWriter; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; @@ -73,7 +77,32 @@ public class Search implements StaplerProxy { */ private static /* nonfinal for Jenkins script console */ int MAX_SEARCH_SIZE = Integer.getInteger(Search.class.getName() + ".MAX_SEARCH_SIZE", 500); - public void doIndex(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doIndex(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { + if (Util.isOverridden(Search.class, getClass(), "doIndex", StaplerRequest.class, StaplerResponse.class)) { + try { + doIndex(StaplerRequest.fromStaplerRequest2(req), StaplerResponse.fromStaplerResponse2(rsp)); + } catch (javax.servlet.ServletException e) { + throw ServletExceptionWrapper.toJakartaServletException(e); + } + } else { + doIndexImpl(req, rsp); + } + } + + /** + * @deprecated use {@link #doIndex(StaplerRequest2, StaplerResponse2)} + */ + @Deprecated + @StaplerNotDispatchable + public void doIndex(StaplerRequest req, StaplerResponse rsp) throws IOException, javax.servlet.ServletException { + try { + doIndexImpl(StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp)); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } + } + + private void doIndexImpl(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { List l = req.getAncestors(); for (int i = l.size() - 1; i >= 0; i--) { Ancestor a = l.get(i); @@ -110,7 +139,7 @@ public void doIndex(StaplerRequest req, StaplerResponse rsp) throws IOException, * * See http://developer.mozilla.org/en/docs/Supporting_search_suggestions_in_search_plugins */ - public void doSuggestOpenSearch(StaplerRequest req, StaplerResponse rsp, @QueryParameter String q) throws IOException, ServletException { + public void doSuggestOpenSearch(StaplerRequest2 req, StaplerResponse2 rsp, @QueryParameter String q) throws IOException, ServletException { rsp.setContentType(Flavor.JSON.contentType); DataWriter w = Flavor.JSON.createDataWriter(null, rsp); w.startArray(); @@ -126,7 +155,7 @@ public void doSuggestOpenSearch(StaplerRequest req, StaplerResponse rsp, @QueryP /** * Used by search box auto-completion. Returns JSON array. */ - public void doSuggest(StaplerRequest req, StaplerResponse rsp, @QueryParameter String query) throws IOException, ServletException { + public void doSuggest(StaplerRequest2 req, StaplerResponse2 rsp, @QueryParameter String query) throws IOException, ServletException { Result r = new Result(); for (SuggestedItem item : getSuggestions(req, query)) r.suggestions.add(new Item(item.getPath())); @@ -141,7 +170,23 @@ public void doSuggest(StaplerRequest req, StaplerResponse rsp, @QueryParameter S * can be empty but never null. The size of the list is always smaller than * a certain threshold to avoid showing too many options. */ + public SearchResult getSuggestions(StaplerRequest2 req, String query) { + if (Util.isOverridden(Search.class, getClass(), "getSuggestions", StaplerRequest.class, String.class)) { + return getSuggestions(StaplerRequest.fromStaplerRequest2(req), query); + } else { + return getSuggestionsImpl(req, query); + } + } + + /** + * @deprecated use {@link #getSuggestions(StaplerRequest2, String)} + */ + @Deprecated public SearchResult getSuggestions(StaplerRequest req, String query) { + return getSuggestionsImpl(StaplerRequest.toStaplerRequest2(req), query); + } + + private SearchResult getSuggestionsImpl(StaplerRequest2 req, String query) { Set paths = new HashSet<>(); // paths already added, to control duplicates SearchResultImpl r = new SearchResultImpl(); int max = Math.min( @@ -164,7 +209,7 @@ public int getMaxSearchSize() { return MAX_SEARCH_SIZE; } - private @CheckForNull SearchableModelObject findClosestSearchableModelObject(StaplerRequest req) { + private @CheckForNull SearchableModelObject findClosestSearchableModelObject(StaplerRequest2 req) { List l = req.getAncestors(); for (int i = l.size() - 1; i >= 0; i--) { Ancestor a = l.get(i); @@ -178,7 +223,7 @@ public int getMaxSearchSize() { /** * Creates merged search index for suggestion. */ - private SearchIndex makeSuggestIndex(StaplerRequest req) { + private SearchIndex makeSuggestIndex(StaplerRequest2 req) { SearchIndexBuilder builder = new SearchIndexBuilder(); for (Ancestor a : req.getAncestors()) { if (a.getObject() instanceof SearchableModelObject) { diff --git a/core/src/main/java/hudson/search/UserSearchProperty.java b/core/src/main/java/hudson/search/UserSearchProperty.java index a3515dd08874..7f36476b112b 100644 --- a/core/src/main/java/hudson/search/UserSearchProperty.java +++ b/core/src/main/java/hudson/search/UserSearchProperty.java @@ -8,7 +8,7 @@ import hudson.model.userproperty.UserPropertyCategory; import net.sf.json.JSONObject; import org.jenkinsci.Symbol; -import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.export.Exported; public class UserSearchProperty extends hudson.model.UserProperty { @@ -51,7 +51,7 @@ public UserProperty newInstance(User user) { } @Override - public UserProperty newInstance(StaplerRequest req, JSONObject formData) throws FormException { + public UserProperty newInstance(StaplerRequest2 req, JSONObject formData) throws FormException { return new UserSearchProperty(formData.optBoolean("insensitiveSearch")); } diff --git a/core/src/main/java/hudson/security/AccessDeniedException2.java b/core/src/main/java/hudson/security/AccessDeniedException2.java index 00daee721251..e745669bad67 100644 --- a/core/src/main/java/hudson/security/AccessDeniedException2.java +++ b/core/src/main/java/hudson/security/AccessDeniedException2.java @@ -1,5 +1,6 @@ package hudson.security; +import io.jenkins.servlet.http.HttpServletResponseWrapper; import java.io.PrintWriter; import javax.servlet.http.HttpServletResponse; import jenkins.util.SystemProperties; @@ -42,7 +43,7 @@ public AccessDeniedException2(Throwable t, Authentication authentication, Permis * Reports the details of the access failure in HTTP headers to assist diagnosis. */ public void reportAsHeaders(HttpServletResponse rsp) { - toSpring().reportAsHeaders(rsp); + toSpring().reportAsHeaders(HttpServletResponseWrapper.toJakartaHttpServletResponse(rsp)); } /** diff --git a/core/src/main/java/hudson/security/AccessDeniedException3.java b/core/src/main/java/hudson/security/AccessDeniedException3.java index 82f5d50428ce..90fc521dfd7b 100644 --- a/core/src/main/java/hudson/security/AccessDeniedException3.java +++ b/core/src/main/java/hudson/security/AccessDeniedException3.java @@ -1,7 +1,8 @@ package hudson.security; +import io.jenkins.servlet.http.HttpServletResponseWrapper; +import jakarta.servlet.http.HttpServletResponse; import java.io.PrintWriter; -import javax.servlet.http.HttpServletResponse; import jenkins.util.SystemProperties; import org.springframework.security.access.AccessDeniedException; import org.springframework.security.core.Authentication; @@ -43,6 +44,18 @@ public AccessDeniedException3(Throwable t, Authentication authentication, Permis * Reports the details of the access failure in HTTP headers to assist diagnosis. */ public void reportAsHeaders(HttpServletResponse rsp) { + reportAsHeadersImpl(rsp); + } + + /** + * @deprecated use {@link #reportAsHeaders(HttpServletResponse)} + */ + @Deprecated + public void reportAsHeaders(javax.servlet.http.HttpServletResponse rsp) { + reportAsHeadersImpl(HttpServletResponseWrapper.toJakartaHttpServletResponse(rsp)); + } + + private void reportAsHeadersImpl(HttpServletResponse rsp) { rsp.addHeader("X-You-Are-Authenticated-As", authentication.getName()); if (REPORT_GROUP_HEADERS) { for (GrantedAuthority auth : authentication.getAuthorities()) { diff --git a/core/src/main/java/hudson/security/AccessDeniedHandlerImpl.java b/core/src/main/java/hudson/security/AccessDeniedHandlerImpl.java index 68843cfddd16..b1f1e35e1fc8 100644 --- a/core/src/main/java/hudson/security/AccessDeniedHandlerImpl.java +++ b/core/src/main/java/hudson/security/AccessDeniedHandlerImpl.java @@ -24,10 +24,10 @@ package hudson.security; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import jenkins.model.Jenkins; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; @@ -53,7 +53,7 @@ public void handle(HttpServletRequest req, HttpServletResponse rsp, AccessDenied ((AccessDeniedException3) cause).reportAsHeaders(rsp); } - WebApp.get(Jenkins.get().servletContext).getSomeStapler() + WebApp.get(Jenkins.get().getServletContext()).getSomeStapler() .invoke(req, rsp, Jenkins.get(), "/accessDenied"); } } diff --git a/core/src/main/java/hudson/security/AuthenticationProcessingFilter2.java b/core/src/main/java/hudson/security/AuthenticationProcessingFilter2.java index 2714ec8eba63..0c9559bf140f 100644 --- a/core/src/main/java/hudson/security/AuthenticationProcessingFilter2.java +++ b/core/src/main/java/hudson/security/AuthenticationProcessingFilter2.java @@ -26,14 +26,14 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import hudson.model.User; +import jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; import jenkins.security.SecurityListener; import jenkins.security.seed.UserSeedProperty; import jenkins.util.SystemProperties; diff --git a/core/src/main/java/hudson/security/AuthorizationStrategy.java b/core/src/main/java/hudson/security/AuthorizationStrategy.java index f77385829730..db3001fc40f2 100644 --- a/core/src/main/java/hudson/security/AuthorizationStrategy.java +++ b/core/src/main/java/hudson/security/AuthorizationStrategy.java @@ -47,7 +47,7 @@ import jenkins.security.stapler.StaplerAccessibleType; import net.sf.json.JSONObject; import org.jenkinsci.Symbol; -import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; /** * Controls authorization throughout Hudson. @@ -241,7 +241,7 @@ public String getDisplayName() { } @Override - public @NonNull AuthorizationStrategy newInstance(StaplerRequest req, JSONObject formData) throws FormException { + public @NonNull AuthorizationStrategy newInstance(StaplerRequest2 req, JSONObject formData) throws FormException { return UNSECURED; } } diff --git a/core/src/main/java/hudson/security/BasicAuthenticationFilter.java b/core/src/main/java/hudson/security/BasicAuthenticationFilter.java index b2a06024278b..8586fb0317a0 100644 --- a/core/src/main/java/hudson/security/BasicAuthenticationFilter.java +++ b/core/src/main/java/hudson/security/BasicAuthenticationFilter.java @@ -27,24 +27,24 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import hudson.model.User; import hudson.util.Scrambler; +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.RequestDispatcher; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.RequestDispatcher; -import javax.servlet.ServletContext; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import jenkins.model.Jenkins; import jenkins.security.BasicApiTokenHelper; import jenkins.security.SecurityListener; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.CompatibleFilter; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UserDetails; @@ -68,7 +68,7 @@ * This causes the container to perform authentication, but there's no way * to find out whether the user has been successfully authenticated or not. * So to find this out, we then redirect the user to - * {@link jenkins.model.Jenkins#doSecured(StaplerRequest, StaplerResponse) /secured/... page}. + * {@link jenkins.model.Jenkins#doSecured(StaplerRequest2, StaplerResponse2) /secured/... page}. * *

    * The handler of the above URL checks if the user is authenticated, @@ -91,7 +91,7 @@ * * @author Kohsuke Kawaguchi */ -public class BasicAuthenticationFilter implements Filter { +public class BasicAuthenticationFilter implements CompatibleFilter { private ServletContext servletContext; @Override diff --git a/core/src/main/java/hudson/security/ChainedServletFilter.java b/core/src/main/java/hudson/security/ChainedServletFilter.java index 74e1e463f565..98bc725c2b1a 100644 --- a/core/src/main/java/hudson/security/ChainedServletFilter.java +++ b/core/src/main/java/hudson/security/ChainedServletFilter.java @@ -24,27 +24,28 @@ package hudson.security; +import jakarta.servlet.Filter; +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Arrays; import java.util.Collection; import java.util.logging.Level; import java.util.logging.Logger; import java.util.regex.Pattern; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import org.kohsuke.stapler.CompatibleFilter; /** * Servlet {@link Filter} that chains multiple {@link Filter}s. * * @author Kohsuke Kawaguchi */ -public class ChainedServletFilter implements Filter { +public class ChainedServletFilter implements CompatibleFilter { // array is assumed to be immutable once set protected volatile Filter[] filters; diff --git a/core/src/main/java/hudson/security/ContainerAuthentication.java b/core/src/main/java/hudson/security/ContainerAuthentication.java index be7bdc01ab62..571b5cc782e8 100644 --- a/core/src/main/java/hudson/security/ContainerAuthentication.java +++ b/core/src/main/java/hudson/security/ContainerAuthentication.java @@ -24,12 +24,12 @@ package hudson.security; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.http.HttpServletRequest; import java.security.Principal; import java.util.ArrayList; import java.util.Collection; import java.util.List; -import javax.servlet.ServletRequest; -import javax.servlet.http.HttpServletRequest; import jenkins.model.Jenkins; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; diff --git a/core/src/main/java/hudson/security/FederatedLoginService.java b/core/src/main/java/hudson/security/FederatedLoginService.java index 2d176290d8be..38d91f7da901 100644 --- a/core/src/main/java/hudson/security/FederatedLoginService.java +++ b/core/src/main/java/hudson/security/FederatedLoginService.java @@ -30,13 +30,13 @@ import hudson.ExtensionPoint; import hudson.model.User; import hudson.model.UserProperty; +import jakarta.servlet.ServletException; import java.io.IOException; import java.io.Serializable; -import javax.servlet.ServletException; import jenkins.model.Jenkins; import org.kohsuke.stapler.HttpResponse; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UserDetails; @@ -245,7 +245,7 @@ public UnclaimedIdentityException(FederatedIdentity identity) { } @Override - public void generateResponse(StaplerRequest req, StaplerResponse rsp, Object node) throws IOException, ServletException { + public void generateResponse(StaplerRequest2 req, StaplerResponse2 rsp, Object node) throws IOException, ServletException { SecurityRealm sr = Jenkins.get().getSecurityRealm(); if (sr.allowsSignup()) { try { diff --git a/core/src/main/java/hudson/security/GlobalSecurityConfiguration.java b/core/src/main/java/hudson/security/GlobalSecurityConfiguration.java index 4c9dc1add7e7..a8657df65685 100644 --- a/core/src/main/java/hudson/security/GlobalSecurityConfiguration.java +++ b/core/src/main/java/hudson/security/GlobalSecurityConfiguration.java @@ -35,13 +35,13 @@ import hudson.model.Descriptor.FormException; import hudson.model.ManagementLink; import hudson.util.FormApply; +import jakarta.servlet.ServletException; import java.io.IOException; import java.util.Set; import java.util.TreeSet; import java.util.function.Predicate; import java.util.logging.Level; import java.util.logging.Logger; -import javax.servlet.ServletException; import jenkins.model.GlobalConfigurationCategory; import jenkins.model.Jenkins; import jenkins.util.ServerTcpPort; @@ -51,8 +51,8 @@ import org.jenkinsci.Symbol; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.verb.POST; /** @@ -108,7 +108,7 @@ public Category getCategory() { } @POST - public synchronized void doConfigure(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException, FormException { + public synchronized void doConfigure(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException, FormException { // for compatibility reasons, the actual value is stored in Jenkins JSONObject json = req.getSubmittedForm(); BulkChange bc = new BulkChange(Jenkins.get()); @@ -125,7 +125,7 @@ public synchronized void doConfigure(StaplerRequest req, StaplerResponse rsp) th } } - public boolean configure(StaplerRequest req, JSONObject json) throws FormException { + public boolean configure(StaplerRequest2 req, JSONObject json) throws FormException { // for compatibility reasons, the actual value is stored in Jenkins Jenkins j = Jenkins.get(); j.checkPermission(Jenkins.ADMINISTER); @@ -171,7 +171,7 @@ public boolean configure(StaplerRequest req, JSONObject json) throws FormExcepti return result; } - private boolean configureDescriptor(StaplerRequest req, JSONObject json, Descriptor d) throws FormException { + private boolean configureDescriptor(StaplerRequest2 req, JSONObject json, Descriptor d) throws FormException { // collapse the structure to remain backward compatible with the JSON structure before 1. String name = d.getJsonSafeClassName(); JSONObject js = json.has(name) ? json.getJSONObject(name) : new JSONObject(); // if it doesn't have the property, the method returns invalid null object. diff --git a/core/src/main/java/hudson/security/HttpSessionContextIntegrationFilter2.java b/core/src/main/java/hudson/security/HttpSessionContextIntegrationFilter2.java index 786df5d72879..c2c0d8a6abe1 100644 --- a/core/src/main/java/hudson/security/HttpSessionContextIntegrationFilter2.java +++ b/core/src/main/java/hudson/security/HttpSessionContextIntegrationFilter2.java @@ -25,13 +25,13 @@ package hudson.security; import hudson.model.User; +import jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpSession; import java.io.IOException; -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; import jenkins.security.seed.UserSeedProperty; import org.springframework.security.authentication.AnonymousAuthenticationToken; import org.springframework.security.core.Authentication; diff --git a/core/src/main/java/hudson/security/HudsonAuthenticationEntryPoint.java b/core/src/main/java/hudson/security/HudsonAuthenticationEntryPoint.java index e99dfdc14f74..950cf3614c82 100644 --- a/core/src/main/java/hudson/security/HudsonAuthenticationEntryPoint.java +++ b/core/src/main/java/hudson/security/HudsonAuthenticationEntryPoint.java @@ -24,19 +24,19 @@ package hudson.security; -import static javax.servlet.http.HttpServletResponse.SC_FORBIDDEN; +import static jakarta.servlet.http.HttpServletResponse.SC_FORBIDDEN; import hudson.Functions; import hudson.Util; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.text.MessageFormat; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.springframework.security.authentication.InsufficientAuthenticationException; diff --git a/core/src/main/java/hudson/security/HudsonFilter.java b/core/src/main/java/hudson/security/HudsonFilter.java index 333180b32ead..4438874b6030 100644 --- a/core/src/main/java/hudson/security/HudsonFilter.java +++ b/core/src/main/java/hudson/security/HudsonFilter.java @@ -26,17 +26,18 @@ import static java.util.logging.Level.SEVERE; +import jakarta.servlet.Filter; +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.logging.Logger; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletContext; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletResponse; import jenkins.model.Jenkins; +import org.kohsuke.stapler.CompatibleFilter; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.web.authentication.RememberMeServices; @@ -52,7 +53,7 @@ * @author Kohsuke Kawaguchi * @since 1.160 */ -public class HudsonFilter implements Filter { +public class HudsonFilter implements CompatibleFilter { /** * The SecurityRealm specific filter. */ diff --git a/core/src/main/java/hudson/security/HudsonPrivateSecurityRealm.java b/core/src/main/java/hudson/security/HudsonPrivateSecurityRealm.java index bd122244c7e2..1a6ebe66f749 100644 --- a/core/src/main/java/hudson/security/HudsonPrivateSecurityRealm.java +++ b/core/src/main/java/hudson/security/HudsonPrivateSecurityRealm.java @@ -24,7 +24,7 @@ package hudson.security; -import static javax.servlet.http.HttpServletResponse.SC_UNAUTHORIZED; +import static jakarta.servlet.http.HttpServletResponse.SC_UNAUTHORIZED; import com.thoughtworks.xstream.converters.UnmarshallingContext; import edu.umd.cs.findbugs.annotations.NonNull; @@ -47,6 +47,15 @@ import hudson.util.Protector; import hudson.util.Scrambler; import hudson.util.XStream2; +import jakarta.servlet.Filter; +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; import java.io.IOException; import java.lang.reflect.Constructor; import java.nio.charset.StandardCharsets; @@ -67,15 +76,6 @@ import java.util.regex.Pattern; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.PBEKeySpec; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; import jenkins.model.Jenkins; import jenkins.security.FIPS140; import jenkins.security.SecurityListener; @@ -85,14 +85,15 @@ import org.jenkinsci.Symbol; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; +import org.kohsuke.stapler.CompatibleFilter; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.ForwardToView; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.HttpResponses; import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.Stapler; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.interceptor.RequirePOST; import org.mindrot.jbcrypt.BCrypt; import org.springframework.security.authentication.BadCredentialsException; @@ -236,10 +237,10 @@ protected UserDetails authenticate2(String username, String password) throws Aut @Override public HttpResponse commenceSignup(final FederatedIdentity identity) { // store the identity in the session so that we can use this later - Stapler.getCurrentRequest().getSession().setAttribute(FEDERATED_IDENTITY_SESSION_KEY, identity); + Stapler.getCurrentRequest2().getSession().setAttribute(FEDERATED_IDENTITY_SESSION_KEY, identity); return new ForwardToView(this, "signupWithFederatedIdentity.jelly") { @Override - public void generateResponse(StaplerRequest req, StaplerResponse rsp, Object node) throws IOException, ServletException { + public void generateResponse(StaplerRequest2 req, StaplerResponse2 rsp, Object node) throws IOException, ServletException { SignupInfo si = new SignupInfo(identity); si.errorMessage = Messages.HudsonPrivateSecurityRealm_WouldYouLikeToSignUp(identity.getPronoun(), identity.getIdentifier()); req.setAttribute("data", si); @@ -253,7 +254,7 @@ public void generateResponse(StaplerRequest req, StaplerResponse rsp, Object nod * with {@link #commenceSignup}. */ @RequirePOST - public User doCreateAccountWithFederatedIdentity(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public User doCreateAccountWithFederatedIdentity(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { User u = _doCreateAccount(req, rsp, "signupWithFederatedIdentity.jelly"); if (u != null) ((FederatedIdentity) req.getSession().getAttribute(FEDERATED_IDENTITY_SESSION_KEY)).addTo(u); @@ -266,11 +267,11 @@ public User doCreateAccountWithFederatedIdentity(StaplerRequest req, StaplerResp * Creates an user account. Used for self-registration. */ @RequirePOST - public User doCreateAccount(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public User doCreateAccount(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { return _doCreateAccount(req, rsp, "signup.jelly"); } - private User _doCreateAccount(StaplerRequest req, StaplerResponse rsp, String formView) throws ServletException, IOException { + private User _doCreateAccount(StaplerRequest2 req, StaplerResponse2 rsp, String formView) throws ServletException, IOException { if (!allowsSignup()) throw HttpResponses.errorWithoutStack(SC_UNAUTHORIZED, "User sign up is prohibited"); @@ -287,7 +288,7 @@ private User _doCreateAccount(StaplerRequest req, StaplerResponse rsp, String fo /** * Lets the current user silently login as the given user and report back accordingly. */ - private void loginAndTakeBack(StaplerRequest req, StaplerResponse rsp, User u) throws ServletException, IOException { + private void loginAndTakeBack(StaplerRequest2 req, StaplerResponse2 rsp, User u) throws ServletException, IOException { HttpSession session = req.getSession(false); if (session != null) { // avoid session fixation @@ -309,11 +310,11 @@ private void loginAndTakeBack(StaplerRequest req, StaplerResponse rsp, User u) t /** * Creates a user account. Used by admins. * - * This version behaves differently from {@link #doCreateAccount(StaplerRequest, StaplerResponse)} in that + * This version behaves differently from {@link #doCreateAccount(StaplerRequest2, StaplerResponse2)} in that * this is someone creating another user. */ @RequirePOST - public void doCreateAccountByAdmin(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doCreateAccountByAdmin(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { createAccountByAdmin(req, rsp, "addUser.jelly", "."); // send the user back to the listing page on success } @@ -321,7 +322,7 @@ public void doCreateAccountByAdmin(StaplerRequest req, StaplerResponse rsp) thro * Creates a user account. Requires {@link Jenkins#ADMINISTER} */ @Restricted(NoExternalUse.class) - public User createAccountByAdmin(StaplerRequest req, StaplerResponse rsp, String addUserView, String successView) throws IOException, ServletException { + public User createAccountByAdmin(StaplerRequest2 req, StaplerResponse2 rsp, String addUserView, String successView) throws IOException, ServletException { checkPermission(Jenkins.ADMINISTER); User u = createAccount(req, rsp, false, addUserView); if (u != null && successView != null) { @@ -340,7 +341,7 @@ public User createAccountByAdmin(StaplerRequest req, StaplerResponse rsp, String * @throws AccountCreationFailedException if account creation failed due to invalid form input */ @Restricted(NoExternalUse.class) - public User createAccountFromSetupWizard(StaplerRequest req) throws IOException, AccountCreationFailedException { + public User createAccountFromSetupWizard(StaplerRequest2 req) throws IOException, AccountCreationFailedException { checkPermission(Jenkins.ADMINISTER); SignupInfo si = validateAccountCreationForm(req, false); if (!si.errors.isEmpty()) { @@ -366,7 +367,7 @@ private String getErrorMessages(SignupInfo si) { * This can be run by anyone, but only to create the very first user account. */ @RequirePOST - public void doCreateFirstAccount(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void doCreateFirstAccount(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { if (hasSomeUser()) { rsp.sendError(SC_UNAUTHORIZED, "First user was already created"); return; @@ -400,7 +401,7 @@ private void tryToMakeAdmin(User u) { * null if failed. The browser is already redirected to retry by the time this method returns. * a valid {@link User} object if the user creation was successful. */ - private User createAccount(StaplerRequest req, StaplerResponse rsp, boolean validateCaptcha, String formView) throws ServletException, IOException { + private User createAccount(StaplerRequest2 req, StaplerResponse2 rsp, boolean validateCaptcha, String formView) throws ServletException, IOException { SignupInfo si = validateAccountCreationForm(req, validateCaptcha); if (!si.errors.isEmpty()) { @@ -416,11 +417,11 @@ private User createAccount(StaplerRequest req, StaplerResponse rsp, boolean vali * @param req the request to process * @param validateCaptcha whether to attempt to validate a captcha in the request * - * @return a {@link SignupInfo#SignupInfo(StaplerRequest) SignupInfo from given request}, with {@link + * @return a {@link SignupInfo#SignupInfo(StaplerRequest2) SignupInfo from given request}, with {@link * SignupInfo#errors} containing errors (keyed by field name), if any of the supported fields are invalid */ @SuppressFBWarnings(value = "UWF_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD", justification = "written to by Stapler") - private SignupInfo validateAccountCreationForm(StaplerRequest req, boolean validateCaptcha) { + private SignupInfo validateAccountCreationForm(StaplerRequest2 req, boolean validateCaptcha) { // form field validation // this pattern needs to be generalized and moved to stapler SignupInfo si = new SignupInfo(req); @@ -632,7 +633,7 @@ public static final class SignupInfo { public SignupInfo() { } - public SignupInfo(StaplerRequest req) { + public SignupInfo(StaplerRequest2 req) { req.bindParameters(this); } @@ -707,7 +708,7 @@ public boolean isPasswordCorrect(String candidate) { public String getProtectedPassword() { // put session Id in it to prevent a replay attack. - return Protector.protect(Stapler.getCurrentRequest().getSession().getId() + ':' + getPassword()); + return Protector.protect(Stapler.getCurrentRequest2().getSession().getId() + ':' + getPassword()); } public String getUsername() { @@ -825,7 +826,7 @@ public String getDisplayName() { } @Override - public Details newInstance(StaplerRequest req, JSONObject formData) throws FormException { + public Details newInstance(StaplerRequest2 req, JSONObject formData) throws FormException { if (req == null) { // Should never happen, see newInstance() Javadoc throw new FormException("Stapler request is missing in the call", "staplerRequest"); @@ -858,7 +859,7 @@ public Details newInstance(StaplerRequest req, JSONObject formData) throws FormE } if (data != null) { - String prefix = Stapler.getCurrentRequest().getSession().getId() + ':'; + String prefix = Stapler.getCurrentRequest2().getSession().getId() + ':'; if (data.startsWith(prefix)) { return Details.fromHashedPassword(data.substring(prefix.length())); } @@ -1153,7 +1154,7 @@ public FormValidation doCheckAllowsSignup(@QueryParameter boolean value) { } } - private static final Filter CREATE_FIRST_USER_FILTER = new Filter() { + private static final Filter CREATE_FIRST_USER_FILTER = new CompatibleFilter() { @Override public void init(FilterConfig config) throws ServletException { } diff --git a/core/src/main/java/hudson/security/LegacySecurityRealm.java b/core/src/main/java/hudson/security/LegacySecurityRealm.java index 1e869475caf2..94c895782f74 100644 --- a/core/src/main/java/hudson/security/LegacySecurityRealm.java +++ b/core/src/main/java/hudson/security/LegacySecurityRealm.java @@ -28,10 +28,10 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import hudson.Extension; import hudson.model.Descriptor; +import jakarta.servlet.Filter; +import jakarta.servlet.FilterConfig; import java.util.ArrayList; import java.util.List; -import javax.servlet.Filter; -import javax.servlet.FilterConfig; import org.jenkinsci.Symbol; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; diff --git a/core/src/main/java/hudson/security/NoopFilter.java b/core/src/main/java/hudson/security/NoopFilter.java index 3000bb2e81c0..2b2db184fc5f 100644 --- a/core/src/main/java/hudson/security/NoopFilter.java +++ b/core/src/main/java/hudson/security/NoopFilter.java @@ -24,20 +24,21 @@ package hudson.security; +import jakarta.servlet.Filter; +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; import java.io.IOException; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; +import org.kohsuke.stapler.CompatibleFilter; /** * {@link Filter} that does nothing. * * @author Kohsuke Kawaguchi */ -public class NoopFilter implements Filter { +public class NoopFilter implements CompatibleFilter { @Override public void init(FilterConfig filterConfig) throws ServletException { } diff --git a/core/src/main/java/hudson/security/RememberMeServicesProxy.java b/core/src/main/java/hudson/security/RememberMeServicesProxy.java index 2220e313b0cc..1020002794ed 100644 --- a/core/src/main/java/hudson/security/RememberMeServicesProxy.java +++ b/core/src/main/java/hudson/security/RememberMeServicesProxy.java @@ -24,8 +24,8 @@ package hudson.security; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import jenkins.model.Jenkins; import jenkins.security.ConfidentialStore; import org.kohsuke.accmod.Restricted; diff --git a/core/src/main/java/hudson/security/SecurityRealm.java b/core/src/main/java/hudson/security/SecurityRealm.java index b969a57eb781..d10e7994ae22 100644 --- a/core/src/main/java/hudson/security/SecurityRealm.java +++ b/core/src/main/java/hudson/security/SecurityRealm.java @@ -36,6 +36,14 @@ import hudson.security.captcha.CaptchaSupport; import hudson.util.DescriptorList; import hudson.util.PluginServletFilter; +import io.jenkins.servlet.FilterConfigWrapper; +import io.jenkins.servlet.FilterWrapper; +import io.jenkins.servlet.ServletExceptionWrapper; +import jakarta.servlet.Filter; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.Cookie; +import jakarta.servlet.http.HttpSession; import java.io.IOException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; @@ -44,16 +52,12 @@ import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; -import javax.servlet.Filter; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpSession; import jenkins.model.IdStrategy; import jenkins.model.Jenkins; import jenkins.security.AcegiSecurityExceptionFilter; import jenkins.security.AuthenticationSuccessHandler; import jenkins.security.BasicHeaderProcessor; +import jenkins.security.stapler.StaplerNotDispatchable; import jenkins.util.SystemProperties; import net.sf.json.JSONObject; import org.jenkinsci.Symbol; @@ -62,7 +66,9 @@ import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.Stapler; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerResponse2; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.core.Authentication; import org.springframework.security.core.AuthenticationException; @@ -264,7 +270,7 @@ public boolean canLogOut() { * of Hudson, but you can return arbitrary URL. * * @param req - * {@link StaplerRequest} that represents the current request. Primarily so that + * {@link StaplerRequest2} that represents the current request. Primarily so that * you can get the context path. By the time this method is called, the session * is already invalidated. Never null. * @param auth @@ -272,14 +278,31 @@ public boolean canLogOut() { * This parameter allows you to redirect people to different pages depending on who they are. * @return * never null. + * @since TODO + * @see #doLogout(StaplerRequest2, StaplerResponse2) + */ + protected String getPostLogOutUrl2(StaplerRequest2 req, Authentication auth) { + if (Util.isOverridden(SecurityRealm.class, getClass(), "getPostLogOutUrl2", StaplerRequest.class, Authentication.class)) { + return getPostLogOutUrl2(StaplerRequest.fromStaplerRequest2(req), auth); + } else { + return getPostLogOutUrl2Impl(req, auth); + } + } + + /** + * @deprecated use {@link #getPostLogOutUrl2(StaplerRequest2, Authentication)} * @since 2.266 - * @see #doLogout(StaplerRequest, StaplerResponse) */ + @Deprecated protected String getPostLogOutUrl2(StaplerRequest req, Authentication auth) { + return getPostLogOutUrl2Impl(StaplerRequest.toStaplerRequest2(req), auth); + } + + private String getPostLogOutUrl2Impl(StaplerRequest2 req, Authentication auth) { if (Util.isOverridden(SecurityRealm.class, getClass(), "getPostLogOutUrl", StaplerRequest.class, org.acegisecurity.Authentication.class) && !insideGetPostLogOutUrl.get()) { insideGetPostLogOutUrl.set(true); try { - return getPostLogOutUrl(req, org.acegisecurity.Authentication.fromSpring(auth)); + return getPostLogOutUrl(StaplerRequest.fromStaplerRequest2(req), org.acegisecurity.Authentication.fromSpring(auth)); } finally { insideGetPostLogOutUrl.set(false); } @@ -295,7 +318,7 @@ protected String getPostLogOutUrl2(StaplerRequest req, Authentication auth) { */ @Deprecated protected String getPostLogOutUrl(StaplerRequest req, org.acegisecurity.Authentication auth) { - return getPostLogOutUrl2(req, auth.toSpring()); + return getPostLogOutUrl2(StaplerRequest.toStaplerRequest2(req), auth.toSpring()); } public CaptchaSupport getCaptchaSupport() { @@ -315,11 +338,37 @@ public List> getCaptchaSupportDescriptors() { * *

    * The default implementation erases the session and do a few other clean up, then - * redirect the user to the URL specified by {@link #getPostLogOutUrl2(StaplerRequest, Authentication)}. + * redirect the user to the URL specified by {@link #getPostLogOutUrl2(StaplerRequest2, Authentication)}. * + * @since TODO + */ + public void doLogout(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { + if (Util.isOverridden(SecurityRealm.class, getClass(), "doLogout", StaplerRequest.class, StaplerResponse.class)) { + try { + doLogout(StaplerRequest.fromStaplerRequest2(req), StaplerResponse.fromStaplerResponse2(rsp)); + } catch (javax.servlet.ServletException e) { + throw ServletExceptionWrapper.toJakartaServletException(e); + } + } else { + doLogoutImpl(req, rsp); + } + } + + /** + * @deprecated use {@link #doLogout(StaplerRequest2, StaplerResponse2)} * @since 1.314 */ - public void doLogout(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + @Deprecated + @StaplerNotDispatchable + public void doLogout(StaplerRequest req, StaplerResponse rsp) throws IOException, javax.servlet.ServletException { + try { + doLogoutImpl(StaplerRequest.toStaplerRequest2(req), StaplerResponse.toStaplerResponse2(rsp)); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } + } + + void doLogoutImpl(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { HttpSession session = req.getSession(false); if (session != null) session.invalidate(); @@ -333,7 +382,7 @@ public void doLogout(StaplerRequest req, StaplerResponse rsp) throws IOException rsp.sendRedirect2(getPostLogOutUrl2(req, auth)); } - private void resetRememberMeCookie(StaplerRequest req, StaplerResponse rsp, String contextPath) { + private void resetRememberMeCookie(StaplerRequest2 req, StaplerResponse2 rsp, String contextPath) { Cookie cookie = new Cookie(AbstractRememberMeServices.SPRING_SECURITY_REMEMBER_ME_COOKIE_KEY, ""); cookie.setMaxAge(0); cookie.setSecure(req.isSecure()); @@ -342,7 +391,7 @@ private void resetRememberMeCookie(StaplerRequest req, StaplerResponse rsp, Stri rsp.addCookie(cookie); } - private void clearStaleSessionCookies(StaplerRequest req, StaplerResponse rsp, String contextPath) { + private void clearStaleSessionCookies(StaplerRequest2 req, StaplerResponse2 rsp, String contextPath) { /* While "executableWar.jetty.sessionIdCookieName" and * "executableWar.jetty.disableCustomSessionIdCookieName" * @@ -516,7 +565,7 @@ public HttpResponse commenceSignup(FederatedIdentity identity) { /** * Generates a captcha image. */ - public final void doCaptcha(StaplerRequest req, StaplerResponse rsp) throws IOException { + public final void doCaptcha(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException { if (captchaSupport != null) { String id = req.getSession().getId(); rsp.setContentType("image/png"); @@ -533,7 +582,7 @@ public final void doCaptcha(StaplerRequest req, StaplerResponse rsp) throws IOEx */ protected final boolean validateCaptcha(String text) { if (captchaSupport != null) { - String id = Stapler.getCurrentRequest().getSession().getId(); + String id = Stapler.getCurrentRequest2().getSession().getId(); return captchaSupport.validateCaptcha(id, text); } @@ -570,10 +619,29 @@ public synchronized SecurityComponents getSecurityComponents() { * For other plugins that want to contribute {@link Filter}, see * {@link PluginServletFilter}. * - * @since 1.271 + * @since TODO */ public Filter createFilter(FilterConfig filterConfig) { - LOGGER.entering(SecurityRealm.class.getName(), "createFilter"); + if (Util.isOverridden(SecurityRealm.class, getClass(), "createFilter", javax.servlet.FilterConfig.class)) { + return FilterWrapper.toJakartaFilter(createFilter( + filterConfig != null ? FilterConfigWrapper.fromJakartaFilterConfig(filterConfig) : null)); + } else { + return createFilterImpl(filterConfig); + } + } + + /** + * @deprecated use {@link #createFilter(FilterConfig)} + * @since 1.271 + */ + @Deprecated + public javax.servlet.Filter createFilter(javax.servlet.FilterConfig filterConfig) { + return FilterWrapper.fromJakartaFilter(createFilterImpl( + filterConfig != null ? FilterConfigWrapper.toJakartaFilterConfig(filterConfig) : null)); + } + + private Filter createFilterImpl(FilterConfig filterConfig) { + LOGGER.entering(SecurityRealm.class.getName(), "createFilterImpl"); SecurityComponents sc = getSecurityComponents(); List filters = new ArrayList<>(); @@ -639,7 +707,7 @@ protected final List commonFilters() { @Restricted(DoNotUse.class) public static String getFrom() { String from = null; - final StaplerRequest request = Stapler.getCurrentRequest(); + final StaplerRequest2 request = Stapler.getCurrentRequest2(); // Try to obtain a return point from the query parameter if (request != null) { @@ -734,7 +802,7 @@ public String getDisplayName() { } @Override - public SecurityRealm newInstance(StaplerRequest req, JSONObject formData) throws Descriptor.FormException { + public SecurityRealm newInstance(StaplerRequest2 req, JSONObject formData) throws Descriptor.FormException { return NO_AUTHENTICATION; } } diff --git a/core/src/main/java/hudson/security/TokenBasedRememberMeServices2.java b/core/src/main/java/hudson/security/TokenBasedRememberMeServices2.java index 0e8e19d90a06..9b6974a3f2e4 100644 --- a/core/src/main/java/hudson/security/TokenBasedRememberMeServices2.java +++ b/core/src/main/java/hudson/security/TokenBasedRememberMeServices2.java @@ -27,6 +27,8 @@ import com.google.common.annotations.VisibleForTesting; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import hudson.model.User; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.security.MessageDigest; import java.util.Arrays; import java.util.Date; @@ -34,8 +36,6 @@ import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import jenkins.model.Jenkins; import jenkins.security.HMACConfidentialKey; import jenkins.security.ImpersonatingUserDetailsService2; diff --git a/core/src/main/java/hudson/security/UnwrapSecurityExceptionFilter.java b/core/src/main/java/hudson/security/UnwrapSecurityExceptionFilter.java index 2abfea11eb71..683725b2fe0d 100644 --- a/core/src/main/java/hudson/security/UnwrapSecurityExceptionFilter.java +++ b/core/src/main/java/hudson/security/UnwrapSecurityExceptionFilter.java @@ -24,14 +24,14 @@ package hudson.security; +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; import java.io.IOException; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; import org.apache.commons.jelly.JellyTagException; +import org.kohsuke.stapler.CompatibleFilter; import org.springframework.security.access.AccessDeniedException; import org.springframework.security.core.AuthenticationException; import org.springframework.security.web.access.ExceptionTranslationFilter; @@ -43,7 +43,7 @@ * * @author Kohsuke Kawaguchi */ -public class UnwrapSecurityExceptionFilter implements Filter { +public class UnwrapSecurityExceptionFilter implements CompatibleFilter { @Override public void init(FilterConfig filterConfig) throws ServletException { } diff --git a/core/src/main/java/hudson/security/csrf/CrumbExclusion.java b/core/src/main/java/hudson/security/csrf/CrumbExclusion.java index 4f4135bd9a88..e7d8d67a219f 100644 --- a/core/src/main/java/hudson/security/csrf/CrumbExclusion.java +++ b/core/src/main/java/hudson/security/csrf/CrumbExclusion.java @@ -8,11 +8,16 @@ import hudson.ExtensionList; import hudson.ExtensionPoint; +import hudson.Util; +import io.jenkins.servlet.FilterChainWrapper; +import io.jenkins.servlet.ServletExceptionWrapper; +import io.jenkins.servlet.http.HttpServletRequestWrapper; +import io.jenkins.servlet.http.HttpServletResponseWrapper; +import jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; /** * Allows plugins to define exceptions to the CSRF protection filter. @@ -32,7 +37,57 @@ public abstract class CrumbExclusion implements ExtensionPoint { * true to indicate that the callee had processed this request * (for example by reporting an error, or by executing the rest of the chain.) */ - public abstract boolean process(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException; + public /* abstract */ boolean process(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException { + if (Util.isOverridden( + CrumbExclusion.class, + getClass(), + "process", + javax.servlet.http.HttpServletRequest.class, + javax.servlet.http.HttpServletResponse.class, + javax.servlet.FilterChain.class)) { + try { + return process( + HttpServletRequestWrapper.fromJakartaHttpServletRequest(request), + HttpServletResponseWrapper.fromJakartaHttpServletResponse(response), + FilterChainWrapper.fromJakartaFilterChain(chain)); + } catch (javax.servlet.ServletException e) { + throw ServletExceptionWrapper.toJakartaServletException(e); + } + } else { + throw new AbstractMethodError("The class " + getClass().getName() + " must override at least one of the " + + CrumbExclusion.class.getSimpleName() + ".process methods"); + } + } + + /** + * @deprecated use {@link #process(HttpServletRequest, HttpServletResponse, FilterChain)} + */ + @Deprecated + public boolean process( + javax.servlet.http.HttpServletRequest request, + javax.servlet.http.HttpServletResponse response, + javax.servlet.FilterChain chain) + throws IOException, javax.servlet.ServletException { + if (Util.isOverridden( + CrumbExclusion.class, + getClass(), + "process", + HttpServletRequest.class, + HttpServletResponse.class, + FilterChain.class)) { + try { + return process( + HttpServletRequestWrapper.toJakartaHttpServletRequest(request), + HttpServletResponseWrapper.toJakartaHttpServletResponse(response), + FilterChainWrapper.toJakartaFilterChain(chain)); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } + } else { + throw new AbstractMethodError("The class " + getClass().getName() + " must override at least one of the " + + CrumbExclusion.class.getSimpleName() + ".process methods"); + } + } public static ExtensionList all() { return ExtensionList.lookup(CrumbExclusion.class); diff --git a/core/src/main/java/hudson/security/csrf/CrumbFilter.java b/core/src/main/java/hudson/security/csrf/CrumbFilter.java index 8b4b558938e7..6835a4365a3c 100644 --- a/core/src/main/java/hudson/security/csrf/CrumbFilter.java +++ b/core/src/main/java/hudson/security/csrf/CrumbFilter.java @@ -7,6 +7,14 @@ package hudson.security.csrf; import hudson.util.MultipartFormDataParser; +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequestWrapper; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -14,20 +22,12 @@ import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletRequestWrapper; -import javax.servlet.http.HttpServletResponse; import jenkins.model.Jenkins; import jenkins.util.SystemProperties; import org.kohsuke.MetaInfServices; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; +import org.kohsuke.stapler.CompatibleFilter; import org.kohsuke.stapler.ForwardToView; import org.kohsuke.stapler.interceptor.RequirePOST; import org.springframework.security.authentication.AnonymousAuthenticationToken; @@ -38,7 +38,7 @@ * * @author dty */ -public class CrumbFilter implements Filter { +public class CrumbFilter implements CompatibleFilter { /** * Because servlet containers generally don't specify the ordering of the initialization * (and different implementations indeed do this differently --- See JENKINS-3878), diff --git a/core/src/main/java/hudson/security/csrf/CrumbIssuer.java b/core/src/main/java/hudson/security/csrf/CrumbIssuer.java index cd0c51b03fb0..491ec735b591 100644 --- a/core/src/main/java/hudson/security/csrf/CrumbIssuer.java +++ b/core/src/main/java/hudson/security/csrf/CrumbIssuer.java @@ -6,26 +6,31 @@ package hudson.security.csrf; +import edu.umd.cs.findbugs.annotations.NonNull; import hudson.DescriptorExtensionList; import hudson.ExtensionPoint; +import hudson.Util; import hudson.init.Initializer; import hudson.model.Api; import hudson.model.Describable; import hudson.model.Descriptor; import hudson.util.MultipartFormDataParser; +import io.jenkins.servlet.ServletRequestWrapper; +import io.jenkins.servlet.http.HttpServletRequestWrapper; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.http.HttpServletRequest; import java.io.IOException; import java.io.OutputStream; import java.nio.charset.StandardCharsets; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; import jenkins.model.Jenkins; import jenkins.security.stapler.StaplerAccessibleType; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.Stapler; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.WebApp; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; @@ -64,7 +69,7 @@ public String getCrumbRequestField() { */ @Exported public String getCrumb() { - return getCrumb(Stapler.getCurrentRequest()); + return getCrumb(Stapler.getCurrentRequest2()); } /** @@ -89,6 +94,14 @@ public String getCrumb(ServletRequest request) { return crumb; } + /** + * @deprecated use {@link #getCrumb(ServletRequest)} + */ + @Deprecated + public String getCrumb(javax.servlet.ServletRequest request) { + return getCrumb(request != null ? wrap(request) : null); + } + /** * Create a crumb value based on user specific information in the request. * The crumb should be generated by building a cryptographic hash of: @@ -98,7 +111,30 @@ public String getCrumb(ServletRequest request) { *

  • an implementation specific guarded secret. * */ - protected abstract String issueCrumb(ServletRequest request, String salt); + protected /* abstract */ String issueCrumb(ServletRequest request, String salt) { + return Util.ifOverridden( + () -> issueCrumb( + request != null ? wrap(request) : null, salt), + CrumbIssuer.class, + getClass(), + "issueCrumb", + javax.servlet.ServletRequest.class, + String.class); + } + + /** + * @deprecated use {@link #issueCrumb(ServletRequest, String)} + */ + @Deprecated + protected String issueCrumb(javax.servlet.ServletRequest request, String salt) { + return Util.ifOverridden( + () -> issueCrumb(request != null ? wrap(request) : null, salt), + CrumbIssuer.class, + getClass(), + "issueCrumb", + ServletRequest.class, + String.class); + } /** * Get a crumb from a request parameter and validate it against other data @@ -126,12 +162,63 @@ public boolean validateCrumb(ServletRequest request, MultipartFormDataParser par return validateCrumb(request, crumbSalt, parser.get(crumbField)); } + /** + * @deprecated use {@link #validateCrumb(ServletRequest, MultipartFormDataParser)} + */ + @Deprecated + public boolean validateCrumb(javax.servlet.ServletRequest request, MultipartFormDataParser parser) { + return validateCrumb(request != null ? wrap(request) : null, parser); + } + + private static ServletRequest wrap(@NonNull javax.servlet.ServletRequest request) { + if (request instanceof javax.servlet.http.HttpServletRequest httpRequest) { + return HttpServletRequestWrapper.toJakartaHttpServletRequest(httpRequest); + } else { + return ServletRequestWrapper.toJakartaServletRequest(request); + } + } + /** * Validate a previously created crumb against information in the current request. * * @param crumb The previously generated crumb to validate against information in the current request */ - public abstract boolean validateCrumb(ServletRequest request, String salt, String crumb); + public /* abstract */ boolean validateCrumb(ServletRequest request, String salt, String crumb) { + return Util.ifOverridden( + () -> validateCrumb( + request != null ? wrap(request) : null, + salt, + crumb), + CrumbIssuer.class, + getClass(), + "validateCrumb", + javax.servlet.ServletRequest.class, + String.class, + String.class); + } + + private static javax.servlet.ServletRequest wrap(@NonNull ServletRequest request) { + if (request instanceof HttpServletRequest httpRequest) { + return HttpServletRequestWrapper.fromJakartaHttpServletRequest(httpRequest); + } else { + return ServletRequestWrapper.fromJakartaServletRequest(request); + } + } + + /** + * @deprecated use {@link #validateCrumb(ServletRequest, String, String)} + */ + @Deprecated + public boolean validateCrumb(javax.servlet.ServletRequest request, String salt, String crumb) { + return Util.ifOverridden( + () -> validateCrumb(request != null ? wrap(request) : null, salt, crumb), + CrumbIssuer.class, + getClass(), + "validateCrumb", + ServletRequest.class, + String.class, + String.class); + } /** * Access global configuration for the crumb issuer. @@ -157,15 +244,15 @@ public Api getApi() { */ @Initializer public static void initStaplerCrumbIssuer() { - WebApp.get(Jenkins.get().servletContext).setCrumbIssuer(new org.kohsuke.stapler.CrumbIssuer() { + WebApp.get(Jenkins.get().getServletContext()).setCrumbIssuer(new org.kohsuke.stapler.CrumbIssuer() { @Override - public String issueCrumb(StaplerRequest request) { + public String issueCrumb(StaplerRequest2 request) { CrumbIssuer ci = Jenkins.get().getCrumbIssuer(); return ci != null ? ci.getCrumb(request) : DEFAULT.issueCrumb(request); } @Override - public void validateCrumb(StaplerRequest request, String submittedCrumb) { + public void validateCrumb(StaplerRequest2 request, String submittedCrumb) { CrumbIssuer ci = Jenkins.get().getCrumbIssuer(); if (ci == null) { DEFAULT.validateCrumb(request, submittedCrumb); @@ -184,7 +271,7 @@ public static class RestrictedApi extends Api { super(instance); } - @Override public void doXml(StaplerRequest req, StaplerResponse rsp, @QueryParameter String xpath, @QueryParameter String wrapper, @QueryParameter String tree, @QueryParameter int depth) throws IOException, ServletException { + @Override public void doXml(StaplerRequest2 req, StaplerResponse2 rsp, @QueryParameter String xpath, @QueryParameter String wrapper, @QueryParameter String tree, @QueryParameter int depth) throws IOException, ServletException { setHeaders(rsp); String text; CrumbIssuer ci = (CrumbIssuer) bean; diff --git a/core/src/main/java/hudson/security/csrf/DefaultCrumbIssuer.java b/core/src/main/java/hudson/security/csrf/DefaultCrumbIssuer.java index 89c7da39e7b4..7a3bc0c9b1d2 100644 --- a/core/src/main/java/hudson/security/csrf/DefaultCrumbIssuer.java +++ b/core/src/main/java/hudson/security/csrf/DefaultCrumbIssuer.java @@ -12,13 +12,13 @@ import hudson.Util; import hudson.model.ModelObject; import hudson.model.PersistentDescriptor; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.http.HttpServletRequest; import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.logging.Level; import java.util.logging.Logger; -import javax.servlet.ServletRequest; -import javax.servlet.http.HttpServletRequest; import jenkins.model.Jenkins; import jenkins.security.HexStringConfidentialKey; import jenkins.util.SystemProperties; @@ -27,7 +27,7 @@ import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.DataBoundConstructor; -import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.springframework.security.core.Authentication; /** @@ -69,6 +69,7 @@ private synchronized void initializeMessageDigest() { } @Override + @SuppressFBWarnings(value = "NM_WRONG_PACKAGE", justification = "false positive") protected synchronized String issueCrumb(ServletRequest request, String salt) { if (request instanceof HttpServletRequest) { if (md != null) { @@ -135,7 +136,7 @@ public String getDisplayName() { } @Override - public DefaultCrumbIssuer newInstance(StaplerRequest req, JSONObject formData) throws FormException { + public DefaultCrumbIssuer newInstance(StaplerRequest2 req, JSONObject formData) throws FormException { if (req == null) { // This state is prohibited according to the Javadoc of the super method. throw new FormException("DefaultCrumbIssuer new instance method is called for null Stapler request. " diff --git a/core/src/main/java/hudson/security/csrf/GlobalCrumbIssuerConfiguration.java b/core/src/main/java/hudson/security/csrf/GlobalCrumbIssuerConfiguration.java index 6faa5dfc24e0..61a861fefbe3 100644 --- a/core/src/main/java/hudson/security/csrf/GlobalCrumbIssuerConfiguration.java +++ b/core/src/main/java/hudson/security/csrf/GlobalCrumbIssuerConfiguration.java @@ -35,7 +35,7 @@ import org.jenkinsci.Symbol; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; -import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; /** * Show the crumb configuration to the system config page. @@ -50,7 +50,7 @@ public class GlobalCrumbIssuerConfiguration extends GlobalConfiguration { } @Override - public boolean configure(StaplerRequest req, JSONObject json) throws FormException { + public boolean configure(StaplerRequest2 req, JSONObject json) throws FormException { // for compatibility reasons, the actual value is stored in Jenkins Jenkins j = Jenkins.get(); diff --git a/core/src/main/java/hudson/slaves/Cloud.java b/core/src/main/java/hudson/slaves/Cloud.java index 6552685a05d0..3bff60c0d0ad 100644 --- a/core/src/main/java/hudson/slaves/Cloud.java +++ b/core/src/main/java/hudson/slaves/Cloud.java @@ -47,11 +47,11 @@ import hudson.slaves.NodeProvisioner.PlannedNode; import hudson.util.DescriptorList; import hudson.util.FormApply; +import jakarta.servlet.ServletException; import java.io.IOException; import java.util.Collection; import java.util.Objects; import java.util.concurrent.Future; -import javax.servlet.ServletException; import jenkins.model.Jenkins; import net.sf.json.JSONObject; import org.kohsuke.accmod.Restricted; @@ -60,7 +60,8 @@ import org.kohsuke.stapler.HttpRedirect; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.interceptor.RequirePOST; import org.kohsuke.stapler.verb.POST; @@ -319,7 +320,7 @@ public HttpResponse doDoDelete() throws IOException { * Accepts the update to the node configuration. */ @POST - public HttpResponse doConfigSubmit(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException, Descriptor.FormException { + public HttpResponse doConfigSubmit(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException, Descriptor.FormException { checkPermission(Jenkins.ADMINISTER); Jenkins j = Jenkins.get(); @@ -340,7 +341,26 @@ public HttpResponse doConfigSubmit(StaplerRequest req, StaplerResponse rsp) thro } + /** + * @since TODO + */ + public Cloud reconfigure(@NonNull final StaplerRequest2 req, JSONObject form) throws Descriptor.FormException { + if (Util.isOverridden(Cloud.class, getClass(), "reconfigure", StaplerRequest.class, JSONObject.class)) { + return reconfigure(StaplerRequest.fromStaplerRequest2(req), form); + } else { + return reconfigureImpl(req, form); + } + } + + /** + * @deprecated use {@link #reconfigure(StaplerRequest2, JSONObject)} + */ + @Deprecated public Cloud reconfigure(@NonNull final StaplerRequest req, JSONObject form) throws Descriptor.FormException { + return reconfigureImpl(StaplerRequest.toStaplerRequest2(req), form); + } + + private Cloud reconfigureImpl(@NonNull final StaplerRequest2 req, JSONObject form) throws Descriptor.FormException { if (form == null) return null; return getDescriptor().newInstance(req, form); } diff --git a/core/src/main/java/hudson/slaves/EnvironmentVariablesNodeProperty.java b/core/src/main/java/hudson/slaves/EnvironmentVariablesNodeProperty.java index be50bc982062..dd3ec84b131d 100644 --- a/core/src/main/java/hudson/slaves/EnvironmentVariablesNodeProperty.java +++ b/core/src/main/java/hudson/slaves/EnvironmentVariablesNodeProperty.java @@ -98,7 +98,7 @@ public String getDisplayName() { public String getHelpPage() { // yes, I know this is a hack. - ComputerSet object = Stapler.getCurrentRequest().findAncestorObject(ComputerSet.class); + ComputerSet object = Stapler.getCurrentRequest2().findAncestorObject(ComputerSet.class); if (object != null) { // we're on a node configuration page, show show that help page return "/help/system-config/nodeEnvironmentVariables.html"; diff --git a/core/src/main/java/hudson/slaves/NodeDescriptor.java b/core/src/main/java/hudson/slaves/NodeDescriptor.java index 8db1eb48139f..848cabbdf747 100644 --- a/core/src/main/java/hudson/slaves/NodeDescriptor.java +++ b/core/src/main/java/hudson/slaves/NodeDescriptor.java @@ -34,14 +34,14 @@ import hudson.model.Slave; import hudson.util.DescriptorList; import hudson.util.FormValidation; +import jakarta.servlet.ServletException; import java.io.IOException; import java.util.ArrayList; import java.util.List; -import javax.servlet.ServletException; import jenkins.model.Jenkins; import org.kohsuke.stapler.QueryParameter; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; /** * {@link Descriptor} for {@link Slave}. @@ -83,7 +83,7 @@ public final String newInstanceDetailPage() { * @param name * Name of the new node. */ - public void handleNewNodePage(ComputerSet computerSet, String name, StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + public void handleNewNodePage(ComputerSet computerSet, String name, StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { computerSet.checkName(name); req.setAttribute("descriptor", this); req.getView(computerSet, "_new.jelly").forward(req, rsp); diff --git a/core/src/main/java/hudson/slaves/NodeProperty.java b/core/src/main/java/hudson/slaves/NodeProperty.java index 8605edcf4515..bcb2a2422025 100644 --- a/core/src/main/java/hudson/slaves/NodeProperty.java +++ b/core/src/main/java/hudson/slaves/NodeProperty.java @@ -30,6 +30,7 @@ import hudson.ExtensionPoint; import hudson.FilePath; import hudson.Launcher; +import hudson.Util; import hudson.model.AbstractBuild; import hudson.model.BuildListener; import hudson.model.Descriptor.FormException; @@ -48,6 +49,7 @@ import jenkins.model.Jenkins; import net.sf.json.JSONObject; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; /** * Extensible property of {@link Node}. @@ -171,8 +173,25 @@ public void buildEnvVars(@NonNull EnvVars env, @NonNull TaskListener listener) t // default is no-op } + @Override + public NodeProperty reconfigure(StaplerRequest2 req, JSONObject form) throws FormException { + if (Util.isOverridden(NodeProperty.class, getClass(), "reconfigure", StaplerRequest.class, JSONObject.class)) { + return reconfigure(StaplerRequest.fromStaplerRequest2(req), form); + } else { + return reconfigureImpl(req, form); + } + } + + /** + * @deprecated use {@link #reconfigure(StaplerRequest2, JSONObject)} + */ + @Deprecated @Override public NodeProperty reconfigure(StaplerRequest req, JSONObject form) throws FormException { + return reconfigureImpl(StaplerRequest.toStaplerRequest2(req), form); + } + + private NodeProperty reconfigureImpl(StaplerRequest2 req, JSONObject form) throws FormException { return form == null ? null : getDescriptor().newInstance(req, form); } diff --git a/core/src/main/java/hudson/slaves/SlaveComputer.java b/core/src/main/java/hudson/slaves/SlaveComputer.java index dbb579b9b3ae..4165f53a7245 100644 --- a/core/src/main/java/hudson/slaves/SlaveComputer.java +++ b/core/src/main/java/hudson/slaves/SlaveComputer.java @@ -97,8 +97,8 @@ import org.kohsuke.stapler.HttpRedirect; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.QueryParameter; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.WebMethod; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.interceptor.RequirePOST; @@ -788,7 +788,7 @@ public List getLogRecords() throws IOException, InterruptedException */ @RequirePOST @Restricted(NoExternalUse.class) - public synchronized void doSubmitDescription(StaplerResponse rsp, @QueryParameter String description) throws IOException { + public synchronized void doSubmitDescription(StaplerResponse2 rsp, @QueryParameter String description) throws IOException { checkPermission(CONFIGURE); final Slave node = this.getNode(); @@ -828,7 +828,7 @@ public void run() { @RequirePOST @Override - public void doLaunchSlaveAgent(StaplerRequest req, StaplerResponse rsp) throws IOException { + public void doLaunchSlaveAgent(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException { checkPermission(CONNECT); if (channel != null) { @@ -871,12 +871,12 @@ public Slave.JnlpJar getJnlpJars(String fileName) { } @WebMethod(name = "slave-agent.jnlp") // backward compatibility - public HttpResponse doSlaveAgentJnlp(StaplerRequest req, StaplerResponse res) { + public HttpResponse doSlaveAgentJnlp(StaplerRequest2 req, StaplerResponse2 res) { return doJenkinsAgentJnlp(req, res); } @WebMethod(name = "jenkins-agent.jnlp") - public HttpResponse doJenkinsAgentJnlp(StaplerRequest req, StaplerResponse res) { + public HttpResponse doJenkinsAgentJnlp(StaplerRequest2 req, StaplerResponse2 res) { LOGGER.log( Level.WARNING, "Agent \"" + getName() @@ -888,12 +888,12 @@ public HttpResponse doJenkinsAgentJnlp(StaplerRequest req, StaplerResponse res) class LowPermissionResponse { @WebMethod(name = "jenkins-agent.jnlp") - public HttpResponse doJenkinsAgentJnlp(StaplerRequest req, StaplerResponse res) { + public HttpResponse doJenkinsAgentJnlp(StaplerRequest2 req, StaplerResponse2 res) { return SlaveComputer.this.doJenkinsAgentJnlp(req, res); } @WebMethod(name = "slave-agent.jnlp") // backward compatibility - public HttpResponse doSlaveAgentJnlp(StaplerRequest req, StaplerResponse res) { + public HttpResponse doSlaveAgentJnlp(StaplerRequest2 req, StaplerResponse2 res) { return SlaveComputer.this.doJenkinsAgentJnlp(req, res); } } diff --git a/core/src/main/java/hudson/tasks/ArtifactArchiver.java b/core/src/main/java/hudson/tasks/ArtifactArchiver.java index 4300cd1538ab..0ee50010e6a2 100644 --- a/core/src/main/java/hudson/tasks/ArtifactArchiver.java +++ b/core/src/main/java/hudson/tasks/ArtifactArchiver.java @@ -63,7 +63,7 @@ import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.DataBoundSetter; import org.kohsuke.stapler.QueryParameter; -import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; /** * Copies the artifacts into an archive directory. @@ -367,7 +367,7 @@ public FormValidation doCheckArtifacts(@AncestorInPath AbstractProject project, } @Override - public ArtifactArchiver newInstance(StaplerRequest req, JSONObject formData) throws FormException { + public ArtifactArchiver newInstance(StaplerRequest2 req, JSONObject formData) throws FormException { return req.bindJSON(ArtifactArchiver.class, formData); } diff --git a/core/src/main/java/hudson/tasks/BuildTrigger.java b/core/src/main/java/hudson/tasks/BuildTrigger.java index 5a58fc7e6716..af71ff83b147 100644 --- a/core/src/main/java/hudson/tasks/BuildTrigger.java +++ b/core/src/main/java/hudson/tasks/BuildTrigger.java @@ -73,7 +73,7 @@ import org.kohsuke.stapler.AncestorInPath; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.QueryParameter; -import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.springframework.security.core.Authentication; /** @@ -385,7 +385,7 @@ public String getHelpFile() { } @Override - public BuildTrigger newInstance(StaplerRequest req, JSONObject formData) throws FormException { + public BuildTrigger newInstance(StaplerRequest2 req, JSONObject formData) throws FormException { String childProjectsString = formData.getString("childProjects").trim(); if (childProjectsString.endsWith(",")) { childProjectsString = childProjectsString.substring(0, childProjectsString.length() - 1).trim(); diff --git a/core/src/main/java/hudson/tasks/Fingerprinter.java b/core/src/main/java/hudson/tasks/Fingerprinter.java index 4d843b27b003..2d41e338f212 100644 --- a/core/src/main/java/hudson/tasks/Fingerprinter.java +++ b/core/src/main/java/hudson/tasks/Fingerprinter.java @@ -76,7 +76,7 @@ import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.DataBoundSetter; import org.kohsuke.stapler.QueryParameter; -import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.springframework.security.access.AccessDeniedException; /** @@ -351,7 +351,7 @@ public FormValidation doCheckTargets(@AncestorInPath AbstractProject proje } @Override - public Publisher newInstance(StaplerRequest req, JSONObject formData) { + public Publisher newInstance(StaplerRequest2 req, JSONObject formData) { return req.bindJSON(Fingerprinter.class, formData); } diff --git a/core/src/main/java/hudson/tasks/Maven.java b/core/src/main/java/hudson/tasks/Maven.java index 3c22790d383c..2e9e27326b8e 100644 --- a/core/src/main/java/hudson/tasks/Maven.java +++ b/core/src/main/java/hudson/tasks/Maven.java @@ -80,7 +80,7 @@ import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.DataBoundConstructor; -import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; /** * Build by using Maven. @@ -479,7 +479,7 @@ public void setInstallations(MavenInstallation... installations) { } @Override - public Builder newInstance(StaplerRequest req, JSONObject formData) throws FormException { + public Builder newInstance(StaplerRequest2 req, JSONObject formData) throws FormException { if (req == null) { // This state is prohibited according to the Javadoc of the super method. throw new FormException("Maven Build Step new instance method is called for null Stapler request. " diff --git a/core/src/main/java/hudson/tasks/Shell.java b/core/src/main/java/hudson/tasks/Shell.java index e34c90b89d5c..9cd070136b55 100644 --- a/core/src/main/java/hudson/tasks/Shell.java +++ b/core/src/main/java/hudson/tasks/Shell.java @@ -53,7 +53,7 @@ import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.DataBoundSetter; import org.kohsuke.stapler.QueryParameter; -import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; /** * Executes a series of commands by using a shell. @@ -234,7 +234,7 @@ public FormValidation doCheckUnstableReturn(@QueryParameter String value) { } @Override - public boolean configure(StaplerRequest req, JSONObject data) throws FormException { + public boolean configure(StaplerRequest2 req, JSONObject data) throws FormException { req.bindJSON(this, data); return super.configure(req, data); } diff --git a/core/src/main/java/hudson/tools/ToolDescriptor.java b/core/src/main/java/hudson/tools/ToolDescriptor.java index cc9a2399196d..e20eb353af63 100644 --- a/core/src/main/java/hudson/tools/ToolDescriptor.java +++ b/core/src/main/java/hudson/tools/ToolDescriptor.java @@ -26,6 +26,7 @@ import edu.umd.cs.findbugs.annotations.NonNull; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; +import hudson.Util; import hudson.model.Descriptor; import hudson.util.DescribableList; import hudson.util.FormValidation; @@ -43,6 +44,7 @@ import org.jvnet.tiger_types.Types; import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; /** * {@link Descriptor} for {@link ToolInstallation}. @@ -144,8 +146,25 @@ public DescribableList, ToolPropertyDescriptor> getDefaultProper } @Override - @SuppressWarnings("unchecked") // cast to T[] + public boolean configure(StaplerRequest2 req, JSONObject json) throws FormException { + if (Util.isOverridden(ToolDescriptor.class, getClass(), "configure", StaplerRequest.class, JSONObject.class)) { + return configure(StaplerRequest.fromStaplerRequest2(req), json); + } else { + return configureImpl(req, json); + } + } + + /** + * @deprecated use {@link #configure(StaplerRequest2, JSONObject)} + */ + @Deprecated + @Override public boolean configure(StaplerRequest req, JSONObject json) throws FormException { + return configureImpl(StaplerRequest.toStaplerRequest2(req), json); + } + + @SuppressWarnings("unchecked") // cast to T[] + private boolean configureImpl(StaplerRequest2 req, JSONObject json) { setInstallations(req.bindJSONToList(clazz, json.get("tool")).toArray((T[]) Array.newInstance(clazz, 0))); return true; } diff --git a/core/src/main/java/hudson/triggers/SCMTrigger.java b/core/src/main/java/hudson/triggers/SCMTrigger.java index 43fdc6bb1062..f8277a345198 100644 --- a/core/src/main/java/hudson/triggers/SCMTrigger.java +++ b/core/src/main/java/hudson/triggers/SCMTrigger.java @@ -89,8 +89,8 @@ import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.DataBoundSetter; import org.kohsuke.stapler.QueryParameter; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; /** * {@link Trigger} that checks for SCM updates periodically. @@ -356,7 +356,7 @@ public boolean isPollingThreadCountOptionVisible() { } @Override - public boolean configure(StaplerRequest req, JSONObject json) throws FormException { + public boolean configure(StaplerRequest2 req, JSONObject json) throws FormException { String t = json.optString("pollingThreadCount", null); if (doCheckPollingThreadCount(t).kind != FormValidation.Kind.OK) { setPollingThreadCount(THREADS_DEFAULT); @@ -466,7 +466,7 @@ public String getUrlName() { /** * Sends out the raw polling log output. */ - public void doPollingLog(StaplerRequest req, StaplerResponse rsp) throws IOException { + public void doPollingLog(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException { rsp.setContentType("text/plain;charset=UTF-8"); try (OutputStream os = rsp.getOutputStream(); // Prevent jelly from flushing stream so Content-Length header can be added afterwards diff --git a/core/src/main/java/hudson/util/BootFailure.java b/core/src/main/java/hudson/util/BootFailure.java index f23cf7fa66b7..321d8239664c 100644 --- a/core/src/main/java/hudson/util/BootFailure.java +++ b/core/src/main/java/hudson/util/BootFailure.java @@ -2,6 +2,7 @@ import edu.umd.cs.findbugs.annotations.CheckForNull; import hudson.WebAppMain; +import jakarta.servlet.ServletContext; import java.io.BufferedReader; import java.io.File; import java.io.IOException; @@ -14,7 +15,6 @@ import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; -import javax.servlet.ServletContext; import jenkins.model.Jenkins; import jenkins.util.groovy.GroovyHookScript; import org.kohsuke.stapler.WebApp; diff --git a/core/src/main/java/hudson/util/CharacterEncodingFilter.java b/core/src/main/java/hudson/util/CharacterEncodingFilter.java index cb93c31e7d4a..2e42c0d8098c 100644 --- a/core/src/main/java/hudson/util/CharacterEncodingFilter.java +++ b/core/src/main/java/hudson/util/CharacterEncodingFilter.java @@ -24,17 +24,17 @@ package hudson.util; +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletRequest; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; import jenkins.util.SystemProperties; +import org.kohsuke.stapler.CompatibleFilter; /** * Filter that sets the character encoding to be used in parsing the request @@ -42,7 +42,7 @@ * * @author Seiji Sogabe */ -public class CharacterEncodingFilter implements Filter { +public class CharacterEncodingFilter implements CompatibleFilter { /** * The default character encoding. diff --git a/core/src/main/java/hudson/util/ComboBoxModel.java b/core/src/main/java/hudson/util/ComboBoxModel.java index e245c890db2e..63cac72f4d0d 100644 --- a/core/src/main/java/hudson/util/ComboBoxModel.java +++ b/core/src/main/java/hudson/util/ComboBoxModel.java @@ -26,15 +26,15 @@ import static java.util.Arrays.asList; +import jakarta.servlet.ServletException; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Collection; -import javax.servlet.ServletException; import net.sf.json.JSONArray; import org.kohsuke.stapler.HttpResponse; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.export.Flavor; /** @@ -59,7 +59,7 @@ public ComboBoxModel(String... values) { } @Override - public void generateResponse(StaplerRequest req, StaplerResponse rsp, Object node) throws IOException, ServletException { + public void generateResponse(StaplerRequest2 req, StaplerResponse2 rsp, Object node) throws IOException, ServletException { rsp.setContentType(Flavor.JSON.contentType); PrintWriter w = rsp.getWriter(); JSONArray.fromObject(this).write(w); diff --git a/core/src/main/java/hudson/util/DescribableList.java b/core/src/main/java/hudson/util/DescribableList.java index 9c62af2f191a..dbb499b4df66 100644 --- a/core/src/main/java/hudson/util/DescribableList.java +++ b/core/src/main/java/hudson/util/DescribableList.java @@ -50,6 +50,7 @@ import jenkins.model.DependencyDeclarer; import net.sf.json.JSONObject; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; /** * Persisted list of {@link Describable}s with some operations specific @@ -167,7 +168,7 @@ public Map toMap() { * @param json * Structured form data that includes the data for nested descriptor list. */ - public void rebuild(StaplerRequest req, JSONObject json, List> descriptors) throws FormException, IOException { + public void rebuild(StaplerRequest2 req, JSONObject json, List> descriptors) throws FormException, IOException { List newList = new ArrayList<>(); for (Descriptor d : descriptors) { @@ -193,9 +194,17 @@ public void rebuild(StaplerRequest req, JSONObject json, List> descriptors) throws FormException, IOException { + rebuild(StaplerRequest.toStaplerRequest2(req), json, descriptors); + } + /** * @deprecated as of 1.271 - * Use {@link #rebuild(StaplerRequest, JSONObject, List)} instead. + * Use {@link #rebuild(StaplerRequest2, JSONObject, List)} instead. */ @Deprecated public void rebuild(StaplerRequest req, JSONObject json, List> descriptors, String prefix) throws FormException, IOException { @@ -210,10 +219,18 @@ public void rebuild(StaplerRequest req, JSONObject json, List> descriptors, String key) throws FormException, IOException { + public void rebuildHetero(StaplerRequest2 req, JSONObject formData, Collection> descriptors, String key) throws FormException, IOException { replaceBy(Descriptor.newInstancesFromHeteroList(req, formData, key, descriptors)); } + /** + * @deprecated use {@link #rebuildHetero(StaplerRequest2, JSONObject, Collection, String)} + */ + @Deprecated + public void rebuildHetero(StaplerRequest req, JSONObject formData, Collection> descriptors, String key) throws FormException, IOException { + rebuildHetero(StaplerRequest.toStaplerRequest2(req), formData, descriptors, key); + } + /** * Picks up {@link DependencyDeclarer}s and allow it to build dependencies. */ diff --git a/core/src/main/java/hudson/util/DescriptorList.java b/core/src/main/java/hudson/util/DescriptorList.java index 94f105892cd8..c9b515d85c4e 100644 --- a/core/src/main/java/hudson/util/DescriptorList.java +++ b/core/src/main/java/hudson/util/DescriptorList.java @@ -160,7 +160,7 @@ public T newInstanceFromRadioList(JSONObject config) throws FormException { if (config.isNullObject()) return null; // none was selected int idx = config.getInt("value"); - return get(idx).newInstance(Stapler.getCurrentRequest(), config); + return get(idx).newInstance(Stapler.getCurrentRequest2(), config); } /** diff --git a/core/src/main/java/hudson/util/ErrorObject.java b/core/src/main/java/hudson/util/ErrorObject.java index 2f9f39ec8f19..48e1106b35f1 100644 --- a/core/src/main/java/hudson/util/ErrorObject.java +++ b/core/src/main/java/hudson/util/ErrorObject.java @@ -24,13 +24,13 @@ package hudson.util; -import static javax.servlet.http.HttpServletResponse.SC_SERVICE_UNAVAILABLE; +import static jakarta.servlet.http.HttpServletResponse.SC_SERVICE_UNAVAILABLE; import hudson.Functions; +import jakarta.servlet.ServletException; import java.io.IOException; -import javax.servlet.ServletException; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; /** * Basis for error model objects. @@ -52,7 +52,7 @@ public String getStackTraceString() { return Functions.printThrowable(this); } - public void doDynamic(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException, InterruptedException { + public void doDynamic(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException, InterruptedException { rsp.setStatus(SC_SERVICE_UNAVAILABLE); req.getView(this, "index.jelly").forward(req, rsp); } diff --git a/core/src/main/java/hudson/util/FormApply.java b/core/src/main/java/hudson/util/FormApply.java index 8a1db5bebe4e..dc5e4d64df9b 100644 --- a/core/src/main/java/hudson/util/FormApply.java +++ b/core/src/main/java/hudson/util/FormApply.java @@ -24,11 +24,12 @@ package hudson.util; +import jakarta.servlet.ServletException; import java.io.IOException; -import javax.servlet.ServletException; import org.kohsuke.stapler.HttpResponses.HttpResponseException; import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; /** * Server-side code related to the {@code } button. @@ -47,7 +48,7 @@ public class FormApply { public static HttpResponseException success(final String destination) { return new HttpResponseException() { @Override - public void generateResponse(StaplerRequest req, StaplerResponse rsp, Object node) throws IOException, ServletException { + public void generateResponse(StaplerRequest2 req, StaplerResponse2 rsp, Object node) throws IOException, ServletException { if (isApply(req)) { // if the submission is via 'apply', show a response in the notification bar applyResponse("notificationBar.show('" + Messages.HttpResponses_Saved() + "',notificationBar.SUCCESS)") @@ -61,11 +62,21 @@ public void generateResponse(StaplerRequest req, StaplerResponse rsp, Object nod /** * Is this submission from the "apply" button? + * + * @since TODO */ - public static boolean isApply(StaplerRequest req) { + public static boolean isApply(StaplerRequest2 req) { return Boolean.parseBoolean(req.getParameter("core:apply")); } + /** + * @deprecated use {@link #isApply(StaplerRequest2)} + */ + @Deprecated + public static boolean isApply(StaplerRequest req) { + return isApply(StaplerRequest.toStaplerRequest2(req)); + } + /** * Generates the response for the asynchronous background form submission (AKA the Apply button.) *

    @@ -75,7 +86,7 @@ public static boolean isApply(StaplerRequest req) { public static HttpResponseException applyResponse(final String script) { return new HttpResponseException() { @Override - public void generateResponse(StaplerRequest req, StaplerResponse rsp, Object node) throws IOException, ServletException { + public void generateResponse(StaplerRequest2 req, StaplerResponse2 rsp, Object node) throws IOException, ServletException { rsp.setContentType("text/html;charset=UTF-8"); rsp.getWriter().println(" + From 6651e8531eaf8c5d428a36c2e10f7c51ee016b16 Mon Sep 17 00:00:00 2001 From: Devin Nusbaum Date: Fri, 11 Oct 2024 14:42:38 -0400 Subject: [PATCH 1070/1216] [JENKINS-63343] Validate element types for collections and maps when deserializing XML files (#9727) * [JENKINS-63343] Validate element types in RobustCollectionConverter in some cases * [JENKINS-63343] Also validate keys and values in map entries * [JENKINS-63343] Improve OldDataMonitor error messages and update tests * [JENKINS-63343] Also handle implicit collection with unspecified element types * [JENKINS-63343] Spotless * [JENKINS-63343] Avoid rawtypes * [JENKINS-63343] Add tests for rawtypes * [JENKINS-63343] Adjust Javadoc for clarity * [JENKINS-63343] Avoid ClassCastException and check handling of null in tests * [JENKINS-63343] Fix Javadoc link by adding import * [JENKINS-63343] List.of cannot be used with null values --- .../util/RobustCollectionConverter.java | 48 +++++++- .../java/hudson/util/RobustMapConverter.java | 57 ++++++++- .../util/RobustReflectionConverter.java | 43 +++++-- .../util/RobustCollectionConverterTest.java | 70 +++++++++++ .../hudson/util/RobustMapConverterTest.java | 115 +++++++++++++++++- .../util/RobustReflectionConverterTest.java | 83 ++++++++++++- 6 files changed, 396 insertions(+), 20 deletions(-) diff --git a/core/src/main/java/hudson/util/RobustCollectionConverter.java b/core/src/main/java/hudson/util/RobustCollectionConverter.java index 64dbbc7d9e9a..f914d909be27 100644 --- a/core/src/main/java/hudson/util/RobustCollectionConverter.java +++ b/core/src/main/java/hudson/util/RobustCollectionConverter.java @@ -26,6 +26,7 @@ import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.XStreamException; +import com.thoughtworks.xstream.converters.ConversionException; import com.thoughtworks.xstream.converters.UnmarshallingContext; import com.thoughtworks.xstream.converters.collections.CollectionConverter; import com.thoughtworks.xstream.converters.reflection.ReflectionProvider; @@ -34,11 +35,15 @@ import com.thoughtworks.xstream.io.HierarchicalStreamReader; import com.thoughtworks.xstream.mapper.Mapper; import com.thoughtworks.xstream.security.InputManipulationException; +import edu.umd.cs.findbugs.annotations.CheckForNull; +import hudson.diagnosis.OldDataMonitor; +import java.lang.reflect.Type; import java.util.Collection; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CopyOnWriteArraySet; import java.util.logging.Logger; import jenkins.util.xstream.CriticalXStreamException; +import org.jvnet.tiger_types.Types; /** * {@link CollectionConverter} that ignores {@link XStreamException}. @@ -52,14 +57,39 @@ @SuppressWarnings({"rawtypes", "unchecked"}) public class RobustCollectionConverter extends CollectionConverter { private final SerializableConverter sc; + /** + * When available, this field holds the declared type of the collection being deserialized. + */ + private final @CheckForNull Class elementType; public RobustCollectionConverter(XStream xs) { - this(xs.getMapper(), xs.getReflectionProvider()); + this(xs.getMapper(), xs.getReflectionProvider(), null); } public RobustCollectionConverter(Mapper mapper, ReflectionProvider reflectionProvider) { + this(mapper, reflectionProvider, null); + } + + /** + * Creates a converter that will validate the types of collection elements during deserialization. + *

    Elements with invalid types will be omitted from deserialized collections and may result in an + * {@link OldDataMonitor} warning. + *

    This type checking currently uses the erasure of the type argument, so for example, the element type for a + * {@code List>} is just a raw {@code Optional}, so non-integer values inside of the optional + * would still deserialize successfully and the resulting optional would be included in the list. + * + * @see RobustReflectionConverter#unmarshalField + */ + public RobustCollectionConverter(Mapper mapper, ReflectionProvider reflectionProvider, Type collectionType) { super(mapper); sc = new SerializableConverter(mapper, reflectionProvider, new ClassLoaderReference(null)); + if (collectionType != null && Collection.class.isAssignableFrom(Types.erasure(collectionType))) { + var baseType = Types.getBaseClass(collectionType, Collection.class); + var typeArg = Types.getTypeArgument(baseType, 0, Object.class); + this.elementType = Types.erasure(typeArg); + } else { + this.elementType = null; + } } @Override @@ -85,9 +115,19 @@ protected void populateCollection(HierarchicalStreamReader reader, Unmarshalling reader.moveDown(); try { Object item = readBareItem(reader, context, collection); - long nanoNow = System.nanoTime(); - collection.add(item); - XStream2SecurityUtils.checkForCollectionDoSAttack(context, nanoNow); + if (elementType != null && item != null && !elementType.isInstance(item)) { + var exception = new ConversionException("Invalid type for collection element"); + // c.f. TreeUnmarshaller.addInformationTo + exception.add("required-type", elementType.getName()); + exception.add("class", item.getClass().getName()); + exception.add("converter-type", getClass().getName()); + reader.appendErrors(exception); + RobustReflectionConverter.addErrorInContext(context, exception); + } else { + long nanoNow = System.nanoTime(); + collection.add(item); + XStream2SecurityUtils.checkForCollectionDoSAttack(context, nanoNow); + } } catch (CriticalXStreamException e) { throw e; } catch (InputManipulationException e) { diff --git a/core/src/main/java/hudson/util/RobustMapConverter.java b/core/src/main/java/hudson/util/RobustMapConverter.java index f845e38771cc..c802959d0d09 100644 --- a/core/src/main/java/hudson/util/RobustMapConverter.java +++ b/core/src/main/java/hudson/util/RobustMapConverter.java @@ -31,9 +31,13 @@ import com.thoughtworks.xstream.io.HierarchicalStreamReader; import com.thoughtworks.xstream.mapper.Mapper; import com.thoughtworks.xstream.security.InputManipulationException; +import edu.umd.cs.findbugs.annotations.CheckForNull; +import hudson.diagnosis.OldDataMonitor; +import java.lang.reflect.Type; import java.util.Map; import java.util.logging.Logger; import jenkins.util.xstream.CriticalXStreamException; +import org.jvnet.tiger_types.Types; /** * Loads a {@link Map} while tolerating read errors on its keys and values. @@ -42,13 +46,47 @@ final class RobustMapConverter extends MapConverter { private static final Object ERROR = new Object(); + /** + * When available, this field holds the declared type of the keys of the map being deserialized. + */ + private final @CheckForNull Class keyType; + + /** + * When available, this field holds the declared type of the values of the map being deserialized. + */ + private final @CheckForNull Class valueType; + RobustMapConverter(Mapper mapper) { + this(mapper, null); + } + + /** + * Creates a converter that will validate the types of map entry keys and values during deserialization. + *

    Map entries whose key or value has an invalid type will be omitted from deserialized maps and may result in + * an {@link OldDataMonitor} warning. + *

    This type checking currently uses the erasure of the type argument, so for example, the value type for a + * {@code Map>} is just a raw {@code Optional}, so non-integer values inside of the + * optional would still deserialize successfully and the resulting map entry would be included in the map. + * + * @see RobustReflectionConverter#unmarshalField + */ + RobustMapConverter(Mapper mapper, Type mapType) { super(mapper); + if (mapType != null && Map.class.isAssignableFrom(Types.erasure(mapType))) { + var baseType = Types.getBaseClass(mapType, Map.class); + var keyTypeArg = Types.getTypeArgument(baseType, 0, Object.class); + this.keyType = Types.erasure(keyTypeArg); + var valueTypeArg = Types.getTypeArgument(baseType, 1, Object.class); + this.valueType = Types.erasure(valueTypeArg); + } else { + this.keyType = null; + this.valueType = null; + } } @Override protected void putCurrentEntryIntoMap(HierarchicalStreamReader reader, UnmarshallingContext context, Map map, Map target) { - Object key = read(reader, context, map); - Object value = read(reader, context, map); + Object key = read(reader, context, map, keyType); + Object value = read(reader, context, map, valueType); if (key != ERROR && value != ERROR) { try { long nanoNow = System.nanoTime(); @@ -64,7 +102,7 @@ final class RobustMapConverter extends MapConverter { } } - private Object read(HierarchicalStreamReader reader, UnmarshallingContext context, Map map) { + private Object read(HierarchicalStreamReader reader, UnmarshallingContext context, Map map, @CheckForNull Class expectedType) { if (!reader.hasMoreChildren()) { var exception = new ConversionException("Invalid map entry"); reader.appendErrors(exception); @@ -73,7 +111,18 @@ private Object read(HierarchicalStreamReader reader, UnmarshallingContext contex } reader.moveDown(); try { - return readBareItem(reader, context, map); + var object = readBareItem(reader, context, map); + if (expectedType != null && object != null && !expectedType.isInstance(object)) { + var exception = new ConversionException("Invalid type for map entry key/value"); + // c.f. TreeUnmarshaller.addInformationTo + exception.add("required-type", expectedType.getName()); + exception.add("class", object.getClass().getName()); + exception.add("converter-type", getClass().getName()); + reader.appendErrors(exception); + RobustReflectionConverter.addErrorInContext(context, exception); + return ERROR; + } + return object; } catch (CriticalXStreamException x) { throw x; } catch (XStreamException | LinkageError x) { diff --git a/core/src/main/java/hudson/util/RobustReflectionConverter.java b/core/src/main/java/hudson/util/RobustReflectionConverter.java index d1bc500003e1..686aad13c342 100644 --- a/core/src/main/java/hudson/util/RobustReflectionConverter.java +++ b/core/src/main/java/hudson/util/RobustReflectionConverter.java @@ -48,6 +48,7 @@ import hudson.model.Saveable; import hudson.security.ACL; import java.lang.reflect.Field; +import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; @@ -65,6 +66,7 @@ import jenkins.util.xstream.CriticalXStreamException; import net.jcip.annotations.GuardedBy; import org.acegisecurity.Authentication; +import org.jvnet.tiger_types.Types; /** * Custom {@link ReflectionConverter} that handle errors more gracefully. @@ -80,7 +82,7 @@ @SuppressWarnings({"rawtypes", "unchecked"}) public class RobustReflectionConverter implements Converter { - private static /* non-final for Groovy */ boolean RECORD_FAILURES_FOR_ALL_AUTHENTICATIONS = SystemProperties.getBoolean(RobustReflectionConverter.class.getName() + ".recordFailuresForAllAuthentications", false); + static /* non-final for Groovy */ boolean RECORD_FAILURES_FOR_ALL_AUTHENTICATIONS = SystemProperties.getBoolean(RobustReflectionConverter.class.getName() + ".recordFailuresForAllAuthentications", false); private static /* non-final for Groovy */ boolean RECORD_FAILURES_FOR_ADMINS = SystemProperties.getBoolean(RobustReflectionConverter.class.getName() + ".recordFailuresForAdmins", false); protected final ReflectionProvider reflectionProvider; @@ -324,7 +326,8 @@ public Object doUnmarshal(final Object result, final HierarchicalStreamReader re } } - Map implicitCollectionsForCurrentObject = null; + Map> implicitCollectionsForCurrentObject = new HashMap<>(); + Map> implicitCollectionElementTypesForCurrentObject = new HashMap<>(); while (reader.hasMoreChildren()) { reader.moveDown(); @@ -365,7 +368,7 @@ public Object doUnmarshal(final Object result, final HierarchicalStreamReader re reflectionProvider.writeField(result, fieldName, value, classDefiningField); seenFields.add(classDefiningField, fieldName); } else { - implicitCollectionsForCurrentObject = writeValueToImplicitCollection(context, value, implicitCollectionsForCurrentObject, result, fieldName); + writeValueToImplicitCollection(reader, context, value, implicitCollectionsForCurrentObject, implicitCollectionElementTypesForCurrentObject, result, fieldName); } } } catch (CriticalXStreamException e) { @@ -451,18 +454,23 @@ private boolean fieldDefinedInClass(Object result, String attrName) { protected Object unmarshalField(final UnmarshallingContext context, final Object result, Class type, Field field) { Converter converter = mapper.getLocalConverter(field.getDeclaringClass(), field.getName()); + if (converter == null) { + if (new RobustCollectionConverter(mapper, reflectionProvider).canConvert(type)) { + converter = new RobustCollectionConverter(mapper, reflectionProvider, field.getGenericType()); + } else if (new RobustMapConverter(mapper).canConvert(type)) { + converter = new RobustMapConverter(mapper, field.getGenericType()); + } + } return context.convertAnother(result, type, converter); } - private Map writeValueToImplicitCollection(UnmarshallingContext context, Object value, Map implicitCollections, Object result, String itemFieldName) { + private void writeValueToImplicitCollection(HierarchicalStreamReader reader, UnmarshallingContext context, Object value, Map> implicitCollections, Map> implicitCollectionElementTypes, Object result, String itemFieldName) { String fieldName = mapper.getFieldNameForItemTypeAndName(context.getRequiredType(), value.getClass(), itemFieldName); if (fieldName != null) { - if (implicitCollections == null) { - implicitCollections = new HashMap(); // lazy instantiation - } - Collection collection = (Collection) implicitCollections.get(fieldName); + Collection collection = implicitCollections.get(fieldName); if (collection == null) { - Class fieldType = mapper.defaultImplementationOf(reflectionProvider.getFieldType(result, fieldName, null)); + Field field = reflectionProvider.getField(result.getClass(), fieldName); + Class fieldType = mapper.defaultImplementationOf(field.getType()); if (!Collection.class.isAssignableFrom(fieldType)) { throw new ObjectAccessException("Field " + fieldName + " of " + result.getClass().getName() + " is configured for an implicit Collection, but field is of type " + fieldType.getName()); @@ -473,10 +481,25 @@ private Map writeValueToImplicitCollection(UnmarshallingContext context, Object collection = (Collection) pureJavaReflectionProvider.newInstance(fieldType); reflectionProvider.writeField(result, fieldName, collection, null); implicitCollections.put(fieldName, collection); + Type fieldGenericType = field.getGenericType(); + Type elementGenericType = Types.getTypeArgument(Types.getBaseClass(fieldGenericType, Collection.class), 0, Object.class); + Class elementType = Types.erasure(elementGenericType); + implicitCollectionElementTypes.put(fieldName, elementType); + } + Class elementType = implicitCollectionElementTypes.getOrDefault(fieldName, Object.class); + if (!elementType.isInstance(value)) { + var exception = new ConversionException("Invalid element type for implicit collection for field: " + fieldName); + // c.f. TreeUnmarshaller.addInformationTo + exception.add("required-type", elementType.getName()); + exception.add("class", value.getClass().getName()); + exception.add("converter-type", getClass().getName()); + reader.appendErrors(exception); + throw exception; } collection.add(value); + } else { + // TODO: Should we warn in this case? The value will be ignored. } - return implicitCollections; } private Class determineWhichClassDefinesField(HierarchicalStreamReader reader) { diff --git a/core/src/test/java/hudson/util/RobustCollectionConverterTest.java b/core/src/test/java/hudson/util/RobustCollectionConverterTest.java index 7786fb0833f7..57f2ad42af39 100644 --- a/core/src/test/java/hudson/util/RobustCollectionConverterTest.java +++ b/core/src/test/java/hudson/util/RobustCollectionConverterTest.java @@ -32,6 +32,8 @@ import static org.junit.Assert.assertTrue; import com.thoughtworks.xstream.security.InputManipulationException; +import hudson.model.Saveable; +import java.io.IOException; import java.time.Instant; import java.util.ArrayList; import java.util.Arrays; @@ -42,10 +44,24 @@ import java.util.Map; import java.util.Set; import jenkins.util.xstream.CriticalXStreamException; +import org.junit.After; +import org.junit.Before; import org.junit.Test; import org.jvnet.hudson.test.Issue; public class RobustCollectionConverterTest { + private final boolean originalRecordFailures = RobustReflectionConverter.RECORD_FAILURES_FOR_ALL_AUTHENTICATIONS; + + @Before + public void before() { + RobustReflectionConverter.RECORD_FAILURES_FOR_ALL_AUTHENTICATIONS = true; + } + + @After + public void after() { + RobustReflectionConverter.RECORD_FAILURES_FOR_ALL_AUTHENTICATIONS = originalRecordFailures; + } + @Test public void workingByDefaultWithSimplePayload() { XStream2 xstream2 = new XStream2(); @@ -173,4 +189,58 @@ private Set preparePayload() { } return set; } + + @Issue("JENKINS-63343") + @Test + public void checkElementTypes() { + var xmlContent = + """ + + + 1 + 2 + oops! + + 3 + + + """; + var actual = (Data) new XStream2().fromXML(xmlContent); + assertEquals(Arrays.asList(1, 2, null, 3), actual.numbers); + } + + @Test + public void rawtypes() { + var xmlContent = + """ + + + 1 + 2 + oops! + 3 + + + """; + var actual = (DataRaw) new XStream2().fromXML(xmlContent); + assertEquals(List.of(1, 2, "oops!", 3), actual.values); + } + + public static class Data implements Saveable { + private List numbers; + + @Override + public void save() throws IOException { + // We only implement Saveable so that RobustReflectionConverter logs deserialization problems. + } + } + + public static class DataRaw implements Saveable { + private List values; + + @Override + public void save() throws IOException { + // We only implement Saveable so that RobustReflectionConverter logs deserialization problems. + } + } } diff --git a/core/src/test/java/hudson/util/RobustMapConverterTest.java b/core/src/test/java/hudson/util/RobustMapConverterTest.java index b74ac9303f71..c46a7ade2f57 100644 --- a/core/src/test/java/hudson/util/RobustMapConverterTest.java +++ b/core/src/test/java/hudson/util/RobustMapConverterTest.java @@ -32,13 +32,29 @@ import static org.junit.Assert.assertTrue; import com.thoughtworks.xstream.security.InputManipulationException; +import hudson.model.Saveable; +import java.io.IOException; import java.util.HashMap; import java.util.Map; import jenkins.util.xstream.CriticalXStreamException; +import org.junit.After; +import org.junit.Before; import org.junit.Test; import org.jvnet.hudson.test.Issue; public class RobustMapConverterTest { + private final boolean originalRecordFailures = RobustReflectionConverter.RECORD_FAILURES_FOR_ALL_AUTHENTICATIONS; + + @Before + public void before() { + RobustReflectionConverter.RECORD_FAILURES_FOR_ALL_AUTHENTICATIONS = true; + } + + @After + public void after() { + RobustReflectionConverter.RECORD_FAILURES_FOR_ALL_AUTHENTICATIONS = originalRecordFailures; + } + /** * As RobustMapConverter is the replacer of the default MapConverter * We had to patch it in order to not be impacted by CVE-2021-43859 @@ -146,6 +162,7 @@ private Map preparePayload() { @Test public void robustAgainstInvalidEntry() { + RobustReflectionConverter.RECORD_FAILURES_FOR_ALL_AUTHENTICATIONS = true; XStream2 xstream2 = new XStream2(); String xml = """ @@ -184,7 +201,103 @@ public void robustAgainstInvalidEntryWithNoValue() { assertThat(data.map, equalTo(Map.of("key2", "value2"))); } - private static final class Data { + @Issue("JENKINS-63343") + @Test + public void robustAgainstInvalidKeyType() { + XStream2 xstream2 = new XStream2(); + String xml = + """ + + + + 1 + value1 + + + key2 + value2 + + + + value3 + + + + """; + Data data = (Data) xstream2.fromXML(xml); + var map = new HashMap<>(); + map.put("key2", "value2"); + map.put(null, "value3"); + assertThat(data.map, equalTo(map)); + } + + @Issue("JENKINS-63343") + @Test + public void robustAgainstInvalidValueType() { + XStream2 xstream2 = new XStream2(); + String xml = + """ + + + + key1 + value1 + + + key2 + 2 + + + key3 + + + + + """; + Data data = (Data) xstream2.fromXML(xml); + var map = new HashMap<>(); + map.put("key1", "value1"); + map.put("key3", null); + assertThat(data.map, equalTo(map)); + } + + @Test + public void rawtypes() { + XStream2 xstream2 = new XStream2(); + String xml = + """ + + + + key1 + value1 + + + key2 + 2 + + + + """; + var data = (DataRaw) xstream2.fromXML(xml); + assertThat(data.map, equalTo(Map.of("key1", "value1", "key2", 2))); + } + + private static class Data implements Saveable { Map map; + + @Override + public void save() throws IOException { + // We only implement Saveable so that RobustReflectionConverter logs deserialization problems. + } + } + + private static class DataRaw implements Saveable { + Map map; + + @Override + public void save() throws IOException { + // We only implement Saveable so that RobustReflectionConverter logs deserialization problems. + } } } diff --git a/core/src/test/java/hudson/util/RobustReflectionConverterTest.java b/core/src/test/java/hudson/util/RobustReflectionConverterTest.java index bb392132afdd..9f3da4b754b3 100644 --- a/core/src/test/java/hudson/util/RobustReflectionConverterTest.java +++ b/core/src/test/java/hudson/util/RobustReflectionConverterTest.java @@ -26,6 +26,7 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.instanceOf; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; @@ -41,6 +42,8 @@ import com.thoughtworks.xstream.io.HierarchicalStreamWriter; import com.thoughtworks.xstream.mapper.Mapper; import com.thoughtworks.xstream.security.InputManipulationException; +import hudson.model.Saveable; +import java.io.IOException; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; @@ -52,6 +55,9 @@ import java.util.logging.Logger; import jenkins.util.xstream.CriticalXStreamException; import org.hamcrest.Matchers; +import org.junit.After; +import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; import org.jvnet.hudson.test.Issue; @@ -59,11 +65,22 @@ * @author Kohsuke Kawaguchi */ public class RobustReflectionConverterTest { + private final boolean originalRecordFailures = RobustReflectionConverter.RECORD_FAILURES_FOR_ALL_AUTHENTICATIONS; static { Logger.getLogger(RobustReflectionConverter.class.getName()).setLevel(Level.OFF); } + @Before + public void before() { + RobustReflectionConverter.RECORD_FAILURES_FOR_ALL_AUTHENTICATIONS = true; + } + + @After + public void after() { + RobustReflectionConverter.RECORD_FAILURES_FOR_ALL_AUTHENTICATIONS = originalRecordFailures; + } + @Test public void robustUnmarshalling() { Point p = read(new XStream2()); @@ -132,8 +149,72 @@ public void implicitCollection() { "", xs.toXML(h)); } - public static class Hold { + @Ignore("Throws an NPE in writeValueToImplicitCollection. Issue has existed since RobustReflectionConverter was created.") + @Test + public void implicitCollectionsAllowNullElements() { + XStream2 xs = new XStream2(); + xs.alias("hold", Hold.class); + xs.addImplicitCollection(Hold.class, "items", "item", String.class); + Hold h = (Hold) xs.fromXML("b"); + assertThat(h.items, Matchers.containsInAnyOrder(null, "b")); + assertEquals("\n" + + " \n" + + " b\n" + + "", xs.toXML(h)); + } + + @Issue("JENKINS-63343") + @Test + public void robustAgainstImplicitCollectionElementsWithBadTypes() { + XStream2 xs = new XStream2(); + xs.alias("hold", Hold.class); + // Note that the fix only matters for `addImplicitCollection` overloads like the following where the element type is not provided. + xs.addImplicitCollection(Hold.class, "items"); + Hold h = (Hold) xs.fromXML( + """ + + 123 + abc + 456 + def + + """); + assertThat(h.items, equalTo(List.of("abc", "def"))); + } + + public static class Hold implements Saveable { List items; + + @Override + public void save() throws IOException { + // We only implement Saveable so that RobustReflectionConverter logs deserialization problems. + } + } + + @Test + public void implicitCollectionRawtypes() { + XStream2 xs = new XStream2(); + xs.alias("hold", HoldRaw.class); + xs.addImplicitCollection(HoldRaw.class, "items"); + var h = (HoldRaw) xs.fromXML( + """ + + 123 + abc + 456 + def + + """); + assertThat(h.items, equalTo(List.of(123, "abc", 456, "def"))); + } + + public static class HoldRaw implements Saveable { + List items; + + @Override + public void save() throws IOException { + // We only implement Saveable so that RobustReflectionConverter logs deserialization problems. + } } @Retention(RetentionPolicy.RUNTIME) @interface Owner { From 3ee0e787ff815a15a4aabc2ceea099236294c190 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 11 Oct 2024 11:55:56 -0700 Subject: [PATCH 1071/1216] Update jenkins/ath Docker tag to v6038 (#9854) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- ath.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ath.sh b/ath.sh index a246733c5c2c..7009d692b8d0 100644 --- a/ath.sh +++ b/ath.sh @@ -6,7 +6,7 @@ set -o xtrace cd "$(dirname "$0")" # https://github.com/jenkinsci/acceptance-test-harness/releases -export ATH_VERSION=6034.vfb_c575f4f616 +export ATH_VERSION=6038.v190f938efc87 if [[ $# -eq 0 ]]; then export JDK=17 From 4a9fb7739a298d0019124b38892caa4a6a4d3b47 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 11 Oct 2024 11:56:19 -0700 Subject: [PATCH 1072/1216] Update dependency org.jenkins-ci.plugins:credentials to v1389 (#9853) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index 019fe23d98b6..c911388fdef3 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -224,7 +224,7 @@ THE SOFTWARE. org.jenkins-ci.plugins credentials - 1384.vf0a_2ed06f9c6 + 1389.vd7a_b_f5fa_50a_2 test From 925de03663e9768d6f64d19b0b0ed04596f338d0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 11 Oct 2024 11:56:41 -0700 Subject: [PATCH 1073/1216] Update dependency org.jenkins-ci.main:jenkins-test-harness to v2341 (#9850) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index c911388fdef3..ba67c9804137 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -178,7 +178,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-test-harness - 2307.v10e5d0701b_e5 + 2341.v35346d95d2b_7 test From d34b17ee4b85787be56a2d6f32186e3839d5482d Mon Sep 17 00:00:00 2001 From: Devin Nusbaum Date: Sat, 12 Oct 2024 08:06:18 -0400 Subject: [PATCH 1074/1216] [JENKINS-73835] Do not allow builds to be deleted while they are still running and ensure build discarders run after builds are fully complete (#9810) * [JENKINS-73835] Do not allow builds to be deleted while they are still running * [JENKINS-73835] Avoid redundant calls to Job.logRotate when builds complete and always call Job.logRotate after build finalization * [JENKINS-73835] Add issue reference to RunTest.buildsMayNotBeDeletedWhileRunning * [JENKINS-73835] Adjust DeleteBuildsCommandTest.deleteBuildsShouldSuccessEvenTheBuildIsRunning to match new behavior * [JENKINS-73835] Run/delete.jelly should check Run.isLogUpdated, not Run.isBuilding --- core/src/main/java/hudson/model/Run.java | 9 +++----- .../main/java/hudson/tasks/LogRotator.java | 2 +- .../model/BackgroundGlobalBuildDiscarder.java | 13 +++++++++++- .../model/GlobalBuildDiscarderListener.java | 13 ++++++++++-- .../resources/hudson/model/Run/delete.jelly | 2 +- .../hudson/cli/DeleteBuildsCommandTest.java | 21 ++++++------------- test/src/test/java/hudson/model/RunTest.java | 14 +++++++++++++ .../java/hudson/tasks/LogRotatorTest.java | 16 ++++++++++++++ 8 files changed, 64 insertions(+), 26 deletions(-) diff --git a/core/src/main/java/hudson/model/Run.java b/core/src/main/java/hudson/model/Run.java index 450be07b7f1a..ec7eaabf32c6 100644 --- a/core/src/main/java/hudson/model/Run.java +++ b/core/src/main/java/hudson/model/Run.java @@ -1551,6 +1551,9 @@ public synchronized void deleteArtifacts() throws IOException { * if we fail to delete. */ public void delete() throws IOException { + if (isLogUpdated()) { + throw new IOException("Unable to delete " + this + " because it is still running"); + } synchronized (this) { // Avoid concurrent delete. See https://issues.jenkins.io/browse/JENKINS-61687 if (isPendingDelete) { @@ -1885,12 +1888,6 @@ protected final void execute(@NonNull RunExecution job) { LOGGER.log(Level.SEVERE, "Failed to save build record", e); } } - - try { - getParent().logRotate(); - } catch (Exception e) { - LOGGER.log(Level.SEVERE, "Failed to rotate log", e); - } } finally { onEndBuilding(); if (logger != null) { diff --git a/core/src/main/java/hudson/tasks/LogRotator.java b/core/src/main/java/hudson/tasks/LogRotator.java index ca95081b0385..0b47f035d809 100644 --- a/core/src/main/java/hudson/tasks/LogRotator.java +++ b/core/src/main/java/hudson/tasks/LogRotator.java @@ -250,7 +250,7 @@ private boolean shouldKeepRun(Run r, Run lsb, Run lstb) { LOGGER.log(FINER, "{0} is not to be removed or purged of artifacts because it’s the last stable build", r); return true; } - if (r.isBuilding()) { + if (r.isLogUpdated()) { LOGGER.log(FINER, "{0} is not to be removed or purged of artifacts because it’s still building", r); return true; } diff --git a/core/src/main/java/jenkins/model/BackgroundGlobalBuildDiscarder.java b/core/src/main/java/jenkins/model/BackgroundGlobalBuildDiscarder.java index 1a42c0577a47..ad33643879f5 100644 --- a/core/src/main/java/jenkins/model/BackgroundGlobalBuildDiscarder.java +++ b/core/src/main/java/jenkins/model/BackgroundGlobalBuildDiscarder.java @@ -31,6 +31,7 @@ import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; +import java.util.stream.Stream; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; @@ -56,8 +57,18 @@ protected void execute(TaskListener listener) throws IOException, InterruptedExc } } + /** + * Runs all globally configured build discarders against a job. + */ public static void processJob(TaskListener listener, Job job) { - GlobalBuildDiscarderConfiguration.get().getConfiguredBuildDiscarders().forEach(strategy -> { + processJob(listener, job, GlobalBuildDiscarderConfiguration.get().getConfiguredBuildDiscarders().stream()); + } + + /** + * Runs the specified build discarders against a job. + */ + public static void processJob(TaskListener listener, Job job, Stream strategies) { + strategies.forEach(strategy -> { String displayName = strategy.getDescriptor().getDisplayName(); if (strategy.isApplicable(job)) { try { diff --git a/core/src/main/java/jenkins/model/GlobalBuildDiscarderListener.java b/core/src/main/java/jenkins/model/GlobalBuildDiscarderListener.java index 7ddea84c4241..6d2c58b44774 100644 --- a/core/src/main/java/jenkins/model/GlobalBuildDiscarderListener.java +++ b/core/src/main/java/jenkins/model/GlobalBuildDiscarderListener.java @@ -35,7 +35,7 @@ import org.kohsuke.accmod.restrictions.NoExternalUse; /** - * Run background build discarders on an individual job once a build is finalized + * Run build discarders on an individual job once a build is finalized */ @Extension @Restricted(NoExternalUse.class) @@ -46,6 +46,15 @@ public class GlobalBuildDiscarderListener extends RunListener { @Override public void onFinalized(Run run) { Job job = run.getParent(); - BackgroundGlobalBuildDiscarder.processJob(new LogTaskListener(LOGGER, Level.FINE), job); + try { + // Job-level build discarder execution is unconditional. + job.logRotate(); + } catch (Exception e) { + LOGGER.log(Level.WARNING, e, () -> "Failed to rotate log for " + run); + } + // Avoid calling Job.logRotate twice in case JobGlobalBuildDiscarderStrategy is configured globally. + BackgroundGlobalBuildDiscarder.processJob(new LogTaskListener(LOGGER, Level.FINE), job, + GlobalBuildDiscarderConfiguration.get().getConfiguredBuildDiscarders().stream() + .filter(s -> !(s instanceof JobGlobalBuildDiscarderStrategy))); } } diff --git a/core/src/main/resources/hudson/model/Run/delete.jelly b/core/src/main/resources/hudson/model/Run/delete.jelly index 83e3cbd77e71..7443203f2650 100644 --- a/core/src/main/resources/hudson/model/Run/delete.jelly +++ b/core/src/main/resources/hudson/model/Run/delete.jelly @@ -27,7 +27,7 @@ THE SOFTWARE. --> - + diff --git a/test/src/test/java/hudson/cli/DeleteBuildsCommandTest.java b/test/src/test/java/hudson/cli/DeleteBuildsCommandTest.java index dfac64fc1b5a..5e2e917e9808 100644 --- a/test/src/test/java/hudson/cli/DeleteBuildsCommandTest.java +++ b/test/src/test/java/hudson/cli/DeleteBuildsCommandTest.java @@ -32,21 +32,18 @@ import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.hasSize; import static org.junit.Assert.assertNotNull; -import static org.junit.Assume.assumeFalse; -import hudson.Functions; import hudson.model.ExecutorTest; import hudson.model.FreeStyleProject; import hudson.model.Item; import hudson.model.Run; import hudson.model.labels.LabelAtom; import hudson.tasks.Shell; -import java.io.IOException; import jenkins.model.Jenkins; -import org.junit.AssumptionViolatedException; import org.junit.Before; import org.junit.Rule; import org.junit.Test; +import org.jvnet.hudson.test.Issue; import org.jvnet.hudson.test.JenkinsRule; /** @@ -139,8 +136,8 @@ public class DeleteBuildsCommandTest { assertThat(result.stdout(), containsString("Deleted 0 builds")); } - @Test public void deleteBuildsShouldSuccessEvenTheBuildIsRunning() throws Exception { - assumeFalse("You can't delete files that are in use on Windows", Functions.isWindows()); + @Issue("JENKINS-73835") + @Test public void deleteBuildsShouldFailIfTheBuildIsRunning() throws Exception { FreeStyleProject project = j.createFreeStyleProject("aProject"); ExecutorTest.startBlockingBuild(project); assertThat(((FreeStyleProject) j.jenkins.getItem("aProject")).getBuilds(), hasSize(1)); @@ -148,15 +145,9 @@ public class DeleteBuildsCommandTest { final CLICommandInvoker.Result result = command .authorizedTo(Jenkins.READ, Item.READ, Run.DELETE) .invokeWithArgs("aProject", "1"); - assertThat(result, succeeded()); - assertThat(result.stdout(), containsString("Deleted 1 builds")); - assertThat(((FreeStyleProject) j.jenkins.getItem("aProject")).getBuilds(), hasSize(0)); - assertThat(project.isBuilding(), equalTo(false)); - try { - project.delete(); - } catch (IOException | InterruptedException x) { - throw new AssumptionViolatedException("Could not delete test project (race condition?)", x); - } + assertThat(result, failedWith(1)); + assertThat(result, hasNoStandardOutput()); + assertThat(result.stderr(), containsString("Unable to delete aProject #1 because it is still running")); } @Test public void deleteBuildsShouldSuccessEvenTheBuildIsStuckInTheQueue() throws Exception { diff --git a/test/src/test/java/hudson/model/RunTest.java b/test/src/test/java/hudson/model/RunTest.java index 34be1f14c2ef..4df895309abb 100644 --- a/test/src/test/java/hudson/model/RunTest.java +++ b/test/src/test/java/hudson/model/RunTest.java @@ -30,6 +30,7 @@ import static org.hamcrest.Matchers.not; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertTrue; import hudson.ExtensionList; @@ -62,6 +63,7 @@ import org.junit.experimental.categories.Category; import org.jvnet.hudson.test.Issue; import org.jvnet.hudson.test.JenkinsRule; +import org.jvnet.hudson.test.SleepBuilder; import org.jvnet.hudson.test.SmokeTest; import org.jvnet.hudson.test.TestExtension; import org.kohsuke.stapler.DataBoundConstructor; @@ -128,6 +130,18 @@ public void onDeleted(Saveable o, XmlFile file) { } } + @Issue("JENKINS-73835") + @Test public void buildsMayNotBeDeletedWhileRunning() throws Exception { + var p = j.createFreeStyleProject(); + p.getBuildersList().add(new SleepBuilder(999999)); + var b = p.scheduleBuild2(0).waitForStart(); + var ex = assertThrows(IOException.class, () -> b.delete()); + assertThat(ex.getMessage(), containsString("Unable to delete " + b + " because it is still running")); + b.getExecutor().interrupt(); + j.waitForCompletion(b); + b.delete(); // Works fine. + } + @Issue("SECURITY-1902") @Test public void preventXssInBadgeTooltip() throws Exception { j.jenkins.setQuietPeriod(0); diff --git a/test/src/test/java/hudson/tasks/LogRotatorTest.java b/test/src/test/java/hudson/tasks/LogRotatorTest.java index b72e837dbd86..118a860147a1 100644 --- a/test/src/test/java/hudson/tasks/LogRotatorTest.java +++ b/test/src/test/java/hudson/tasks/LogRotatorTest.java @@ -50,8 +50,10 @@ import java.util.concurrent.TimeoutException; import java.util.logging.Level; import java.util.logging.Logger; +import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; +import org.jvnet.hudson.test.BuildWatcher; import org.jvnet.hudson.test.FailureBuilder; import org.jvnet.hudson.test.Issue; import org.jvnet.hudson.test.JenkinsRule; @@ -62,6 +64,9 @@ */ public class LogRotatorTest { + @ClassRule + public static BuildWatcher watcher = new BuildWatcher(); + @Rule public JenkinsRule j = new JenkinsRule(); @@ -96,6 +101,17 @@ public void successVsFailureWithRemoveLastBuild() throws Exception { assertEquals(2, numberOf(project.getLastFailedBuild())); } + @Test + public void ableToDeleteCurrentBuild() throws Exception { + var p = j.createFreeStyleProject(); + // Keep 0 builds, i.e. immediately delete builds as they complete. + LogRotator logRotator = new LogRotator(-1, 0, -1, -1); + logRotator.setRemoveLastBuild(true); + p.setBuildDiscarder(logRotator); + j.buildAndAssertStatus(Result.SUCCESS, p); + assertNull(p.getBuildByNumber(1)); + } + @Test @Issue("JENKINS-2417") public void stableVsUnstable() throws Exception { From 829be14884ec3af76ee9c28b5670856e2829476a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 12 Oct 2024 06:06:31 -0600 Subject: [PATCH 1075/1216] Fill in since annotations (#9849) Co-authored-by: timja <21194782+timja@users.noreply.github.com> --- core/src/main/java/hudson/model/ComputerSet.java | 2 +- .../main/java/hudson/model/listeners/SaveableListener.java | 4 ++-- core/src/main/java/hudson/security/AuthorizationStrategy.java | 2 +- core/src/main/java/jenkins/model/IComputer.java | 2 +- core/src/main/java/jenkins/model/IDisplayExecutor.java | 2 +- core/src/main/java/jenkins/model/IExecutor.java | 2 +- .../main/java/jenkins/model/ModelObjectWithContextMenu.java | 4 ++-- core/src/main/java/jenkins/model/queue/ITask.java | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/core/src/main/java/hudson/model/ComputerSet.java b/core/src/main/java/hudson/model/ComputerSet.java index f8e4905b0904..fcc0aa4e41e7 100644 --- a/core/src/main/java/hudson/model/ComputerSet.java +++ b/core/src/main/java/hudson/model/ComputerSet.java @@ -118,7 +118,7 @@ public static List get_monitors() { * @deprecated Use {@link #getComputers()} instead. * @return All {@link Computer} instances managed by this set. */ - @Deprecated(since = "TODO") + @Deprecated(since = "2.480") public Computer[] get_all() { return getComputers().stream().filter(Computer.class::isInstance).toArray(Computer[]::new); } diff --git a/core/src/main/java/hudson/model/listeners/SaveableListener.java b/core/src/main/java/hudson/model/listeners/SaveableListener.java index 02747877e76f..14877d080bf5 100644 --- a/core/src/main/java/hudson/model/listeners/SaveableListener.java +++ b/core/src/main/java/hudson/model/listeners/SaveableListener.java @@ -60,7 +60,7 @@ public void onChange(Saveable o, XmlFile file) {} * The saveable object. * @param file * The {@link XmlFile} for this saveable object. - * @since TODO + * @since 2.480 */ public void onDeleted(Saveable o, XmlFile file) {} @@ -92,7 +92,7 @@ public static void fireOnChange(Saveable o, XmlFile file) { /** * Fires the {@link #onDeleted} event. - * @since TODO + * @since 2.480 */ public static void fireOnDeleted(Saveable o, XmlFile file) { Listeners.notify(SaveableListener.class, false, l -> l.onDeleted(o, file)); diff --git a/core/src/main/java/hudson/security/AuthorizationStrategy.java b/core/src/main/java/hudson/security/AuthorizationStrategy.java index 08fa10fe9897..5ca218f6a8fd 100644 --- a/core/src/main/java/hudson/security/AuthorizationStrategy.java +++ b/core/src/main/java/hudson/security/AuthorizationStrategy.java @@ -162,7 +162,7 @@ public abstract class AuthorizationStrategy extends AbstractDescribableImpl Date: Sat, 12 Oct 2024 08:06:47 -0400 Subject: [PATCH 1076/1216] Correctly iterate `IComputer`s from `ComputerSet/index.jelly` (#9852) --- core/src/main/resources/hudson/model/ComputerSet/index.jelly | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/resources/hudson/model/ComputerSet/index.jelly b/core/src/main/resources/hudson/model/ComputerSet/index.jelly index 1b3c9aa1ea02..c96346ac4949 100644 --- a/core/src/main/resources/hudson/model/ComputerSet/index.jelly +++ b/core/src/main/resources/hudson/model/ComputerSet/index.jelly @@ -73,7 +73,7 @@ THE SOFTWARE. - +
    From 4622a85d170b2a5a3b681ba0a6f7dcce6a9195b1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 12 Oct 2024 06:07:46 -0600 Subject: [PATCH 1077/1216] Update dependency globals to v15.11.0 (#9856) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 6e01d39f94bf..bee799d33b55 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "eslint": "9.12.0", "eslint-config-prettier": "9.1.0", "eslint-formatter-checkstyle": "8.40.0", - "globals": "15.10.0", + "globals": "15.11.0", "handlebars-loader": "1.7.3", "mini-css-extract-plugin": "2.9.1", "postcss": "8.4.47", diff --git a/yarn.lock b/yarn.lock index 1c9ced4c8b74..c2f3678b1cc0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3999,10 +3999,10 @@ __metadata: languageName: node linkType: hard -"globals@npm:15.10.0": - version: 15.10.0 - resolution: "globals@npm:15.10.0" - checksum: 10c0/fef8f320e88f01f1492fef1b04b056908e1f6726eeaffe3bca03247237300c2d86e71585ee641b62ba71460a6eaff0d6ca7fca284e61bd1b3f833c7ad68b160a +"globals@npm:15.11.0": + version: 15.11.0 + resolution: "globals@npm:15.11.0" + checksum: 10c0/861e39bb6bd9bd1b9f355c25c962e5eb4b3f0e1567cf60fa6c06e8c502b0ec8706b1cce055d69d84d0b7b8e028bec5418cf629a54e7047e116538d1c1c1a375c languageName: node linkType: hard @@ -4418,7 +4418,7 @@ __metadata: eslint: "npm:9.12.0" eslint-config-prettier: "npm:9.1.0" eslint-formatter-checkstyle: "npm:8.40.0" - globals: "npm:15.10.0" + globals: "npm:15.11.0" handlebars: "npm:4.7.8" handlebars-loader: "npm:1.7.3" hotkeys-js: "npm:3.12.2" From d0d0cc88c765a25cee7e5214582b9db1b2253949 Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Sat, 12 Oct 2024 08:59:27 -0700 Subject: [PATCH 1078/1216] Winstone 8.2: Upgrade Jetty from 12.0.13 to Jetty 12.0.14 (#9841) --- pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 0ae24f547d80..1a472b3fd02a 100644 --- a/pom.xml +++ b/pom.xml @@ -97,7 +97,7 @@ THE SOFTWARE. 1.30 false - 8.1 + 8.2 20.18.0 diff --git a/war/pom.xml b/war/pom.xml index 6511cded90fc..770d20d1047c 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -645,7 +645,7 @@ THE SOFTWARE. org.eclipse.jetty.ee9 jetty-ee9-maven-plugin - 12.0.13 + 12.0.14 org.jenkins-ci.plugins matrix-project - 839.vff91cd7e3a_b_2 + 840.v812f627cb_578 hpi From fbad19eecfe271bfa58f62e9374c4ea52228884c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 12 Oct 2024 15:59:06 -0700 Subject: [PATCH 1081/1216] Update dependency org.jenkins-ci.plugins:mailer to v489 (#9860) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index be6d2c5175b6..c36a43f5b255 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -236,7 +236,7 @@ THE SOFTWARE. org.jenkins-ci.plugins mailer - 488.v0c9639c1a_eb_3 + 489.vd4b_25144138f test diff --git a/war/pom.xml b/war/pom.xml index 98da6bb33c6a..27fd0307aead 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -279,7 +279,7 @@ THE SOFTWARE. org.jenkins-ci.plugins mailer - 488.v0c9639c1a_eb_3 + 489.vd4b_25144138f hpi From 2cbbfe784e5e9933c81553faa9d57820b9de240c Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Sun, 13 Oct 2024 03:34:59 -0700 Subject: [PATCH 1082/1216] Add tests for empty directory in tar and zip archives (#9809) --- .../java/hudson/util/io/TarArchiverTest.java | 30 ++++++++++++++++++ .../java/hudson/util/io/ZipArchiverTest.java | 31 +++++++++++++++++++ 2 files changed, 61 insertions(+) diff --git a/core/src/test/java/hudson/util/io/TarArchiverTest.java b/core/src/test/java/hudson/util/io/TarArchiverTest.java index c0f41981c27f..2d7d9b5524cd 100644 --- a/core/src/test/java/hudson/util/io/TarArchiverTest.java +++ b/core/src/test/java/hudson/util/io/TarArchiverTest.java @@ -36,9 +36,17 @@ import hudson.util.StreamTaskListener; import java.io.File; import java.io.IOException; +import java.io.InputStream; import java.io.OutputStream; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; +import java.nio.file.Path; import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; +import org.apache.tools.tar.TarEntry; +import org.apache.tools.tar.TarInputStream; +import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; @@ -121,6 +129,28 @@ private static void run(FilePath dir, String... cmds) throws InterruptedExceptio } } + @Ignore("TODO fails to add empty directories to archive") + @Issue("JENKINS-73837") + @Test + public void emptyDirectory() throws Exception { + Path tar = tmp.newFile("test.tar").toPath(); + Path root = tmp.newFolder().toPath(); + Files.createDirectory(root.resolve("foo")); + Files.createDirectory(root.resolve("bar")); + Files.writeString(root.resolve("bar/file.txt"), "foobar", StandardCharsets.UTF_8); + try (OutputStream out = Files.newOutputStream(tar)) { + new FilePath(root.toFile()).tar(out, "**"); + } + Set names = new HashSet<>(); + try (InputStream is = Files.newInputStream(tar); + TarInputStream tis = new TarInputStream(is, StandardCharsets.UTF_8.name())) { + TarEntry te; + while ((te = tis.getNextEntry()) != null) { + names.add(te.getName()); + } + } + assertEquals(Set.of("foo/", "bar/", "bar/file.txt"), names); + } /** * Test backing up an open file diff --git a/core/src/test/java/hudson/util/io/ZipArchiverTest.java b/core/src/test/java/hudson/util/io/ZipArchiverTest.java index 2daea14a2a17..a54fad193ecf 100644 --- a/core/src/test/java/hudson/util/io/ZipArchiverTest.java +++ b/core/src/test/java/hudson/util/io/ZipArchiverTest.java @@ -2,13 +2,21 @@ import static org.junit.Assert.assertEquals; +import hudson.FilePath; import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; import java.io.RandomAccessFile; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; +import java.util.HashSet; +import java.util.Set; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; +import java.util.zip.ZipInputStream; import org.junit.Assume; +import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; @@ -72,4 +80,27 @@ public void huge64bitFile() throws IOException { assertEquals(length, zipEntry.getSize()); } } + + @Ignore("TODO fails to add empty directories to archive") + @Issue("JENKINS-49296") + @Test + public void emptyDirectory() throws Exception { + Path zip = tmp.newFile("test.zip").toPath(); + Path root = tmp.newFolder().toPath(); + Files.createDirectory(root.resolve("foo")); + Files.createDirectory(root.resolve("bar")); + Files.writeString(root.resolve("bar/file.txt"), "foobar", StandardCharsets.UTF_8); + try (OutputStream out = Files.newOutputStream(zip)) { + new FilePath(root.toFile()).zip(out, "**"); + } + Set names = new HashSet<>(); + try (InputStream is = Files.newInputStream(zip); + ZipInputStream zis = new ZipInputStream(is, StandardCharsets.UTF_8)) { + ZipEntry ze; + while ((ze = zis.getNextEntry()) != null) { + names.add(ze.getName()); + } + } + assertEquals(Set.of("foo/", "bar/", "bar/file.txt"), names); + } } From 7b8de1eed66e5db3136a9451d04a729ab888b340 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 13 Oct 2024 22:29:34 +0100 Subject: [PATCH 1083/1216] Update dependency org.jenkins-ci.plugins:display-url-api to v2.209.v582ed814ff2f (#9859) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index c36a43f5b255..6bf29cc3138d 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -106,7 +106,7 @@ THE SOFTWARE. org.jenkins-ci.plugins display-url-api - 2.204.vf6fddd8a_8b_e9 + 2.209.v582ed814ff2f diff --git a/war/pom.xml b/war/pom.xml index 27fd0307aead..b5cb11d590e5 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -272,7 +272,7 @@ THE SOFTWARE. org.jenkins-ci.plugins display-url-api - 2.204.vf6fddd8a_8b_e9 + 2.209.v582ed814ff2f hpi From b760de102d3ea855d5da11a8e32cb9f8275ce9b5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 13 Oct 2024 22:29:41 +0100 Subject: [PATCH 1084/1216] Update dependency postcss-preset-env to v10.0.7 (#9864) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 392 ++++++++++++++++++++++++++------------------------- 2 files changed, 202 insertions(+), 192 deletions(-) diff --git a/package.json b/package.json index 1e9ae7d9161e..227a2af99afc 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "mini-css-extract-plugin": "2.9.1", "postcss": "8.4.47", "postcss-loader": "8.1.1", - "postcss-preset-env": "10.0.6", + "postcss-preset-env": "10.0.7", "postcss-scss": "4.0.9", "prettier": "3.3.3", "sass": "1.79.4", diff --git a/yarn.lock b/yarn.lock index c2f3678b1cc0..c6411d260d5e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1340,13 +1340,13 @@ __metadata: languageName: node linkType: hard -"@csstools/cascade-layer-name-parser@npm:^2.0.1": - version: 2.0.1 - resolution: "@csstools/cascade-layer-name-parser@npm:2.0.1" +"@csstools/cascade-layer-name-parser@npm:^2.0.2": + version: 2.0.2 + resolution: "@csstools/cascade-layer-name-parser@npm:2.0.2" peerDependencies: - "@csstools/css-parser-algorithms": ^3.0.1 - "@csstools/css-tokenizer": ^3.0.1 - checksum: 10c0/e1f9030285d1a16ca0424018289e5288e58dee2d6f6cc392e27d9e8eca0deeea4ced9b749eef09a8322746cb15b6304bc7e2d04bb9dc7405c29b3717ec80e736 + "@csstools/css-parser-algorithms": ^3.0.2 + "@csstools/css-tokenizer": ^3.0.2 + checksum: 10c0/2cc840445328400bb3e1e4186e6081e6519a23d9abde36a16c95892b6ad75155b3af3410d79fdda1c53a068384f970cabff4b5f5ba6867578168cbd3419016c8 languageName: node linkType: hard @@ -1357,42 +1357,42 @@ __metadata: languageName: node linkType: hard -"@csstools/css-calc@npm:^2.0.1": - version: 2.0.1 - resolution: "@csstools/css-calc@npm:2.0.1" +"@csstools/css-calc@npm:^2.0.2": + version: 2.0.2 + resolution: "@csstools/css-calc@npm:2.0.2" peerDependencies: - "@csstools/css-parser-algorithms": ^3.0.1 - "@csstools/css-tokenizer": ^3.0.1 - checksum: 10c0/84c0ba3dac51466c9ac22c3540360f6058cf351a3676d71d4412584b165a91abc7c69a4ddf5a5dacc6e6082806d2317cf50ddbc0a0562275b2aedaee41cb87a9 + "@csstools/css-parser-algorithms": ^3.0.2 + "@csstools/css-tokenizer": ^3.0.2 + checksum: 10c0/b36e655b4abc8ea39b300725e33cd43b1875d759dd60bee8155bf7841065615a7f24cf53199382e30aa10bb137f64021043e4af7e11b7199b674a6e6cf3ccd01 languageName: node linkType: hard -"@csstools/css-color-parser@npm:^3.0.2": - version: 3.0.2 - resolution: "@csstools/css-color-parser@npm:3.0.2" +"@csstools/css-color-parser@npm:^3.0.3": + version: 3.0.3 + resolution: "@csstools/css-color-parser@npm:3.0.3" dependencies: "@csstools/color-helpers": "npm:^5.0.1" - "@csstools/css-calc": "npm:^2.0.1" + "@csstools/css-calc": "npm:^2.0.2" peerDependencies: - "@csstools/css-parser-algorithms": ^3.0.1 - "@csstools/css-tokenizer": ^3.0.1 - checksum: 10c0/31f42cc22426c937f5c6999889f72b40aec8504189a6badf3319552f27a5af73dd5f46be9ebc54eb87e526468eb2546ffbd60a6879fe599efa6c98e51d6cfa3d + "@csstools/css-parser-algorithms": ^3.0.2 + "@csstools/css-tokenizer": ^3.0.2 + checksum: 10c0/02367ffc222254132c47f9cbc856f65fe0b81ee4a5e7381251b95c4064138b5ed99a5e5a79c0c8689f9e75e3d900f94773258a161a97f467c3f0420838c10e04 languageName: node linkType: hard -"@csstools/css-parser-algorithms@npm:^3.0.1": - version: 3.0.1 - resolution: "@csstools/css-parser-algorithms@npm:3.0.1" +"@csstools/css-parser-algorithms@npm:^3.0.1, @csstools/css-parser-algorithms@npm:^3.0.2": + version: 3.0.2 + resolution: "@csstools/css-parser-algorithms@npm:3.0.2" peerDependencies: - "@csstools/css-tokenizer": ^3.0.1 - checksum: 10c0/064c6d519197b5af43bbf5efe8f4cdbd361b006113aa82160d637e925b50c643a52d33d512ca01c63042d952d723a2a10798231a714668356b76668fb11294e3 + "@csstools/css-tokenizer": ^3.0.2 + checksum: 10c0/246afbf518ee9eaa24ed7f083360eb66884f1172fd4f8c663bff8c6099de2a8abd1e2a31d5b6fe42e010277d238469d780cff62bc7fdc6a52e7a90626b8924dc languageName: node linkType: hard -"@csstools/css-tokenizer@npm:^3.0.1": - version: 3.0.1 - resolution: "@csstools/css-tokenizer@npm:3.0.1" - checksum: 10c0/c9ed4373e5731b5375ea9791590081019c04e95f08b46b272977e5e7b8c3d560affc62e82263cb8def1df1e57f0673140e7e16a14a5e7be04e6a234be088d1d3 +"@csstools/css-tokenizer@npm:^3.0.1, @csstools/css-tokenizer@npm:^3.0.2": + version: 3.0.2 + resolution: "@csstools/css-tokenizer@npm:3.0.2" + checksum: 10c0/a74e5829420ed35982fd33be272c2a19cb2380179d357abe750aa848be6d6699d0437008f47a57eb7c6ff64a34b0c8f91a97dd63dbddd08249b7cf7983767e5e languageName: node linkType: hard @@ -1406,6 +1406,16 @@ __metadata: languageName: node linkType: hard +"@csstools/media-query-list-parser@npm:^4.0.0": + version: 4.0.0 + resolution: "@csstools/media-query-list-parser@npm:4.0.0" + peerDependencies: + "@csstools/css-parser-algorithms": ^3.0.2 + "@csstools/css-tokenizer": ^3.0.2 + checksum: 10c0/416417bcfd84c18a2df8dc77f31c87830e151dc20530fe7f0d8f13a0848b1a9090858abdf7792d82bf2edb41ddedb7b57b34eb78b68b5c10755ae02c019e496a + languageName: node + linkType: hard + "@csstools/postcss-cascade-layers@npm:^5.0.0": version: 5.0.0 resolution: "@csstools/postcss-cascade-layers@npm:5.0.0" @@ -1418,60 +1428,60 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-color-function@npm:^4.0.2": - version: 4.0.2 - resolution: "@csstools/postcss-color-function@npm:4.0.2" +"@csstools/postcss-color-function@npm:^4.0.3": + version: 4.0.3 + resolution: "@csstools/postcss-color-function@npm:4.0.3" dependencies: - "@csstools/css-color-parser": "npm:^3.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/css-color-parser": "npm:^3.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/c987ccc7ab326668895396d3fe69c05087cf6e245be6f70e8c33da0cdeb56f8ac3d117cfad984191ec57be9691ab56d427aaa28c61c4a7446521972993dd5039 + checksum: 10c0/c994660ca0e2652755d9ad181c8cb46a07220c972086c97c843fa9bacf690be10c642770f898aeec4acc47c2b718dfc7372107285a678361f34d84d9e9c11e0c languageName: node linkType: hard -"@csstools/postcss-color-mix-function@npm:^3.0.2": - version: 3.0.2 - resolution: "@csstools/postcss-color-mix-function@npm:3.0.2" +"@csstools/postcss-color-mix-function@npm:^3.0.3": + version: 3.0.3 + resolution: "@csstools/postcss-color-mix-function@npm:3.0.3" dependencies: - "@csstools/css-color-parser": "npm:^3.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/css-color-parser": "npm:^3.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/cfdc641f504f9d02b9a7b53d6bd933d4e767ecaee5f3d2df45d897f69b8a38b5b79b538d307b16fb56dcb7c19dc7e107518c356772e89771e28e04fd846d9035 + checksum: 10c0/4ba358eb9030fc485bfe2922d897eeb712725762cc399eaba60ba665c84dc3e56a4d5a52dfb320093c0b217d32fedb9b5197fa45738cade53d9afcbefdadf04f languageName: node linkType: hard -"@csstools/postcss-content-alt-text@npm:^2.0.1": - version: 2.0.1 - resolution: "@csstools/postcss-content-alt-text@npm:2.0.1" +"@csstools/postcss-content-alt-text@npm:^2.0.2": + version: 2.0.2 + resolution: "@csstools/postcss-content-alt-text@npm:2.0.2" dependencies: - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/693e4cfa9a30a9c384120bd24846a7cd5ba1e1ebf975eb81b0e0131a21ac28a0301c7dcfa13706bc7d8b5343536fb43a46de636c3257d0fd05041c7255366e87 + checksum: 10c0/e52d40f6567b9b23b32a6c40f9b2a74d57f99a9921b4cae015f51f72453474236c760bb13120682f8815698a615e0ad7bed22314c29dca89c34b5480d83a7a6d languageName: node linkType: hard -"@csstools/postcss-exponential-functions@npm:^2.0.1": - version: 2.0.1 - resolution: "@csstools/postcss-exponential-functions@npm:2.0.1" +"@csstools/postcss-exponential-functions@npm:^2.0.2": + version: 2.0.2 + resolution: "@csstools/postcss-exponential-functions@npm:2.0.2" dependencies: - "@csstools/css-calc": "npm:^2.0.1" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/css-calc": "npm:^2.0.2" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" peerDependencies: postcss: ^8.4 - checksum: 10c0/ddcaedfa48cc0cf93611c8d2ed5a75d56c1d196a97015db644b45881adabb47f3255242acaef6ea869a1e5ba66328725d254bf6d29eb5e988cde8b040bc5f55d + checksum: 10c0/034ff89089872f63a6b00bda670c5ff11361babd221ed3e441dde969a718059e5d44ab0ed331868f137bb205331b808ecbcc4cb641d5c945238ebca28aa3ed59 languageName: node linkType: hard @@ -1487,46 +1497,46 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-gamut-mapping@npm:^2.0.2": - version: 2.0.2 - resolution: "@csstools/postcss-gamut-mapping@npm:2.0.2" +"@csstools/postcss-gamut-mapping@npm:^2.0.3": + version: 2.0.3 + resolution: "@csstools/postcss-gamut-mapping@npm:2.0.3" dependencies: - "@csstools/css-color-parser": "npm:^3.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/css-color-parser": "npm:^3.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" peerDependencies: postcss: ^8.4 - checksum: 10c0/8b6504f81c5036e3c2a9f9516c371f48a283112469b746546c8c7f6f0da2467c915d4dac6dfe8bb05d7dab3a7503911391eb9e666cb7632e09a032e801c029f5 + checksum: 10c0/21f5708f63e9c3b7603f8b72b5f288e0a021e9710a6abf4aaa713ff4d04bae057d1861e1f28d7670ea39ba463ac04f1507876d4a11178934e7cc7a1c6a780084 languageName: node linkType: hard -"@csstools/postcss-gradients-interpolation-method@npm:^5.0.2": - version: 5.0.2 - resolution: "@csstools/postcss-gradients-interpolation-method@npm:5.0.2" +"@csstools/postcss-gradients-interpolation-method@npm:^5.0.3": + version: 5.0.3 + resolution: "@csstools/postcss-gradients-interpolation-method@npm:5.0.3" dependencies: - "@csstools/css-color-parser": "npm:^3.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/css-color-parser": "npm:^3.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/4fa27437ad9861b1457c28228f2503c17bcc2f77dcb38da1314a4a5d38fd010e7e5d11b5f9d69e0a2cb2999bbfeca1e99ce2f59422bda5b382658dcb03f7326e + checksum: 10c0/062d27148438309c940a1973bfc7d42a06caa9397bf2382c7a61979f5be3d6f3fae1bc8ddf94d2dd8e6c807e0530a9e76179510266aaddc439677bf79447a765 languageName: node linkType: hard -"@csstools/postcss-hwb-function@npm:^4.0.2": - version: 4.0.2 - resolution: "@csstools/postcss-hwb-function@npm:4.0.2" +"@csstools/postcss-hwb-function@npm:^4.0.3": + version: 4.0.3 + resolution: "@csstools/postcss-hwb-function@npm:4.0.3" dependencies: - "@csstools/css-color-parser": "npm:^3.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/css-color-parser": "npm:^3.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/46dc9596e37830de4c38f70764d6da9f2fc7bc339217b4291eced75daa8998c4e05fb743c271701e44818df4ac111c285019b7bb3a728e8b61d86899bbeb74eb + checksum: 10c0/faf2bfbafeec765391e37c7a5cbc7b4647d9ab1ffa51e922c7dfffa545c3d436d15604dfdfb9d7684e760042e62bb42e0243dd4ebd8c3c14694a9f7be4e57b30 languageName: node linkType: hard @@ -1564,17 +1574,17 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-light-dark-function@npm:^2.0.4": - version: 2.0.4 - resolution: "@csstools/postcss-light-dark-function@npm:2.0.4" +"@csstools/postcss-light-dark-function@npm:^2.0.5": + version: 2.0.5 + resolution: "@csstools/postcss-light-dark-function@npm:2.0.5" dependencies: - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/0176422ad9747953964b1ceff002df1ecb1952ebc481db6192070d68777135b582ea6fd32ae819b9c64c96cb9170bd6907c647c85b48daa4984b7ed3d7f9bccb + checksum: 10c0/80635ee312d2a8f42aa5ce6792f1dc4a71199c384c66a3270d37e998d96db55beaa6836d689cda3b7e4828227960582fae04659ba5e4e0f64fd4543cbf15c6ab languageName: node linkType: hard @@ -1616,42 +1626,42 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-logical-viewport-units@npm:^3.0.1": - version: 3.0.1 - resolution: "@csstools/postcss-logical-viewport-units@npm:3.0.1" +"@csstools/postcss-logical-viewport-units@npm:^3.0.2": + version: 3.0.2 + resolution: "@csstools/postcss-logical-viewport-units@npm:3.0.2" dependencies: - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/f54f91ec4d308562371576e82131c3cc1ff461a951c9a38f0b42b783c26f37a93cc846fcd025d3c4a8437b55a4fff1192ebfac8ccf84abb6478b2c515d232552 + checksum: 10c0/31f525e774bc053f545a159eb53bb21465ea2930118e87c40207ad90fa97d3151e6de83efd02f84803fb0e93ed4a4b42a3904b734423410e73ac4c6ce9666ab4 languageName: node linkType: hard -"@csstools/postcss-media-minmax@npm:^2.0.1": - version: 2.0.1 - resolution: "@csstools/postcss-media-minmax@npm:2.0.1" +"@csstools/postcss-media-minmax@npm:^2.0.2": + version: 2.0.2 + resolution: "@csstools/postcss-media-minmax@npm:2.0.2" dependencies: - "@csstools/css-calc": "npm:^2.0.1" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" - "@csstools/media-query-list-parser": "npm:^3.0.1" + "@csstools/css-calc": "npm:^2.0.2" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" + "@csstools/media-query-list-parser": "npm:^4.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/23c1fb0c3ed8bf82f3223f161d0d65ba62045b917bc19624581f64aaa5d678485d22c23af2591a3f634ba02030ccb419c2b30209aa22f9fd2baa1a6474af810a + checksum: 10c0/83cf10742884fca3baa7ae26e2cb34123ce5a022622390566c139b4587ea8583fab00acbb85545786b36398e2201d2a94301e0fae805e55f375f1b5c38f67ce8 languageName: node linkType: hard -"@csstools/postcss-media-queries-aspect-ratio-number-values@npm:^3.0.1": - version: 3.0.1 - resolution: "@csstools/postcss-media-queries-aspect-ratio-number-values@npm:3.0.1" +"@csstools/postcss-media-queries-aspect-ratio-number-values@npm:^3.0.2": + version: 3.0.2 + resolution: "@csstools/postcss-media-queries-aspect-ratio-number-values@npm:3.0.2" dependencies: - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" - "@csstools/media-query-list-parser": "npm:^3.0.1" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" + "@csstools/media-query-list-parser": "npm:^4.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/e491cb149fb4fff85b2f03191511e43654ae00716e3c1ea9f1dc22ec4e7042c35f034d372082a69d3621c86cafbe46e8f419872fa36f4a534f145f584d655768 + checksum: 10c0/3ac4073d2e958bfb24ae45f673070dd805f0fcf07bc8d00a9a98f596d1096e7be282c8d8e87df3abde90f33fcbe2c7705e972b8c1a58e43ec44729f470b76096 languageName: node linkType: hard @@ -1678,18 +1688,18 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-oklab-function@npm:^4.0.2": - version: 4.0.2 - resolution: "@csstools/postcss-oklab-function@npm:4.0.2" +"@csstools/postcss-oklab-function@npm:^4.0.3": + version: 4.0.3 + resolution: "@csstools/postcss-oklab-function@npm:4.0.3" dependencies: - "@csstools/css-color-parser": "npm:^3.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/css-color-parser": "npm:^3.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/3209a7cec6d3577544a7ef41f2d5cca25f77891d4ec0d7f39d32f9a79a6c9a9b0ee6b54b2937a2d995548ad11c39966b07d4b9f58e907ffbe1a4b454f2d277f3 + checksum: 10c0/650bcb4f664308972588a8f789f806d63c4069e2e008cfc3b5c80bf9df992c62972dce279b8f434c7f78823e97095942ee4f0e37bc549258887213e72acb7ef8 languageName: node linkType: hard @@ -1704,18 +1714,18 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-relative-color-syntax@npm:^3.0.2": - version: 3.0.2 - resolution: "@csstools/postcss-relative-color-syntax@npm:3.0.2" +"@csstools/postcss-relative-color-syntax@npm:^3.0.3": + version: 3.0.3 + resolution: "@csstools/postcss-relative-color-syntax@npm:3.0.3" dependencies: - "@csstools/css-color-parser": "npm:^3.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/css-color-parser": "npm:^3.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/34a8c999e08c6e7833484ee2fb91e7fcc25235d6c361712fed581e44a5a29f1ceb95415b6f4260de53809ac13f5da5415d1905c2971477cf5d45e5196081c663 + checksum: 10c0/c241fe6b725d775f6d2085be1dff3868d189b176fa91ab1eb1133e30e30c8151bded4e50d17a845edd0bdd0a7adf9e8883cb2634fea3394872591fe9ad2a7e86 languageName: node linkType: hard @@ -1730,16 +1740,16 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-stepped-value-functions@npm:^4.0.1": - version: 4.0.1 - resolution: "@csstools/postcss-stepped-value-functions@npm:4.0.1" +"@csstools/postcss-stepped-value-functions@npm:^4.0.2": + version: 4.0.2 + resolution: "@csstools/postcss-stepped-value-functions@npm:4.0.2" dependencies: - "@csstools/css-calc": "npm:^2.0.1" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/css-calc": "npm:^2.0.2" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" peerDependencies: postcss: ^8.4 - checksum: 10c0/7e65969b124fce603675ca17c2ffa2bb456677866e54bc9fbdc4da0945be1593fde2abb0730d3d03190776ad2022b394a1f9d4834c5b1f4c7ec497929fd35f8f + checksum: 10c0/444a27d725bc7a8e1554469e8ac69e248ff525b728fbe058523b0f1aefcff80ca707f543d21fead0a22d51603b1669190fb01f0f2dcd599a01768a37e0d62bc3 languageName: node linkType: hard @@ -1755,16 +1765,16 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-trigonometric-functions@npm:^4.0.1": - version: 4.0.1 - resolution: "@csstools/postcss-trigonometric-functions@npm:4.0.1" +"@csstools/postcss-trigonometric-functions@npm:^4.0.2": + version: 4.0.2 + resolution: "@csstools/postcss-trigonometric-functions@npm:4.0.2" dependencies: - "@csstools/css-calc": "npm:^2.0.1" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/css-calc": "npm:^2.0.2" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" peerDependencies: postcss: ^8.4 - checksum: 10c0/59e017ebb9f4f8f027e134024e3322b5e202cc96073e0bb0d45733a829c8eadc7f4f7ce57ce8360a748a677595af9ea95da1779684699b48b911b73b4017ac8b + checksum: 10c0/eaecb2ea891162e4fcbbccf4f660c99e9e59f21937b70fe6aec3b51441eff2a12c1a2dc13fff426722629a7929919fd866311eaa68d74ee9d1f5387a23502fe2 languageName: node linkType: hard @@ -4427,7 +4437,7 @@ __metadata: mini-css-extract-plugin: "npm:2.9.1" postcss: "npm:8.4.47" postcss-loader: "npm:8.1.1" - postcss-preset-env: "npm:10.0.6" + postcss-preset-env: "npm:10.0.7" postcss-scss: "npm:4.0.9" prettier: "npm:3.3.3" sass: "npm:1.79.4" @@ -5365,18 +5375,18 @@ __metadata: languageName: node linkType: hard -"postcss-color-functional-notation@npm:^7.0.2": - version: 7.0.2 - resolution: "postcss-color-functional-notation@npm:7.0.2" +"postcss-color-functional-notation@npm:^7.0.3": + version: 7.0.3 + resolution: "postcss-color-functional-notation@npm:7.0.3" dependencies: - "@csstools/css-color-parser": "npm:^3.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/css-color-parser": "npm:^3.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/e89c0bff94558b0c978ac36f7e02f7f516291f90fd43169d39c63ad2bb0415e3b1c4b3c2469280d578727e850fdf15a557230cb28275f3f0676f0f73187f2867 + checksum: 10c0/5e04c81002512c960784043c096bc91ebc76b8fddb9259a2418b0e121eb65042944cc0f78946f6b7e5774ff1fee087849019655e4848af1f88879e3ab9ff7c17 languageName: node linkType: hard @@ -5430,46 +5440,46 @@ __metadata: languageName: node linkType: hard -"postcss-custom-media@npm:^11.0.2": - version: 11.0.2 - resolution: "postcss-custom-media@npm:11.0.2" +"postcss-custom-media@npm:^11.0.3": + version: 11.0.3 + resolution: "postcss-custom-media@npm:11.0.3" dependencies: - "@csstools/cascade-layer-name-parser": "npm:^2.0.1" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" - "@csstools/media-query-list-parser": "npm:^3.0.1" + "@csstools/cascade-layer-name-parser": "npm:^2.0.2" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" + "@csstools/media-query-list-parser": "npm:^4.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/7bec2b1e0b5d786c33c5715b611ffc8b9737252ee6bf77ca59255ac16f91ce614406923f43250e5c88b04f1bb050f155dc5ed4d9350dbd704c45fbd72e5a9a04 + checksum: 10c0/bd3f0cf17d7422385d26afed510dc2acebb1d8c25fce13e2bbee1c49cdc7fe95ebe7f50b89ef0a88ebdd5f6826e89d99e26b905881ceff788df655670dba93d8 languageName: node linkType: hard -"postcss-custom-properties@npm:^14.0.1": - version: 14.0.1 - resolution: "postcss-custom-properties@npm:14.0.1" +"postcss-custom-properties@npm:^14.0.2": + version: 14.0.2 + resolution: "postcss-custom-properties@npm:14.0.2" dependencies: - "@csstools/cascade-layer-name-parser": "npm:^2.0.1" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/cascade-layer-name-parser": "npm:^2.0.2" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/utilities": "npm:^2.0.0" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/12180a7f4a4fe2d528387346a1810b82ed870081756dcf6be226c839716ab3f6f4d6ca4c7208a07d7d84bf2c986beef6473e29964e7c2572066fca5d3b000ed5 + checksum: 10c0/ea2e0cb60c558bb1afb4e601dcc64a38e1b28e5df3e47b83b858fc12d909d0e3453013e6b368fc05a7db7098ffcdc702a30a92f1a3c0ef67dfb97bf089021f1a languageName: node linkType: hard -"postcss-custom-selectors@npm:^8.0.1": - version: 8.0.1 - resolution: "postcss-custom-selectors@npm:8.0.1" +"postcss-custom-selectors@npm:^8.0.2": + version: 8.0.2 + resolution: "postcss-custom-selectors@npm:8.0.2" dependencies: - "@csstools/cascade-layer-name-parser": "npm:^2.0.1" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/cascade-layer-name-parser": "npm:^2.0.2" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" postcss-selector-parser: "npm:^6.1.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/b867233b3d68fbab90afca8a776eb74196ebc3fac8988175d95118a47993c793138fec6cc580272bb35d9bd31086acbdd33ff86da0cab83ef2f08bfc1c23ecd6 + checksum: 10c0/81673ffb0874f63c0f5e14315a5808259ec80ae8452aaf10d28112d30a9aaabbf61d13edb02f8be2965f44b943968c7eda051a1693da436ef157e77fcff0d752 languageName: node linkType: hard @@ -5587,18 +5597,18 @@ __metadata: languageName: node linkType: hard -"postcss-lab-function@npm:^7.0.2": - version: 7.0.2 - resolution: "postcss-lab-function@npm:7.0.2" +"postcss-lab-function@npm:^7.0.3": + version: 7.0.3 + resolution: "postcss-lab-function@npm:7.0.3" dependencies: - "@csstools/css-color-parser": "npm:^3.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/css-color-parser": "npm:^3.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/6b2be7e762b4ccb58ea9051723d390f6732ad78bb30bfef9499139cf5e2ac160c3de31b2b005fcc30e9fced4abe1685df6cb76c99d548896bae6746105ac8520 + checksum: 10c0/c50a73a9ed54b4194998c4627599d1f42074235f572edbbcdb0e00717f3ae2121dc8378d917792b281860c5650a617d923823da6f395515f610b5760d115354d languageName: node linkType: hard @@ -5915,39 +5925,39 @@ __metadata: languageName: node linkType: hard -"postcss-preset-env@npm:10.0.6": - version: 10.0.6 - resolution: "postcss-preset-env@npm:10.0.6" +"postcss-preset-env@npm:10.0.7": + version: 10.0.7 + resolution: "postcss-preset-env@npm:10.0.7" dependencies: "@csstools/postcss-cascade-layers": "npm:^5.0.0" - "@csstools/postcss-color-function": "npm:^4.0.2" - "@csstools/postcss-color-mix-function": "npm:^3.0.2" - "@csstools/postcss-content-alt-text": "npm:^2.0.1" - "@csstools/postcss-exponential-functions": "npm:^2.0.1" + "@csstools/postcss-color-function": "npm:^4.0.3" + "@csstools/postcss-color-mix-function": "npm:^3.0.3" + "@csstools/postcss-content-alt-text": "npm:^2.0.2" + "@csstools/postcss-exponential-functions": "npm:^2.0.2" "@csstools/postcss-font-format-keywords": "npm:^4.0.0" - "@csstools/postcss-gamut-mapping": "npm:^2.0.2" - "@csstools/postcss-gradients-interpolation-method": "npm:^5.0.2" - "@csstools/postcss-hwb-function": "npm:^4.0.2" + "@csstools/postcss-gamut-mapping": "npm:^2.0.3" + "@csstools/postcss-gradients-interpolation-method": "npm:^5.0.3" + "@csstools/postcss-hwb-function": "npm:^4.0.3" "@csstools/postcss-ic-unit": "npm:^4.0.0" "@csstools/postcss-initial": "npm:^2.0.0" "@csstools/postcss-is-pseudo-class": "npm:^5.0.0" - "@csstools/postcss-light-dark-function": "npm:^2.0.4" + "@csstools/postcss-light-dark-function": "npm:^2.0.5" "@csstools/postcss-logical-float-and-clear": "npm:^3.0.0" "@csstools/postcss-logical-overflow": "npm:^2.0.0" "@csstools/postcss-logical-overscroll-behavior": "npm:^2.0.0" "@csstools/postcss-logical-resize": "npm:^3.0.0" - "@csstools/postcss-logical-viewport-units": "npm:^3.0.1" - "@csstools/postcss-media-minmax": "npm:^2.0.1" - "@csstools/postcss-media-queries-aspect-ratio-number-values": "npm:^3.0.1" + "@csstools/postcss-logical-viewport-units": "npm:^3.0.2" + "@csstools/postcss-media-minmax": "npm:^2.0.2" + "@csstools/postcss-media-queries-aspect-ratio-number-values": "npm:^3.0.2" "@csstools/postcss-nested-calc": "npm:^4.0.0" "@csstools/postcss-normalize-display-values": "npm:^4.0.0" - "@csstools/postcss-oklab-function": "npm:^4.0.2" + "@csstools/postcss-oklab-function": "npm:^4.0.3" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" - "@csstools/postcss-relative-color-syntax": "npm:^3.0.2" + "@csstools/postcss-relative-color-syntax": "npm:^3.0.3" "@csstools/postcss-scope-pseudo-class": "npm:^4.0.0" - "@csstools/postcss-stepped-value-functions": "npm:^4.0.1" + "@csstools/postcss-stepped-value-functions": "npm:^4.0.2" "@csstools/postcss-text-decoration-shorthand": "npm:^4.0.1" - "@csstools/postcss-trigonometric-functions": "npm:^4.0.1" + "@csstools/postcss-trigonometric-functions": "npm:^4.0.2" "@csstools/postcss-unset-value": "npm:^4.0.0" autoprefixer: "npm:^10.4.19" browserslist: "npm:^4.23.1" @@ -5957,12 +5967,12 @@ __metadata: cssdb: "npm:^8.1.1" postcss-attribute-case-insensitive: "npm:^7.0.0" postcss-clamp: "npm:^4.1.0" - postcss-color-functional-notation: "npm:^7.0.2" + postcss-color-functional-notation: "npm:^7.0.3" postcss-color-hex-alpha: "npm:^10.0.0" postcss-color-rebeccapurple: "npm:^10.0.0" - postcss-custom-media: "npm:^11.0.2" - postcss-custom-properties: "npm:^14.0.1" - postcss-custom-selectors: "npm:^8.0.1" + postcss-custom-media: "npm:^11.0.3" + postcss-custom-properties: "npm:^14.0.2" + postcss-custom-selectors: "npm:^8.0.2" postcss-dir-pseudo-class: "npm:^9.0.0" postcss-double-position-gradients: "npm:^6.0.0" postcss-focus-visible: "npm:^10.0.0" @@ -5970,7 +5980,7 @@ __metadata: postcss-font-variant: "npm:^5.0.0" postcss-gap-properties: "npm:^6.0.0" postcss-image-set-function: "npm:^7.0.0" - postcss-lab-function: "npm:^7.0.2" + postcss-lab-function: "npm:^7.0.3" postcss-logical: "npm:^8.0.0" postcss-nesting: "npm:^13.0.0" postcss-opacity-percentage: "npm:^3.0.0" @@ -5982,7 +5992,7 @@ __metadata: postcss-selector-not: "npm:^8.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/01660acf3b9ddf4d612a31819e9a5de9fe5383e9eddd2c130180f66ae90c5a881eb408e73454fd50e1839eae71678d738bf72073de08f9013c183b0bd9950fe5 + checksum: 10c0/f789000e0504fd827e854bb0feb8b4c218d381314e4d863c5a36df925df412d0844c912952fe27892a320433640aeaff03ee94a3057b42011bf5d32b3963f333 languageName: node linkType: hard From 9e3a75a07701e875e871869452aa8afb4d160e11 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 13 Oct 2024 22:29:47 +0100 Subject: [PATCH 1085/1216] Update babel monorepo to v7.25.8 (#9863) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- yarn.lock | 366 ++++++++++++--------------------------------------- 2 files changed, 89 insertions(+), 281 deletions(-) diff --git a/package.json b/package.json index 227a2af99afc..0182b878c742 100644 --- a/package.json +++ b/package.json @@ -24,8 +24,8 @@ }, "devDependencies": { "@babel/cli": "7.25.7", - "@babel/core": "7.25.7", - "@babel/preset-env": "7.25.7", + "@babel/core": "7.25.8", + "@babel/preset-env": "7.25.8", "@eslint/js": "9.12.0", "babel-loader": "9.2.1", "clean-webpack-plugin": "4.0.0", diff --git a/yarn.lock b/yarn.lock index c6411d260d5e..e0ae45a3a4a4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -52,16 +52,16 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/compat-data@npm:7.25.7" - checksum: 10c0/e5cc915abdd18d021236474a96606b2d4a915c4fb620c1ad776b8a08d91111e788cb3b7e9bad43593d4e0bfa4f06894357bcb0984102de1861b9e7322b6bc9f8 +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.7, @babel/compat-data@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/compat-data@npm:7.25.8" + checksum: 10c0/8b81c17580e5fb4cbb6a3c52079f8c283fc59c0c6bd2fe14cfcf9c44b32d2eaab71b02c5633e2c679f5896f73f8ac4036ba2e67a4c806e8f428e4b11f526d7f4 languageName: node linkType: hard -"@babel/core@npm:7.25.7": - version: 7.25.7 - resolution: "@babel/core@npm:7.25.7" +"@babel/core@npm:7.25.8": + version: 7.25.8 + resolution: "@babel/core@npm:7.25.8" dependencies: "@ampproject/remapping": "npm:^2.2.0" "@babel/code-frame": "npm:^7.25.7" @@ -69,16 +69,16 @@ __metadata: "@babel/helper-compilation-targets": "npm:^7.25.7" "@babel/helper-module-transforms": "npm:^7.25.7" "@babel/helpers": "npm:^7.25.7" - "@babel/parser": "npm:^7.25.7" + "@babel/parser": "npm:^7.25.8" "@babel/template": "npm:^7.25.7" "@babel/traverse": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" + "@babel/types": "npm:^7.25.8" convert-source-map: "npm:^2.0.0" debug: "npm:^4.1.0" gensync: "npm:^1.0.0-beta.2" json5: "npm:^2.2.3" semver: "npm:^6.3.1" - checksum: 10c0/dad20af39624086afc3a0910bd97ae712c9ad0e9dda09fc5da93876e8ea1802b63ddd81c44f4aa8a9834db46de801eaab1ce9b81ab54b4fe907ae052c24de136 + checksum: 10c0/8411ea506e6f7c8a39ab5c1524b00589fa3b087edb47389708f7fe07170929192171734666e3ea10b95a951643a531a6d09eedfe071572c9ea28516646265086 languageName: node linkType: hard @@ -214,7 +214,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.25.7, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.25.7": version: 7.25.7 resolution: "@babel/helper-plugin-utils@npm:7.25.7" checksum: 10c0/241f8cf3c5b7700e91cab7cfe5b432a3c710ae3cd5bb96dc554da536a6d25f5b9f000cc0c0917501ceb4f76ba92599ee3beb25e10adaf96be59f8df89a842faf @@ -321,14 +321,14 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/parser@npm:7.25.7" +"@babel/parser@npm:^7.25.7, @babel/parser@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/parser@npm:7.25.8" dependencies: - "@babel/types": "npm:^7.25.7" + "@babel/types": "npm:^7.25.8" bin: parser: ./bin/babel-parser.js - checksum: 10c0/b771469bb6b636c18a8d642b9df3c73913c3860a979591e1a29a98659efd38b81d3e393047b5251fe382d4c82c681c12da9ce91c98d69316d2604d155a214bcf + checksum: 10c0/a1a13845b7e8dda4c970791814a4bbf60004969882f18f470e260ad822d2e1f8941948f851e9335895563610f240fa6c98481ce8019865e469502bbf21daafa4 languageName: node linkType: hard @@ -400,61 +400,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-async-generators@npm:^7.8.4": - version: 7.8.4 - resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/d13efb282838481348c71073b6be6245b35d4f2f964a8f71e4174f235009f929ef7613df25f8d2338e2d3e44bc4265a9f8638c6aaa136d7a61fe95985f9725c8 - languageName: node - linkType: hard - -"@babel/plugin-syntax-class-properties@npm:^7.12.13": - version: 7.12.13 - resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.12.13" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/95168fa186416195280b1264fb18afcdcdcea780b3515537b766cb90de6ce042d42dd6a204a39002f794ae5845b02afb0fd4861a3308a861204a55e68310a120 - languageName: node - linkType: hard - -"@babel/plugin-syntax-class-static-block@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-class-static-block@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.14.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/4464bf9115f4a2d02ce1454411baf9cfb665af1da53709c5c56953e5e2913745b0fcce82982a00463d6facbdd93445c691024e310b91431a1e2f024b158f6371 - languageName: node - linkType: hard - -"@babel/plugin-syntax-dynamic-import@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/9c50927bf71adf63f60c75370e2335879402648f468d0172bc912e303c6a3876927d8eb35807331b57f415392732ed05ab9b42c68ac30a936813ab549e0246c5 - languageName: node - linkType: hard - -"@babel/plugin-syntax-export-namespace-from@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-export-namespace-from@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.3" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/5100d658ba563829700cd8d001ddc09f4c0187b1a13de300d729c5b3e87503f75a6d6c99c1794182f7f1a9f546ee009df4f15a0ce36376e206ed0012fa7cdc24 - languageName: node - linkType: hard - "@babel/plugin-syntax-import-assertions@npm:^7.25.7": version: 7.25.7 resolution: "@babel/plugin-syntax-import-assertions@npm:7.25.7" @@ -477,116 +422,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-meta@npm:^7.10.4": - version: 7.10.4 - resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.10.4" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/0b08b5e4c3128523d8e346f8cfc86824f0da2697b1be12d71af50a31aff7a56ceb873ed28779121051475010c28d6146a6bfea8518b150b71eeb4e46190172ee - languageName: node - linkType: hard - -"@babel/plugin-syntax-json-strings@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/e98f31b2ec406c57757d115aac81d0336e8434101c224edd9a5c93cefa53faf63eacc69f3138960c8b25401315af03df37f68d316c151c4b933136716ed6906e - languageName: node - linkType: hard - -"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4": - version: 7.10.4 - resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.10.4" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/2594cfbe29411ad5bc2ad4058de7b2f6a8c5b86eda525a993959438615479e59c012c14aec979e538d60a584a1a799b60d1b8942c3b18468cb9d99b8fd34cd0b - languageName: node - linkType: hard - -"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/2024fbb1162899094cfc81152449b12bd0cc7053c6d4bda8ac2852545c87d0a851b1b72ed9560673cbf3ef6248257262c3c04aabf73117215c1b9cc7dd2542ce - languageName: node - linkType: hard - -"@babel/plugin-syntax-numeric-separator@npm:^7.10.4": - version: 7.10.4 - resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.10.4" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/c55a82b3113480942c6aa2fcbe976ff9caa74b7b1109ff4369641dfbc88d1da348aceb3c31b6ed311c84d1e7c479440b961906c735d0ab494f688bf2fd5b9bb9 - languageName: node - linkType: hard - -"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/ee1eab52ea6437e3101a0a7018b0da698545230015fc8ab129d292980ec6dff94d265e9e90070e8ae5fed42f08f1622c14c94552c77bcac784b37f503a82ff26 - languageName: node - linkType: hard - -"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/27e2493ab67a8ea6d693af1287f7e9acec206d1213ff107a928e85e173741e1d594196f99fec50e9dde404b09164f39dec5864c767212154ffe1caa6af0bc5af - languageName: node - linkType: hard - -"@babel/plugin-syntax-optional-chaining@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/46edddf2faa6ebf94147b8e8540dfc60a5ab718e2de4d01b2c0bdf250a4d642c2bd47cbcbb739febcb2bf75514dbcefad3c52208787994b8d0f8822490f55e81 - languageName: node - linkType: hard - -"@babel/plugin-syntax-private-property-in-object@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-private-property-in-object@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.14.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/69822772561706c87f0a65bc92d0772cea74d6bc0911537904a676d5ff496a6d3ac4e05a166d8125fce4a16605bace141afc3611074e170a994e66e5397787f3 - languageName: node - linkType: hard - -"@babel/plugin-syntax-top-level-await@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.14.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/14bf6e65d5bc1231ffa9def5f0ef30b19b51c218fcecaa78cd1bdf7939dfdf23f90336080b7f5196916368e399934ce5d581492d8292b46a2fb569d8b2da106f - languageName: node - linkType: hard - "@babel/plugin-syntax-unicode-sets-regex@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-syntax-unicode-sets-regex@npm:7.18.6" @@ -610,17 +445,16 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.7" +"@babel/plugin-transform-async-generator-functions@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.8" dependencies: "@babel/helper-plugin-utils": "npm:^7.25.7" "@babel/helper-remap-async-to-generator": "npm:^7.25.7" - "@babel/plugin-syntax-async-generators": "npm:^7.8.4" "@babel/traverse": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/dcdd17d8cafafe0eb2edd0a46a7abe86c72235c957c8eb1157ccadb2b199572d5d1aa36a2d3bce5cb99990f7d3c6290ecf09959c62f3081c4df9ff717a1c84a4 + checksum: 10c0/1698d0757d3dc895047120346cdbe6d539dae4a7bb930caf958c3623e89c850d378d1ebd971a1a8b4cba39c8f001cd9c25a1d6f430099022ab1e87aeddb5dd88 languageName: node linkType: hard @@ -671,16 +505,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-class-static-block@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-class-static-block@npm:7.25.7" +"@babel/plugin-transform-class-static-block@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-class-static-block@npm:7.25.8" dependencies: "@babel/helper-create-class-features-plugin": "npm:^7.25.7" "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" peerDependencies: "@babel/core": ^7.12.0 - checksum: 10c0/cbb4b46cbd8ad10106eb2bedb5a0665661a1d1d5b6f3ab565ff454b802dab4718e02b25670fe0d40835494aedb3dc26757c06cc4da6ff3e80291c5f882269bd3 + checksum: 10c0/4f37853aef6920875022bbb2d7c6523218d9d718291464e2cacd9cc6f2c22d86a69948d8ea38f9248843bbfe9343f3fd18cf16b1615560124198bf999e3ba612 languageName: node linkType: hard @@ -758,15 +591,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-dynamic-import@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-dynamic-import@npm:7.25.7" +"@babel/plugin-transform-dynamic-import@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.25.8" dependencies: "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c733252ff20a32d9747dd081916270f5a073856597e849a5f458b12f4354499b18714f5e7049e341432851d9975077cb37effcd276c7f816faa6f5ff708dc5e1 + checksum: 10c0/9726abc1b07771a9c1e3670908ac425d21e29f54c775d10ed7a4e2bc0a18e07600f70bbc531deba3fb3ff7f6763c189200593264c6f784dac583e653b66fe754 languageName: node linkType: hard @@ -782,15 +614,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-export-namespace-from@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-export-namespace-from@npm:7.25.7" +"@babel/plugin-transform-export-namespace-from@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.25.8" dependencies: "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/ef61fc5d54c9c8b075cbd9db62beaf295e38e08a1edb1882995105d3e959763be1631f7d7f7cb7461b702ebd0b4a601f2eb2cd6521acaf061310a3a3305fa756 + checksum: 10c0/8a2e1205dd727a96a9adef0e981d68c61b1c286480b9136e2aa67ce3e2c742be4f87feb9fb4c5548a401aba0953d43d66e9ec36a54dea6a7c15f1ee9345baf57 languageName: node linkType: hard @@ -819,15 +650,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-json-strings@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-json-strings@npm:7.25.7" +"@babel/plugin-transform-json-strings@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-json-strings@npm:7.25.8" dependencies: "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/plugin-syntax-json-strings": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/aa6e5f65c8a5f2459d7daa9b5b4ff97ff43bab21f4a8513ed84d35300b0323ec542dc101c5f11622e442dfc93b3a229c7f41ebc7645370dfec6d066bda800a0b + checksum: 10c0/2a6cf69ebe8deebc39c56adae75d609e16786dc4cbd83577eefdc838bd89ca8974671d47e2669b8e65ef9b7ace427f7c2c5a9fc6aa09247b10e141d15fee81cf languageName: node linkType: hard @@ -842,15 +672,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-logical-assignment-operators@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.25.7" +"@babel/plugin-transform-logical-assignment-operators@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.25.8" dependencies: "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/d610a8a2c1be83e03cce2256f29519e705dc68289c09d67f1f362d1fd80f4b36eaf2affc05710abb53a272895041e24d9e95ec73a516a23a67cb907023fbe37b + checksum: 10c0/9adc2634c94b283b682fbf71bbec553bd8448196213491a0ef9ea167993c9c36dcb2fbefbd834e113cfed843a67290131bc99e463f8702043c3f4e3a99bb807e languageName: node linkType: hard @@ -939,41 +768,38 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.25.7" +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.25.8" dependencies: "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/b35a96a79ef4895b00e4f758d3185cb17e4fbfada311894ad5f0988a55fc2c21820dc789b26a3cb8fbd620434faa516e52acb6e2da105c2edbd29de8b6b0facf + checksum: 10c0/3cb7c44cffccae42e104755acb31b4f00bc27d8c88102ae6f30dca508832f98fa5b746bead0fc7c0c6ddcf83f336829be4b64245c6c7ce26b3ef591937ec54a4 languageName: node linkType: hard -"@babel/plugin-transform-numeric-separator@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-numeric-separator@npm:7.25.7" +"@babel/plugin-transform-numeric-separator@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.25.8" dependencies: "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c028ae89e6b4e1d757f8f1ebcb3b420e6559bb35002728f6f5651d5f669fbf73764adf6e3597908fa12adf8dbae683e5f74b3a7f68e8774a9663c18c0f999539 + checksum: 10c0/d23b3ebc50513f24510791ac2cad43e3c6ea08579f54dccfd4ed5e5d5084f02da0576ea42ea999fb51e1f94f42857cac96a1a29ac6728fc262fbe87ec966dc18 languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.25.7" +"@babel/plugin-transform-object-rest-spread@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.25.8" dependencies: "@babel/helper-compilation-targets": "npm:^7.25.7" "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" "@babel/plugin-transform-parameters": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/e8b978d9d1020452da0d5d92f80fe57e302761dac20137bb8bf863478a4779fcd63d314db89e796125d9d76da2a38f64f012d6e0c4913815951b3eb3fba2feb6 + checksum: 10c0/058d5f5bb61068997fb78855011dd175d441da84717640852bbfd12a5919acf8d8c5a14c1debfe87d230f3f4c47c22fcad3d7fa1acd72e5e48b2fff93b6c1dd9 languageName: node linkType: hard @@ -989,28 +815,26 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-optional-catch-binding@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.25.7" +"@babel/plugin-transform-optional-catch-binding@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.25.8" dependencies: "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/bb609e5103780be0825a255ffe1fefbb5335aead88a46eecc2257053279ea2c45ff66b0ef1fb54302c8c8c57146e88e52f3ecb62b4c6f619218d7b3843b352d9 + checksum: 10c0/f4360e62ca4aa998db31548d0ef06836d958bcb29dee58f5c62d0c29b6b2bff1b54871195bd032825fe3dd79a4fd8275e165148c8d4b57694bcf72135c8f7d24 languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.25.7" +"@babel/plugin-transform-optional-chaining@npm:^7.25.7, @babel/plugin-transform-optional-chaining@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.25.8" dependencies: "@babel/helper-plugin-utils": "npm:^7.25.7" "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" - "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/887441ada6c2bc1b789984b7531d9bc585f335ece99642886d3d9fd8aee7e6b8d4f7ca61d76b5f23477f3aa607284d5056eadaa1eb17e7b39af6b0e834cbe878 + checksum: 10c0/a1cdbfc249619fa6b37e57f81600701281629d86a57e616b0c2b29816d0c43114a2296ce089564afd3aa7870c8aad62e907658ffef2c110662af14ee23d5247f languageName: node linkType: hard @@ -1037,17 +861,16 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-private-property-in-object@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-private-property-in-object@npm:7.25.7" +"@babel/plugin-transform-private-property-in-object@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.25.8" dependencies: "@babel/helper-annotate-as-pure": "npm:^7.25.7" "@babel/helper-create-class-features-plugin": "npm:^7.25.7" "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/5ad8832ba54e2079c1f558b8680e170265e3f376424e5fbb75b17b7f08696fb0af6c96d23d92f7df3dcc559f5971a02587281fcec38a853174aa95478565f5fc + checksum: 10c0/61b5e3a4eb94caf38d6e9ff7bff1ac8927758141aaa4891036d3490866ecee53beaefd7893519fec42a4c55f33374a17fc0e49694cdaf95668082073f0fe4a79 languageName: node linkType: hard @@ -1188,11 +1011,11 @@ __metadata: languageName: node linkType: hard -"@babel/preset-env@npm:7.25.7": - version: 7.25.7 - resolution: "@babel/preset-env@npm:7.25.7" +"@babel/preset-env@npm:7.25.8": + version: 7.25.8 + resolution: "@babel/preset-env@npm:7.25.8" dependencies: - "@babel/compat-data": "npm:^7.25.7" + "@babel/compat-data": "npm:^7.25.8" "@babel/helper-compilation-targets": "npm:^7.25.7" "@babel/helper-plugin-utils": "npm:^7.25.7" "@babel/helper-validator-option": "npm:^7.25.7" @@ -1202,45 +1025,30 @@ __metadata: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.25.7" "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.25.7" "@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-async-generators": "npm:^7.8.4" - "@babel/plugin-syntax-class-properties": "npm:^7.12.13" - "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" - "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" - "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" "@babel/plugin-syntax-import-assertions": "npm:^7.25.7" "@babel/plugin-syntax-import-attributes": "npm:^7.25.7" - "@babel/plugin-syntax-import-meta": "npm:^7.10.4" - "@babel/plugin-syntax-json-strings": "npm:^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" - "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4" - "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" - "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" - "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" - "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" - "@babel/plugin-syntax-top-level-await": "npm:^7.14.5" "@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6" "@babel/plugin-transform-arrow-functions": "npm:^7.25.7" - "@babel/plugin-transform-async-generator-functions": "npm:^7.25.7" + "@babel/plugin-transform-async-generator-functions": "npm:^7.25.8" "@babel/plugin-transform-async-to-generator": "npm:^7.25.7" "@babel/plugin-transform-block-scoped-functions": "npm:^7.25.7" "@babel/plugin-transform-block-scoping": "npm:^7.25.7" "@babel/plugin-transform-class-properties": "npm:^7.25.7" - "@babel/plugin-transform-class-static-block": "npm:^7.25.7" + "@babel/plugin-transform-class-static-block": "npm:^7.25.8" "@babel/plugin-transform-classes": "npm:^7.25.7" "@babel/plugin-transform-computed-properties": "npm:^7.25.7" "@babel/plugin-transform-destructuring": "npm:^7.25.7" "@babel/plugin-transform-dotall-regex": "npm:^7.25.7" "@babel/plugin-transform-duplicate-keys": "npm:^7.25.7" "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "npm:^7.25.7" - "@babel/plugin-transform-dynamic-import": "npm:^7.25.7" + "@babel/plugin-transform-dynamic-import": "npm:^7.25.8" "@babel/plugin-transform-exponentiation-operator": "npm:^7.25.7" - "@babel/plugin-transform-export-namespace-from": "npm:^7.25.7" + "@babel/plugin-transform-export-namespace-from": "npm:^7.25.8" "@babel/plugin-transform-for-of": "npm:^7.25.7" "@babel/plugin-transform-function-name": "npm:^7.25.7" - "@babel/plugin-transform-json-strings": "npm:^7.25.7" + "@babel/plugin-transform-json-strings": "npm:^7.25.8" "@babel/plugin-transform-literals": "npm:^7.25.7" - "@babel/plugin-transform-logical-assignment-operators": "npm:^7.25.7" + "@babel/plugin-transform-logical-assignment-operators": "npm:^7.25.8" "@babel/plugin-transform-member-expression-literals": "npm:^7.25.7" "@babel/plugin-transform-modules-amd": "npm:^7.25.7" "@babel/plugin-transform-modules-commonjs": "npm:^7.25.7" @@ -1248,15 +1056,15 @@ __metadata: "@babel/plugin-transform-modules-umd": "npm:^7.25.7" "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.25.7" "@babel/plugin-transform-new-target": "npm:^7.25.7" - "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.25.7" - "@babel/plugin-transform-numeric-separator": "npm:^7.25.7" - "@babel/plugin-transform-object-rest-spread": "npm:^7.25.7" + "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.25.8" + "@babel/plugin-transform-numeric-separator": "npm:^7.25.8" + "@babel/plugin-transform-object-rest-spread": "npm:^7.25.8" "@babel/plugin-transform-object-super": "npm:^7.25.7" - "@babel/plugin-transform-optional-catch-binding": "npm:^7.25.7" - "@babel/plugin-transform-optional-chaining": "npm:^7.25.7" + "@babel/plugin-transform-optional-catch-binding": "npm:^7.25.8" + "@babel/plugin-transform-optional-chaining": "npm:^7.25.8" "@babel/plugin-transform-parameters": "npm:^7.25.7" "@babel/plugin-transform-private-methods": "npm:^7.25.7" - "@babel/plugin-transform-private-property-in-object": "npm:^7.25.7" + "@babel/plugin-transform-private-property-in-object": "npm:^7.25.8" "@babel/plugin-transform-property-literals": "npm:^7.25.7" "@babel/plugin-transform-regenerator": "npm:^7.25.7" "@babel/plugin-transform-reserved-words": "npm:^7.25.7" @@ -1277,7 +1085,7 @@ __metadata: semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/bf704a06a69420250c1de2b126cd5c859a851002c2fb2cce0910cd85a8e6755b9b31577021e94feb7e1e53519923726349aaf07580923928791583db61438fb8 + checksum: 10c0/a45cd64ca082262998f6cf508b413ff8a9e967bf33e58337a1fe41c6c939a4c25cc73cd58387792c00d43905cf5fb0ea5ef88dfdc2addf2e8133743088c86c72 languageName: node linkType: hard @@ -1329,14 +1137,14 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.25.7, @babel/types@npm:^7.4.4": - version: 7.25.7 - resolution: "@babel/types@npm:7.25.7" +"@babel/types@npm:^7.25.7, @babel/types@npm:^7.25.8, @babel/types@npm:^7.4.4": + version: 7.25.8 + resolution: "@babel/types@npm:7.25.8" dependencies: "@babel/helper-string-parser": "npm:^7.25.7" "@babel/helper-validator-identifier": "npm:^7.25.7" to-fast-properties: "npm:^2.0.0" - checksum: 10c0/e03e1e2e08600fa1e8eb90632ac9c253dd748176c8d670d85f85b0dc83a0573b26ae748a1cbcb81f401903a3d95f43c3f4f8d516a5ed779929db27de56289633 + checksum: 10c0/55ca2d6df6426c98db2769ce884ce5e9de83a512ea2dd7bcf56c811984dc14351cacf42932a723630c5afcff2455809323decd645820762182f10b7b5252b59f languageName: node linkType: hard @@ -4418,8 +4226,8 @@ __metadata: resolution: "jenkins-ui@workspace:." dependencies: "@babel/cli": "npm:7.25.7" - "@babel/core": "npm:7.25.7" - "@babel/preset-env": "npm:7.25.7" + "@babel/core": "npm:7.25.8" + "@babel/preset-env": "npm:7.25.8" "@eslint/js": "npm:9.12.0" babel-loader: "npm:9.2.1" clean-webpack-plugin: "npm:4.0.0" From c34234f2c5a28f3965f03afce6a0df9298d7da4e Mon Sep 17 00:00:00 2001 From: Jan Faracik <43062514+janfaracik@users.noreply.github.com> Date: Mon, 14 Oct 2024 09:09:20 +0100 Subject: [PATCH 1086/1216] Refine content and appearance of the 'Edit View' screen (#9833) Co-authored-by: Tim Jacomb --- .../ListView/configure-entries-resources.js | 5 +- .../model/ListView/configure-entries.jelly | 72 ++++++++++--------- .../ListView/configure-entries.properties | 3 + .../hudson/model/View/configure.jelly | 39 ++++++---- .../hudson/model/View/configure.properties | 4 ++ .../main/resources/lib/form/checkbox.jelly | 8 +++ src/main/scss/base/_style.scss | 8 --- src/main/scss/pages/_dashboard.scss | 14 ++++ .../webapp/help/view-config/description.html | 6 -- .../help/view-config/description_bg.html | 7 -- .../help/view-config/description_de.html | 7 -- .../help/view-config/description_fr.html | 6 -- .../help/view-config/description_it.html | 7 -- .../help/view-config/description_ja.html | 6 -- .../help/view-config/description_nl.html | 8 --- .../help/view-config/description_pt_BR.html | 6 -- .../help/view-config/description_ru.html | 6 -- .../help/view-config/description_tr.html | 7 -- .../help/view-config/description_zh_TW.html | 5 -- .../help/view-config/filter-executors.html | 27 ------- .../help/view-config/filter-executors_bg.html | 4 -- .../help/view-config/filter-executors_de.html | 27 ------- .../help/view-config/filter-executors_it.html | 27 ------- .../help/view-config/filter-executors_ja.html | 24 ------- .../view-config/filter-executors_pt_BR.html | 27 ------- .../view-config/filter-executors_zh_TW.html | 1 - .../webapp/help/view-config/filter-queue.html | 24 ------- .../help/view-config/filter-queue_bg.html | 4 -- .../help/view-config/filter-queue_de.html | 27 ------- .../help/view-config/filter-queue_it.html | 27 ------- .../help/view-config/filter-queue_ja.html | 24 ------- .../help/view-config/filter-queue_pt_BR.html | 24 ------- .../help/view-config/filter-queue_zh_TW.html | 1 - 33 files changed, 95 insertions(+), 397 deletions(-) create mode 100644 core/src/main/resources/hudson/model/ListView/configure-entries.properties create mode 100644 core/src/main/resources/hudson/model/View/configure.properties delete mode 100644 war/src/main/webapp/help/view-config/description.html delete mode 100644 war/src/main/webapp/help/view-config/description_bg.html delete mode 100644 war/src/main/webapp/help/view-config/description_de.html delete mode 100644 war/src/main/webapp/help/view-config/description_fr.html delete mode 100644 war/src/main/webapp/help/view-config/description_it.html delete mode 100644 war/src/main/webapp/help/view-config/description_ja.html delete mode 100644 war/src/main/webapp/help/view-config/description_nl.html delete mode 100644 war/src/main/webapp/help/view-config/description_pt_BR.html delete mode 100644 war/src/main/webapp/help/view-config/description_ru.html delete mode 100644 war/src/main/webapp/help/view-config/description_tr.html delete mode 100644 war/src/main/webapp/help/view-config/description_zh_TW.html delete mode 100644 war/src/main/webapp/help/view-config/filter-executors.html delete mode 100644 war/src/main/webapp/help/view-config/filter-executors_bg.html delete mode 100644 war/src/main/webapp/help/view-config/filter-executors_de.html delete mode 100644 war/src/main/webapp/help/view-config/filter-executors_it.html delete mode 100644 war/src/main/webapp/help/view-config/filter-executors_ja.html delete mode 100644 war/src/main/webapp/help/view-config/filter-executors_pt_BR.html delete mode 100644 war/src/main/webapp/help/view-config/filter-executors_zh_TW.html delete mode 100644 war/src/main/webapp/help/view-config/filter-queue.html delete mode 100644 war/src/main/webapp/help/view-config/filter-queue_bg.html delete mode 100644 war/src/main/webapp/help/view-config/filter-queue_de.html delete mode 100644 war/src/main/webapp/help/view-config/filter-queue_it.html delete mode 100644 war/src/main/webapp/help/view-config/filter-queue_ja.html delete mode 100644 war/src/main/webapp/help/view-config/filter-queue_pt_BR.html delete mode 100644 war/src/main/webapp/help/view-config/filter-queue_zh_TW.html diff --git a/core/src/main/resources/hudson/model/ListView/configure-entries-resources.js b/core/src/main/resources/hudson/model/ListView/configure-entries-resources.js index 86ccbb6447a7..f9db2d067478 100644 --- a/core/src/main/resources/hudson/model/ListView/configure-entries-resources.js +++ b/core/src/main/resources/hudson/model/ListView/configure-entries-resources.js @@ -1,5 +1,8 @@ Behaviour.specify("#recurse", "ListView", 0, function (e) { - var nestedElements = document.querySelectorAll("SPAN.nested"); + // SPAN.nested is kept for backwards compatability + var nestedElements = document.querySelectorAll( + ".listview-jobs--nested, SPAN.nested", + ); e.onclick = function () { nestedElements.forEach(function (el) { el.style.display = e.checked ? "" : "none"; diff --git a/core/src/main/resources/hudson/model/ListView/configure-entries.jelly b/core/src/main/resources/hudson/model/ListView/configure-entries.jelly index 5cffab5e11ee..350235870b01 100644 --- a/core/src/main/resources/hudson/model/ListView/configure-entries.jelly +++ b/core/src/main/resources/hudson/model/ListView/configure-entries.jelly @@ -27,49 +27,51 @@ THE SOFTWARE. + + + + - - - - - - - -
    - - - - - - + + + + +
    + + + +
    - - -
    -
    -
    -
    -
    + + - - - + +
    + + + +
    -
    + + + + + + +
    - + - +
    + + - - - - - - -
    diff --git a/core/src/main/resources/hudson/model/ListView/configure-entries.properties b/core/src/main/resources/hudson/model/ListView/configure-entries.properties new file mode 100644 index 000000000000..fb58880346b9 --- /dev/null +++ b/core/src/main/resources/hudson/model/ListView/configure-entries.properties @@ -0,0 +1,3 @@ +jobs.description=Select the jobs to show in this view. +filters.description=Filter the jobs that show in this view based on specific conditions. +columns.description=Select the columns in this view. diff --git a/core/src/main/resources/hudson/model/View/configure.jelly b/core/src/main/resources/hudson/model/View/configure.jelly index beceff8230ab..6f2ff2744fe1 100644 --- a/core/src/main/resources/hudson/model/View/configure.jelly +++ b/core/src/main/resources/hudson/model/View/configure.jelly @@ -29,25 +29,25 @@ THE SOFTWARE. - + + + + + - - - - - - - - - - - - - + + + + + + + + + @@ -55,6 +55,17 @@ THE SOFTWARE. + + + + + + + + + diff --git a/core/src/main/resources/hudson/model/View/configure.properties b/core/src/main/resources/hudson/model/View/configure.properties new file mode 100644 index 000000000000..f5883d65a59e --- /dev/null +++ b/core/src/main/resources/hudson/model/View/configure.properties @@ -0,0 +1,4 @@ +description.description=Describe the purpose of this view. +widgets.description=Customize the widgets that show in this view. +widgets.filterqueue.description=If checked, only jobs in this view will be shown in the queue. +widgets.filterexecutors.description=If checked, only those build executors will be shown that could execute the jobs in this view. diff --git a/core/src/main/resources/lib/form/checkbox.jelly b/core/src/main/resources/lib/form/checkbox.jelly index 60c8c11f4c52..de831954cafc 100644 --- a/core/src/main/resources/lib/form/checkbox.jelly +++ b/core/src/main/resources/lib/form/checkbox.jelly @@ -69,6 +69,9 @@ THE SOFTWARE. Used as tooltip of the checkbox, and, if a title is specified, of the title + + Optional description for the checkbox + @@ -87,6 +90,11 @@ THE SOFTWARE. + +
    + ${attrs.description} +
    +
    ${customizedFields.add(name)} diff --git a/src/main/scss/base/_style.scss b/src/main/scss/base/_style.scss index e586248d18a8..273d583d4ca9 100644 --- a/src/main/scss/base/_style.scss +++ b/src/main/scss/base/_style.scss @@ -406,14 +406,6 @@ img.icon-help { vertical-align: text-top; } -/* ============================ list view entries ======================== */ -div.listview-jobs { - max-height: 300px; - overflow: auto; - margin-left: -15px; - padding-left: 15px; -} - /* ============================ health report hover ========================== */ .healthReport a { diff --git a/src/main/scss/pages/_dashboard.scss b/src/main/scss/pages/_dashboard.scss index 3ace60fac309..4d6f49017566 100644 --- a/src/main/scss/pages/_dashboard.scss +++ b/src/main/scss/pages/_dashboard.scss @@ -180,3 +180,17 @@ $min-button-size: 36px; height: 1rem; } } + +div.listview-jobs { + display: flex; + flex-direction: column; + gap: 0.3rem; + + &--nested { + display: flex; + flex-direction: column; + border-left: 2px solid color-mix(in sRGB, var(--input-border), transparent); + margin-left: 10px; + padding-left: 22px; + } +} diff --git a/war/src/main/webapp/help/view-config/description.html b/war/src/main/webapp/help/view-config/description.html deleted file mode 100644 index 116a5d17ed7c..000000000000 --- a/war/src/main/webapp/help/view-config/description.html +++ /dev/null @@ -1,6 +0,0 @@ -
    - This message will be displayed on - the view page - . Useful for describing what this view does or linking to relevant resources. - Can contain HTML tags or whatever markup language is defined for the system. -
    diff --git a/war/src/main/webapp/help/view-config/description_bg.html b/war/src/main/webapp/help/view-config/description_bg.html deleted file mode 100644 index 2f9a0c920697..000000000000 --- a/war/src/main/webapp/help/view-config/description_bg.html +++ /dev/null @@ -1,7 +0,0 @@ -
    - Това съобщение ще се показва на - страницата за изгледа - . Това е удобно да обясните за какво служи изгледа или да дадете подходящи - връзки към полезни ресурси. Може да съдържа форматиране чрез етикети на HTML - или произволен маркиращ език, който се поддържа от Jenkins. -
    diff --git a/war/src/main/webapp/help/view-config/description_de.html b/war/src/main/webapp/help/view-config/description_de.html deleted file mode 100644 index 63eecbf510c6..000000000000 --- a/war/src/main/webapp/help/view-config/description_de.html +++ /dev/null @@ -1,7 +0,0 @@ -
    - Diese Beschreibung wird auf der - Ansichtsseite - angezeigt. Sie beschreibt, um was es in der Ansicht geht oder enthält Links zu - weiteren relevanten Ressourcen. Die Beschreibung darf HTML-Auszeichnungen - enthalten. -
    diff --git a/war/src/main/webapp/help/view-config/description_fr.html b/war/src/main/webapp/help/view-config/description_fr.html deleted file mode 100644 index e2276e50a88c..000000000000 --- a/war/src/main/webapp/help/view-config/description_fr.html +++ /dev/null @@ -1,6 +0,0 @@ -
    - Ce message s'affichera sur la - page de visualisation - . Utile pour décrire l'objectif de cette vue ou pour donner des liens vers des - ressources supplémentaires. Supporte les tags HTML. -
    diff --git a/war/src/main/webapp/help/view-config/description_it.html b/war/src/main/webapp/help/view-config/description_it.html deleted file mode 100644 index 562324afca80..000000000000 --- a/war/src/main/webapp/help/view-config/description_it.html +++ /dev/null @@ -1,7 +0,0 @@ -
    - Questo messaggio sarà visualizzato sulla - pagina della vista - . Quest'opzione è utile per descrivere lo scopo di questa vista o per inserire - collegamenti a risorse rilevanti. Può contenere marcatori HTML o del - linguaggio a marcatori definito per il sistema. -
    diff --git a/war/src/main/webapp/help/view-config/description_ja.html b/war/src/main/webapp/help/view-config/description_ja.html deleted file mode 100644 index f45f11ad4084..000000000000 --- a/war/src/main/webapp/help/view-config/description_ja.html +++ /dev/null @@ -1,6 +0,0 @@ -
    - この説明は、 - ビュー - に表示されます。 - このビューについて説明したり、関連するリソースにリンクするのに便利です。HTMLタグを使用できます。 -
    diff --git a/war/src/main/webapp/help/view-config/description_nl.html b/war/src/main/webapp/help/view-config/description_nl.html deleted file mode 100644 index ebb5e3686899..000000000000 --- a/war/src/main/webapp/help/view-config/description_nl.html +++ /dev/null @@ -1,8 +0,0 @@ -
    - Deze boodschap zal getoond worden op - uw specifieke overzichtspagina - . Het kan nuttig zijn om te omschrijven wat uw overzichtspagina specifiek - omvat. De boodschap mag HTML bevatten. U kunt dus ook, op eenvoudige wijze, - referenties toevoegen naar relevante artefacten, zoals webpaginas, documenten, - e-mail adressen, ... -
    diff --git a/war/src/main/webapp/help/view-config/description_pt_BR.html b/war/src/main/webapp/help/view-config/description_pt_BR.html deleted file mode 100644 index df7732115bb6..000000000000 --- a/war/src/main/webapp/help/view-config/description_pt_BR.html +++ /dev/null @@ -1,6 +0,0 @@ -
    - Esta mensagem será mostrada na - página de visualização - . Útil para descrever sobre o que é esta visualização, ou - ligá-la a recursos relevantes. Pode conter marcações HTML. -
    diff --git a/war/src/main/webapp/help/view-config/description_ru.html b/war/src/main/webapp/help/view-config/description_ru.html deleted file mode 100644 index 7303f0d6adf3..000000000000 --- a/war/src/main/webapp/help/view-config/description_ru.html +++ /dev/null @@ -1,6 +0,0 @@ -
    - Это сообщение будет показываться на - странице Пользовательского списка - . Удобно для описания Пользовательского списка или ссылок на имеющие отношение - ресурсы. Может содержать HTML. -
    diff --git a/war/src/main/webapp/help/view-config/description_tr.html b/war/src/main/webapp/help/view-config/description_tr.html deleted file mode 100644 index 08c2a592ada8..000000000000 --- a/war/src/main/webapp/help/view-config/description_tr.html +++ /dev/null @@ -1,7 +0,0 @@ -
    - Bu mesaj, - görüntü ana sayfasında - gösterilecektir. Bu görüntünün ne ile ilgili - olduğunu anlatmak, veya ilgili kaynaklara bağlantılar - yapabilmek için kullanılabilir. HTML tag'leri kullanabilirsiniz. -
    diff --git a/war/src/main/webapp/help/view-config/description_zh_TW.html b/war/src/main/webapp/help/view-config/description_zh_TW.html deleted file mode 100644 index 2f38a3d86281..000000000000 --- a/war/src/main/webapp/help/view-config/description_zh_TW.html +++ /dev/null @@ -1,5 +0,0 @@ -
    - 訊息會顯示在 - 視景頁 - 。 能用來說明這個視景的用途,或是提供相關資源的連結。 可以使用 HTML 標籤。 -
    diff --git a/war/src/main/webapp/help/view-config/filter-executors.html b/war/src/main/webapp/help/view-config/filter-executors.html deleted file mode 100644 index 034420bb5917..000000000000 --- a/war/src/main/webapp/help/view-config/filter-executors.html +++ /dev/null @@ -1,27 +0,0 @@ - -
    - If checked, only those build executors will be shown that could execute the - jobs in this view. -
    diff --git a/war/src/main/webapp/help/view-config/filter-executors_bg.html b/war/src/main/webapp/help/view-config/filter-executors_bg.html deleted file mode 100644 index 6b36c6989ca7..000000000000 --- a/war/src/main/webapp/help/view-config/filter-executors_bg.html +++ /dev/null @@ -1,4 +0,0 @@ -
    - Когато е избрано, ще се показват само компютрите, които могат да изпълняват - задачите в този изглед. -
    diff --git a/war/src/main/webapp/help/view-config/filter-executors_de.html b/war/src/main/webapp/help/view-config/filter-executors_de.html deleted file mode 100644 index 52e6465c770c..000000000000 --- a/war/src/main/webapp/help/view-config/filter-executors_de.html +++ /dev/null @@ -1,27 +0,0 @@ - -
    - Wenn angewählt, werden nur diejenigen Build-Prozessoren angezeigt, welche Jobs - in dieser Ansicht ausführen könnten. -
    diff --git a/war/src/main/webapp/help/view-config/filter-executors_it.html b/war/src/main/webapp/help/view-config/filter-executors_it.html deleted file mode 100644 index 44fb82b5bea2..000000000000 --- a/war/src/main/webapp/help/view-config/filter-executors_it.html +++ /dev/null @@ -1,27 +0,0 @@ - -
    - Se quest'opzione è selezionata, solo gli esecutori in grado di eseguire i - processi qui elencati saranno visualizzati in questa vista. -
    diff --git a/war/src/main/webapp/help/view-config/filter-executors_ja.html b/war/src/main/webapp/help/view-config/filter-executors_ja.html deleted file mode 100644 index efe9214b79d3..000000000000 --- a/war/src/main/webapp/help/view-config/filter-executors_ja.html +++ /dev/null @@ -1,24 +0,0 @@ - -
    このビューのジョブを実行可能なエグゼキューターのみ表示します。
    diff --git a/war/src/main/webapp/help/view-config/filter-executors_pt_BR.html b/war/src/main/webapp/help/view-config/filter-executors_pt_BR.html deleted file mode 100644 index 053df68e3154..000000000000 --- a/war/src/main/webapp/help/view-config/filter-executors_pt_BR.html +++ /dev/null @@ -1,27 +0,0 @@ - -
    - Caso selecionado, apenas executores de build que podem executar jobs nessa - view aparecerão. -
    diff --git a/war/src/main/webapp/help/view-config/filter-executors_zh_TW.html b/war/src/main/webapp/help/view-config/filter-executors_zh_TW.html deleted file mode 100644 index ff504373040c..000000000000 --- a/war/src/main/webapp/help/view-config/filter-executors_zh_TW.html +++ /dev/null @@ -1 +0,0 @@ -
    啟用後,就只會顯示能建置視景中作業的那些執行程式。
    diff --git a/war/src/main/webapp/help/view-config/filter-queue.html b/war/src/main/webapp/help/view-config/filter-queue.html deleted file mode 100644 index e658f998232a..000000000000 --- a/war/src/main/webapp/help/view-config/filter-queue.html +++ /dev/null @@ -1,24 +0,0 @@ - -
    If checked, only jobs in this view will be shown in the queue.
    diff --git a/war/src/main/webapp/help/view-config/filter-queue_bg.html b/war/src/main/webapp/help/view-config/filter-queue_bg.html deleted file mode 100644 index 7b22a78abde0..000000000000 --- a/war/src/main/webapp/help/view-config/filter-queue_bg.html +++ /dev/null @@ -1,4 +0,0 @@ -
    - Когато е избрано, ще се показват само тези задачи в опашката, които са също и - в изгледа. -
    diff --git a/war/src/main/webapp/help/view-config/filter-queue_de.html b/war/src/main/webapp/help/view-config/filter-queue_de.html deleted file mode 100644 index 2c2ec446239c..000000000000 --- a/war/src/main/webapp/help/view-config/filter-queue_de.html +++ /dev/null @@ -1,27 +0,0 @@ - -
    - Wenn angewählt, werden in der Build-Warteschlange nur Jobs dieser Ansicht - angezeigt. -
    diff --git a/war/src/main/webapp/help/view-config/filter-queue_it.html b/war/src/main/webapp/help/view-config/filter-queue_it.html deleted file mode 100644 index e7258892a005..000000000000 --- a/war/src/main/webapp/help/view-config/filter-queue_it.html +++ /dev/null @@ -1,27 +0,0 @@ - -
    - Se quest'opzione è selezionata solo i processi che compaiono in questa vista - saranno visualizzati nella coda. -
    diff --git a/war/src/main/webapp/help/view-config/filter-queue_ja.html b/war/src/main/webapp/help/view-config/filter-queue_ja.html deleted file mode 100644 index 26da33be36a1..000000000000 --- a/war/src/main/webapp/help/view-config/filter-queue_ja.html +++ /dev/null @@ -1,24 +0,0 @@ - -
    このビューのジョブのみキューに表示されます。
    diff --git a/war/src/main/webapp/help/view-config/filter-queue_pt_BR.html b/war/src/main/webapp/help/view-config/filter-queue_pt_BR.html deleted file mode 100644 index f92dd00bb380..000000000000 --- a/war/src/main/webapp/help/view-config/filter-queue_pt_BR.html +++ /dev/null @@ -1,24 +0,0 @@ - -
    Caso selecionado, apenas jobs nessa view aparecerão na fila.
    diff --git a/war/src/main/webapp/help/view-config/filter-queue_zh_TW.html b/war/src/main/webapp/help/view-config/filter-queue_zh_TW.html deleted file mode 100644 index 717957f1529e..000000000000 --- a/war/src/main/webapp/help/view-config/filter-queue_zh_TW.html +++ /dev/null @@ -1 +0,0 @@ -
    選用後,佇列中只會顯示視景裡的作業。
    From f8ef23acd99c85b253266b47fe0376eb7faa2745 Mon Sep 17 00:00:00 2001 From: Debayan Ghosh <66942246+debayangg@users.noreply.github.com> Date: Mon, 14 Oct 2024 13:42:12 +0530 Subject: [PATCH 1087/1216] [JENKINS-72979] Remove trailing space from Windows agent secret file instructions (#9739) --- .../resources/hudson/slaves/JNLPLauncher/main.jelly | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/main.jelly b/core/src/main/resources/hudson/slaves/JNLPLauncher/main.jelly index 2f211d16feae..ad9184473224 100644 --- a/core/src/main/resources/hudson/slaves/JNLPLauncher/main.jelly +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/main.jelly @@ -53,26 +53,26 @@ ${copy_java_cmd_secret_unix} ${copy_agent_jar_windows} ${copy_java_cmd_secret_windows} - - + +

    ${%slaveAgent.cli.run.secret} (Unix) - +

    -${copy_secret_to_file}
    +${copy_secret_to_file_unix}
     ${copy_agent_jar_unix}
     ${copy_java_cmd_secret2_unix}
     

    ${%slaveAgent.cli.run.secret} (Windows) - +

    -${copy_secret_to_file}
    +${copy_secret_to_file_windows}
     ${copy_agent_jar_windows}
     ${copy_java_cmd_secret2_windows}
     
    From 01ee3ad4d4c5c455c9ae48f3cde947c7f8f80f02 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 09:21:11 +0100 Subject: [PATCH 1088/1216] Update dependency sass to v1.79.5 (#9865) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 165 +++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 160 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 0182b878c742..62fad3f2a61a 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "postcss-preset-env": "10.0.7", "postcss-scss": "4.0.9", "prettier": "3.3.3", - "sass": "1.79.4", + "sass": "1.79.5", "sass-loader": "16.0.2", "style-loader": "4.0.0", "stylelint": "16.9.0", diff --git a/yarn.lock b/yarn.lock index e0ae45a3a4a4..d3b55f59b810 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1925,6 +1925,140 @@ __metadata: languageName: node linkType: hard +"@parcel/watcher-android-arm64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-android-arm64@npm:2.4.1" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@parcel/watcher-darwin-arm64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-darwin-arm64@npm:2.4.1" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@parcel/watcher-darwin-x64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-darwin-x64@npm:2.4.1" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@parcel/watcher-freebsd-x64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-freebsd-x64@npm:2.4.1" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@parcel/watcher-linux-arm-glibc@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-linux-arm-glibc@npm:2.4.1" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@parcel/watcher-linux-arm64-glibc@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-linux-arm64-glibc@npm:2.4.1" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@parcel/watcher-linux-arm64-musl@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-linux-arm64-musl@npm:2.4.1" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@parcel/watcher-linux-x64-glibc@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-linux-x64-glibc@npm:2.4.1" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@parcel/watcher-linux-x64-musl@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-linux-x64-musl@npm:2.4.1" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@parcel/watcher-win32-arm64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-win32-arm64@npm:2.4.1" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@parcel/watcher-win32-ia32@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-win32-ia32@npm:2.4.1" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@parcel/watcher-win32-x64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-win32-x64@npm:2.4.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@parcel/watcher@npm:^2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher@npm:2.4.1" + dependencies: + "@parcel/watcher-android-arm64": "npm:2.4.1" + "@parcel/watcher-darwin-arm64": "npm:2.4.1" + "@parcel/watcher-darwin-x64": "npm:2.4.1" + "@parcel/watcher-freebsd-x64": "npm:2.4.1" + "@parcel/watcher-linux-arm-glibc": "npm:2.4.1" + "@parcel/watcher-linux-arm64-glibc": "npm:2.4.1" + "@parcel/watcher-linux-arm64-musl": "npm:2.4.1" + "@parcel/watcher-linux-x64-glibc": "npm:2.4.1" + "@parcel/watcher-linux-x64-musl": "npm:2.4.1" + "@parcel/watcher-win32-arm64": "npm:2.4.1" + "@parcel/watcher-win32-ia32": "npm:2.4.1" + "@parcel/watcher-win32-x64": "npm:2.4.1" + detect-libc: "npm:^1.0.3" + is-glob: "npm:^4.0.3" + micromatch: "npm:^4.0.5" + node-addon-api: "npm:^7.0.0" + node-gyp: "npm:latest" + dependenciesMeta: + "@parcel/watcher-android-arm64": + optional: true + "@parcel/watcher-darwin-arm64": + optional: true + "@parcel/watcher-darwin-x64": + optional: true + "@parcel/watcher-freebsd-x64": + optional: true + "@parcel/watcher-linux-arm-glibc": + optional: true + "@parcel/watcher-linux-arm64-glibc": + optional: true + "@parcel/watcher-linux-arm64-musl": + optional: true + "@parcel/watcher-linux-x64-glibc": + optional: true + "@parcel/watcher-linux-x64-musl": + optional: true + "@parcel/watcher-win32-arm64": + optional: true + "@parcel/watcher-win32-ia32": + optional: true + "@parcel/watcher-win32-x64": + optional: true + checksum: 10c0/33b7112094b9eb46c234d824953967435b628d3d93a0553255e9910829b84cab3da870153c3a870c31db186dc58f3b2db81382fcaee3451438aeec4d786a6211 + languageName: node + linkType: hard + "@pkgjs/parseargs@npm:^0.11.0": version: 0.11.0 resolution: "@pkgjs/parseargs@npm:0.11.0" @@ -3142,6 +3276,15 @@ __metadata: languageName: node linkType: hard +"detect-libc@npm:^1.0.3": + version: 1.0.3 + resolution: "detect-libc@npm:1.0.3" + bin: + detect-libc: ./bin/detect-libc.js + checksum: 10c0/4da0deae9f69e13bc37a0902d78bf7169480004b1fed3c19722d56cff578d16f0e11633b7fbf5fb6249181236c72e90024cbd68f0b9558ae06e281f47326d50d + languageName: node + linkType: hard + "dir-glob@npm:^3.0.1": version: 3.0.1 resolution: "dir-glob@npm:3.0.1" @@ -4248,7 +4391,7 @@ __metadata: postcss-preset-env: "npm:10.0.7" postcss-scss: "npm:4.0.9" prettier: "npm:3.3.3" - sass: "npm:1.79.4" + sass: "npm:1.79.5" sass-loader: "npm:16.0.2" sortablejs: "npm:1.15.3" style-loader: "npm:4.0.0" @@ -4639,7 +4782,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.4, micromatch@npm:^4.0.8": +"micromatch@npm:^4.0.4, micromatch@npm:^4.0.5, micromatch@npm:^4.0.8": version: 4.0.8 resolution: "micromatch@npm:4.0.8" dependencies: @@ -4832,6 +4975,15 @@ __metadata: languageName: node linkType: hard +"node-addon-api@npm:^7.0.0": + version: 7.1.1 + resolution: "node-addon-api@npm:7.1.1" + dependencies: + node-gyp: "npm:latest" + checksum: 10c0/fb32a206276d608037fa1bcd7e9921e177fe992fc610d098aa3128baca3c0050fc1e014fa007e9b3874cf865ddb4f5bd9f43ccb7cbbbe4efaff6a83e920b17e9 + languageName: node + linkType: hard + "node-gyp@npm:latest": version: 10.2.0 resolution: "node-gyp@npm:10.2.0" @@ -6209,16 +6361,17 @@ __metadata: languageName: node linkType: hard -"sass@npm:1.79.4": - version: 1.79.4 - resolution: "sass@npm:1.79.4" +"sass@npm:1.79.5": + version: 1.79.5 + resolution: "sass@npm:1.79.5" dependencies: + "@parcel/watcher": "npm:^2.4.1" chokidar: "npm:^4.0.0" immutable: "npm:^4.0.0" source-map-js: "npm:>=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 10c0/505ff0d9267d0fb990971e617acfeabf7c060c55d4cef68fe8a4bc693e7ea88ae7d7caeca3975e4b453459ba4a707b6e5b6979fc9395a7e08f0a43ca6aed06b8 + checksum: 10c0/7331865fd1d0c03e6e180a4fe0e175ac1bf1214f6c77f0d99ad72fbe2ed9ede3fab8a64c0c41471cb8a358a9d11624ec59a49283f9b6070eb99c522b34b814bf languageName: node linkType: hard From fe80df5c5119cdf8584f80a43b97293f4c74adf9 Mon Sep 17 00:00:00 2001 From: Vincent Latombe Date: Mon, 14 Oct 2024 20:23:01 +0200 Subject: [PATCH 1089/1216] Create a new taglib to capture the save/apply bottom bar (#9813) Co-authored-by: Tim Jacomb <21194782+timja@users.noreply.github.com> --- .../main/java/hudson/logging/LogRecorder.java | 3 +- core/src/main/java/hudson/model/Computer.java | 3 +- core/src/main/java/jenkins/model/Jenkins.java | 2 +- .../logging/LogRecorder/configure.jelly | 6 +-- .../hudson/model/Computer/configure.jelly | 9 +---- .../hudson/model/ComputerSet/configure.jelly | 8 +--- .../hudson/model/Job/configure.jelly | 10 +---- .../hudson/model/Run/configure.jelly | 11 +----- .../hudson/model/View/configure.jelly | 6 +-- .../index.jelly | 7 +--- .../index.jelly | 7 +--- .../index.jelly | 7 +--- .../index.jelly | 7 +--- .../index.jelly | 5 +-- .../hudson/slaves/Cloud/configure.jelly | 9 +---- .../jenkins/agents/CloudSet/index.jelly | 1 + .../AppearanceGlobalConfiguration/index.jelly | 7 +--- .../Jenkins/MasterComputer/configure.jelly | 6 +-- .../jenkins/model/Jenkins/configure.jelly | 14 ++----- .../resources/lib/form/saveApplyBar.jelly | 39 +++++++++++++++++++ 20 files changed, 66 insertions(+), 101 deletions(-) create mode 100644 core/src/main/resources/lib/form/saveApplyBar.jelly diff --git a/core/src/main/java/hudson/logging/LogRecorder.java b/core/src/main/java/hudson/logging/LogRecorder.java index c11c1bbfa57e..a4c42bdfcba7 100644 --- a/core/src/main/java/hudson/logging/LogRecorder.java +++ b/core/src/main/java/hudson/logging/LogRecorder.java @@ -44,6 +44,7 @@ import hudson.remoting.VirtualChannel; import hudson.slaves.ComputerListener; import hudson.util.CopyOnWriteList; +import hudson.util.FormApply; import hudson.util.FormValidation; import hudson.util.HttpResponses; import hudson.util.RingBufferLogHandler; @@ -463,7 +464,7 @@ public synchronized void doConfigSubmit(StaplerRequest2 req, StaplerResponse2 rs save(); if (oldFile != null) oldFile.delete(); - rsp.sendRedirect2(redirect); + FormApply.success(redirect).generateResponse(req, rsp, null); } @RequirePOST diff --git a/core/src/main/java/hudson/model/Computer.java b/core/src/main/java/hudson/model/Computer.java index 1047fe97000c..9e3037edf83c 100644 --- a/core/src/main/java/hudson/model/Computer.java +++ b/core/src/main/java/hudson/model/Computer.java @@ -66,6 +66,7 @@ import hudson.util.DaemonThreadFactory; import hudson.util.EditDistance; import hudson.util.ExceptionCatchingThreadFactory; +import hudson.util.FormApply; import hudson.util.Futures; import hudson.util.IOUtils; import hudson.util.NamingThreadFactory; @@ -1512,7 +1513,7 @@ public void doConfigSubmit(StaplerRequest2 req, StaplerResponse2 rsp) throws IOE } // take the user back to the agent top page. - rsp.sendRedirect2("../" + result.getNodeName() + '/'); + FormApply.success("../" + result.getNodeName() + '/').generateResponse(req, rsp, null); } /** diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index 90ffceefb456..dc2c7926f605 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -4159,7 +4159,7 @@ public synchronized void doConfigExecutorsSubmit(StaplerRequest2 req, StaplerRes updateComputerList(); - rsp.sendRedirect(req.getContextPath() + '/' + toComputer().getUrl()); // back to the computer page + FormApply.success(req.getContextPath() + '/' + toComputer().getUrl()).generateResponse(req, rsp, null); } /** diff --git a/core/src/main/resources/hudson/logging/LogRecorder/configure.jelly b/core/src/main/resources/hudson/logging/LogRecorder/configure.jelly index b49ccc278858..ef7c6f3781b2 100644 --- a/core/src/main/resources/hudson/logging/LogRecorder/configure.jelly +++ b/core/src/main/resources/hudson/logging/LogRecorder/configure.jelly @@ -66,12 +66,8 @@ THE SOFTWARE.
    - - - - + - diff --git a/core/src/main/resources/hudson/model/Computer/configure.jelly b/core/src/main/resources/hudson/model/Computer/configure.jelly index bd33078013cd..ce76f5fb2d3b 100644 --- a/core/src/main/resources/hudson/model/Computer/configure.jelly +++ b/core/src/main/resources/hudson/model/Computer/configure.jelly @@ -46,15 +46,8 @@ THE SOFTWARE. - - - - - + - - - diff --git a/core/src/main/resources/hudson/model/ComputerSet/configure.jelly b/core/src/main/resources/hudson/model/ComputerSet/configure.jelly index 9e58aeda59e6..3483113b0fb4 100644 --- a/core/src/main/resources/hudson/model/ComputerSet/configure.jelly +++ b/core/src/main/resources/hudson/model/ComputerSet/configure.jelly @@ -45,14 +45,8 @@ THE SOFTWARE. instances="${it.monitors}" forceRowSet="true"/> - - - - - - + - diff --git a/core/src/main/resources/hudson/model/Job/configure.jelly b/core/src/main/resources/hudson/model/Job/configure.jelly index d226a966558d..3d347a863945 100644 --- a/core/src/main/resources/hudson/model/Job/configure.jelly +++ b/core/src/main/resources/hudson/model/Job/configure.jelly @@ -63,16 +63,8 @@ THE SOFTWARE. - - - - - - + - - - diff --git a/core/src/main/resources/hudson/model/Run/configure.jelly b/core/src/main/resources/hudson/model/Run/configure.jelly index edc2a24e904e..ff2bc3f09944 100644 --- a/core/src/main/resources/hudson/model/Run/configure.jelly +++ b/core/src/main/resources/hudson/model/Run/configure.jelly @@ -38,17 +38,8 @@ THE SOFTWARE. - - - - - - - + - - - diff --git a/core/src/main/resources/hudson/model/View/configure.jelly b/core/src/main/resources/hudson/model/View/configure.jelly index 6f2ff2744fe1..1d47dd542287 100644 --- a/core/src/main/resources/hudson/model/View/configure.jelly +++ b/core/src/main/resources/hudson/model/View/configure.jelly @@ -66,12 +66,8 @@ THE SOFTWARE. - - - - + - diff --git a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAccountAction/index.jelly b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAccountAction/index.jelly index c6b458cecfe9..006458e02048 100644 --- a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAccountAction/index.jelly +++ b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAccountAction/index.jelly @@ -62,11 +62,8 @@ THE SOFTWARE.
    - - - - - + + diff --git a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAppearanceAction/index.jelly b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAppearanceAction/index.jelly index 0d90ad4b2d76..eeceeb7eee0c 100644 --- a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAppearanceAction/index.jelly +++ b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAppearanceAction/index.jelly @@ -62,11 +62,8 @@ THE SOFTWARE. - - - - - + + diff --git a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryExperimentalAction/index.jelly b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryExperimentalAction/index.jelly index 0d90ad4b2d76..eeceeb7eee0c 100644 --- a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryExperimentalAction/index.jelly +++ b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryExperimentalAction/index.jelly @@ -62,11 +62,8 @@ THE SOFTWARE. - - - - - + + diff --git a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryPreferencesAction/index.jelly b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryPreferencesAction/index.jelly index 6971e5abf8d0..ea96f1bc39e8 100644 --- a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryPreferencesAction/index.jelly +++ b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryPreferencesAction/index.jelly @@ -62,11 +62,8 @@ THE SOFTWARE. - - - - - + + diff --git a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategorySecurityAction/index.jelly b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategorySecurityAction/index.jelly index 0d90501fbbb0..a50387704139 100644 --- a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategorySecurityAction/index.jelly +++ b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategorySecurityAction/index.jelly @@ -64,10 +64,7 @@ THE SOFTWARE. - - - - + diff --git a/core/src/main/resources/hudson/slaves/Cloud/configure.jelly b/core/src/main/resources/hudson/slaves/Cloud/configure.jelly index f7479a743176..acb1e2d980fa 100644 --- a/core/src/main/resources/hudson/slaves/Cloud/configure.jelly +++ b/core/src/main/resources/hudson/slaves/Cloud/configure.jelly @@ -37,15 +37,8 @@ THE SOFTWARE. - - - - - + - - - diff --git a/core/src/main/resources/jenkins/agents/CloudSet/index.jelly b/core/src/main/resources/jenkins/agents/CloudSet/index.jelly index f0d1fa0f9c69..3bf3f0183e44 100644 --- a/core/src/main/resources/jenkins/agents/CloudSet/index.jelly +++ b/core/src/main/resources/jenkins/agents/CloudSet/index.jelly @@ -35,6 +35,7 @@ THE SOFTWARE. + diff --git a/core/src/main/resources/jenkins/appearance/AppearanceGlobalConfiguration/index.jelly b/core/src/main/resources/jenkins/appearance/AppearanceGlobalConfiguration/index.jelly index 9c4863c2b3f1..a49d8c765acf 100644 --- a/core/src/main/resources/jenkins/appearance/AppearanceGlobalConfiguration/index.jelly +++ b/core/src/main/resources/jenkins/appearance/AppearanceGlobalConfiguration/index.jelly @@ -44,12 +44,7 @@ THE SOFTWARE.
    - - - - - - + diff --git a/core/src/main/resources/jenkins/model/Jenkins/MasterComputer/configure.jelly b/core/src/main/resources/jenkins/model/Jenkins/MasterComputer/configure.jelly index d71a75949106..d01b9dc210a2 100644 --- a/core/src/main/resources/jenkins/model/Jenkins/MasterComputer/configure.jelly +++ b/core/src/main/resources/jenkins/model/Jenkins/MasterComputer/configure.jelly @@ -55,11 +55,7 @@ THE SOFTWARE. - - - - - + diff --git a/core/src/main/resources/jenkins/model/Jenkins/configure.jelly b/core/src/main/resources/jenkins/model/Jenkins/configure.jelly index 34b067bec99c..b24f0e872cf4 100644 --- a/core/src/main/resources/jenkins/model/Jenkins/configure.jelly +++ b/core/src/main/resources/jenkins/model/Jenkins/configure.jelly @@ -32,6 +32,7 @@ THE SOFTWARE. +
    @@ -46,7 +47,6 @@ THE SOFTWARE. - @@ -60,17 +60,9 @@ THE SOFTWARE. - - - - - - - + + - - -
    diff --git a/core/src/main/resources/lib/form/saveApplyBar.jelly b/core/src/main/resources/lib/form/saveApplyBar.jelly new file mode 100644 index 000000000000..d3860e7e9620 --- /dev/null +++ b/core/src/main/resources/lib/form/saveApplyBar.jelly @@ -0,0 +1,39 @@ + + + + + + Creates the bottom bar for the "Save" and "Apply" buttons. + In read only mode (<j:set var="readOnlyMode" value="true"/>) the buttons are not displayed. + + + + + + + + + + From 8458d66713fc400113d08804c0a6ff4ee9212114 Mon Sep 17 00:00:00 2001 From: Markus Winter Date: Mon, 14 Oct 2024 20:23:26 +0200 Subject: [PATCH 1090/1216] [JENKINS-73813] Show a notification when scheduling a build fails (#9787) Co-authored-by: Jan Faracik <43062514+janfaracik@users.noreply.github.com> Co-authored-by: Tim Jacomb --- .../hudson/views/BuildButtonColumn/column.jelly | 5 ++++- .../views/BuildButtonColumn/column.properties | 1 + .../hudson/views/BuildButtonColumn/icon.js | 8 +++++++- .../lib/hudson/project/configurable.jelly | 2 +- .../lib/hudson/project/configurable.properties | 1 + .../hudson/project/configurable/configurable.js | 8 +++++++- core/src/main/resources/lib/layout/task.jelly | 1 + core/src/main/resources/lib/layout/task/task.js | 8 +++++++- src/main/js/components/dropdowns/jumplists.js | 16 ++++++++++++---- 9 files changed, 41 insertions(+), 9 deletions(-) diff --git a/core/src/main/resources/hudson/views/BuildButtonColumn/column.jelly b/core/src/main/resources/hudson/views/BuildButtonColumn/column.jelly index 8cced8eccbda..ce12897c5efa 100644 --- a/core/src/main/resources/hudson/views/BuildButtonColumn/column.jelly +++ b/core/src/main/resources/hudson/views/BuildButtonColumn/column.jelly @@ -37,7 +37,10 @@ THE SOFTWARE. - + diff --git a/core/src/main/resources/hudson/views/BuildButtonColumn/column.properties b/core/src/main/resources/hudson/views/BuildButtonColumn/column.properties index bf14a6abb2db..86d64eaaf683 100644 --- a/core/src/main/resources/hudson/views/BuildButtonColumn/column.properties +++ b/core/src/main/resources/hudson/views/BuildButtonColumn/column.properties @@ -23,3 +23,4 @@ Task_scheduled={0} scheduled Schedule_a_task=Schedule a {1} for {0} Schedule_a_task_with_parameters=Schedule a {1} with parameters for {0} +Task_schedule_failed=Failed to schedule build for {0} diff --git a/core/src/main/resources/hudson/views/BuildButtonColumn/icon.js b/core/src/main/resources/hudson/views/BuildButtonColumn/icon.js index 80977933eaaa..936c87b0766a 100644 --- a/core/src/main/resources/hudson/views/BuildButtonColumn/icon.js +++ b/core/src/main/resources/hudson/views/BuildButtonColumn/icon.js @@ -5,6 +5,7 @@ Behaviour.specify( function (e) { var url = e.getAttribute("data-url"); var message = e.getAttribute("data-notification"); + var failure = e.getAttribute("data-failure"); var id = e.getAttribute("data-id"); var icon = document.getElementById(id); @@ -12,8 +13,13 @@ Behaviour.specify( fetch(url, { method: "post", headers: crumb.wrap({}), + }).then((rsp) => { + if (rsp.ok) { + notificationBar.show(message, notificationBar.SUCCESS); + } else { + notificationBar.show(failure, notificationBar.ERROR); + } }); - hoverNotification(message, this, -100); return false; }; }, diff --git a/core/src/main/resources/lib/hudson/project/configurable.jelly b/core/src/main/resources/lib/hudson/project/configurable.jelly index 44bac9b2b9bf..907068bcfd6e 100644 --- a/core/src/main/resources/lib/hudson/project/configurable.jelly +++ b/core/src/main/resources/lib/hudson/project/configurable.jelly @@ -27,7 +27,7 @@ THE SOFTWARE. - + diff --git a/core/src/main/resources/lib/hudson/project/configurable.properties b/core/src/main/resources/lib/hudson/project/configurable.properties index b47b64121055..e95746b7dd99 100644 --- a/core/src/main/resources/lib/hudson/project/configurable.properties +++ b/core/src/main/resources/lib/hudson/project/configurable.properties @@ -22,3 +22,4 @@ delete=Delete {0} delete.confirm=Delete the {0} ‘{1}’? +buildFailed=Failed to schedule build. Reload the page and try again. diff --git a/core/src/main/resources/lib/hudson/project/configurable/configurable.js b/core/src/main/resources/lib/hudson/project/configurable/configurable.js index a96e64219502..8ea9dacf17ae 100644 --- a/core/src/main/resources/lib/hudson/project/configurable/configurable.js +++ b/core/src/main/resources/lib/hudson/project/configurable/configurable.js @@ -4,12 +4,18 @@ function foo(el, ev) { let parameterized = el.dataset.parameterized; let success = el.dataset.buildSuccess; + let failure = el.dataset.buildFailure; if (parameterized === "false") { fetch(el.href, { method: "post", headers: crumb.wrap({}), + }).then((rsp) => { + if (rsp.ok) { + notificationBar.show(success, notificationBar.SUCCESS); + } else { + notificationBar.show(failure, notificationBar.ERROR); + } }); - hoverNotification(success, ev.target.parentNode); ev.preventDefault(); } } diff --git a/core/src/main/resources/lib/layout/task.jelly b/core/src/main/resources/lib/layout/task.jelly index 7afcbcfef821..550d9282e51b 100644 --- a/core/src/main/resources/lib/layout/task.jelly +++ b/core/src/main/resources/lib/layout/task.jelly @@ -186,6 +186,7 @@ THE SOFTWARE. href="${href}" class="task-link task-link-no-confirm ${isCurrent ? 'task-link--active' : ''}" data-task-success="${%Done.}" + data-task-failure="${%Failed.}" data-task-post="${attrs.post}" ATTRIBUTES="${attrs}" EXCEPT="badge confirmationMessage contextMenu destructive enabled href icon permission permissions post requiresConfirmation title"> diff --git a/core/src/main/resources/lib/layout/task/task.js b/core/src/main/resources/lib/layout/task/task.js index 5d6fd6fd008c..b0e95063bec8 100644 --- a/core/src/main/resources/lib/layout/task/task.js +++ b/core/src/main/resources/lib/layout/task/task.js @@ -6,6 +6,7 @@ Behaviour.specify("a.task-link-no-confirm", "task-link", 0, function (el) { let post = el.dataset.taskPost; let callback = el.dataset.callback; let success = el.dataset.taskSuccess; + let failure = el.dataset.taskFailure; let href = el.href; if (callback !== undefined) { @@ -20,8 +21,13 @@ Behaviour.specify("a.task-link-no-confirm", "task-link", 0, function (el) { fetch(href, { method: "post", headers: crumb.wrap({}), + }).then((rsp) => { + if (rsp.ok) { + notificationBar(success, notificationBar.SUCCESS); + } else { + notificationBar(failure, notificationBar.ERROR); + } }); - hoverNotification(success, el.parentNode); ev.preventDefault(); }; } diff --git a/src/main/js/components/dropdowns/jumplists.js b/src/main/js/components/dropdowns/jumplists.js index f831f452bafe..c1df72306c25 100644 --- a/src/main/js/components/dropdowns/jumplists.js +++ b/src/main/js/components/dropdowns/jumplists.js @@ -105,11 +105,19 @@ function mapChildrenItemsToDropdownItems(items) { fetch(item.url, { method: "post", headers: crumb.wrap({}), + }).then((rsp) => { + if (rsp.ok) { + notificationBar.show( + item.displayName + ": Done.", + notificationBar.SUCCESS, + ); + } else { + notificationBar.show( + item.displayName + ": Failed.", + notificationBar.ERROR, + ); + } }); - notificationBar.show( - item.displayName + ": Done.", - notificationBar.SUCCESS, - ); } } }, From 1c14bdc4de794db80d13f817e721def64f2f40e6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 11:44:14 -0700 Subject: [PATCH 1091/1216] Update dependency io.jenkins.plugins:asm-api to v9.7.1-97.v4cc844130d97 (#9866) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/pom.xml b/war/pom.xml index b5cb11d590e5..b75dbca848d2 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -502,7 +502,7 @@ THE SOFTWARE. io.jenkins.plugins asm-api - 9.7.1-95.v9f552033802a_ + 9.7.1-97.v4cc844130d97 hpi From 7520ae670f47d934f5d5637cc126ba6b256bae01 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 14:25:55 -0700 Subject: [PATCH 1092/1216] Update dependency org.jenkins-ci.plugins:script-security to v1365 (#9870) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index 6bf29cc3138d..d7ed09f844c1 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -118,7 +118,7 @@ THE SOFTWARE. org.jenkins-ci.plugins script-security - 1362.v67dc1f0e1b_b_3 + 1365.v4778ca_84b_de5
    org.jenkins-ci.plugins.workflow diff --git a/war/pom.xml b/war/pom.xml index b75dbca848d2..43c94afb6048 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -307,7 +307,7 @@ THE SOFTWARE. org.jenkins-ci.plugins script-security - 1362.v67dc1f0e1b_b_3 + 1365.v4778ca_84b_de5 hpi From 91b46327f72ac173a5a900969ed2b07837446e09 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 14:26:12 -0700 Subject: [PATCH 1093/1216] Update dependency io.jenkins.plugins:json-api to v20240303-101.v7a_8666713110 (#9868) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/pom.xml b/war/pom.xml index 43c94afb6048..aeec9af66846 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -551,7 +551,7 @@ THE SOFTWARE. io.jenkins.plugins json-api - 20240303-41.v94e11e6de726 + 20240303-101.v7a_8666713110 hpi From b21f42837783a0a817b7fc4e355f2cb361c9a084 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 15 Oct 2024 13:52:44 +0000 Subject: [PATCH 1094/1216] [maven-release-plugin] prepare release jenkins-2.481 --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 6 +++--- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty12-ee9/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 0065b595ae9a..008ccf3ea993 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.481 jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 2473629d23cc..17c38b15a83f 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.481 cli diff --git a/core/pom.xml b/core/pom.xml index 9bff5e5ad0b2..a3c6d3f3eda9 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.481 jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index fe1e89a120dc..2ad4119f96c1 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.481 jenkins-coverage diff --git a/pom.xml b/pom.xml index 1a472b3fd02a..4682b9629872 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.481 pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - ${scmTag} + jenkins-2.481 https://github.com/jenkinsci/jenkins @@ -75,7 +75,7 @@ THE SOFTWARE. 2.481 -SNAPSHOT - 2024-10-08T14:08:31Z + 2024-10-15T10:33:41Z github diff --git a/test/pom.xml b/test/pom.xml index d7ed09f844c1..b039d4876485 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.481 jenkins-test diff --git a/war/pom.xml b/war/pom.xml index aeec9af66846..0ef1e6ac6f8e 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.481 jenkins-war diff --git a/websocket/jetty12-ee9/pom.xml b/websocket/jetty12-ee9/pom.xml index 2253163b3c4c..1fbb43e55cb3 100644 --- a/websocket/jetty12-ee9/pom.xml +++ b/websocket/jetty12-ee9/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.481 ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 178413f92c8e..6ceb1d232003 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.481 ../.. From b5b9876b516ef198ae21b6c0625ccd216242f872 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 15 Oct 2024 13:53:08 +0000 Subject: [PATCH 1095/1216] [maven-release-plugin] prepare for next development iteration --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 8 ++++---- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty12-ee9/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 12 insertions(+), 12 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 008ccf3ea993..0065b595ae9a 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.481 + ${revision}${changelist} jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 17c38b15a83f..2473629d23cc 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.481 + ${revision}${changelist} cli diff --git a/core/pom.xml b/core/pom.xml index a3c6d3f3eda9..9bff5e5ad0b2 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.481 + ${revision}${changelist} jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index 2ad4119f96c1..fe1e89a120dc 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.481 + ${revision}${changelist} jenkins-coverage diff --git a/pom.xml b/pom.xml index 4682b9629872..a8fc54f26297 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.481 + ${revision}${changelist} pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - jenkins-2.481 + ${scmTag} https://github.com/jenkinsci/jenkins @@ -73,9 +73,9 @@ THE SOFTWARE. - 2.481 + 2.482 -SNAPSHOT - 2024-10-15T10:33:41Z + 2024-10-15T13:52:44Z github diff --git a/test/pom.xml b/test/pom.xml index b039d4876485..d7ed09f844c1 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.481 + ${revision}${changelist} jenkins-test diff --git a/war/pom.xml b/war/pom.xml index 0ef1e6ac6f8e..aeec9af66846 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.481 + ${revision}${changelist} jenkins-war diff --git a/websocket/jetty12-ee9/pom.xml b/websocket/jetty12-ee9/pom.xml index 1fbb43e55cb3..2253163b3c4c 100644 --- a/websocket/jetty12-ee9/pom.xml +++ b/websocket/jetty12-ee9/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.481 + ${revision}${changelist} ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 6ceb1d232003..178413f92c8e 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.481 + ${revision}${changelist} ../.. From aa6876b2a858e4501b6db65d8f343e463d16ad1f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 07:58:58 -0700 Subject: [PATCH 1096/1216] Update dependency stylelint to v16.10.0 (#9869) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 75 ++++++++++++++++++++++++++++++++++------------------ 2 files changed, 50 insertions(+), 27 deletions(-) diff --git a/package.json b/package.json index 62fad3f2a61a..d1c90ea0da96 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "sass": "1.79.5", "sass-loader": "16.0.2", "style-loader": "4.0.0", - "stylelint": "16.9.0", + "stylelint": "16.10.0", "stylelint-checkstyle-reporter": "1.0.0", "stylelint-config-standard": "36.0.1", "webpack": "5.95.0", diff --git a/yarn.lock b/yarn.lock index d3b55f59b810..332960baf1ec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3034,10 +3034,10 @@ __metadata: languageName: node linkType: hard -"css-functions-list@npm:^3.2.2": - version: 3.2.2 - resolution: "css-functions-list@npm:3.2.2" - checksum: 10c0/8638a63d0cf1bdc50d4a752ec1c94a57e9953c3b03eace4f5526db20bec3c061e95089f905dbb4999c44b9780ce777ba856967560f6d15119a303f6030901c10 +"css-functions-list@npm:^3.2.3": + version: 3.2.3 + resolution: "css-functions-list@npm:3.2.3" + checksum: 10c0/03f9ed34eeed310d2b1cf0e524eea02bc5f87854a4de85f8957ea432ab1036841a3fb00879590519f7bb8fda40d992ce7a72fa9b61696ca1dc53b90064858f96 languageName: node linkType: hard @@ -3139,6 +3139,16 @@ __metadata: languageName: node linkType: hard +"css-tree@npm:^3.0.0": + version: 3.0.0 + resolution: "css-tree@npm:3.0.0" + dependencies: + mdn-data: "npm:2.10.0" + source-map-js: "npm:^1.0.1" + checksum: 10c0/43d44fdf7004ae91d73d486f17894fef77efa33747a6752b9241cf0f5fb47fabc16ec34a96a993651d9014dfdeee803d7c5fcd3548214252ee19f4e5c98999b2 + languageName: node + linkType: hard + "css-tree@npm:~2.2.0": version: 2.2.1 resolution: "css-tree@npm:2.2.1" @@ -3242,7 +3252,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.6": +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.7": version: 4.3.7 resolution: "debug@npm:4.3.7" dependencies: @@ -3702,7 +3712,7 @@ __metadata: languageName: node linkType: hard -"file-entry-cache@npm:^9.0.0": +"file-entry-cache@npm:^9.1.0": version: 9.1.0 resolution: "file-entry-cache@npm:9.1.0" dependencies: @@ -4136,13 +4146,20 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.2.0, ignore@npm:^5.3.2": +"ignore@npm:^5.2.0": version: 5.3.2 resolution: "ignore@npm:5.3.2" checksum: 10c0/f9f652c957983634ded1e7f02da3b559a0d4cc210fca3792cb67f1b153623c9c42efdc1c4121af171e295444459fc4a9201101fb041b1104a3c000bccb188337 languageName: node linkType: hard +"ignore@npm:^6.0.2": + version: 6.0.2 + resolution: "ignore@npm:6.0.2" + checksum: 10c0/9a38feac1861906a78ba0f03e8ef3cd6b0526dce2a1a84e1009324b557763afeb9c3ebcc04666b21f7bbf71adda45e76781bb9e2eaa0903d45dcaded634454f5 + languageName: node + linkType: hard + "immutable@npm:^4.0.0": version: 4.3.7 resolution: "immutable@npm:4.3.7" @@ -4395,7 +4412,7 @@ __metadata: sass-loader: "npm:16.0.2" sortablejs: "npm:1.15.3" style-loader: "npm:4.0.0" - stylelint: "npm:16.9.0" + stylelint: "npm:16.10.0" stylelint-checkstyle-reporter: "npm:1.0.0" stylelint-config-standard: "npm:36.0.1" tippy.js: "npm:6.3.7" @@ -4761,6 +4778,13 @@ __metadata: languageName: node linkType: hard +"mdn-data@npm:2.10.0": + version: 2.10.0 + resolution: "mdn-data@npm:2.10.0" + checksum: 10c0/f6f1a6a6eb092bab250d06f6f6c7cb1733a77a17e7119aac829ad67d4322bbf6a30df3c6d88686e71942e66bd49274b2ddfede22a1d3df0d6c49a56fbd09eb7c + languageName: node + linkType: hard + "meow@npm:^13.2.0": version: 13.2.0 resolution: "meow@npm:13.2.0" @@ -6006,12 +6030,12 @@ __metadata: languageName: node linkType: hard -"postcss-safe-parser@npm:^7.0.0": - version: 7.0.0 - resolution: "postcss-safe-parser@npm:7.0.0" +"postcss-safe-parser@npm:^7.0.1": + version: 7.0.1 + resolution: "postcss-safe-parser@npm:7.0.1" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/4217afd8ce2809e959dc365e4675f499303cc6b91f94db06c8164422822db2d3b3124df701ee2234db4127ad05619b016bfb9c2bccae9bf9cf898a396f1632c9 + checksum: 10c0/6957b10b818bd8d4664ec0e548af967f7549abedfb37f844d389571d36af681340f41f9477b9ccf34bcc7599bdef222d1d72e79c64373001fae77089fba6d965 languageName: node linkType: hard @@ -6075,7 +6099,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:8.4.47, postcss@npm:^8.4.33, postcss@npm:^8.4.38, postcss@npm:^8.4.41": +"postcss@npm:8.4.47, postcss@npm:^8.4.33, postcss@npm:^8.4.38, postcss@npm:^8.4.47": version: 8.4.47 resolution: "postcss@npm:8.4.47" dependencies: @@ -6604,7 +6628,7 @@ __metadata: languageName: node linkType: hard -"strip-ansi@npm:^7.0.1, strip-ansi@npm:^7.1.0": +"strip-ansi@npm:^7.0.1": version: 7.1.0 resolution: "strip-ansi@npm:7.1.0" dependencies: @@ -6673,9 +6697,9 @@ __metadata: languageName: node linkType: hard -"stylelint@npm:16.9.0": - version: 16.9.0 - resolution: "stylelint@npm:16.9.0" +"stylelint@npm:16.10.0": + version: 16.10.0 + resolution: "stylelint@npm:16.10.0" dependencies: "@csstools/css-parser-algorithms": "npm:^3.0.1" "@csstools/css-tokenizer": "npm:^3.0.1" @@ -6685,17 +6709,17 @@ __metadata: balanced-match: "npm:^2.0.0" colord: "npm:^2.9.3" cosmiconfig: "npm:^9.0.0" - css-functions-list: "npm:^3.2.2" - css-tree: "npm:^2.3.1" - debug: "npm:^4.3.6" + css-functions-list: "npm:^3.2.3" + css-tree: "npm:^3.0.0" + debug: "npm:^4.3.7" fast-glob: "npm:^3.3.2" fastest-levenshtein: "npm:^1.0.16" - file-entry-cache: "npm:^9.0.0" + file-entry-cache: "npm:^9.1.0" global-modules: "npm:^2.0.0" globby: "npm:^11.1.0" globjoin: "npm:^0.1.4" html-tags: "npm:^3.3.1" - ignore: "npm:^5.3.2" + ignore: "npm:^6.0.2" imurmurhash: "npm:^0.1.4" is-plain-object: "npm:^5.0.0" known-css-properties: "npm:^0.34.0" @@ -6704,21 +6728,20 @@ __metadata: micromatch: "npm:^4.0.8" normalize-path: "npm:^3.0.0" picocolors: "npm:^1.0.1" - postcss: "npm:^8.4.41" + postcss: "npm:^8.4.47" postcss-resolve-nested-selector: "npm:^0.1.6" - postcss-safe-parser: "npm:^7.0.0" + postcss-safe-parser: "npm:^7.0.1" postcss-selector-parser: "npm:^6.1.2" postcss-value-parser: "npm:^4.2.0" resolve-from: "npm:^5.0.0" string-width: "npm:^4.2.3" - strip-ansi: "npm:^7.1.0" supports-hyperlinks: "npm:^3.1.0" svg-tags: "npm:^1.0.0" table: "npm:^6.8.2" write-file-atomic: "npm:^5.0.1" bin: stylelint: bin/stylelint.mjs - checksum: 10c0/d3ff9c8945c56b04a2fa16ec33d163325496d5db94b6fcb5adf74c76f7f794ac992888273f9a3317652ba8b6195168b2ffff382ca2a667a241e2ace8c9505ae2 + checksum: 10c0/d07dd156c225d16c740995daacd78090f7fc317602e87bda2fca323a4ae427a8526d724f3089df3b2185df4520f987547668ceea9b30985988ccbc514034aa21 languageName: node linkType: hard From 8d5c614237aeb7114d3329e05cc12a023025bb31 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 07:59:42 -0700 Subject: [PATCH 1097/1216] Update jenkins/ath Docker tag to v6040 (#9872) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- ath.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ath.sh b/ath.sh index 7009d692b8d0..3326a2118260 100644 --- a/ath.sh +++ b/ath.sh @@ -6,7 +6,7 @@ set -o xtrace cd "$(dirname "$0")" # https://github.com/jenkinsci/acceptance-test-harness/releases -export ATH_VERSION=6038.v190f938efc87 +export ATH_VERSION=6040.v72ed2f5b_59f6 if [[ $# -eq 0 ]]; then export JDK=17 From 29a711458a48578c08a6027b2b2adf57be916a0c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 08:00:14 -0700 Subject: [PATCH 1098/1216] Update dependency io.jenkins.plugins:echarts-api to v5.5.1-2 (#9873) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/pom.xml b/war/pom.xml index aeec9af66846..b7b41897bc9e 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -365,7 +365,7 @@ THE SOFTWARE. io.jenkins.plugins echarts-api - 5.5.1-1 + 5.5.1-2 hpi From b50cf513c151ad81b0c6dd18c4b66e5c0d02c2bd Mon Sep 17 00:00:00 2001 From: Vincent Latombe Date: Tue, 15 Oct 2024 17:32:02 +0200 Subject: [PATCH 1099/1216] [JENKINS-30101][JENKINS-30175] Simplify persistence design for temporarily offline status (#9855) Co-authored-by: Jesse Glick --- core/src/main/java/hudson/model/Computer.java | 109 ++++++++++-------- core/src/main/java/hudson/model/Node.java | 26 ++--- .../AbstractNodeMonitorDescriptor.java | 4 +- .../main/java/hudson/slaves/OfflineCause.java | 32 ++++- .../model/Computer/setOfflineCause.jelly | 2 +- .../hudson/cli/OfflineNodeCommandTest.java | 4 +- test/src/test/java/hudson/model/NodeTest.java | 10 +- 7 files changed, 113 insertions(+), 74 deletions(-) diff --git a/core/src/main/java/hudson/model/Computer.java b/core/src/main/java/hudson/model/Computer.java index 9e3037edf83c..8c3d814c91fe 100644 --- a/core/src/main/java/hudson/model/Computer.java +++ b/core/src/main/java/hudson/model/Computer.java @@ -180,11 +180,6 @@ private long connectTime = 0; - /** - * True if Jenkins shouldn't start new builds on this node. - */ - private boolean temporarilyOffline; - /** * {@link Node} object may be created and deleted independently * from this object. @@ -361,6 +356,13 @@ public AnnotatedLargeText getLogText() { */ @Exported public OfflineCause getOfflineCause() { + var node = getNode(); + if (node != null) { + var temporaryOfflineCause = node.getTemporaryOfflineCause(); + if (temporaryOfflineCause != null) { + return temporaryOfflineCause; + } + } return offlineCause; } @@ -372,6 +374,7 @@ public boolean hasOfflineCause() { @Exported @Override public String getOfflineCauseReason() { + var offlineCause = getOfflineCause(); if (offlineCause == null) { return ""; } @@ -550,7 +553,7 @@ public void cliDisconnect(String cause) throws ExecutionException, InterruptedEx @Deprecated public void cliOffline(String cause) throws ExecutionException, InterruptedException { checkPermission(DISCONNECT); - setTemporarilyOffline(true, new ByCLI(cause)); + setTemporaryOfflineCause(new ByCLI(cause)); } /** @@ -559,7 +562,7 @@ public void cliOffline(String cause) throws ExecutionException, InterruptedExcep @Deprecated public void cliOnline() throws ExecutionException, InterruptedException { checkPermission(CONNECT); - setTemporarilyOffline(false, null); + setTemporaryOfflineCause(null); } /** @@ -621,7 +624,7 @@ public BuildTimelineWidget getTimeline() { @Exported @Override public boolean isOffline() { - return temporarilyOffline || getChannel() == null; + return isTemporarilyOffline() || getChannel() == null; } public final boolean isOnline() { @@ -670,41 +673,64 @@ public boolean isLaunchSupported() { @Exported @Deprecated public boolean isTemporarilyOffline() { - return temporarilyOffline; + var node = getNode(); + return node != null && node.isTemporarilyOffline(); } /** * @deprecated as of 1.320. - * Use {@link #setTemporarilyOffline(boolean, OfflineCause)} + * Use {@link #setTemporaryOfflineCause(OfflineCause)} */ @Deprecated public void setTemporarilyOffline(boolean temporarilyOffline) { - setTemporarilyOffline(temporarilyOffline, null); + setTemporaryOfflineCause(temporarilyOffline ? new OfflineCause.LegacyOfflineCause() : null); + } + + /** + * @deprecated + * Use {@link #setTemporaryOfflineCause(OfflineCause)} instead. + */ + @Deprecated(since = "TODO") + public void setTemporarilyOffline(boolean temporarilyOffline, OfflineCause cause) { + if (cause == null) { + setTemporarilyOffline(temporarilyOffline); + } else { + setTemporaryOfflineCause(temporarilyOffline ? cause : null); + } } /** * Marks the computer as temporarily offline. This retains the underlying * {@link Channel} connection, but prevent builds from executing. * - * @param cause - * If the first argument is true, specify the reason why the node is being put - * offline. + * @param temporaryOfflineCause The reason why the node is being put offline. + * If null, this cancels the status + * @since TODO */ - public void setTemporarilyOffline(boolean temporarilyOffline, OfflineCause cause) { - offlineCause = temporarilyOffline ? cause : null; - this.temporarilyOffline = temporarilyOffline; - Node node = getNode(); - if (node != null) { - node.setTemporaryOfflineCause(offlineCause); + public void setTemporaryOfflineCause(@CheckForNull OfflineCause temporaryOfflineCause) { + var node = getNode(); + if (node == null) { + throw new IllegalStateException("Can't set a temporary offline cause if the node has been removed"); } - synchronized (statusChangeLock) { - statusChangeLock.notifyAll(); + node.setTemporaryOfflineCause(temporaryOfflineCause); + } + + /** + * @since TODO + * @return If the node is temporarily offline, the reason why. + */ + @SuppressWarnings("unused") // used by setOfflineCause.jelly + public String getTemporaryOfflineCauseReason() { + var node = getNode(); + if (node == null) { + // Node was deleted; computer still exists + return null; } - if (temporarilyOffline) { - Listeners.notify(ComputerListener.class, false, l -> l.onTemporarilyOffline(this, cause)); - } else { - Listeners.notify(ComputerListener.class, false, l -> l.onTemporarilyOnline(this)); + var cause = node.getTemporaryOfflineCause(); + if (cause instanceof OfflineCause.UserCause userCause) { + return userCause.getMessage(); } + return cause != null ? cause.toString() : ""; } @Exported @@ -786,16 +812,6 @@ protected void setNode(Node node) { this.nodeName = null; setNumExecutors(node.getNumExecutors()); - if (this.temporarilyOffline) { - // When we get a new node, push our current temp offline - // status to it (as the status is not carried across - // configuration changes that recreate the node). - // Since this is also called the very first time this - // Computer is created, avoid pushing an empty status - // as that could overwrite any status that the Node - // brought along from its persisted config data. - node.setTemporaryOfflineCause(this.offlineCause); - } } /** @@ -1397,24 +1413,23 @@ public void doRssLatest(StaplerRequest2 req, StaplerResponse2 rsp) throws IOExce @RequirePOST public HttpResponse doToggleOffline(@QueryParameter String offlineMessage) throws IOException, ServletException { - if (!temporarilyOffline) { - checkPermission(DISCONNECT); - offlineMessage = Util.fixEmptyAndTrim(offlineMessage); - setTemporarilyOffline(!temporarilyOffline, - new OfflineCause.UserCause(User.current(), offlineMessage)); - } else { + var node = getNode(); + if (node == null) { + return HttpResponses.notFound(); + } + if (node.isTemporarilyOffline()) { checkPermission(CONNECT); - setTemporarilyOffline(!temporarilyOffline, null); + setTemporaryOfflineCause(null); + return HttpResponses.redirectToDot(); + } else { + return doChangeOfflineCause(offlineMessage); } - return HttpResponses.redirectToDot(); } @RequirePOST public HttpResponse doChangeOfflineCause(@QueryParameter String offlineMessage) throws IOException, ServletException { checkPermission(DISCONNECT); - offlineMessage = Util.fixEmptyAndTrim(offlineMessage); - setTemporarilyOffline(true, - new OfflineCause.UserCause(User.current(), offlineMessage)); + setTemporaryOfflineCause(new OfflineCause.UserCause(User.current(), Util.fixEmptyAndTrim(offlineMessage))); return HttpResponses.redirectToDot(); } diff --git a/core/src/main/java/hudson/model/Node.java b/core/src/main/java/hudson/model/Node.java index 55cacd269133..d918b0f1db34 100644 --- a/core/src/main/java/hudson/model/Node.java +++ b/core/src/main/java/hudson/model/Node.java @@ -30,7 +30,6 @@ import edu.umd.cs.findbugs.annotations.NonNull; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import hudson.BulkChange; -import hudson.Extension; import hudson.ExtensionPoint; import hudson.FilePath; import hudson.FileSystemProvisioner; @@ -69,6 +68,7 @@ import java.util.logging.Logger; import jenkins.model.Jenkins; import jenkins.model.Nodes; +import jenkins.util.Listeners; import jenkins.util.SystemProperties; import jenkins.util.io.OnMaster; import net.sf.json.JSONObject; @@ -265,24 +265,13 @@ public void onLoad(Nodes parent, String name) { } /** - * Let Nodes be aware of the lifecycle of their own {@link Computer}. + * @return true if this node has a temporary offline cause set. */ - @Extension - public static class InternalComputerListener extends ComputerListener { - @Override - public void onOnline(Computer c, TaskListener listener) { - Node node = c.getNode(); - - // At startup, we need to restore any previously in-effect temp offline cause. - // We wait until the computer is started rather than getting the data to it sooner - // so that the normal computer start up processing works as expected. - if (node != null && node.temporaryOfflineCause != null && node.temporaryOfflineCause != c.getOfflineCause()) { - c.setTemporarilyOffline(true, node.temporaryOfflineCause); - } - } + boolean isTemporarilyOffline() { + return temporaryOfflineCause != null; } - private OfflineCause temporaryOfflineCause; + private volatile OfflineCause temporaryOfflineCause; /** * Enable a {@link Computer} to inform its node when it is taken @@ -294,6 +283,11 @@ void setTemporaryOfflineCause(OfflineCause cause) { temporaryOfflineCause = cause; save(); } + if (temporaryOfflineCause != null) { + Listeners.notify(ComputerListener.class, false, l -> l.onTemporarilyOffline(toComputer(), temporaryOfflineCause)); + } else { + Listeners.notify(ComputerListener.class, false, l -> l.onTemporarilyOnline(toComputer())); + } } catch (java.io.IOException e) { LOGGER.warning("Unable to complete save, temporary offline status will not be persisted: " + e.getMessage()); } diff --git a/core/src/main/java/hudson/node_monitors/AbstractNodeMonitorDescriptor.java b/core/src/main/java/hudson/node_monitors/AbstractNodeMonitorDescriptor.java index 7cd1c75abc8d..d49924508bee 100644 --- a/core/src/main/java/hudson/node_monitors/AbstractNodeMonitorDescriptor.java +++ b/core/src/main/java/hudson/node_monitors/AbstractNodeMonitorDescriptor.java @@ -233,7 +233,7 @@ public boolean isIgnored() { */ protected boolean markOnline(Computer c) { if (isIgnored() || c.isOnline()) return false; // noop - c.setTemporarilyOffline(false, null); + c.setTemporaryOfflineCause(null); return true; } @@ -247,7 +247,7 @@ protected boolean markOnline(Computer c) { protected boolean markOffline(Computer c, OfflineCause oc) { if (isIgnored() || c.isTemporarilyOffline()) return false; // noop - c.setTemporarilyOffline(true, oc); + c.setTemporaryOfflineCause(oc); // notify the admin MonitorMarkedNodeOffline no = AdministrativeMonitor.all().get(MonitorMarkedNodeOffline.class); diff --git a/core/src/main/java/hudson/slaves/OfflineCause.java b/core/src/main/java/hudson/slaves/OfflineCause.java index 556c0ebb0c53..2a267ef03a4a 100644 --- a/core/src/main/java/hudson/slaves/OfflineCause.java +++ b/core/src/main/java/hudson/slaves/OfflineCause.java @@ -33,6 +33,8 @@ import java.util.Date; import jenkins.model.Jenkins; import org.jvnet.localizer.Localizable; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; @@ -71,6 +73,19 @@ public long getTimestamp() { return new Date(timestamp); } + /** + * @deprecated Only exists for backward compatibility. + * @see Computer#setTemporarilyOffline(boolean) + */ + @Deprecated + @Restricted(NoExternalUse.class) + public static class LegacyOfflineCause extends OfflineCause { + @Exported(name = "description") @Override + public String toString() { + return ""; + } + } + /** * {@link OfflineCause} that renders a static text, * but without any further UI. @@ -136,15 +151,15 @@ public static class UserCause extends SimpleOfflineCause { // null when unknown private /*final*/ @CheckForNull String userId; + private final String message; + public UserCause(@CheckForNull User user, @CheckForNull String message) { - this( - user != null ? user.getId() : null, - message != null ? " : " + message : "" - ); + this(user != null ? user.getId() : null, message); } private UserCause(String userId, String message) { - super(hudson.slaves.Messages._SlaveComputer_DisconnectedBy(userId != null ? userId : Jenkins.ANONYMOUS2.getName(), message)); + super(hudson.slaves.Messages._SlaveComputer_DisconnectedBy(userId != null ? userId : Jenkins.ANONYMOUS2.getName(), message != null ? " : " + message : "")); + this.message = message; this.userId = userId; } @@ -155,6 +170,13 @@ public User getUser() { ; } + /** + * @return the message that was provided when the computer was taken offline + */ + public String getMessage() { + return message; + } + // Storing the User in a filed was a mistake, switch to userId private Object readResolve() throws ObjectStreamException { if (user != null) { diff --git a/core/src/main/resources/hudson/model/Computer/setOfflineCause.jelly b/core/src/main/resources/hudson/model/Computer/setOfflineCause.jelly index 587057a464e1..8bac3c7e27c7 100644 --- a/core/src/main/resources/hudson/model/Computer/setOfflineCause.jelly +++ b/core/src/main/resources/hudson/model/Computer/setOfflineCause.jelly @@ -34,7 +34,7 @@ THE SOFTWARE. ${%blurb}

    - +

    diff --git a/test/src/test/java/hudson/cli/OfflineNodeCommandTest.java b/test/src/test/java/hudson/cli/OfflineNodeCommandTest.java index 564c1b098baf..878001e1b145 100644 --- a/test/src/test/java/hudson/cli/OfflineNodeCommandTest.java +++ b/test/src/test/java/hudson/cli/OfflineNodeCommandTest.java @@ -118,7 +118,7 @@ public void offlineNodeShouldSucceedOnOfflineNode() throws Exception { slave.toComputer().setTemporarilyOffline(true, null); assertThat(slave.toComputer().isOffline(), equalTo(true)); assertThat(slave.toComputer().isTemporarilyOffline(), equalTo(true)); - assertThat(slave.toComputer().getOfflineCause(), equalTo(null)); + assertThat(slave.toComputer().getOfflineCause(), instanceOf(OfflineCause.LegacyOfflineCause.class)); final CLICommandInvoker.Result result = command .authorizedTo(Computer.DISCONNECT, Jenkins.READ) @@ -177,7 +177,7 @@ public void offlineNodeShouldSucceedOnOfflineNodeWithCause() throws Exception { slave.toComputer().setTemporarilyOffline(true, null); assertThat(slave.toComputer().isOffline(), equalTo(true)); assertThat(slave.toComputer().isTemporarilyOffline(), equalTo(true)); - assertThat(slave.toComputer().getOfflineCause(), equalTo(null)); + assertThat(slave.toComputer().getOfflineCause(), instanceOf(OfflineCause.LegacyOfflineCause.class)); final CLICommandInvoker.Result result = command .authorizedTo(Computer.DISCONNECT, Jenkins.READ) diff --git a/test/src/test/java/hudson/model/NodeTest.java b/test/src/test/java/hudson/model/NodeTest.java index 39ffe25f7643..cae1c2120982 100644 --- a/test/src/test/java/hudson/model/NodeTest.java +++ b/test/src/test/java/hudson/model/NodeTest.java @@ -27,6 +27,8 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.endsWith; import static org.hamcrest.Matchers.instanceOf; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.nullValue; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; @@ -102,7 +104,10 @@ public void testSetTemporaryOfflineCause() throws Exception { assertEquals("Node should have offline cause which was set.", cause, node.toComputer().getOfflineCause()); OfflineCause cause2 = new OfflineCause.ByCLI("another message"); node.setTemporaryOfflineCause(cause2); - assertEquals("Node should have original offline cause after setting another.", cause, node.toComputer().getOfflineCause()); + assertEquals("Node should have the new offline cause.", cause2, node.toComputer().getOfflineCause()); + // Exists in some plugins + node.toComputer().setTemporarilyOffline(false, new OfflineCause.ByCLI("A third message")); + assertThat(node.getTemporaryOfflineCause(), nullValue()); } @Test @@ -115,6 +120,8 @@ public void testOfflineCause() throws Exception { try (ACLContext ignored = ACL.as2(someone.impersonate2())) { computer.doToggleOffline("original message"); cause = (OfflineCause.UserCause) computer.getOfflineCause(); + assertThat(computer.getOfflineCauseReason(), is("original message")); + assertThat(computer.getTemporaryOfflineCauseReason(), is("original message")); assertTrue(cause.toString(), cause.toString().matches("^.*?Disconnected by someone@somewhere.com : original message")); assertEquals(someone, cause.getUser()); } @@ -122,6 +129,7 @@ public void testOfflineCause() throws Exception { try (ACLContext ignored = ACL.as2(root.impersonate2())) { computer.doChangeOfflineCause("new message"); cause = (OfflineCause.UserCause) computer.getOfflineCause(); + assertThat(computer.getTemporaryOfflineCauseReason(), is("new message")); assertTrue(cause.toString(), cause.toString().matches("^.*?Disconnected by root@localhost : new message")); assertEquals(root, cause.getUser()); From c41791ef322fd07bdd1d618732c69f71f9a67462 Mon Sep 17 00:00:00 2001 From: shenxianpeng Date: Tue, 15 Oct 2024 19:41:25 +0300 Subject: [PATCH 1100/1216] Fix run generate-weekly-changelog.sh failed (#9874) closes --- .github/workflows/changelog.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml index 7634f375c150..f7032327b8df 100644 --- a/.github/workflows/changelog.yml +++ b/.github/workflows/changelog.yml @@ -67,4 +67,8 @@ jobs: GIT_COMMITTER_EMAIL: <86592549+jenkins-infra-changelog-generator[bot]@users.noreply.github.com> run: | wget --quiet https://raw.githubusercontent.com/jenkinsci/core-changelog-generator/master/generate-weekly-changelog.sh + # Create a Python virtual environment for pip install + # See https://github.com/jenkinsci/core-changelog-generator/issues/37 + python3 -m venv venv + source venv/bin/activate bash generate-weekly-changelog.sh From 5019eb900cc3e39590249f8d20ffc87310b96821 Mon Sep 17 00:00:00 2001 From: Devin Nusbaum Date: Tue, 15 Oct 2024 17:36:47 -0400 Subject: [PATCH 1101/1216] Stop build in `DeleteBuildsCommandTest.deleteBuildsShouldFailIfTheBuildIsRunning` so test can be cleaned up on Windows consistently (#9876) --- test/src/test/java/hudson/cli/DeleteBuildsCommandTest.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/test/src/test/java/hudson/cli/DeleteBuildsCommandTest.java b/test/src/test/java/hudson/cli/DeleteBuildsCommandTest.java index 5e2e917e9808..08e6552f610e 100644 --- a/test/src/test/java/hudson/cli/DeleteBuildsCommandTest.java +++ b/test/src/test/java/hudson/cli/DeleteBuildsCommandTest.java @@ -36,6 +36,7 @@ import hudson.model.ExecutorTest; import hudson.model.FreeStyleProject; import hudson.model.Item; +import hudson.model.Result; import hudson.model.Run; import hudson.model.labels.LabelAtom; import hudson.tasks.Shell; @@ -139,7 +140,7 @@ public class DeleteBuildsCommandTest { @Issue("JENKINS-73835") @Test public void deleteBuildsShouldFailIfTheBuildIsRunning() throws Exception { FreeStyleProject project = j.createFreeStyleProject("aProject"); - ExecutorTest.startBlockingBuild(project); + var build = ExecutorTest.startBlockingBuild(project); assertThat(((FreeStyleProject) j.jenkins.getItem("aProject")).getBuilds(), hasSize(1)); final CLICommandInvoker.Result result = command @@ -148,6 +149,9 @@ public class DeleteBuildsCommandTest { assertThat(result, failedWith(1)); assertThat(result, hasNoStandardOutput()); assertThat(result.stderr(), containsString("Unable to delete aProject #1 because it is still running")); + + build.doStop(); + j.assertBuildStatus(Result.ABORTED, j.waitForCompletion(build)); } @Test public void deleteBuildsShouldSuccessEvenTheBuildIsStuckInTheQueue() throws Exception { From dc4ad7e1a872e6dd9504f6c1ff1f95d84ca6046b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 16:53:45 -0700 Subject: [PATCH 1102/1216] Update dependency io.jenkins.plugins:gson-api to v2.11.0-85.v1f4e87273c33 (#9867) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/pom.xml b/war/pom.xml index b7b41897bc9e..f0ff4fdd9870 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -523,7 +523,7 @@ THE SOFTWARE. io.jenkins.plugins gson-api - 2.11.0-41.v019fcf6125dc + 2.11.0-85.v1f4e87273c33 hpi From 4413da07f9e6d0e4a8fb96a1ff646b9e59e98d14 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 10:17:54 -0700 Subject: [PATCH 1103/1216] Update dependency io.jenkins.plugins:echarts-api to v5.5.1-3 (#9879) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/pom.xml b/war/pom.xml index f0ff4fdd9870..fd16177eabf8 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -365,7 +365,7 @@ THE SOFTWARE. io.jenkins.plugins echarts-api - 5.5.1-2 + 5.5.1-3 hpi From e1a6b190d4d71e95a8e00facd52ce7718909b9e8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 10:18:42 -0700 Subject: [PATCH 1104/1216] Update dependency org.jenkins-ci:jenkins to v1.125 (#9877) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- core/src/site/site.xml | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/site/site.xml b/core/src/site/site.xml index 8b17895170df..a840aba6842c 100644 --- a/core/src/site/site.xml +++ b/core/src/site/site.xml @@ -40,7 +40,7 @@ org.apache.maven.skins maven-fluido-skin - 1.12.0 + 2.0.0-M11 diff --git a/pom.xml b/pom.xml index a8fc54f26297..ef3c35a41d94 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci jenkins - 1.123 + 1.125 From e097c2218e2c406b782ef0447f44a48672b4bf14 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 14:56:23 -0700 Subject: [PATCH 1105/1216] Update dependency org.jenkins-ci.plugins.workflow:workflow-support to v930 (#9881) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index d7ed09f844c1..2f4dea0ecf20 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -134,7 +134,7 @@ THE SOFTWARE. org.jenkins-ci.plugins.workflow workflow-support - 926.v9f4f9b_b_98c19 + 930.vf51d22b_ce488 diff --git a/war/pom.xml b/war/pom.xml index fd16177eabf8..c172a6ae3334 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -350,7 +350,7 @@ THE SOFTWARE. org.jenkins-ci.plugins.workflow workflow-support - 926.v9f4f9b_b_98c19 + 930.vf51d22b_ce488 hpi From a4f6f61d29303e3549a825c2a3bfa3e2021f6cff Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 18:10:58 -0700 Subject: [PATCH 1106/1216] Update dependency org.jenkins-ci.main:remoting to v3270 (#9880) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ef3c35a41d94..c0f32e2a0bc0 100644 --- a/pom.xml +++ b/pom.xml @@ -87,7 +87,7 @@ THE SOFTWARE. https://www.jenkins.io/changelog - 3261.v9c670a_4748a_9 + 3270.v9e0d174083ed Max Medium From 8612f16534d9f04a33b6a6f407bccb040315eec0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 08:36:50 -0700 Subject: [PATCH 1107/1216] Update dependency org.springframework:spring-framework-bom to v6.1.14 (#9884) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bom/pom.xml b/bom/pom.xml index 0065b595ae9a..bd8699441c8b 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -62,7 +62,7 @@ THE SOFTWARE. org.springframework spring-framework-bom - 6.1.13 + 6.1.14 pom import From 091953fb3ea25a7c0fb0e78e8c31a80258a24c28 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 14:16:37 -0700 Subject: [PATCH 1108/1216] Update dependency org.jenkins-ci.plugins:junit to v1307 (#9886) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index 2f4dea0ecf20..726af9deeece 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -230,7 +230,7 @@ THE SOFTWARE. org.jenkins-ci.plugins junit - 1304.vc85a_b_ca_96613 + 1307.vdd5b_2646279e test diff --git a/war/pom.xml b/war/pom.xml index c172a6ae3334..9c3ad8fd30e4 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -314,7 +314,7 @@ THE SOFTWARE. org.jenkins-ci.plugins junit - 1304.vc85a_b_ca_96613 + 1307.vdd5b_2646279e hpi From 5c6b0932cf380c38c86a06693fbfbffde1bb8b69 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 20 Oct 2024 09:21:29 +0100 Subject: [PATCH 1109/1216] Update dependency sass to v1.80.1 (#9889) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index d1c90ea0da96..4fe09a1d1515 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "postcss-preset-env": "10.0.7", "postcss-scss": "4.0.9", "prettier": "3.3.3", - "sass": "1.79.5", + "sass": "1.80.1", "sass-loader": "16.0.2", "style-loader": "4.0.0", "stylelint": "16.10.0", diff --git a/yarn.lock b/yarn.lock index 332960baf1ec..9e6ed9c952d2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4408,7 +4408,7 @@ __metadata: postcss-preset-env: "npm:10.0.7" postcss-scss: "npm:4.0.9" prettier: "npm:3.3.3" - sass: "npm:1.79.5" + sass: "npm:1.80.1" sass-loader: "npm:16.0.2" sortablejs: "npm:1.15.3" style-loader: "npm:4.0.0" @@ -6385,9 +6385,9 @@ __metadata: languageName: node linkType: hard -"sass@npm:1.79.5": - version: 1.79.5 - resolution: "sass@npm:1.79.5" +"sass@npm:1.80.1": + version: 1.80.1 + resolution: "sass@npm:1.80.1" dependencies: "@parcel/watcher": "npm:^2.4.1" chokidar: "npm:^4.0.0" @@ -6395,7 +6395,7 @@ __metadata: source-map-js: "npm:>=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 10c0/7331865fd1d0c03e6e180a4fe0e175ac1bf1214f6c77f0d99ad72fbe2ed9ede3fab8a64c0c41471cb8a358a9d11624ec59a49283f9b6070eb99c522b34b814bf + checksum: 10c0/91ec2b8bcba4c3c68c047fdcbe04cb82646b5cc6446e04d9134ff3c642d9895363de5cbf88869f0a6aa81bcd2de9b8ccba7df7ff35d33a07a18754014ee7a31a languageName: node linkType: hard From c72033e3d175c415cb379bbc3f1a7befb0aca4f5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 20 Oct 2024 09:22:59 +0100 Subject: [PATCH 1110/1216] Update dependency org.jenkins-ci.main:remoting to v3272 (#9888) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c0f32e2a0bc0..dac90b2fb41d 100644 --- a/pom.xml +++ b/pom.xml @@ -87,7 +87,7 @@ THE SOFTWARE. https://www.jenkins.io/changelog - 3270.v9e0d174083ed + 3272.ve1ea_5d6a_c99f Max Medium From 13d2b78f0e3380f4465c248d4ba1f7c6e15af80e Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Sun, 20 Oct 2024 01:23:47 -0700 Subject: [PATCH 1111/1216] Migrate `site.xml` to new model (#9885) --- core/src/site/site.xml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/core/src/site/site.xml b/core/src/site/site.xml index a840aba6842c..01aeebc17802 100644 --- a/core/src/site/site.xml +++ b/core/src/site/site.xml @@ -1,5 +1,8 @@ + - + @@ -34,9 +37,7 @@ ]]> - - Jenkins Taglib Documentation - + org.apache.maven.skins maven-fluido-skin @@ -56,4 +57,4 @@ false - + From e8360278e28b31f0897b68e9ca40fae9acd75851 Mon Sep 17 00:00:00 2001 From: Vincent Latombe Date: Sun, 20 Oct 2024 10:24:52 +0200 Subject: [PATCH 1112/1216] Print Jenkins version on boot (#9878) --- core/src/main/java/jenkins/model/Jenkins.java | 1 + .../jenkins/model/JenkinsVersionTest.java | 24 +++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 test/src/test/java/jenkins/model/JenkinsVersionTest.java diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index dc2c7926f605..4391b1547dab 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -1012,6 +1012,7 @@ protected Jenkins(File root, ServletContext context, PluginManager pluginManager adjuncts = new AdjunctManager(getServletContext(), pluginManager.uberClassLoader, "adjuncts/" + SESSION_HASH, TimeUnit.DAYS.toMillis(365)); ClassFilterImpl.register(); + LOGGER.info("Starting version " + getVersion()); // initialization consists of ... executeReactor(is, diff --git a/test/src/test/java/jenkins/model/JenkinsVersionTest.java b/test/src/test/java/jenkins/model/JenkinsVersionTest.java new file mode 100644 index 000000000000..dd72747ac889 --- /dev/null +++ b/test/src/test/java/jenkins/model/JenkinsVersionTest.java @@ -0,0 +1,24 @@ +package jenkins.model; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.hasItem; + +import java.util.logging.Level; +import org.junit.Rule; +import org.junit.Test; +import org.jvnet.hudson.test.JenkinsRule; +import org.jvnet.hudson.test.LoggerRule; + +public class JenkinsVersionTest { + @Rule + public JenkinsRule j = new JenkinsRule(); + + @Rule + public LoggerRule logging = new LoggerRule().record(Jenkins.class, Level.INFO).capture(100); + + @Test + public void printsVersion() { + assertThat(logging.getMessages(), hasItem(containsString(Jenkins.getVersion().toString()))); + } +} From 0d3c32a4e38eff4d5d8f3bbfcf47555d69b6cfe5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 09:25:30 +0100 Subject: [PATCH 1113/1216] Update dependency sass to v1.80.2 (#9892) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 4fe09a1d1515..15e01e86ed2b 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "postcss-preset-env": "10.0.7", "postcss-scss": "4.0.9", "prettier": "3.3.3", - "sass": "1.80.1", + "sass": "1.80.2", "sass-loader": "16.0.2", "style-loader": "4.0.0", "stylelint": "16.10.0", diff --git a/yarn.lock b/yarn.lock index 9e6ed9c952d2..27bbb6242402 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4408,7 +4408,7 @@ __metadata: postcss-preset-env: "npm:10.0.7" postcss-scss: "npm:4.0.9" prettier: "npm:3.3.3" - sass: "npm:1.80.1" + sass: "npm:1.80.2" sass-loader: "npm:16.0.2" sortablejs: "npm:1.15.3" style-loader: "npm:4.0.0" @@ -6385,9 +6385,9 @@ __metadata: languageName: node linkType: hard -"sass@npm:1.80.1": - version: 1.80.1 - resolution: "sass@npm:1.80.1" +"sass@npm:1.80.2": + version: 1.80.2 + resolution: "sass@npm:1.80.2" dependencies: "@parcel/watcher": "npm:^2.4.1" chokidar: "npm:^4.0.0" @@ -6395,7 +6395,7 @@ __metadata: source-map-js: "npm:>=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 10c0/91ec2b8bcba4c3c68c047fdcbe04cb82646b5cc6446e04d9134ff3c642d9895363de5cbf88869f0a6aa81bcd2de9b8ccba7df7ff35d33a07a18754014ee7a31a + checksum: 10c0/0006e2ee7a732abaa96a663167b078b8d53b4d7fe5ce435636a8bca6e8a3b6ebc12308c0725f577a456329ed962436d96cfcdd50a8e733ed4c4e4590f21243c9 languageName: node linkType: hard From 9af59503d518d87cbfcb1660b439f0fca2ac689e Mon Sep 17 00:00:00 2001 From: Jan Faracik <43062514+janfaracik@users.noreply.github.com> Date: Mon, 21 Oct 2024 19:35:12 +0100 Subject: [PATCH 1114/1216] Refine content and appearance of the project 'Configure' screen (#9734) Co-authored-by: Tim Jacomb <21194782+timja@users.noreply.github.com> Co-authored-by: Tim Jacomb --- .../resources/lib/form/descriptorList.jelly | 5 ++++- .../hudson/project/config-buildWrappers.jelly | 3 ++- .../project/config-buildWrappers.properties | 1 + .../lib/hudson/project/config-builders.jelly | 14 +++++++------- .../hudson/project/config-builders.properties | 1 + .../hudson/project/config-publishers2.jelly | 19 +++++++++---------- .../project/config-publishers2.properties | 1 + .../lib/hudson/project/config-scm.jelly | 4 +++- .../lib/hudson/project/config-scm.properties | 1 + .../lib/hudson/project/config-trigger.jelly | 3 ++- .../hudson/project/config-trigger.properties | 1 + src/main/js/section-to-sidebar-items.js | 2 +- src/main/scss/components/_section.scss | 2 +- 13 files changed, 34 insertions(+), 23 deletions(-) create mode 100644 core/src/main/resources/lib/hudson/project/config-buildWrappers.properties create mode 100644 core/src/main/resources/lib/hudson/project/config-builders.properties create mode 100644 core/src/main/resources/lib/hudson/project/config-publishers2.properties create mode 100644 core/src/main/resources/lib/hudson/project/config-scm.properties create mode 100644 core/src/main/resources/lib/hudson/project/config-trigger.properties diff --git a/core/src/main/resources/lib/form/descriptorList.jelly b/core/src/main/resources/lib/form/descriptorList.jelly index ed485ef79fc6..f5d364d45682 100644 --- a/core/src/main/resources/lib/form/descriptorList.jelly +++ b/core/src/main/resources/lib/form/descriptorList.jelly @@ -34,6 +34,9 @@ THE SOFTWARE. Sets the icon on the sidebar item for the section anchor link The icon isn't visible in the section itself + + Optional attribute to set a description for the section + hudson.model.Descriptor collection whose configuration page is rendered. @@ -72,7 +75,7 @@ THE SOFTWARE. - +
    diff --git a/core/src/main/resources/lib/hudson/project/config-buildWrappers.jelly b/core/src/main/resources/lib/hudson/project/config-buildWrappers.jelly index bf11b396140e..a4895cc2c8cc 100644 --- a/core/src/main/resources/lib/hudson/project/config-buildWrappers.jelly +++ b/core/src/main/resources/lib/hudson/project/config-buildWrappers.jelly @@ -29,7 +29,8 @@ THE SOFTWARE. - diff --git a/core/src/main/resources/lib/hudson/project/config-buildWrappers.properties b/core/src/main/resources/lib/hudson/project/config-buildWrappers.properties new file mode 100644 index 000000000000..f5e24444151c --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-buildWrappers.properties @@ -0,0 +1 @@ +description=Configure settings and variables that define the context in which your build runs, like credentials, paths, and global parameters. diff --git a/core/src/main/resources/lib/hudson/project/config-builders.jelly b/core/src/main/resources/lib/hudson/project/config-builders.jelly index f73d3db19324..7ac736b8ca2e 100644 --- a/core/src/main/resources/lib/hudson/project/config-builders.jelly +++ b/core/src/main/resources/lib/hudson/project/config-builders.jelly @@ -27,12 +27,12 @@ THE SOFTWARE. --> - - - - + + diff --git a/core/src/main/resources/lib/hudson/project/config-builders.properties b/core/src/main/resources/lib/hudson/project/config-builders.properties new file mode 100644 index 000000000000..09d79670c511 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-builders.properties @@ -0,0 +1 @@ +description=Automate your build process with ordered tasks like code compilation, testing, and deployment. diff --git a/core/src/main/resources/lib/hudson/project/config-publishers2.jelly b/core/src/main/resources/lib/hudson/project/config-publishers2.jelly index 20ad2f6509e1..6a422834750e 100644 --- a/core/src/main/resources/lib/hudson/project/config-publishers2.jelly +++ b/core/src/main/resources/lib/hudson/project/config-publishers2.jelly @@ -27,15 +27,14 @@ THE SOFTWARE. --> - - - - + + diff --git a/core/src/main/resources/lib/hudson/project/config-publishers2.properties b/core/src/main/resources/lib/hudson/project/config-publishers2.properties new file mode 100644 index 000000000000..30d6d39fe2fb --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-publishers2.properties @@ -0,0 +1 @@ +description=Define what happens after a build completes, like sending notifications, archiving artifacts, or triggering other jobs. diff --git a/core/src/main/resources/lib/hudson/project/config-scm.jelly b/core/src/main/resources/lib/hudson/project/config-scm.jelly index 6a0202e005b5..56c174b11887 100644 --- a/core/src/main/resources/lib/hudson/project/config-scm.jelly +++ b/core/src/main/resources/lib/hudson/project/config-scm.jelly @@ -25,7 +25,9 @@ THE SOFTWARE. - + diff --git a/core/src/main/resources/lib/hudson/project/config-scm.properties b/core/src/main/resources/lib/hudson/project/config-scm.properties new file mode 100644 index 000000000000..9cc6366bbee7 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-scm.properties @@ -0,0 +1 @@ +description=Connect and manage your code repository to automatically pull the latest code for your builds. diff --git a/core/src/main/resources/lib/hudson/project/config-trigger.jelly b/core/src/main/resources/lib/hudson/project/config-trigger.jelly index 9d3651d6e1a2..26700d99d336 100644 --- a/core/src/main/resources/lib/hudson/project/config-trigger.jelly +++ b/core/src/main/resources/lib/hudson/project/config-trigger.jelly @@ -31,7 +31,8 @@ THE SOFTWARE. - diff --git a/core/src/main/resources/lib/hudson/project/config-trigger.properties b/core/src/main/resources/lib/hudson/project/config-trigger.properties new file mode 100644 index 000000000000..dc25d12170ad --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-trigger.properties @@ -0,0 +1 @@ +description=Set up automated actions that start your build based on specific events, like code changes or scheduled times. diff --git a/src/main/js/section-to-sidebar-items.js b/src/main/js/section-to-sidebar-items.js index 38683e995f5b..54a6ff6e10a5 100644 --- a/src/main/js/section-to-sidebar-items.js +++ b/src/main/js/section-to-sidebar-items.js @@ -1,7 +1,7 @@ import { createElementFromHtml, toId } from "./util/dom"; const HEADER_SELECTOR = - ".config-table .jenkins-app-bar h2, .config-table > .jenkins-section > .jenkins-section__title"; + ".config-table .jenkins-app-bar h2, .config-table > .jenkins-section > .jenkins-section__title, .config-table > section > .jenkins-section > .jenkins-section__title"; const DEFAULT_ICON = ``; window.addEventListener("load", function () { diff --git a/src/main/scss/components/_section.scss b/src/main/scss/components/_section.scss index 4e0768d8f6e0..4519554ff849 100644 --- a/src/main/scss/components/_section.scss +++ b/src/main/scss/components/_section.scss @@ -36,7 +36,7 @@ .jenkins-section__description { // Tweaked margin so that it appears visually centred when placed next to `.jenkins-section__title` - margin: -0.5rem 0 1rem; + margin: -0.8125rem 0 1rem; color: var(--text-color-secondary); line-height: 1.66; } From eb07f9e734e1be9e649f0e3baadaa2afc900a088 Mon Sep 17 00:00:00 2001 From: Devin Nusbaum Date: Mon, 21 Oct 2024 14:35:23 -0400 Subject: [PATCH 1115/1216] Reduce default size of diagnostic buffer for `FlightRecorderInputStream` from 1MiB to 1KiB (#9887) --- .../hudson/cli/FlightRecorderInputStream.java | 2 +- .../java/hudson/cli/PlainCLIProtocolTest.java | 61 +++++++++++++++++++ 2 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 test/src/test/java/hudson/cli/PlainCLIProtocolTest.java diff --git a/cli/src/main/java/hudson/cli/FlightRecorderInputStream.java b/cli/src/main/java/hudson/cli/FlightRecorderInputStream.java index 5a1167c4fdc5..41d7a719dd09 100644 --- a/cli/src/main/java/hudson/cli/FlightRecorderInputStream.java +++ b/cli/src/main/java/hudson/cli/FlightRecorderInputStream.java @@ -21,7 +21,7 @@ class FlightRecorderInputStream extends InputStream { * Size (in bytes) of the flight recorder ring buffer used for debugging remoting issues. * @since 2.41 */ - static final int BUFFER_SIZE = Integer.getInteger("hudson.remoting.FlightRecorderInputStream.BUFFER_SIZE", 1024 * 1024); + static final int BUFFER_SIZE = Integer.getInteger("hudson.remoting.FlightRecorderInputStream.BUFFER_SIZE", 1024); private final InputStream source; private ByteArrayRingBuffer recorder = new ByteArrayRingBuffer(BUFFER_SIZE); diff --git a/test/src/test/java/hudson/cli/PlainCLIProtocolTest.java b/test/src/test/java/hudson/cli/PlainCLIProtocolTest.java new file mode 100644 index 000000000000..d9081ed6910f --- /dev/null +++ b/test/src/test/java/hudson/cli/PlainCLIProtocolTest.java @@ -0,0 +1,61 @@ +package hudson.cli; + +import static org.awaitility.Awaitility.await; +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.hasItem; + +import java.io.IOException; +import java.io.PipedInputStream; +import java.io.PipedOutputStream; +import java.util.logging.Level; +import org.junit.Rule; +import org.junit.jupiter.api.Test; +import org.jvnet.hudson.test.LoggerRule; + +public class PlainCLIProtocolTest { + + @Rule public LoggerRule logger = new LoggerRule().record(PlainCLIProtocol.class, Level.FINE).capture(50); + + @Test + public void streamCorruption() throws Exception { + final PipedOutputStream upload = new PipedOutputStream(); + final PipedOutputStream download = new PipedOutputStream(); + + class Server extends PlainCLIProtocol.ServerSide { + Server() throws IOException { + super(new PlainCLIProtocol.FramedOutput(download)); + } + + @Override + protected void onArg(String text) {} + + @Override + protected void onLocale(String text) {} + + @Override + protected void onEncoding(String text) {} + + @Override + protected synchronized void onStart() {} + + @Override + protected void onStdin(byte[] chunk) throws IOException {} + + @Override + protected void onEndStdin() throws IOException {} + + @Override + protected void handleClose() {} + } + + Server server = new Server(); + new PlainCLIProtocol.FramedReader(server, new PipedInputStream(upload)).start(); + // Trigger corruption + upload.write(0xFF); + upload.write(0xFF); + upload.write(0xFF); + upload.write(0xFF); + upload.flush(); + await().until(logger::getMessages, hasItem(containsString("Read back: 0xff 0xff 0xff 0xff"))); + } +} From 2c92eae462cd6963462fc983458dd91f72494049 Mon Sep 17 00:00:00 2001 From: Daniel Beck <1831569+daniel-beck@users.noreply.github.com> Date: Mon, 21 Oct 2024 20:35:37 +0200 Subject: [PATCH 1116/1216] [JENKINS-73768] Handle base=derived case in Util#isOverridden (#9728) Co-authored-by: Daniel Beck --- core/src/main/java/hudson/Util.java | 4 ++++ core/src/test/java/hudson/util/IsOverriddenTest.java | 3 +++ 2 files changed, 7 insertions(+) diff --git a/core/src/main/java/hudson/Util.java b/core/src/main/java/hudson/Util.java index b4529a0ea279..07d00a44d006 100644 --- a/core/src/main/java/hudson/Util.java +++ b/core/src/main/java/hudson/Util.java @@ -1525,6 +1525,10 @@ public static Number tryParseNumber(@CheckForNull String numberStr, @CheckForNul * does not contain the specified method. */ public static boolean isOverridden(@NonNull Class base, @NonNull Class derived, @NonNull String methodName, @NonNull Class... types) { + if (base == derived) { + // If base and derived are the same type, the method is not overridden by definition + return false; + } // If derived is not a subclass or implementor of base, it can't override any method // Technically this should also be triggered when base == derived, because it can't override its own method, but // the unit tests explicitly test for that as working. diff --git a/core/src/test/java/hudson/util/IsOverriddenTest.java b/core/src/test/java/hudson/util/IsOverriddenTest.java index c608e7453f9a..4711c5edf0a6 100644 --- a/core/src/test/java/hudson/util/IsOverriddenTest.java +++ b/core/src/test/java/hudson/util/IsOverriddenTest.java @@ -31,6 +31,7 @@ import static org.junit.Assert.assertTrue; import hudson.Util; +import java.io.PrintWriter; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ErrorCollector; @@ -52,6 +53,8 @@ public void isOverriddenTest() { assertTrue(Util.isOverridden(Base.class, Derived.class, "method")); assertTrue(Util.isOverridden(Base.class, Intermediate.class, "method")); assertFalse(Util.isOverridden(Base.class, Base.class, "method")); + assertFalse(Util.isOverridden(Throwable.class, Throwable.class, "printStackTrace", PrintWriter.class)); + assertFalse(Util.isOverridden(Throwable.class, Exception.class, "printStackTrace", PrintWriter.class)); assertTrue(Util.isOverridden(Base.class, Intermediate.class, "setX", Object.class)); assertTrue(Util.isOverridden(Base.class, Intermediate.class, "getX")); } From d7eda6a7c7f609d3451eda7c44bcf5c93eae833f Mon Sep 17 00:00:00 2001 From: Tim Jacomb <21194782+timja@users.noreply.github.com> Date: Mon, 21 Oct 2024 19:36:04 +0100 Subject: [PATCH 1117/1216] Use standard dropdowns for combobox (#9462) Co-authored-by: Zbynek Konecny --- .../main/resources/lib/form/combobox.jelly | 5 - src/main/js/app.js | 2 - .../index.js => dropdowns/autocomplete.js} | 37 +------- src/main/js/components/dropdowns/combo-box.js | 93 +++++++++++++++++++ src/main/js/components/dropdowns/index.js | 4 + src/main/js/components/dropdowns/utils.js | 31 +++++++ 6 files changed, 132 insertions(+), 40 deletions(-) rename src/main/js/components/{autocomplete/index.js => dropdowns/autocomplete.js} (76%) create mode 100644 src/main/js/components/dropdowns/combo-box.js diff --git a/core/src/main/resources/lib/form/combobox.jelly b/core/src/main/resources/lib/form/combobox.jelly index 51fe7ce0d30f..517e12cd875e 100644 --- a/core/src/main/resources/lib/form/combobox.jelly +++ b/core/src/main/resources/lib/form/combobox.jelly @@ -70,11 +70,6 @@ THE SOFTWARE. ${descriptor.calcFillSettings(field,attrs)} - - "); + } + }; + } + + + /** + * Corresponds to types declared in index.js + */ + public enum NotificationType { + SUCCESS, + WARNING, + ERROR + } } diff --git a/war/src/main/webapp/scripts/apply.js b/war/src/main/webapp/scripts/apply.js new file mode 100644 index 000000000000..b82153250bf6 --- /dev/null +++ b/war/src/main/webapp/scripts/apply.js @@ -0,0 +1,8 @@ +window.applyCompletionHandler = function (w) { + let scriptTagData = document.getElementById("form-apply-data-holder").dataset; + + w.notificationBar.show( + scriptTagData.message, + w.notificationBar[scriptTagData.notificationType], + ); +}; From 6c5cdfa96c5bc7dd0325d792a2a31700b72b6d54 Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Mon, 21 Oct 2024 11:37:27 -0700 Subject: [PATCH 1119/1216] Allow for null to be passed to `doSafeRestart` (#9882) --- core/src/main/java/jenkins/model/Jenkins.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index 4391b1547dab..6db36176c6c2 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -4668,7 +4668,7 @@ public void generateNotFoundResponse(StaplerRequest2 req, StaplerResponse2 rsp) */ @Deprecated(since = "2.414") public HttpResponse doSafeRestart(StaplerRequest req) throws IOException, ServletException, RestartNotSupportedException { - return doSafeRestart(StaplerRequest.toStaplerRequest2(req), null); + return doSafeRestart(req != null ? StaplerRequest.toStaplerRequest2(req) : null, null); } /** @@ -4701,7 +4701,7 @@ public HttpResponse doSafeRestart(StaplerRequest2 req, @QueryParameter("message" @StaplerNotDispatchable public HttpResponse doSafeRestart(StaplerRequest req, @QueryParameter("message") String message) throws IOException, javax.servlet.ServletException, RestartNotSupportedException { try { - return doSafeRestart(StaplerRequest.toStaplerRequest2(req), message); + return doSafeRestart(req != null ? StaplerRequest.toStaplerRequest2(req) : null, message); } catch (ServletException e) { throw ServletExceptionWrapper.fromJakartaServletException(e); } From 1a4b5ca9db2a10a66540925ab8725271707bf2af Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 12:51:08 -0700 Subject: [PATCH 1120/1216] Update Yarn to v4.5.1 (#9893) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 15e01e86ed2b..86f5277b0463 100644 --- a/package.json +++ b/package.json @@ -68,5 +68,5 @@ "engines": { "node": ">=20.0.0" }, - "packageManager": "yarn@4.5.0" + "packageManager": "yarn@4.5.1" } From 8ee91ce9846dba75b31d1339a9c0e3e90581a195 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 12:56:30 -0700 Subject: [PATCH 1121/1216] Update dependency org.springframework.security:spring-security-bom to v6.3.4 (#9894) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bom/pom.xml b/bom/pom.xml index bd8699441c8b..fa38665c2a7b 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -70,7 +70,7 @@ THE SOFTWARE. org.springframework.security spring-security-bom - 6.3.3 + 6.3.4 pom import From 5c68c7b61285f347dc8bf93ad01f0dc4c430c78f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 12:56:38 -0700 Subject: [PATCH 1122/1216] Update dependency org.jenkins-ci.main:remoting to v3273 (#9895) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index dac90b2fb41d..4cb7b20a6107 100644 --- a/pom.xml +++ b/pom.xml @@ -87,7 +87,7 @@ THE SOFTWARE. https://www.jenkins.io/changelog - 3272.ve1ea_5d6a_c99f + 3273.v4cfe589b_fd83 Max Medium From 271d70bbbb17c5e59bd282bc3ddef226a04cef4b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 15:31:43 -0700 Subject: [PATCH 1123/1216] Update dependency @eslint/js to v9.13.0 (#9896) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 86f5277b0463..76a3d39c66da 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "@babel/cli": "7.25.7", "@babel/core": "7.25.8", "@babel/preset-env": "7.25.8", - "@eslint/js": "9.12.0", + "@eslint/js": "9.13.0", "babel-loader": "9.2.1", "clean-webpack-plugin": "4.0.0", "css-loader": "7.1.2", diff --git a/yarn.lock b/yarn.lock index 27bbb6242402..a791e6429c35 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1696,6 +1696,13 @@ __metadata: languageName: node linkType: hard +"@eslint/js@npm:9.13.0": + version: 9.13.0 + resolution: "@eslint/js@npm:9.13.0" + checksum: 10c0/672257bffe17777b8a98bd80438702904cc7a0b98b9c2e426a8a10929198b3553edf8a3fc20feed4133c02e7c8f7331a0ef1b23e5dab8e4469f7f1791beff1e0 + languageName: node + linkType: hard + "@eslint/object-schema@npm:^2.1.4": version: 2.1.4 resolution: "@eslint/object-schema@npm:2.1.4" @@ -4388,7 +4395,7 @@ __metadata: "@babel/cli": "npm:7.25.7" "@babel/core": "npm:7.25.8" "@babel/preset-env": "npm:7.25.8" - "@eslint/js": "npm:9.12.0" + "@eslint/js": "npm:9.13.0" babel-loader: "npm:9.2.1" clean-webpack-plugin: "npm:4.0.0" css-loader: "npm:7.1.2" From f8c551f47f3c1410a55353ea244812ef5d6dd6e4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 19:17:22 -0700 Subject: [PATCH 1124/1216] Update dependency sass to v1.80.3 (#9899) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 76a3d39c66da..04ca7e4dfaeb 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "postcss-preset-env": "10.0.7", "postcss-scss": "4.0.9", "prettier": "3.3.3", - "sass": "1.80.2", + "sass": "1.80.3", "sass-loader": "16.0.2", "style-loader": "4.0.0", "stylelint": "16.10.0", diff --git a/yarn.lock b/yarn.lock index a791e6429c35..cce8d24d2c56 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4415,7 +4415,7 @@ __metadata: postcss-preset-env: "npm:10.0.7" postcss-scss: "npm:4.0.9" prettier: "npm:3.3.3" - sass: "npm:1.80.2" + sass: "npm:1.80.3" sass-loader: "npm:16.0.2" sortablejs: "npm:1.15.3" style-loader: "npm:4.0.0" @@ -6392,9 +6392,9 @@ __metadata: languageName: node linkType: hard -"sass@npm:1.80.2": - version: 1.80.2 - resolution: "sass@npm:1.80.2" +"sass@npm:1.80.3": + version: 1.80.3 + resolution: "sass@npm:1.80.3" dependencies: "@parcel/watcher": "npm:^2.4.1" chokidar: "npm:^4.0.0" @@ -6402,7 +6402,7 @@ __metadata: source-map-js: "npm:>=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 10c0/0006e2ee7a732abaa96a663167b078b8d53b4d7fe5ce435636a8bca6e8a3b6ebc12308c0725f577a456329ed962436d96cfcdd50a8e733ed4c4e4590f21243c9 + checksum: 10c0/fa08043fc36b854717b6eaf6247ee11341d0aff5e17a645965071866bd677930c9c9467d82ed5a4a666d7897a82be8a61427cd81b808e6b9e2d3b32cf278bebd languageName: node linkType: hard From ebfa9c25580415a68d44e8f3725fa875eb8a25cb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 19:17:43 -0700 Subject: [PATCH 1125/1216] Update dependency eslint to v9.13.0 (#9898) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 29 +++++++++++------------------ 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/package.json b/package.json index 04ca7e4dfaeb..0cf833ecff3d 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "clean-webpack-plugin": "4.0.0", "css-loader": "7.1.2", "css-minimizer-webpack-plugin": "7.0.0", - "eslint": "9.12.0", + "eslint": "9.13.0", "eslint-config-prettier": "9.1.0", "eslint-formatter-checkstyle": "8.40.0", "globals": "15.11.0", diff --git a/yarn.lock b/yarn.lock index cce8d24d2c56..52d95f0bf98b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1665,10 +1665,10 @@ __metadata: languageName: node linkType: hard -"@eslint/core@npm:^0.6.0": - version: 0.6.0 - resolution: "@eslint/core@npm:0.6.0" - checksum: 10c0/fffdb3046ad6420f8cb9204b6466fdd8632a9baeebdaf2a97d458a4eac0e16653ba50d82d61835d7d771f6ced0ec942ec482b2fbccc300e45f2cbf784537f240 +"@eslint/core@npm:^0.7.0": + version: 0.7.0 + resolution: "@eslint/core@npm:0.7.0" + checksum: 10c0/3cdee8bc6cbb96ac6103d3ead42e59830019435839583c9eb352b94ed558bd78e7ffad5286dc710df21ec1e7bd8f52aa6574c62457a4dd0f01f3736fa4a7d87a languageName: node linkType: hard @@ -1689,13 +1689,6 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:9.12.0": - version: 9.12.0 - resolution: "@eslint/js@npm:9.12.0" - checksum: 10c0/325650a59a1ce3d97c69441501ebaf415607248bacbe8c8ca35adc7cb73b524f592f266a75772f496b06f3239e3ee1996722a242148085f0ee5fb3dd7065897c - languageName: node - linkType: hard - "@eslint/js@npm:9.13.0": version: 9.13.0 resolution: "@eslint/js@npm:9.13.0" @@ -3522,16 +3515,16 @@ __metadata: languageName: node linkType: hard -"eslint@npm:9.12.0": - version: 9.12.0 - resolution: "eslint@npm:9.12.0" +"eslint@npm:9.13.0": + version: 9.13.0 + resolution: "eslint@npm:9.13.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" "@eslint-community/regexpp": "npm:^4.11.0" "@eslint/config-array": "npm:^0.18.0" - "@eslint/core": "npm:^0.6.0" + "@eslint/core": "npm:^0.7.0" "@eslint/eslintrc": "npm:^3.1.0" - "@eslint/js": "npm:9.12.0" + "@eslint/js": "npm:9.13.0" "@eslint/plugin-kit": "npm:^0.2.0" "@humanfs/node": "npm:^0.16.5" "@humanwhocodes/module-importer": "npm:^1.0.1" @@ -3568,7 +3561,7 @@ __metadata: optional: true bin: eslint: bin/eslint.js - checksum: 10c0/67cf6ea3ea28dcda7dd54aac33e2d4028eb36991d13defb0d2339c3eaa877d5dddd12cd4416ddc701a68bcde9e0bb9e65524c2e4e9914992c724f5b51e949dda + checksum: 10c0/d3577444152182a9d8ea8c6a6acb073d3a2773ad73a6b646f432746583ec4bfcd6a44fcc2e37d05d276984e583c46c2d289b3b981ca8f8b4052756a152341d19 languageName: node linkType: hard @@ -4400,7 +4393,7 @@ __metadata: clean-webpack-plugin: "npm:4.0.0" css-loader: "npm:7.1.2" css-minimizer-webpack-plugin: "npm:7.0.0" - eslint: "npm:9.12.0" + eslint: "npm:9.13.0" eslint-config-prettier: "npm:9.1.0" eslint-formatter-checkstyle: "npm:8.40.0" globals: "npm:15.11.0" From 4fe5040796ac443088fcb66f77adfe031c5e0278 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 21:58:20 -0700 Subject: [PATCH 1126/1216] Update dependency org.jenkins-ci.main:jenkins-test-harness to v2345 (#9897) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- test/src/test/java/hudson/PluginManagerTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index 726af9deeece..4a7b8e3ec787 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -178,7 +178,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-test-harness - 2341.v35346d95d2b_7 + 2345.v699712948764 test diff --git a/test/src/test/java/hudson/PluginManagerTest.java b/test/src/test/java/hudson/PluginManagerTest.java index b75d8fc2f66f..ec25bc96a39f 100644 --- a/test/src/test/java/hudson/PluginManagerTest.java +++ b/test/src/test/java/hudson/PluginManagerTest.java @@ -759,7 +759,7 @@ public void verifyUploadedPluginPermission() throws Exception { File dir = tmp.newFolder(); File plugin = new File(dir, "htmlpublisher.jpi"); FileUtils.copyURLToFile(Objects.requireNonNull(getClass().getClassLoader().getResource("plugins/htmlpublisher.jpi")), plugin); - f.getInputByName("name").setValueAttribute(plugin.getAbsolutePath()); + f.getInputByName("name").setValue(plugin.getAbsolutePath()); r.submit(f); File filesRef = Files.createTempFile("tmp", ".tmp").toFile(); From cb34c03b5a270a160f6dbc1528b38c2960ab3843 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 22 Oct 2024 13:43:00 +0000 Subject: [PATCH 1127/1216] [maven-release-plugin] prepare release jenkins-2.482 --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 6 +++--- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty12-ee9/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index fa38665c2a7b..2534752d0f4c 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.482 jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 2473629d23cc..a067e242efbd 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.482 cli diff --git a/core/pom.xml b/core/pom.xml index 9bff5e5ad0b2..ebaeaeaf803d 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.482 jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index fe1e89a120dc..cb35163b1b17 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.482 jenkins-coverage diff --git a/pom.xml b/pom.xml index 4cb7b20a6107..463283e581e7 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.482 pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - ${scmTag} + jenkins-2.482 https://github.com/jenkinsci/jenkins @@ -75,7 +75,7 @@ THE SOFTWARE. 2.482 -SNAPSHOT - 2024-10-15T13:52:44Z + 2024-10-22T10:33:42Z github diff --git a/test/pom.xml b/test/pom.xml index 4a7b8e3ec787..ba2e6a647feb 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.482 jenkins-test diff --git a/war/pom.xml b/war/pom.xml index 9c3ad8fd30e4..3be30e0e2dac 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.482 jenkins-war diff --git a/websocket/jetty12-ee9/pom.xml b/websocket/jetty12-ee9/pom.xml index 2253163b3c4c..9089aa880487 100644 --- a/websocket/jetty12-ee9/pom.xml +++ b/websocket/jetty12-ee9/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.482 ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 178413f92c8e..0ee6e5561f32 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.482 ../.. From b6c44153bbef7b789af670697a26893b2fdccb1a Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 22 Oct 2024 13:43:21 +0000 Subject: [PATCH 1128/1216] [maven-release-plugin] prepare for next development iteration --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 8 ++++---- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty12-ee9/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 12 insertions(+), 12 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 2534752d0f4c..fa38665c2a7b 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.482 + ${revision}${changelist} jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index a067e242efbd..2473629d23cc 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.482 + ${revision}${changelist} cli diff --git a/core/pom.xml b/core/pom.xml index ebaeaeaf803d..9bff5e5ad0b2 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.482 + ${revision}${changelist} jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index cb35163b1b17..fe1e89a120dc 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.482 + ${revision}${changelist} jenkins-coverage diff --git a/pom.xml b/pom.xml index 463283e581e7..cfdc76b2fd56 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.482 + ${revision}${changelist} pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - jenkins-2.482 + ${scmTag} https://github.com/jenkinsci/jenkins @@ -73,9 +73,9 @@ THE SOFTWARE. - 2.482 + 2.483 -SNAPSHOT - 2024-10-22T10:33:42Z + 2024-10-22T13:43:00Z github diff --git a/test/pom.xml b/test/pom.xml index ba2e6a647feb..4a7b8e3ec787 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.482 + ${revision}${changelist} jenkins-test diff --git a/war/pom.xml b/war/pom.xml index 3be30e0e2dac..9c3ad8fd30e4 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.482 + ${revision}${changelist} jenkins-war diff --git a/websocket/jetty12-ee9/pom.xml b/websocket/jetty12-ee9/pom.xml index 9089aa880487..2253163b3c4c 100644 --- a/websocket/jetty12-ee9/pom.xml +++ b/websocket/jetty12-ee9/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.482 + ${revision}${changelist} ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 0ee6e5561f32..178413f92c8e 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.482 + ${revision}${changelist} ../.. From 2da45fc19fd68cf74784108743a9eb9259c6ba35 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 22 Oct 2024 22:19:22 +0100 Subject: [PATCH 1129/1216] Update dependency org.jenkins-ci.plugins:matrix-auth to v3.2.3 (#9902) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index 4a7b8e3ec787..8f1d5f20c59a 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -242,7 +242,7 @@ THE SOFTWARE. org.jenkins-ci.plugins matrix-auth - 3.2.2 + 3.2.3 test diff --git a/war/pom.xml b/war/pom.xml index 9c3ad8fd30e4..d4ed852e7721 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -286,7 +286,7 @@ THE SOFTWARE. org.jenkins-ci.plugins matrix-auth - 3.2.2 + 3.2.3 hpi From d9fbb65e98800f4b28a4d4a7f882f5bd0172b61c Mon Sep 17 00:00:00 2001 From: Vincent Latombe Date: Wed, 23 Oct 2024 10:04:54 +0200 Subject: [PATCH 1130/1216] Display appropriate GUI that accurately displays offline by design (#9883) --- core/src/main/java/hudson/model/Computer.java | 44 ++----- .../main/java/hudson/slaves/OfflineCause.java | 57 +++++++-- .../java/hudson/slaves/RetentionStrategy.java | 2 + .../SimpleScheduledRetentionStrategy.java | 20 ++++ .../java/jenkins/agents/IOfflineCause.java | 108 ++++++++++++++++++ .../main/java/jenkins/model/IComputer.java | 51 ++++++++- .../java/jenkins/widgets/ExecutorsWidget.java | 9 +- .../hudson/model/ComputerSet/_legend.jelly | 7 ++ .../model/ComputerSet/_legend.properties | 1 + .../hudson/model/ComputerSet/index.jelly | 2 +- .../hudson/slaves/Messages.properties | 1 + .../hudson/slaves/OfflineCause/cause.jelly | 4 +- .../jenkins/agents/Messages.properties | 1 + .../jenkins/agents/Messages_bg.properties | 2 + .../jenkins/agents/Messages_ca.properties | 1 + .../jenkins/agents/Messages_cs.properties | 1 + .../jenkins/agents/Messages_da.properties | 1 + .../jenkins/agents/Messages_de.properties | 1 + .../jenkins/agents/Messages_es.properties | 1 + .../jenkins/agents/Messages_es_AR.properties | 1 + .../jenkins/agents/Messages_et.properties | 1 + .../jenkins/agents/Messages_fi.properties | 1 + .../jenkins/agents/Messages_fr.properties | 1 + .../jenkins/agents/Messages_he.properties | 1 + .../jenkins/agents/Messages_hu.properties | 1 + .../jenkins/agents/Messages_it.properties | 1 + .../jenkins/agents/Messages_ja.properties | 1 + .../jenkins/agents/Messages_ko.properties | 1 + .../jenkins/agents/Messages_lt.properties | 1 + .../jenkins/agents/Messages_lv.properties | 1 + .../jenkins/agents/Messages_nb_NO.properties | 1 + .../jenkins/agents/Messages_nl.properties | 1 + .../jenkins/agents/Messages_pl.properties | 1 + .../jenkins/agents/Messages_pt_BR.properties | 1 + .../jenkins/agents/Messages_pt_PT.properties | 1 + .../jenkins/agents/Messages_ro.properties | 1 + .../jenkins/agents/Messages_ru.properties | 1 + .../jenkins/agents/Messages_sr.properties | 1 + .../jenkins/agents/Messages_sv_SE.properties | 1 + .../jenkins/agents/Messages_tr.properties | 1 + .../jenkins/agents/Messages_uk.properties | 1 + .../jenkins/agents/Messages_zh_TW.properties | 1 + .../main/resources/lib/hudson/executors.jelly | 7 +- .../test/java/hudson/model/ComputerTest.java | 24 ++++ .../images/symbols/computer-paused.svg | 11 ++ .../main/resources/images/symbols/pause.svg | 1 + 46 files changed, 323 insertions(+), 57 deletions(-) create mode 100644 core/src/main/java/jenkins/agents/IOfflineCause.java create mode 100644 core/src/main/resources/jenkins/agents/Messages_bg.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_ca.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_cs.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_da.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_de.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_es.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_es_AR.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_et.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_fi.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_he.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_hu.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_it.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_ja.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_ko.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_lt.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_lv.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_nb_NO.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_nl.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_pl.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_pt_BR.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_pt_PT.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_ro.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_ru.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_sr.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_uk.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_zh_TW.properties create mode 100644 war/src/main/resources/images/symbols/computer-paused.svg create mode 100644 war/src/main/resources/images/symbols/pause.svg diff --git a/core/src/main/java/hudson/model/Computer.java b/core/src/main/java/hudson/model/Computer.java index 8c3d814c91fe..9fe65e81974b 100644 --- a/core/src/main/java/hudson/model/Computer.java +++ b/core/src/main/java/hudson/model/Computer.java @@ -355,6 +355,7 @@ public AnnotatedLargeText getLogText() { * null if the system was put offline without given a cause. */ @Exported + @Override public OfflineCause getOfflineCause() { var node = getNode(); if (node != null) { @@ -374,19 +375,7 @@ public boolean hasOfflineCause() { @Exported @Override public String getOfflineCauseReason() { - var offlineCause = getOfflineCause(); - if (offlineCause == null) { - return ""; - } - // fetch the localized string for "Disconnected By" - String gsub_base = hudson.slaves.Messages.SlaveComputer_DisconnectedBy("", ""); - // regex to remove commented reason base string - String gsub1 = "^" + gsub_base + "[\\w\\W]* \\: "; - // regex to remove non-commented reason base string - String gsub2 = "^" + gsub_base + "[\\w\\W]*"; - - String newString = offlineCause.toString().replaceAll(gsub1, ""); - return newString.replaceAll(gsub2, ""); + return IComputer.super.getOfflineCauseReason(); } /** @@ -677,6 +666,14 @@ public boolean isTemporarilyOffline() { return node != null && node.isTemporarilyOffline(); } + /** + * Allows a caller to define an {@link OfflineCause} for a computer that has never been online. + * @since TODO + */ + public void setOfflineCause(OfflineCause cause) { + this.offlineCause = cause; + } + /** * @deprecated as of 1.320. * Use {@link #setTemporaryOfflineCause(OfflineCause)} @@ -736,22 +733,13 @@ public String getTemporaryOfflineCauseReason() { @Exported @Override public String getIcon() { - // The machine was taken offline by someone - if (isTemporarilyOffline() && getOfflineCause() instanceof OfflineCause.UserCause) return "symbol-computer-disconnected"; - // The computer is not accepting tasks, e.g. because the availability demands it being offline. - if (!isAcceptingTasks()) { - return "symbol-computer-not-accepting"; - } - // The computer is not connected or it is temporarily offline due to a node monitor - if (isOffline()) return "symbol-computer-offline"; - return "symbol-computer"; + return IComputer.super.getIcon(); } /** * {@inheritDoc} * - *

    - * It is both the recommended and default implementation to serve different icons based on {@link #isOffline}. + * @see #getIcon() */ @Exported @Override @@ -759,14 +747,6 @@ public String getIconClassName() { return IComputer.super.getIconClassName(); } - public String getIconAltText() { - // The machine was taken offline by someone - if (isTemporarilyOffline() && getOfflineCause() instanceof OfflineCause.UserCause) return "[temporarily offline by user]"; - // There is a "technical" reason the computer will not accept new builds - if (isOffline() || !isAcceptingTasks()) return "[offline]"; - return "[online]"; - } - @Exported @Override public @NonNull String getDisplayName() { return nodeName; diff --git a/core/src/main/java/hudson/slaves/OfflineCause.java b/core/src/main/java/hudson/slaves/OfflineCause.java index 2a267ef03a4a..07c2d3af2872 100644 --- a/core/src/main/java/hudson/slaves/OfflineCause.java +++ b/core/src/main/java/hudson/slaves/OfflineCause.java @@ -30,7 +30,7 @@ import hudson.model.User; import java.io.ObjectStreamException; import java.util.Collections; -import java.util.Date; +import jenkins.agents.IOfflineCause; import jenkins.model.Jenkins; import org.jvnet.localizer.Localizable; import org.kohsuke.accmod.Restricted; @@ -51,28 +51,20 @@ * @since 1.320 */ @ExportedBean -public abstract class OfflineCause { +public abstract class OfflineCause implements IOfflineCause { protected final long timestamp = System.currentTimeMillis(); /** - * Timestamp in which the event happened. + * {@inheritDoc} * * @since 1.612 */ @Exported + @Override public long getTimestamp() { return timestamp; } - /** - * Same as {@link #getTimestamp()} but in a different type. - * - * @since 1.612 - */ - public final @NonNull Date getTime() { - return new Date(timestamp); - } - /** * @deprecated Only exists for backward compatibility. * @see Computer#setTemporarilyOffline(boolean) @@ -192,6 +184,24 @@ private Object readResolve() throws ObjectStreamException { } return this; } + + @Override + @NonNull + public String getComputerIcon() { + return "symbol-computer-disconnected"; + } + + @Override + @NonNull + public String getComputerIconAltText() { + return "[temporarily offline by user]"; + } + + @NonNull + @Override + public String getIcon() { + return "symbol-person"; + } } public static class ByCLI extends UserCause { @@ -212,5 +222,28 @@ public static class IdleOfflineCause extends SimpleOfflineCause { public IdleOfflineCause() { super(hudson.slaves.Messages._RetentionStrategy_Demand_OfflineIdle()); } + + @Override + @NonNull + public String getComputerIcon() { + return "symbol-computer-paused"; + } + + @Override + @NonNull + public String getComputerIconAltText() { + return "[will connect automatically whenever needed]"; + } + + @Override + @NonNull + public String getIcon() { + return "symbol-pause"; + } + + @Override + public String getStatusClass() { + return "info"; + } } } diff --git a/core/src/main/java/hudson/slaves/RetentionStrategy.java b/core/src/main/java/hudson/slaves/RetentionStrategy.java index 687e44d5c172..6fe491cdaa87 100644 --- a/core/src/main/java/hudson/slaves/RetentionStrategy.java +++ b/core/src/main/java/hudson/slaves/RetentionStrategy.java @@ -272,6 +272,8 @@ public long check(final SlaveComputer c) { logger.log(Level.INFO, "Launching computer {0} as it has been in demand for {1}", new Object[]{c.getName(), Util.getTimeSpanString(demandMilliseconds)}); c.connect(false); + } else if (c.getOfflineCause() == null) { + c.setOfflineCause(new OfflineCause.IdleOfflineCause()); } } else if (c.isIdle()) { final long idleMilliseconds = System.currentTimeMillis() - c.getIdleStartMilliseconds(); diff --git a/core/src/main/java/hudson/slaves/SimpleScheduledRetentionStrategy.java b/core/src/main/java/hudson/slaves/SimpleScheduledRetentionStrategy.java index ea90529b29b4..13a267ace665 100644 --- a/core/src/main/java/hudson/slaves/SimpleScheduledRetentionStrategy.java +++ b/core/src/main/java/hudson/slaves/SimpleScheduledRetentionStrategy.java @@ -242,6 +242,8 @@ public void run() { c.disconnect(OfflineCause.create(Messages._SimpleScheduledRetentionStrategy_FinishedUpTime())); } } + } else { + c.setOfflineCause(new ScheduledOfflineCause()); } return 0; } @@ -252,6 +254,24 @@ private synchronized boolean isOnlineScheduled() { return (lastStart < now && lastStop > now) || (nextStart < now && nextStop > now); } + public static class ScheduledOfflineCause extends OfflineCause.SimpleOfflineCause { + public ScheduledOfflineCause() { + super(Messages._SimpleScheduledRetentionStrategy_ScheduledOfflineCause_displayName()); + } + + @NonNull + @Override + public String getComputerIcon() { + return "symbol-computer-not-accepting"; + } + + @NonNull + @Override + public String getIcon() { + return "symbol-trigger"; + } + } + @Extension @Symbol("schedule") public static class DescriptorImpl extends Descriptor> { @NonNull diff --git a/core/src/main/java/jenkins/agents/IOfflineCause.java b/core/src/main/java/jenkins/agents/IOfflineCause.java new file mode 100644 index 000000000000..fca5f35b8d25 --- /dev/null +++ b/core/src/main/java/jenkins/agents/IOfflineCause.java @@ -0,0 +1,108 @@ +/* + * The MIT License + * + * Copyright 2024 CloudBees, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package jenkins.agents; + +import edu.umd.cs.findbugs.annotations.NonNull; +import hudson.Util; +import java.util.Date; +import java.util.Objects; +import jenkins.model.IComputer; + +/** + * Represents a cause that puts a {@linkplain IComputer#isOffline() computer offline}. + * @since TODO + */ +public interface IOfflineCause { + /** + * @return The icon to use for the computer that has this offline cause. It will be displayed in the build executor status widget, as well as in nodes list screen. + */ + @NonNull + default String getComputerIcon() { + return "symbol-computer-offline"; + } + + /** + * @return The alt text for the icon returned by {@link #getComputerIcon()}. + */ + @NonNull + default String getComputerIconAltText() { + return "[offline]"; + } + + /** + * @return The icon to render this offline cause. It will be displayed in the build executor status widget. + */ + @NonNull + default String getIcon() { + return "symbol-error"; + } + + /** + * @return The reason why this offline cause exists. + *

    + * For implementers: this can use HTML formatting, so make sure to only include trusted content. + */ + @NonNull + default String getReason() { + // fetch the localized string for "Disconnected By" + String gsub_base = hudson.slaves.Messages.SlaveComputer_DisconnectedBy("", ""); + // regex to remove commented reason base string + String gsub1 = "^" + gsub_base + "[\\w\\W]* \\: "; + // regex to remove non-commented reason base string + String gsub2 = "^" + gsub_base + "[\\w\\W]*"; + return Objects.requireNonNull(Util.escape(toString().replaceAll(gsub1, "").replaceAll(gsub2, ""))); + } + + /** + * @return A short message (one word) that summarizes the offline cause. + * + *

    + * For implementers: this can use HTML formatting, so make sure to only include trusted content. + */ + @NonNull + default String getMessage() { + return Messages.IOfflineCause_offline(); + } + + /** + * @return the CSS class name that should be used to render the status. + */ + @SuppressWarnings("unused") // jelly + default String getStatusClass() { + return "warning"; + } + + /** + * Timestamp in which the event happened. + */ + long getTimestamp(); + + /** + * Same as {@link #getTimestamp()} but in a different type. + */ + @NonNull + default Date getTime() { + return new Date(getTimestamp()); + } +} diff --git a/core/src/main/java/jenkins/model/IComputer.java b/core/src/main/java/jenkins/model/IComputer.java index 0708748f4370..6aaea7af463f 100644 --- a/core/src/main/java/jenkins/model/IComputer.java +++ b/core/src/main/java/jenkins/model/IComputer.java @@ -32,6 +32,7 @@ import hudson.security.AccessControlled; import java.util.List; import java.util.concurrent.Future; +import jenkins.agents.IOfflineCause; import org.jenkins.ui.icon.Icon; import org.jenkins.ui.icon.IconSet; import org.kohsuke.accmod.Restricted; @@ -91,6 +92,12 @@ default boolean hasOfflineCause() { return Util.fixEmpty(getOfflineCauseReason()) != null; } + /** + * @return the offline cause if the computer is offline. + * @since TODO + */ + IOfflineCause getOfflineCause(); + /** * If the computer was offline (either temporarily or not), * this method will return the cause as a string (without user info). @@ -101,7 +108,12 @@ default boolean hasOfflineCause() { * empty string if the system was put offline without given a cause. */ @NonNull - String getOfflineCauseReason(); + default String getOfflineCauseReason() { + if (getOfflineCause() == null) { + return ""; + } + return getOfflineCause().getReason(); + } /** * @return true if the node is currently connecting to the Jenkins controller. @@ -115,12 +127,45 @@ default boolean hasOfflineCause() { * * @see #getIconClassName() */ - String getIcon(); + default String getIcon() { + // The computer is not accepting tasks, e.g. because the availability demands it being offline. + if (!isAcceptingTasks()) { + return "symbol-computer-not-accepting"; + } + var offlineCause = getOfflineCause(); + if (offlineCause != null) { + return offlineCause.getComputerIcon(); + } + // The computer is not connected or it is temporarily offline due to a node monitor + if (isOffline()) return "symbol-computer-offline"; + return "symbol-computer"; + } /** * Returns the alternative text for the computer icon. */ - String getIconAltText(); + @SuppressWarnings("unused") // jelly + default String getIconAltText() { + if (!isAcceptingTasks()) { + return "[suspended]"; + } + var offlineCause = getOfflineCause(); + if (offlineCause != null) { + return offlineCause.getComputerIconAltText(); + } + // There is a "technical" reason the computer will not accept new builds + if (isOffline()) return "[offline]"; + return "[online]"; + } + + default String getTooltip() { + var offlineCause = getOfflineCause(); + if (offlineCause != null) { + return offlineCause.toString(); + } else { + return ""; + } + } /** * Returns the class name that will be used to look up the icon. diff --git a/core/src/main/java/jenkins/widgets/ExecutorsWidget.java b/core/src/main/java/jenkins/widgets/ExecutorsWidget.java index c660d4e03911..3577d21af48b 100644 --- a/core/src/main/java/jenkins/widgets/ExecutorsWidget.java +++ b/core/src/main/java/jenkins/widgets/ExecutorsWidget.java @@ -10,6 +10,7 @@ import java.util.Collection; import java.util.Collections; import java.util.List; +import jenkins.model.IComputer; import jenkins.model.Jenkins; import org.jenkinsci.Symbol; @@ -23,9 +24,9 @@ */ public class ExecutorsWidget extends Widget { private final String ownerUrl; - private final List computers; + private final List computers; - public ExecutorsWidget(@NonNull String ownerUrl, @NonNull List computers) { + public ExecutorsWidget(@NonNull String ownerUrl, @NonNull List computers) { this.ownerUrl = ownerUrl; this.computers = new ArrayList<>(computers); } @@ -35,7 +36,7 @@ protected String getOwnerUrl() { return ownerUrl; } - public List getComputers() { + public List getComputers() { return Collections.unmodifiableList(computers); } @@ -92,7 +93,7 @@ public Class widgetType() { @NonNull @Override public Collection createFor(@NonNull ComputerSet target) { - return List.of(new ExecutorsWidget("computer/", List.of(target.get_all()))); + return List.of(new ExecutorsWidget("computer/", new ArrayList<>(target.getComputers()))); } } } diff --git a/core/src/main/resources/hudson/model/ComputerSet/_legend.jelly b/core/src/main/resources/hudson/model/ComputerSet/_legend.jelly index 07871a6fe5f1..1668323aa584 100644 --- a/core/src/main/resources/hudson/model/ComputerSet/_legend.jelly +++ b/core/src/main/resources/hudson/model/ComputerSet/_legend.jelly @@ -10,6 +10,13 @@ ${%online} +

    + +
    +
    + ${%paused} +
    +
    diff --git a/core/src/main/resources/hudson/model/ComputerSet/_legend.properties b/core/src/main/resources/hudson/model/ComputerSet/_legend.properties index 075df2f8a1c4..223ac506677e 100644 --- a/core/src/main/resources/hudson/model/ComputerSet/_legend.properties +++ b/core/src/main/resources/hudson/model/ComputerSet/_legend.properties @@ -6,6 +6,7 @@ not-accepting=The agent is not accepting tasks for execution. This usually means the time window. The agent might still execute tasks that have started while it was accepting tasks. Cloud agents that are \ intended to run only a single task might also use this.
    \ Agents will be shown as suspended in the Build Executor Status widgets. +paused=The agent has been put offline due to the configured retention strategy. It will be brought back online when needed (e.g. a new task requests it). offline=None of the above conditions applies. The agent is not connected or it is still connected but a node monitor decided \ that the agent is not in a healthy state. An agent in this state should be investigated. Legend=Icon legend diff --git a/core/src/main/resources/hudson/model/ComputerSet/index.jelly b/core/src/main/resources/hudson/model/ComputerSet/index.jelly index c96346ac4949..5e957e2bd9c0 100644 --- a/core/src/main/resources/hudson/model/ComputerSet/index.jelly +++ b/core/src/main/resources/hudson/model/ComputerSet/index.jelly @@ -77,7 +77,7 @@ THE SOFTWARE.
    - +
    diff --git a/core/src/main/resources/hudson/slaves/Messages.properties b/core/src/main/resources/hudson/slaves/Messages.properties index 5c95fd0df998..7dbd6e8a1909 100644 --- a/core/src/main/resources/hudson/slaves/Messages.properties +++ b/core/src/main/resources/hudson/slaves/Messages.properties @@ -42,3 +42,4 @@ ComputerLauncher.JavaVersionResult={0} -version returned {1}. ComputerLauncher.UnknownJavaVersion=Couldn’t figure out the Java version of {0} Cloud.ProvisionPermission.Description=Provision new nodes Cloud.RequiredName=Cloud must have a unique non-empty name. +SimpleScheduledRetentionStrategy.ScheduledOfflineCause.displayName=Offline according to schedule diff --git a/core/src/main/resources/hudson/slaves/OfflineCause/cause.jelly b/core/src/main/resources/hudson/slaves/OfflineCause/cause.jelly index 51a05a144aaf..e2457c8ae2bc 100644 --- a/core/src/main/resources/hudson/slaves/OfflineCause/cause.jelly +++ b/core/src/main/resources/hudson/slaves/OfflineCause/cause.jelly @@ -24,12 +24,12 @@ THE SOFTWARE. -
    +
    - ${it} +
    diff --git a/core/src/main/resources/jenkins/agents/Messages.properties b/core/src/main/resources/jenkins/agents/Messages.properties index 11a27f40642c..468a77f88db8 100644 --- a/core/src/main/resources/jenkins/agents/Messages.properties +++ b/core/src/main/resources/jenkins/agents/Messages.properties @@ -4,3 +4,4 @@ CloudSet.SpecifyCloudToCopy=Specify which cloud to copy CloudSet.NoSuchCloud=No such cloud: {0} CloudsLink.DisplayName=Clouds CloudsLink.Description=Add, remove, and configure cloud instances to provision agents on-demand. +IOfflineCause.offline=Offline diff --git a/core/src/main/resources/jenkins/agents/Messages_bg.properties b/core/src/main/resources/jenkins/agents/Messages_bg.properties new file mode 100644 index 000000000000..854f81e155df --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_bg.properties @@ -0,0 +1,2 @@ +IOfflineCause.offline=\ + Извън линия diff --git a/core/src/main/resources/jenkins/agents/Messages_ca.properties b/core/src/main/resources/jenkins/agents/Messages_ca.properties new file mode 100644 index 000000000000..b1dc57237b69 --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_ca.properties @@ -0,0 +1 @@ +IOfflineCause.offline=Fora de línia diff --git a/core/src/main/resources/jenkins/agents/Messages_cs.properties b/core/src/main/resources/jenkins/agents/Messages_cs.properties new file mode 100644 index 000000000000..e8be0867d387 --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_cs.properties @@ -0,0 +1 @@ +IOfflineCause.offline=nedostupný diff --git a/core/src/main/resources/jenkins/agents/Messages_da.properties b/core/src/main/resources/jenkins/agents/Messages_da.properties new file mode 100644 index 000000000000..3eeb9c7db8ac --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_da.properties @@ -0,0 +1 @@ +IOfflineCause.offline=offline diff --git a/core/src/main/resources/jenkins/agents/Messages_de.properties b/core/src/main/resources/jenkins/agents/Messages_de.properties new file mode 100644 index 000000000000..3eeb9c7db8ac --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_de.properties @@ -0,0 +1 @@ +IOfflineCause.offline=offline diff --git a/core/src/main/resources/jenkins/agents/Messages_es.properties b/core/src/main/resources/jenkins/agents/Messages_es.properties new file mode 100644 index 000000000000..227b94579e02 --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_es.properties @@ -0,0 +1 @@ +IOfflineCause.offline=fuera de linea diff --git a/core/src/main/resources/jenkins/agents/Messages_es_AR.properties b/core/src/main/resources/jenkins/agents/Messages_es_AR.properties new file mode 100644 index 000000000000..6876bdefb1c9 --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_es_AR.properties @@ -0,0 +1 @@ +IOfflineCause.offline=desconectado diff --git a/core/src/main/resources/jenkins/agents/Messages_et.properties b/core/src/main/resources/jenkins/agents/Messages_et.properties new file mode 100644 index 000000000000..569f0fb79967 --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_et.properties @@ -0,0 +1 @@ +IOfflineCause.offline=offlain diff --git a/core/src/main/resources/jenkins/agents/Messages_fi.properties b/core/src/main/resources/jenkins/agents/Messages_fi.properties new file mode 100644 index 000000000000..9366da643837 --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_fi.properties @@ -0,0 +1 @@ +IOfflineCause.offline=ei yhteyttä diff --git a/core/src/main/resources/jenkins/agents/Messages_fr.properties b/core/src/main/resources/jenkins/agents/Messages_fr.properties index 4d11e586212e..6b5c376636ef 100644 --- a/core/src/main/resources/jenkins/agents/Messages_fr.properties +++ b/core/src/main/resources/jenkins/agents/Messages_fr.properties @@ -4,3 +4,4 @@ CloudSet.SpecifyCloudToCopy=Spécifier le cloud à copier CloudSet.NoSuchCloud=Aucun cloud : {0} CloudsLink.DisplayName=Clouds CloudsLink.Description=Ajouter, supprimer et configurer les instances de cloud afin de provisionner les agents à la demande. +IOfflineCause.offline=déconnecté diff --git a/core/src/main/resources/jenkins/agents/Messages_he.properties b/core/src/main/resources/jenkins/agents/Messages_he.properties new file mode 100644 index 000000000000..845bb4c14d51 --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_he.properties @@ -0,0 +1 @@ +IOfflineCause.offline=לא מקוון diff --git a/core/src/main/resources/jenkins/agents/Messages_hu.properties b/core/src/main/resources/jenkins/agents/Messages_hu.properties new file mode 100644 index 000000000000..f1d2ee59ca29 --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_hu.properties @@ -0,0 +1 @@ +IOfflineCause.offline=kapcsolat nélkül diff --git a/core/src/main/resources/jenkins/agents/Messages_it.properties b/core/src/main/resources/jenkins/agents/Messages_it.properties new file mode 100644 index 000000000000..67f532b2888e --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_it.properties @@ -0,0 +1 @@ +IOfflineCause.offline=non in linea diff --git a/core/src/main/resources/jenkins/agents/Messages_ja.properties b/core/src/main/resources/jenkins/agents/Messages_ja.properties new file mode 100644 index 000000000000..1dc8b5a9de59 --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_ja.properties @@ -0,0 +1 @@ +IOfflineCause.offline=オフライン diff --git a/core/src/main/resources/jenkins/agents/Messages_ko.properties b/core/src/main/resources/jenkins/agents/Messages_ko.properties new file mode 100644 index 000000000000..b66c4afd873d --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_ko.properties @@ -0,0 +1 @@ +IOfflineCause.offline=오프라인 diff --git a/core/src/main/resources/jenkins/agents/Messages_lt.properties b/core/src/main/resources/jenkins/agents/Messages_lt.properties new file mode 100644 index 000000000000..1dc33ef4d0ce --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_lt.properties @@ -0,0 +1 @@ +IOfflineCause.offline=nepasiekiamas diff --git a/core/src/main/resources/jenkins/agents/Messages_lv.properties b/core/src/main/resources/jenkins/agents/Messages_lv.properties new file mode 100644 index 000000000000..b201d5aa457b --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_lv.properties @@ -0,0 +1 @@ +IOfflineCause.offline=bezsaitē diff --git a/core/src/main/resources/jenkins/agents/Messages_nb_NO.properties b/core/src/main/resources/jenkins/agents/Messages_nb_NO.properties new file mode 100644 index 000000000000..e4c6f4d4c1cf --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_nb_NO.properties @@ -0,0 +1 @@ +IOfflineCause.offline=ikke tilgjengelig diff --git a/core/src/main/resources/jenkins/agents/Messages_nl.properties b/core/src/main/resources/jenkins/agents/Messages_nl.properties new file mode 100644 index 000000000000..db8aa00bc17e --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_nl.properties @@ -0,0 +1 @@ +IOfflineCause.offline=niet verbonden diff --git a/core/src/main/resources/jenkins/agents/Messages_pl.properties b/core/src/main/resources/jenkins/agents/Messages_pl.properties new file mode 100644 index 000000000000..d077ba98ac3d --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_pl.properties @@ -0,0 +1 @@ +IOfflineCause.offline=rozłączony diff --git a/core/src/main/resources/jenkins/agents/Messages_pt_BR.properties b/core/src/main/resources/jenkins/agents/Messages_pt_BR.properties new file mode 100644 index 000000000000..6876bdefb1c9 --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_pt_BR.properties @@ -0,0 +1 @@ +IOfflineCause.offline=desconectado diff --git a/core/src/main/resources/jenkins/agents/Messages_pt_PT.properties b/core/src/main/resources/jenkins/agents/Messages_pt_PT.properties new file mode 100644 index 000000000000..1b4e4281c66a --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_pt_PT.properties @@ -0,0 +1 @@ +IOfflineCause.offline=desligado diff --git a/core/src/main/resources/jenkins/agents/Messages_ro.properties b/core/src/main/resources/jenkins/agents/Messages_ro.properties new file mode 100644 index 000000000000..003d60708ddd --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_ro.properties @@ -0,0 +1 @@ +IOfflineCause.offline=oprit diff --git a/core/src/main/resources/jenkins/agents/Messages_ru.properties b/core/src/main/resources/jenkins/agents/Messages_ru.properties new file mode 100644 index 000000000000..6b7d6b72f9bc --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_ru.properties @@ -0,0 +1 @@ +IOfflineCause.offline=выключен diff --git a/core/src/main/resources/jenkins/agents/Messages_sr.properties b/core/src/main/resources/jenkins/agents/Messages_sr.properties new file mode 100644 index 000000000000..33944f0fed07 --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_sr.properties @@ -0,0 +1 @@ +IOfflineCause.offline=Ван мреже diff --git a/core/src/main/resources/jenkins/agents/Messages_sv_SE.properties b/core/src/main/resources/jenkins/agents/Messages_sv_SE.properties index 38cc64867d62..51ede868f109 100644 --- a/core/src/main/resources/jenkins/agents/Messages_sv_SE.properties +++ b/core/src/main/resources/jenkins/agents/Messages_sv_SE.properties @@ -4,3 +4,4 @@ CloudSet.SpecifyCloudToCopy=Ange vilket moln som ska kopieras CloudSet.NoSuchCloud=Det finns inget sådant moln: {0} CloudsLink.DisplayName=Moln CloudsLink.Description=Lägg till, ta bort och konfigurera molninstanser för att tillhandahålla agenter på begäran. +IOfflineCause.offline=frånkopplad diff --git a/core/src/main/resources/jenkins/agents/Messages_tr.properties b/core/src/main/resources/jenkins/agents/Messages_tr.properties index 5265f554c784..240942f59eae 100644 --- a/core/src/main/resources/jenkins/agents/Messages_tr.properties +++ b/core/src/main/resources/jenkins/agents/Messages_tr.properties @@ -4,3 +4,4 @@ CloudSet.SpecifyCloudToCopy=Hangi bulutun kopyalanacağını belirtin CloudSet.NoSuchCloud=Böyle bir bulut yok: {0} CloudsLink.DisplayName=Bulutlar CloudsLink.Description=İsteğe bağlı olarak ajan hazırlamak için kullanılmak üzere bulut tanımları ekleyin, kaldırın ve düzenleyin. +IOfflineCause.offline=поза мережею diff --git a/core/src/main/resources/jenkins/agents/Messages_uk.properties b/core/src/main/resources/jenkins/agents/Messages_uk.properties new file mode 100644 index 000000000000..1138609d6943 --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_uk.properties @@ -0,0 +1 @@ +IOfflineCause.offline=поза мережею diff --git a/core/src/main/resources/jenkins/agents/Messages_zh_TW.properties b/core/src/main/resources/jenkins/agents/Messages_zh_TW.properties new file mode 100644 index 000000000000..8f59605265aa --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_zh_TW.properties @@ -0,0 +1 @@ +IOfflineCause.offline=離線 diff --git a/core/src/main/resources/lib/hudson/executors.jelly b/core/src/main/resources/lib/hudson/executors.jelly index af2224818c40..01dab9d2b7b8 100644 --- a/core/src/main/resources/lib/hudson/executors.jelly +++ b/core/src/main/resources/lib/hudson/executors.jelly @@ -33,15 +33,16 @@ THE SOFTWARE. - + ${title} - + +
    - ( ${%offline}) + ( ${%offline})
    diff --git a/test/src/test/java/hudson/model/ComputerTest.java b/test/src/test/java/hudson/model/ComputerTest.java index a3392ee448af..3acac9b9fcc9 100644 --- a/test/src/test/java/hudson/model/ComputerTest.java +++ b/test/src/test/java/hudson/model/ComputerTest.java @@ -128,6 +128,30 @@ public void doNotShowUserDetailsInOfflineCause() throws Exception { verifyOfflineCause(computer); } + @Test + public void offlineCauseRemainsAfterTemporaryCauseRemoved() throws Exception { + var agent = j.createSlave(); + var computer = agent.toComputer(); + var initialOfflineCause = new OfflineCause.UserCause(User.getOrCreateByIdOrFullName("username"), "Initial cause"); + computer.setOfflineCause(initialOfflineCause); + assertThat(computer.getOfflineCause(), equalTo(initialOfflineCause)); + var temporaryCause = new OfflineCause.UserCause(User.getOrCreateByIdOrFullName("username"), "msg"); + computer.setTemporarilyOffline(true, temporaryCause); + assertThat(computer.getOfflineCause(), equalTo(temporaryCause)); + computer.setTemporarilyOffline(false, null); + assertThat(computer.getOfflineCause(), equalTo(initialOfflineCause)); + } + + @Test + public void computerIconDependsOnOfflineCause() throws Exception { + var agent = j.createSlave(); + var computer = agent.toComputer(); + assertThat(computer.getIcon(), equalTo("symbol-computer-offline")); + var cause = new OfflineCause.IdleOfflineCause(); + computer.setOfflineCause(cause); + assertThat(computer.getIcon(), equalTo(cause.getComputerIcon())); + } + @Test @LocalData public void removeUserDetailsFromOfflineCause() throws Exception { Computer computer = j.jenkins.getComputer("deserialized"); diff --git a/war/src/main/resources/images/symbols/computer-paused.svg b/war/src/main/resources/images/symbols/computer-paused.svg new file mode 100644 index 000000000000..a59da7cf7a73 --- /dev/null +++ b/war/src/main/resources/images/symbols/computer-paused.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/war/src/main/resources/images/symbols/pause.svg b/war/src/main/resources/images/symbols/pause.svg new file mode 100644 index 000000000000..cbaa400eaa99 --- /dev/null +++ b/war/src/main/resources/images/symbols/pause.svg @@ -0,0 +1 @@ + From 1869fc05fe10e8e06821fd202d6743ef7b962e85 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 23 Oct 2024 07:13:23 -0700 Subject: [PATCH 1131/1216] Update jenkins/ath Docker tag to v6052 (#9904) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- ath.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ath.sh b/ath.sh index 3326a2118260..b1159344ffd5 100644 --- a/ath.sh +++ b/ath.sh @@ -6,7 +6,7 @@ set -o xtrace cd "$(dirname "$0")" # https://github.com/jenkinsci/acceptance-test-harness/releases -export ATH_VERSION=6040.v72ed2f5b_59f6 +export ATH_VERSION=6052.v122b_b_a_b_94b_60 if [[ $# -eq 0 ]]; then export JDK=17 From 1f7b6a8f0e34586b14d833a52ecbf7b8f65d6f6c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 24 Oct 2024 18:38:16 +0100 Subject: [PATCH 1132/1216] Fill in since annotations (#9910) Co-authored-by: timja <21194782+timja@users.noreply.github.com> --- core/src/main/java/hudson/model/Computer.java | 6 +++--- core/src/main/java/hudson/util/FormApply.java | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/hudson/model/Computer.java b/core/src/main/java/hudson/model/Computer.java index 9fe65e81974b..eec5bdd8d28d 100644 --- a/core/src/main/java/hudson/model/Computer.java +++ b/core/src/main/java/hudson/model/Computer.java @@ -687,7 +687,7 @@ public void setTemporarilyOffline(boolean temporarilyOffline) { * @deprecated * Use {@link #setTemporaryOfflineCause(OfflineCause)} instead. */ - @Deprecated(since = "TODO") + @Deprecated(since = "2.482") public void setTemporarilyOffline(boolean temporarilyOffline, OfflineCause cause) { if (cause == null) { setTemporarilyOffline(temporarilyOffline); @@ -702,7 +702,7 @@ public void setTemporarilyOffline(boolean temporarilyOffline, OfflineCause cause * * @param temporaryOfflineCause The reason why the node is being put offline. * If null, this cancels the status - * @since TODO + * @since 2.482 */ public void setTemporaryOfflineCause(@CheckForNull OfflineCause temporaryOfflineCause) { var node = getNode(); @@ -713,7 +713,7 @@ public void setTemporaryOfflineCause(@CheckForNull OfflineCause temporaryOffline } /** - * @since TODO + * @since 2.482 * @return If the node is temporarily offline, the reason why. */ @SuppressWarnings("unused") // used by setOfflineCause.jelly diff --git a/core/src/main/java/hudson/util/FormApply.java b/core/src/main/java/hudson/util/FormApply.java index 9fc5f578f05d..3d5f458ec126 100644 --- a/core/src/main/java/hudson/util/FormApply.java +++ b/core/src/main/java/hudson/util/FormApply.java @@ -113,7 +113,7 @@ public void generateResponse(StaplerRequest2 req, StaplerResponse2 rsp, Object n * @param notificationType type of notification. See {@link NotificationType} for supported types. Defines the notification * color and the icon that will be shown. * - * @since TODO + * @since 2.482 */ public static HttpResponseException showNotification(final String message, final NotificationType notificationType) { return new HttpResponseException() { From 7a1630235f99b4f3c496992462b2140b1adacc29 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Thu, 24 Oct 2024 13:41:45 -0400 Subject: [PATCH 1133/1216] Removing configurability of `Jenkins.agentProtocols` (#9903) --- .../java/hudson/TcpSlaveAgentListener.java | 21 +-- .../security/GlobalSecurityConfiguration.java | 20 -- core/src/main/java/jenkins/AgentProtocol.java | 52 ++---- core/src/main/java/jenkins/model/Jenkins.java | 129 +------------ .../slaves/JnlpSlaveAgentProtocol4.java | 10 - .../main/resources/hudson/Messages.properties | 1 - .../resources/hudson/Messages_bg.properties | 3 - .../resources/hudson/Messages_de.properties | 2 - .../resources/hudson/Messages_es.properties | 1 - .../resources/hudson/Messages_fr.properties | 1 - .../resources/hudson/Messages_it.properties | 1 - .../hudson/Messages_pt_BR.properties | 1 - .../resources/hudson/Messages_sr.properties | 1 - .../hudson/Messages_sv_SE.properties | 1 - .../hudson/Messages_zh_TW.properties | 1 - .../help-agentProtocol.html | 4 - .../help-agentProtocol_bg.html | 4 - .../help-agentProtocol_it.html | 4 - .../help-agentProtocol_sv_SE.html | 5 - .../GlobalSecurityConfiguration/index.groovy | 28 --- .../index_it.properties | 1 - .../JnlpSlaveAgentProtocol4/description.jelly | 4 - .../description.properties | 1 - .../description_bg.properties | 26 --- .../description_de.properties | 23 --- .../description_fr.properties | 1 - .../description_it.properties | 25 --- .../description_pt_BR.properties | 23 --- .../description_sv_SE.properties | 23 --- .../description_zh_TW.properties | 1 - .../jenkins/slaves/Messages.properties | 27 --- .../jenkins/slaves/Messages_bg.properties | 37 ---- .../jenkins/slaves/Messages_de.properties | 27 --- .../jenkins/slaves/Messages_fr.properties | 27 --- .../jenkins/slaves/Messages_it.properties | 33 ---- .../jenkins/slaves/Messages_pt_BR.properties | 27 --- .../jenkins/slaves/Messages_sv_SE.properties | 27 --- .../jenkins/slaves/Messages_zh_TW.properties | 27 --- .../test/java/jenkins/AgentProtocolTest.java | 93 ---------- .../agents/JnlpProtocol4ProxyHandlerTest.java | 5 - .../test/java/jenkins/model/JenkinsTest.java | 175 ------------------ .../jenkins/AgentProtocolTest/config.xml | 41 ---- 42 files changed, 19 insertions(+), 945 deletions(-) delete mode 100644 core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol.html delete mode 100644 core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol_bg.html delete mode 100644 core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol_it.html delete mode 100644 core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol_sv_SE.html delete mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description.jelly delete mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description.properties delete mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_bg.properties delete mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_de.properties delete mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_fr.properties delete mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_it.properties delete mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_pt_BR.properties delete mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_sv_SE.properties delete mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_zh_TW.properties delete mode 100644 core/src/main/resources/jenkins/slaves/Messages.properties delete mode 100644 core/src/main/resources/jenkins/slaves/Messages_bg.properties delete mode 100644 core/src/main/resources/jenkins/slaves/Messages_de.properties delete mode 100644 core/src/main/resources/jenkins/slaves/Messages_fr.properties delete mode 100644 core/src/main/resources/jenkins/slaves/Messages_it.properties delete mode 100644 core/src/main/resources/jenkins/slaves/Messages_pt_BR.properties delete mode 100644 core/src/main/resources/jenkins/slaves/Messages_sv_SE.properties delete mode 100644 core/src/main/resources/jenkins/slaves/Messages_zh_TW.properties delete mode 100644 test/src/test/java/jenkins/AgentProtocolTest.java delete mode 100644 test/src/test/resources/jenkins/AgentProtocolTest/config.xml diff --git a/core/src/main/java/hudson/TcpSlaveAgentListener.java b/core/src/main/java/hudson/TcpSlaveAgentListener.java index 3936071de2ef..e7f037652c9b 100644 --- a/core/src/main/java/hudson/TcpSlaveAgentListener.java +++ b/core/src/main/java/hudson/TcpSlaveAgentListener.java @@ -271,14 +271,11 @@ public void run() { String protocol = s.substring(9); AgentProtocol p = AgentProtocol.of(protocol); if (p != null) { - if (Jenkins.get().getAgentProtocols().contains(protocol)) { - LOGGER.log(p instanceof PingAgentProtocol ? Level.FINE : Level.INFO, () -> "Accepted " + protocol + " connection " + connectionInfo); - p.handle(this.s); - } else { - error("Disabled protocol:" + s, this.s); - } - } else + LOGGER.log(p instanceof PingAgentProtocol ? Level.FINE : Level.INFO, () -> "Accepted " + protocol + " connection " + connectionInfo); + p.handle(this.s); + } else { error("Unknown protocol:", this.s); + } } else { error("Unrecognized protocol: " + s, this.s); } @@ -364,21 +361,11 @@ public PingAgentProtocol() { ping = "Ping\n".getBytes(StandardCharsets.UTF_8); } - @Override - public boolean isRequired() { - return true; - } - @Override public String getName() { return "Ping"; } - @Override - public String getDisplayName() { - return Messages.TcpSlaveAgentListener_PingAgentProtocol_displayName(); - } - @Override public void handle(Socket socket) throws IOException, InterruptedException { try (socket) { diff --git a/core/src/main/java/hudson/security/GlobalSecurityConfiguration.java b/core/src/main/java/hudson/security/GlobalSecurityConfiguration.java index a8657df65685..ae90b0428c7b 100644 --- a/core/src/main/java/hudson/security/GlobalSecurityConfiguration.java +++ b/core/src/main/java/hudson/security/GlobalSecurityConfiguration.java @@ -37,15 +37,12 @@ import hudson.util.FormApply; import jakarta.servlet.ServletException; import java.io.IOException; -import java.util.Set; -import java.util.TreeSet; import java.util.function.Predicate; import java.util.logging.Level; import java.util.logging.Logger; import jenkins.model.GlobalConfigurationCategory; import jenkins.model.Jenkins; import jenkins.util.ServerTcpPort; -import net.sf.json.JSONArray; import net.sf.json.JSONException; import net.sf.json.JSONObject; import org.jenkinsci.Symbol; @@ -92,11 +89,6 @@ public boolean isSlaveAgentPortEnforced() { return Jenkins.get().isSlaveAgentPortEnforced(); } - @NonNull - public Set getAgentProtocols() { - return Jenkins.get().getAgentProtocols(); - } - public boolean isDisableRememberMe() { return Jenkins.get().isDisableRememberMe(); } @@ -149,18 +141,6 @@ public boolean configure(StaplerRequest2 req, JSONObject json) throws FormExcept throw new FormException(e, "slaveAgentPortType"); } } - Set agentProtocols = new TreeSet<>(); - if (json.has("agentProtocol")) { - Object protocols = json.get("agentProtocol"); - if (protocols instanceof JSONArray) { - for (int i = 0; i < ((JSONArray) protocols).size(); i++) { - agentProtocols.add(((JSONArray) protocols).getString(i)); - } - } else { - agentProtocols.add(protocols.toString()); - } - } - j.setAgentProtocols(agentProtocols); // persist all the additional security configs boolean result = true; diff --git a/core/src/main/java/jenkins/AgentProtocol.java b/core/src/main/java/jenkins/AgentProtocol.java index d43398985810..1494dc60b183 100644 --- a/core/src/main/java/jenkins/AgentProtocol.java +++ b/core/src/main/java/jenkins/AgentProtocol.java @@ -7,8 +7,6 @@ import hudson.TcpSlaveAgentListener; import java.io.IOException; import java.net.Socket; -import java.util.Set; -import jenkins.model.Jenkins; /** * Pluggable Jenkins TCP agent protocol handler called from {@link TcpSlaveAgentListener}. @@ -18,57 +16,31 @@ * Implementations of this extension point is singleton, and its {@link #handle(Socket)} method * gets invoked concurrently whenever a new connection comes in. * - *

    Extending UI

    - *
    - *
    description.jelly
    - *
    Optional protocol description
    - *
    deprecationCause.jelly
    - *
    Optional. If the protocol is marked as {@link #isDeprecated()}, - * clarifies the deprecation reason and provides extra documentation links
    - *
    - * * @author Kohsuke Kawaguchi * @since 1.467 * @see TcpSlaveAgentListener */ public abstract class AgentProtocol implements ExtensionPoint { /** - * Allow experimental {@link AgentProtocol} implementations to declare being opt-in. - * Note that {@link Jenkins#setAgentProtocols(Set)} only records the protocols where the admin has made a - * conscious decision thus: - *
      - *
    • if a protocol is opt-in, it records the admin enabling it
    • - *
    • if a protocol is opt-out, it records the admin disabling it
    • - *
    - * Implementations should not transition rapidly from {@code opt-in -> opt-out -> opt-in}. - * Implementations should never flip-flop: {@code opt-in -> opt-out -> opt-in -> opt-out} as that will basically - * clear any preference that an admin has set. This latter restriction should be ok as we only ever will be - * adding new protocols and retiring old ones. - * - * @return {@code true} if the protocol requires explicit opt-in. - * @since 2.16 - * @see Jenkins#setAgentProtocols(Set) + * @deprecated no longer used */ + @Deprecated public boolean isOptIn() { return false; } + /** - * Allow essential {@link AgentProtocol} implementations (basically {@link TcpSlaveAgentListener.PingAgentProtocol}) - * to be always enabled. - * - * @return {@code true} if the protocol can never be disabled. - * @since 2.16 + * @deprecated no longer used */ - + @Deprecated public boolean isRequired() { return false; } /** - * Checks if the protocol is deprecated. - * - * @since 2.75 + * @deprecated no longer used */ + @Deprecated public boolean isDeprecated() { return false; } @@ -79,17 +51,15 @@ public boolean isDeprecated() { * This is a short string that consists of printable ASCII chars. Sent by the client to select the protocol. * * @return - * null to be disabled. This is useful for avoiding getting used - * until the protocol is properly configured. + * null to be disabled */ + @CheckForNull public abstract String getName(); /** - * Returns the human readable protocol display name. - * - * @return the human readable protocol display name. - * @since 2.16 + * @deprecated no longer used */ + @Deprecated public String getDisplayName() { return getName(); } diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index 6db36176c6c2..bedbea0af7c4 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -656,47 +656,6 @@ private static int getSlaveAgentPortInitialValue(int def) { */ private static final boolean SLAVE_AGENT_PORT_ENFORCE = SystemProperties.getBoolean(Jenkins.class.getName() + ".slaveAgentPortEnforce", false); - /** - * The TCP agent protocols that are explicitly disabled (we store the disabled ones so that newer protocols - * are enabled by default). Will be {@code null} instead of empty to simplify XML format. - * - * @since 2.16 - */ - @CheckForNull - @GuardedBy("this") - private List disabledAgentProtocols; - /** - * @deprecated Just a temporary buffer for XSTream migration code from JENKINS-39465, do not use - */ - @Deprecated - private transient String[] _disabledAgentProtocols; - - /** - * The TCP agent protocols that are {@link AgentProtocol#isOptIn()} and explicitly enabled. - * Will be {@code null} instead of empty to simplify XML format. - * - * @since 2.16 - */ - @CheckForNull - @GuardedBy("this") - private List enabledAgentProtocols; - /** - * @deprecated Just a temporary buffer for XSTream migration code from JENKINS-39465, do not use - */ - @Deprecated - private transient String[] _enabledAgentProtocols; - - /** - * The TCP agent protocols that are enabled. Built from {@link #disabledAgentProtocols} and - * {@link #enabledAgentProtocols}. - * - * @since 2.16 - * @see #setAgentProtocols(Set) - * @see #getAgentProtocols() - */ - @GuardedBy("this") - private transient Set agentProtocols; - /** * Whitespace-separated labels assigned to the built-in node as a {@link Node}. */ @@ -1096,18 +1055,6 @@ protected Object readResolve() { if (SLAVE_AGENT_PORT_ENFORCE) { slaveAgentPort = getSlaveAgentPortInitialValue(slaveAgentPort); } - synchronized (this) { - if (disabledAgentProtocols == null && _disabledAgentProtocols != null) { - disabledAgentProtocols = Arrays.asList(_disabledAgentProtocols); - _disabledAgentProtocols = null; - } - if (enabledAgentProtocols == null && _enabledAgentProtocols != null) { - enabledAgentProtocols = Arrays.asList(_enabledAgentProtocols); - _enabledAgentProtocols = null; - } - // Invalidate the protocols cache after the reload - agentProtocols = null; - } // no longer persisted installStateName = null; @@ -1282,81 +1229,15 @@ private void forceSetSlaveAgentPort(int port) throws IOException { */ @NonNull public synchronized Set getAgentProtocols() { - if (agentProtocols == null) { - Set result = new TreeSet<>(); - Set disabled = new TreeSet<>(); - for (String p : Util.fixNull(disabledAgentProtocols)) { - disabled.add(p.trim()); - } - Set enabled = new TreeSet<>(); - for (String p : Util.fixNull(enabledAgentProtocols)) { - enabled.add(p.trim()); - } - for (AgentProtocol p : AgentProtocol.all()) { - String name = p.getName(); - if (name != null && (p.isRequired() - || (!disabled.contains(name) && (!p.isOptIn() || enabled.contains(name))))) { - result.add(name); - } - } - /* - * An empty result is almost never valid, but it can happen due to JENKINS-70206. Since we know the result - * is likely incorrect, at least decline to cache it so that a correct result can be computed later on - * rather than continuing to deliver the incorrect result indefinitely. - */ - if (!result.isEmpty()) { - agentProtocols = result; - } - return result; - } - return agentProtocols; + return AgentProtocol.all().stream().map(AgentProtocol::getName).filter(Objects::nonNull).collect(Collectors.toCollection(TreeSet::new)); } /** - * Sets the enabled agent protocols. - * - * @param protocols the enabled agent protocols. - * @since 2.16 + * @deprecated No longer does anything. */ + @Deprecated public synchronized void setAgentProtocols(@NonNull Set protocols) { - Set disabled = new TreeSet<>(); - Set enabled = new TreeSet<>(); - for (AgentProtocol p : AgentProtocol.all()) { - String name = p.getName(); - if (name != null && !p.isRequired()) { - // we want to record the protocols where the admin has made a conscious decision - // thus, if a protocol is opt-in, we record the admin enabling it - // if a protocol is opt-out, we record the admin disabling it - // We should not transition rapidly from opt-in -> opt-out -> opt-in - // the scenario we want to have work is: - // 1. We introduce a new protocol, it starts off as opt-in. Some admins decide to test and opt-in - // 2. We decide that the protocol is ready for general use. It gets marked as opt-out. Any admins - // that took part in early testing now have their config switched to not mention the new protocol - // at all when they save their config as the protocol is now opt-out. Any admins that want to - // disable it can do so and will have their preference recorded. - // 3. We decide that the protocol needs to be retired. It gets switched back to opt-in. At this point - // the initial opt-in admins, assuming they visited an upgrade to a controller with step 2, will - // have the protocol disabled for them. This is what we want. If they didn't upgrade to a controller - // with step 2, well there is not much we can do to differentiate them from somebody who is upgrading - // from a previous step 3 controller and had needed to keep the protocol turned on. - // - // What we should never do is flip-flop: opt-in -> opt-out -> opt-in -> opt-out as that will basically - // clear any preference that an admin has set, but this should be ok as we only ever will be - // adding new protocols and retiring old ones. - if (p.isOptIn()) { - if (protocols.contains(name)) { - enabled.add(name); - } - } else { - if (!protocols.contains(name)) { - disabled.add(name); - } - } - } - } - disabledAgentProtocols = disabled.isEmpty() ? null : new ArrayList<>(disabled); - enabledAgentProtocols = enabled.isEmpty() ? null : new ArrayList<>(enabled); - agentProtocols = null; + LOGGER.log(Level.WARNING, null, new IllegalStateException("Jenkins.agentProtocols no longer configurable")); } private void launchTcpSlaveAgentListener() throws IOException { @@ -6000,8 +5881,6 @@ public boolean shouldShowStackTrace() { // for backward compatibility with <1.75, recognize the tag name "view" as well. XSTREAM.alias("view", ListView.class); XSTREAM.alias("listView", ListView.class); - XSTREAM.addImplicitArray(Jenkins.class, "_disabledAgentProtocols", "disabledAgentProtocol"); - XSTREAM.addImplicitArray(Jenkins.class, "_enabledAgentProtocols", "enabledAgentProtocol"); XSTREAM2.addCriticalField(Jenkins.class, "securityRealm"); XSTREAM2.addCriticalField(Jenkins.class, "authorizationStrategy"); // this seems to be necessary to force registration of converter early enough diff --git a/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol4.java b/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol4.java index 54c1402927a9..87eb26daeb4c 100644 --- a/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol4.java +++ b/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol4.java @@ -137,16 +137,6 @@ private char[] constructPassword() { return "password".toCharArray(); } - @Override - public boolean isOptIn() { - return false; - } - - @Override - public String getDisplayName() { - return Messages.JnlpSlaveAgentProtocol4_displayName(); - } - @Override public String getName() { return "JNLP4-connect"; // matches JnlpProtocol4Handler.getName diff --git a/core/src/main/resources/hudson/Messages.properties b/core/src/main/resources/hudson/Messages.properties index 99c77ebbed46..a15f31703cd0 100644 --- a/core/src/main/resources/hudson/Messages.properties +++ b/core/src/main/resources/hudson/Messages.properties @@ -127,7 +127,6 @@ PluginWrapper.Plugin.Has.Dependent=The plugin ''{0}'' has, at least, one depende PluginWrapper.Plugin.Disabled=Plugin ''{0}'' disabled PluginWrapper.NoSuchPlugin=No such plugin found with the name ''{0}'' PluginWrapper.Error.Disabling=There was an error disabling the ''{0}'' plugin. Error: ''{1}'' -TcpSlaveAgentListener.PingAgentProtocol.displayName=Ping protocol ProxyConfigurationManager.DisplayName=Proxy Configuration ProxyConfigurationManager.Description=Configure the http proxy used by Jenkins diff --git a/core/src/main/resources/hudson/Messages_bg.properties b/core/src/main/resources/hudson/Messages_bg.properties index 98b816053e44..e741c7400a06 100644 --- a/core/src/main/resources/hudson/Messages_bg.properties +++ b/core/src/main/resources/hudson/Messages_bg.properties @@ -105,9 +105,6 @@ PluginWrapper.disabledAndObsolete=\ # {0} is disabled. To fix, enable it. PluginWrapper.disabled=\ „{0}“ е изключена. Включете я. -# Ping protocol -TcpSlaveAgentListener.PingAgentProtocol.displayName=\ - Протокол „ping“ # {0} v{1} failed to load. Fix this plugin first. PluginWrapper.failed_to_load_dependency=\ „{0}“, версия {1} не се зареди. Оправете приставката. diff --git a/core/src/main/resources/hudson/Messages_de.properties b/core/src/main/resources/hudson/Messages_de.properties index e4068a20b58a..d524a518cd44 100644 --- a/core/src/main/resources/hudson/Messages_de.properties +++ b/core/src/main/resources/hudson/Messages_de.properties @@ -75,5 +75,3 @@ AboutJenkins.DisplayName=Über Jenkins AboutJenkins.Description=Versions- und Lizenzinformationen anzeigen. Functions.NoExceptionDetails=Keine Details zum Ausnahmefehler - -TcpSlaveAgentListener.PingAgentProtocol.displayName=Ping-Protokoll diff --git a/core/src/main/resources/hudson/Messages_es.properties b/core/src/main/resources/hudson/Messages_es.properties index 298ef23821d8..47d3b400c747 100644 --- a/core/src/main/resources/hudson/Messages_es.properties +++ b/core/src/main/resources/hudson/Messages_es.properties @@ -117,4 +117,3 @@ PluginWrapper.Plugin.Has.Dependant=El plugin {0} tiene, al menos, un plugin depe PluginWrapper.Plugin.Disabled=Plugin {0} deshabilitado PluginWrapper.NoSuchPlugin=No se encuentra un plugin con el nombre {0} PluginWrapper.Error.Disabling=Hubo un error al desactivar el plugin ''{0}''. Error: ''{1}'' -TcpSlaveAgentListener.PingAgentProtocol.displayName=Protocolo ping diff --git a/core/src/main/resources/hudson/Messages_fr.properties b/core/src/main/resources/hudson/Messages_fr.properties index 1e0286deddc5..06e739d3b479 100644 --- a/core/src/main/resources/hudson/Messages_fr.properties +++ b/core/src/main/resources/hudson/Messages_fr.properties @@ -126,4 +126,3 @@ PluginWrapper.Plugin.Has.Dependent=Le plugin "{0}" a au moins un plugin dépenda PluginWrapper.Plugin.Disabled=Plugin "{0}" désactivé PluginWrapper.NoSuchPlugin=Aucun plugin trouvé avec le nom "{0}" PluginWrapper.Error.Disabling=Une erreur a été relevée lors de la désactivation du plugin "{0}". Erreur : "{1}" -TcpSlaveAgentListener.PingAgentProtocol.displayName=Protocole de ping diff --git a/core/src/main/resources/hudson/Messages_it.properties b/core/src/main/resources/hudson/Messages_it.properties index 2747e2d39366..d63200aabd1e 100644 --- a/core/src/main/resources/hudson/Messages_it.properties +++ b/core/src/main/resources/hudson/Messages_it.properties @@ -109,7 +109,6 @@ ProxyConfiguration.MalformedTestUrl=URL di prova {0} malformato. ProxyConfiguration.NonTLSWarning=Jenkins supporta solo l''utilizzo di una connessione http al proxy. Le credenziali potrebbero essere esposte a qualcuno sulla stessa rete. ProxyConfiguration.Success=Connessione riuscita (codice {0}) ProxyConfiguration.TestUrlRequired=È richiesto un URL di prova. -TcpSlaveAgentListener.PingAgentProtocol.displayName=Protocollo ping Util.day={0} g Util.hour={0} h Util.millisecond={0} ms diff --git a/core/src/main/resources/hudson/Messages_pt_BR.properties b/core/src/main/resources/hudson/Messages_pt_BR.properties index 0a809578524e..d67bdcba599c 100644 --- a/core/src/main/resources/hudson/Messages_pt_BR.properties +++ b/core/src/main/resources/hudson/Messages_pt_BR.properties @@ -57,7 +57,6 @@ PluginWrapper.missing=Não foi possível encontrar {0} v{1}. Para corrigir, inst Functions.NoExceptionDetails=Sem detalhes da exception FilePath.validateAntFileMask.whitespaceSeparator=Espaços em branco não podem mais serem utilizados como separador. Por \ favor use ", " como separadores. -TcpSlaveAgentListener.PingAgentProtocol.displayName=Protocolo de ping PluginWrapper.PluginWrapperAdministrativeMonitor.DisplayName=Falha ao carregar a extensão ProxyConfiguration.MalformedTestUrl=URL de teste {0} inválida. FilePath.TildaDoesntWork="~" é suportado apenas em um shell Unix e em nenhum outro lugar. diff --git a/core/src/main/resources/hudson/Messages_sr.properties b/core/src/main/resources/hudson/Messages_sr.properties index 3c266c5d67a3..414a84b3a41b 100644 --- a/core/src/main/resources/hudson/Messages_sr.properties +++ b/core/src/main/resources/hudson/Messages_sr.properties @@ -40,4 +40,3 @@ PluginWrapper.disabledAndObsolete={0}, верзија {1} је онемогућ PluginWrapper.disabled={0}, верзија {1} је онемогућено. Молимо вас, омогућите ову модулу. PluginWrapper.obsolete={0}, верзија {1} је старије него што је подржано. Инсталирајте верзију {2} или новије. PluginWrapper.obsoleteCore=Морате ажурирати Jenkins са верзије {0} на {1} или новије да би могли користити ову модулу. -TcpSlaveAgentListener.PingAgentProtocol.displayName=Протокол 'ping' diff --git a/core/src/main/resources/hudson/Messages_sv_SE.properties b/core/src/main/resources/hudson/Messages_sv_SE.properties index fdfa6ee3a524..f4a977e99098 100644 --- a/core/src/main/resources/hudson/Messages_sv_SE.properties +++ b/core/src/main/resources/hudson/Messages_sv_SE.properties @@ -125,7 +125,6 @@ PluginWrapper.Plugin.Has.Dependent=Insticksprogrammet ''{0}'' har minst ett bero PluginWrapper.Plugin.Disabled=Insticksprogrammet ''{0}'' inaktiverades PluginWrapper.NoSuchPlugin=Inget insticksprogram med namnet ''{0}'' hittades PluginWrapper.Error.Disabling=Ett fel uppstod när insticksprogrammet ''{0}'' inaktiverades. Fel: ''{1}'' -TcpSlaveAgentListener.PingAgentProtocol.displayName=Ping-protokoll ProxyConfigurationManager.DisplayName=Proxykonfiguration ProxyConfigurationManager.Description=Konfigurera http-proxyn som Jenkins använder diff --git a/core/src/main/resources/hudson/Messages_zh_TW.properties b/core/src/main/resources/hudson/Messages_zh_TW.properties index 708613e7e603..cc5fb76cb059 100644 --- a/core/src/main/resources/hudson/Messages_zh_TW.properties +++ b/core/src/main/resources/hudson/Messages_zh_TW.properties @@ -96,7 +96,6 @@ PluginWrapper.Plugin.Has.Dependent=外掛「{0}」有至少一個相依性外掛 PluginWrapper.Plugin.Disabled=已停用外掛「{0}」 PluginWrapper.NoSuchPlugin=找不到名為「{0}」的外掛 PluginWrapper.Error.Disabling=停用外掛「{0}」時發生錯誤,錯誤\: 「{1}」 -TcpSlaveAgentListener.PingAgentProtocol.displayName=Ping 協定 PluginManager.emptyUpdateSiteUrl=更新站台網址不得為空,請輸入網址 PluginManager.connectionFailed=無法連線至這個URL diff --git a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol.html b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol.html deleted file mode 100644 index 01bcd8d3b24b..000000000000 --- a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol.html +++ /dev/null @@ -1,4 +0,0 @@ -
    - Jenkins uses a TCP port to communicate with various remote agents. This option - allows control over which agent protocols are enabled. -
    diff --git a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol_bg.html b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol_bg.html deleted file mode 100644 index 41852a0729a8..000000000000 --- a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol_bg.html +++ /dev/null @@ -1,4 +0,0 @@ -
    - Jenkins използва порт па TCP, за да комуникира с подчинените компютри. Тази - опция задава кои протоколи за връзка са включени. -
    diff --git a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol_it.html b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol_it.html deleted file mode 100644 index 2adbe90a72a1..000000000000 --- a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol_it.html +++ /dev/null @@ -1,4 +0,0 @@ -
    - Jenkins utilizza una porta TCP per comunicare con vari agenti remoti. - Quest'opzione consente di controllare i vari protocolli agente abilitati. -
    diff --git a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol_sv_SE.html b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol_sv_SE.html deleted file mode 100644 index adf57097bb6f..000000000000 --- a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol_sv_SE.html +++ /dev/null @@ -1,5 +0,0 @@ -
    - Jenkins använder en TCP-port för att kommunicera med olika fjärragenter. Det - här alternativet gör det möjligt att kontrollera vilka agentprotokoll som är - aktiverade. -
    diff --git a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index.groovy b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index.groovy index 2abc4e795cc0..9c3c80607ca8 100644 --- a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index.groovy +++ b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index.groovy @@ -3,7 +3,6 @@ package hudson.security.GlobalSecurityConfiguration import hudson.security.SecurityRealm import hudson.markup.MarkupFormatterDescriptor import hudson.security.AuthorizationStrategy -import jenkins.AgentProtocol import hudson.Functions import hudson.model.Descriptor @@ -51,33 +50,6 @@ l.layout(permission:app.SYSTEM_READ, title:my.displayName, cssclass:request.getP f.serverTcpPort() } } - f.advanced(title: _("Agent protocols"), align:"left") { - f.entry(title: _("Agent protocols"), help: '/descriptor/hudson.security.GlobalSecurityConfiguration/help/agentProtocol') { - def agentProtocols = my.agentProtocols - div() { - for (AgentProtocol p : AgentProtocol.all()) { - if (p.name != null && !p.required) { - f.block() { - f.checkbox(name: "agentProtocol", - title: p.displayName, - checked: agentProtocols.contains(p.name), - json: p.name) - } - div(class: "tr") { - div(class:"setting-description"){ - st.include(from:p, page: "description", optional:true) - if (p.deprecated) { - br() - text(b(_("Deprecated. "))) - st.include(from:p, page: "deprecationCause", optional:true) - } - } - } - } - } - } - } - } } Functions.getSortedDescriptorsForGlobalConfigByDescriptor(my.FILTER).each { Descriptor descriptor -> diff --git a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index_it.properties b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index_it.properties index 9b343aab6b5e..ba6cf0fe694f 100644 --- a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index_it.properties +++ b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index_it.properties @@ -25,7 +25,6 @@ Agent\ protocols=Protocolli agente Agents=Agenti Authentication=Autenticazione Authorization=Autorizzazione -Deprecated.\ =Deprecato. Disable\ remember\ me=Disabilita "Ricordami" LOADING=Caricamento in corso Markup\ Formatter=Componente formattazione markup diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description.jelly b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description.jelly deleted file mode 100644 index 55e2c974b5ba..000000000000 --- a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description.jelly +++ /dev/null @@ -1,4 +0,0 @@ - - - ${%summary} - diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description.properties b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description.properties deleted file mode 100644 index 4ecb60357fd6..000000000000 --- a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description.properties +++ /dev/null @@ -1 +0,0 @@ -summary=A TLS secured connection between the controller and the agent performed by TLS upgrade of the socket. diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_bg.properties b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_bg.properties deleted file mode 100644 index 4d13804ebdad..000000000000 --- a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_bg.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Bulgarian translation: Copyright (c) 2016, 2017, Alexander Shopov -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -# A TLS secured connection between the master and the agent performed by TLS upgrade of the socket. -summary=\ - Защитена връзка между управляващия и подчинения компютър чрез преминаване към\ - TLS по гнездото. diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_de.properties b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_de.properties deleted file mode 100644 index 77064f1441ee..000000000000 --- a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_de.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2017 Daniel Beck and a number of other of contributors -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -summary=Eine TLS-gesicherte Verbindung zwischen Master-Knoten und Agenten über TLS-Upgrade des Sockets. diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_fr.properties b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_fr.properties deleted file mode 100644 index 26c2dd5b35c8..000000000000 --- a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_fr.properties +++ /dev/null @@ -1 +0,0 @@ -summary=Une connexion TLS sécurisée entre le contrôleur et l''agent a été effectuée via une mise à jour du TLS du socket. diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_it.properties b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_it.properties deleted file mode 100644 index 2d9452d7f068..000000000000 --- a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_it.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Italian localization plugin for Jenkins -# Copyright © 2020 Alessandro Menti -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -summary=Una connessione fra il master e l''agente protetta da TLS ed \ - eseguita aggiornando il socket a TLS. diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_pt_BR.properties b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_pt_BR.properties deleted file mode 100644 index 74e67bc910b6..000000000000 --- a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_pt_BR.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-, Kohsuke Kawaguchi, Sun Microsystems, Inc., and a number of other of contributors -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -summary=Uma conexão segura via TLS entre o controlador e o agente realizada por uma atualização de TLS no soquete. diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_sv_SE.properties b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_sv_SE.properties deleted file mode 100644 index 35b1deaba4fd..000000000000 --- a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_sv_SE.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-, Kohsuke Kawaguchi, Sun Microsystems, Inc., and a number of other of contributors -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -summary=En TLS-säker anslutning mellan styrenheten och agenten utfördes av sockelns TLS-uppgradering. diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_zh_TW.properties b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_zh_TW.properties deleted file mode 100644 index 949804a0f146..000000000000 --- a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_zh_TW.properties +++ /dev/null @@ -1 +0,0 @@ -summary=透過 TLS 通訊端升級 Controller 和 Agent 間的 TLS 安全連線。 diff --git a/core/src/main/resources/jenkins/slaves/Messages.properties b/core/src/main/resources/jenkins/slaves/Messages.properties deleted file mode 100644 index 41abfc7a302c..000000000000 --- a/core/src/main/resources/jenkins/slaves/Messages.properties +++ /dev/null @@ -1,27 +0,0 @@ -# The MIT License -# -# Copyright 2016 Stephen Connolly -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -JnlpSlaveAgentProtocol.displayName=Inbound TCP Agent Protocol/1 (deprecated, unencrypted) -JnlpSlaveAgentProtocol2.displayName=Inbound TCP Agent Protocol/2 (deprecated, unencrypted) -JnlpSlaveAgentProtocol3.displayName=Inbound TCP Agent Protocol/3 (deprecated, basic encryption) -JnlpSlaveAgentProtocol4.displayName=Inbound TCP Agent Protocol/4 (TLS encryption) -DeprecatedAgentProtocolMonitor.displayName=Deprecated Agent Protocol Monitor diff --git a/core/src/main/resources/jenkins/slaves/Messages_bg.properties b/core/src/main/resources/jenkins/slaves/Messages_bg.properties deleted file mode 100644 index 459672fa3c3d..000000000000 --- a/core/src/main/resources/jenkins/slaves/Messages_bg.properties +++ /dev/null @@ -1,37 +0,0 @@ -# The MIT License -# -# Bulgarian translation: Copyright (c) 2016, 2017, Alexander Shopov -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -# Java Web Start Agent Protocol/3 -JnlpSlaveAgentProtocol3.displayName=\ - Протокол за стартиране на агента за Java през уeб, версия 3 -# Java Web Start Agent Protocol/1 -JnlpSlaveAgentProtocol.displayName=\ - Протокол за стартиране на агента за Java през уeб, версия 1 -# Java Web Start Agent Protocol/2 -JnlpSlaveAgentProtocol2.displayName=\ - Протокол за стартиране на агента за Java през уeб, версия 2 -# Java Web Start Agent Protocol/4 (TLS encryption) -JnlpSlaveAgentProtocol4.displayName=\ - Протокол за стартиране на агента за Java през уeб, версия 4 (шифриране с TLS) -# Deprecated Agent Protocol Monitor -DeprecatedAgentProtocolMonitor.displayName=\ - Датчик за остарели протоколи за стартиране на агента за Java през уeб diff --git a/core/src/main/resources/jenkins/slaves/Messages_de.properties b/core/src/main/resources/jenkins/slaves/Messages_de.properties deleted file mode 100644 index cceceebe685f..000000000000 --- a/core/src/main/resources/jenkins/slaves/Messages_de.properties +++ /dev/null @@ -1,27 +0,0 @@ -# The MIT License -# -# Copyright (c) 2017 Daniel Beck and a number of other of contributors -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -# Java Web Start Agent Protocol/4 (TLS encryption) -JnlpSlaveAgentProtocol4.displayName=Java-Web-Start-Agentenprotokoll Version 4 (TLS-Verschlüsselung) -JnlpSlaveAgentProtocol2.displayName=Java-Web-Start-Agentenprotokoll Version 2 (unverschlüsselt) -JnlpSlaveAgentProtocol.displayName=Java-Web-Start-Agentenprotokoll Version 1 (unverschlüsselt) -JnlpSlaveAgentProtocol3.displayName=Java-Web-Start-Agentenprotokoll Version 3 (einfache Verschlüsselung) diff --git a/core/src/main/resources/jenkins/slaves/Messages_fr.properties b/core/src/main/resources/jenkins/slaves/Messages_fr.properties deleted file mode 100644 index babe83c53fa8..000000000000 --- a/core/src/main/resources/jenkins/slaves/Messages_fr.properties +++ /dev/null @@ -1,27 +0,0 @@ -# The MIT License -# -# Copyright 2016 Stephen Connolly -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -JnlpSlaveAgentProtocol.displayName=Inbound TCP Agent Protocol/1 (obsolète, non chiffré) -JnlpSlaveAgentProtocol2.displayName=Inbound TCP Agent Protocol/2 (obsolète, non chiffré) -JnlpSlaveAgentProtocol3.displayName=Inbound TCP Agent Protocol/3 (obsolète, chiffrement basique) -JnlpSlaveAgentProtocol4.displayName=Inbound TCP Agent Protocol/4 (chiffrement TLS) -DeprecatedAgentProtocolMonitor.displayName=Moniteur de protocole obsolète d''agent diff --git a/core/src/main/resources/jenkins/slaves/Messages_it.properties b/core/src/main/resources/jenkins/slaves/Messages_it.properties deleted file mode 100644 index 15a4fd1854fa..000000000000 --- a/core/src/main/resources/jenkins/slaves/Messages_it.properties +++ /dev/null @@ -1,33 +0,0 @@ -# The MIT License -# -# Italian localization plugin for Jenkins -# Copyright © 2020 Alessandro Menti -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -DeprecatedAgentProtocolMonitor.displayName=Componente di monitoraggio \ - protocolli deprecati agenti -JnlpSlaveAgentProtocol.displayName=Protocollo in ingresso TCP per agenti, \ - versione 1 (deprecato, senza crittografia) -JnlpSlaveAgentProtocol2.displayName=Protocollo in ingresso TCP per agenti, \ - versione 2 (deprecato, senza crittografia) -JnlpSlaveAgentProtocol3.displayName=Protocollo in ingresso TCP per agenti, \ - versione 3 (deprecato, con crittografia di base) -JnlpSlaveAgentProtocol4.displayName=Protocollo in ingresso TCP per agenti, \ - versione 4 (crittografia TLS) diff --git a/core/src/main/resources/jenkins/slaves/Messages_pt_BR.properties b/core/src/main/resources/jenkins/slaves/Messages_pt_BR.properties deleted file mode 100644 index c185388bf156..000000000000 --- a/core/src/main/resources/jenkins/slaves/Messages_pt_BR.properties +++ /dev/null @@ -1,27 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-, Kohsuke Kawaguchi, Sun Microsystems, Inc., and a number of other of contributors -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -DeprecatedAgentProtocolMonitor.displayName=Monitor de protocolo de agente descontinuado -JnlpSlaveAgentProtocol3.displayName=Protocolo de agente TCP de entrada/3 (descontinuado, criptografia básica) -JnlpSlaveAgentProtocol2.displayName=Protocolo de agente TCP de entrada/2 (descontinuado, sem criptografia) -JnlpSlaveAgentProtocol.displayName=Protocolo de agente TCP de entrada/1 (descontinuado, sem criptografia) -JnlpSlaveAgentProtocol4.displayName=Protocolo de agente TCP de entrada/4 (criptografia via TLS) diff --git a/core/src/main/resources/jenkins/slaves/Messages_sv_SE.properties b/core/src/main/resources/jenkins/slaves/Messages_sv_SE.properties deleted file mode 100644 index 4274099d00a1..000000000000 --- a/core/src/main/resources/jenkins/slaves/Messages_sv_SE.properties +++ /dev/null @@ -1,27 +0,0 @@ -# The MIT License -# -# Copyright 2016 Stephen Connolly -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -JnlpSlaveAgentProtocol.displayName=Ingående TCP-agentsprotokoll/1 (inaktuell, ej krypterat) -JnlpSlaveAgentProtocol2.displayName=Ingående TCP-agentsprotokoll/2 (inaktuell, ej krypterat) -JnlpSlaveAgentProtocol3.displayName=Ingående TCP-agentsprotokoll/3 (inaktuell, enkel kryptering) -JnlpSlaveAgentProtocol4.displayName=Ingående TCP-agentsprotokoll/4 (TLS-kryptering) -DeprecatedAgentProtocolMonitor.displayName=Inaktuell övervakning av agentsprotokoll diff --git a/core/src/main/resources/jenkins/slaves/Messages_zh_TW.properties b/core/src/main/resources/jenkins/slaves/Messages_zh_TW.properties deleted file mode 100644 index 830e59610c15..000000000000 --- a/core/src/main/resources/jenkins/slaves/Messages_zh_TW.properties +++ /dev/null @@ -1,27 +0,0 @@ -# The MIT License -# -# Copyright 2016 Stephen Connolly -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -JnlpSlaveAgentProtocol.displayName=連入 TCP Agent 通訊協定/1 (棄用、未加密) -JnlpSlaveAgentProtocol2.displayName=連入 TCP Agent 通訊協定/2 (棄用、未加密) -JnlpSlaveAgentProtocol3.displayName=連入 TCP Agent 通訊協定/3 (棄用、基本加密) -JnlpSlaveAgentProtocol4.displayName=連入 TCP Agent 通訊協定/4 (TLS 加密) -DeprecatedAgentProtocolMonitor.displayName=已棄用的 Agent 通訊協定監視器 diff --git a/test/src/test/java/jenkins/AgentProtocolTest.java b/test/src/test/java/jenkins/AgentProtocolTest.java deleted file mode 100644 index 531281109db7..000000000000 --- a/test/src/test/java/jenkins/AgentProtocolTest.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2017 CloudBees, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package jenkins; - -import static org.junit.Assert.fail; - -import edu.umd.cs.findbugs.annotations.CheckForNull; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; -import jenkins.model.Jenkins; -import org.junit.Rule; -import org.junit.Test; -import org.jvnet.hudson.test.Issue; -import org.jvnet.hudson.test.JenkinsRule; -import org.jvnet.hudson.test.recipes.LocalData; - -/** - * Tests for {@link AgentProtocol}. - * - * @author Oleg Nenashev - */ -public class AgentProtocolTest { - - @Rule - public JenkinsRule j = new JenkinsRule(); - - @Test - @LocalData - @Issue("JENKINS-45841") - public void testShouldNotOverrideUserConfiguration() throws Exception { - assertEnabled("JNLP4-connect"); - assertDisabled("JNLP2-connect", "JNLP3-connect"); - assertProtocols(true, "System protocols should be always enabled", "Ping"); - } - - private void assertEnabled(String ... protocolNames) { - assertProtocols(true, null, protocolNames); - } - - private void assertDisabled(String ... protocolNames) { - assertProtocols(false, null, protocolNames); - } - - private void assertProtocols(boolean shouldBeEnabled, @CheckForNull String why, String ... protocolNames) { - assertProtocols(j.jenkins, shouldBeEnabled, why, protocolNames); - } - - public static void assertProtocols(Jenkins jenkins, boolean shouldBeEnabled, @CheckForNull String why, String ... protocolNames) { - Set agentProtocols = jenkins.getAgentProtocols(); - List failedChecks = new ArrayList<>(); - for (String protocol : protocolNames) { - if (shouldBeEnabled && !agentProtocols.contains(protocol)) { - failedChecks.add(protocol); - } - if (!shouldBeEnabled && agentProtocols.contains(protocol)) { - failedChecks.add(protocol); - } - } - - if (!failedChecks.isEmpty()) { - String message = String.format("Protocol(s) are not %s: %s. %sEnabled protocols: %s", - shouldBeEnabled ? "enabled" : "disabled", - String.join(",", failedChecks), - why != null ? "Reason: " + why + ". " : "", - String.join(",", agentProtocols)); - fail(message); - } - } - -} diff --git a/test/src/test/java/jenkins/agents/JnlpProtocol4ProxyHandlerTest.java b/test/src/test/java/jenkins/agents/JnlpProtocol4ProxyHandlerTest.java index 76f11d455f4d..e4c031922ded 100644 --- a/test/src/test/java/jenkins/agents/JnlpProtocol4ProxyHandlerTest.java +++ b/test/src/test/java/jenkins/agents/JnlpProtocol4ProxyHandlerTest.java @@ -94,11 +94,6 @@ public String getName() { return JnlpProtocol4ProxyHandler.NAME; } - @Override - public String getDisplayName() { - return "Test handler"; - } - @Override public void handle(Socket socket) throws IOException, InterruptedException { var agentIO = socket.getChannel(); diff --git a/test/src/test/java/jenkins/model/JenkinsTest.java b/test/src/test/java/jenkins/model/JenkinsTest.java index c44b12cdd037..3f3f615a6c5f 100644 --- a/test/src/test/java/jenkins/model/JenkinsTest.java +++ b/test/src/test/java/jenkins/model/JenkinsTest.java @@ -32,19 +32,15 @@ import static org.hamcrest.Matchers.arrayContaining; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.hasItem; import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.not; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNotSame; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertTrue; import static org.junit.Assume.assumeFalse; -import edu.umd.cs.findbugs.annotations.CheckForNull; import hudson.ExtensionList; import hudson.Functions; import hudson.XmlFile; @@ -76,7 +72,6 @@ import java.io.File; import java.io.IOException; import java.net.HttpURLConnection; -import java.net.Socket; import java.net.URI; import java.net.URL; import java.nio.file.Files; @@ -84,7 +79,6 @@ import java.nio.file.attribute.PosixFilePermission; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.Comparator; import java.util.EnumSet; import java.util.HashSet; @@ -94,7 +88,6 @@ import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.stream.Stream; -import jenkins.AgentProtocol; import org.apache.commons.io.FileUtils; import org.htmlunit.FailingHttpStatusCodeException; import org.htmlunit.HttpMethod; @@ -600,174 +593,6 @@ public void onOnline(Computer c, TaskListener listener) throws IOException, Inte } } - @Test - @Issue("JENKINS-39465") - public void agentProtocols_singleEnable_roundtrip() throws Exception { - final Set defaultProtocols = Collections.unmodifiableSet(j.jenkins.getAgentProtocols()); - - final Set newProtocols = new HashSet<>(defaultProtocols); - newProtocols.add(MockOptInProtocol1.NAME); - j.jenkins.setAgentProtocols(newProtocols); - j.jenkins.save(); - final Set agentProtocolsBeforeReload = j.jenkins.getAgentProtocols(); - assertProtocolEnabled(MockOptInProtocol1.NAME, "before the roundtrip"); - - j.jenkins.reload(); - - final Set reloadedProtocols = j.jenkins.getAgentProtocols(); - assertNotSame("The protocol list must have been really reloaded", agentProtocolsBeforeReload, reloadedProtocols); - assertThat("We should have additional enabled protocol", - reloadedProtocols.size(), equalTo(defaultProtocols.size() + 1)); - assertProtocolEnabled(MockOptInProtocol1.NAME, "after the roundtrip"); - } - - @Test - @Issue("JENKINS-39465") - public void agentProtocols_multipleDisable_roundtrip() throws Exception { - final Set defaultProtocols = Collections.unmodifiableSet(j.jenkins.getAgentProtocols()); - assertProtocolEnabled(MockOptOutProtocol1.NAME, "after startup"); - - final Set newProtocols = new HashSet<>(defaultProtocols); - newProtocols.remove(MockOptOutProtocol1.NAME); - j.jenkins.setAgentProtocols(newProtocols); - j.jenkins.save(); - assertProtocolDisabled(MockOptOutProtocol1.NAME, "before the roundtrip"); - final Set agentProtocolsBeforeReload = j.jenkins.getAgentProtocols(); - j.jenkins.reload(); - - assertNotSame("The protocol list must have been really refreshed", agentProtocolsBeforeReload, j.jenkins.getAgentProtocols()); - assertThat("We should have disabled one protocol", - j.jenkins.getAgentProtocols().size(), equalTo(defaultProtocols.size() - 1)); - - assertProtocolDisabled(MockOptOutProtocol1.NAME, "after the roundtrip"); - } - - @Test - @Issue("JENKINS-39465") - public void agentProtocols_multipleEnable_roundtrip() throws Exception { - final Set defaultProtocols = Collections.unmodifiableSet(j.jenkins.getAgentProtocols()); - final Set newProtocols = new HashSet<>(defaultProtocols); - newProtocols.add(MockOptInProtocol1.NAME); - newProtocols.add(MockOptInProtocol2.NAME); - j.jenkins.setAgentProtocols(newProtocols); - j.jenkins.save(); - - final Set agentProtocolsBeforeReload = j.jenkins.getAgentProtocols(); - assertProtocolEnabled(MockOptInProtocol1.NAME, "before the roundtrip"); - assertProtocolEnabled(MockOptInProtocol2.NAME, "before the roundtrip"); - - j.jenkins.reload(); - - final Set reloadedProtocols = j.jenkins.getAgentProtocols(); - assertNotSame("The protocol list must have been really reloaded", agentProtocolsBeforeReload, reloadedProtocols); - assertThat("There should be two additional enabled protocols", - reloadedProtocols.size(), equalTo(defaultProtocols.size() + 2)); - assertProtocolEnabled(MockOptInProtocol1.NAME, "after the roundtrip"); - assertProtocolEnabled(MockOptInProtocol2.NAME, "after the roundtrip"); - } - - @Test - @Issue("JENKINS-39465") - public void agentProtocols_singleDisable_roundtrip() throws Exception { - final Set defaultProtocols = Collections.unmodifiableSet(j.jenkins.getAgentProtocols()); - final String protocolToDisable1 = MockOptOutProtocol1.NAME; - final String protocolToDisable2 = MockOptOutProtocol2.NAME; - - final Set newProtocols = new HashSet<>(defaultProtocols); - newProtocols.remove(protocolToDisable1); - newProtocols.remove(protocolToDisable2); - j.jenkins.setAgentProtocols(newProtocols); - j.jenkins.save(); - assertProtocolDisabled(protocolToDisable1, "before the roundtrip"); - assertProtocolDisabled(protocolToDisable2, "before the roundtrip"); - final Set agentProtocolsBeforeReload = j.jenkins.getAgentProtocols(); - j.jenkins.reload(); - - assertNotSame("The protocol list must have been really reloaded", agentProtocolsBeforeReload, j.jenkins.getAgentProtocols()); - assertThat("We should have disabled two protocols", - j.jenkins.getAgentProtocols().size(), equalTo(defaultProtocols.size() - 2)); - assertProtocolDisabled(protocolToDisable1, "after the roundtrip"); - assertProtocolDisabled(protocolToDisable2, "after the roundtrip"); - } - - private void assertProtocolDisabled(String protocolName, @CheckForNull String stage) { - assertThat(protocolName + " must be disabled. Stage=" + (stage != null ? stage : "undefined"), - j.jenkins.getAgentProtocols(), not(hasItem(protocolName))); - } - - private void assertProtocolEnabled(String protocolName, @CheckForNull String stage) { - assertThat(protocolName + " must be enabled. Stage=" + (stage != null ? stage : "undefined"), - j.jenkins.getAgentProtocols(), hasItem(protocolName)); - } - - @TestExtension - public static class MockOptInProtocol1 extends MockOptInProtocol { - - static final String NAME = "MOCK-OPTIN-1"; - - @Override - public String getName() { - return NAME; - } - } - - @TestExtension - public static class MockOptInProtocol2 extends MockOptInProtocol { - - static final String NAME = "MOCK-OPTIN-2"; - - @Override - public String getName() { - return NAME; - } - } - - private abstract static class MockOptInProtocol extends AgentProtocol { - @Override - public boolean isOptIn() { - return true; - } - - @Override - public void handle(Socket socket) throws IOException, InterruptedException { - throw new IOException("This is a mock agent protocol. It cannot be used for connection"); - } - } - - @TestExtension - public static class MockOptOutProtocol1 extends MockOptOutProtocol { - - static final String NAME = "MOCK-OPTOUT-1"; - - @Override - public String getName() { - return NAME; - } - } - - @TestExtension - public static class MockOptOutProtocol2 extends MockOptOutProtocol { - - static final String NAME = "MOCK-OPTOUT-2"; - - @Override - public String getName() { - return NAME; - } - } - - private abstract static class MockOptOutProtocol extends AgentProtocol { - @Override - public boolean isOptIn() { - return false; - } - - @Override - public void handle(Socket socket) throws IOException, InterruptedException { - throw new IOException("This is a mock agent protocol. It cannot be used for connection"); - } - } - @Test public void getComputers() throws Exception { List agents = new ArrayList<>(); diff --git a/test/src/test/resources/jenkins/AgentProtocolTest/config.xml b/test/src/test/resources/jenkins/AgentProtocolTest/config.xml deleted file mode 100644 index b072a16fa96e..000000000000 --- a/test/src/test/resources/jenkins/AgentProtocolTest/config.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - 1.0 - 2 - NORMAL - true - - - false - - ${ITEM_ROOTDIR}/workspace - ${ITEM_ROOTDIR}/builds - - - - - - 0 - - - - all - false - false - - - - all - 0 - - JNLP4-connect - - - JNLP2-connect - JNLP3-connect - - - - - \ No newline at end of file From 5ab2262790c72626719a369787ceb29580caf2cc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 25 Oct 2024 09:20:53 -0700 Subject: [PATCH 1134/1216] Update jenkins/ath Docker tag to v6058 (#9911) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- ath.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ath.sh b/ath.sh index b1159344ffd5..d57b7834ee32 100644 --- a/ath.sh +++ b/ath.sh @@ -6,7 +6,7 @@ set -o xtrace cd "$(dirname "$0")" # https://github.com/jenkinsci/acceptance-test-harness/releases -export ATH_VERSION=6052.v122b_b_a_b_94b_60 +export ATH_VERSION=6058.v6b_05a_06f312a_ if [[ $# -eq 0 ]]; then export JDK=17 From 9e256de2d1e13dbf436a7cd51b8ed26d01b52a77 Mon Sep 17 00:00:00 2001 From: Allan Burdajewicz Date: Sat, 26 Oct 2024 07:31:35 +1000 Subject: [PATCH 1135/1216] [JENKINS-73845] Fix OperatingSystemEndOfLifeAdminMonitor endOfLifeDate displayed on first warning day (#9908) * [JENKINS-73845] Fix OperatingSystemEndOfLifeAdminMonitor endOfLifeDate displayed on first warning day * [JENKINS-73845] Add test * [JENKINS-73845] Improve test --- .../OperatingSystemEndOfLifeAdminMonitor.java | 2 +- ...ratingSystemEndOfLifeAdminMonitorTest.java | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitor.java b/core/src/main/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitor.java index 0ff40d018225..50cf3c9da6f0 100644 --- a/core/src/main/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitor.java +++ b/core/src/main/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitor.java @@ -145,7 +145,7 @@ void readOperatingSystemList(String initialOperatingSystemJson) throws IOExcepti } LOGGER.log(Level.FINE, "Matched operating system {0}", name); - if (startDate.isBefore(LocalDate.now())) { + if (!startDate.isAfter(LocalDate.now())) { this.operatingSystemName = name; this.documentationUrl = buildDocumentationUrl(this.operatingSystemName); this.endOfLifeDate = endOfLife.toString(); diff --git a/core/src/test/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitorTest.java b/core/src/test/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitorTest.java index 5cd09790cdd9..84bc3790241a 100644 --- a/core/src/test/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitorTest.java +++ b/core/src/test/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitorTest.java @@ -28,6 +28,7 @@ import static org.hamcrest.CoreMatchers.not; import static org.hamcrest.CoreMatchers.nullValue; import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertTrue; @@ -35,15 +36,24 @@ import java.io.File; import java.io.IOException; import java.net.URL; +import java.nio.file.Files; +import java.time.LocalDate; import java.util.Random; import java.util.stream.Stream; +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.junit.Rule; import org.junit.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; +import org.junit.rules.TemporaryFolder; public class OperatingSystemEndOfLifeAdminMonitorTest { + @Rule + public TemporaryFolder tmp = new TemporaryFolder(); + private final OperatingSystemEndOfLifeAdminMonitor monitor; private final Random random = new Random(); private final String PREFIX = "administrativeMonitor/"; @@ -210,6 +220,21 @@ public void testReadOperatingSystemNames(String fileName, String pattern, String assertThat(monitor.readOperatingSystemName(releaseFile, pattern), is(job)); } + @Test + public void testReadOperatingSystemListOnWarningDate() throws Exception { + File dataFile = tmp.newFile(); + Files.writeString(dataFile.toPath(), "PRETTY_NAME=\"Test OS\""); + JSONObject eolIn6Months = new JSONObject(); + eolIn6Months.put("pattern", "Test OS"); + eolIn6Months.put("endOfLife", LocalDate.now().plusMonths(6).toString()); + eolIn6Months.put("file", dataFile.getAbsolutePath()); + JSONArray jsonArray = new JSONArray(); + jsonArray.add(eolIn6Months); + monitor.readOperatingSystemList(jsonArray.toString()); + assertTrue(monitor.isActivated()); + assertEquals(LocalDate.now().plusMonths(6).toString(), monitor.getEndOfLifeDate()); + } + @Test public void testReadOperatingSystemNameMissingFile() { assertThat(monitor.readOperatingSystemName(new File("/this/file/does/not/exist"), ".*"), is("")); From 9c228bb3213e35465b85ffad8a5b26bd0406df76 Mon Sep 17 00:00:00 2001 From: Mustafa Ulu Date: Sat, 26 Oct 2024 00:31:56 +0300 Subject: [PATCH 1136/1216] Turkish localization fixes for security configuration (#9890) * Turkish localization fixes for security configuration * Turkish localization for success page after creating first user --- .../ReverseProxySetupMonitor/message_tr.properties | 2 +- .../GlobalSecurityConfiguration/index_tr.properties | 3 ++- .../HudsonPrivateSecurityRealm/firstUser_tr.properties | 1 + .../HudsonPrivateSecurityRealm/success_tr.properties | 2 ++ .../resources/hudson/security/Messages_tr.properties | 10 +++++++++- .../SetupWizard/setupWizardFirstUser_tr.properties | 1 + 6 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/firstUser_tr.properties create mode 100644 core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/success_tr.properties create mode 100644 core/src/main/resources/jenkins/install/SetupWizard/setupWizardFirstUser_tr.properties diff --git a/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message_tr.properties b/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message_tr.properties index 2ac4acc9ebbe..2de2187639d5 100644 --- a/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message_tr.properties +++ b/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message_tr.properties @@ -1,4 +1,4 @@ # This file is under the MIT License by authors -More\ Info=Daha fazla Bilgi +More\ Info=Daha Fazla Bilgi blurb=Ters vekil sunucu yapılandırmanız bozuk görünüyor. diff --git a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index_tr.properties b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index_tr.properties index 1b12b9eb167c..7f79912af880 100644 --- a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index_tr.properties +++ b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index_tr.properties @@ -20,8 +20,9 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. +Authentication=Kimlik Doğrulama Disable\ remember\ me=Beni hatırla özelliğini devre dışı bırak -Markup\ Formatter= +Markup\ Formatter=Metin Formatlayıcısı Access\ Control=Erişim Kontrolü Security\ Realm=Güvenlik Alanı Authorization=Yetkilendirme diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/firstUser_tr.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/firstUser_tr.properties new file mode 100644 index 000000000000..73adeed2eeaf --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/firstUser_tr.properties @@ -0,0 +1 @@ +Create\ First\ Admin\ User=İlk Yönetici Kullanıcıyı Oluştur diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/success_tr.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/success_tr.properties new file mode 100644 index 000000000000..2320478a1e6c --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/success_tr.properties @@ -0,0 +1,2 @@ +Success=Tebrikler +description=Giriş yaptınız. Ana sayfaya geri dönün. diff --git a/core/src/main/resources/hudson/security/Messages_tr.properties b/core/src/main/resources/hudson/security/Messages_tr.properties index eefcbfd2ea1c..b3303fcafc21 100644 --- a/core/src/main/resources/hudson/security/Messages_tr.properties +++ b/core/src/main/resources/hudson/security/Messages_tr.properties @@ -22,7 +22,7 @@ GlobalSecurityConfiguration.DisplayName=Güvenlik GlobalSecurityConfiguration.Description=Jenkins''i güvenli hale getir; sisteme erişim izni olanları belirle. -LegacyAuthorizationStrategy.DisplayName=Miras modu +LegacyAuthorizationStrategy.DisplayName=Eski yöntem HudsonPrivateSecurityRealm.DisplayName=Jenkins''in kendi kullanıcı veritabanı HudsonPrivateSecurityRealm.Details.DisplayName=Şifre @@ -32,7 +32,15 @@ HudsonPrivateSecurityRealm.Details.PasswordError=\ HudsonPrivateSecurityRealm.ManageUserLinks.DisplayName=Kullanıcılar HudsonPrivateSecurityRealm.ManageUserLinks.Description=Jenkins''de oturum açabilecek kullanıcıları oluşturun, silin veya değiştirin. +FullControlOnceLoggedInAuthorizationStrategy.DisplayName=Giriş yapmış kullanıcılar her şeyi yapabilir + +AuthorizationStrategy.DisplayName=Herkes her şeyi yapabilir + +LegacySecurityRealm.Displayname=Servlet konteynerine devredin + UserDetailsServiceProxy.UnableToQuery=Kullanıcı bilgisi alınamıyor: {0} # not in use Permission.Permissions.Title=Mevcut Değil + +NoneSecurityRealm.DisplayName=Hiçbiri diff --git a/core/src/main/resources/jenkins/install/SetupWizard/setupWizardFirstUser_tr.properties b/core/src/main/resources/jenkins/install/SetupWizard/setupWizardFirstUser_tr.properties new file mode 100644 index 000000000000..73adeed2eeaf --- /dev/null +++ b/core/src/main/resources/jenkins/install/SetupWizard/setupWizardFirstUser_tr.properties @@ -0,0 +1 @@ +Create\ First\ Admin\ User=İlk Yönetici Kullanıcıyı Oluştur From 1eea693eb23b9d5870910446727959e4e9188e9e Mon Sep 17 00:00:00 2001 From: Mustafa Ulu Date: Sat, 26 Oct 2024 00:32:10 +0300 Subject: [PATCH 1137/1216] Translate user property categories to Turkish (#9891) --- .../hudson/model/AllView/noJob_tr.properties | 1 + .../model/userproperty/Messages_tr.properties | 13 +++++++++++++ .../index_tr.properties | 1 + .../index_tr.properties | 2 ++ .../index_tr.properties | 2 ++ .../index_tr.properties | 2 ++ .../index_tr.properties | 2 ++ .../main/resources/lib/form/helpLink_tr.properties | 2 ++ .../resources/lib/form/saveApplyBar_tr.properties | 1 + 9 files changed, 26 insertions(+) create mode 100644 core/src/main/resources/hudson/model/userproperty/Messages_tr.properties create mode 100644 core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAppearanceAction/index_tr.properties create mode 100644 core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryExperimentalAction/index_tr.properties create mode 100644 core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryPreferencesAction/index_tr.properties create mode 100644 core/src/main/resources/hudson/model/userproperty/UserPropertyCategorySecurityAction/index_tr.properties create mode 100644 core/src/main/resources/lib/form/helpLink_tr.properties create mode 100644 core/src/main/resources/lib/form/saveApplyBar_tr.properties diff --git a/core/src/main/resources/hudson/model/AllView/noJob_tr.properties b/core/src/main/resources/hudson/model/AllView/noJob_tr.properties index f11e7258733e..31dd63cf187c 100644 --- a/core/src/main/resources/hudson/model/AllView/noJob_tr.properties +++ b/core/src/main/resources/hudson/model/AllView/noJob_tr.properties @@ -29,6 +29,7 @@ setUpDistributedBuilds=Dağıtılmış bir yapılandırma kurun setUpAgent=Bir ajan kur setUpCloud=Bir bulut ayarla learnMoreDistributedBuilds=Dağıtılmış yapılandırmalar hakkında daha fazla bilgi edinin +thisFolderIsEmpty=Bu klasör boş startBuilding=Yazılım projenizi yapılandırmaya başlayın diff --git a/core/src/main/resources/hudson/model/userproperty/Messages_tr.properties b/core/src/main/resources/hudson/model/userproperty/Messages_tr.properties new file mode 100644 index 000000000000..8144297c655b --- /dev/null +++ b/core/src/main/resources/hudson/model/userproperty/Messages_tr.properties @@ -0,0 +1,13 @@ +UserPropertyCategory.Account.DisplayName=Hesap +UserPropertyCategory.Appearance.DisplayName=Görünüm +UserPropertyCategory.Experimental.DisplayName=Deneyler +UserPropertyCategory.Invisible.DisplayName=Görünmez +UserPropertyCategory.Preferences.DisplayName=Tercihler +UserPropertyCategory.Unclassified.DisplayName=Sınıflandırılmamış +UserPropertyCategory.Security.DisplayName=Güvenlik + +UserPropertyCategoryAccountAction.DisplayName=Hesap +UserPropertyCategoryAppearanceAction.DisplayName=Görünüm +UserPropertyCategoryExperimentalAction.DisplayName=Deneyler +UserPropertyCategoryPreferencesAction.DisplayName=Tercihler +UserPropertyCategorySecurityAction.DisplayName=Güvenlik diff --git a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAccountAction/index_tr.properties b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAccountAction/index_tr.properties index ead6d67dee06..14b810099914 100644 --- a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAccountAction/index_tr.properties +++ b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAccountAction/index_tr.properties @@ -20,6 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. +title=Hesap Full\ name=İsminiz Description=Açıklama Save=Kaydet diff --git a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAppearanceAction/index_tr.properties b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAppearanceAction/index_tr.properties new file mode 100644 index 000000000000..f9e350543d71 --- /dev/null +++ b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAppearanceAction/index_tr.properties @@ -0,0 +1,2 @@ +title=Görünüm +warningNoItems=Yapılandırılacak görünüm öğesi yok. diff --git a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryExperimentalAction/index_tr.properties b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryExperimentalAction/index_tr.properties new file mode 100644 index 000000000000..b645842a1872 --- /dev/null +++ b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryExperimentalAction/index_tr.properties @@ -0,0 +1,2 @@ +title=Deneyler +warningNoItems=Şu anda herhangi bir deney mevcut değil. diff --git a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryPreferencesAction/index_tr.properties b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryPreferencesAction/index_tr.properties new file mode 100644 index 000000000000..5108f7b2cc0b --- /dev/null +++ b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryPreferencesAction/index_tr.properties @@ -0,0 +1,2 @@ +title=Tercihler +warningNoItems=Tercih bulunamadı. diff --git a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategorySecurityAction/index_tr.properties b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategorySecurityAction/index_tr.properties new file mode 100644 index 000000000000..21a255c0268e --- /dev/null +++ b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategorySecurityAction/index_tr.properties @@ -0,0 +1,2 @@ +title=Güvenlik +warningNoItems=Güvenlik yapılandırması mevcut değil. diff --git a/core/src/main/resources/lib/form/helpLink_tr.properties b/core/src/main/resources/lib/form/helpLink_tr.properties new file mode 100644 index 000000000000..7f6685c75dde --- /dev/null +++ b/core/src/main/resources/lib/form/helpLink_tr.properties @@ -0,0 +1,2 @@ +Help=Yardım +Help\ for\ feature\:=Özellik için yardım: diff --git a/core/src/main/resources/lib/form/saveApplyBar_tr.properties b/core/src/main/resources/lib/form/saveApplyBar_tr.properties new file mode 100644 index 000000000000..c065a247209d --- /dev/null +++ b/core/src/main/resources/lib/form/saveApplyBar_tr.properties @@ -0,0 +1 @@ +Save=Kaydet From 97e10096736aa8c49e7679c770eb582fe78246cd Mon Sep 17 00:00:00 2001 From: Vincent Latombe Date: Fri, 25 Oct 2024 23:32:29 +0200 Subject: [PATCH 1138/1216] When calling Nodes#setNodes, NodeListener methods should be called as required (#9905) * When calling Nodes#setNodes, NodeListener methods should be called as required For example, when loading a new casc configuration, it calls Nodes#setNodes, and the NodeListener methods were not called, causing listener implementations not to be notified according to the new state. * Fix reviews --- core/src/main/java/jenkins/model/Nodes.java | 38 ++++---- .../test/java/jenkins/model/NodesTest.java | 86 ++++++++++++++++++- 2 files changed, 106 insertions(+), 18 deletions(-) diff --git a/core/src/main/java/jenkins/model/Nodes.java b/core/src/main/java/jenkins/model/Nodes.java index e15d391c4975..a01c3fc342b5 100644 --- a/core/src/main/java/jenkins/model/Nodes.java +++ b/core/src/main/java/jenkins/model/Nodes.java @@ -43,10 +43,9 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Collection; -import java.util.HashSet; +import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Set; import java.util.TreeMap; import java.util.concurrent.Callable; import java.util.concurrent.ConcurrentMap; @@ -114,26 +113,31 @@ public List getNodes() { * @throws IOException if the new list of nodes could not be persisted. */ public void setNodes(final @NonNull Collection nodes) throws IOException { - Set toRemove = new HashSet<>(); - Queue.withLock(new Runnable() { - @Override - public void run() { - toRemove.addAll(Nodes.this.nodes.keySet()); - for (Node n : nodes) { - final String name = n.getNodeName(); + Map toRemove = new HashMap<>(); + Queue.withLock(() -> { + toRemove.putAll(Nodes.this.nodes); + for (var node : nodes) { + final var name = node.getNodeName(); + var oldNode = toRemove.get(name); + if (oldNode != null) { + NodeListener.fireOnUpdated(oldNode, node); toRemove.remove(name); - Nodes.this.nodes.put(name, n); - n.onLoad(Nodes.this, name); + } else { + NodeListener.fireOnCreated(node); } - Nodes.this.nodes.keySet().removeAll(toRemove); - jenkins.updateComputerList(); - jenkins.trimLabels(); + Nodes.this.nodes.put(name, node); + node.onLoad(Nodes.this, name); } + Nodes.this.nodes.keySet().removeAll(toRemove.keySet()); + jenkins.updateComputerList(); + jenkins.trimLabels(); }); save(); - for (String name : toRemove) { - LOGGER.fine(() -> "deleting " + new File(getRootDir(), name)); - Util.deleteRecursive(new File(getRootDir(), name)); + for (var deletedNode : toRemove.values()) { + NodeListener.fireOnDeleted(deletedNode); + var nodeName = deletedNode.getNodeName(); + LOGGER.fine(() -> "deleting " + new File(getRootDir(), nodeName)); + Util.deleteRecursive(new File(getRootDir(), nodeName)); } } diff --git a/test/src/test/java/jenkins/model/NodesTest.java b/test/src/test/java/jenkins/model/NodesTest.java index c7207b9977c5..ef2bee08ef4a 100644 --- a/test/src/test/java/jenkins/model/NodesTest.java +++ b/test/src/test/java/jenkins/model/NodesTest.java @@ -25,7 +25,10 @@ package jenkins.model; import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.contains; +import static org.hamcrest.Matchers.containsInAnyOrder; import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.empty; import static org.hamcrest.Matchers.hasSize; import static org.hamcrest.Matchers.nullValue; import static org.hamcrest.Matchers.sameInstance; @@ -47,6 +50,11 @@ import hudson.slaves.ComputerLauncher; import hudson.slaves.DumbSlave; import java.io.IOException; +import java.net.URISyntaxException; +import java.util.ArrayList; +import java.util.List; +import org.hamcrest.Description; +import org.hamcrest.TypeSafeMatcher; import org.junit.Rule; import org.junit.Test; import org.jvnet.hudson.test.Issue; @@ -55,7 +63,6 @@ import org.jvnet.hudson.test.recipes.LocalData; public class NodesTest { - @Rule public JenkinsRule r = new JenkinsRule(); @@ -239,4 +246,81 @@ protected boolean allowLoad(@NonNull Node node) { } } + @Test + public void listenersCalledOnSetNodes() throws URISyntaxException, IOException, Descriptor.FormException { + var agentA = new DumbSlave("nodeA", "temp", r.createComputerLauncher(null)); + var agentB = new DumbSlave("nodeB", "temp", r.createComputerLauncher(null)); + var agentA2 = new DumbSlave("nodeA", "temp2", r.createComputerLauncher(null)); + Jenkins.get().setNodes(List.of(agentA, agentB)); + assertThat(CheckSetNodes.created, containsInAnyOrder("nodeA", "nodeB")); + assertThat(CheckSetNodes.updated, empty()); + assertThat(CheckSetNodes.deleted, empty()); + Jenkins.get().setNodes(List.of(agentA2)); + assertThat(CheckSetNodes.created, containsInAnyOrder("nodeA", "nodeB")); + assertThat(CheckSetNodes.updated, contains(new DumbSlaveNameAndRemoteFSMatcher(new DumbSlavePair(agentA, agentA2)))); + assertThat(CheckSetNodes.deleted, contains("nodeB")); + Jenkins.get().setNodes(List.of()); + assertThat(CheckSetNodes.created, containsInAnyOrder("nodeA", "nodeB")); + assertThat(CheckSetNodes.updated, contains(new DumbSlaveNameAndRemoteFSMatcher(new DumbSlavePair(agentA, agentA2)))); + assertThat(CheckSetNodes.deleted, containsInAnyOrder("nodeA", "nodeB")); + } + + private record DumbSlavePair(DumbSlave oldNode, DumbSlave newNode) { + @Override + public String toString() { + return "NodePair{" + + "oldNode=" + toStringNode(oldNode) + + ", newNode=" + toStringNode(newNode) + + '}'; + } + + private String toStringNode(DumbSlave node) { + return "(name=" + node.getNodeName() + ",remoteFS=" + node.getRemoteFS() + ")"; + } + } + + @TestExtension("listenersCalledOnSetNodes") + public static class CheckSetNodes extends NodeListener { + private static final List created = new ArrayList<>(); + private static final List updated = new ArrayList<>(); + private static final List deleted = new ArrayList<>(); + + @Override + protected void onCreated(@NonNull Node node) { + created.add(node.getNodeName()); + } + + @Override + protected void onUpdated(@NonNull Node oldOne, @NonNull Node newOne) { + if (oldOne instanceof DumbSlave oldDumbSlave && newOne instanceof DumbSlave newDumbSlave) { + updated.add(new DumbSlavePair(oldDumbSlave, newDumbSlave)); + } + } + + @Override + protected void onDeleted(@NonNull Node node) { + deleted.add(node.getNodeName()); + } + } + + private static class DumbSlaveNameAndRemoteFSMatcher extends TypeSafeMatcher { + private final DumbSlavePair expected; + + public DumbSlaveNameAndRemoteFSMatcher(DumbSlavePair expected) { + this.expected = expected; + } + + @Override + protected boolean matchesSafely(DumbSlavePair dumbSlavePair) { + return expected.oldNode.getNodeName().equals(dumbSlavePair.oldNode.getNodeName()) + && expected.oldNode.getRemoteFS().equals(dumbSlavePair.oldNode.getRemoteFS()) + && expected.newNode.getNodeName().equals(dumbSlavePair.newNode.getNodeName()) + && expected.newNode.getRemoteFS().equals(dumbSlavePair.newNode.getRemoteFS()); + } + + @Override + public void describeTo(Description description) { + description.appendText("NodePair(").appendValue(expected).appendText(")"); + } + } } From 1405d8b7f5dc0d79ed44d177e093d0cd306fde9c Mon Sep 17 00:00:00 2001 From: xndcn Date: Sat, 26 Oct 2024 05:32:52 +0800 Subject: [PATCH 1139/1216] Add note about environment variable in parameter file.html (#9909) --- war/src/main/webapp/help/parameter/file.html | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/war/src/main/webapp/help/parameter/file.html b/war/src/main/webapp/help/parameter/file.html index ccf5b5ffab90..ef4f8d7f8e4a 100644 --- a/war/src/main/webapp/help/parameter/file.html +++ b/war/src/main/webapp/help/parameter/file.html @@ -22,6 +22,15 @@ my.zip .) The name will not include the directory name portion.

    +

    + Please note that some shells, such as dash, or /bin/sh provided by dash, + do not make such environment variables with special characters available to + child processes. Try using shebang like + #!/bin/bash + in shell script and use + $(printenv abc.zip) + to get the original file name. +

    File upload is optional. If a user chooses not to upload anything, Jenkins will simply skips this parameter and will not place anything (but it also From 1474f6a778e854a80132ee4bae62fc2b5babf5c4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 25 Oct 2024 15:33:24 -0600 Subject: [PATCH 1140/1216] Update dependency org.jenkins-ci.plugins:script-security to v1366 (#9913) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index 8f1d5f20c59a..957127ed55c3 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -118,7 +118,7 @@ THE SOFTWARE. org.jenkins-ci.plugins script-security - 1365.v4778ca_84b_de5 + 1366.vd44b_49a_5c85c org.jenkins-ci.plugins.workflow diff --git a/war/pom.xml b/war/pom.xml index d4ed852e7721..2d447fd7776b 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -307,7 +307,7 @@ THE SOFTWARE. org.jenkins-ci.plugins script-security - 1365.v4778ca_84b_de5 + 1366.vd44b_49a_5c85c hpi From e553af07ec0f3224fd2cda69e2301a79f45cfd56 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 25 Oct 2024 15:33:55 -0600 Subject: [PATCH 1141/1216] Update babel monorepo to v7.25.9 (#9912) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 6 +- yarn.lock | 1194 +++++++++++++++++++++++--------------------------- 2 files changed, 561 insertions(+), 639 deletions(-) diff --git a/package.json b/package.json index 0cf833ecff3d..b4babc069cc4 100644 --- a/package.json +++ b/package.json @@ -23,9 +23,9 @@ "lint": "yarn lint:js && yarn lint:css" }, "devDependencies": { - "@babel/cli": "7.25.7", - "@babel/core": "7.25.8", - "@babel/preset-env": "7.25.8", + "@babel/cli": "7.25.9", + "@babel/core": "7.25.9", + "@babel/preset-env": "7.25.9", "@eslint/js": "9.13.0", "babel-loader": "9.2.1", "clean-webpack-plugin": "4.0.0", diff --git a/yarn.lock b/yarn.lock index 52d95f0bf98b..113ee9042964 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,9 +15,9 @@ __metadata: languageName: node linkType: hard -"@babel/cli@npm:7.25.7": - version: 7.25.7 - resolution: "@babel/cli@npm:7.25.7" +"@babel/cli@npm:7.25.9": + version: 7.25.9 + resolution: "@babel/cli@npm:7.25.9" dependencies: "@jridgewell/trace-mapping": "npm:^0.3.25" "@nicolo-ribaudo/chokidar-2": "npm:2.1.8-no-fsevents.3" @@ -38,121 +38,123 @@ __metadata: bin: babel: ./bin/babel.js babel-external-helpers: ./bin/babel-external-helpers.js - checksum: 10c0/bbbc53eef15844b0bfb737d7d134f979d42c51a269e2aee994b02eb9216a22e8dd3d790d5ae9f5b5c003e01eccfc164c14aaa1ad989695e0154f66a588f77d42 + checksum: 10c0/2e8228c3715e220fa902888c643ce1a89c4ee90be3d9f7a31218d5bb2500456e0cef12cb90fd5877ab3e5a4498df8f27670425d346422a3eb52052fd3184d520 languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/code-frame@npm:7.25.7" +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.25.9": + version: 7.26.0 + resolution: "@babel/code-frame@npm:7.26.0" dependencies: - "@babel/highlight": "npm:^7.25.7" + "@babel/helper-validator-identifier": "npm:^7.25.9" + js-tokens: "npm:^4.0.0" picocolors: "npm:^1.0.0" - checksum: 10c0/14825c298bdec914caf3d24d1383b6d4cd6b030714686004992f4fc251831ecf432236652896f99d5d341f17170ae9a07b58d8d7b15aa0df8cfa1c5a7d5474bc + checksum: 10c0/46f7e367714be736b52ea3c01b24f47e2102e210fb83021d1c8237d8fc511b9538909e16e2fcdbb5cb6173e0794e28624309a59014e52fcfb7bde908f5284388 languageName: node linkType: hard -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.7, @babel/compat-data@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/compat-data@npm:7.25.8" - checksum: 10c0/8b81c17580e5fb4cbb6a3c52079f8c283fc59c0c6bd2fe14cfcf9c44b32d2eaab71b02c5633e2c679f5896f73f8ac4036ba2e67a4c806e8f428e4b11f526d7f4 +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.9": + version: 7.26.0 + resolution: "@babel/compat-data@npm:7.26.0" + checksum: 10c0/6325c9151a3c9b0a3a807e854a26255ef66d989bff331475a935af9bb18f160e0fffe6aed550e4e96b63f91efcd874bfbaab2a1f4a2f8d25645d712a0de590fb languageName: node linkType: hard -"@babel/core@npm:7.25.8": - version: 7.25.8 - resolution: "@babel/core@npm:7.25.8" +"@babel/core@npm:7.25.9": + version: 7.25.9 + resolution: "@babel/core@npm:7.25.9" dependencies: "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.25.7" - "@babel/generator": "npm:^7.25.7" - "@babel/helper-compilation-targets": "npm:^7.25.7" - "@babel/helper-module-transforms": "npm:^7.25.7" - "@babel/helpers": "npm:^7.25.7" - "@babel/parser": "npm:^7.25.8" - "@babel/template": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" - "@babel/types": "npm:^7.25.8" + "@babel/code-frame": "npm:^7.25.9" + "@babel/generator": "npm:^7.25.9" + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-module-transforms": "npm:^7.25.9" + "@babel/helpers": "npm:^7.25.9" + "@babel/parser": "npm:^7.25.9" + "@babel/template": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" convert-source-map: "npm:^2.0.0" debug: "npm:^4.1.0" gensync: "npm:^1.0.0-beta.2" json5: "npm:^2.2.3" semver: "npm:^6.3.1" - checksum: 10c0/8411ea506e6f7c8a39ab5c1524b00589fa3b087edb47389708f7fe07170929192171734666e3ea10b95a951643a531a6d09eedfe071572c9ea28516646265086 + checksum: 10c0/40d3064ebe906f65ed4153a0f4d75c679a19e4d71e425035b7bbe2d292a9167274f1a0d908d4d6c8f484fcddeb10bd91e0c7878fdb3dfad1bb00f6a319ce431d languageName: node linkType: hard -"@babel/generator@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/generator@npm:7.25.7" +"@babel/generator@npm:^7.25.9": + version: 7.26.0 + resolution: "@babel/generator@npm:7.26.0" dependencies: - "@babel/types": "npm:^7.25.7" + "@babel/parser": "npm:^7.26.0" + "@babel/types": "npm:^7.26.0" "@jridgewell/gen-mapping": "npm:^0.3.5" "@jridgewell/trace-mapping": "npm:^0.3.25" jsesc: "npm:^3.0.2" - checksum: 10c0/c03a26c79864d60d04ce36b649c3fa0d6fd7b2bf6a22e22854a0457aa09206508392dd73ee40e7bc8d50b3602f9ff068afa47770cda091d332e7db1ca382ee96 + checksum: 10c0/b6bb9185f19a97eaf58e04a6d39a13237076678e7ed16b6321dea914535d4bf6a8d7727c9dcb65539845aa0096b326eb67be4bab764bd74bcfd848e2eda68609 languageName: node linkType: hard -"@babel/helper-annotate-as-pure@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-annotate-as-pure@npm:7.25.7" +"@babel/helper-annotate-as-pure@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-annotate-as-pure@npm:7.25.9" dependencies: - "@babel/types": "npm:^7.25.7" - checksum: 10c0/2f020b0fa9d336b5778485cc2de3141561ec436a7591b685457a5bcdae4ce41d9ddee68169c95504e0789e5a4327e73b8b7e72e5b60e82e96d730c4d19255248 + "@babel/types": "npm:^7.25.9" + checksum: 10c0/095b6ba50489d797733abebc4596a81918316a99e3632755c9f02508882912b00c2ae5e468532a25a5c2108d109ddbe9b7da78333ee7cc13817fc50c00cf06fe languageName: node linkType: hard -"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.25.7" +"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.25.9" dependencies: - "@babel/traverse": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - checksum: 10c0/e9dc5a7920a1d74150dec53ccd5e34f2b31ae307df7cdeec6289866f7bda97ecb1328b49a7710ecde5db5b6daad768c904a030f9a0fa3184963b0017622c42aa + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/a6068bb813e7f72d12b72edeecb99167f60cd7964cacedfb60e01fff5e7bed4a5a7f4f7414de7cf352a1b71487df5f8dab8c2b5230de4ad5aea16adf32e14219 languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-compilation-targets@npm:7.25.7" +"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-compilation-targets@npm:7.25.9" dependencies: - "@babel/compat-data": "npm:^7.25.7" - "@babel/helper-validator-option": "npm:^7.25.7" + "@babel/compat-data": "npm:^7.25.9" + "@babel/helper-validator-option": "npm:^7.25.9" browserslist: "npm:^4.24.0" lru-cache: "npm:^5.1.1" semver: "npm:^6.3.1" - checksum: 10c0/705be7e5274a3fdade68e3e2cf42e2b600316ab52794e13b91299a16f16c926f15886b6e9d6df20eb943ccc1cdba5a363d4766f8d01e47b8e6f4e01175f5e66c + checksum: 10c0/a6b26a1e4222e69ef8e62ee19374308f060b007828bc11c65025ecc9e814aba21ff2175d6d3f8bf53c863edd728ee8f94ba7870f8f90a37d39552ad9933a8aaa languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-create-class-features-plugin@npm:7.25.7" +"@babel/helper-create-class-features-plugin@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-create-class-features-plugin@npm:7.25.9" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.25.7" - "@babel/helper-member-expression-to-functions": "npm:^7.25.7" - "@babel/helper-optimise-call-expression": "npm:^7.25.7" - "@babel/helper-replace-supers": "npm:^7.25.7" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-member-expression-to-functions": "npm:^7.25.9" + "@babel/helper-optimise-call-expression": "npm:^7.25.9" + "@babel/helper-replace-supers": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/405c3c1a137acda1206380a96993cf2cfd808b3bee1c11c4af47ee0f03a20858497aa53394d6adc5431793c543be5e02010620e871a5ab39d938ae90a54b50f2 + checksum: 10c0/b2bdd39f38056a76b9ba00ec5b209dd84f5c5ebd998d0f4033cf0e73d5f2c357fbb49d1ce52db77a2709fb29ee22321f84a5734dc9914849bdfee9ad12ce8caf languageName: node linkType: hard -"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.25.7" +"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.25.9" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.25.7" + "@babel/helper-annotate-as-pure": "npm:^7.25.9" regexpu-core: "npm:^6.1.1" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/75919fd5a67cd7be8497b56f7b9ed6b4843cb401956ba8d403aa9ae5b005bc28e35c7f27e704d820edbd1154394ed7a7984d4719916795d89d716f6980fe8bd4 + checksum: 10c0/3adc60a758febbf07d65a15eaccab1f7b9fcc55e7141e59122f13c9f81fc0d1cce4525b7f4af50285d27c93b34c859fd2c39c39820c5fb92211898c3bbdc77ef languageName: node linkType: hard @@ -171,223 +173,210 @@ __metadata: languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-member-expression-to-functions@npm:7.25.7" +"@babel/helper-member-expression-to-functions@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-member-expression-to-functions@npm:7.25.9" dependencies: - "@babel/traverse": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - checksum: 10c0/1e948162ab48d84593a7c6ec9570d14c906146f1697144fc369c59dbeb00e4a062da67dd06cb0d8f98a044cd8389002dcf2ab6f5613d99c35748307846ec63fc + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/e08c7616f111e1fb56f398365e78858e26e466d4ac46dff25921adc5ccae9b232f66e952a2f4162bbe336627ba336c7fd9eca4835b6548935973d3380d77eaff languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-module-imports@npm:7.25.7" +"@babel/helper-module-imports@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-module-imports@npm:7.25.9" dependencies: - "@babel/traverse": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - checksum: 10c0/0fd0c3673835e5bf75558e184bcadc47c1f6dd2fe2016d53ebe1e5a6ae931a44e093015c2f9a6651c1a89f25c76d9246710c2b0b460b95ee069c464f2837fa2c + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/078d3c2b45d1f97ffe6bb47f61961be4785d2342a4156d8b42c92ee4e1b7b9e365655dd6cb25329e8fe1a675c91eeac7e3d04f0c518b67e417e29d6e27b6aa70 languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-module-transforms@npm:7.25.7" +"@babel/helper-module-transforms@npm:^7.25.9": + version: 7.26.0 + resolution: "@babel/helper-module-transforms@npm:7.26.0" dependencies: - "@babel/helper-module-imports": "npm:^7.25.7" - "@babel/helper-simple-access": "npm:^7.25.7" - "@babel/helper-validator-identifier": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" + "@babel/helper-module-imports": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/f37fa7d1d4df21690535b278468cbd5faf0133a3080f282000cfa4f3ffc9462a1458f866b04b6a2f2d1eec4691236cba9a867da61270dab3ab19846e62f05090 + checksum: 10c0/ee111b68a5933481d76633dad9cdab30c41df4479f0e5e1cc4756dc9447c1afd2c9473b5ba006362e35b17f4ebddd5fca090233bef8dfc84dca9d9127e56ec3a languageName: node linkType: hard -"@babel/helper-optimise-call-expression@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-optimise-call-expression@npm:7.25.7" +"@babel/helper-optimise-call-expression@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-optimise-call-expression@npm:7.25.9" dependencies: - "@babel/types": "npm:^7.25.7" - checksum: 10c0/19b4cc7e77811b1fedca4928dbc14026afef913c2ba4142e5e110ebdcb5c3b2efc0f0fbee9f362c23a194674147b9d627adea71c289b9be08b9067bc0085308b + "@babel/types": "npm:^7.25.9" + checksum: 10c0/90203e6607edeadd2a154940803fd616c0ed92c1013d6774c4b8eb491f1a5a3448b68faae6268141caa5c456e55e3ee49a4ed2bd7ddaf2365daea321c435914c languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-plugin-utils@npm:7.25.7" - checksum: 10c0/241f8cf3c5b7700e91cab7cfe5b432a3c710ae3cd5bb96dc554da536a6d25f5b9f000cc0c0917501ceb4f76ba92599ee3beb25e10adaf96be59f8df89a842faf +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-plugin-utils@npm:7.25.9" + checksum: 10c0/483066a1ba36ff16c0116cd24f93de05de746a603a777cd695ac7a1b034928a65a4ecb35f255761ca56626435d7abdb73219eba196f9aa83b6c3c3169325599d languageName: node linkType: hard -"@babel/helper-remap-async-to-generator@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-remap-async-to-generator@npm:7.25.7" +"@babel/helper-remap-async-to-generator@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-remap-async-to-generator@npm:7.25.9" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.25.7" - "@babel/helper-wrap-function": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-wrap-function": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/972d84876adce6ab61c87a2df47e1afc790b73cff0d1767d0a1c5d9f7aa5e91d8c581a272b66b2051a26cfbb167d8a780564705e488e3ce1f477f1c15059bc5f + checksum: 10c0/6798b562f2788210980f29c5ee96056d90dc73458c88af5bd32f9c82e28e01975588aa2a57bb866c35556bd9b76bac937e824ee63ba472b6430224b91b4879e9 languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-replace-supers@npm:7.25.7" +"@babel/helper-replace-supers@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-replace-supers@npm:7.25.9" dependencies: - "@babel/helper-member-expression-to-functions": "npm:^7.25.7" - "@babel/helper-optimise-call-expression": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" + "@babel/helper-member-expression-to-functions": "npm:^7.25.9" + "@babel/helper-optimise-call-expression": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/761d64ee74429f7326a6aa65e2cd5bfcb8de9e3bc3f1efb14b8f610d2410f003b0fca52778dc801d49ff8fbc90b057e8f51b27c62b0b05c95eaf23140ca1287b + checksum: 10c0/0b40d7d2925bd3ba4223b3519e2e4d2456d471ad69aa458f1c1d1783c80b522c61f8237d3a52afc9e47c7174129bbba650df06393a6787d5722f2ec7f223c3f4 languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-simple-access@npm:7.25.7" +"@babel/helper-simple-access@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-simple-access@npm:7.25.9" dependencies: - "@babel/traverse": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - checksum: 10c0/eed1b499bfb4f613c18debd61517e3de77b6da2727ca025aa05ac81599e0269f1dddb5237db04e8bb598115d015874752e0a7f11ff38672d74a4976097417059 + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/3f1bcdb88ee3883ccf86959869a867f6bbf8c4737cd44fb9f799c38e54f67474590bc66802500ae9fe18161792875b2cfb7ec15673f48ed6c8663f6d09686ca8 languageName: node linkType: hard -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.25.7" +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.25.9" dependencies: - "@babel/traverse": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - checksum: 10c0/5804adb893849a9d8cfb548e3812566a81d95cb0c9a10d66b52912d13f488e577c33063bf19bc06ac70e6333162a7370d67ba1a1c3544d37fb50d5f4a00db4de + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/09ace0c6156961624ac9524329ce7f45350bab94bbe24335cbe0da7dfaa1448e658771831983cb83fe91cf6635b15d0a3cab57c03b92657480bfb49fb56dd184 languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-string-parser@npm:7.25.7" - checksum: 10c0/73ef2ceb81f8294678a0afe8ab0103729c0370cac2e830e0d5128b03be5f6a2635838af31d391d763e3c5a4460ed96f42fd7c9b552130670d525be665913bc4c +"@babel/helper-string-parser@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-string-parser@npm:7.25.9" + checksum: 10c0/7244b45d8e65f6b4338a6a68a8556f2cb161b782343e97281a5f2b9b93e420cad0d9f5773a59d79f61d0c448913d06f6a2358a87f2e203cf112e3c5b53522ee6 languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-validator-identifier@npm:7.25.7" - checksum: 10c0/07438e5bf01ab2882a15027fdf39ac3b0ba1b251774a5130917907014684e2f70fef8fd620137ca062c4c4eedc388508d2ea7a3a7d9936a32785f4fe116c68c0 +"@babel/helper-validator-identifier@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-validator-identifier@npm:7.25.9" + checksum: 10c0/4fc6f830177b7b7e887ad3277ddb3b91d81e6c4a24151540d9d1023e8dc6b1c0505f0f0628ae653601eb4388a8db45c1c14b2c07a9173837aef7e4116456259d languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-validator-option@npm:7.25.7" - checksum: 10c0/12ed418c8e3ed9ed44c8c80d823f4e42d399b5eb2e423adccb975e31a31a008cd3b5d8eab688b31f740caff4a1bb28fe06ea2fa7d635aee34cc0ad6995d50f0a - languageName: node - linkType: hard - -"@babel/helper-wrap-function@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-wrap-function@npm:7.25.7" - dependencies: - "@babel/template": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - checksum: 10c0/b5d412f72697f4a4ce4cb9784fbaf82501c63cf95066c0eadd3179e3439cbbf0aa5fa4858d93590083671943cd357aeb87286958df34aa56fdf8a4c9dea39755 +"@babel/helper-validator-option@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-validator-option@npm:7.25.9" + checksum: 10c0/27fb195d14c7dcb07f14e58fe77c44eea19a6a40a74472ec05c441478fa0bb49fa1c32b2d64be7a38870ee48ef6601bdebe98d512f0253aea0b39756c4014f3e languageName: node linkType: hard -"@babel/helpers@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helpers@npm:7.25.7" +"@babel/helper-wrap-function@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-wrap-function@npm:7.25.9" dependencies: - "@babel/template": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - checksum: 10c0/3b3ae9e373bd785414195ef8f59976a69d5a6ebe0ef2165fdcc5165e5c3ee09e0fcee94bb457df2ddb8c0532e4146d0a9b7a96b3497399a4bff4ffe196b30228 + "@babel/template": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/b6627d83291e7b80df020f8ee2890c52b8d49272962cac0114ef90f189889c90f1027985873d1b5261a4e986e109b2754292dc112392f0b1fcbfc91cc08bd003 languageName: node linkType: hard -"@babel/highlight@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/highlight@npm:7.25.7" +"@babel/helpers@npm:^7.25.9": + version: 7.26.0 + resolution: "@babel/helpers@npm:7.26.0" dependencies: - "@babel/helper-validator-identifier": "npm:^7.25.7" - chalk: "npm:^2.4.2" - js-tokens: "npm:^4.0.0" - picocolors: "npm:^1.0.0" - checksum: 10c0/1f5894fdb0a0af6101fb2822369b2eeeae32cbeae2ef73ff73fc6a0a4a20471565cd9cfa589f54ed69df66adeca7c57266031ca9134b7bd244d023a488d419aa + "@babel/template": "npm:^7.25.9" + "@babel/types": "npm:^7.26.0" + checksum: 10c0/343333cced6946fe46617690a1d0789346960910225ce359021a88a60a65bc0d791f0c5d240c0ed46cf8cc63b5fd7df52734ff14e43b9c32feae2b61b1647097 languageName: node linkType: hard -"@babel/parser@npm:^7.25.7, @babel/parser@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/parser@npm:7.25.8" +"@babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/parser@npm:7.26.0" dependencies: - "@babel/types": "npm:^7.25.8" + "@babel/types": "npm:^7.26.0" bin: parser: ./bin/babel-parser.js - checksum: 10c0/a1a13845b7e8dda4c970791814a4bbf60004969882f18f470e260ad822d2e1f8941948f851e9335895563610f240fa6c98481ce8019865e469502bbf21daafa4 + checksum: 10c0/05619e239be811f4d8a9f471534c0d7dbc44faf38f6a6445663710982d2f9b057be43b4d18906d4e28830958752bdadbf88903abf687304a2bda86c4b3489455 languageName: node linkType: hard -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.7" +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/c6ba97c39973897a2ab021c4a77221e1e93e853a5811d498db325da1bd692e41fa521db6d91bb709ccafd4e54ddd00869ffb35846923c3ccd49d46124b316904 + checksum: 10c0/7aab47fcbb8c1ddc195a3cd66609edcad54c5022f018db7de40185f0182950389690e953e952f117a1737b72f665ff02ad30de6c02b49b97f1d8f4ccdffedc34 languageName: node linkType: hard -"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.25.7" +"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/ac284868bf410f952c6959b0d77708464127160416f003b05c8127d30e64792d671abc167ebf778b17707e32174223ea8d3ff487276991fa90297d92f0dac6e2 + checksum: 10c0/3a652b3574ca62775c5f101f8457950edc540c3581226579125da535d67765f41ad7f0e6327f8efeb2540a5dad5bb0c60a89fb934af3f67472e73fb63612d004 languageName: node linkType: hard -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.25.7" +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/1bffc0a20c8c82b4c77515eb4c99b961b38184116f008bb42bed4e12d3379ba7b2bc6cf299bcea8118d645bb7a5e0caa83969842f16dd1fce49fb3a050e4ac65 + checksum: 10c0/18fc9004104a150f9f5da9f3307f361bc3104d16778bb593b7523d5110f04a8df19a2587e6bdd5e726fb1d397191add45223f4f731bb556c33f14f2779d596e8 languageName: node linkType: hard -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.25.7" +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" - "@babel/plugin-transform-optional-chaining": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" + "@babel/plugin-transform-optional-chaining": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.13.0 - checksum: 10c0/32223f012614a0b2657579317ded7d0d09af2aa316285715c5012f974d0f15c2ce2fe0d8e80fdd9bac6c10c21c93cc925a9dfd6c8e21ce7ba1a9fe06a58088b4 + checksum: 10c0/3f6c8781a2f7aa1791a31d2242399ca884df2ab944f90c020b6f112fb19f05fa6dad5be143d274dad1377e40415b63d24d5489faf5060b9c4a99e55d8f0c317c languageName: node linkType: hard -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.25.7" +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/aa2ee7a5954d187de6cbcca0e0b64cfb79c4d224c332d1eb1e0e4afd92ef1a1f4bc4af24f66154097ccb348c08121a875456f47baed220b1b9e93584e6a19b65 + checksum: 10c0/02b365f0cc4df8b8b811c68697c93476da387841e5f153fe42766f34241b685503ea51110d5ed6df7132759820b93e48d9fa3743cffc091eed97c19f7e5fe272 languageName: node linkType: hard @@ -400,25 +389,25 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-assertions@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-syntax-import-assertions@npm:7.25.7" +"@babel/plugin-syntax-import-assertions@npm:^7.25.9": + version: 7.26.0 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.26.0" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/0fee0d971f3c654749fdf92e09b6556bba26ab014c8e99b7252f6a7f1ca108f17edd7ceefb5401d7b7008e98ab1b6f8c3c6a5db72862e7c7b2fcd649d000d690 + checksum: 10c0/525b174e60b210d96c1744c1575fc2ddedcc43a479cba64a5344cf77bd0541754fc58120b5a11ff832ba098437bb05aa80900d1f49bb3d888c5e349a4a3a356e languageName: node linkType: hard -"@babel/plugin-syntax-import-attributes@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-syntax-import-attributes@npm:7.25.7" +"@babel/plugin-syntax-import-attributes@npm:^7.25.9": + version: 7.26.0 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.26.0" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/fe00cdb96fd289ab126830a98e1dcf5ab7b529a6ef1c01a72506b5e7b1197d6e46c3c4d029cd90d1d61eb9a15ef77c282d156d0c02c7e32f168bb09d84150db4 + checksum: 10c0/e594c185b12bfe0bbe7ca78dfeebe870e6d569a12128cac86f3164a075fe0ff70e25ddbd97fd0782906b91f65560c9dc6957716b7b4a68aba2516c9b7455e352 languageName: node linkType: hard @@ -434,649 +423,649 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.25.7" +"@babel/plugin-transform-arrow-functions@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c8d75ead93f130bf113b6d29493aca695092661ef039336d2a227169c3b7895aa5e9bcc548c42a95a6eaaaf49e512317b00699940bd40ccefd77443e703d3935 + checksum: 10c0/851fef9f58be60a80f46cc0ce1e46a6f7346a6f9d50fa9e0fa79d46ec205320069d0cc157db213e2bea88ef5b7d9bd7618bb83f0b1996a836e2426c3a3a1f622 languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.8" +"@babel/plugin-transform-async-generator-functions@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/helper-remap-async-to-generator": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-remap-async-to-generator": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/1698d0757d3dc895047120346cdbe6d539dae4a7bb930caf958c3623e89c850d378d1ebd971a1a8b4cba39c8f001cd9c25a1d6f430099022ab1e87aeddb5dd88 + checksum: 10c0/e3fcb9fc3d6ab6cbd4fcd956b48c17b5e92fe177553df266ffcd2b2c1f2f758b893e51b638e77ed867941e0436487d2b8b505908d615c41799241699b520dec6 languageName: node linkType: hard -"@babel/plugin-transform-async-to-generator@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-async-to-generator@npm:7.25.7" +"@babel/plugin-transform-async-to-generator@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.25.9" dependencies: - "@babel/helper-module-imports": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/helper-remap-async-to-generator": "npm:^7.25.7" + "@babel/helper-module-imports": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-remap-async-to-generator": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/1dbefba9c1455f7a92b8c59a93c622091db945294c936fc2c09b1648308c5b4cb2ecaae92baae0d07a324ab890a8a2ee27ceb046bc120932845d27aede275821 + checksum: 10c0/c443d9e462ddef733ae56360064f32fc800105803d892e4ff32d7d6a6922b3765fa97b9ddc9f7f1d3f9d8c2d95721d85bef9dbf507804214c6cf6466b105c168 languageName: node linkType: hard -"@babel/plugin-transform-block-scoped-functions@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.25.7" +"@babel/plugin-transform-block-scoped-functions@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/b1e77492295d1b271ef850a81b0404cf3d0dd6a2bcbeab28a0fd99e61c6de4bda91dff583bb42138eec61bf71282bdd3b1bebcb53b7e373035e77fd6ba66caeb + checksum: 10c0/e92ba0e3d72c038513844d8fca1cc8437dcb35cd42778e97fd03cb8303380b201468611e7ecfdcae3de33473b2679fe2de1552c5f925d112c5693425cf851f10 languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-block-scoping@npm:7.25.7" +"@babel/plugin-transform-block-scoping@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-block-scoping@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/b2057e00535cd0e8bd5ee5d4640aa2e952564aeafb1bcf4e7b6de33442422877bb0ca8669ad0a48262ec077271978c61eae87b6b3bc8f472d830fa781d6f7e44 + checksum: 10c0/a76e30becb6c75b4d87a2cd53556fddb7c88ddd56bfadb965287fd944810ac159aa8eb5705366fc37336041f63154ed9fab3862fb10482a45bf5ede63fd55fda languageName: node linkType: hard -"@babel/plugin-transform-class-properties@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-class-properties@npm:7.25.7" +"@babel/plugin-transform-class-properties@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-class-properties@npm:7.25.9" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-create-class-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/1f41e6934b20ad3e05df63959cff9bc600ff3119153b9acbbd44c1731e7df04866397e6e17799173f4c53cdee6115e155632859aee20bf47ec7dcef3f2168a47 + checksum: 10c0/f0603b6bd34d8ba62c03fc0572cb8bbc75874d097ac20cc7c5379e001081210a84dba1749e7123fca43b978382f605bb9973c99caf2c5b4c492d5c0a4a441150 languageName: node linkType: hard -"@babel/plugin-transform-class-static-block@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/plugin-transform-class-static-block@npm:7.25.8" +"@babel/plugin-transform-class-static-block@npm:^7.25.9": + version: 7.26.0 + resolution: "@babel/plugin-transform-class-static-block@npm:7.26.0" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-create-class-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.12.0 - checksum: 10c0/4f37853aef6920875022bbb2d7c6523218d9d718291464e2cacd9cc6f2c22d86a69948d8ea38f9248843bbfe9343f3fd18cf16b1615560124198bf999e3ba612 + checksum: 10c0/cdcf5545ae6514ed75fbd73cccfa209c6a5dfdf0c2bb7bb62c0fb4ec334a32281bcf1bc16ace494d9dbe93feb8bdc0bd3cf9d9ccb6316e634a67056fa13b741b languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-classes@npm:7.25.7" +"@babel/plugin-transform-classes@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-classes@npm:7.25.9" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.25.7" - "@babel/helper-compilation-targets": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/helper-replace-supers": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-replace-supers": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" globals: "npm:^11.1.0" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/8121781e1d8acd80e6169019106f73a399475ad9c895c1988a344dfed5a6ddd340938ac55123dc1e423bb8f25f255f5d11031116ad756ba3c314595a97c973af + checksum: 10c0/02742ea7cd25be286c982e672619effca528d7a931626a6f3d6cea11852951b7ee973276127eaf6418ac0e18c4d749a16b520709c707e86a67012bd23ff2927d languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-computed-properties@npm:7.25.7" +"@babel/plugin-transform-computed-properties@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-computed-properties@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/template": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/template": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/7ad0a1c126f50935a02e77d438ebc39078a9d644b3a60de60bec32c5d9f49e7f2b193fcecb8c61bb1bc3cdd4af1e93f72d022d448511fa76a171527c633cd1bf + checksum: 10c0/948c0ae3ce0ba2375241d122a9bc7cda4a7ac8110bd8a62cd804bc46a5fdb7a7a42c7799c4cd972e14e0a579d2bd0999b92e53177b73f240bb0d4b09972c758b languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-destructuring@npm:7.25.7" +"@babel/plugin-transform-destructuring@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-destructuring@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/a563123b2fb267e03aa50104005f00b56226a685938906c42c1b251462e0cc9fc89e587d5656d3324159071eb8ebda8c68a6011f11d5a00fb1436cb5a5411b7b + checksum: 10c0/7beec5fda665d108f69d5023aa7c298a1e566b973dd41290faa18aeea70f6f571295c1ece0a058f3ceb6c6c96de76de7cd34f5a227fbf09a1b8d8a735d28ca49 languageName: node linkType: hard -"@babel/plugin-transform-dotall-regex@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-dotall-regex@npm:7.25.7" +"@babel/plugin-transform-dotall-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.25.9" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/7f1db3ec20b7fae46db4a9c4c257d75418b0896b72c0a3de20b3044f952801480f0a2e75ebb0d64f13e8cd4db0e49aa42c5c0edff372b23c41679b1ea5dd3ed4 + checksum: 10c0/7c3471ae5cf7521fd8da5b03e137e8d3733fc5ee4524ce01fb0c812f0bb77cb2c9657bc8a6253186be3a15bb4caa8974993c7ddc067f554ecc6a026f0a3b5e12 languageName: node linkType: hard -"@babel/plugin-transform-duplicate-keys@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-duplicate-keys@npm:7.25.7" +"@babel/plugin-transform-duplicate-keys@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/b4079981e2db19737a0f1a00254e7388e2d3c01ce36e9fd826e4d86d3c1755339495e29c71fd7c84a068201ec24687328d48f3bf53b32b6d6224f51d9a34da74 + checksum: 10c0/d0c74894b9bf6ff2a04189afffb9cd43d87ebd7b7943e51a827c92d2aaa40fa89ac81565a2fd6fbeabf9e38413a9264c45862eee2b017f1d49046cc3c8ff06b4 languageName: node linkType: hard -"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.25.7" +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.25.9" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/e4946090ff6d88d54b78265ee653079ec34c117ac046e22f66f7c4ac44249cdc2dfca385bc5bf4386db668b9948eeb12985589500188bc252e684c7714c31475 + checksum: 10c0/a8039a6d2b90e011c7b30975edee47b5b1097cf3c2f95ec1f5ddd029898d783a995f55f7d6eb8d6bb8873c060fb64f9f1ccba938dfe22d118d09cf68e0cd3bf6 languageName: node linkType: hard -"@babel/plugin-transform-dynamic-import@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/plugin-transform-dynamic-import@npm:7.25.8" +"@babel/plugin-transform-dynamic-import@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/9726abc1b07771a9c1e3670908ac425d21e29f54c775d10ed7a4e2bc0a18e07600f70bbc531deba3fb3ff7f6763c189200593264c6f784dac583e653b66fe754 + checksum: 10c0/5e643a8209072b668350f5788f23c64e9124f81f958b595c80fecca6561086d8ef346c04391b9e5e4cad8b8cbe22c258f0cd5f4ea89b97e74438e7d1abfd98cf languageName: node linkType: hard -"@babel/plugin-transform-exponentiation-operator@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.25.7" +"@babel/plugin-transform-exponentiation-operator@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.25.9" dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c8537b9f3cddc5a8d3710f6980196dc7a0f4389f8f82617312a5f7b8b15bcd8ddaeba783c687c3ac6031eb0a4ba0bc380a98da6bf7efe98e225602a98ad42a1e + checksum: 10c0/3b42f65bab3fee28c385115ce6bcb6ba544dff187012df408a432c9fb44c980afd898911020c723dc1c9257aaf3d7d0131ad83ba15102bf30ad9a86fc2a8a912 languageName: node linkType: hard -"@babel/plugin-transform-export-namespace-from@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/plugin-transform-export-namespace-from@npm:7.25.8" +"@babel/plugin-transform-export-namespace-from@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/8a2e1205dd727a96a9adef0e981d68c61b1c286480b9136e2aa67ce3e2c742be4f87feb9fb4c5548a401aba0953d43d66e9ec36a54dea6a7c15f1ee9345baf57 + checksum: 10c0/f291ea2ec5f36de9028a00cbd5b32f08af281b8183bf047200ff001f4cb260be56f156b2449f42149448a4a033bd6e86a3a7f06d0c2825532eb0ae6b03058dfb languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-for-of@npm:7.25.7" +"@babel/plugin-transform-for-of@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-for-of@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/08a37a1742368a422d095c998ed76f60f6bf3f9cc060033be121d803fd2dddc08fe543e48ee49c022bdc9ed80893ca79d084958d83d30684178b088774754277 + checksum: 10c0/bf11abc71934a1f369f39cd7a33cf3d4dc5673026a53f70b7c1238c4fcc44e68b3ca1bdbe3db2076f60defb6ffe117cbe10b90f3e1a613b551d88f7c4e693bbe languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-function-name@npm:7.25.7" +"@babel/plugin-transform-function-name@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-function-name@npm:7.25.9" dependencies: - "@babel/helper-compilation-targets": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/ca98e1116c0ada7211ed43e4b7f21ca15f95bbbdad70f2fbe1ec2d90a97daedf9f22fcb0a25c8b164a5e394f509f2e4d1f7609d26dc938a58d37c5ee9b80088a + checksum: 10c0/8e67fbd1dd367927b8b6afdf0a6e7cb3a3fd70766c52f700ca77428b6d536f6c9d7ec643e7762d64b23093233765c66bffa40e31aabe6492682879bcb45423e1 languageName: node linkType: hard -"@babel/plugin-transform-json-strings@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/plugin-transform-json-strings@npm:7.25.8" +"@babel/plugin-transform-json-strings@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-json-strings@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/2a6cf69ebe8deebc39c56adae75d609e16786dc4cbd83577eefdc838bd89ca8974671d47e2669b8e65ef9b7ace427f7c2c5a9fc6aa09247b10e141d15fee81cf + checksum: 10c0/00bc2d4751dfc9d44ab725be16ee534de13cfd7e77dfb386e5dac9e48101ce8fcbc5971df919dc25b3f8a0fa85d6dc5f2a0c3cf7ec9d61c163d9823c091844f0 languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-literals@npm:7.25.7" +"@babel/plugin-transform-literals@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-literals@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c2c2488102f33e566f45becdcb632e53bd052ecfb2879deb07a614b3e9437e3b624c3b16d080096d50b0b622edebd03e438acbf9260bcc41167897963f64560e + checksum: 10c0/00b14e9c14cf1e871c1f3781bf6334cac339c360404afd6aba63d2f6aca9270854d59a2b40abff1c4c90d4ffdca614440842d3043316c2f0ceb155fdf7726b3b languageName: node linkType: hard -"@babel/plugin-transform-logical-assignment-operators@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.25.8" +"@babel/plugin-transform-logical-assignment-operators@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/9adc2634c94b283b682fbf71bbec553bd8448196213491a0ef9ea167993c9c36dcb2fbefbd834e113cfed843a67290131bc99e463f8702043c3f4e3a99bb807e + checksum: 10c0/6e2051e10b2d6452980fc4bdef9da17c0d6ca48f81b8529e8804b031950e4fff7c74a7eb3de4a2b6ad22ffb631d0b67005425d232cce6e2b29ce861c78ed04f5 languageName: node linkType: hard -"@babel/plugin-transform-member-expression-literals@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-member-expression-literals@npm:7.25.7" +"@babel/plugin-transform-member-expression-literals@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/d6936b98ae4d3daed850dc4e064042ea4375f815219ba9d8591373bf1fba4cfdb5be42623ae8882f2d666cc34af650a4855e2a5ad89e3c235d73a6f172f9969c + checksum: 10c0/91d17b451bcc5ea9f1c6f8264144057ade3338d4b92c0b248366e4db3a7790a28fd59cc56ac433a9627a9087a17a5684e53f4995dd6ae92831cb72f1bd540b54 languageName: node linkType: hard -"@babel/plugin-transform-modules-amd@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-modules-amd@npm:7.25.7" +"@babel/plugin-transform-modules-amd@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-modules-amd@npm:7.25.9" dependencies: - "@babel/helper-module-transforms": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-module-transforms": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c0bc999206c3834c090e6559a6c8a55d7672d3573104e832223ebe7df99bd1b82fc850e15ba32f512c84b0db1cdb613b66fa60abe9abb9c7e8dcbff91649b356 + checksum: 10c0/849957d9484d0a2d93331226ed6cf840cee7d57454549534c447c93f8b839ef8553eae9877f8f550e3c39f14d60992f91244b2e8e7502a46064b56c5d68ba855 languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.25.7" +"@babel/plugin-transform-modules-commonjs@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.25.9" dependencies: - "@babel/helper-module-transforms": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/helper-simple-access": "npm:^7.25.7" + "@babel/helper-module-transforms": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-simple-access": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/2f1c945fc3c9b690b0ddcf2c80156b2e4fbf2cf15aac43ac8fe6e4b34125869528839a53d07c564e62e4aed394ebdc1d2c3b796b547374455522581c11b7599c + checksum: 10c0/6ce771fb04d4810257fc8900374fece877dacaed74b05eaa16ad9224b390f43795c4d046cbe9ae304e1eb5aad035d37383895e3c64496d647c2128d183916e74 languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.25.7" +"@babel/plugin-transform-modules-systemjs@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.25.9" dependencies: - "@babel/helper-module-transforms": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/helper-validator-identifier": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" + "@babel/helper-module-transforms": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/95eaea7082636710c61e49e58b3907e85ec79db4327411d3784f28592509fbe94a53cc3d20a36a1cf245efc6d3f0017eae15b45ffd645c1ab949bb4e1670e6bb + checksum: 10c0/8299e3437542129c2684b86f98408c690df27db4122a79edded4782cf04e755d6ecb05b1e812c81a34224a81e664303392d5f3c36f3d2d51fdc99bb91c881e9a languageName: node linkType: hard -"@babel/plugin-transform-modules-umd@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-modules-umd@npm:7.25.7" +"@babel/plugin-transform-modules-umd@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-modules-umd@npm:7.25.9" dependencies: - "@babel/helper-module-transforms": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-module-transforms": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/8849ab04eecdb73cd37e2d7289449fa5256331832b0304c220b2a6aaa12e2d2dd87684f2813412d1fc5bdb3d6b55cc08c6386d3273fe05a65177c09bee5b6769 + checksum: 10c0/fa11a621f023e2ac437b71d5582f819e667c94306f022583d77da9a8f772c4128861a32bbb63bef5cba581a70cd7dbe87a37238edaafcfacf889470c395e7076 languageName: node linkType: hard -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.25.7" +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.25.9" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/eb55fec55dc930cd122911f3e4a421320fa8b1b4de85bfd7ef11b46c611ec69b0213c114a6e1c6bc224d6b954ff183a0caa7251267d5258ecc0f00d6d9ca1d52 + checksum: 10c0/32b14fda5c885d1706863f8af2ee6c703d39264355b57482d3a24fce7f6afbd4c7a0896e501c0806ed2b0759beb621bf7f3f7de1fbbc82026039a98d961e78ef languageName: node linkType: hard -"@babel/plugin-transform-new-target@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-new-target@npm:7.25.7" +"@babel/plugin-transform-new-target@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-new-target@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/8e5dce6d027e0f3fd394578ea1af7f515de157793a15c23a5aad7034a6d8a4005ef280238e67a232bb4dd4fafd3a264fed462deb149128ddd9ce59ff6f575cff + checksum: 10c0/7b5f1b7998f1cf183a7fa646346e2f3742e5805b609f28ad5fee22d666a15010f3e398b7e1ab78cddb7901841a3d3f47135929af23d54e8bf4ce69b72051f71e languageName: node linkType: hard -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.25.8" +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/3cb7c44cffccae42e104755acb31b4f00bc27d8c88102ae6f30dca508832f98fa5b746bead0fc7c0c6ddcf83f336829be4b64245c6c7ce26b3ef591937ec54a4 + checksum: 10c0/eb623db5be078a1c974afe7c7797b0309ba2ea9e9237c0b6831ade0f56d8248bb4ab3432ab34495ff8c877ec2fe412ff779d1e9b3c2b8139da18e1753d950bc3 languageName: node linkType: hard -"@babel/plugin-transform-numeric-separator@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/plugin-transform-numeric-separator@npm:7.25.8" +"@babel/plugin-transform-numeric-separator@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/d23b3ebc50513f24510791ac2cad43e3c6ea08579f54dccfd4ed5e5d5084f02da0576ea42ea999fb51e1f94f42857cac96a1a29ac6728fc262fbe87ec966dc18 + checksum: 10c0/ad63ad341977844b6f9535fcca15ca0d6d6ad112ed9cc509d4f6b75e9bf4b1b1a96a0bcb1986421a601505d34025373608b5f76d420d924b4e21f86b1a1f2749 languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.25.8" +"@babel/plugin-transform-object-rest-spread@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.25.9" dependencies: - "@babel/helper-compilation-targets": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/plugin-transform-parameters": "npm:^7.25.7" + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/plugin-transform-parameters": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/058d5f5bb61068997fb78855011dd175d441da84717640852bbfd12a5919acf8d8c5a14c1debfe87d230f3f4c47c22fcad3d7fa1acd72e5e48b2fff93b6c1dd9 + checksum: 10c0/02077d8abd83bf6a48ff0b59e98d7561407cf75b591cffd3fdc5dc5e9a13dec1c847a7a690983762a3afecddb244831e897e0515c293e7c653b262c30cd614af languageName: node linkType: hard -"@babel/plugin-transform-object-super@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-object-super@npm:7.25.7" +"@babel/plugin-transform-object-super@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-object-super@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/helper-replace-supers": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-replace-supers": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/7f2968d4da997101b63fd3b74445c9b16f56bd32cd8a0a16c368af9d3e983e7675c1b05d18601f32307cb06e7d884ee11d13ff18a1f6830c0db243a9a852afab + checksum: 10c0/0348d00e76f1f15ada44481a76e8c923d24cba91f6e49ee9b30d6861eb75344e7f84d62a18df8a6f9e9a7eacf992f388174b7f9cc4ce48287bcefca268c07600 languageName: node linkType: hard -"@babel/plugin-transform-optional-catch-binding@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.25.8" +"@babel/plugin-transform-optional-catch-binding@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/f4360e62ca4aa998db31548d0ef06836d958bcb29dee58f5c62d0c29b6b2bff1b54871195bd032825fe3dd79a4fd8275e165148c8d4b57694bcf72135c8f7d24 + checksum: 10c0/722fd5ee12ab905309d4e84421584fce4b6d9e6b639b06afb20b23fa809e6ab251e908a8d5e8b14d066a28186b8ef8f58d69fd6eca9ce1b9ef7af08333378f6c languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.25.7, @babel/plugin-transform-optional-chaining@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.25.8" +"@babel/plugin-transform-optional-chaining@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/a1cdbfc249619fa6b37e57f81600701281629d86a57e616b0c2b29816d0c43114a2296ce089564afd3aa7870c8aad62e907658ffef2c110662af14ee23d5247f + checksum: 10c0/041ad2beae5affb8e68a0bcb6882a2dadb758db3c629a0e012f57488ab43a822ac1ea17a29db8ef36560a28262a5dfa4dbbbf06ed6e431db55abe024b7cd3961 languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-parameters@npm:7.25.7" +"@babel/plugin-transform-parameters@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-parameters@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/b40ba70278842ce1e800d7ab400df730994941550da547ef453780023bd61a9b8acf4b9fb8419c1b5bcbe09819a1146ff59369db11db07eb71870bef86a12422 + checksum: 10c0/aecb446754b9e09d6b6fa95fd09e7cf682f8aaeed1d972874ba24c0a30a7e803ad5f014bb1fffc7bfeed22f93c0d200947407894ea59bf7687816f2f464f8df3 languageName: node linkType: hard -"@babel/plugin-transform-private-methods@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-private-methods@npm:7.25.7" +"@babel/plugin-transform-private-methods@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-private-methods@npm:7.25.9" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-create-class-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/92e076f63f7c4696e1321dafdd56c4212eb41784cdadba0ebc39091f959a76d357c3df61a6c668be81d6b6ad8964ee458e85752ab0c6cfbbaf2066903edda732 + checksum: 10c0/64bd71de93d39daefa3e6c878d6f2fd238ed7d4ecfb13b0e771ddbbc131487def3ceb405b62b534a5cbb5043046b504e1b189b0a45229cc75af979a9fbcaa7bd languageName: node linkType: hard -"@babel/plugin-transform-private-property-in-object@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/plugin-transform-private-property-in-object@npm:7.25.8" +"@babel/plugin-transform-private-property-in-object@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.25.9" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.25.7" - "@babel/helper-create-class-features-plugin": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-create-class-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/61b5e3a4eb94caf38d6e9ff7bff1ac8927758141aaa4891036d3490866ecee53beaefd7893519fec42a4c55f33374a17fc0e49694cdaf95668082073f0fe4a79 + checksum: 10c0/d4965de19d9f204e692cc74dbc39f0bb469e5f29df96dd4457ea23c5e5596fba9d5af76eaa96f9d48a9fc20ec5f12a94c679285e36b8373406868ea228109e27 languageName: node linkType: hard -"@babel/plugin-transform-property-literals@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-property-literals@npm:7.25.7" +"@babel/plugin-transform-property-literals@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-property-literals@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/6d5bccdc772207906666ad5201bd91e4e132e1d806dbcf4163a1d08e18c57cc3795578c4e10596514bcd6afaf9696f478ea4f0dea890176d93b9cb077b9e5c55 + checksum: 10c0/1639e35b2438ccf3107af760d34e6a8e4f9acdd3ae6186ae771a6e3029bd59dfe778e502d67090f1185ecda5c16addfed77561e39c518a3f51ff10d41790e106 languageName: node linkType: hard -"@babel/plugin-transform-regenerator@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-regenerator@npm:7.25.7" +"@babel/plugin-transform-regenerator@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-regenerator@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" regenerator-transform: "npm:^0.15.2" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/7ee3a57c4050bc908ef7ac392d810826b294970a7182f4ec34a8ca93dbe36deb21bc862616d46a6f3d881d6b5749930e1679e875b638a00866d844a4250df212 + checksum: 10c0/eef3ffc19f7d291b863635f32b896ad7f87806d9219a0d3404a470219abcfc5b43aabecd691026c48e875b965760d9c16abee25e6447272233f30cd07f453ec7 languageName: node linkType: hard -"@babel/plugin-transform-reserved-words@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-reserved-words@npm:7.25.7" +"@babel/plugin-transform-reserved-words@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-reserved-words@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/920c98130daff6c1288fb13a9a2d2e45863bba93e619cb88d90e1f5b5cb358a3ee8880a425a3adb1b4bd5dbb6bd0500eea3370fc612633045eec851b08cc586c + checksum: 10c0/8b028b80d1983e3e02f74e21924323cc66ba930e5c5758909a122aa7d80e341b8b0f42e1698e42b50d47a6ba911332f584200b28e1a4e2104b7514d9dc011e96 languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.25.7" +"@babel/plugin-transform-shorthand-properties@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/4250f89a0072f0f400be7a2e3515227b8e2518737899bd57d497e5173284a0e05d812e4a3c219ffcd484e9fa9a01c19fce5acd77bbb898f4d594512c56701eb4 + checksum: 10c0/05a20d45f0fb62567644c507ccd4e379c1a74dacf887d2b2cac70247415e3f6d7d3bf4850c8b336053144715fedb6200fc38f7130c4b76c94eec9b9c0c2a8e9b languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-spread@npm:7.25.7" +"@babel/plugin-transform-spread@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-spread@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/258bd1b52388cd7425d0ae25fa39538734f7540ea503a1d8a72211d33f6f214cb4e3b73d6cd03016cbcff5d41169f1e578b9ea331965ad224d223591983e90a7 + checksum: 10c0/996c8fed238efc30e0664f9f58bd7ec8c148f4659f84425f68923a094fe891245711d26eb10d1f815f50c124434e076e860dbe9662240844d1b77cd09907dcdf languageName: node linkType: hard -"@babel/plugin-transform-sticky-regex@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-sticky-regex@npm:7.25.7" +"@babel/plugin-transform-sticky-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/0e466cfc3ca1e0db4bb11eb630215b0e1f43066d7678325e5ddadcf5a118b2351a528f67205729c32ac5b78ab68ab7f40517dd33bcb1fb6b456509f5f54ce097 + checksum: 10c0/e9612b0615dab4c4fba1c560769616a9bd7b9226c73191ef84b6c3ee185c8b719b4f887cdd8336a0a13400ce606ab4a0d33bc8fa6b4fcdb53e2896d07f2568f6 languageName: node linkType: hard -"@babel/plugin-transform-template-literals@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-template-literals@npm:7.25.7" +"@babel/plugin-transform-template-literals@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-template-literals@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/a3455303b6841cb536ac66d1a2d03c194b9f371519482d8d1e8edbd33bf5ca7cdd5db1586b2b0ea5f909ebf74a0eafacf0fb28d257e4905445282dcdccfa6139 + checksum: 10c0/5144da6036807bbd4e9d2a8b92ae67a759543929f34f4db9b463448a77298f4a40bf1e92e582db208fe08ee116224806a3bd0bed75d9da404fc2c0af9e6da540 languageName: node linkType: hard -"@babel/plugin-transform-typeof-symbol@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.25.7" +"@babel/plugin-transform-typeof-symbol@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/ce1a0744a900b05de1372a70508c4148f17eb941c482da26eb369b9f0347570dce45470c8a86d907bc3a0443190344da1e18489ecfecb30388ab6178e8a9916b + checksum: 10c0/2b19fd88608589d9bc6b607ff17b06791d35c67ef3249f4659283454e6a9984241e3bd4c4eb72bb8b3d860a73223f3874558b861adb7314aa317c1c6a2f0cafb languageName: node linkType: hard -"@babel/plugin-transform-unicode-escapes@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.25.7" +"@babel/plugin-transform-unicode-escapes@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/8b1f71fda0a832c6e26ba4c00f99e9033e6f9b36ced542a512921f4ad861a70e2fec2bd54a91a5ca2efa46aaa8c8893e4c602635c4ef172bd3ed6eef3178c70b + checksum: 10c0/615c84d7c53e1575d54ba9257e753e0b98c5de1e3225237d92f55226eaab8eb5bceb74df43f50f4aa162b0bbcc934ed11feafe2b60b8ec4934ce340fad4b8828 languageName: node linkType: hard -"@babel/plugin-transform-unicode-property-regex@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.25.7" +"@babel/plugin-transform-unicode-property-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.25.9" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/b4bfcf7529138d00671bf5cdfe606603d52cfe57ec1be837da57683f404fc0b0c171834a02515eb03379e5c806121866d097b90e31cb437d21d0ea59368ad82b + checksum: 10c0/1685836fc38af4344c3d2a9edbd46f7c7b28d369b63967d5b83f2f6849ec45b97223461cea3d14cc3f0be6ebb284938e637a5ca3955c0e79c873d62f593d615c languageName: node linkType: hard -"@babel/plugin-transform-unicode-regex@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-unicode-regex@npm:7.25.7" +"@babel/plugin-transform-unicode-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.25.9" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/73ae34c02ea8b7ac7e4efa690f8c226089c074e3fef658d2a630ad898a93550d84146ce05e073c271c8b2bbba61cbbfd5a2002a7ea940dcad3274e5b5dcb6bcf + checksum: 10c0/448004f978279e726af26acd54f63f9002c9e2582ecd70d1c5c4436f6de490fcd817afb60016d11c52f5ef17dbaac2590e8cc7bfaf4e91b58c452cf188c7920f languageName: node linkType: hard -"@babel/plugin-transform-unicode-sets-regex@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.25.7" +"@babel/plugin-transform-unicode-sets-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.25.9" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/39e45ae3db7adfc3457b1d6ba5608ffbace957ad019785967e5357a6639f261765bda12363f655d39265f5a2834af26327037751420191d0b73152ccc7ce3c35 + checksum: 10c0/56ee04fbe236b77cbcd6035cbf0be7566d1386b8349154ac33244c25f61170c47153a9423cd1d92855f7d6447b53a4a653d9e8fd1eaeeee14feb4b2baf59bd9f languageName: node linkType: hard -"@babel/preset-env@npm:7.25.8": - version: 7.25.8 - resolution: "@babel/preset-env@npm:7.25.8" +"@babel/preset-env@npm:7.25.9": + version: 7.25.9 + resolution: "@babel/preset-env@npm:7.25.9" dependencies: - "@babel/compat-data": "npm:^7.25.8" - "@babel/helper-compilation-targets": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/helper-validator-option": "npm:^7.25.7" - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.25.7" - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "npm:^7.25.7" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.25.7" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.25.7" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.25.7" + "@babel/compat-data": "npm:^7.25.9" + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-validator-option": "npm:^7.25.9" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.25.9" + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "npm:^7.25.9" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.25.9" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.25.9" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.25.9" "@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-import-assertions": "npm:^7.25.7" - "@babel/plugin-syntax-import-attributes": "npm:^7.25.7" + "@babel/plugin-syntax-import-assertions": "npm:^7.25.9" + "@babel/plugin-syntax-import-attributes": "npm:^7.25.9" "@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6" - "@babel/plugin-transform-arrow-functions": "npm:^7.25.7" - "@babel/plugin-transform-async-generator-functions": "npm:^7.25.8" - "@babel/plugin-transform-async-to-generator": "npm:^7.25.7" - "@babel/plugin-transform-block-scoped-functions": "npm:^7.25.7" - "@babel/plugin-transform-block-scoping": "npm:^7.25.7" - "@babel/plugin-transform-class-properties": "npm:^7.25.7" - "@babel/plugin-transform-class-static-block": "npm:^7.25.8" - "@babel/plugin-transform-classes": "npm:^7.25.7" - "@babel/plugin-transform-computed-properties": "npm:^7.25.7" - "@babel/plugin-transform-destructuring": "npm:^7.25.7" - "@babel/plugin-transform-dotall-regex": "npm:^7.25.7" - "@babel/plugin-transform-duplicate-keys": "npm:^7.25.7" - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "npm:^7.25.7" - "@babel/plugin-transform-dynamic-import": "npm:^7.25.8" - "@babel/plugin-transform-exponentiation-operator": "npm:^7.25.7" - "@babel/plugin-transform-export-namespace-from": "npm:^7.25.8" - "@babel/plugin-transform-for-of": "npm:^7.25.7" - "@babel/plugin-transform-function-name": "npm:^7.25.7" - "@babel/plugin-transform-json-strings": "npm:^7.25.8" - "@babel/plugin-transform-literals": "npm:^7.25.7" - "@babel/plugin-transform-logical-assignment-operators": "npm:^7.25.8" - "@babel/plugin-transform-member-expression-literals": "npm:^7.25.7" - "@babel/plugin-transform-modules-amd": "npm:^7.25.7" - "@babel/plugin-transform-modules-commonjs": "npm:^7.25.7" - "@babel/plugin-transform-modules-systemjs": "npm:^7.25.7" - "@babel/plugin-transform-modules-umd": "npm:^7.25.7" - "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.25.7" - "@babel/plugin-transform-new-target": "npm:^7.25.7" - "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.25.8" - "@babel/plugin-transform-numeric-separator": "npm:^7.25.8" - "@babel/plugin-transform-object-rest-spread": "npm:^7.25.8" - "@babel/plugin-transform-object-super": "npm:^7.25.7" - "@babel/plugin-transform-optional-catch-binding": "npm:^7.25.8" - "@babel/plugin-transform-optional-chaining": "npm:^7.25.8" - "@babel/plugin-transform-parameters": "npm:^7.25.7" - "@babel/plugin-transform-private-methods": "npm:^7.25.7" - "@babel/plugin-transform-private-property-in-object": "npm:^7.25.8" - "@babel/plugin-transform-property-literals": "npm:^7.25.7" - "@babel/plugin-transform-regenerator": "npm:^7.25.7" - "@babel/plugin-transform-reserved-words": "npm:^7.25.7" - "@babel/plugin-transform-shorthand-properties": "npm:^7.25.7" - "@babel/plugin-transform-spread": "npm:^7.25.7" - "@babel/plugin-transform-sticky-regex": "npm:^7.25.7" - "@babel/plugin-transform-template-literals": "npm:^7.25.7" - "@babel/plugin-transform-typeof-symbol": "npm:^7.25.7" - "@babel/plugin-transform-unicode-escapes": "npm:^7.25.7" - "@babel/plugin-transform-unicode-property-regex": "npm:^7.25.7" - "@babel/plugin-transform-unicode-regex": "npm:^7.25.7" - "@babel/plugin-transform-unicode-sets-regex": "npm:^7.25.7" + "@babel/plugin-transform-arrow-functions": "npm:^7.25.9" + "@babel/plugin-transform-async-generator-functions": "npm:^7.25.9" + "@babel/plugin-transform-async-to-generator": "npm:^7.25.9" + "@babel/plugin-transform-block-scoped-functions": "npm:^7.25.9" + "@babel/plugin-transform-block-scoping": "npm:^7.25.9" + "@babel/plugin-transform-class-properties": "npm:^7.25.9" + "@babel/plugin-transform-class-static-block": "npm:^7.25.9" + "@babel/plugin-transform-classes": "npm:^7.25.9" + "@babel/plugin-transform-computed-properties": "npm:^7.25.9" + "@babel/plugin-transform-destructuring": "npm:^7.25.9" + "@babel/plugin-transform-dotall-regex": "npm:^7.25.9" + "@babel/plugin-transform-duplicate-keys": "npm:^7.25.9" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "npm:^7.25.9" + "@babel/plugin-transform-dynamic-import": "npm:^7.25.9" + "@babel/plugin-transform-exponentiation-operator": "npm:^7.25.9" + "@babel/plugin-transform-export-namespace-from": "npm:^7.25.9" + "@babel/plugin-transform-for-of": "npm:^7.25.9" + "@babel/plugin-transform-function-name": "npm:^7.25.9" + "@babel/plugin-transform-json-strings": "npm:^7.25.9" + "@babel/plugin-transform-literals": "npm:^7.25.9" + "@babel/plugin-transform-logical-assignment-operators": "npm:^7.25.9" + "@babel/plugin-transform-member-expression-literals": "npm:^7.25.9" + "@babel/plugin-transform-modules-amd": "npm:^7.25.9" + "@babel/plugin-transform-modules-commonjs": "npm:^7.25.9" + "@babel/plugin-transform-modules-systemjs": "npm:^7.25.9" + "@babel/plugin-transform-modules-umd": "npm:^7.25.9" + "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.25.9" + "@babel/plugin-transform-new-target": "npm:^7.25.9" + "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.25.9" + "@babel/plugin-transform-numeric-separator": "npm:^7.25.9" + "@babel/plugin-transform-object-rest-spread": "npm:^7.25.9" + "@babel/plugin-transform-object-super": "npm:^7.25.9" + "@babel/plugin-transform-optional-catch-binding": "npm:^7.25.9" + "@babel/plugin-transform-optional-chaining": "npm:^7.25.9" + "@babel/plugin-transform-parameters": "npm:^7.25.9" + "@babel/plugin-transform-private-methods": "npm:^7.25.9" + "@babel/plugin-transform-private-property-in-object": "npm:^7.25.9" + "@babel/plugin-transform-property-literals": "npm:^7.25.9" + "@babel/plugin-transform-regenerator": "npm:^7.25.9" + "@babel/plugin-transform-reserved-words": "npm:^7.25.9" + "@babel/plugin-transform-shorthand-properties": "npm:^7.25.9" + "@babel/plugin-transform-spread": "npm:^7.25.9" + "@babel/plugin-transform-sticky-regex": "npm:^7.25.9" + "@babel/plugin-transform-template-literals": "npm:^7.25.9" + "@babel/plugin-transform-typeof-symbol": "npm:^7.25.9" + "@babel/plugin-transform-unicode-escapes": "npm:^7.25.9" + "@babel/plugin-transform-unicode-property-regex": "npm:^7.25.9" + "@babel/plugin-transform-unicode-regex": "npm:^7.25.9" + "@babel/plugin-transform-unicode-sets-regex": "npm:^7.25.9" "@babel/preset-modules": "npm:0.1.6-no-external-plugins" babel-plugin-polyfill-corejs2: "npm:^0.4.10" babel-plugin-polyfill-corejs3: "npm:^0.10.6" @@ -1085,7 +1074,7 @@ __metadata: semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/a45cd64ca082262998f6cf508b413ff8a9e967bf33e58337a1fe41c6c939a4c25cc73cd58387792c00d43905cf5fb0ea5ef88dfdc2addf2e8133743088c86c72 + checksum: 10c0/b8b391e3fe69918a2a4f4366034113bd6f57c9748974dbe1b807a728bc41434f1e003cb4204ca63a2a01cbb7c05ba96036261b64756243374374353931d346e6 languageName: node linkType: hard @@ -1111,40 +1100,39 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/template@npm:7.25.7" +"@babel/template@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/template@npm:7.25.9" dependencies: - "@babel/code-frame": "npm:^7.25.7" - "@babel/parser": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - checksum: 10c0/8ae9e36e4330ee83d4832531d1d9bec7dc2ef6a2a8afa1ef1229506fd60667abcb17f306d1c3d7e582251270597022990c845d5d69e7add70a5aea66720decb9 + "@babel/code-frame": "npm:^7.25.9" + "@babel/parser": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/ebe677273f96a36c92cc15b7aa7b11cc8bc8a3bb7a01d55b2125baca8f19cae94ff3ce15f1b1880fb8437f3a690d9f89d4e91f16fc1dc4d3eb66226d128983ab languageName: node linkType: hard -"@babel/traverse@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/traverse@npm:7.25.7" +"@babel/traverse@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/traverse@npm:7.25.9" dependencies: - "@babel/code-frame": "npm:^7.25.7" - "@babel/generator": "npm:^7.25.7" - "@babel/parser": "npm:^7.25.7" - "@babel/template": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" + "@babel/code-frame": "npm:^7.25.9" + "@babel/generator": "npm:^7.25.9" + "@babel/parser": "npm:^7.25.9" + "@babel/template": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" debug: "npm:^4.3.1" globals: "npm:^11.1.0" - checksum: 10c0/75d73e52c507a7a7a4c7971d6bf4f8f26fdd094e0d3a0193d77edf6a5efa36fc3db91ec5cc48e8b94e6eb5d5ad21af0a1040e71309172851209415fd105efb1a + checksum: 10c0/e90be586a714da4adb80e6cb6a3c5cfcaa9b28148abdafb065e34cc109676fc3db22cf98cd2b2fff66ffb9b50c0ef882cab0f466b6844be0f6c637b82719bba1 languageName: node linkType: hard -"@babel/types@npm:^7.25.7, @babel/types@npm:^7.25.8, @babel/types@npm:^7.4.4": - version: 7.25.8 - resolution: "@babel/types@npm:7.25.8" +"@babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0, @babel/types@npm:^7.4.4": + version: 7.26.0 + resolution: "@babel/types@npm:7.26.0" dependencies: - "@babel/helper-string-parser": "npm:^7.25.7" - "@babel/helper-validator-identifier": "npm:^7.25.7" - to-fast-properties: "npm:^2.0.0" - checksum: 10c0/55ca2d6df6426c98db2769ce884ce5e9de83a512ea2dd7bcf56c811984dc14351cacf42932a723630c5afcff2455809323decd645820762182f10b7b5252b59f + "@babel/helper-string-parser": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + checksum: 10c0/b694f41ad1597127e16024d766c33a641508aad037abd08d0d1f73af753e1119fa03b4a107d04b5f92cc19c095a594660547ae9bead1db2299212d644b0a5cb8 languageName: node linkType: hard @@ -2491,15 +2479,6 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^3.2.1": - version: 3.2.1 - resolution: "ansi-styles@npm:3.2.1" - dependencies: - color-convert: "npm:^1.9.0" - checksum: 10c0/ece5a8ef069fcc5298f67e3f4771a663129abd174ea2dfa87923a2be2abf6cd367ef72ac87942da00ce85bd1d651d4cd8595aebdb1b385889b89b205860e977b - languageName: node - linkType: hard - "ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": version: 4.3.0 resolution: "ansi-styles@npm:4.3.0" @@ -2783,17 +2762,6 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^2.4.2": - version: 2.4.2 - resolution: "chalk@npm:2.4.2" - dependencies: - ansi-styles: "npm:^3.2.1" - escape-string-regexp: "npm:^1.0.5" - supports-color: "npm:^5.3.0" - checksum: 10c0/e6543f02ec877732e3a2d1c3c3323ddb4d39fbab687c23f526e25bd4c6a9bf3b83a696e8c769d078e04e5754921648f7821b2a2acfd16c550435fd630026e073 - languageName: node - linkType: hard - "chalk@npm:^4.0.0": version: 4.1.2 resolution: "chalk@npm:4.1.2" @@ -2882,15 +2850,6 @@ __metadata: languageName: node linkType: hard -"color-convert@npm:^1.9.0": - version: 1.9.3 - resolution: "color-convert@npm:1.9.3" - dependencies: - color-name: "npm:1.1.3" - checksum: 10c0/5ad3c534949a8c68fca8fbc6f09068f435f0ad290ab8b2f76841b9e6af7e0bb57b98cb05b0e19fe33f5d91e5a8611ad457e5f69e0a484caad1f7487fd0e8253c - languageName: node - linkType: hard - "color-convert@npm:^2.0.1": version: 2.0.1 resolution: "color-convert@npm:2.0.1" @@ -2900,13 +2859,6 @@ __metadata: languageName: node linkType: hard -"color-name@npm:1.1.3": - version: 1.1.3 - resolution: "color-name@npm:1.1.3" - checksum: 10c0/566a3d42cca25b9b3cd5528cd7754b8e89c0eb646b7f214e8e2eaddb69994ac5f0557d9c175eb5d8f0ad73531140d9c47525085ee752a91a2ab15ab459caf6d6 - languageName: node - linkType: hard - "color-name@npm:~1.1.4": version: 1.1.4 resolution: "color-name@npm:1.1.4" @@ -3449,13 +3401,6 @@ __metadata: languageName: node linkType: hard -"escape-string-regexp@npm:^1.0.5": - version: 1.0.5 - resolution: "escape-string-regexp@npm:1.0.5" - checksum: 10c0/a968ad453dd0c2724e14a4f20e177aaf32bb384ab41b674a8454afe9a41c5e6fe8903323e0a1052f56289d04bd600f81278edf140b0fcc02f5cac98d0f5b5371 - languageName: node - linkType: hard - "escape-string-regexp@npm:^4.0.0": version: 4.0.0 resolution: "escape-string-regexp@npm:4.0.0" @@ -4064,13 +4009,6 @@ __metadata: languageName: node linkType: hard -"has-flag@npm:^3.0.0": - version: 3.0.0 - resolution: "has-flag@npm:3.0.0" - checksum: 10c0/1c6c83b14b8b1b3c25b0727b8ba3e3b647f99e9e6e13eb7322107261de07a4c1be56fc0d45678fc376e09772a3a1642ccdaf8fc69bdf123b6c086598397ce473 - languageName: node - linkType: hard - "has-flag@npm:^4.0.0": version: 4.0.0 resolution: "has-flag@npm:4.0.0" @@ -4385,9 +4323,9 @@ __metadata: version: 0.0.0-use.local resolution: "jenkins-ui@workspace:." dependencies: - "@babel/cli": "npm:7.25.7" - "@babel/core": "npm:7.25.8" - "@babel/preset-env": "npm:7.25.8" + "@babel/cli": "npm:7.25.9" + "@babel/core": "npm:7.25.9" + "@babel/preset-env": "npm:7.25.9" "@eslint/js": "npm:9.13.0" babel-loader: "npm:9.2.1" clean-webpack-plugin: "npm:4.0.0" @@ -6745,15 +6683,6 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^5.3.0": - version: 5.5.0 - resolution: "supports-color@npm:5.5.0" - dependencies: - has-flag: "npm:^3.0.0" - checksum: 10c0/6ae5ff319bfbb021f8a86da8ea1f8db52fac8bd4d499492e30ec17095b58af11f0c55f8577390a749b1c4dde691b6a0315dab78f5f54c9b3d83f8fb5905c1c05 - languageName: node - linkType: hard - "supports-color@npm:^7.0.0, supports-color@npm:^7.1.0": version: 7.2.0 resolution: "supports-color@npm:7.2.0" @@ -6899,13 +6828,6 @@ __metadata: languageName: node linkType: hard -"to-fast-properties@npm:^2.0.0": - version: 2.0.0 - resolution: "to-fast-properties@npm:2.0.0" - checksum: 10c0/b214d21dbfb4bce3452b6244b336806ffea9c05297148d32ebb428d5c43ce7545bdfc65a1ceb58c9ef4376a65c0cb2854d645f33961658b3e3b4f84910ddcdd7 - languageName: node - linkType: hard - "to-regex-range@npm:^5.0.1": version: 5.0.1 resolution: "to-regex-range@npm:5.0.1" From 23bcc39d049c9226d012f1b6f9109579ea2fb3a5 Mon Sep 17 00:00:00 2001 From: Daniel Beck <1831569+daniel-beck@users.noreply.github.com> Date: Fri, 25 Oct 2024 23:35:27 +0200 Subject: [PATCH 1142/1216] Add Resource Root URL test for permissions assigned to groups (#9906) Co-authored-by: Daniel Beck --- .../jenkins/security/ResourceDomainTest.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/test/src/test/java/jenkins/security/ResourceDomainTest.java b/test/src/test/java/jenkins/security/ResourceDomainTest.java index b8f2d551b094..a2eb9de0b89a 100644 --- a/test/src/test/java/jenkins/security/ResourceDomainTest.java +++ b/test/src/test/java/jenkins/security/ResourceDomainTest.java @@ -55,6 +55,34 @@ public void prepare() throws Exception { configuration.setUrl(resourceRoot); } + @Test + public void groupPermissionsWork() throws Exception { + final JenkinsRule.DummySecurityRealm securityRealm = j.createDummySecurityRealm(); + securityRealm.addGroups("alice", "admins"); + j.jenkins.setSecurityRealm(securityRealm); + MockAuthorizationStrategy a = new MockAuthorizationStrategy().grant(Jenkins.READ).everywhere().to("admins"); + j.jenkins.setAuthorizationStrategy(a); + + JenkinsRule.WebClient webClient = j.createWebClient().login("alice"); + + { // DBS directory listing is shown as always + Page page = webClient.goTo("userContent"); + Assert.assertEquals("successful request", 200, page.getWebResponse().getStatusCode()); + Assert.assertTrue("still on the original URL", page.getUrl().toString().contains("/userContent")); + Assert.assertTrue("web page", page.isHtmlPage()); + Assert.assertTrue("complex web page", page.getWebResponse().getContentAsString().contains("javascript")); + } + { // DBS on primary domain forwards to second domain when trying to access a file URL + webClient.setRedirectEnabled(true); + Page page = webClient.goTo("userContent/readme.txt", "text/plain"); + final String resourceResponseUrl = page.getUrl().toString(); + Assert.assertEquals("resource response success", 200, page.getWebResponse().getStatusCode()); + Assert.assertNull("no CSP headers", page.getWebResponse().getResponseHeaderValue("Content-Security-Policy")); + Assert.assertTrue("Served from resource domain", resourceResponseUrl.contains(RESOURCE_DOMAIN)); + Assert.assertTrue("Served from resource action", resourceResponseUrl.contains("static-files")); + } + } + @Test public void secondDomainBasics() throws Exception { JenkinsRule.WebClient webClient = j.createWebClient(); From 9191caca736ac08fc5f8ae0d34e271d3c65e0f1d Mon Sep 17 00:00:00 2001 From: Mark Waite Date: Fri, 25 Oct 2024 15:59:26 -0600 Subject: [PATCH 1143/1216] Fix yarn lint issue --- war/src/main/webapp/help/parameter/file.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/war/src/main/webapp/help/parameter/file.html b/war/src/main/webapp/help/parameter/file.html index ef4f8d7f8e4a..d641470f015a 100644 --- a/war/src/main/webapp/help/parameter/file.html +++ b/war/src/main/webapp/help/parameter/file.html @@ -23,8 +23,8 @@ .) The name will not include the directory name portion.

    - Please note that some shells, such as dash, or /bin/sh provided by dash, - do not make such environment variables with special characters available to + Please note that some shells, such as dash, or /bin/sh provided by dash, do + not make such environment variables with special characters available to child processes. Try using shebang like #!/bin/bash in shell script and use From 6c0422fcda13ab5bad51a5075a81de1ede4398b4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 26 Oct 2024 11:51:12 -0700 Subject: [PATCH 1144/1216] Update dependency com.puppycrawl.tools:checkstyle to v10.19.0 (#9917) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index cfdc76b2fd56..b492c804f609 100644 --- a/pom.xml +++ b/pom.xml @@ -281,7 +281,7 @@ THE SOFTWARE. com.puppycrawl.tools checkstyle - 10.18.2 + 10.19.0 From bd90608a6fef0459d48483bf6652e9097e9ef277 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 26 Oct 2024 11:51:30 -0700 Subject: [PATCH 1145/1216] Update jenkins/ath Docker tag to v6059 (#9914) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- ath.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ath.sh b/ath.sh index d57b7834ee32..c3a56d5fe4f8 100644 --- a/ath.sh +++ b/ath.sh @@ -6,7 +6,7 @@ set -o xtrace cd "$(dirname "$0")" # https://github.com/jenkinsci/acceptance-test-harness/releases -export ATH_VERSION=6058.v6b_05a_06f312a_ +export ATH_VERSION=6059.veb_df63f37069 if [[ $# -eq 0 ]]; then export JDK=17 From e9f8cd64ddfc63558fe247dcb1fec72656549485 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 26 Oct 2024 11:51:57 -0700 Subject: [PATCH 1146/1216] Update babel monorepo to v7.26.0 (#9915) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +-- yarn.lock | 69 +++++++++++++++++++++++++++++++--------------------- 2 files changed, 43 insertions(+), 30 deletions(-) diff --git a/package.json b/package.json index b4babc069cc4..892fffca567d 100644 --- a/package.json +++ b/package.json @@ -24,8 +24,8 @@ }, "devDependencies": { "@babel/cli": "7.25.9", - "@babel/core": "7.25.9", - "@babel/preset-env": "7.25.9", + "@babel/core": "7.26.0", + "@babel/preset-env": "7.26.0", "@eslint/js": "9.13.0", "babel-loader": "9.2.1", "clean-webpack-plugin": "4.0.0", diff --git a/yarn.lock b/yarn.lock index 113ee9042964..0bb6566c1c40 100644 --- a/yarn.lock +++ b/yarn.lock @@ -42,7 +42,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.25.9": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.25.9, @babel/code-frame@npm:^7.26.0": version: 7.26.0 resolution: "@babel/code-frame@npm:7.26.0" dependencies: @@ -53,37 +53,37 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.9": +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.9, @babel/compat-data@npm:^7.26.0": version: 7.26.0 resolution: "@babel/compat-data@npm:7.26.0" checksum: 10c0/6325c9151a3c9b0a3a807e854a26255ef66d989bff331475a935af9bb18f160e0fffe6aed550e4e96b63f91efcd874bfbaab2a1f4a2f8d25645d712a0de590fb languageName: node linkType: hard -"@babel/core@npm:7.25.9": - version: 7.25.9 - resolution: "@babel/core@npm:7.25.9" +"@babel/core@npm:7.26.0": + version: 7.26.0 + resolution: "@babel/core@npm:7.26.0" dependencies: "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.25.9" - "@babel/generator": "npm:^7.25.9" + "@babel/code-frame": "npm:^7.26.0" + "@babel/generator": "npm:^7.26.0" "@babel/helper-compilation-targets": "npm:^7.25.9" - "@babel/helper-module-transforms": "npm:^7.25.9" - "@babel/helpers": "npm:^7.25.9" - "@babel/parser": "npm:^7.25.9" + "@babel/helper-module-transforms": "npm:^7.26.0" + "@babel/helpers": "npm:^7.26.0" + "@babel/parser": "npm:^7.26.0" "@babel/template": "npm:^7.25.9" "@babel/traverse": "npm:^7.25.9" - "@babel/types": "npm:^7.25.9" + "@babel/types": "npm:^7.26.0" convert-source-map: "npm:^2.0.0" debug: "npm:^4.1.0" gensync: "npm:^1.0.0-beta.2" json5: "npm:^2.2.3" semver: "npm:^6.3.1" - checksum: 10c0/40d3064ebe906f65ed4153a0f4d75c679a19e4d71e425035b7bbe2d292a9167274f1a0d908d4d6c8f484fcddeb10bd91e0c7878fdb3dfad1bb00f6a319ce431d + checksum: 10c0/91de73a7ff5c4049fbc747930aa039300e4d2670c2a91f5aa622f1b4868600fc89b01b6278385fbcd46f9574186fa3d9b376a9e7538e50f8d118ec13cfbcb63e languageName: node linkType: hard -"@babel/generator@npm:^7.25.9": +"@babel/generator@npm:^7.25.9, @babel/generator@npm:^7.26.0": version: 7.26.0 resolution: "@babel/generator@npm:7.26.0" dependencies: @@ -193,7 +193,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.25.9": +"@babel/helper-module-transforms@npm:^7.25.9, @babel/helper-module-transforms@npm:^7.26.0": version: 7.26.0 resolution: "@babel/helper-module-transforms@npm:7.26.0" dependencies: @@ -300,7 +300,7 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.25.9": +"@babel/helpers@npm:^7.26.0": version: 7.26.0 resolution: "@babel/helpers@npm:7.26.0" dependencies: @@ -389,7 +389,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-assertions@npm:^7.25.9": +"@babel/plugin-syntax-import-assertions@npm:^7.26.0": version: 7.26.0 resolution: "@babel/plugin-syntax-import-assertions@npm:7.26.0" dependencies: @@ -400,7 +400,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-attributes@npm:^7.25.9": +"@babel/plugin-syntax-import-attributes@npm:^7.26.0": version: 7.26.0 resolution: "@babel/plugin-syntax-import-attributes@npm:7.26.0" dependencies: @@ -494,7 +494,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-class-static-block@npm:^7.25.9": +"@babel/plugin-transform-class-static-block@npm:^7.26.0": version: 7.26.0 resolution: "@babel/plugin-transform-class-static-block@npm:7.26.0" dependencies: @@ -886,6 +886,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-regexp-modifiers@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/plugin-transform-regexp-modifiers@npm:7.26.0" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/4abc1db6c964efafc7a927cda814c7275275afa4b530483e0936fd614de23cb5802f7ca43edaa402008a723d4e7eac282b6f5283aa2eeb3b27da6d6c1dd7f8ed + languageName: node + linkType: hard + "@babel/plugin-transform-reserved-words@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-reserved-words@npm:7.25.9" @@ -1000,11 +1012,11 @@ __metadata: languageName: node linkType: hard -"@babel/preset-env@npm:7.25.9": - version: 7.25.9 - resolution: "@babel/preset-env@npm:7.25.9" +"@babel/preset-env@npm:7.26.0": + version: 7.26.0 + resolution: "@babel/preset-env@npm:7.26.0" dependencies: - "@babel/compat-data": "npm:^7.25.9" + "@babel/compat-data": "npm:^7.26.0" "@babel/helper-compilation-targets": "npm:^7.25.9" "@babel/helper-plugin-utils": "npm:^7.25.9" "@babel/helper-validator-option": "npm:^7.25.9" @@ -1014,8 +1026,8 @@ __metadata: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.25.9" "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.25.9" "@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-import-assertions": "npm:^7.25.9" - "@babel/plugin-syntax-import-attributes": "npm:^7.25.9" + "@babel/plugin-syntax-import-assertions": "npm:^7.26.0" + "@babel/plugin-syntax-import-attributes": "npm:^7.26.0" "@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6" "@babel/plugin-transform-arrow-functions": "npm:^7.25.9" "@babel/plugin-transform-async-generator-functions": "npm:^7.25.9" @@ -1023,7 +1035,7 @@ __metadata: "@babel/plugin-transform-block-scoped-functions": "npm:^7.25.9" "@babel/plugin-transform-block-scoping": "npm:^7.25.9" "@babel/plugin-transform-class-properties": "npm:^7.25.9" - "@babel/plugin-transform-class-static-block": "npm:^7.25.9" + "@babel/plugin-transform-class-static-block": "npm:^7.26.0" "@babel/plugin-transform-classes": "npm:^7.25.9" "@babel/plugin-transform-computed-properties": "npm:^7.25.9" "@babel/plugin-transform-destructuring": "npm:^7.25.9" @@ -1056,6 +1068,7 @@ __metadata: "@babel/plugin-transform-private-property-in-object": "npm:^7.25.9" "@babel/plugin-transform-property-literals": "npm:^7.25.9" "@babel/plugin-transform-regenerator": "npm:^7.25.9" + "@babel/plugin-transform-regexp-modifiers": "npm:^7.26.0" "@babel/plugin-transform-reserved-words": "npm:^7.25.9" "@babel/plugin-transform-shorthand-properties": "npm:^7.25.9" "@babel/plugin-transform-spread": "npm:^7.25.9" @@ -1074,7 +1087,7 @@ __metadata: semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/b8b391e3fe69918a2a4f4366034113bd6f57c9748974dbe1b807a728bc41434f1e003cb4204ca63a2a01cbb7c05ba96036261b64756243374374353931d346e6 + checksum: 10c0/26e19dc407cfa1c5166be638b4c54239d084fe15d8d7e6306d8c6dc7bc1decc51070a8dcf28352c1a2feeefbe52a06d193a12e302327ad5f529583df75fb7a26 languageName: node linkType: hard @@ -4324,8 +4337,8 @@ __metadata: resolution: "jenkins-ui@workspace:." dependencies: "@babel/cli": "npm:7.25.9" - "@babel/core": "npm:7.25.9" - "@babel/preset-env": "npm:7.25.9" + "@babel/core": "npm:7.26.0" + "@babel/preset-env": "npm:7.26.0" "@eslint/js": "npm:9.13.0" babel-loader: "npm:9.2.1" clean-webpack-plugin: "npm:4.0.0" From 0ccfa49acb00ba11b3d4454545170788e4069c25 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 27 Oct 2024 08:25:28 +0000 Subject: [PATCH 1147/1216] Update dependency sass to v1.80.4 (#9919) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 892fffca567d..8a1a9347492a 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "postcss-preset-env": "10.0.7", "postcss-scss": "4.0.9", "prettier": "3.3.3", - "sass": "1.80.3", + "sass": "1.80.4", "sass-loader": "16.0.2", "style-loader": "4.0.0", "stylelint": "16.10.0", diff --git a/yarn.lock b/yarn.lock index 0bb6566c1c40..dc03156d77e9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4359,7 +4359,7 @@ __metadata: postcss-preset-env: "npm:10.0.7" postcss-scss: "npm:4.0.9" prettier: "npm:3.3.3" - sass: "npm:1.80.3" + sass: "npm:1.80.4" sass-loader: "npm:16.0.2" sortablejs: "npm:1.15.3" style-loader: "npm:4.0.0" @@ -6336,9 +6336,9 @@ __metadata: languageName: node linkType: hard -"sass@npm:1.80.3": - version: 1.80.3 - resolution: "sass@npm:1.80.3" +"sass@npm:1.80.4": + version: 1.80.4 + resolution: "sass@npm:1.80.4" dependencies: "@parcel/watcher": "npm:^2.4.1" chokidar: "npm:^4.0.0" @@ -6346,7 +6346,7 @@ __metadata: source-map-js: "npm:>=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 10c0/fa08043fc36b854717b6eaf6247ee11341d0aff5e17a645965071866bd677930c9c9467d82ed5a4a666d7897a82be8a61427cd81b808e6b9e2d3b32cf278bebd + checksum: 10c0/58ca0f2d10720cde6621ee62f4bdbb537ea2ac572c565d5f02309f8271a5e1e880ad8c163b933e52b22b3dc0550973fb5a6033a500248e6a0d89dd050c1743cf languageName: node linkType: hard From 0a1186061f43b12be78e5148e2b3c8756356d408 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 27 Oct 2024 08:27:26 +0000 Subject: [PATCH 1148/1216] Update dependency postcss-preset-env to v10.0.8 (#9918) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 523 ++++++++++++++++++++++++++------------------------- 2 files changed, 272 insertions(+), 253 deletions(-) diff --git a/package.json b/package.json index 8a1a9347492a..7d94e1548f40 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "mini-css-extract-plugin": "2.9.1", "postcss": "8.4.47", "postcss-loader": "8.1.1", - "postcss-preset-env": "10.0.7", + "postcss-preset-env": "10.0.8", "postcss-scss": "4.0.9", "prettier": "3.3.3", "sass": "1.80.4", diff --git a/yarn.lock b/yarn.lock index dc03156d77e9..f23f92f1318e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1149,13 +1149,13 @@ __metadata: languageName: node linkType: hard -"@csstools/cascade-layer-name-parser@npm:^2.0.2": - version: 2.0.2 - resolution: "@csstools/cascade-layer-name-parser@npm:2.0.2" +"@csstools/cascade-layer-name-parser@npm:^2.0.3": + version: 2.0.3 + resolution: "@csstools/cascade-layer-name-parser@npm:2.0.3" peerDependencies: - "@csstools/css-parser-algorithms": ^3.0.2 + "@csstools/css-parser-algorithms": ^3.0.3 "@csstools/css-tokenizer": ^3.0.2 - checksum: 10c0/2cc840445328400bb3e1e4186e6081e6519a23d9abde36a16c95892b6ad75155b3af3410d79fdda1c53a068384f970cabff4b5f5ba6867578168cbd3419016c8 + checksum: 10c0/a0f0d6c94122d0a82b0da94ee2619915a9e6e98211de6e1f28afebe34332a29cab1b7905a34b6e5c1df30a125df9f9860ce5fa960c676484417d4ef2c4db4757 languageName: node linkType: hard @@ -1166,35 +1166,35 @@ __metadata: languageName: node linkType: hard -"@csstools/css-calc@npm:^2.0.2": - version: 2.0.2 - resolution: "@csstools/css-calc@npm:2.0.2" +"@csstools/css-calc@npm:^2.0.3": + version: 2.0.3 + resolution: "@csstools/css-calc@npm:2.0.3" peerDependencies: - "@csstools/css-parser-algorithms": ^3.0.2 + "@csstools/css-parser-algorithms": ^3.0.3 "@csstools/css-tokenizer": ^3.0.2 - checksum: 10c0/b36e655b4abc8ea39b300725e33cd43b1875d759dd60bee8155bf7841065615a7f24cf53199382e30aa10bb137f64021043e4af7e11b7199b674a6e6cf3ccd01 + checksum: 10c0/a3dacda66bde67edab0f2384e85462dcd46b5bb62bc2a6396f0577a006d9ad59eae270353cbd6fe1a5f7081d0546fe4b1fd9b2df242758da54ec8b7022296570 languageName: node linkType: hard -"@csstools/css-color-parser@npm:^3.0.3": - version: 3.0.3 - resolution: "@csstools/css-color-parser@npm:3.0.3" +"@csstools/css-color-parser@npm:^3.0.4": + version: 3.0.4 + resolution: "@csstools/css-color-parser@npm:3.0.4" dependencies: "@csstools/color-helpers": "npm:^5.0.1" - "@csstools/css-calc": "npm:^2.0.2" + "@csstools/css-calc": "npm:^2.0.3" peerDependencies: - "@csstools/css-parser-algorithms": ^3.0.2 + "@csstools/css-parser-algorithms": ^3.0.3 "@csstools/css-tokenizer": ^3.0.2 - checksum: 10c0/02367ffc222254132c47f9cbc856f65fe0b81ee4a5e7381251b95c4064138b5ed99a5e5a79c0c8689f9e75e3d900f94773258a161a97f467c3f0420838c10e04 + checksum: 10c0/8f05264254d3768e45e46ce10e9355fe8ca0f6e4d2f648a22572f46c6d05b2378c37c2e5d970ed3b7bdfa0b152ea2af0c56a0556249bd85973aee9db7b091aa7 languageName: node linkType: hard -"@csstools/css-parser-algorithms@npm:^3.0.1, @csstools/css-parser-algorithms@npm:^3.0.2": - version: 3.0.2 - resolution: "@csstools/css-parser-algorithms@npm:3.0.2" +"@csstools/css-parser-algorithms@npm:^3.0.1, @csstools/css-parser-algorithms@npm:^3.0.3": + version: 3.0.3 + resolution: "@csstools/css-parser-algorithms@npm:3.0.3" peerDependencies: "@csstools/css-tokenizer": ^3.0.2 - checksum: 10c0/246afbf518ee9eaa24ed7f083360eb66884f1172fd4f8c663bff8c6099de2a8abd1e2a31d5b6fe42e010277d238469d780cff62bc7fdc6a52e7a90626b8924dc + checksum: 10c0/c1e634384affb10c3726a36f090867247005a2a470cb223de88debeab07921b78c0e7875e7847d90949c2b0ba88a290c71565f1839f7739c21a5bf1c870e137d languageName: node linkType: hard @@ -1215,82 +1215,82 @@ __metadata: languageName: node linkType: hard -"@csstools/media-query-list-parser@npm:^4.0.0": - version: 4.0.0 - resolution: "@csstools/media-query-list-parser@npm:4.0.0" +"@csstools/media-query-list-parser@npm:^4.0.1": + version: 4.0.1 + resolution: "@csstools/media-query-list-parser@npm:4.0.1" peerDependencies: - "@csstools/css-parser-algorithms": ^3.0.2 + "@csstools/css-parser-algorithms": ^3.0.3 "@csstools/css-tokenizer": ^3.0.2 - checksum: 10c0/416417bcfd84c18a2df8dc77f31c87830e151dc20530fe7f0d8f13a0848b1a9090858abdf7792d82bf2edb41ddedb7b57b34eb78b68b5c10755ae02c019e496a + checksum: 10c0/037f57520b6ca7d58ba1d71a477bd99bdbe3a6d8e7b972ed0f436d649e574f5b429e54fc47d0272daa2ac24ffb819bd9d260a90e154c4a265b8ee4d1cfb1d279 languageName: node linkType: hard -"@csstools/postcss-cascade-layers@npm:^5.0.0": - version: 5.0.0 - resolution: "@csstools/postcss-cascade-layers@npm:5.0.0" +"@csstools/postcss-cascade-layers@npm:^5.0.1": + version: 5.0.1 + resolution: "@csstools/postcss-cascade-layers@npm:5.0.1" dependencies: - "@csstools/selector-specificity": "npm:^4.0.0" - postcss-selector-parser: "npm:^6.1.0" + "@csstools/selector-specificity": "npm:^5.0.0" + postcss-selector-parser: "npm:^7.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/b608c69c12671682676598e451dcd79bfc6f5030a4e17b4d1bf9659e531f1daf03526be023f9aafdc952ecc87c87b04f379a763309e3eadb2140572cd4aa5b60 + checksum: 10c0/5cc3c6f220d9216f7ab16e716a20d6db845f127c917521e6236342bfa871accd63eb662a04c1e24a28e396412dcb47b1c4abccc490b88e4010cd704d14a702f1 languageName: node linkType: hard -"@csstools/postcss-color-function@npm:^4.0.3": - version: 4.0.3 - resolution: "@csstools/postcss-color-function@npm:4.0.3" +"@csstools/postcss-color-function@npm:^4.0.4": + version: 4.0.4 + resolution: "@csstools/postcss-color-function@npm:4.0.4" dependencies: - "@csstools/css-color-parser": "npm:^3.0.3" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^3.0.4" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/c994660ca0e2652755d9ad181c8cb46a07220c972086c97c843fa9bacf690be10c642770f898aeec4acc47c2b718dfc7372107285a678361f34d84d9e9c11e0c + checksum: 10c0/e7735c6d7c84f039c84dc1b180410aa4db7c404d55477c2e7872bc8306a3150bf37883583ec080ebd8b40b765f700cc78892d61dc167578f76e324543d551c04 languageName: node linkType: hard -"@csstools/postcss-color-mix-function@npm:^3.0.3": - version: 3.0.3 - resolution: "@csstools/postcss-color-mix-function@npm:3.0.3" +"@csstools/postcss-color-mix-function@npm:^3.0.4": + version: 3.0.4 + resolution: "@csstools/postcss-color-mix-function@npm:3.0.4" dependencies: - "@csstools/css-color-parser": "npm:^3.0.3" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^3.0.4" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/4ba358eb9030fc485bfe2922d897eeb712725762cc399eaba60ba665c84dc3e56a4d5a52dfb320093c0b217d32fedb9b5197fa45738cade53d9afcbefdadf04f + checksum: 10c0/3e01f04853e49c9f69ee0538b817209b630649844039ee5b195cfbae94d41cf6e0d8a50a3d02dbe066f84855eefa1b7047f6750e4744858519978468577e567f languageName: node linkType: hard -"@csstools/postcss-content-alt-text@npm:^2.0.2": - version: 2.0.2 - resolution: "@csstools/postcss-content-alt-text@npm:2.0.2" +"@csstools/postcss-content-alt-text@npm:^2.0.3": + version: 2.0.3 + resolution: "@csstools/postcss-content-alt-text@npm:2.0.3" dependencies: - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/e52d40f6567b9b23b32a6c40f9b2a74d57f99a9921b4cae015f51f72453474236c760bb13120682f8815698a615e0ad7bed22314c29dca89c34b5480d83a7a6d + checksum: 10c0/0389292a1ba11483f58db1bdd38cc774b0ec18c73f03d1db5f4a1f38edc861bb8b8d750b5c5b3615a98aaf995c0464dcfd6db5421888be0f868548c69455b5b3 languageName: node linkType: hard -"@csstools/postcss-exponential-functions@npm:^2.0.2": - version: 2.0.2 - resolution: "@csstools/postcss-exponential-functions@npm:2.0.2" +"@csstools/postcss-exponential-functions@npm:^2.0.3": + version: 2.0.3 + resolution: "@csstools/postcss-exponential-functions@npm:2.0.3" dependencies: - "@csstools/css-calc": "npm:^2.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-calc": "npm:^2.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" peerDependencies: postcss: ^8.4 - checksum: 10c0/034ff89089872f63a6b00bda670c5ff11361babd221ed3e441dde969a718059e5d44ab0ed331868f137bb205331b808ecbcc4cb641d5c945238ebca28aa3ed59 + checksum: 10c0/690ac6c5ec72e085160401100cc8465a040fd70d59efadf61ef767094edac28bbb2653f53ea7cfa47d8220d0be0b9e23c3e3c2b80d9e93ad07b1db8031163d70 languageName: node linkType: hard @@ -1306,46 +1306,46 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-gamut-mapping@npm:^2.0.3": - version: 2.0.3 - resolution: "@csstools/postcss-gamut-mapping@npm:2.0.3" +"@csstools/postcss-gamut-mapping@npm:^2.0.4": + version: 2.0.4 + resolution: "@csstools/postcss-gamut-mapping@npm:2.0.4" dependencies: - "@csstools/css-color-parser": "npm:^3.0.3" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^3.0.4" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" peerDependencies: postcss: ^8.4 - checksum: 10c0/21f5708f63e9c3b7603f8b72b5f288e0a021e9710a6abf4aaa713ff4d04bae057d1861e1f28d7670ea39ba463ac04f1507876d4a11178934e7cc7a1c6a780084 + checksum: 10c0/60c6ff13cc71a0cda7ce184fa8b42924975f2bd05e3bc096059de853ae01d48e36f27d02d7e6286d9e8c4eb4dfd526f7c302ff51be19c5f7949dd6079915a3a9 languageName: node linkType: hard -"@csstools/postcss-gradients-interpolation-method@npm:^5.0.3": - version: 5.0.3 - resolution: "@csstools/postcss-gradients-interpolation-method@npm:5.0.3" +"@csstools/postcss-gradients-interpolation-method@npm:^5.0.4": + version: 5.0.4 + resolution: "@csstools/postcss-gradients-interpolation-method@npm:5.0.4" dependencies: - "@csstools/css-color-parser": "npm:^3.0.3" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^3.0.4" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/062d27148438309c940a1973bfc7d42a06caa9397bf2382c7a61979f5be3d6f3fae1bc8ddf94d2dd8e6c807e0530a9e76179510266aaddc439677bf79447a765 + checksum: 10c0/3b6aa4404851be09a083f35b596acc7e3f74f525386dcd2887720438638ca1893f79e699e5dad0e3a35487cb9527e08d0dcd29f1331f87800f53c13423321d6e languageName: node linkType: hard -"@csstools/postcss-hwb-function@npm:^4.0.3": - version: 4.0.3 - resolution: "@csstools/postcss-hwb-function@npm:4.0.3" +"@csstools/postcss-hwb-function@npm:^4.0.4": + version: 4.0.4 + resolution: "@csstools/postcss-hwb-function@npm:4.0.4" dependencies: - "@csstools/css-color-parser": "npm:^3.0.3" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^3.0.4" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/faf2bfbafeec765391e37c7a5cbc7b4647d9ab1ffa51e922c7dfffa545c3d436d15604dfdfb9d7684e760042e62bb42e0243dd4ebd8c3c14694a9f7be4e57b30 + checksum: 10c0/2460cc7e6324f0793d12976de175ff33344c3410ff7a04ca8a5ce0560ee3354d1d8034f9f07c0759c2b7e222a4681d02298f6a29c2a326c76b33060830da83b4 languageName: node linkType: hard @@ -1371,29 +1371,29 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-is-pseudo-class@npm:^5.0.0": - version: 5.0.0 - resolution: "@csstools/postcss-is-pseudo-class@npm:5.0.0" +"@csstools/postcss-is-pseudo-class@npm:^5.0.1": + version: 5.0.1 + resolution: "@csstools/postcss-is-pseudo-class@npm:5.0.1" dependencies: - "@csstools/selector-specificity": "npm:^4.0.0" - postcss-selector-parser: "npm:^6.1.0" + "@csstools/selector-specificity": "npm:^5.0.0" + postcss-selector-parser: "npm:^7.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/738eb84728b24bfe19ca06ccf6ff773a423552df2f31c87704ce79da4abfd2ccf2a45d5d6d3e11e71e42cc3d92eb35a856209b9cd6116c879acf15ac75454683 + checksum: 10c0/3aaab18ebb2dcf5565efa79813eaa987d40de1e086765358524392a09631c68ad1ee952e6aff8f42513b2c18ab84891787e065fe287f696128498fc641520b6c languageName: node linkType: hard -"@csstools/postcss-light-dark-function@npm:^2.0.5": - version: 2.0.5 - resolution: "@csstools/postcss-light-dark-function@npm:2.0.5" +"@csstools/postcss-light-dark-function@npm:^2.0.6": + version: 2.0.6 + resolution: "@csstools/postcss-light-dark-function@npm:2.0.6" dependencies: - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/80635ee312d2a8f42aa5ce6792f1dc4a71199c384c66a3270d37e998d96db55beaa6836d689cda3b7e4828227960582fae04659ba5e4e0f64fd4543cbf15c6ab + checksum: 10c0/f3e93b58a23f0f01c9d032a892070a18e3393e60997e1d2b57c5bddb2cb36f7ee6cbaeaeb3d531b065a545a03e54d86567d34b45eddf85ed48ac360eb4ab66cd languageName: node linkType: hard @@ -1447,30 +1447,30 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-media-minmax@npm:^2.0.2": - version: 2.0.2 - resolution: "@csstools/postcss-media-minmax@npm:2.0.2" +"@csstools/postcss-media-minmax@npm:^2.0.3": + version: 2.0.3 + resolution: "@csstools/postcss-media-minmax@npm:2.0.3" dependencies: - "@csstools/css-calc": "npm:^2.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-calc": "npm:^2.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" - "@csstools/media-query-list-parser": "npm:^4.0.0" + "@csstools/media-query-list-parser": "npm:^4.0.1" peerDependencies: postcss: ^8.4 - checksum: 10c0/83cf10742884fca3baa7ae26e2cb34123ce5a022622390566c139b4587ea8583fab00acbb85545786b36398e2201d2a94301e0fae805e55f375f1b5c38f67ce8 + checksum: 10c0/87c1ed6fe6ed487125e383ae7bc356ba0f68885c41cd129b85c323af69255031a8ac7b2e994d4f9b6b65d6a9f6833aeb1301ca230b592547825aedb3e3acab4b languageName: node linkType: hard -"@csstools/postcss-media-queries-aspect-ratio-number-values@npm:^3.0.2": - version: 3.0.2 - resolution: "@csstools/postcss-media-queries-aspect-ratio-number-values@npm:3.0.2" +"@csstools/postcss-media-queries-aspect-ratio-number-values@npm:^3.0.3": + version: 3.0.3 + resolution: "@csstools/postcss-media-queries-aspect-ratio-number-values@npm:3.0.3" dependencies: - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" - "@csstools/media-query-list-parser": "npm:^4.0.0" + "@csstools/media-query-list-parser": "npm:^4.0.1" peerDependencies: postcss: ^8.4 - checksum: 10c0/3ac4073d2e958bfb24ae45f673070dd805f0fcf07bc8d00a9a98f596d1096e7be282c8d8e87df3abde90f33fcbe2c7705e972b8c1a58e43ec44729f470b76096 + checksum: 10c0/3bbadd5c79ff2102b4a2e0f107d7f3cbb89d2840b935915531d0a1bfc711d58386e6e234fccb9b4abb37e48f07cdfaa4dd66b5c795dfac9e317fa8b5cfd38e06 languageName: node linkType: hard @@ -1497,18 +1497,18 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-oklab-function@npm:^4.0.3": - version: 4.0.3 - resolution: "@csstools/postcss-oklab-function@npm:4.0.3" +"@csstools/postcss-oklab-function@npm:^4.0.4": + version: 4.0.4 + resolution: "@csstools/postcss-oklab-function@npm:4.0.4" dependencies: - "@csstools/css-color-parser": "npm:^3.0.3" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^3.0.4" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/650bcb4f664308972588a8f789f806d63c4069e2e008cfc3b5c80bf9df992c62972dce279b8f434c7f78823e97095942ee4f0e37bc549258887213e72acb7ef8 + checksum: 10c0/4fd2a5c22ebaf69053e005d9d009ccb41b6879f0246677159bfb6a28208e90af857446c443d34fe3efdaf50bccdd67b16fcd0c1e7c52961396a48bd84e45311f languageName: node linkType: hard @@ -1523,42 +1523,42 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-relative-color-syntax@npm:^3.0.3": - version: 3.0.3 - resolution: "@csstools/postcss-relative-color-syntax@npm:3.0.3" +"@csstools/postcss-relative-color-syntax@npm:^3.0.4": + version: 3.0.4 + resolution: "@csstools/postcss-relative-color-syntax@npm:3.0.4" dependencies: - "@csstools/css-color-parser": "npm:^3.0.3" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^3.0.4" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/c241fe6b725d775f6d2085be1dff3868d189b176fa91ab1eb1133e30e30c8151bded4e50d17a845edd0bdd0a7adf9e8883cb2634fea3394872591fe9ad2a7e86 + checksum: 10c0/f2ae6f9053e976e2431d08bdc5aa40ca5242754e23370abdfd7b6087d7ed56037e46911d1be801cf7e760aa8aee94bcab6a46f4f68696cf6befacf707c1534b7 languageName: node linkType: hard -"@csstools/postcss-scope-pseudo-class@npm:^4.0.0": - version: 4.0.0 - resolution: "@csstools/postcss-scope-pseudo-class@npm:4.0.0" +"@csstools/postcss-scope-pseudo-class@npm:^4.0.1": + version: 4.0.1 + resolution: "@csstools/postcss-scope-pseudo-class@npm:4.0.1" dependencies: - postcss-selector-parser: "npm:^6.1.0" + postcss-selector-parser: "npm:^7.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/a6f562df1417c6f257c0fec95babf4cea99a25622573a2dbcfb416e2fcb8e1e53561127f5e7277d19fcb2a4603bdbc64dd6a4c416429623503c604050c99229a + checksum: 10c0/6a0ca50fae655f4498200d1ce298ca794c85fbe2e3fd5d6419843254f055df5007a973e09b5f1e78e376c02b54278e411516c8d824300c68b265d3e5b311d7ee languageName: node linkType: hard -"@csstools/postcss-stepped-value-functions@npm:^4.0.2": - version: 4.0.2 - resolution: "@csstools/postcss-stepped-value-functions@npm:4.0.2" +"@csstools/postcss-stepped-value-functions@npm:^4.0.3": + version: 4.0.3 + resolution: "@csstools/postcss-stepped-value-functions@npm:4.0.3" dependencies: - "@csstools/css-calc": "npm:^2.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-calc": "npm:^2.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" peerDependencies: postcss: ^8.4 - checksum: 10c0/444a27d725bc7a8e1554469e8ac69e248ff525b728fbe058523b0f1aefcff80ca707f543d21fead0a22d51603b1669190fb01f0f2dcd599a01768a37e0d62bc3 + checksum: 10c0/31af5a650d4b2de97d3a3ef77e7ad0777b3f013f7463e23455ac31ffc946d2f79f365a1fdead52c7c535176232ab57f6f086ecdbeca1bb0b250161b1302e8c8c languageName: node linkType: hard @@ -1574,16 +1574,16 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-trigonometric-functions@npm:^4.0.2": - version: 4.0.2 - resolution: "@csstools/postcss-trigonometric-functions@npm:4.0.2" +"@csstools/postcss-trigonometric-functions@npm:^4.0.3": + version: 4.0.3 + resolution: "@csstools/postcss-trigonometric-functions@npm:4.0.3" dependencies: - "@csstools/css-calc": "npm:^2.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-calc": "npm:^2.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" peerDependencies: postcss: ^8.4 - checksum: 10c0/eaecb2ea891162e4fcbbccf4f660c99e9e59f21937b70fe6aec3b51441eff2a12c1a2dc13fff426722629a7929919fd866311eaa68d74ee9d1f5387a23502fe2 + checksum: 10c0/a13dd72c00e45e6db16c03e135f1cd1b2b412e83b7681696b49feef3a4c36ab80f5f806f3589d33405e2d14dd0dfb13572ec12007ebe3d294077b0bd3d645b2b languageName: node linkType: hard @@ -1596,12 +1596,12 @@ __metadata: languageName: node linkType: hard -"@csstools/selector-resolve-nested@npm:^2.0.0": - version: 2.0.0 - resolution: "@csstools/selector-resolve-nested@npm:2.0.0" +"@csstools/selector-resolve-nested@npm:^3.0.0": + version: 3.0.0 + resolution: "@csstools/selector-resolve-nested@npm:3.0.0" peerDependencies: - postcss-selector-parser: ^6.1.0 - checksum: 10c0/10516fd1db5e0a3963063caa57d24eeb1d1f69fcb63f0b5aec5d7a44f8b36ff07b1eded3012e8a9b92fc1f484e1a5a9def0cf57d788aa7f944ee79877837cc77 + postcss-selector-parser: ^7.0.0 + checksum: 10c0/2b01c36b3fa81388d5bddd8db962766465d76b021a815c8bb5a48c3a42c530154cc155fc496707ade627dbba6745eb8ecd9fa840c1972133c0f7d8811e0a959d languageName: node linkType: hard @@ -1614,6 +1614,15 @@ __metadata: languageName: node linkType: hard +"@csstools/selector-specificity@npm:^5.0.0": + version: 5.0.0 + resolution: "@csstools/selector-specificity@npm:5.0.0" + peerDependencies: + postcss-selector-parser: ^7.0.0 + checksum: 10c0/186b444cabcdcdeb553bfe021f80c58bfe9ef38dcc444f2b1f34a5aab9be063ab4e753022b2d5792049c041c28cfbb78e4b707ec398459300e402030d35c07eb + languageName: node + linkType: hard + "@csstools/utilities@npm:^2.0.0": version: 2.0.0 resolution: "@csstools/utilities@npm:2.0.0" @@ -2979,14 +2988,14 @@ __metadata: languageName: node linkType: hard -"css-blank-pseudo@npm:^7.0.0": - version: 7.0.0 - resolution: "css-blank-pseudo@npm:7.0.0" +"css-blank-pseudo@npm:^7.0.1": + version: 7.0.1 + resolution: "css-blank-pseudo@npm:7.0.1" dependencies: - postcss-selector-parser: "npm:^6.1.0" + postcss-selector-parser: "npm:^7.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/74c6c0af773a8d2c8c5a53bcfc2b2c06f9c3fd4a8bd756b7aafc102b91a1060b179a4f0aa21475b54685b62bfd9724fee90778dd992b42e0cd3ea3698132af92 + checksum: 10c0/46c3d3a611972fdb0c264db7c0b34fe437bc4300961d11945145cf04962f52a545a6ef55bc8ff4afd82b605bd692b4970f2b54582616dea00441105e725d4618 languageName: node linkType: hard @@ -3006,16 +3015,16 @@ __metadata: languageName: node linkType: hard -"css-has-pseudo@npm:^7.0.0": - version: 7.0.0 - resolution: "css-has-pseudo@npm:7.0.0" +"css-has-pseudo@npm:^7.0.1": + version: 7.0.1 + resolution: "css-has-pseudo@npm:7.0.1" dependencies: - "@csstools/selector-specificity": "npm:^4.0.0" - postcss-selector-parser: "npm:^6.1.0" + "@csstools/selector-specificity": "npm:^5.0.0" + postcss-selector-parser: "npm:^7.0.0" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/2c72602ca9bcdb3afe2cce3b014e7dd17548658904c17560042ebf4bd6727b1ed8706961b1f44bff43bbdb8dc932c30a0b29f536c353df858e300e68e163b872 + checksum: 10c0/13789b08b70169204be786d652190356ace9313099d3656bd2fc38afbdd28f3d9620f0e0b07425480961b7a1ec789794961d0472f205b959d3f64c9a78ce511c languageName: node linkType: hard @@ -3131,10 +3140,10 @@ __metadata: languageName: node linkType: hard -"cssdb@npm:^8.1.1": - version: 8.1.1 - resolution: "cssdb@npm:8.1.1" - checksum: 10c0/d60facfad3bca70e21100fc35b9205cb9d3d0ac642f44f0a687e54bf787f21c43d28ce2d17fcd405f67950fb4709516108fe1f3cb15df570eff1007b5fbbc787 +"cssdb@npm:^8.1.2": + version: 8.1.2 + resolution: "cssdb@npm:8.1.2" + checksum: 10c0/056149e713a78921f56d9ef0cd734577cedb93c27966c3d0eab01956a2aa8d3c260a911766064b57ded8b4d9c55dd5275626cbb022ccd8d2d0b93b53fefd1603 languageName: node linkType: hard @@ -4356,7 +4365,7 @@ __metadata: mini-css-extract-plugin: "npm:2.9.1" postcss: "npm:8.4.47" postcss-loader: "npm:8.1.1" - postcss-preset-env: "npm:10.0.7" + postcss-preset-env: "npm:10.0.8" postcss-scss: "npm:4.0.9" prettier: "npm:3.3.3" sass: "npm:1.80.4" @@ -5276,14 +5285,14 @@ __metadata: languageName: node linkType: hard -"postcss-attribute-case-insensitive@npm:^7.0.0": - version: 7.0.0 - resolution: "postcss-attribute-case-insensitive@npm:7.0.0" +"postcss-attribute-case-insensitive@npm:^7.0.1": + version: 7.0.1 + resolution: "postcss-attribute-case-insensitive@npm:7.0.1" dependencies: - postcss-selector-parser: "npm:^6.1.0" + postcss-selector-parser: "npm:^7.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/ce2a96bc29f59a6113953f1f72bfa2d4d34e54b194ff4d49aad0d548aa738835afaf479f22060a2605952b842f63aeae278b44e41f8f3a05731df28d08e2df97 + checksum: 10c0/48945abe2024e2d2e4c37d30b8c1aaf37af720f24f6a996f7ea7e7ed33621f5c22cf247ed22028c0c922de040c58c0802729bc39b903cb1693f4b63c0b49da34 languageName: node linkType: hard @@ -5310,18 +5319,18 @@ __metadata: languageName: node linkType: hard -"postcss-color-functional-notation@npm:^7.0.3": - version: 7.0.3 - resolution: "postcss-color-functional-notation@npm:7.0.3" +"postcss-color-functional-notation@npm:^7.0.4": + version: 7.0.4 + resolution: "postcss-color-functional-notation@npm:7.0.4" dependencies: - "@csstools/css-color-parser": "npm:^3.0.3" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^3.0.4" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/5e04c81002512c960784043c096bc91ebc76b8fddb9259a2418b0e121eb65042944cc0f78946f6b7e5774ff1fee087849019655e4848af1f88879e3ab9ff7c17 + checksum: 10c0/1e39c47f27610ebf6a6308cfea2904fbe1f157b13654325ada23153a944666722c6132b53dfc7660632406a636479dda68eeb97a246c2e593ad6eed1e9bf838d languageName: node linkType: hard @@ -5375,57 +5384,57 @@ __metadata: languageName: node linkType: hard -"postcss-custom-media@npm:^11.0.3": - version: 11.0.3 - resolution: "postcss-custom-media@npm:11.0.3" +"postcss-custom-media@npm:^11.0.4": + version: 11.0.4 + resolution: "postcss-custom-media@npm:11.0.4" dependencies: - "@csstools/cascade-layer-name-parser": "npm:^2.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/cascade-layer-name-parser": "npm:^2.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" - "@csstools/media-query-list-parser": "npm:^4.0.0" + "@csstools/media-query-list-parser": "npm:^4.0.1" peerDependencies: postcss: ^8.4 - checksum: 10c0/bd3f0cf17d7422385d26afed510dc2acebb1d8c25fce13e2bbee1c49cdc7fe95ebe7f50b89ef0a88ebdd5f6826e89d99e26b905881ceff788df655670dba93d8 + checksum: 10c0/31e82e5802f6933a15f5fcf64ff41c8107af9c1d5dcba3c4422a6de3fac77bce9e3dc4ed2b79ae7f6ae460549c5da5a013669af05c1ae21549dbb09b66a9492d languageName: node linkType: hard -"postcss-custom-properties@npm:^14.0.2": - version: 14.0.2 - resolution: "postcss-custom-properties@npm:14.0.2" +"postcss-custom-properties@npm:^14.0.3": + version: 14.0.3 + resolution: "postcss-custom-properties@npm:14.0.3" dependencies: - "@csstools/cascade-layer-name-parser": "npm:^2.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/cascade-layer-name-parser": "npm:^2.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/utilities": "npm:^2.0.0" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/ea2e0cb60c558bb1afb4e601dcc64a38e1b28e5df3e47b83b858fc12d909d0e3453013e6b368fc05a7db7098ffcdc702a30a92f1a3c0ef67dfb97bf089021f1a + checksum: 10c0/878ffd171ab9bbbba711930cf1b5bd48a12779e3b45d69f41366c2f65d84518f9338a92a277c0e390518c9e12272e06892cdc6575783bcdecfa6d26ebde3d043 languageName: node linkType: hard -"postcss-custom-selectors@npm:^8.0.2": - version: 8.0.2 - resolution: "postcss-custom-selectors@npm:8.0.2" +"postcss-custom-selectors@npm:^8.0.3": + version: 8.0.3 + resolution: "postcss-custom-selectors@npm:8.0.3" dependencies: - "@csstools/cascade-layer-name-parser": "npm:^2.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/cascade-layer-name-parser": "npm:^2.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" - postcss-selector-parser: "npm:^6.1.0" + postcss-selector-parser: "npm:^7.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/81673ffb0874f63c0f5e14315a5808259ec80ae8452aaf10d28112d30a9aaabbf61d13edb02f8be2965f44b943968c7eda051a1693da436ef157e77fcff0d752 + checksum: 10c0/3acdada43e385c23130f1dde41b189acc7739e5bbd14751ae28b2bd97b0d97f30c2a53da4f9558d108a893cc48717f76b28395a9ff38dcbbe3c3a1721ee4a68a languageName: node linkType: hard -"postcss-dir-pseudo-class@npm:^9.0.0": - version: 9.0.0 - resolution: "postcss-dir-pseudo-class@npm:9.0.0" +"postcss-dir-pseudo-class@npm:^9.0.1": + version: 9.0.1 + resolution: "postcss-dir-pseudo-class@npm:9.0.1" dependencies: - postcss-selector-parser: "npm:^6.1.0" + postcss-selector-parser: "npm:^7.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/debae71bf508c0e494ebb1892ce6b3c1c4eeb6b23231180151a93920a12fec771815510cdec54db54605e090ae56af9f07c68ef6a61260d0c837adc719f9e1e4 + checksum: 10c0/da9d3387648c5c3161a653d354c8f3e70a299108df3977e8aa65cf10793e4dd58a2711b3426cd63716245b13584ca8d95adcd6e10e3c9adbc61d08743e2d8690 languageName: node linkType: hard @@ -5480,25 +5489,25 @@ __metadata: languageName: node linkType: hard -"postcss-focus-visible@npm:^10.0.0": - version: 10.0.0 - resolution: "postcss-focus-visible@npm:10.0.0" +"postcss-focus-visible@npm:^10.0.1": + version: 10.0.1 + resolution: "postcss-focus-visible@npm:10.0.1" dependencies: - postcss-selector-parser: "npm:^6.1.0" + postcss-selector-parser: "npm:^7.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/b86b825bac597092b300127c2686c0669ce0766165716ecda42f298f21ca69dda721e44917732cbcb2611a4ab650f1231bf8c5d4d07c9daefef815329251ae8a + checksum: 10c0/c5ecc8536a708a49a99d0abd68a88a160664e6c832c808db8edd9f0221e7017a258daa87e49daf2cb098cb037005d46cf492403c8c9c92ad8835d30adaccf665 languageName: node linkType: hard -"postcss-focus-within@npm:^9.0.0": - version: 9.0.0 - resolution: "postcss-focus-within@npm:9.0.0" +"postcss-focus-within@npm:^9.0.1": + version: 9.0.1 + resolution: "postcss-focus-within@npm:9.0.1" dependencies: - postcss-selector-parser: "npm:^6.1.0" + postcss-selector-parser: "npm:^7.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/1d6f1b4f4d12e23a2824f394652d520942f00fd582d3016c933a492fe0ba38aaf26bc1855576878aaeaeda1d6fc38da39bb51e8e6470c50ef03f3ea9a286b3d1 + checksum: 10c0/d6ab49d2a7f33485a9e137dc77ec92c5619a3ec92e1e672734fc604853ff1f3c0c189085c12461614be4fcb03ea0347d91791a45986a18d50b5228d161eda57a languageName: node linkType: hard @@ -5532,18 +5541,18 @@ __metadata: languageName: node linkType: hard -"postcss-lab-function@npm:^7.0.3": - version: 7.0.3 - resolution: "postcss-lab-function@npm:7.0.3" +"postcss-lab-function@npm:^7.0.4": + version: 7.0.4 + resolution: "postcss-lab-function@npm:7.0.4" dependencies: - "@csstools/css-color-parser": "npm:^3.0.3" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^3.0.4" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/c50a73a9ed54b4194998c4627599d1f42074235f572edbbcdb0e00717f3ae2121dc8378d917792b281860c5650a617d923823da6f395515f610b5760d115354d + checksum: 10c0/79ce3cc20484aef0e0bbc2d18c8f91d7362226a3db52f06a931ac8e1c58ffbc60876c6439f364093e5f16ef92260a420230cfb2a9e7b95c6c11e6f7d57626260 languageName: node linkType: hard @@ -5697,16 +5706,16 @@ __metadata: languageName: node linkType: hard -"postcss-nesting@npm:^13.0.0": - version: 13.0.0 - resolution: "postcss-nesting@npm:13.0.0" +"postcss-nesting@npm:^13.0.1": + version: 13.0.1 + resolution: "postcss-nesting@npm:13.0.1" dependencies: - "@csstools/selector-resolve-nested": "npm:^2.0.0" - "@csstools/selector-specificity": "npm:^4.0.0" - postcss-selector-parser: "npm:^6.1.0" + "@csstools/selector-resolve-nested": "npm:^3.0.0" + "@csstools/selector-specificity": "npm:^5.0.0" + postcss-selector-parser: "npm:^7.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/b82a3c7010f7c6097bd3f3fe6c03f3f3af9a63a58e255f120dadd506a0ea9444aeeaba994f2a3fa34fb26e666dc72032edf5786c5fbdade790b02ad07d91ef95 + checksum: 10c0/549307c272cdd4cb5105d8fbcd582f15a1cb74e5bba240b05b27f77fe0422730be966699a49a9ad15fd9d1bc551c1edbaefb21a69686a9b131b585dbc9d90ebf languageName: node linkType: hard @@ -5860,85 +5869,85 @@ __metadata: languageName: node linkType: hard -"postcss-preset-env@npm:10.0.7": - version: 10.0.7 - resolution: "postcss-preset-env@npm:10.0.7" +"postcss-preset-env@npm:10.0.8": + version: 10.0.8 + resolution: "postcss-preset-env@npm:10.0.8" dependencies: - "@csstools/postcss-cascade-layers": "npm:^5.0.0" - "@csstools/postcss-color-function": "npm:^4.0.3" - "@csstools/postcss-color-mix-function": "npm:^3.0.3" - "@csstools/postcss-content-alt-text": "npm:^2.0.2" - "@csstools/postcss-exponential-functions": "npm:^2.0.2" + "@csstools/postcss-cascade-layers": "npm:^5.0.1" + "@csstools/postcss-color-function": "npm:^4.0.4" + "@csstools/postcss-color-mix-function": "npm:^3.0.4" + "@csstools/postcss-content-alt-text": "npm:^2.0.3" + "@csstools/postcss-exponential-functions": "npm:^2.0.3" "@csstools/postcss-font-format-keywords": "npm:^4.0.0" - "@csstools/postcss-gamut-mapping": "npm:^2.0.3" - "@csstools/postcss-gradients-interpolation-method": "npm:^5.0.3" - "@csstools/postcss-hwb-function": "npm:^4.0.3" + "@csstools/postcss-gamut-mapping": "npm:^2.0.4" + "@csstools/postcss-gradients-interpolation-method": "npm:^5.0.4" + "@csstools/postcss-hwb-function": "npm:^4.0.4" "@csstools/postcss-ic-unit": "npm:^4.0.0" "@csstools/postcss-initial": "npm:^2.0.0" - "@csstools/postcss-is-pseudo-class": "npm:^5.0.0" - "@csstools/postcss-light-dark-function": "npm:^2.0.5" + "@csstools/postcss-is-pseudo-class": "npm:^5.0.1" + "@csstools/postcss-light-dark-function": "npm:^2.0.6" "@csstools/postcss-logical-float-and-clear": "npm:^3.0.0" "@csstools/postcss-logical-overflow": "npm:^2.0.0" "@csstools/postcss-logical-overscroll-behavior": "npm:^2.0.0" "@csstools/postcss-logical-resize": "npm:^3.0.0" "@csstools/postcss-logical-viewport-units": "npm:^3.0.2" - "@csstools/postcss-media-minmax": "npm:^2.0.2" - "@csstools/postcss-media-queries-aspect-ratio-number-values": "npm:^3.0.2" + "@csstools/postcss-media-minmax": "npm:^2.0.3" + "@csstools/postcss-media-queries-aspect-ratio-number-values": "npm:^3.0.3" "@csstools/postcss-nested-calc": "npm:^4.0.0" "@csstools/postcss-normalize-display-values": "npm:^4.0.0" - "@csstools/postcss-oklab-function": "npm:^4.0.3" + "@csstools/postcss-oklab-function": "npm:^4.0.4" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" - "@csstools/postcss-relative-color-syntax": "npm:^3.0.3" - "@csstools/postcss-scope-pseudo-class": "npm:^4.0.0" - "@csstools/postcss-stepped-value-functions": "npm:^4.0.2" + "@csstools/postcss-relative-color-syntax": "npm:^3.0.4" + "@csstools/postcss-scope-pseudo-class": "npm:^4.0.1" + "@csstools/postcss-stepped-value-functions": "npm:^4.0.3" "@csstools/postcss-text-decoration-shorthand": "npm:^4.0.1" - "@csstools/postcss-trigonometric-functions": "npm:^4.0.2" + "@csstools/postcss-trigonometric-functions": "npm:^4.0.3" "@csstools/postcss-unset-value": "npm:^4.0.0" autoprefixer: "npm:^10.4.19" browserslist: "npm:^4.23.1" - css-blank-pseudo: "npm:^7.0.0" - css-has-pseudo: "npm:^7.0.0" + css-blank-pseudo: "npm:^7.0.1" + css-has-pseudo: "npm:^7.0.1" css-prefers-color-scheme: "npm:^10.0.0" - cssdb: "npm:^8.1.1" - postcss-attribute-case-insensitive: "npm:^7.0.0" + cssdb: "npm:^8.1.2" + postcss-attribute-case-insensitive: "npm:^7.0.1" postcss-clamp: "npm:^4.1.0" - postcss-color-functional-notation: "npm:^7.0.3" + postcss-color-functional-notation: "npm:^7.0.4" postcss-color-hex-alpha: "npm:^10.0.0" postcss-color-rebeccapurple: "npm:^10.0.0" - postcss-custom-media: "npm:^11.0.3" - postcss-custom-properties: "npm:^14.0.2" - postcss-custom-selectors: "npm:^8.0.2" - postcss-dir-pseudo-class: "npm:^9.0.0" + postcss-custom-media: "npm:^11.0.4" + postcss-custom-properties: "npm:^14.0.3" + postcss-custom-selectors: "npm:^8.0.3" + postcss-dir-pseudo-class: "npm:^9.0.1" postcss-double-position-gradients: "npm:^6.0.0" - postcss-focus-visible: "npm:^10.0.0" - postcss-focus-within: "npm:^9.0.0" + postcss-focus-visible: "npm:^10.0.1" + postcss-focus-within: "npm:^9.0.1" postcss-font-variant: "npm:^5.0.0" postcss-gap-properties: "npm:^6.0.0" postcss-image-set-function: "npm:^7.0.0" - postcss-lab-function: "npm:^7.0.3" + postcss-lab-function: "npm:^7.0.4" postcss-logical: "npm:^8.0.0" - postcss-nesting: "npm:^13.0.0" + postcss-nesting: "npm:^13.0.1" postcss-opacity-percentage: "npm:^3.0.0" postcss-overflow-shorthand: "npm:^6.0.0" postcss-page-break: "npm:^3.0.4" postcss-place: "npm:^10.0.0" - postcss-pseudo-class-any-link: "npm:^10.0.0" + postcss-pseudo-class-any-link: "npm:^10.0.1" postcss-replace-overflow-wrap: "npm:^4.0.0" - postcss-selector-not: "npm:^8.0.0" + postcss-selector-not: "npm:^8.0.1" peerDependencies: postcss: ^8.4 - checksum: 10c0/f789000e0504fd827e854bb0feb8b4c218d381314e4d863c5a36df925df412d0844c912952fe27892a320433640aeaff03ee94a3057b42011bf5d32b3963f333 + checksum: 10c0/3f7dc8eb2e7f4e7a5eee0a9456972a5b18bd40109d1aa3328f60cd645d352f3a70c83c507ea58f83b820153b0f5c3f14af3f376573c56599c36d5739c943b6f1 languageName: node linkType: hard -"postcss-pseudo-class-any-link@npm:^10.0.0": - version: 10.0.0 - resolution: "postcss-pseudo-class-any-link@npm:10.0.0" +"postcss-pseudo-class-any-link@npm:^10.0.1": + version: 10.0.1 + resolution: "postcss-pseudo-class-any-link@npm:10.0.1" dependencies: - postcss-selector-parser: "npm:^6.1.0" + postcss-selector-parser: "npm:^7.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/8357716e0ba0f01c70dba65a1efd268f610249ac2fbd41833e5e87dc19ffa7911c8d5e234d0d7c77d94ba6cdfa04fe7f0f98461c34f64cdbb59abd9737ab7d32 + checksum: 10c0/95e883996e87baf14fc09d25f9a763a2e9d599eb3b9c6b736e83a8c3d0b55841bcb886bccdf51b5b7fefc128cbd0187ad8841f59878f85bd1613642e592d7673 languageName: node linkType: hard @@ -5999,18 +6008,18 @@ __metadata: languageName: node linkType: hard -"postcss-selector-not@npm:^8.0.0": - version: 8.0.0 - resolution: "postcss-selector-not@npm:8.0.0" +"postcss-selector-not@npm:^8.0.1": + version: 8.0.1 + resolution: "postcss-selector-not@npm:8.0.1" dependencies: - postcss-selector-parser: "npm:^6.1.0" + postcss-selector-parser: "npm:^7.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/677f2cd9d0cd481d276663b57001b2ba96db94ad5bba397f277e53d560ccb074b27c21792deff44720a9f2d96da85fa34f438bb1d33198305b5866b35f1a4708 + checksum: 10c0/491ea3dcc421cd90135be786078521605e2062fb93624ea8813cfd5ba0d35143f931e2e608d5f20effd5ea7d3f4786d2afea2afa42d117779a0288e135f132b6 languageName: node linkType: hard -"postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4, postcss-selector-parser@npm:^6.1.0, postcss-selector-parser@npm:^6.1.2": +"postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4, postcss-selector-parser@npm:^6.1.2": version: 6.1.2 resolution: "postcss-selector-parser@npm:6.1.2" dependencies: @@ -6020,6 +6029,16 @@ __metadata: languageName: node linkType: hard +"postcss-selector-parser@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-selector-parser@npm:7.0.0" + dependencies: + cssesc: "npm:^3.0.0" + util-deprecate: "npm:^1.0.2" + checksum: 10c0/e96e096afcce70bf5c97789f5ea09d7415ae5eb701d82b05b5e8532885d31363b484fcb1ca9488c9a331f30508d9e5bb6c3109eb2eb5067ef3d3919f9928cd9d + languageName: node + linkType: hard + "postcss-svgo@npm:^7.0.1": version: 7.0.1 resolution: "postcss-svgo@npm:7.0.1" From c6944dc0fb1abe3e5681b0a39a9fa988b6287ae6 Mon Sep 17 00:00:00 2001 From: Mustafa Ulu Date: Mon, 28 Oct 2024 02:34:49 +0300 Subject: [PATCH 1149/1216] Turkish localization fixes for node list page (#9916) * Turkish localization fixes for node list page * Replace obsolete property --- .../resources/hudson/model/Computer/sidepanel_tr.properties | 2 +- .../resources/hudson/model/ComputerSet/index_tr.properties | 4 ++++ .../resources/hudson/model/ComputerSet/new_tr.properties | 2 ++ .../hudson/model/ComputerSet/sidepanel_tr.properties | 2 ++ core/src/main/resources/hudson/model/Messages_tr.properties | 2 ++ .../resources/hudson/node_monitors/Messages_tr.properties | 5 ++++- core/src/main/resources/hudson/slaves/Messages_tr.properties | 1 + core/src/main/resources/hudson/util/Messages_tr.properties | 1 + .../src/main/resources/jenkins/agents/Messages_tr.properties | 2 +- .../main/resources/lib/hudson/newFromList/form_tr.properties | 4 +++- 10 files changed, 21 insertions(+), 4 deletions(-) create mode 100644 core/src/main/resources/hudson/model/ComputerSet/index_tr.properties create mode 100644 core/src/main/resources/hudson/model/ComputerSet/new_tr.properties create mode 100644 core/src/main/resources/hudson/util/Messages_tr.properties diff --git a/core/src/main/resources/hudson/model/Computer/sidepanel_tr.properties b/core/src/main/resources/hudson/model/Computer/sidepanel_tr.properties index a96d29188a81..30694a2d05e4 100644 --- a/core/src/main/resources/hudson/model/Computer/sidepanel_tr.properties +++ b/core/src/main/resources/hudson/model/Computer/sidepanel_tr.properties @@ -23,6 +23,6 @@ Back\ to\ List=Listeye Dön Build\ History=Yapılandırma Geçmişi Configure=Yapılandır -Load\ Statistics=Yüklenme istatistikleri +Load\ Statistics=Yük İstatistikleri Script\ Console=Script Konsolu Status=Durum diff --git a/core/src/main/resources/hudson/model/ComputerSet/index_tr.properties b/core/src/main/resources/hudson/model/ComputerSet/index_tr.properties new file mode 100644 index 000000000000..0434bbae3c0e --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/index_tr.properties @@ -0,0 +1,4 @@ +Nodes=Sunucular +New\ Node=Yeni Sunucu +Name=İsim +Data\ obtained=Son güncelleme diff --git a/core/src/main/resources/hudson/model/ComputerSet/new_tr.properties b/core/src/main/resources/hudson/model/ComputerSet/new_tr.properties new file mode 100644 index 000000000000..921759b8e7ef --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/new_tr.properties @@ -0,0 +1,2 @@ +New\ node=Yeni sunucu +Node\ name=Sunucu ismi diff --git a/core/src/main/resources/hudson/model/ComputerSet/sidepanel_tr.properties b/core/src/main/resources/hudson/model/ComputerSet/sidepanel_tr.properties index ec93e331bfed..f4761cfdc026 100644 --- a/core/src/main/resources/hudson/model/ComputerSet/sidepanel_tr.properties +++ b/core/src/main/resources/hudson/model/ComputerSet/sidepanel_tr.properties @@ -22,3 +22,5 @@ Back\ to\ Dashboard=Kontrol Merkezi'ne Dön Manage\ Jenkins=Jenkins''i Yönet +Nodes=Sunucular +Clouds=Bulutlar diff --git a/core/src/main/resources/hudson/model/Messages_tr.properties b/core/src/main/resources/hudson/model/Messages_tr.properties index 75399955f2e6..4d9ae97b7bd8 100644 --- a/core/src/main/resources/hudson/model/Messages_tr.properties +++ b/core/src/main/resources/hudson/model/Messages_tr.properties @@ -48,6 +48,8 @@ BallColor.Pending=Bekliyor BallColor.Success=Başarılı BallColor.Unstable=Dengesiz +ComputerSet.DisplayName=Sunucular + Executor.NotAvailable=Mevcut Değil FreeStyleProject.DisplayName=Serbest stil proje diff --git a/core/src/main/resources/hudson/node_monitors/Messages_tr.properties b/core/src/main/resources/hudson/node_monitors/Messages_tr.properties index a58be1787e59..0ac3946dc2c0 100644 --- a/core/src/main/resources/hudson/node_monitors/Messages_tr.properties +++ b/core/src/main/resources/hudson/node_monitors/Messages_tr.properties @@ -22,4 +22,7 @@ ArchitectureMonitor.DisplayName=Mimari ClockMonitor.DisplayName=Saat Farkı -DiskSpaceMonitor.DisplayName=Diskteki Boş Alan +DiskSpaceMonitor.DisplayName=Boş Disk Alanı +SwapSpaceMonitor.DisplayName=Boş Swap Alanı +TemporarySpaceMonitor.DisplayName=Boş Temp Alanı +ResponseTimeMonitor.DisplayName=Tepki Süresi diff --git a/core/src/main/resources/hudson/slaves/Messages_tr.properties b/core/src/main/resources/hudson/slaves/Messages_tr.properties index 3f09ef711a25..061c5c7a2ff7 100644 --- a/core/src/main/resources/hudson/slaves/Messages_tr.properties +++ b/core/src/main/resources/hudson/slaves/Messages_tr.properties @@ -1 +1,2 @@ +DumbSlave.displayName=Kalıcı Ajan EnvironmentVariablesNodeProperty.displayName=Ortam değişkenleri diff --git a/core/src/main/resources/hudson/util/Messages_tr.properties b/core/src/main/resources/hudson/util/Messages_tr.properties new file mode 100644 index 000000000000..1df20672d1a6 --- /dev/null +++ b/core/src/main/resources/hudson/util/Messages_tr.properties @@ -0,0 +1 @@ +ClockDifference.InSync=Senkronize diff --git a/core/src/main/resources/jenkins/agents/Messages_tr.properties b/core/src/main/resources/jenkins/agents/Messages_tr.properties index 240942f59eae..2ae6997d3203 100644 --- a/core/src/main/resources/jenkins/agents/Messages_tr.properties +++ b/core/src/main/resources/jenkins/agents/Messages_tr.properties @@ -4,4 +4,4 @@ CloudSet.SpecifyCloudToCopy=Hangi bulutun kopyalanacağını belirtin CloudSet.NoSuchCloud=Böyle bir bulut yok: {0} CloudsLink.DisplayName=Bulutlar CloudsLink.Description=İsteğe bağlı olarak ajan hazırlamak için kullanılmak üzere bulut tanımları ekleyin, kaldırın ve düzenleyin. -IOfflineCause.offline=поза мережею +IOfflineCause.offline=Çevrimdışı diff --git a/core/src/main/resources/lib/hudson/newFromList/form_tr.properties b/core/src/main/resources/lib/hudson/newFromList/form_tr.properties index e8a77858a57d..c175c60f9ae7 100644 --- a/core/src/main/resources/lib/hudson/newFromList/form_tr.properties +++ b/core/src/main/resources/lib/hudson/newFromList/form_tr.properties @@ -1,3 +1,5 @@ # This file is under the MIT License by authors -Copy\ from=Buradan Kopyala +View\ type=Tip +Type\ for\ suggestions=Yazmaya başlayınca otomatik tamamlanır +Create=Oluştur From e1f99468fd81d6aa52dc434fefc6e0420e1cb449 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 28 Oct 2024 13:57:01 -0700 Subject: [PATCH 1150/1216] Update dependency io.jenkins.plugins:echarts-api to v5.5.1-4 (#9922) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/pom.xml b/war/pom.xml index 2d447fd7776b..f34ff02a9028 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -365,7 +365,7 @@ THE SOFTWARE. io.jenkins.plugins echarts-api - 5.5.1-3 + 5.5.1-4 hpi From 137b3d0ff9b7bace2b9683f1e616bbbbce7ad1ca Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 29 Oct 2024 13:43:58 +0000 Subject: [PATCH 1151/1216] [maven-release-plugin] prepare release jenkins-2.483 --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 6 +++--- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty12-ee9/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index fa38665c2a7b..8efbf5d2a9c7 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.483 jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 2473629d23cc..2e11b2c1ca7f 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.483 cli diff --git a/core/pom.xml b/core/pom.xml index 9bff5e5ad0b2..a63d6f21d603 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.483 jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index fe1e89a120dc..b397dfb7949d 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.483 jenkins-coverage diff --git a/pom.xml b/pom.xml index b492c804f609..0fccb82e556a 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.483 pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - ${scmTag} + jenkins-2.483 https://github.com/jenkinsci/jenkins @@ -75,7 +75,7 @@ THE SOFTWARE. 2.483 -SNAPSHOT - 2024-10-22T13:43:00Z + 2024-10-29T10:33:36Z github diff --git a/test/pom.xml b/test/pom.xml index 957127ed55c3..75c0b6f95a4a 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.483 jenkins-test diff --git a/war/pom.xml b/war/pom.xml index f34ff02a9028..a3828a2cfb9f 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.483 jenkins-war diff --git a/websocket/jetty12-ee9/pom.xml b/websocket/jetty12-ee9/pom.xml index 2253163b3c4c..f64d9b8140b4 100644 --- a/websocket/jetty12-ee9/pom.xml +++ b/websocket/jetty12-ee9/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.483 ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 178413f92c8e..b44f33a2e19a 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.483 ../.. From 783c18c00ed73db3d2b5ac747bf617cdb09269b6 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 29 Oct 2024 13:44:27 +0000 Subject: [PATCH 1152/1216] [maven-release-plugin] prepare for next development iteration --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 8 ++++---- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty12-ee9/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 12 insertions(+), 12 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 8efbf5d2a9c7..fa38665c2a7b 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.483 + ${revision}${changelist} jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 2e11b2c1ca7f..2473629d23cc 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.483 + ${revision}${changelist} cli diff --git a/core/pom.xml b/core/pom.xml index a63d6f21d603..9bff5e5ad0b2 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.483 + ${revision}${changelist} jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index b397dfb7949d..fe1e89a120dc 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.483 + ${revision}${changelist} jenkins-coverage diff --git a/pom.xml b/pom.xml index 0fccb82e556a..f21c24fbc5e6 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.483 + ${revision}${changelist} pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - jenkins-2.483 + ${scmTag} https://github.com/jenkinsci/jenkins @@ -73,9 +73,9 @@ THE SOFTWARE. - 2.483 + 2.484 -SNAPSHOT - 2024-10-29T10:33:36Z + 2024-10-29T13:43:58Z github diff --git a/test/pom.xml b/test/pom.xml index 75c0b6f95a4a..957127ed55c3 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.483 + ${revision}${changelist} jenkins-test diff --git a/war/pom.xml b/war/pom.xml index a3828a2cfb9f..f34ff02a9028 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.483 + ${revision}${changelist} jenkins-war diff --git a/websocket/jetty12-ee9/pom.xml b/websocket/jetty12-ee9/pom.xml index f64d9b8140b4..2253163b3c4c 100644 --- a/websocket/jetty12-ee9/pom.xml +++ b/websocket/jetty12-ee9/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.483 + ${revision}${changelist} ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index b44f33a2e19a..178413f92c8e 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.483 + ${revision}${changelist} ../.. From 3a255938b680e6a6c545768ca37ca75fee1453b4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 30 Oct 2024 08:53:40 -0700 Subject: [PATCH 1153/1216] Update dependency org.jenkins-ci.plugins:script-security to v1367 (#9924) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index 957127ed55c3..3933966bdadb 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -118,7 +118,7 @@ THE SOFTWARE. org.jenkins-ci.plugins script-security - 1366.vd44b_49a_5c85c + 1367.vdf2fc45f229c org.jenkins-ci.plugins.workflow diff --git a/war/pom.xml b/war/pom.xml index f34ff02a9028..933dcab0193a 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -307,7 +307,7 @@ THE SOFTWARE. org.jenkins-ci.plugins script-security - 1366.vd44b_49a_5c85c + 1367.vdf2fc45f229c hpi From 87cfc46068ee43eeec85f0d46d7ab9230b8f5e32 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 13:34:56 +0000 Subject: [PATCH 1154/1216] Fill in since annotations (#9927) Co-authored-by: timja <21194782+timja@users.noreply.github.com> --- core/src/main/java/hudson/model/Computer.java | 2 +- core/src/main/java/jenkins/agents/IOfflineCause.java | 2 +- core/src/main/java/jenkins/model/IComputer.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/hudson/model/Computer.java b/core/src/main/java/hudson/model/Computer.java index eec5bdd8d28d..0c525dfabe84 100644 --- a/core/src/main/java/hudson/model/Computer.java +++ b/core/src/main/java/hudson/model/Computer.java @@ -668,7 +668,7 @@ public boolean isTemporarilyOffline() { /** * Allows a caller to define an {@link OfflineCause} for a computer that has never been online. - * @since TODO + * @since 2.483 */ public void setOfflineCause(OfflineCause cause) { this.offlineCause = cause; diff --git a/core/src/main/java/jenkins/agents/IOfflineCause.java b/core/src/main/java/jenkins/agents/IOfflineCause.java index fca5f35b8d25..b1c32820e848 100644 --- a/core/src/main/java/jenkins/agents/IOfflineCause.java +++ b/core/src/main/java/jenkins/agents/IOfflineCause.java @@ -31,7 +31,7 @@ /** * Represents a cause that puts a {@linkplain IComputer#isOffline() computer offline}. - * @since TODO + * @since 2.483 */ public interface IOfflineCause { /** diff --git a/core/src/main/java/jenkins/model/IComputer.java b/core/src/main/java/jenkins/model/IComputer.java index 6aaea7af463f..37fe0af98535 100644 --- a/core/src/main/java/jenkins/model/IComputer.java +++ b/core/src/main/java/jenkins/model/IComputer.java @@ -94,7 +94,7 @@ default boolean hasOfflineCause() { /** * @return the offline cause if the computer is offline. - * @since TODO + * @since 2.483 */ IOfflineCause getOfflineCause(); From 99c3b439fc82c3c6d37ed8de9b425917453c3208 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 13:52:30 +0000 Subject: [PATCH 1155/1216] Update softprops/action-gh-release action to v2.0.9 (#9929) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/publish-release-artifact.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/publish-release-artifact.yml b/.github/workflows/publish-release-artifact.yml index 8b7242136ce9..e0268a61af0b 100644 --- a/.github/workflows/publish-release-artifact.yml +++ b/.github/workflows/publish-release-artifact.yml @@ -73,7 +73,7 @@ jobs: wget -q https://get.jenkins.io/${REPO}/${PROJECT_VERSION}/${FILE_NAME} - name: Upload Release Asset id: upload-war - uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 # v2.0.8 + uses: softprops/action-gh-release@e7a8f85e1c67a31e6ed99a94b41bd0b71bbee6b8 # v2.0.9 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -108,7 +108,7 @@ jobs: - name: Upload Release Asset id: upload-deb if: always() - uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 # v2.0.8 + uses: softprops/action-gh-release@e7a8f85e1c67a31e6ed99a94b41bd0b71bbee6b8 # v2.0.9 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -144,7 +144,7 @@ jobs: - name: Upload Release Asset id: upload-rpm if: always() - uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 # v2.0.8 + uses: softprops/action-gh-release@e7a8f85e1c67a31e6ed99a94b41bd0b71bbee6b8 # v2.0.9 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -180,7 +180,7 @@ jobs: - name: Upload Release Asset id: upload-msi if: always() - uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 # v2.0.8 + uses: softprops/action-gh-release@e7a8f85e1c67a31e6ed99a94b41bd0b71bbee6b8 # v2.0.9 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -216,7 +216,7 @@ jobs: - name: Upload Release Asset id: upload-suse-rpm if: always() - uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 # v2.0.8 + uses: softprops/action-gh-release@e7a8f85e1c67a31e6ed99a94b41bd0b71bbee6b8 # v2.0.9 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: From 55d09cb4e6be5a0f72f09d83b34fffcc888b9147 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 Nov 2024 09:09:03 +0000 Subject: [PATCH 1156/1216] Update dependency sass to v1.80.5 (#9932) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 7d94e1548f40..55785de7bdbc 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "postcss-preset-env": "10.0.8", "postcss-scss": "4.0.9", "prettier": "3.3.3", - "sass": "1.80.4", + "sass": "1.80.5", "sass-loader": "16.0.2", "style-loader": "4.0.0", "stylelint": "16.10.0", diff --git a/yarn.lock b/yarn.lock index f23f92f1318e..d3296cb5b08a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4368,7 +4368,7 @@ __metadata: postcss-preset-env: "npm:10.0.8" postcss-scss: "npm:4.0.9" prettier: "npm:3.3.3" - sass: "npm:1.80.4" + sass: "npm:1.80.5" sass-loader: "npm:16.0.2" sortablejs: "npm:1.15.3" style-loader: "npm:4.0.0" @@ -6355,9 +6355,9 @@ __metadata: languageName: node linkType: hard -"sass@npm:1.80.4": - version: 1.80.4 - resolution: "sass@npm:1.80.4" +"sass@npm:1.80.5": + version: 1.80.5 + resolution: "sass@npm:1.80.5" dependencies: "@parcel/watcher": "npm:^2.4.1" chokidar: "npm:^4.0.0" @@ -6365,7 +6365,7 @@ __metadata: source-map-js: "npm:>=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 10c0/58ca0f2d10720cde6621ee62f4bdbb537ea2ac572c565d5f02309f8271a5e1e880ad8c163b933e52b22b3dc0550973fb5a6033a500248e6a0d89dd050c1743cf + checksum: 10c0/d592e57c037315f4c5976af3d37ce4c7758b1b4e89d064455d6992829ea59888c71b9dbc86f7fc8dca87ac98ebc9cece10e5c8fc5509bf192db81712a34fd579 languageName: node linkType: hard From 5db2f0139ca12c5d7dc7cf3a1f7712074936880d Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Sat, 2 Nov 2024 09:25:07 -0400 Subject: [PATCH 1157/1216] Avoid saving `nextBuildNumber` while loading `Job` (#9778) --- core/src/main/java/hudson/model/Job.java | 21 ++++++------------- .../jenkins/model/lazy/LazyBuildMixIn.java | 4 ++-- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/core/src/main/java/hudson/model/Job.java b/core/src/main/java/hudson/model/Job.java index e4d54d44b375..c4c8679674a1 100644 --- a/core/src/main/java/hudson/model/Job.java +++ b/core/src/main/java/hudson/model/Job.java @@ -221,29 +221,20 @@ public void onLoad(ItemGroup parent, String name) TextFile f = getNextBuildNumberFile(); if (f.exists()) { - // starting 1.28, we store nextBuildNumber in a separate file. - // but old Hudson didn't do it, so if the file doesn't exist, - // assume that nextBuildNumber was read from config.xml try { synchronized (this) { this.nextBuildNumber = Integer.parseInt(f.readTrim()); } } catch (NumberFormatException e) { LOGGER.log(Level.WARNING, "Corruption in {0}: {1}", new Object[] {f, e}); - //noinspection StatementWithEmptyBody - if (this instanceof LazyBuildMixIn.LazyLoadingJob) { - // allow LazyBuildMixIn.onLoad to fix it - } else { - RunT lB = getLastBuild(); - synchronized (this) { - this.nextBuildNumber = lB != null ? lB.getNumber() + 1 : 1; - } - saveNextBuildNumber(); + RunT lB = getLastBuild(); + synchronized (this) { + this.nextBuildNumber = lB != null ? lB.getNumber() + 1 : 1; } + saveNextBuildNumber(); } - } else { - // From the old Hudson, or doCreateItem. Create this file now. - saveNextBuildNumber(); + } else if (nextBuildNumber == 0) { + nextBuildNumber = 1; } if (properties == null) // didn't exist < 1.72 diff --git a/core/src/main/java/jenkins/model/lazy/LazyBuildMixIn.java b/core/src/main/java/jenkins/model/lazy/LazyBuildMixIn.java index c73c5cbf80f1..d6329ed13ed5 100644 --- a/core/src/main/java/jenkins/model/lazy/LazyBuildMixIn.java +++ b/core/src/main/java/jenkins/model/lazy/LazyBuildMixIn.java @@ -109,8 +109,8 @@ public void onLoad(ItemGroup parent, String name) throws IOExcep int max = _builds.maxNumberOnDisk(); int next = asJob().getNextBuildNumber(); if (next <= max) { - LOGGER.log(Level.WARNING, "JENKINS-27530: improper nextBuildNumber {0} detected in {1} with highest build number {2}; adjusting", new Object[] {next, asJob(), max}); - asJob().updateNextBuildNumber(max + 1); + LOGGER.log(Level.FINE, "nextBuildNumber {0} detected in {1} with highest build number {2}; adjusting", new Object[] {next, asJob(), max}); + asJob().fastUpdateNextBuildNumber(max + 1); } RunMap currentBuilds = this.builds; if (parent != null) { From 1892e2147239b74717445c8ebfda764039487572 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Sat, 2 Nov 2024 09:25:16 -0400 Subject: [PATCH 1158/1216] `Job.BuildNumberAssigner` (#9846) * `Job.BuildNumberAssigner` * Clearer API for `saveNextBuildNumber` https://github.com/jenkinsci/jenkins/pull/9846#discussion_r1792991572 --- core/src/main/java/hudson/model/Job.java | 41 +++++++++++++++++++++--- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/hudson/model/Job.java b/core/src/main/java/hudson/model/Job.java index c4c8679674a1..d22c25e98e3d 100644 --- a/core/src/main/java/hudson/model/Job.java +++ b/core/src/main/java/hudson/model/Job.java @@ -34,6 +34,7 @@ import hudson.BulkChange; import hudson.EnvVars; import hudson.Extension; +import hudson.ExtensionList; import hudson.ExtensionPoint; import hudson.FeedAdapter; import hudson.PermalinkList; @@ -337,12 +338,42 @@ public boolean isKeepDependencies() { } /** - * Allocates a new buildCommand number. + * Allocates a new build number. + * @see BuildNumberAssigner */ - public synchronized int assignBuildNumber() throws IOException { - int r = nextBuildNumber++; - saveNextBuildNumber(); - return r; + public int assignBuildNumber() throws IOException { + return ExtensionList.lookupFirst(BuildNumberAssigner.class).assignBuildNumber(this, this::saveNextBuildNumber); + } + + /** + * Alternate strategy for assigning build numbers. + */ + @Restricted(Beta.class) + public interface BuildNumberAssigner extends ExtensionPoint { + /** + * Implementation of {@link Job#assignBuildNumber}. + */ + int assignBuildNumber(Job job, SaveNextBuildNumber saveNextBuildNumber) throws IOException; + /** + * Provides an externally accessible alias for {@link Job#saveNextBuildNumber}, which is {@code protected}. + * ({@link #getNextBuildNumber} and {@link #fastUpdateNextBuildNumber} are already accessible.) + */ + interface SaveNextBuildNumber { + void call() throws IOException; + } + } + + @Restricted(DoNotUse.class) + @Extension(ordinal = -1000) + public static final class DefaultBuildNumberAssigner implements BuildNumberAssigner { + @Override + public int assignBuildNumber(Job job, SaveNextBuildNumber saveNextBuildNumber) throws IOException { + synchronized (job) { + int r = job.nextBuildNumber++; + saveNextBuildNumber.call(); + return r; + } + } } /** From bec45d721cf2b872beec98aaf7a6327abe7fdaa8 Mon Sep 17 00:00:00 2001 From: Devin Nusbaum Date: Sat, 2 Nov 2024 09:25:23 -0400 Subject: [PATCH 1159/1216] Skip `LogRotatorTest#ableToDeleteCurrentBuild` on Windows (#9923) * Skip `LogRotatorTest#ableToDeleteCurrentBuild` on Windows * Also remove BuildWatcher from LogRotatorTest in case it was contributing to flakiness --- test/src/test/java/hudson/tasks/LogRotatorTest.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/test/src/test/java/hudson/tasks/LogRotatorTest.java b/test/src/test/java/hudson/tasks/LogRotatorTest.java index 118a860147a1..d30d4d8115bc 100644 --- a/test/src/test/java/hudson/tasks/LogRotatorTest.java +++ b/test/src/test/java/hudson/tasks/LogRotatorTest.java @@ -31,7 +31,9 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; +import static org.junit.Assume.assumeFalse; +import hudson.Functions; import hudson.Launcher; import hudson.model.AbstractBuild; import hudson.model.BuildListener; @@ -50,10 +52,8 @@ import java.util.concurrent.TimeoutException; import java.util.logging.Level; import java.util.logging.Logger; -import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.jvnet.hudson.test.BuildWatcher; import org.jvnet.hudson.test.FailureBuilder; import org.jvnet.hudson.test.Issue; import org.jvnet.hudson.test.JenkinsRule; @@ -64,9 +64,6 @@ */ public class LogRotatorTest { - @ClassRule - public static BuildWatcher watcher = new BuildWatcher(); - @Rule public JenkinsRule j = new JenkinsRule(); @@ -103,6 +100,8 @@ public void successVsFailureWithRemoveLastBuild() throws Exception { @Test public void ableToDeleteCurrentBuild() throws Exception { + assumeFalse("Deleting the current build while is is completing does not work consistently on Windows", + Functions.isWindows()); var p = j.createFreeStyleProject(); // Keep 0 builds, i.e. immediately delete builds as they complete. LogRotator logRotator = new LogRotator(-1, 0, -1, -1); From e0a54f41da3252ac16eb96859f318b0fe80d8c66 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Sat, 2 Nov 2024 09:25:31 -0400 Subject: [PATCH 1160/1216] Race condition & memory leak in `TypedFilter` (#9925) --- .../jenkins/security/stapler/TypedFilter.java | 28 ++++++------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/core/src/main/java/jenkins/security/stapler/TypedFilter.java b/core/src/main/java/jenkins/security/stapler/TypedFilter.java index eabce3b2dfc9..5851c5e47269 100644 --- a/core/src/main/java/jenkins/security/stapler/TypedFilter.java +++ b/core/src/main/java/jenkins/security/stapler/TypedFilter.java @@ -5,8 +5,6 @@ import hudson.ExtensionList; import java.lang.annotation.Annotation; import java.lang.reflect.Method; -import java.util.HashMap; -import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; import jenkins.util.SystemProperties; @@ -25,8 +23,6 @@ public class TypedFilter implements FieldRef.Filter, FunctionList.Filter { private static final Logger LOGGER = Logger.getLogger(TypedFilter.class.getName()); - private static final Map, Boolean> staplerCache = new HashMap<>(); - private boolean isClassAcceptable(Class clazz) { if (clazz.isArray()) { // special case to allow klass.isArray() dispatcher @@ -46,31 +42,23 @@ private boolean isClassAcceptable(Class clazz) { return false; } } - return SKIP_TYPE_CHECK || isStaplerRelevantCached(clazz); + return SKIP_TYPE_CHECK || isStaplerRelevant.get(clazz); } - private static boolean isStaplerRelevantCached(@NonNull Class clazz) { - if (staplerCache.containsKey(clazz)) { - return staplerCache.get(clazz); + private static final ClassValue isStaplerRelevant = new ClassValue<>() { + @Override + protected Boolean computeValue(Class clazz) { + return isSpecificClassStaplerRelevant(clazz) || isSuperTypesStaplerRelevant(clazz); } - boolean ret = isStaplerRelevant(clazz); - - staplerCache.put(clazz, ret); - return ret; - } - - @Restricted(NoExternalUse.class) - public static boolean isStaplerRelevant(@NonNull Class clazz) { - return isSpecificClassStaplerRelevant(clazz) || isSuperTypesStaplerRelevant(clazz); - } + }; private static boolean isSuperTypesStaplerRelevant(@NonNull Class clazz) { Class superclass = clazz.getSuperclass(); - if (superclass != null && isStaplerRelevantCached(superclass)) { + if (superclass != null && isStaplerRelevant.get(superclass)) { return true; } for (Class interfaceClass : clazz.getInterfaces()) { - if (isStaplerRelevantCached(interfaceClass)) { + if (isStaplerRelevant.get(interfaceClass)) { return true; } } From f8f4f19dc10808ca11eeb6cbfbf02335297654d4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 Nov 2024 07:25:42 -0600 Subject: [PATCH 1161/1216] Update dependency com.puppycrawl.tools:checkstyle to v10.20.0 (#9926) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f21c24fbc5e6..7839cc10a7e8 100644 --- a/pom.xml +++ b/pom.xml @@ -281,7 +281,7 @@ THE SOFTWARE. com.puppycrawl.tools checkstyle - 10.19.0 + 10.20.0 From 466359cb98e98138206729a55f689992d600b0ec Mon Sep 17 00:00:00 2001 From: Mustafa Ulu Date: Sat, 2 Nov 2024 16:25:51 +0300 Subject: [PATCH 1162/1216] Translate RSS links to Turkish (#9928) Recreated rssBar_tr.properties file which was removed in https://github.com/jenkinsci/jenkins/pull/8827 --- core/src/main/resources/lib/hudson/rssBar_tr.properties | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 core/src/main/resources/lib/hudson/rssBar_tr.properties diff --git a/core/src/main/resources/lib/hudson/rssBar_tr.properties b/core/src/main/resources/lib/hudson/rssBar_tr.properties new file mode 100644 index 000000000000..86aea288f023 --- /dev/null +++ b/core/src/main/resources/lib/hudson/rssBar_tr.properties @@ -0,0 +1,4 @@ +Legend=İkonlar hakkında +All=Tümü +Failures=Başarısız olanlar +LatestBuilds=Son yapılandırmalar From 2c0d8252e8ab1c62d02ffcdd5341a6a6f9395725 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 4 Nov 2024 08:47:56 +0000 Subject: [PATCH 1163/1216] Update dependency webpack to v5.96.0 (#9934) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 38 ++++++++++++++------------------------ 2 files changed, 15 insertions(+), 25 deletions(-) diff --git a/package.json b/package.json index 55785de7bdbc..8a39b01e57b7 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "stylelint": "16.10.0", "stylelint-checkstyle-reporter": "1.0.0", "stylelint-config-standard": "36.0.1", - "webpack": "5.95.0", + "webpack": "5.96.0", "webpack-cli": "5.1.4", "webpack-remove-empty-scripts": "1.0.4" }, diff --git a/yarn.lock b/yarn.lock index d3296cb5b08a..6005a9c438b5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2097,7 +2097,7 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:^1.0.5, @types/estree@npm:^1.0.6": +"@types/estree@npm:^1.0.6": version: 1.0.6 resolution: "@types/estree@npm:1.0.6" checksum: 10c0/cdfd751f6f9065442cd40957c07fd80361c962869aa853c1c2fd03e101af8b9389d8ff4955a43a6fcfa223dd387a089937f95be0f3eec21ca527039fd2d9859a @@ -2383,15 +2383,6 @@ __metadata: languageName: node linkType: hard -"acorn-import-attributes@npm:^1.9.5": - version: 1.9.5 - resolution: "acorn-import-attributes@npm:1.9.5" - peerDependencies: - acorn: ^8 - checksum: 10c0/5926eaaead2326d5a86f322ff1b617b0f698aa61dc719a5baa0e9d955c9885cc71febac3fb5bacff71bbf2c4f9c12db2056883c68c53eb962c048b952e1e013d - languageName: node - linkType: hard - "acorn-jsx@npm:^5.3.2": version: 5.3.2 resolution: "acorn-jsx@npm:5.3.2" @@ -2401,12 +2392,12 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.12.0, acorn@npm:^8.7.1, acorn@npm:^8.8.2": - version: 8.12.1 - resolution: "acorn@npm:8.12.1" +"acorn@npm:^8.12.0, acorn@npm:^8.14.0, acorn@npm:^8.8.2": + version: 8.14.0 + resolution: "acorn@npm:8.14.0" bin: acorn: bin/acorn - checksum: 10c0/51fb26cd678f914e13287e886da2d7021f8c2bc0ccc95e03d3e0447ee278dd3b40b9c57dc222acd5881adcf26f3edc40901a4953403232129e3876793cd17386 + checksum: 10c0/6d4ee461a7734b2f48836ee0fbb752903606e576cc100eb49340295129ca0b452f3ba91ddd4424a1d4406a98adfb2ebb6bd0ff4c49d7a0930c10e462719bbfd7 languageName: node linkType: hard @@ -2717,7 +2708,7 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.0.0, browserslist@npm:^4.21.10, browserslist@npm:^4.23.1, browserslist@npm:^4.23.3, browserslist@npm:^4.24.0": +"browserslist@npm:^4.0.0, browserslist@npm:^4.23.1, browserslist@npm:^4.23.3, browserslist@npm:^4.24.0": version: 4.24.0 resolution: "browserslist@npm:4.24.0" dependencies: @@ -4376,7 +4367,7 @@ __metadata: stylelint-checkstyle-reporter: "npm:1.0.0" stylelint-config-standard: "npm:36.0.1" tippy.js: "npm:6.3.7" - webpack: "npm:5.95.0" + webpack: "npm:5.96.0" webpack-cli: "npm:5.1.4" webpack-remove-empty-scripts: "npm:1.0.4" window-handle: "npm:1.0.1" @@ -7044,17 +7035,16 @@ __metadata: languageName: node linkType: hard -"webpack@npm:5.95.0": - version: 5.95.0 - resolution: "webpack@npm:5.95.0" +"webpack@npm:5.96.0": + version: 5.96.0 + resolution: "webpack@npm:5.96.0" dependencies: - "@types/estree": "npm:^1.0.5" + "@types/estree": "npm:^1.0.6" "@webassemblyjs/ast": "npm:^1.12.1" "@webassemblyjs/wasm-edit": "npm:^1.12.1" "@webassemblyjs/wasm-parser": "npm:^1.12.1" - acorn: "npm:^8.7.1" - acorn-import-attributes: "npm:^1.9.5" - browserslist: "npm:^4.21.10" + acorn: "npm:^8.14.0" + browserslist: "npm:^4.24.0" chrome-trace-event: "npm:^1.0.2" enhanced-resolve: "npm:^5.17.1" es-module-lexer: "npm:^1.2.1" @@ -7076,7 +7066,7 @@ __metadata: optional: true bin: webpack: bin/webpack.js - checksum: 10c0/b9e6d0f8ebcbf0632494ac0b90fe4acb8f4a9b83f7ace4a67a15545a36fe58599c912ab58e625e1bf58ab3b0916c75fe99da6196d412ee0cab0b5065edd84238 + checksum: 10c0/25ce25b8592c49cdb5dfba22587bbd0ee7144e6e16559aa75207eeb365736ee7e685d4b3ccafc3f3687f4f2e168d0c8766cf5fd0106648d5ef7acdfac30cc62d languageName: node linkType: hard From 854e5a5ceeebc92b68981b081c7f758e006daa92 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 4 Nov 2024 08:48:06 +0000 Subject: [PATCH 1164/1216] Update dependency mini-css-extract-plugin to v2.9.2 (#9935) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 8a39b01e57b7..4f6606f9ed07 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "eslint-formatter-checkstyle": "8.40.0", "globals": "15.11.0", "handlebars-loader": "1.7.3", - "mini-css-extract-plugin": "2.9.1", + "mini-css-extract-plugin": "2.9.2", "postcss": "8.4.47", "postcss-loader": "8.1.1", "postcss-preset-env": "10.0.8", diff --git a/yarn.lock b/yarn.lock index 6005a9c438b5..f87a5e121d4a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4353,7 +4353,7 @@ __metadata: hotkeys-js: "npm:3.12.2" jquery: "npm:3.7.1" lodash: "npm:4.17.21" - mini-css-extract-plugin: "npm:2.9.1" + mini-css-extract-plugin: "npm:2.9.2" postcss: "npm:8.4.47" postcss-loader: "npm:8.1.1" postcss-preset-env: "npm:10.0.8" @@ -4783,15 +4783,15 @@ __metadata: languageName: node linkType: hard -"mini-css-extract-plugin@npm:2.9.1": - version: 2.9.1 - resolution: "mini-css-extract-plugin@npm:2.9.1" +"mini-css-extract-plugin@npm:2.9.2": + version: 2.9.2 + resolution: "mini-css-extract-plugin@npm:2.9.2" dependencies: schema-utils: "npm:^4.0.0" tapable: "npm:^2.2.1" peerDependencies: webpack: ^5.0.0 - checksum: 10c0/19361902ef028b9875aafa3931d99643c2d95824ba343a501c83ff61d069a430fcfc523ca796765798b564570da2199f5a28cd51b9528ddbcfdc9271c61400d0 + checksum: 10c0/5d3218dbd7db48b572925ddac05162a7415bf81b321f1a0c07016ec643cb5720c8a836ae68d45f5de826097a3013b601706c9c5aacb7f610dc2041b271de2ce0 languageName: node linkType: hard From bf5137659c82bd8657bee998485c526784889208 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 4 Nov 2024 08:48:14 +0000 Subject: [PATCH 1165/1216] Update dependency sass-loader to v16.0.3 (#9936) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 4f6606f9ed07..12b038461af9 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "postcss-scss": "4.0.9", "prettier": "3.3.3", "sass": "1.80.5", - "sass-loader": "16.0.2", + "sass-loader": "16.0.3", "style-loader": "4.0.0", "stylelint": "16.10.0", "stylelint-checkstyle-reporter": "1.0.0", diff --git a/yarn.lock b/yarn.lock index f87a5e121d4a..ce37d61a34e6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4360,7 +4360,7 @@ __metadata: postcss-scss: "npm:4.0.9" prettier: "npm:3.3.3" sass: "npm:1.80.5" - sass-loader: "npm:16.0.2" + sass-loader: "npm:16.0.3" sortablejs: "npm:1.15.3" style-loader: "npm:4.0.0" stylelint: "npm:16.10.0" @@ -6320,9 +6320,9 @@ __metadata: languageName: node linkType: hard -"sass-loader@npm:16.0.2": - version: 16.0.2 - resolution: "sass-loader@npm:16.0.2" +"sass-loader@npm:16.0.3": + version: 16.0.3 + resolution: "sass-loader@npm:16.0.3" dependencies: neo-async: "npm:^2.6.2" peerDependencies: @@ -6342,7 +6342,7 @@ __metadata: optional: true webpack: optional: true - checksum: 10c0/9c5165b44fc6229d8f36fb2af3ebb9d1e3a837bcc80040d3f3fc5793cd2998407e2ed55853c2b342cca2b5e17fa141160198ad034685a95b17126200c320ae11 + checksum: 10c0/2dc188dd0d5276ed0251eee7f245848ccf9df6ec121227462403f322c17a3dbe100fb60d47968f078e585e4aced452eb7fa1a8e55b415d5de3151fa1bbf2d561 languageName: node linkType: hard From ed57499327ee649251c56a6b887b20f6b8de942a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 4 Nov 2024 10:02:39 -0800 Subject: [PATCH 1166/1216] Update dependency webpack to v5.96.1 (#9937) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 35 ++++++++++++++++++++++++++++------- 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 12b038461af9..426fb3472fc3 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "stylelint": "16.10.0", "stylelint-checkstyle-reporter": "1.0.0", "stylelint-config-standard": "36.0.1", - "webpack": "5.96.0", + "webpack": "5.96.1", "webpack-cli": "5.1.4", "webpack-remove-empty-scripts": "1.0.4" }, diff --git a/yarn.lock b/yarn.lock index ce37d61a34e6..7a11ea59cbb3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2097,7 +2097,27 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:^1.0.6": +"@types/eslint-scope@npm:^3.7.7": + version: 3.7.7 + resolution: "@types/eslint-scope@npm:3.7.7" + dependencies: + "@types/eslint": "npm:*" + "@types/estree": "npm:*" + checksum: 10c0/a0ecbdf2f03912679440550817ff77ef39a30fa8bfdacaf6372b88b1f931828aec392f52283240f0d648cf3055c5ddc564544a626bcf245f3d09fcb099ebe3cc + languageName: node + linkType: hard + +"@types/eslint@npm:*": + version: 9.6.1 + resolution: "@types/eslint@npm:9.6.1" + dependencies: + "@types/estree": "npm:*" + "@types/json-schema": "npm:*" + checksum: 10c0/69ba24fee600d1e4c5abe0df086c1a4d798abf13792d8cfab912d76817fe1a894359a1518557d21237fbaf6eda93c5ab9309143dee4c59ef54336d1b3570420e + languageName: node + linkType: hard + +"@types/estree@npm:*, @types/estree@npm:^1.0.6": version: 1.0.6 resolution: "@types/estree@npm:1.0.6" checksum: 10c0/cdfd751f6f9065442cd40957c07fd80361c962869aa853c1c2fd03e101af8b9389d8ff4955a43a6fcfa223dd387a089937f95be0f3eec21ca527039fd2d9859a @@ -2139,7 +2159,7 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:^7.0.15, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": +"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.15, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" checksum: 10c0/a996a745e6c5d60292f36731dd41341339d4eeed8180bb09226e5c8d23759067692b1d88e5d91d72ee83dfc00d3aca8e7bd43ea120516c17922cbcb7c3e252db @@ -4367,7 +4387,7 @@ __metadata: stylelint-checkstyle-reporter: "npm:1.0.0" stylelint-config-standard: "npm:36.0.1" tippy.js: "npm:6.3.7" - webpack: "npm:5.96.0" + webpack: "npm:5.96.1" webpack-cli: "npm:5.1.4" webpack-remove-empty-scripts: "npm:1.0.4" window-handle: "npm:1.0.1" @@ -7035,10 +7055,11 @@ __metadata: languageName: node linkType: hard -"webpack@npm:5.96.0": - version: 5.96.0 - resolution: "webpack@npm:5.96.0" +"webpack@npm:5.96.1": + version: 5.96.1 + resolution: "webpack@npm:5.96.1" dependencies: + "@types/eslint-scope": "npm:^3.7.7" "@types/estree": "npm:^1.0.6" "@webassemblyjs/ast": "npm:^1.12.1" "@webassemblyjs/wasm-edit": "npm:^1.12.1" @@ -7066,7 +7087,7 @@ __metadata: optional: true bin: webpack: bin/webpack.js - checksum: 10c0/25ce25b8592c49cdb5dfba22587bbd0ee7144e6e16559aa75207eeb365736ee7e685d4b3ccafc3f3687f4f2e168d0c8766cf5fd0106648d5ef7acdfac30cc62d + checksum: 10c0/ae6052fde9a546f79f14987b65823ba4024c6642a8489339ecfee7a351dff93325842aad453295bbdc6b65fb1690e4ef07529db63aa84ece55c7869e991a0039 languageName: node linkType: hard From 4f8695b120eec1e4f5543757980fe971a0bea144 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 5 Nov 2024 07:26:26 +0000 Subject: [PATCH 1167/1216] Update dependency postcss-preset-env to v10.0.9 (#9938) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 394 +++++++++++++++++++++++++-------------------------- 2 files changed, 198 insertions(+), 198 deletions(-) diff --git a/package.json b/package.json index 426fb3472fc3..1bbde3db1148 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "mini-css-extract-plugin": "2.9.2", "postcss": "8.4.47", "postcss-loader": "8.1.1", - "postcss-preset-env": "10.0.8", + "postcss-preset-env": "10.0.9", "postcss-scss": "4.0.9", "prettier": "3.3.3", "sass": "1.80.5", diff --git a/yarn.lock b/yarn.lock index 7a11ea59cbb3..c5be3ffd93ed 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1149,13 +1149,13 @@ __metadata: languageName: node linkType: hard -"@csstools/cascade-layer-name-parser@npm:^2.0.3": - version: 2.0.3 - resolution: "@csstools/cascade-layer-name-parser@npm:2.0.3" +"@csstools/cascade-layer-name-parser@npm:^2.0.4": + version: 2.0.4 + resolution: "@csstools/cascade-layer-name-parser@npm:2.0.4" peerDependencies: - "@csstools/css-parser-algorithms": ^3.0.3 - "@csstools/css-tokenizer": ^3.0.2 - checksum: 10c0/a0f0d6c94122d0a82b0da94ee2619915a9e6e98211de6e1f28afebe34332a29cab1b7905a34b6e5c1df30a125df9f9860ce5fa960c676484417d4ef2c4db4757 + "@csstools/css-parser-algorithms": ^3.0.4 + "@csstools/css-tokenizer": ^3.0.3 + checksum: 10c0/774f2bcc96a576183853191bdfd31df15e22c51901ee01678ee47f1d1afcb4ab0e6d9a78e08f7383ac089c7e0b390013633f45ff1f1d577c9aefd252589bcced languageName: node linkType: hard @@ -1166,42 +1166,42 @@ __metadata: languageName: node linkType: hard -"@csstools/css-calc@npm:^2.0.3": - version: 2.0.3 - resolution: "@csstools/css-calc@npm:2.0.3" +"@csstools/css-calc@npm:^2.0.4": + version: 2.0.4 + resolution: "@csstools/css-calc@npm:2.0.4" peerDependencies: - "@csstools/css-parser-algorithms": ^3.0.3 - "@csstools/css-tokenizer": ^3.0.2 - checksum: 10c0/a3dacda66bde67edab0f2384e85462dcd46b5bb62bc2a6396f0577a006d9ad59eae270353cbd6fe1a5f7081d0546fe4b1fd9b2df242758da54ec8b7022296570 + "@csstools/css-parser-algorithms": ^3.0.4 + "@csstools/css-tokenizer": ^3.0.3 + checksum: 10c0/ecb68fc9f8d930b861d5c9c5d4fc6eb43dabc619a4cd6c82dc18034ee746f907dba106fa6cdb909ac727fbfc9b1f7ceac1f356641542faeb2fab99c5fcd52a2e languageName: node linkType: hard -"@csstools/css-color-parser@npm:^3.0.4": - version: 3.0.4 - resolution: "@csstools/css-color-parser@npm:3.0.4" +"@csstools/css-color-parser@npm:^3.0.5": + version: 3.0.5 + resolution: "@csstools/css-color-parser@npm:3.0.5" dependencies: "@csstools/color-helpers": "npm:^5.0.1" - "@csstools/css-calc": "npm:^2.0.3" + "@csstools/css-calc": "npm:^2.0.4" peerDependencies: - "@csstools/css-parser-algorithms": ^3.0.3 - "@csstools/css-tokenizer": ^3.0.2 - checksum: 10c0/8f05264254d3768e45e46ce10e9355fe8ca0f6e4d2f648a22572f46c6d05b2378c37c2e5d970ed3b7bdfa0b152ea2af0c56a0556249bd85973aee9db7b091aa7 + "@csstools/css-parser-algorithms": ^3.0.4 + "@csstools/css-tokenizer": ^3.0.3 + checksum: 10c0/535e2a38222ad7ee9e1143c3ef09ba07b2e70a4214bbdf7ca13398388b8d2db9ee295fe15d9d306342036e554d97dd235567a8c8ee03fea6825483f1c4dbbf7e languageName: node linkType: hard -"@csstools/css-parser-algorithms@npm:^3.0.1, @csstools/css-parser-algorithms@npm:^3.0.3": - version: 3.0.3 - resolution: "@csstools/css-parser-algorithms@npm:3.0.3" +"@csstools/css-parser-algorithms@npm:^3.0.1, @csstools/css-parser-algorithms@npm:^3.0.4": + version: 3.0.4 + resolution: "@csstools/css-parser-algorithms@npm:3.0.4" peerDependencies: - "@csstools/css-tokenizer": ^3.0.2 - checksum: 10c0/c1e634384affb10c3726a36f090867247005a2a470cb223de88debeab07921b78c0e7875e7847d90949c2b0ba88a290c71565f1839f7739c21a5bf1c870e137d + "@csstools/css-tokenizer": ^3.0.3 + checksum: 10c0/d411f07765e14eede17bccc6bd4f90ff303694df09aabfede3fd104b2dfacfd4fe3697cd25ddad14684c850328f3f9420ebfa9f78380892492974db24ae47dbd languageName: node linkType: hard -"@csstools/css-tokenizer@npm:^3.0.1, @csstools/css-tokenizer@npm:^3.0.2": - version: 3.0.2 - resolution: "@csstools/css-tokenizer@npm:3.0.2" - checksum: 10c0/a74e5829420ed35982fd33be272c2a19cb2380179d357abe750aa848be6d6699d0437008f47a57eb7c6ff64a34b0c8f91a97dd63dbddd08249b7cf7983767e5e +"@csstools/css-tokenizer@npm:^3.0.1, @csstools/css-tokenizer@npm:^3.0.3": + version: 3.0.3 + resolution: "@csstools/css-tokenizer@npm:3.0.3" + checksum: 10c0/c31bf410e1244b942e71798e37c54639d040cb59e0121b21712b40015fced2b0fb1ffe588434c5f8923c9cd0017cfc1c1c8f3921abc94c96edf471aac2eba5e5 languageName: node linkType: hard @@ -1215,13 +1215,13 @@ __metadata: languageName: node linkType: hard -"@csstools/media-query-list-parser@npm:^4.0.1": - version: 4.0.1 - resolution: "@csstools/media-query-list-parser@npm:4.0.1" +"@csstools/media-query-list-parser@npm:^4.0.2": + version: 4.0.2 + resolution: "@csstools/media-query-list-parser@npm:4.0.2" peerDependencies: - "@csstools/css-parser-algorithms": ^3.0.3 - "@csstools/css-tokenizer": ^3.0.2 - checksum: 10c0/037f57520b6ca7d58ba1d71a477bd99bdbe3a6d8e7b972ed0f436d649e574f5b429e54fc47d0272daa2ac24ffb819bd9d260a90e154c4a265b8ee4d1cfb1d279 + "@csstools/css-parser-algorithms": ^3.0.4 + "@csstools/css-tokenizer": ^3.0.3 + checksum: 10c0/5d008a70f5d4fd96224066a433f5cdefa76cfd78a74416a20d6d5b2bb1bc8282b140e8373015d807d4dadb91daf3deb73eb13f853ec4e0479d0cb92e80c6f20d languageName: node linkType: hard @@ -1237,60 +1237,60 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-color-function@npm:^4.0.4": - version: 4.0.4 - resolution: "@csstools/postcss-color-function@npm:4.0.4" +"@csstools/postcss-color-function@npm:^4.0.5": + version: 4.0.5 + resolution: "@csstools/postcss-color-function@npm:4.0.5" dependencies: - "@csstools/css-color-parser": "npm:^3.0.4" - "@csstools/css-parser-algorithms": "npm:^3.0.3" - "@csstools/css-tokenizer": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^3.0.5" + "@csstools/css-parser-algorithms": "npm:^3.0.4" + "@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/e7735c6d7c84f039c84dc1b180410aa4db7c404d55477c2e7872bc8306a3150bf37883583ec080ebd8b40b765f700cc78892d61dc167578f76e324543d551c04 + checksum: 10c0/b47cc4567445eb12dd3e67a4298470d62a449a4d754fd4dd32eb78b23615ba6bd1fe8dacccc6c95087ce8749a6552bace8de0b9b6eee0c9a7b7202a0bcb8fcac languageName: node linkType: hard -"@csstools/postcss-color-mix-function@npm:^3.0.4": - version: 3.0.4 - resolution: "@csstools/postcss-color-mix-function@npm:3.0.4" +"@csstools/postcss-color-mix-function@npm:^3.0.5": + version: 3.0.5 + resolution: "@csstools/postcss-color-mix-function@npm:3.0.5" dependencies: - "@csstools/css-color-parser": "npm:^3.0.4" - "@csstools/css-parser-algorithms": "npm:^3.0.3" - "@csstools/css-tokenizer": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^3.0.5" + "@csstools/css-parser-algorithms": "npm:^3.0.4" + "@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/3e01f04853e49c9f69ee0538b817209b630649844039ee5b195cfbae94d41cf6e0d8a50a3d02dbe066f84855eefa1b7047f6750e4744858519978468577e567f + checksum: 10c0/a17d20dcc42d2c1ccd7a5ceb8d1413133ae9461bf973a9aad997a5782bf4cbbd847aef06accc20fa391ac6fbd44a1003e18c30a621d7c77052d4256fe39619aa languageName: node linkType: hard -"@csstools/postcss-content-alt-text@npm:^2.0.3": - version: 2.0.3 - resolution: "@csstools/postcss-content-alt-text@npm:2.0.3" +"@csstools/postcss-content-alt-text@npm:^2.0.4": + version: 2.0.4 + resolution: "@csstools/postcss-content-alt-text@npm:2.0.4" dependencies: - "@csstools/css-parser-algorithms": "npm:^3.0.3" - "@csstools/css-tokenizer": "npm:^3.0.2" + "@csstools/css-parser-algorithms": "npm:^3.0.4" + "@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/0389292a1ba11483f58db1bdd38cc774b0ec18c73f03d1db5f4a1f38edc861bb8b8d750b5c5b3615a98aaf995c0464dcfd6db5421888be0f868548c69455b5b3 + checksum: 10c0/84caccedd8a519df434babd58b14104c5a92cd326057ce509bdbaa2a4bb3130afb1c1456caf30235ba14da52d1628a5411ea4f5d2fb558d603d234f795538017 languageName: node linkType: hard -"@csstools/postcss-exponential-functions@npm:^2.0.3": - version: 2.0.3 - resolution: "@csstools/postcss-exponential-functions@npm:2.0.3" +"@csstools/postcss-exponential-functions@npm:^2.0.4": + version: 2.0.4 + resolution: "@csstools/postcss-exponential-functions@npm:2.0.4" dependencies: - "@csstools/css-calc": "npm:^2.0.3" - "@csstools/css-parser-algorithms": "npm:^3.0.3" - "@csstools/css-tokenizer": "npm:^3.0.2" + "@csstools/css-calc": "npm:^2.0.4" + "@csstools/css-parser-algorithms": "npm:^3.0.4" + "@csstools/css-tokenizer": "npm:^3.0.3" peerDependencies: postcss: ^8.4 - checksum: 10c0/690ac6c5ec72e085160401100cc8465a040fd70d59efadf61ef767094edac28bbb2653f53ea7cfa47d8220d0be0b9e23c3e3c2b80d9e93ad07b1db8031163d70 + checksum: 10c0/b174faa8782b7b3f3a9636412f90963740ff033c6506acf662f002fa07f59b370eb23937dbe3f1a05d7df277373f662d6970237d34ae938cf282a0b8dbde9a47 languageName: node linkType: hard @@ -1306,46 +1306,46 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-gamut-mapping@npm:^2.0.4": - version: 2.0.4 - resolution: "@csstools/postcss-gamut-mapping@npm:2.0.4" +"@csstools/postcss-gamut-mapping@npm:^2.0.5": + version: 2.0.5 + resolution: "@csstools/postcss-gamut-mapping@npm:2.0.5" dependencies: - "@csstools/css-color-parser": "npm:^3.0.4" - "@csstools/css-parser-algorithms": "npm:^3.0.3" - "@csstools/css-tokenizer": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^3.0.5" + "@csstools/css-parser-algorithms": "npm:^3.0.4" + "@csstools/css-tokenizer": "npm:^3.0.3" peerDependencies: postcss: ^8.4 - checksum: 10c0/60c6ff13cc71a0cda7ce184fa8b42924975f2bd05e3bc096059de853ae01d48e36f27d02d7e6286d9e8c4eb4dfd526f7c302ff51be19c5f7949dd6079915a3a9 + checksum: 10c0/a9d7365bed5c323dddad06d53c137ef3508870e541c6275dbdf3a73a50d44437830c22fa62c510d9316441d1e9f3b5552730778d1b73d083422245673bd00dac languageName: node linkType: hard -"@csstools/postcss-gradients-interpolation-method@npm:^5.0.4": - version: 5.0.4 - resolution: "@csstools/postcss-gradients-interpolation-method@npm:5.0.4" +"@csstools/postcss-gradients-interpolation-method@npm:^5.0.5": + version: 5.0.5 + resolution: "@csstools/postcss-gradients-interpolation-method@npm:5.0.5" dependencies: - "@csstools/css-color-parser": "npm:^3.0.4" - "@csstools/css-parser-algorithms": "npm:^3.0.3" - "@csstools/css-tokenizer": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^3.0.5" + "@csstools/css-parser-algorithms": "npm:^3.0.4" + "@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/3b6aa4404851be09a083f35b596acc7e3f74f525386dcd2887720438638ca1893f79e699e5dad0e3a35487cb9527e08d0dcd29f1331f87800f53c13423321d6e + checksum: 10c0/0ef258478270005ab3a879132dc6dbf2bf80788c79861515c826607953c551df1c2ef7005ba9592c31c6dad332d12ee247928a9fdd1569a51927a18a75dcc865 languageName: node linkType: hard -"@csstools/postcss-hwb-function@npm:^4.0.4": - version: 4.0.4 - resolution: "@csstools/postcss-hwb-function@npm:4.0.4" +"@csstools/postcss-hwb-function@npm:^4.0.5": + version: 4.0.5 + resolution: "@csstools/postcss-hwb-function@npm:4.0.5" dependencies: - "@csstools/css-color-parser": "npm:^3.0.4" - "@csstools/css-parser-algorithms": "npm:^3.0.3" - "@csstools/css-tokenizer": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^3.0.5" + "@csstools/css-parser-algorithms": "npm:^3.0.4" + "@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/2460cc7e6324f0793d12976de175ff33344c3410ff7a04ca8a5ce0560ee3354d1d8034f9f07c0759c2b7e222a4681d02298f6a29c2a326c76b33060830da83b4 + checksum: 10c0/9ce0a66bf288c9ec7f1fc28323d56ec54d38a30cb2ab722d1afbd46ec070cc5e61121bacb503803cb00293fc5ed117269969ac21071d7f4ce94b385c96168445 languageName: node linkType: hard @@ -1383,17 +1383,17 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-light-dark-function@npm:^2.0.6": - version: 2.0.6 - resolution: "@csstools/postcss-light-dark-function@npm:2.0.6" +"@csstools/postcss-light-dark-function@npm:^2.0.7": + version: 2.0.7 + resolution: "@csstools/postcss-light-dark-function@npm:2.0.7" dependencies: - "@csstools/css-parser-algorithms": "npm:^3.0.3" - "@csstools/css-tokenizer": "npm:^3.0.2" + "@csstools/css-parser-algorithms": "npm:^3.0.4" + "@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/f3e93b58a23f0f01c9d032a892070a18e3393e60997e1d2b57c5bddb2cb36f7ee6cbaeaeb3d531b065a545a03e54d86567d34b45eddf85ed48ac360eb4ab66cd + checksum: 10c0/c116bfd2d3f4d0caabdedf8954c2a25908ffb29f9bbe2c57d44a2974277c7e46ee79862eea848385dc040275d343f2330350394a2095ec30f0aa17f72e2f4e39 languageName: node linkType: hard @@ -1435,42 +1435,42 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-logical-viewport-units@npm:^3.0.2": - version: 3.0.2 - resolution: "@csstools/postcss-logical-viewport-units@npm:3.0.2" +"@csstools/postcss-logical-viewport-units@npm:^3.0.3": + version: 3.0.3 + resolution: "@csstools/postcss-logical-viewport-units@npm:3.0.3" dependencies: - "@csstools/css-tokenizer": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/31f525e774bc053f545a159eb53bb21465ea2930118e87c40207ad90fa97d3151e6de83efd02f84803fb0e93ed4a4b42a3904b734423410e73ac4c6ce9666ab4 + checksum: 10c0/8ec746598d7ce8697c3dafd83cb3a319a90079ad755dd78e3ec92f4ba9ad849c4cdaba33b16e9dcbac1e9489b3d7c48262030110c20ce1d88cdacbe9f5987cec languageName: node linkType: hard -"@csstools/postcss-media-minmax@npm:^2.0.3": - version: 2.0.3 - resolution: "@csstools/postcss-media-minmax@npm:2.0.3" +"@csstools/postcss-media-minmax@npm:^2.0.4": + version: 2.0.4 + resolution: "@csstools/postcss-media-minmax@npm:2.0.4" dependencies: - "@csstools/css-calc": "npm:^2.0.3" - "@csstools/css-parser-algorithms": "npm:^3.0.3" - "@csstools/css-tokenizer": "npm:^3.0.2" - "@csstools/media-query-list-parser": "npm:^4.0.1" + "@csstools/css-calc": "npm:^2.0.4" + "@csstools/css-parser-algorithms": "npm:^3.0.4" + "@csstools/css-tokenizer": "npm:^3.0.3" + "@csstools/media-query-list-parser": "npm:^4.0.2" peerDependencies: postcss: ^8.4 - checksum: 10c0/87c1ed6fe6ed487125e383ae7bc356ba0f68885c41cd129b85c323af69255031a8ac7b2e994d4f9b6b65d6a9f6833aeb1301ca230b592547825aedb3e3acab4b + checksum: 10c0/f9fe1e99b83a0724250f9426335da6f13bfbc28be6d10ebfafbf037766fc5245240ec33be7e68c9c5b60c013fbc2fa0be96fbed0d41383c919ee9e6f1b8225ce languageName: node linkType: hard -"@csstools/postcss-media-queries-aspect-ratio-number-values@npm:^3.0.3": - version: 3.0.3 - resolution: "@csstools/postcss-media-queries-aspect-ratio-number-values@npm:3.0.3" +"@csstools/postcss-media-queries-aspect-ratio-number-values@npm:^3.0.4": + version: 3.0.4 + resolution: "@csstools/postcss-media-queries-aspect-ratio-number-values@npm:3.0.4" dependencies: - "@csstools/css-parser-algorithms": "npm:^3.0.3" - "@csstools/css-tokenizer": "npm:^3.0.2" - "@csstools/media-query-list-parser": "npm:^4.0.1" + "@csstools/css-parser-algorithms": "npm:^3.0.4" + "@csstools/css-tokenizer": "npm:^3.0.3" + "@csstools/media-query-list-parser": "npm:^4.0.2" peerDependencies: postcss: ^8.4 - checksum: 10c0/3bbadd5c79ff2102b4a2e0f107d7f3cbb89d2840b935915531d0a1bfc711d58386e6e234fccb9b4abb37e48f07cdfaa4dd66b5c795dfac9e317fa8b5cfd38e06 + checksum: 10c0/27dc9419b0f4315774647588f599348e7cc593984f59b414c51c910066501fd087cbe232deb762907c18bd21dd4184e7b6e0e0b730e5c72341ab9cc696c75739 languageName: node linkType: hard @@ -1497,18 +1497,18 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-oklab-function@npm:^4.0.4": - version: 4.0.4 - resolution: "@csstools/postcss-oklab-function@npm:4.0.4" +"@csstools/postcss-oklab-function@npm:^4.0.5": + version: 4.0.5 + resolution: "@csstools/postcss-oklab-function@npm:4.0.5" dependencies: - "@csstools/css-color-parser": "npm:^3.0.4" - "@csstools/css-parser-algorithms": "npm:^3.0.3" - "@csstools/css-tokenizer": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^3.0.5" + "@csstools/css-parser-algorithms": "npm:^3.0.4" + "@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/4fd2a5c22ebaf69053e005d9d009ccb41b6879f0246677159bfb6a28208e90af857446c443d34fe3efdaf50bccdd67b16fcd0c1e7c52961396a48bd84e45311f + checksum: 10c0/a49e2ee60066f7da18316c7c80e5b2ced286ec962052f83c01f1952a1c5fe5b65ba9803a04698260125270a1dd47416f0b287a8f42e591f0d88c9a660ae844ce languageName: node linkType: hard @@ -1523,18 +1523,18 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-relative-color-syntax@npm:^3.0.4": - version: 3.0.4 - resolution: "@csstools/postcss-relative-color-syntax@npm:3.0.4" +"@csstools/postcss-relative-color-syntax@npm:^3.0.5": + version: 3.0.5 + resolution: "@csstools/postcss-relative-color-syntax@npm:3.0.5" dependencies: - "@csstools/css-color-parser": "npm:^3.0.4" - "@csstools/css-parser-algorithms": "npm:^3.0.3" - "@csstools/css-tokenizer": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^3.0.5" + "@csstools/css-parser-algorithms": "npm:^3.0.4" + "@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/f2ae6f9053e976e2431d08bdc5aa40ca5242754e23370abdfd7b6087d7ed56037e46911d1be801cf7e760aa8aee94bcab6a46f4f68696cf6befacf707c1534b7 + checksum: 10c0/505da97e7b219095a9fb6fa0ad6c6a1358ce1f5debada00564e635e1aa11d034c588be9ce2f76263172a8d1bd07d90647fde826f4565de22dcfc0a76beb68ff1 languageName: node linkType: hard @@ -1549,16 +1549,16 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-stepped-value-functions@npm:^4.0.3": - version: 4.0.3 - resolution: "@csstools/postcss-stepped-value-functions@npm:4.0.3" +"@csstools/postcss-stepped-value-functions@npm:^4.0.4": + version: 4.0.4 + resolution: "@csstools/postcss-stepped-value-functions@npm:4.0.4" dependencies: - "@csstools/css-calc": "npm:^2.0.3" - "@csstools/css-parser-algorithms": "npm:^3.0.3" - "@csstools/css-tokenizer": "npm:^3.0.2" + "@csstools/css-calc": "npm:^2.0.4" + "@csstools/css-parser-algorithms": "npm:^3.0.4" + "@csstools/css-tokenizer": "npm:^3.0.3" peerDependencies: postcss: ^8.4 - checksum: 10c0/31af5a650d4b2de97d3a3ef77e7ad0777b3f013f7463e23455ac31ffc946d2f79f365a1fdead52c7c535176232ab57f6f086ecdbeca1bb0b250161b1302e8c8c + checksum: 10c0/c8413a855a5ee9ad5b800263545d24d1bbd815f5ae0693c7dfd10c5f5b47bae5a9d985efdb2c46b03194ed3cae39f3d82c3ccfde502dee0b35d620fa539906be languageName: node linkType: hard @@ -1574,16 +1574,16 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-trigonometric-functions@npm:^4.0.3": - version: 4.0.3 - resolution: "@csstools/postcss-trigonometric-functions@npm:4.0.3" +"@csstools/postcss-trigonometric-functions@npm:^4.0.4": + version: 4.0.4 + resolution: "@csstools/postcss-trigonometric-functions@npm:4.0.4" dependencies: - "@csstools/css-calc": "npm:^2.0.3" - "@csstools/css-parser-algorithms": "npm:^3.0.3" - "@csstools/css-tokenizer": "npm:^3.0.2" + "@csstools/css-calc": "npm:^2.0.4" + "@csstools/css-parser-algorithms": "npm:^3.0.4" + "@csstools/css-tokenizer": "npm:^3.0.3" peerDependencies: postcss: ^8.4 - checksum: 10c0/a13dd72c00e45e6db16c03e135f1cd1b2b412e83b7681696b49feef3a4c36ab80f5f806f3589d33405e2d14dd0dfb13572ec12007ebe3d294077b0bd3d645b2b + checksum: 10c0/344c07961d24894f315faebf43c0128167fb2e33964c70d0d39d99a051c045678511d7378959105d672c5286a5360fde28fe390cdebfe823f3949e3cd1d50c4e languageName: node linkType: hard @@ -4376,7 +4376,7 @@ __metadata: mini-css-extract-plugin: "npm:2.9.2" postcss: "npm:8.4.47" postcss-loader: "npm:8.1.1" - postcss-preset-env: "npm:10.0.8" + postcss-preset-env: "npm:10.0.9" postcss-scss: "npm:4.0.9" prettier: "npm:3.3.3" sass: "npm:1.80.5" @@ -5330,18 +5330,18 @@ __metadata: languageName: node linkType: hard -"postcss-color-functional-notation@npm:^7.0.4": - version: 7.0.4 - resolution: "postcss-color-functional-notation@npm:7.0.4" +"postcss-color-functional-notation@npm:^7.0.5": + version: 7.0.5 + resolution: "postcss-color-functional-notation@npm:7.0.5" dependencies: - "@csstools/css-color-parser": "npm:^3.0.4" - "@csstools/css-parser-algorithms": "npm:^3.0.3" - "@csstools/css-tokenizer": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^3.0.5" + "@csstools/css-parser-algorithms": "npm:^3.0.4" + "@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/1e39c47f27610ebf6a6308cfea2904fbe1f157b13654325ada23153a944666722c6132b53dfc7660632406a636479dda68eeb97a246c2e593ad6eed1e9bf838d + checksum: 10c0/5e1771b8a43abd3cb18142842e8ac100b205f37a6757d6686da49e0c61ecf33d09244d256f3802962105e7ef79fbde2dffbfc1eedf1700198c54d2d5e48f3dc1 languageName: node linkType: hard @@ -5395,46 +5395,46 @@ __metadata: languageName: node linkType: hard -"postcss-custom-media@npm:^11.0.4": - version: 11.0.4 - resolution: "postcss-custom-media@npm:11.0.4" +"postcss-custom-media@npm:^11.0.5": + version: 11.0.5 + resolution: "postcss-custom-media@npm:11.0.5" dependencies: - "@csstools/cascade-layer-name-parser": "npm:^2.0.3" - "@csstools/css-parser-algorithms": "npm:^3.0.3" - "@csstools/css-tokenizer": "npm:^3.0.2" - "@csstools/media-query-list-parser": "npm:^4.0.1" + "@csstools/cascade-layer-name-parser": "npm:^2.0.4" + "@csstools/css-parser-algorithms": "npm:^3.0.4" + "@csstools/css-tokenizer": "npm:^3.0.3" + "@csstools/media-query-list-parser": "npm:^4.0.2" peerDependencies: postcss: ^8.4 - checksum: 10c0/31e82e5802f6933a15f5fcf64ff41c8107af9c1d5dcba3c4422a6de3fac77bce9e3dc4ed2b79ae7f6ae460549c5da5a013669af05c1ae21549dbb09b66a9492d + checksum: 10c0/5ba1ca0383818e83d5f6f398a2b0c12cfda066b5d552adfc0e030a2c5f8690c2cc6224f9a1832a9c780dae3fd8d00d78c4a5c88eb36b731da1752f0c3917d488 languageName: node linkType: hard -"postcss-custom-properties@npm:^14.0.3": - version: 14.0.3 - resolution: "postcss-custom-properties@npm:14.0.3" +"postcss-custom-properties@npm:^14.0.4": + version: 14.0.4 + resolution: "postcss-custom-properties@npm:14.0.4" dependencies: - "@csstools/cascade-layer-name-parser": "npm:^2.0.3" - "@csstools/css-parser-algorithms": "npm:^3.0.3" - "@csstools/css-tokenizer": "npm:^3.0.2" + "@csstools/cascade-layer-name-parser": "npm:^2.0.4" + "@csstools/css-parser-algorithms": "npm:^3.0.4" + "@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/utilities": "npm:^2.0.0" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/878ffd171ab9bbbba711930cf1b5bd48a12779e3b45d69f41366c2f65d84518f9338a92a277c0e390518c9e12272e06892cdc6575783bcdecfa6d26ebde3d043 + checksum: 10c0/5b101ee71289657cc2e5a16f4912009c10441052e2c54bd9e4f3d4d72b652bab56adb662ddaa96881413e375cf9852e2159b3c778d953442ce86efb781c3b2bf languageName: node linkType: hard -"postcss-custom-selectors@npm:^8.0.3": - version: 8.0.3 - resolution: "postcss-custom-selectors@npm:8.0.3" +"postcss-custom-selectors@npm:^8.0.4": + version: 8.0.4 + resolution: "postcss-custom-selectors@npm:8.0.4" dependencies: - "@csstools/cascade-layer-name-parser": "npm:^2.0.3" - "@csstools/css-parser-algorithms": "npm:^3.0.3" - "@csstools/css-tokenizer": "npm:^3.0.2" + "@csstools/cascade-layer-name-parser": "npm:^2.0.4" + "@csstools/css-parser-algorithms": "npm:^3.0.4" + "@csstools/css-tokenizer": "npm:^3.0.3" postcss-selector-parser: "npm:^7.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/3acdada43e385c23130f1dde41b189acc7739e5bbd14751ae28b2bd97b0d97f30c2a53da4f9558d108a893cc48717f76b28395a9ff38dcbbe3c3a1721ee4a68a + checksum: 10c0/09d494d2580d0a99f57684f79793d03358286c32460b61a84063c33bdde24865771cb1205efe9a8e26a508be24eba4fb93fc7f1e96ba21ca96a5d17fadb24863 languageName: node linkType: hard @@ -5552,18 +5552,18 @@ __metadata: languageName: node linkType: hard -"postcss-lab-function@npm:^7.0.4": - version: 7.0.4 - resolution: "postcss-lab-function@npm:7.0.4" +"postcss-lab-function@npm:^7.0.5": + version: 7.0.5 + resolution: "postcss-lab-function@npm:7.0.5" dependencies: - "@csstools/css-color-parser": "npm:^3.0.4" - "@csstools/css-parser-algorithms": "npm:^3.0.3" - "@csstools/css-tokenizer": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^3.0.5" + "@csstools/css-parser-algorithms": "npm:^3.0.4" + "@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/79ce3cc20484aef0e0bbc2d18c8f91d7362226a3db52f06a931ac8e1c58ffbc60876c6439f364093e5f16ef92260a420230cfb2a9e7b95c6c11e6f7d57626260 + checksum: 10c0/b688f6332ac12974452c97c5a40f4d0a604ce16b074124a1106add9cf9c25fbe7717d23423d6e92d937dc6e288e03e885b70e0793b96f41d28d2f7403bce7bf5 languageName: node linkType: hard @@ -5880,39 +5880,39 @@ __metadata: languageName: node linkType: hard -"postcss-preset-env@npm:10.0.8": - version: 10.0.8 - resolution: "postcss-preset-env@npm:10.0.8" +"postcss-preset-env@npm:10.0.9": + version: 10.0.9 + resolution: "postcss-preset-env@npm:10.0.9" dependencies: "@csstools/postcss-cascade-layers": "npm:^5.0.1" - "@csstools/postcss-color-function": "npm:^4.0.4" - "@csstools/postcss-color-mix-function": "npm:^3.0.4" - "@csstools/postcss-content-alt-text": "npm:^2.0.3" - "@csstools/postcss-exponential-functions": "npm:^2.0.3" + "@csstools/postcss-color-function": "npm:^4.0.5" + "@csstools/postcss-color-mix-function": "npm:^3.0.5" + "@csstools/postcss-content-alt-text": "npm:^2.0.4" + "@csstools/postcss-exponential-functions": "npm:^2.0.4" "@csstools/postcss-font-format-keywords": "npm:^4.0.0" - "@csstools/postcss-gamut-mapping": "npm:^2.0.4" - "@csstools/postcss-gradients-interpolation-method": "npm:^5.0.4" - "@csstools/postcss-hwb-function": "npm:^4.0.4" + "@csstools/postcss-gamut-mapping": "npm:^2.0.5" + "@csstools/postcss-gradients-interpolation-method": "npm:^5.0.5" + "@csstools/postcss-hwb-function": "npm:^4.0.5" "@csstools/postcss-ic-unit": "npm:^4.0.0" "@csstools/postcss-initial": "npm:^2.0.0" "@csstools/postcss-is-pseudo-class": "npm:^5.0.1" - "@csstools/postcss-light-dark-function": "npm:^2.0.6" + "@csstools/postcss-light-dark-function": "npm:^2.0.7" "@csstools/postcss-logical-float-and-clear": "npm:^3.0.0" "@csstools/postcss-logical-overflow": "npm:^2.0.0" "@csstools/postcss-logical-overscroll-behavior": "npm:^2.0.0" "@csstools/postcss-logical-resize": "npm:^3.0.0" - "@csstools/postcss-logical-viewport-units": "npm:^3.0.2" - "@csstools/postcss-media-minmax": "npm:^2.0.3" - "@csstools/postcss-media-queries-aspect-ratio-number-values": "npm:^3.0.3" + "@csstools/postcss-logical-viewport-units": "npm:^3.0.3" + "@csstools/postcss-media-minmax": "npm:^2.0.4" + "@csstools/postcss-media-queries-aspect-ratio-number-values": "npm:^3.0.4" "@csstools/postcss-nested-calc": "npm:^4.0.0" "@csstools/postcss-normalize-display-values": "npm:^4.0.0" - "@csstools/postcss-oklab-function": "npm:^4.0.4" + "@csstools/postcss-oklab-function": "npm:^4.0.5" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" - "@csstools/postcss-relative-color-syntax": "npm:^3.0.4" + "@csstools/postcss-relative-color-syntax": "npm:^3.0.5" "@csstools/postcss-scope-pseudo-class": "npm:^4.0.1" - "@csstools/postcss-stepped-value-functions": "npm:^4.0.3" + "@csstools/postcss-stepped-value-functions": "npm:^4.0.4" "@csstools/postcss-text-decoration-shorthand": "npm:^4.0.1" - "@csstools/postcss-trigonometric-functions": "npm:^4.0.3" + "@csstools/postcss-trigonometric-functions": "npm:^4.0.4" "@csstools/postcss-unset-value": "npm:^4.0.0" autoprefixer: "npm:^10.4.19" browserslist: "npm:^4.23.1" @@ -5922,12 +5922,12 @@ __metadata: cssdb: "npm:^8.1.2" postcss-attribute-case-insensitive: "npm:^7.0.1" postcss-clamp: "npm:^4.1.0" - postcss-color-functional-notation: "npm:^7.0.4" + postcss-color-functional-notation: "npm:^7.0.5" postcss-color-hex-alpha: "npm:^10.0.0" postcss-color-rebeccapurple: "npm:^10.0.0" - postcss-custom-media: "npm:^11.0.4" - postcss-custom-properties: "npm:^14.0.3" - postcss-custom-selectors: "npm:^8.0.3" + postcss-custom-media: "npm:^11.0.5" + postcss-custom-properties: "npm:^14.0.4" + postcss-custom-selectors: "npm:^8.0.4" postcss-dir-pseudo-class: "npm:^9.0.1" postcss-double-position-gradients: "npm:^6.0.0" postcss-focus-visible: "npm:^10.0.1" @@ -5935,7 +5935,7 @@ __metadata: postcss-font-variant: "npm:^5.0.0" postcss-gap-properties: "npm:^6.0.0" postcss-image-set-function: "npm:^7.0.0" - postcss-lab-function: "npm:^7.0.4" + postcss-lab-function: "npm:^7.0.5" postcss-logical: "npm:^8.0.0" postcss-nesting: "npm:^13.0.1" postcss-opacity-percentage: "npm:^3.0.0" @@ -5947,7 +5947,7 @@ __metadata: postcss-selector-not: "npm:^8.0.1" peerDependencies: postcss: ^8.4 - checksum: 10c0/3f7dc8eb2e7f4e7a5eee0a9456972a5b18bd40109d1aa3328f60cd645d352f3a70c83c507ea58f83b820153b0f5c3f14af3f376573c56599c36d5739c943b6f1 + checksum: 10c0/985ef4cfd2dd6a94d8a802db8e392c4b4c47ae0de8fd5224c60d8172cac3d7ce9011e63ab80470cddc77f21f09b2be850f97ac2478f651bc0a8956b538b079fe languageName: node linkType: hard From fcc36820fc3e6d4c9c17aa0c0ef060d79ee27ce5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 5 Nov 2024 07:26:47 +0000 Subject: [PATCH 1168/1216] Update eslint monorepo to v9.14.0 (#9939) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +-- yarn.lock | 99 ++++++++++++++++++++++++++++------------------------ 2 files changed, 55 insertions(+), 48 deletions(-) diff --git a/package.json b/package.json index 1bbde3db1148..ee2d84446b58 100644 --- a/package.json +++ b/package.json @@ -26,12 +26,12 @@ "@babel/cli": "7.25.9", "@babel/core": "7.26.0", "@babel/preset-env": "7.26.0", - "@eslint/js": "9.13.0", + "@eslint/js": "9.14.0", "babel-loader": "9.2.1", "clean-webpack-plugin": "4.0.0", "css-loader": "7.1.2", "css-minimizer-webpack-plugin": "7.0.0", - "eslint": "9.13.0", + "eslint": "9.14.0", "eslint-config-prettier": "9.1.0", "eslint-formatter-checkstyle": "8.40.0", "globals": "15.11.0", diff --git a/yarn.lock b/yarn.lock index c5be3ffd93ed..e1421c2e3394 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1657,10 +1657,10 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.11.0": - version: 4.11.0 - resolution: "@eslint-community/regexpp@npm:4.11.0" - checksum: 10c0/0f6328869b2741e2794da4ad80beac55cba7de2d3b44f796a60955b0586212ec75e6b0253291fd4aad2100ad471d1480d8895f2b54f1605439ba4c875e05e523 +"@eslint-community/regexpp@npm:^4.12.1": + version: 4.12.1 + resolution: "@eslint-community/regexpp@npm:4.12.1" + checksum: 10c0/a03d98c246bcb9109aec2c08e4d10c8d010256538dcb3f56610191607214523d4fb1b00aa81df830b6dffb74c5fa0be03642513a289c567949d3e550ca11cdf6 languageName: node linkType: hard @@ -1699,10 +1699,10 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:9.13.0": - version: 9.13.0 - resolution: "@eslint/js@npm:9.13.0" - checksum: 10c0/672257bffe17777b8a98bd80438702904cc7a0b98b9c2e426a8a10929198b3553edf8a3fc20feed4133c02e7c8f7331a0ef1b23e5dab8e4469f7f1791beff1e0 +"@eslint/js@npm:9.14.0": + version: 9.14.0 + resolution: "@eslint/js@npm:9.14.0" + checksum: 10c0/a423dd435e10aa3b461599aa02f6cbadd4b5128cb122467ee4e2c798e7ca4f9bb1fce4dcea003b29b983090238cf120899c1af657cf86300b399e4f996b83ddc languageName: node linkType: hard @@ -1722,20 +1722,20 @@ __metadata: languageName: node linkType: hard -"@humanfs/core@npm:^0.19.0": - version: 0.19.0 - resolution: "@humanfs/core@npm:0.19.0" - checksum: 10c0/f87952d5caba6ae427a620eff783c5d0b6cef0cfc256dec359cdaa636c5f161edb8d8dad576742b3de7f0b2f222b34aad6870248e4b7d2177f013426cbcda232 +"@humanfs/core@npm:^0.19.1": + version: 0.19.1 + resolution: "@humanfs/core@npm:0.19.1" + checksum: 10c0/aa4e0152171c07879b458d0e8a704b8c3a89a8c0541726c6b65b81e84fd8b7564b5d6c633feadc6598307d34564bd53294b533491424e8e313d7ab6c7bc5dc67 languageName: node linkType: hard -"@humanfs/node@npm:^0.16.5": - version: 0.16.5 - resolution: "@humanfs/node@npm:0.16.5" +"@humanfs/node@npm:^0.16.6": + version: 0.16.6 + resolution: "@humanfs/node@npm:0.16.6" dependencies: - "@humanfs/core": "npm:^0.19.0" + "@humanfs/core": "npm:^0.19.1" "@humanwhocodes/retry": "npm:^0.3.0" - checksum: 10c0/41c365ab09e7c9eaeed373d09243195aef616d6745608a36fc3e44506148c28843872f85e69e2bf5f1e992e194286155a1c1cecfcece6a2f43875e37cd243935 + checksum: 10c0/8356359c9f60108ec204cbd249ecd0356667359b2524886b357617c4a7c3b6aace0fd5a369f63747b926a762a88f8a25bc066fa1778508d110195ce7686243e1 languageName: node linkType: hard @@ -1746,13 +1746,20 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/retry@npm:^0.3.0, @humanwhocodes/retry@npm:^0.3.1": +"@humanwhocodes/retry@npm:^0.3.0": version: 0.3.1 resolution: "@humanwhocodes/retry@npm:0.3.1" checksum: 10c0/f0da1282dfb45e8120480b9e2e275e2ac9bbe1cf016d046fdad8e27cc1285c45bb9e711681237944445157b430093412b4446c1ab3fc4bb037861b5904101d3b languageName: node linkType: hard +"@humanwhocodes/retry@npm:^0.4.0": + version: 0.4.0 + resolution: "@humanwhocodes/retry@npm:0.4.0" + checksum: 10c0/28dcf1ed70b28ae8bc07b268c457a02f6b53fe4591b73e31f6735e7673dfd9e662f24a69e065aada1a64311bf5692d93d4ef35aba849314e8a87a870ba3b47aa + languageName: node + linkType: hard + "@isaacs/cliui@npm:^8.0.2": version: 8.0.2 resolution: "@isaacs/cliui@npm:8.0.2" @@ -2412,7 +2419,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.12.0, acorn@npm:^8.14.0, acorn@npm:^8.8.2": +"acorn@npm:^8.14.0, acorn@npm:^8.8.2": version: 8.14.0 resolution: "acorn@npm:8.14.0" bin: @@ -3469,13 +3476,13 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^8.1.0": - version: 8.1.0 - resolution: "eslint-scope@npm:8.1.0" +"eslint-scope@npm:^8.2.0": + version: 8.2.0 + resolution: "eslint-scope@npm:8.2.0" dependencies: esrecurse: "npm:^4.3.0" estraverse: "npm:^5.2.0" - checksum: 10c0/ae1df7accae9ea90465c2ded70f7064d6d1f2962ef4cc87398855c4f0b3a5ab01063e0258d954bb94b184f6759febe04c3118195cab5c51978a7229948ba2875 + checksum: 10c0/8d2d58e2136d548ac7e0099b1a90d9fab56f990d86eb518de1247a7066d38c908be2f3df477a79cf60d70b30ba18735d6c6e70e9914dca2ee515a729975d70d6 languageName: node linkType: hard @@ -3486,27 +3493,27 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^4.1.0": - version: 4.1.0 - resolution: "eslint-visitor-keys@npm:4.1.0" - checksum: 10c0/5483ef114c93a136aa234140d7aa3bd259488dae866d35cb0d0b52e6a158f614760a57256ac8d549acc590a87042cb40f6951815caa821e55dc4fd6ef4c722eb +"eslint-visitor-keys@npm:^4.2.0": + version: 4.2.0 + resolution: "eslint-visitor-keys@npm:4.2.0" + checksum: 10c0/2ed81c663b147ca6f578312919483eb040295bbab759e5a371953456c636c5b49a559883e2677112453728d66293c0a4c90ab11cab3428cf02a0236d2e738269 languageName: node linkType: hard -"eslint@npm:9.13.0": - version: 9.13.0 - resolution: "eslint@npm:9.13.0" +"eslint@npm:9.14.0": + version: 9.14.0 + resolution: "eslint@npm:9.14.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" - "@eslint-community/regexpp": "npm:^4.11.0" + "@eslint-community/regexpp": "npm:^4.12.1" "@eslint/config-array": "npm:^0.18.0" "@eslint/core": "npm:^0.7.0" "@eslint/eslintrc": "npm:^3.1.0" - "@eslint/js": "npm:9.13.0" + "@eslint/js": "npm:9.14.0" "@eslint/plugin-kit": "npm:^0.2.0" - "@humanfs/node": "npm:^0.16.5" + "@humanfs/node": "npm:^0.16.6" "@humanwhocodes/module-importer": "npm:^1.0.1" - "@humanwhocodes/retry": "npm:^0.3.1" + "@humanwhocodes/retry": "npm:^0.4.0" "@types/estree": "npm:^1.0.6" "@types/json-schema": "npm:^7.0.15" ajv: "npm:^6.12.4" @@ -3514,9 +3521,9 @@ __metadata: cross-spawn: "npm:^7.0.2" debug: "npm:^4.3.2" escape-string-regexp: "npm:^4.0.0" - eslint-scope: "npm:^8.1.0" - eslint-visitor-keys: "npm:^4.1.0" - espree: "npm:^10.2.0" + eslint-scope: "npm:^8.2.0" + eslint-visitor-keys: "npm:^4.2.0" + espree: "npm:^10.3.0" esquery: "npm:^1.5.0" esutils: "npm:^2.0.2" fast-deep-equal: "npm:^3.1.3" @@ -3539,18 +3546,18 @@ __metadata: optional: true bin: eslint: bin/eslint.js - checksum: 10c0/d3577444152182a9d8ea8c6a6acb073d3a2773ad73a6b646f432746583ec4bfcd6a44fcc2e37d05d276984e583c46c2d289b3b981ca8f8b4052756a152341d19 + checksum: 10c0/e1cbf571b75519ad0b24c27e66a6575e57cab2671ef5296e7b345d9ac3adc1a549118dcc74a05b651a7a13a5e61ebb680be6a3e04a80e1f22eba1931921b5187 languageName: node linkType: hard -"espree@npm:^10.0.1, espree@npm:^10.2.0": - version: 10.2.0 - resolution: "espree@npm:10.2.0" +"espree@npm:^10.0.1, espree@npm:^10.3.0": + version: 10.3.0 + resolution: "espree@npm:10.3.0" dependencies: - acorn: "npm:^8.12.0" + acorn: "npm:^8.14.0" acorn-jsx: "npm:^5.3.2" - eslint-visitor-keys: "npm:^4.1.0" - checksum: 10c0/2b6bfb683e7e5ab2e9513949879140898d80a2d9867ea1db6ff5b0256df81722633b60a7523a7c614f05a39aeea159dd09ad2a0e90c0e218732fc016f9086215 + eslint-visitor-keys: "npm:^4.2.0" + checksum: 10c0/272beeaca70d0a1a047d61baff64db04664a33d7cfb5d144f84bc8a5c6194c6c8ebe9cc594093ca53add88baa23e59b01e69e8a0160ab32eac570482e165c462 languageName: node linkType: hard @@ -4359,12 +4366,12 @@ __metadata: "@babel/cli": "npm:7.25.9" "@babel/core": "npm:7.26.0" "@babel/preset-env": "npm:7.26.0" - "@eslint/js": "npm:9.13.0" + "@eslint/js": "npm:9.14.0" babel-loader: "npm:9.2.1" clean-webpack-plugin: "npm:4.0.0" css-loader: "npm:7.1.2" css-minimizer-webpack-plugin: "npm:7.0.0" - eslint: "npm:9.13.0" + eslint: "npm:9.14.0" eslint-config-prettier: "npm:9.1.0" eslint-formatter-checkstyle: "npm:8.40.0" globals: "npm:15.11.0" From f7479f4f86d5c13479af71de39d4e7f157caa34e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 5 Nov 2024 07:27:08 +0000 Subject: [PATCH 1169/1216] Update dependency sass to v1.80.6 (#9943) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index ee2d84446b58..45ba15920713 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "postcss-preset-env": "10.0.9", "postcss-scss": "4.0.9", "prettier": "3.3.3", - "sass": "1.80.5", + "sass": "1.80.6", "sass-loader": "16.0.3", "style-loader": "4.0.0", "stylelint": "16.10.0", diff --git a/yarn.lock b/yarn.lock index e1421c2e3394..335705829887 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4386,7 +4386,7 @@ __metadata: postcss-preset-env: "npm:10.0.9" postcss-scss: "npm:4.0.9" prettier: "npm:3.3.3" - sass: "npm:1.80.5" + sass: "npm:1.80.6" sass-loader: "npm:16.0.3" sortablejs: "npm:1.15.3" style-loader: "npm:4.0.0" @@ -6373,17 +6373,20 @@ __metadata: languageName: node linkType: hard -"sass@npm:1.80.5": - version: 1.80.5 - resolution: "sass@npm:1.80.5" +"sass@npm:1.80.6": + version: 1.80.6 + resolution: "sass@npm:1.80.6" dependencies: "@parcel/watcher": "npm:^2.4.1" chokidar: "npm:^4.0.0" immutable: "npm:^4.0.0" source-map-js: "npm:>=0.6.2 <2.0.0" + dependenciesMeta: + "@parcel/watcher": + optional: true bin: sass: sass.js - checksum: 10c0/d592e57c037315f4c5976af3d37ce4c7758b1b4e89d064455d6992829ea59888c71b9dbc86f7fc8dca87ac98ebc9cece10e5c8fc5509bf192db81712a34fd579 + checksum: 10c0/04ce40d4dcf06cf2a94a66c1cc4fd4a9eb4033fd039291acd0be9d1d4123860da568c5cbef9de8493ffbedd8acae1cd0b8346f5da21c6f7cf0ffd3477730beca languageName: node linkType: hard From 37033f66584179c4953395e73a7e5c50b7cb56d7 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 5 Nov 2024 13:51:04 +0000 Subject: [PATCH 1170/1216] [maven-release-plugin] prepare release jenkins-2.484 --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 6 +++--- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty12-ee9/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index fa38665c2a7b..df843739c7fc 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.484 jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 2473629d23cc..b94263144626 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.484 cli diff --git a/core/pom.xml b/core/pom.xml index 9bff5e5ad0b2..02a50e8d17c7 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.484 jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index fe1e89a120dc..abe9c7102d36 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.484 jenkins-coverage diff --git a/pom.xml b/pom.xml index 7839cc10a7e8..5f6a6733765d 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.484 pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - ${scmTag} + jenkins-2.484 https://github.com/jenkinsci/jenkins @@ -75,7 +75,7 @@ THE SOFTWARE. 2.484 -SNAPSHOT - 2024-10-29T13:43:58Z + 2024-11-05T10:33:42Z github diff --git a/test/pom.xml b/test/pom.xml index 3933966bdadb..fc7162657add 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.484 jenkins-test diff --git a/war/pom.xml b/war/pom.xml index 933dcab0193a..0e4d82a29852 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.484 jenkins-war diff --git a/websocket/jetty12-ee9/pom.xml b/websocket/jetty12-ee9/pom.xml index 2253163b3c4c..6016d60ddcd4 100644 --- a/websocket/jetty12-ee9/pom.xml +++ b/websocket/jetty12-ee9/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.484 ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 178413f92c8e..0b54f0536d43 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.484 ../.. From 3b2287d4935986afeff4a29d38e1b6da92a3755b Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 5 Nov 2024 13:51:22 +0000 Subject: [PATCH 1171/1216] [maven-release-plugin] prepare for next development iteration --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 8 ++++---- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty12-ee9/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 12 insertions(+), 12 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index df843739c7fc..fa38665c2a7b 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.484 + ${revision}${changelist} jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index b94263144626..2473629d23cc 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.484 + ${revision}${changelist} cli diff --git a/core/pom.xml b/core/pom.xml index 02a50e8d17c7..9bff5e5ad0b2 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.484 + ${revision}${changelist} jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index abe9c7102d36..fe1e89a120dc 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.484 + ${revision}${changelist} jenkins-coverage diff --git a/pom.xml b/pom.xml index 5f6a6733765d..fe41e7201985 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.484 + ${revision}${changelist} pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - jenkins-2.484 + ${scmTag} https://github.com/jenkinsci/jenkins @@ -73,9 +73,9 @@ THE SOFTWARE. - 2.484 + 2.485 -SNAPSHOT - 2024-11-05T10:33:42Z + 2024-11-05T13:51:04Z github diff --git a/test/pom.xml b/test/pom.xml index fc7162657add..3933966bdadb 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.484 + ${revision}${changelist} jenkins-test diff --git a/war/pom.xml b/war/pom.xml index 0e4d82a29852..933dcab0193a 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.484 + ${revision}${changelist} jenkins-war diff --git a/websocket/jetty12-ee9/pom.xml b/websocket/jetty12-ee9/pom.xml index 6016d60ddcd4..2253163b3c4c 100644 --- a/websocket/jetty12-ee9/pom.xml +++ b/websocket/jetty12-ee9/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.484 + ${revision}${changelist} ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 0b54f0536d43..178413f92c8e 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.484 + ${revision}${changelist} ../.. From d2cec1bac7d5c03ec66ded2ca8c6a12f2529af6a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 5 Nov 2024 09:50:08 -0800 Subject: [PATCH 1172/1216] Update dependency org.jenkins-ci.main:remoting to v3283 (#9944) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index fe41e7201985..05bdaa5a09f9 100644 --- a/pom.xml +++ b/pom.xml @@ -87,7 +87,7 @@ THE SOFTWARE. https://www.jenkins.io/changelog - 3273.v4cfe589b_fd83 + 3283.v92c105e0f819 Max Medium From 62c71ff6ee0cc9132c2cfc67e04c622dd008d1c1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 5 Nov 2024 09:50:22 -0800 Subject: [PATCH 1173/1216] Update stapler.version to v1922 (major) (#9942) Update stapler.version to v1922 Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bom/pom.xml b/bom/pom.xml index fa38665c2a7b..0109f3c90aa2 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -39,7 +39,7 @@ THE SOFTWARE. 2.0.0-M2 - 1903.v994a_db_314d58 + 1922.v3f3302a_7f16f 2.4.21 From 532a0c2289fb6a4d3ce7c0f359b10addc5fe41e1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 5 Nov 2024 09:50:36 -0800 Subject: [PATCH 1174/1216] Update jenkins/ath Docker tag to v6072 (#9941) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- ath.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ath.sh b/ath.sh index c3a56d5fe4f8..642d6f3a6c71 100644 --- a/ath.sh +++ b/ath.sh @@ -6,7 +6,7 @@ set -o xtrace cd "$(dirname "$0")" # https://github.com/jenkinsci/acceptance-test-harness/releases -export ATH_VERSION=6059.veb_df63f37069 +export ATH_VERSION=6072.vc7e4e6a_970b_c if [[ $# -eq 0 ]]; then export JDK=17 From b0e47a7a9bf5b448bb906e7087cac841b2b5b144 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 5 Nov 2024 09:50:56 -0800 Subject: [PATCH 1175/1216] Update dependency org.jenkins-ci.plugins.workflow:workflow-support to v932 (#9940) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index 3933966bdadb..52f2d4492f62 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -134,7 +134,7 @@ THE SOFTWARE. org.jenkins-ci.plugins.workflow workflow-support - 930.vf51d22b_ce488 + 932.vb_555de1b_a_b_94 diff --git a/war/pom.xml b/war/pom.xml index 933dcab0193a..2bfab98574ad 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -350,7 +350,7 @@ THE SOFTWARE. org.jenkins-ci.plugins.workflow workflow-support - 930.vf51d22b_ce488 + 932.vb_555de1b_a_b_94 hpi From 01ef9f3a7072e56b5e796b340406e28d73cef0cb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 6 Nov 2024 11:33:33 -0800 Subject: [PATCH 1176/1216] Update dependency org.jenkins-ci:jenkins to v1.126 (#9949) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 05bdaa5a09f9..6e6122e14157 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci jenkins - 1.125 + 1.126 From f26469f5df26358818e93449b67646a73d35ede6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 6 Nov 2024 11:38:17 -0800 Subject: [PATCH 1177/1216] Update dependency org.apache.maven.skins:maven-fluido-skin to v2.0.0 (#9946) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- core/src/site/site.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/site/site.xml b/core/src/site/site.xml index 01aeebc17802..52c9edf3a7f3 100644 --- a/core/src/site/site.xml +++ b/core/src/site/site.xml @@ -41,7 +41,7 @@ org.apache.maven.skins maven-fluido-skin - 2.0.0-M11 + 2.0.0 From 5e15a519f9a08e718aa7b7106214fd01a953d34e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 7 Nov 2024 18:48:15 -0800 Subject: [PATCH 1178/1216] Update dependency globals to v15.12.0 (#9950) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 45ba15920713..c806a3138222 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "eslint": "9.14.0", "eslint-config-prettier": "9.1.0", "eslint-formatter-checkstyle": "8.40.0", - "globals": "15.11.0", + "globals": "15.12.0", "handlebars-loader": "1.7.3", "mini-css-extract-plugin": "2.9.2", "postcss": "8.4.47", diff --git a/yarn.lock b/yarn.lock index 335705829887..7dfcd772fd16 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3955,10 +3955,10 @@ __metadata: languageName: node linkType: hard -"globals@npm:15.11.0": - version: 15.11.0 - resolution: "globals@npm:15.11.0" - checksum: 10c0/861e39bb6bd9bd1b9f355c25c962e5eb4b3f0e1567cf60fa6c06e8c502b0ec8706b1cce055d69d84d0b7b8e028bec5418cf629a54e7047e116538d1c1c1a375c +"globals@npm:15.12.0": + version: 15.12.0 + resolution: "globals@npm:15.12.0" + checksum: 10c0/f34e0a1845b694f45188331742af9f488b07ba7440a06e9d2039fce0386fbbfc24afdbb9846ebdccd4092d03644e43081c49eb27b30f4b88e43af156e1c1dc34 languageName: node linkType: hard @@ -4374,7 +4374,7 @@ __metadata: eslint: "npm:9.14.0" eslint-config-prettier: "npm:9.1.0" eslint-formatter-checkstyle: "npm:8.40.0" - globals: "npm:15.11.0" + globals: "npm:15.12.0" handlebars: "npm:4.7.8" handlebars-loader: "npm:1.7.3" hotkeys-js: "npm:3.12.2" From b4244f035fd8c9a22663c3283c6238e9eede3379 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 7 Nov 2024 18:48:32 -0800 Subject: [PATCH 1179/1216] Update dependency com.puppycrawl.tools:checkstyle to v10.20.1 (#9952) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 6e6122e14157..6780dd0bf231 100644 --- a/pom.xml +++ b/pom.xml @@ -281,7 +281,7 @@ THE SOFTWARE. com.puppycrawl.tools checkstyle - 10.20.0 + 10.20.1 From 0bc21b94252c957aca3e835ff22528b43abe037f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 7 Nov 2024 19:31:49 -0800 Subject: [PATCH 1180/1216] Update dependency com.thoughtworks.xstream:xstream to v1.4.21 [SECURITY] (#9954) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bom/pom.xml b/bom/pom.xml index 0109f3c90aa2..b7e685a4658b 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -109,7 +109,7 @@ THE SOFTWARE. com.thoughtworks.xstream xstream - 1.4.20 + 1.4.21 commons-beanutils From ac63b7f156810011c0e500071cd2983d57cdb6b8 Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Fri, 8 Nov 2024 05:49:00 -0800 Subject: [PATCH 1181/1216] [JENKINS-74814] `java.lang.UnsupportedOperationException`: This stack walker does not have `RETAIN_CLASS_REFERENCE` access (#9945) --- core/src/main/java/jenkins/util/SetContextClassLoader.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/jenkins/util/SetContextClassLoader.java b/core/src/main/java/jenkins/util/SetContextClassLoader.java index c486fa4607e1..9e0a4c7dec30 100644 --- a/core/src/main/java/jenkins/util/SetContextClassLoader.java +++ b/core/src/main/java/jenkins/util/SetContextClassLoader.java @@ -62,7 +62,7 @@ public final class SetContextClassLoader implements AutoCloseable { * @since 2.362 */ public SetContextClassLoader() { - this(StackWalker.getInstance().getCallerClass()); + this(StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE).getCallerClass()); } /** From 8298257227d078bc247292e4de9e7112a15d9b0c Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Fri, 8 Nov 2024 05:49:26 -0800 Subject: [PATCH 1182/1216] [JENKINS-74795] Job created via REST API attaches to default view (#9947) Co-authored-by: Mark Waite --- .../hudson/model/ModifiableItemGroup.java | 3 +- .../test/java/hudson/jobs/CreateItemTest.java | 53 +++++++++++++++++++ 2 files changed, 55 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/model/ModifiableItemGroup.java b/core/src/main/java/hudson/model/ModifiableItemGroup.java index 35e41305afb5..d0bcda31187c 100644 --- a/core/src/main/java/hudson/model/ModifiableItemGroup.java +++ b/core/src/main/java/hudson/model/ModifiableItemGroup.java @@ -33,6 +33,7 @@ import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.StaplerResponse; import org.kohsuke.stapler.StaplerResponse2; +import org.kohsuke.stapler.interceptor.RequirePOST; /** * {@link ItemGroup} that is a general purpose container, which allows users and the rest of the program @@ -50,7 +51,7 @@ public interface ModifiableItemGroup extends ItemGroup { * The request format follows that of {@code <n:form xmlns:n="/lib/form">}. * */ - @StaplerNotDispatchable + @RequirePOST default T doCreateItem(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { if (ReflectionUtils.isOverridden( ModifiableItemGroup.class, diff --git a/test/src/test/java/hudson/jobs/CreateItemTest.java b/test/src/test/java/hudson/jobs/CreateItemTest.java index df8c577e30dc..284200abdef8 100644 --- a/test/src/test/java/hudson/jobs/CreateItemTest.java +++ b/test/src/test/java/hudson/jobs/CreateItemTest.java @@ -25,19 +25,25 @@ package hudson.jobs; import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.containsInAnyOrder; import static org.hamcrest.Matchers.nullValue; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; import hudson.model.Failure; import hudson.model.FreeStyleProject; import hudson.model.Item; import hudson.model.ItemGroup; +import hudson.model.ListView; +import hudson.model.User; import hudson.model.listeners.ItemListener; import java.net.HttpURLConnection; import java.net.URI; import java.net.URL; import java.text.MessageFormat; +import jenkins.model.Jenkins; import org.htmlunit.HttpMethod; import org.htmlunit.Page; import org.htmlunit.WebRequest; @@ -46,6 +52,7 @@ import org.junit.Test; import org.jvnet.hudson.test.Issue; import org.jvnet.hudson.test.JenkinsRule; +import org.jvnet.hudson.test.MockAuthorizationStrategy; import org.jvnet.hudson.test.MockFolder; import org.jvnet.hudson.test.TestExtension; @@ -142,4 +149,50 @@ public void onCheckCopy(Item src, ItemGroup parent) throws Failure { } } + @Issue("JENKINS-74795") + @Test + public void testCreateItemDoesNotPopulateDefaultView() throws Exception { + // Create a view that only displays jobs that start with 'a-' + FreeStyleProject aJob = rule.createFreeStyleProject("a-freestyle-job"); + ListView aView = new ListView("a-view"); + aView.setIncludeRegex("a-.*"); + rule.jenkins.addView(aView); + assertThat(aView.getItems(), containsInAnyOrder(aJob)); + assertFalse(aView.isDefault()); // Not yet the default view + + // Create a view that only displays jobs that start with 'b-' + FreeStyleProject bJob = rule.createFreeStyleProject("b-freestyle-job"); + ListView bView = new ListView("b-view"); + bView.setIncludeRegex("b-.*"); + rule.jenkins.addView(bView); + assertThat(bView.getItems(), containsInAnyOrder(bJob)); + assertFalse(bView.isDefault()); // Not the default view + + // Make the a-view the default + rule.jenkins.setPrimaryView(aView); + assertTrue(aView.isDefault()); // Now a-view is the default view + + // Use createItem API to create a new job + User user = User.getById("user", true); + rule.jenkins.setSecurityRealm(rule.createDummySecurityRealm()); + rule.jenkins.setAuthorizationStrategy(new MockAuthorizationStrategy() + .grant(Jenkins.READ, Item.CREATE) + .everywhere() + .to(user.getId())); + String b2JobName = "b-freestyle-job-2"; + try (JenkinsRule.WebClient wc = rule.createWebClient()) { + wc.login(user.getId()); + WebRequest request = new WebRequest(wc.createCrumbedUrl("createItem?name=" + b2JobName), HttpMethod.POST); + request.setAdditionalHeader("Content-Type", "application/xml"); + request.setRequestBody(""); + wc.getPage(request); + } + FreeStyleProject b2Job = rule.jenkins.getItemByFullName(b2JobName, FreeStyleProject.class); + assertThat(bView.getItems(), containsInAnyOrder(bJob, b2Job)); + assertFalse(bView.isDefault()); + + // Confirm new job is not visible in default view + assertTrue(aView.isDefault()); // a-view is still the default view + assertThat(aView.getItems(), containsInAnyOrder(aJob)); + } } From 0405a4437887065d35837717d69205ca564ee4c2 Mon Sep 17 00:00:00 2001 From: Mark Waite Date: Sat, 9 Nov 2024 14:45:35 -0700 Subject: [PATCH 1183/1216] Update operating system end of life test data (#9931) --- .../end-of-life-data.json | 4 + ...ratingSystemEndOfLifeAdminMonitorTest.java | 120 +++++++++--------- .../jenkins/monitor/os-release-alma-8 | 11 +- .../jenkins/monitor/os-release-alma-9 | 11 +- .../jenkins/monitor/os-release-alpine-3.17 | 2 +- .../jenkins/monitor/os-release-alpine-3.18 | 2 +- .../jenkins/monitor/os-release-alpine-3.19 | 2 +- .../jenkins/monitor/os-release-alpine-3.20 | 6 + .../monitor/os-release-amazon-linux-2023 | 8 +- .../jenkins/monitor/os-release-eurolinux-8 | 14 ++ .../jenkins/monitor/os-release-eurolinux-9 | 15 +++ .../jenkins/monitor/os-release-fedora-39 | 2 +- .../jenkins/monitor/os-release-fedora-40 | 22 ++++ .../jenkins/monitor/os-release-fedora-41 | 23 ++++ .../jenkins/monitor/os-release-oracle-8 | 14 +- .../jenkins/monitor/os-release-oracle-9 | 18 +++ .../jenkins/monitor/os-release-redhat-8 | 12 +- .../jenkins/monitor/os-release-rocky-8 | 11 +- .../jenkins/monitor/os-release-rocky-9 | 17 +++ .../jenkins/monitor/os-release-ubi-8 | 17 +++ .../jenkins/monitor/os-release-ubi-9 | 18 +++ .../jenkins/monitor/os-release-ubuntu-22.04 | 4 +- .../jenkins/monitor/os-release-ubuntu-24.04 | 13 ++ 23 files changed, 273 insertions(+), 93 deletions(-) create mode 100644 core/src/test/resources/jenkins/monitor/os-release-alpine-3.20 create mode 100644 core/src/test/resources/jenkins/monitor/os-release-eurolinux-8 create mode 100644 core/src/test/resources/jenkins/monitor/os-release-eurolinux-9 create mode 100644 core/src/test/resources/jenkins/monitor/os-release-fedora-40 create mode 100644 core/src/test/resources/jenkins/monitor/os-release-fedora-41 create mode 100644 core/src/test/resources/jenkins/monitor/os-release-oracle-9 create mode 100644 core/src/test/resources/jenkins/monitor/os-release-rocky-9 create mode 100644 core/src/test/resources/jenkins/monitor/os-release-ubi-8 create mode 100644 core/src/test/resources/jenkins/monitor/os-release-ubi-9 create mode 100644 core/src/test/resources/jenkins/monitor/os-release-ubuntu-24.04 diff --git a/core/src/main/resources/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitor/end-of-life-data.json b/core/src/main/resources/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitor/end-of-life-data.json index 7dfa00bc6772..4eb62c4b49d9 100644 --- a/core/src/main/resources/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitor/end-of-life-data.json +++ b/core/src/main/resources/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitor/end-of-life-data.json @@ -83,6 +83,10 @@ "pattern": "Fedora.* 40.*", "endOfLife": "2025-05-13" }, + { + "pattern": "Fedora.* 41.*", + "endOfLife": "2025-11-19" + }, { "pattern": "Oracle Linux.* 7.*", "endOfLife": "2023-11-16" diff --git a/core/src/test/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitorTest.java b/core/src/test/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitorTest.java index 84bc3790241a..38a4531613d6 100644 --- a/core/src/test/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitorTest.java +++ b/core/src/test/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitorTest.java @@ -122,36 +122,7 @@ private String docsUrl(String component) { } private static Stream testReadDocumentationUrls() { - return Stream.of( - Arguments.of("os-release-alma-8", "AlmaLinux.* 8.*", "AlmaLinux-8.7-Stone-Smilodon"), - Arguments.of("os-release-alma-9", "AlmaLinux.* 9.*", "AlmaLinux-9.3-Shamrock-Pampas-Cat"), - Arguments.of("os-release-alpine-3.14", "Alpine Linux v3.14", "Alpine-Linux-v3.14"), - Arguments.of("os-release-alpine-3.15", "Alpine Linux v3.15", "Alpine-Linux-v3.15"), - Arguments.of("os-release-alpine-3.16", "Alpine Linux v3.16", "Alpine-Linux-v3.16"), - Arguments.of("os-release-alpine-3.17", "Alpine Linux v3.17", "Alpine-Linux-v3.17"), - Arguments.of("os-release-alpine-3.18", "Alpine Linux v3.18", "Alpine-Linux-v3.18"), - Arguments.of("os-release-alpine-3.19", "Alpine Linux v3.19", "Alpine-Linux-v3.19"), - Arguments.of("os-release-amazon-linux-2", "Amazon Linux 2", "Amazon-Linux-2"), - Arguments.of("os-release-amazon-linux-2023", "Amazon Linux 2023", "Amazon-Linux-2023"), - Arguments.of("os-release-centos-7", "CentOS Linux.* 7.*", "CentOS-Linux-7-Core"), - Arguments.of("os-release-centos-8", "CentOS Linux.* 8.*", "CentOS-Linux-8"), - Arguments.of("os-release-debian-10", "Debian.* 10.*", "Debian-GNU-Linux-10-buster"), - Arguments.of("os-release-debian-11", "Debian.* 11.*", "Debian-GNU-Linux-11-bullseye"), - Arguments.of("os-release-debian-12", "Debian.* 12.*", "Debian-GNU-Linux-12-bookworm"), - Arguments.of("os-release-fedora-36", "Fedora.* 36.*", "Fedora-Linux-36-Container-Image"), - Arguments.of("os-release-fedora-37", "Fedora.* 37.*", "Fedora-Linux-37-Container-Image"), - Arguments.of("os-release-fedora-38", "Fedora.* 38.*", "Fedora-Linux-38-Container-Image"), - Arguments.of("os-release-fedora-39", "Fedora.* 39.*", "Fedora-Linux-39-Container-Image"), - Arguments.of("os-release-oracle-7", "Oracle Linux.* 7.*", "Oracle-Linux-Server-7.9"), - Arguments.of("os-release-oracle-8", "Oracle Linux.* 8.*", "Oracle-Linux-Server-8.7"), - Arguments.of("os-release-redhat-7", "Red Hat Enterprise Linux.* 7.*", "Red-Hat-Enterprise-Linux-Server-7.9-Maipo"), - Arguments.of("os-release-redhat-8", "Red Hat Enterprise Linux.* 8.*", "Red-Hat-Enterprise-Linux-8.8-Ootpa"), - Arguments.of("os-release-rocky-8", "Rocky Linux.* 8.*", "Rocky-Linux-8.7-Green-Obsidian"), - Arguments.of("os-release-scientific-7", "Scientific Linux.* 7.*", "Scientific-Linux-7.9-Nitrogen"), - Arguments.of("os-release-ubuntu-18.04", "Ubuntu.* 18.*", "Ubuntu-18.04.6-LTS"), - Arguments.of("os-release-ubuntu-20.04", "Ubuntu.* 20.*", "Ubuntu-20.04.6-LTS"), - Arguments.of("os-release-ubuntu-22.04", "Ubuntu.* 22.*", "Ubuntu-22.04.3-LTS") - ); + return getArguments(true); } @ParameterizedTest @@ -182,33 +153,7 @@ public void testReadOperatingSystemListNoPattern() { } private static Stream testReadOperatingSystemNames() { - return Stream.of( - Arguments.of("os-release-alma-8", "AlmaLinux.* 8.*", "AlmaLinux 8.7 (Stone Smilodon)"), - Arguments.of("os-release-alma-9", "AlmaLinux.* 9.*", "AlmaLinux 9.3 (Shamrock Pampas Cat)"), - Arguments.of("os-release-alpine-3.14", "Alpine Linux v3.14", "Alpine Linux v3.14"), - Arguments.of("os-release-alpine-3.15", "Alpine Linux v3.15", "Alpine Linux v3.15"), - Arguments.of("os-release-alpine-3.16", "Alpine Linux v3.16", "Alpine Linux v3.16"), - Arguments.of("os-release-alpine-3.17", "Alpine Linux v3.17", "Alpine Linux v3.17"), - Arguments.of("os-release-alpine-3.18", "Alpine Linux v3.18", "Alpine Linux v3.18"), - Arguments.of("os-release-alpine-3.19", "Alpine Linux v3.19", "Alpine Linux v3.19"), - Arguments.of("os-release-amazon-linux-2", "Amazon Linux 2", "Amazon Linux 2"), - Arguments.of("os-release-amazon-linux-2023", "Amazon Linux 2023", "Amazon Linux 2023"), - Arguments.of("os-release-centos-7", "CentOS Linux.* 7.*", "CentOS Linux 7 (Core)"), - Arguments.of("os-release-debian-10", "Debian.* 10.*", "Debian GNU/Linux 10 (buster)"), - Arguments.of("os-release-debian-11", "Debian.* 11.*", "Debian GNU/Linux 11 (bullseye)"), - Arguments.of("os-release-debian-12", "Debian.* 12.*", "Debian GNU/Linux 12 (bookworm)"), - Arguments.of("os-release-fedora-36", "Fedora.* 36.*", "Fedora Linux 36 (Container Image)"), - Arguments.of("os-release-fedora-37", "Fedora.* 37.*", "Fedora Linux 37 (Container Image)"), - Arguments.of("os-release-oracle-7", "Oracle Linux.* 7.*", "Oracle Linux Server 7.9"), - Arguments.of("os-release-oracle-8", "Oracle Linux.* 8.*", "Oracle Linux Server 8.7"), - Arguments.of("os-release-redhat-7", "Red Hat Enterprise Linux.* 7.*", "Red Hat Enterprise Linux Server 7.9 (Maipo)"), - Arguments.of("os-release-redhat-8", "Red Hat Enterprise Linux.* 8.*", "Red Hat Enterprise Linux 8.8 (Ootpa)"), - Arguments.of("os-release-rocky-8", "Rocky Linux.* 8.*", "Rocky Linux 8.7 (Green Obsidian)"), - Arguments.of("os-release-scientific-7", "Scientific Linux.* 7.*", "Scientific Linux 7.9 (Nitrogen)"), - Arguments.of("os-release-ubuntu-18.04", "Ubuntu.* 18.*", "Ubuntu 18.04.6 LTS"), - Arguments.of("os-release-ubuntu-20.04", "Ubuntu.* 20.*", "Ubuntu 20.04.6 LTS"), - Arguments.of("os-release-ubuntu-22.04", "Ubuntu.* 22.*", "Ubuntu 22.04.3 LTS") - ); + return getArguments(false); } @ParameterizedTest @@ -239,4 +184,65 @@ public void testReadOperatingSystemListOnWarningDate() throws Exception { public void testReadOperatingSystemNameMissingFile() { assertThat(monitor.readOperatingSystemName(new File("/this/file/does/not/exist"), ".*"), is("")); } + + private static String s(String fullString, boolean simplify) { + if (!simplify) { + return fullString; + } + return fullString.replace(" ", "-").replace("/", "-").replace("(", "").replace(")", ""); + } + + /** + * Returns resource file nanme, pattern match for operating system + * name, and expected value for each of the resource files used by + * the test. + * + * @param simplifyExpectedValue if true, then the expected value + * is simplified by replacing ' ' with '-', by replacing '/' with + * '-', and by removing '(' and ')'. + * @return arguments for ParameterizedTest, resource file name, + * pattern match for operating system name, and expected value + */ + private static Stream getArguments(boolean simplify) { + return Stream.of( + Arguments.of("os-release-alma-8", "AlmaLinux.* 8.*", s("AlmaLinux 8.10 (Cerulean Leopard)", simplify)), + Arguments.of("os-release-alma-9", "AlmaLinux.* 9.*", s("AlmaLinux 9.4 (Seafoam Ocelot)", simplify)), + Arguments.of("os-release-alpine-3.14", "Alpine Linux v3.14", s("Alpine Linux v3.14", simplify)), + Arguments.of("os-release-alpine-3.15", "Alpine Linux v3.15", s("Alpine Linux v3.15", simplify)), + Arguments.of("os-release-alpine-3.16", "Alpine Linux v3.16", s("Alpine Linux v3.16", simplify)), + Arguments.of("os-release-alpine-3.17", "Alpine Linux v3.17", s("Alpine Linux v3.17", simplify)), + Arguments.of("os-release-alpine-3.18", "Alpine Linux v3.18", s("Alpine Linux v3.18", simplify)), + Arguments.of("os-release-alpine-3.19", "Alpine Linux v3.19", s("Alpine Linux v3.19", simplify)), + Arguments.of("os-release-alpine-3.20", "Alpine Linux v3.20", s("Alpine Linux v3.20", simplify)), + Arguments.of("os-release-amazon-linux-2", "Amazon Linux 2", s("Amazon Linux 2", simplify)), + Arguments.of("os-release-amazon-linux-2023", "Amazon Linux 2023.*", s("Amazon Linux 2023.5.20241001", simplify)), + Arguments.of("os-release-centos-7", "CentOS Linux.* 7.*", s("CentOS Linux 7 (Core)", simplify)), + Arguments.of("os-release-debian-10", "Debian.* 10.*", s("Debian GNU/Linux 10 (buster)", simplify)), + Arguments.of("os-release-debian-11", "Debian.* 11.*", s("Debian GNU/Linux 11 (bullseye)", simplify)), + Arguments.of("os-release-debian-12", "Debian.* 12.*", s("Debian GNU/Linux 12 (bookworm)", simplify)), + Arguments.of("os-release-eurolinux-8", "EuroLinux.* 8.*", s("EuroLinux 8.10 (Bucharest)", simplify)), + Arguments.of("os-release-eurolinux-9", "EuroLinux.* 9.*", s("EuroLinux 9.4 (San Marino)", simplify)), + Arguments.of("os-release-fedora-36", "Fedora.* 36.*", s("Fedora Linux 36 (Container Image)", simplify)), + Arguments.of("os-release-fedora-37", "Fedora.* 37.*", s("Fedora Linux 37 (Container Image)", simplify)), + Arguments.of("os-release-fedora-38", "Fedora.* 38.*", s("Fedora Linux 38 (Container Image)", simplify)), + Arguments.of("os-release-fedora-39", "Fedora.* 39.*", s("Fedora Linux 39 (Container Image)", simplify)), + Arguments.of("os-release-fedora-39", "Fedora.* 39.*", s("Fedora Linux 39 (Container Image)", simplify)), + Arguments.of("os-release-fedora-40", "Fedora.* 40.*", s("Fedora Linux 40 (Container Image)", simplify)), + Arguments.of("os-release-fedora-41", "Fedora.* 41.*", s("Fedora Linux 41 (Container Image)", simplify)), + Arguments.of("os-release-oracle-7", "Oracle Linux.* 7.*", s("Oracle Linux Server 7.9", simplify)), + Arguments.of("os-release-oracle-8", "Oracle Linux.* 8.*", s("Oracle Linux Server 8.10", simplify)), + Arguments.of("os-release-oracle-9", "Oracle Linux.* 9.*", s("Oracle Linux Server 9.4", simplify)), + Arguments.of("os-release-redhat-7", "Red Hat Enterprise Linux.* 7.*", s("Red Hat Enterprise Linux Server 7.9 (Maipo)", simplify)), + Arguments.of("os-release-redhat-8", "Red Hat Enterprise Linux.* 8.*", s("Red Hat Enterprise Linux 8.10 (Ootpa)", simplify)), + Arguments.of("os-release-rocky-8", "Rocky Linux.* 8.*", s("Rocky Linux 8.10 (Green Obsidian)", simplify)), + Arguments.of("os-release-rocky-9", "Rocky Linux.* 9.*", s("Rocky Linux 9.4 (Blue Onyx)", simplify)), + Arguments.of("os-release-scientific-7", "Scientific Linux.* 7.*", s("Scientific Linux 7.9 (Nitrogen)", simplify)), + Arguments.of("os-release-ubi-8", "Red Hat Enterprise Linux.* 8.*", s("Red Hat Enterprise Linux 8.10 (Ootpa)", simplify)), + Arguments.of("os-release-ubi-9", "Red Hat Enterprise Linux.* 9.*", s("Red Hat Enterprise Linux 9.4 (Plow)", simplify)), + Arguments.of("os-release-ubuntu-18.04", "Ubuntu.* 18.*", s("Ubuntu 18.04.6 LTS", simplify)), + Arguments.of("os-release-ubuntu-20.04", "Ubuntu.* 20.*", s("Ubuntu 20.04.6 LTS", simplify)), + Arguments.of("os-release-ubuntu-22.04", "Ubuntu.* 22.*", s("Ubuntu 22.04.4 LTS", simplify)), + Arguments.of("os-release-ubuntu-24.04", "Ubuntu.* 24.*", s("Ubuntu 24.04.1 LTS", simplify)) + ); + } } diff --git a/core/src/test/resources/jenkins/monitor/os-release-alma-8 b/core/src/test/resources/jenkins/monitor/os-release-alma-8 index d483909db5b5..6b594068ed3d 100644 --- a/core/src/test/resources/jenkins/monitor/os-release-alma-8 +++ b/core/src/test/resources/jenkins/monitor/os-release-alma-8 @@ -1,10 +1,10 @@ NAME="AlmaLinux" -VERSION="8.7 (Stone Smilodon)" +VERSION="8.10 (Cerulean Leopard)" ID="almalinux" ID_LIKE="rhel centos fedora" -VERSION_ID="8.7" +VERSION_ID="8.10" PLATFORM_ID="platform:el8" -PRETTY_NAME="AlmaLinux 8.7 (Stone Smilodon)" +PRETTY_NAME="AlmaLinux 8.10 (Cerulean Leopard)" ANSI_COLOR="0;34" LOGO="fedora-logo-icon" CPE_NAME="cpe:/o:almalinux:almalinux:8::baseos" @@ -13,6 +13,7 @@ DOCUMENTATION_URL="https://wiki.almalinux.org/" BUG_REPORT_URL="https://bugs.almalinux.org/" ALMALINUX_MANTISBT_PROJECT="AlmaLinux-8" -ALMALINUX_MANTISBT_PROJECT_VERSION="8.7" +ALMALINUX_MANTISBT_PROJECT_VERSION="8.10" REDHAT_SUPPORT_PRODUCT="AlmaLinux" -REDHAT_SUPPORT_PRODUCT_VERSION="8.7" +REDHAT_SUPPORT_PRODUCT_VERSION="8.10" +SUPPORT_END=2029-06-01 diff --git a/core/src/test/resources/jenkins/monitor/os-release-alma-9 b/core/src/test/resources/jenkins/monitor/os-release-alma-9 index d7c856620e81..0310fdd1ea0b 100644 --- a/core/src/test/resources/jenkins/monitor/os-release-alma-9 +++ b/core/src/test/resources/jenkins/monitor/os-release-alma-9 @@ -1,10 +1,10 @@ NAME="AlmaLinux" -VERSION="9.3 (Shamrock Pampas Cat)" +VERSION="9.4 (Seafoam Ocelot)" ID="almalinux" ID_LIKE="rhel centos fedora" -VERSION_ID="9.3" +VERSION_ID="9.4" PLATFORM_ID="platform:el9" -PRETTY_NAME="AlmaLinux 9.3 (Shamrock Pampas Cat)" +PRETTY_NAME="AlmaLinux 9.4 (Seafoam Ocelot)" ANSI_COLOR="0;34" LOGO="fedora-logo-icon" CPE_NAME="cpe:/o:almalinux:almalinux:9::baseos" @@ -13,6 +13,7 @@ DOCUMENTATION_URL="https://wiki.almalinux.org/" BUG_REPORT_URL="https://bugs.almalinux.org/" ALMALINUX_MANTISBT_PROJECT="AlmaLinux-9" -ALMALINUX_MANTISBT_PROJECT_VERSION="9.3" +ALMALINUX_MANTISBT_PROJECT_VERSION="9.4" REDHAT_SUPPORT_PRODUCT="AlmaLinux" -REDHAT_SUPPORT_PRODUCT_VERSION="9.3" +REDHAT_SUPPORT_PRODUCT_VERSION="9.4" +SUPPORT_END=2032-06-01 diff --git a/core/src/test/resources/jenkins/monitor/os-release-alpine-3.17 b/core/src/test/resources/jenkins/monitor/os-release-alpine-3.17 index 8478d8e8bf32..357834f85742 100644 --- a/core/src/test/resources/jenkins/monitor/os-release-alpine-3.17 +++ b/core/src/test/resources/jenkins/monitor/os-release-alpine-3.17 @@ -1,6 +1,6 @@ NAME="Alpine Linux" ID=alpine -VERSION_ID=3.17.3 +VERSION_ID=3.17.10 PRETTY_NAME="Alpine Linux v3.17" HOME_URL="https://alpinelinux.org/" BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues" diff --git a/core/src/test/resources/jenkins/monitor/os-release-alpine-3.18 b/core/src/test/resources/jenkins/monitor/os-release-alpine-3.18 index a9e1d0057d7b..6dd7e71b9c13 100644 --- a/core/src/test/resources/jenkins/monitor/os-release-alpine-3.18 +++ b/core/src/test/resources/jenkins/monitor/os-release-alpine-3.18 @@ -1,6 +1,6 @@ NAME="Alpine Linux" ID=alpine -VERSION_ID=3.18.0 +VERSION_ID=3.18.9 PRETTY_NAME="Alpine Linux v3.18" HOME_URL="https://alpinelinux.org/" BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues" diff --git a/core/src/test/resources/jenkins/monitor/os-release-alpine-3.19 b/core/src/test/resources/jenkins/monitor/os-release-alpine-3.19 index 0c1a379f5fcf..f3770e65dc2d 100644 --- a/core/src/test/resources/jenkins/monitor/os-release-alpine-3.19 +++ b/core/src/test/resources/jenkins/monitor/os-release-alpine-3.19 @@ -1,6 +1,6 @@ NAME="Alpine Linux" ID=alpine -VERSION_ID=3.19.0 +VERSION_ID=3.19.4 PRETTY_NAME="Alpine Linux v3.19" HOME_URL="https://alpinelinux.org/" BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues" diff --git a/core/src/test/resources/jenkins/monitor/os-release-alpine-3.20 b/core/src/test/resources/jenkins/monitor/os-release-alpine-3.20 new file mode 100644 index 000000000000..843e443cd895 --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-alpine-3.20 @@ -0,0 +1,6 @@ +NAME="Alpine Linux" +ID=alpine +VERSION_ID=3.20.3 +PRETTY_NAME="Alpine Linux v3.20" +HOME_URL="https://alpinelinux.org/" +BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues" diff --git a/core/src/test/resources/jenkins/monitor/os-release-amazon-linux-2023 b/core/src/test/resources/jenkins/monitor/os-release-amazon-linux-2023 index 97bdcb48a04a..a1bfc87cf06c 100644 --- a/core/src/test/resources/jenkins/monitor/os-release-amazon-linux-2023 +++ b/core/src/test/resources/jenkins/monitor/os-release-amazon-linux-2023 @@ -4,9 +4,13 @@ ID="amzn" ID_LIKE="fedora" VERSION_ID="2023" PLATFORM_ID="platform:al2023" -PRETTY_NAME="Amazon Linux 2023" +PRETTY_NAME="Amazon Linux 2023.5.20241001" ANSI_COLOR="0;33" CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2023" -HOME_URL="https://aws.amazon.com/linux/" +HOME_URL="https://aws.amazon.com/linux/amazon-linux-2023/" +DOCUMENTATION_URL="https://docs.aws.amazon.com/linux/" +SUPPORT_URL="https://aws.amazon.com/premiumsupport/" BUG_REPORT_URL="https://github.com/amazonlinux/amazon-linux-2023" +VENDOR_NAME="AWS" +VENDOR_URL="https://aws.amazon.com/" SUPPORT_END="2028-03-15" diff --git a/core/src/test/resources/jenkins/monitor/os-release-eurolinux-8 b/core/src/test/resources/jenkins/monitor/os-release-eurolinux-8 new file mode 100644 index 000000000000..866ff8c05561 --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-eurolinux-8 @@ -0,0 +1,14 @@ +NAME="EuroLinux" +VERSION="8.10 (Bucharest)" +ID="eurolinux" +ID_LIKE="rhel fedora centos" +VERSION_ID="8.10" +PLATFORM_ID="platform:el8" +PRETTY_NAME="EuroLinux 8.10 (Bucharest)" +ANSI_COLOR="0;34" +CPE_NAME="cpe:/o:eurolinux:eurolinux:8" +HOME_URL="https://www.euro-linux.com/" +DOCUMENTATION_URL="https://docs.euro-linux.com/" +BUG_REPORT_URL="https://github.com/EuroLinux/eurolinux-distro-bugs-and-rfc/" +REDHAT_SUPPORT_PRODUCT="EuroLinux" +REDHAT_SUPPORT_PRODUCT_VERSION="8" diff --git a/core/src/test/resources/jenkins/monitor/os-release-eurolinux-9 b/core/src/test/resources/jenkins/monitor/os-release-eurolinux-9 new file mode 100644 index 000000000000..d436181116bb --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-eurolinux-9 @@ -0,0 +1,15 @@ +NAME="EuroLinux" +VERSION="9.4 (San Marino)" +ID="eurolinux" +ID_LIKE="rhel fedora centos" +VERSION_ID="9.4" +PLATFORM_ID="platform:el9" +PRETTY_NAME="EuroLinux 9.4 (San Marino)" +ANSI_COLOR="0;34" +LOGO="fedora-logo-icon" +CPE_NAME="cpe:/o:eurolinux:eurolinux:9" +HOME_URL="https://www.euro-linux.com/" +DOCUMENTATION_URL="https://docs.euro-linux.com" +BUG_REPORT_URL="https://github.com/EuroLinux/eurolinux-distro-bugs-and-rfc/" +REDHAT_SUPPORT_PRODUCT="EuroLinux" +REDHAT_SUPPORT_PRODUCT_VERSION="9" diff --git a/core/src/test/resources/jenkins/monitor/os-release-fedora-39 b/core/src/test/resources/jenkins/monitor/os-release-fedora-39 index 26c8fbaf0423..9d04f7e3798e 100644 --- a/core/src/test/resources/jenkins/monitor/os-release-fedora-39 +++ b/core/src/test/resources/jenkins/monitor/os-release-fedora-39 @@ -17,6 +17,6 @@ REDHAT_BUGZILLA_PRODUCT="Fedora" REDHAT_BUGZILLA_PRODUCT_VERSION=39 REDHAT_SUPPORT_PRODUCT="Fedora" REDHAT_SUPPORT_PRODUCT_VERSION=39 -SUPPORT_END=2024-05-14 +SUPPORT_END=2024-11-12 VARIANT="Container Image" VARIANT_ID=container diff --git a/core/src/test/resources/jenkins/monitor/os-release-fedora-40 b/core/src/test/resources/jenkins/monitor/os-release-fedora-40 new file mode 100644 index 000000000000..90193fae8e8d --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-fedora-40 @@ -0,0 +1,22 @@ +NAME="Fedora Linux" +VERSION="40 (Container Image)" +ID=fedora +VERSION_ID=40 +VERSION_CODENAME="" +PLATFORM_ID="platform:f40" +PRETTY_NAME="Fedora Linux 40 (Container Image)" +ANSI_COLOR="0;38;2;60;110;180" +LOGO=fedora-logo-icon +CPE_NAME="cpe:/o:fedoraproject:fedora:40" +DEFAULT_HOSTNAME="fedora" +HOME_URL="https://fedoraproject.org/" +DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f40/system-administrators-guide/" +SUPPORT_URL="https://ask.fedoraproject.org/" +BUG_REPORT_URL="https://bugzilla.redhat.com/" +REDHAT_BUGZILLA_PRODUCT="Fedora" +REDHAT_BUGZILLA_PRODUCT_VERSION=40 +REDHAT_SUPPORT_PRODUCT="Fedora" +REDHAT_SUPPORT_PRODUCT_VERSION=40 +SUPPORT_END=2025-05-13 +VARIANT="Container Image" +VARIANT_ID=container diff --git a/core/src/test/resources/jenkins/monitor/os-release-fedora-41 b/core/src/test/resources/jenkins/monitor/os-release-fedora-41 new file mode 100644 index 000000000000..135585f763a5 --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-fedora-41 @@ -0,0 +1,23 @@ +NAME="Fedora Linux" +VERSION="41 (Container Image)" +RELEASE_TYPE=stable +ID=fedora +VERSION_ID=41 +VERSION_CODENAME="" +PLATFORM_ID="platform:f41" +PRETTY_NAME="Fedora Linux 41 (Container Image)" +ANSI_COLOR="0;38;2;60;110;180" +LOGO=fedora-logo-icon +CPE_NAME="cpe:/o:fedoraproject:fedora:41" +DEFAULT_HOSTNAME="fedora" +HOME_URL="https://fedoraproject.org/" +DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f41/system-administrators-guide/" +SUPPORT_URL="https://ask.fedoraproject.org/" +BUG_REPORT_URL="https://bugzilla.redhat.com/" +REDHAT_BUGZILLA_PRODUCT="Fedora" +REDHAT_BUGZILLA_PRODUCT_VERSION=41 +REDHAT_SUPPORT_PRODUCT="Fedora" +REDHAT_SUPPORT_PRODUCT_VERSION=41 +SUPPORT_END=2025-05-13 +VARIANT="Container Image" +VARIANT_ID=container diff --git a/core/src/test/resources/jenkins/monitor/os-release-oracle-8 b/core/src/test/resources/jenkins/monitor/os-release-oracle-8 index b91c366e47ac..81c29c076b26 100644 --- a/core/src/test/resources/jenkins/monitor/os-release-oracle-8 +++ b/core/src/test/resources/jenkins/monitor/os-release-oracle-8 @@ -1,18 +1,18 @@ NAME="Oracle Linux Server" -VERSION="8.7" +VERSION="8.10" ID="ol" ID_LIKE="fedora" VARIANT="Server" VARIANT_ID="server" -VERSION_ID="8.7" +VERSION_ID="8.10" PLATFORM_ID="platform:el8" -PRETTY_NAME="Oracle Linux Server 8.7" +PRETTY_NAME="Oracle Linux Server 8.10" ANSI_COLOR="0;31" -CPE_NAME="cpe:/o:oracle:linux:8:7:server" +CPE_NAME="cpe:/o:oracle:linux:8:10:server" HOME_URL="https://linux.oracle.com/" -BUG_REPORT_URL="https://bugzilla.oracle.com/" +BUG_REPORT_URL="https://github.com/oracle/oracle-linux" ORACLE_BUGZILLA_PRODUCT="Oracle Linux 8" -ORACLE_BUGZILLA_PRODUCT_VERSION=8.7 +ORACLE_BUGZILLA_PRODUCT_VERSION=8.10 ORACLE_SUPPORT_PRODUCT="Oracle Linux" -ORACLE_SUPPORT_PRODUCT_VERSION=8.7 +ORACLE_SUPPORT_PRODUCT_VERSION=8.10 diff --git a/core/src/test/resources/jenkins/monitor/os-release-oracle-9 b/core/src/test/resources/jenkins/monitor/os-release-oracle-9 new file mode 100644 index 000000000000..2de011e2b755 --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-oracle-9 @@ -0,0 +1,18 @@ +NAME="Oracle Linux Server" +VERSION="9.4" +ID="ol" +ID_LIKE="fedora" +VARIANT="Server" +VARIANT_ID="server" +VERSION_ID="9.4" +PLATFORM_ID="platform:el9" +PRETTY_NAME="Oracle Linux Server 9.4" +ANSI_COLOR="0;31" +CPE_NAME="cpe:/o:oracle:linux:9:4:server" +HOME_URL="https://linux.oracle.com/" +BUG_REPORT_URL="https://github.com/oracle/oracle-linux" + +ORACLE_BUGZILLA_PRODUCT="Oracle Linux 9" +ORACLE_BUGZILLA_PRODUCT_VERSION=9.4 +ORACLE_SUPPORT_PRODUCT="Oracle Linux" +ORACLE_SUPPORT_PRODUCT_VERSION=9.4 diff --git a/core/src/test/resources/jenkins/monitor/os-release-redhat-8 b/core/src/test/resources/jenkins/monitor/os-release-redhat-8 index 2fafad589d61..44a109a3eefb 100644 --- a/core/src/test/resources/jenkins/monitor/os-release-redhat-8 +++ b/core/src/test/resources/jenkins/monitor/os-release-redhat-8 @@ -1,17 +1,17 @@ NAME="Red Hat Enterprise Linux" -VERSION="8.8 (Ootpa)" +VERSION="8.10 (Ootpa)" ID="rhel" ID_LIKE="fedora" -VERSION_ID="8.8" +VERSION_ID="8.10" PLATFORM_ID="platform:el8" -PRETTY_NAME="Red Hat Enterprise Linux 8.8 (Ootpa)" +PRETTY_NAME="Red Hat Enterprise Linux 8.10 (Ootpa)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:redhat:enterprise_linux:8::baseos" HOME_URL="https://www.redhat.com/" DOCUMENTATION_URL="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8" -BUG_REPORT_URL="https://bugzilla.redhat.com/" +BUG_REPORT_URL="https://issues.redhat.com/" REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 8" -REDHAT_BUGZILLA_PRODUCT_VERSION=8.8 +REDHAT_BUGZILLA_PRODUCT_VERSION=8.10 REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux" -REDHAT_SUPPORT_PRODUCT_VERSION="8.8" +REDHAT_SUPPORT_PRODUCT_VERSION="8.10" diff --git a/core/src/test/resources/jenkins/monitor/os-release-rocky-8 b/core/src/test/resources/jenkins/monitor/os-release-rocky-8 index 2fd5d0f4bcc6..514ac1171048 100644 --- a/core/src/test/resources/jenkins/monitor/os-release-rocky-8 +++ b/core/src/test/resources/jenkins/monitor/os-release-rocky-8 @@ -1,16 +1,17 @@ NAME="Rocky Linux" -VERSION="8.7 (Green Obsidian)" +VERSION="8.10 (Green Obsidian)" ID="rocky" ID_LIKE="rhel centos fedora" -VERSION_ID="8.7" +VERSION_ID="8.10" PLATFORM_ID="platform:el8" -PRETTY_NAME="Rocky Linux 8.7 (Green Obsidian)" +PRETTY_NAME="Rocky Linux 8.10 (Green Obsidian)" ANSI_COLOR="0;32" LOGO="fedora-logo-icon" CPE_NAME="cpe:/o:rocky:rocky:8:GA" HOME_URL="https://rockylinux.org/" BUG_REPORT_URL="https://bugs.rockylinux.org/" +SUPPORT_END="2029-05-31" ROCKY_SUPPORT_PRODUCT="Rocky-Linux-8" -ROCKY_SUPPORT_PRODUCT_VERSION="8.7" +ROCKY_SUPPORT_PRODUCT_VERSION="8.10" REDHAT_SUPPORT_PRODUCT="Rocky Linux" -REDHAT_SUPPORT_PRODUCT_VERSION="8.7" +REDHAT_SUPPORT_PRODUCT_VERSION="8.10" diff --git a/core/src/test/resources/jenkins/monitor/os-release-rocky-9 b/core/src/test/resources/jenkins/monitor/os-release-rocky-9 new file mode 100644 index 000000000000..637ae1a12926 --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-rocky-9 @@ -0,0 +1,17 @@ +NAME="Rocky Linux" +VERSION="9.4 (Blue Onyx)" +ID="rocky" +ID_LIKE="rhel centos fedora" +VERSION_ID="9.4" +PLATFORM_ID="platform:el9" +PRETTY_NAME="Rocky Linux 9.4 (Blue Onyx)" +ANSI_COLOR="0;32" +LOGO="fedora-logo-icon" +CPE_NAME="cpe:/o:rocky:rocky:9::baseos" +HOME_URL="https://rockylinux.org/" +BUG_REPORT_URL="https://bugs.rockylinux.org/" +SUPPORT_END="2032-05-31" +ROCKY_SUPPORT_PRODUCT="Rocky-Linux-9" +ROCKY_SUPPORT_PRODUCT_VERSION="9.4" +REDHAT_SUPPORT_PRODUCT="Rocky Linux" +REDHAT_SUPPORT_PRODUCT_VERSION="9.4" diff --git a/core/src/test/resources/jenkins/monitor/os-release-ubi-8 b/core/src/test/resources/jenkins/monitor/os-release-ubi-8 new file mode 100644 index 000000000000..44a109a3eefb --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-ubi-8 @@ -0,0 +1,17 @@ +NAME="Red Hat Enterprise Linux" +VERSION="8.10 (Ootpa)" +ID="rhel" +ID_LIKE="fedora" +VERSION_ID="8.10" +PLATFORM_ID="platform:el8" +PRETTY_NAME="Red Hat Enterprise Linux 8.10 (Ootpa)" +ANSI_COLOR="0;31" +CPE_NAME="cpe:/o:redhat:enterprise_linux:8::baseos" +HOME_URL="https://www.redhat.com/" +DOCUMENTATION_URL="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8" +BUG_REPORT_URL="https://issues.redhat.com/" + +REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 8" +REDHAT_BUGZILLA_PRODUCT_VERSION=8.10 +REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux" +REDHAT_SUPPORT_PRODUCT_VERSION="8.10" diff --git a/core/src/test/resources/jenkins/monitor/os-release-ubi-9 b/core/src/test/resources/jenkins/monitor/os-release-ubi-9 new file mode 100644 index 000000000000..66458c5674e2 --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-ubi-9 @@ -0,0 +1,18 @@ +NAME="Red Hat Enterprise Linux" +VERSION="9.4 (Plow)" +ID="rhel" +ID_LIKE="fedora" +VERSION_ID="9.4" +PLATFORM_ID="platform:el9" +PRETTY_NAME="Red Hat Enterprise Linux 9.4 (Plow)" +ANSI_COLOR="0;31" +LOGO="fedora-logo-icon" +CPE_NAME="cpe:/o:redhat:enterprise_linux:9::baseos" +HOME_URL="https://www.redhat.com/" +DOCUMENTATION_URL="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9" +BUG_REPORT_URL="https://issues.redhat.com/" + +REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 9" +REDHAT_BUGZILLA_PRODUCT_VERSION=9.4 +REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux" +REDHAT_SUPPORT_PRODUCT_VERSION="9.4" diff --git a/core/src/test/resources/jenkins/monitor/os-release-ubuntu-22.04 b/core/src/test/resources/jenkins/monitor/os-release-ubuntu-22.04 index 39240aa54b81..9027a5785123 100644 --- a/core/src/test/resources/jenkins/monitor/os-release-ubuntu-22.04 +++ b/core/src/test/resources/jenkins/monitor/os-release-ubuntu-22.04 @@ -1,7 +1,7 @@ -PRETTY_NAME="Ubuntu 22.04.3 LTS" +PRETTY_NAME="Ubuntu 22.04.4 LTS" NAME="Ubuntu" VERSION_ID="22.04" -VERSION="22.04.3 LTS (Jammy Jellyfish)" +VERSION="22.04.4 LTS (Jammy Jellyfish)" VERSION_CODENAME=jammy ID=ubuntu ID_LIKE=debian diff --git a/core/src/test/resources/jenkins/monitor/os-release-ubuntu-24.04 b/core/src/test/resources/jenkins/monitor/os-release-ubuntu-24.04 new file mode 100644 index 000000000000..18cf4770e81a --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-ubuntu-24.04 @@ -0,0 +1,13 @@ +PRETTY_NAME="Ubuntu 24.04.1 LTS" +NAME="Ubuntu" +VERSION_ID="24.04" +VERSION="24.04.1 LTS (Noble Numbat)" +VERSION_CODENAME=noble +ID=ubuntu +ID_LIKE=debian +HOME_URL="https://www.ubuntu.com/" +SUPPORT_URL="https://help.ubuntu.com/" +BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" +PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" +UBUNTU_CODENAME=noble +LOGO=ubuntu-logo From abef2ccd407dd173375b0daf04146c94cf10449a Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Sat, 9 Nov 2024 16:46:02 -0500 Subject: [PATCH 1184/1216] Introducing `ControllerToAgentCallable` and `ControllerToAgentFileCallable` (#9921) Co-authored-by: Vincent Latombe --- core/src/main/java/hudson/FilePath.java | 27 ++--------- core/src/main/java/hudson/Launcher.java | 47 +++--------------- .../jenkins/MasterToSlaveFileCallable.java | 22 +++------ .../agents/ControllerToAgentCallable.java | 48 +++++++++++++++++++ .../agents/ControllerToAgentFileCallable.java | 43 +++++++++++++++++ .../security/MasterToSlaveCallable.java | 20 +++----- .../jenkins/slaves/RemotingVersionInfo.java | 3 +- 7 files changed, 114 insertions(+), 96 deletions(-) create mode 100644 core/src/main/java/jenkins/agents/ControllerToAgentCallable.java create mode 100644 core/src/main/java/jenkins/agents/ControllerToAgentFileCallable.java diff --git a/core/src/main/java/hudson/FilePath.java b/core/src/main/java/hudson/FilePath.java index f5288b26d9d1..e48d7b45108f 100644 --- a/core/src/main/java/hudson/FilePath.java +++ b/core/src/main/java/hudson/FilePath.java @@ -124,7 +124,7 @@ import java.util.zip.GZIPInputStream; import java.util.zip.GZIPOutputStream; import jenkins.MasterToSlaveFileCallable; -import jenkins.SlaveToMasterFileCallable; +import jenkins.agents.ControllerToAgentFileCallable; import jenkins.model.Jenkins; import jenkins.security.MasterToSlaveCallable; import jenkins.util.ContextResettingExecutorService; @@ -520,21 +520,7 @@ public int archive(final ArchiverFactory factory, OutputStream os, final DirScan return act(new Archive(factory, out, scanner, verificationRoot, openOptions)); } - private static class Archive extends MasterToSlaveFileCallable { - private final ArchiverFactory factory; - private final OutputStream out; - private final DirScanner scanner; - private final String verificationRoot; - private OpenOption[] openOptions; - - Archive(ArchiverFactory factory, OutputStream out, DirScanner scanner, String verificationRoot, OpenOption... openOptions) { - this.factory = factory; - this.out = out; - this.scanner = scanner; - this.verificationRoot = verificationRoot; - this.openOptions = openOptions; - } - + private record Archive(ArchiverFactory factory, OutputStream out, DirScanner scanner, String verificationRoot, OpenOption... openOptions) implements ControllerToAgentFileCallable { @Override public Integer invoke(File f, VirtualChannel channel) throws IOException { try (Archiver a = factory.create(out)) { @@ -542,8 +528,6 @@ public Integer invoke(File f, VirtualChannel channel) throws IOException { return a.countEntries(); } } - - private static final long serialVersionUID = 1L; } public int archive(final ArchiverFactory factory, OutputStream os, final FileFilter filter) throws IOException, InterruptedException { @@ -1185,12 +1169,7 @@ public void copyFrom(org.apache.commons.fileupload.FileItem file) throws IOExcep /** * Code that gets executed on the machine where the {@link FilePath} is local. * Used to act on {@link FilePath}. - * Warning: implementations must be serializable, so prefer a static nested class to an inner class. - * - *

    - * Subtypes would likely want to extend from either {@link MasterToSlaveCallable} - * or {@link SlaveToMasterFileCallable}. - * + * A typical implementation would be a {@code record} implementing {@link ControllerToAgentFileCallable}. * @see FilePath#act(FileCallable) */ public interface FileCallable extends Serializable, RoleSensitive { diff --git a/core/src/main/java/hudson/Launcher.java b/core/src/main/java/hudson/Launcher.java index e6ba431691fb..195671b1b42e 100644 --- a/core/src/main/java/hudson/Launcher.java +++ b/core/src/main/java/hudson/Launcher.java @@ -55,6 +55,7 @@ import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; +import jenkins.agents.ControllerToAgentCallable; import jenkins.model.Jenkins; import jenkins.security.MasterToSlaveCallable; import jenkins.tasks.filters.EnvVarsFilterLocalRule; @@ -1114,8 +1115,7 @@ public Proc launch(ProcStarter ps) throws IOException { final String workDir = psPwd == null ? null : psPwd.getRemote(); try { - RemoteLaunchCallable remote = new RemoteLaunchCallable(ps.commands, ps.masks, ps.envs, in, ps.reverseStdin, out, ps.reverseStdout, err, ps.reverseStderr, ps.quiet, workDir, listener, ps.stdoutListener); - remote.setEnvVarsFilterRuleWrapper(envVarsFilterRuleWrapper); + RemoteLaunchCallable remote = new RemoteLaunchCallable(ps.commands, ps.masks, ps.envs, in, ps.reverseStdin, out, ps.reverseStdout, err, ps.reverseStderr, ps.quiet, workDir, listener, ps.stdoutListener, envVarsFilterRuleWrapper); // reset the rules to prevent build step without rules configuration to re-use those envVarsFilterRuleWrapper = null; return new ProcImpl(getChannel().call(remote)); @@ -1334,46 +1334,13 @@ public interface RemoteProcess { IOTriplet getIOtriplet(); } - private static class RemoteLaunchCallable extends MasterToSlaveCallable { - private final @NonNull List cmd; - private final @CheckForNull boolean[] masks; - private final @CheckForNull String[] env; - private final @CheckForNull InputStream in; - private final @CheckForNull OutputStream out; - private final @CheckForNull OutputStream err; - private final @CheckForNull String workDir; - private final @NonNull TaskListener listener; - private final @CheckForNull TaskListener stdoutListener; - private final boolean reverseStdin, reverseStdout, reverseStderr; - private final boolean quiet; - - private EnvVarsFilterRuleWrapper envVarsFilterRuleWrapper; - - RemoteLaunchCallable(@NonNull List cmd, @CheckForNull boolean[] masks, @CheckForNull String[] env, + private record RemoteLaunchCallable(@NonNull List cmd, @CheckForNull boolean[] masks, @CheckForNull String[] env, @CheckForNull InputStream in, boolean reverseStdin, @CheckForNull OutputStream out, boolean reverseStdout, @CheckForNull OutputStream err, boolean reverseStderr, - boolean quiet, @CheckForNull String workDir, @NonNull TaskListener listener, @CheckForNull TaskListener stdoutListener) { - this.cmd = new ArrayList<>(cmd); - this.masks = masks; - this.env = env; - this.in = in; - this.out = out; - this.err = err; - this.workDir = workDir; - this.listener = listener; - this.stdoutListener = stdoutListener; - this.reverseStdin = reverseStdin; - this.reverseStdout = reverseStdout; - this.reverseStderr = reverseStderr; - this.quiet = quiet; - } - - @Restricted(NoExternalUse.class) - public void setEnvVarsFilterRuleWrapper(EnvVarsFilterRuleWrapper envVarsFilterRuleWrapper) { - this.envVarsFilterRuleWrapper = envVarsFilterRuleWrapper; - } - + boolean quiet, @CheckForNull String workDir, + @NonNull TaskListener listener, @CheckForNull TaskListener stdoutListener, + @CheckForNull EnvVarsFilterRuleWrapper envVarsFilterRuleWrapper) implements ControllerToAgentCallable { @Override public RemoteProcess call() throws IOException { final Channel channel = getOpenChannelOrFail(); @@ -1433,8 +1400,6 @@ public IOTriplet getIOtriplet() { } }); } - - private static final long serialVersionUID = 1L; } private static class RemoteChannelLaunchCallable extends MasterToSlaveCallable { diff --git a/core/src/main/java/jenkins/MasterToSlaveFileCallable.java b/core/src/main/java/jenkins/MasterToSlaveFileCallable.java index 34afd3c11ae5..6296c6d65b28 100644 --- a/core/src/main/java/jenkins/MasterToSlaveFileCallable.java +++ b/core/src/main/java/jenkins/MasterToSlaveFileCallable.java @@ -1,26 +1,16 @@ package jenkins; import hudson.FilePath.FileCallable; -import hudson.remoting.VirtualChannel; -import java.io.File; -import jenkins.security.Roles; -import jenkins.slaves.RemotingVersionInfo; -import org.jenkinsci.remoting.RoleChecker; +import jenkins.agents.ControllerToAgentFileCallable; /** - * {@link FileCallable}s that are meant to be only used on the master. - * - * Note that the logic within {@link #invoke(File, VirtualChannel)} should use API of a minimum supported Remoting version. - * See {@link RemotingVersionInfo#getMinimumSupportedVersion()}. - * + * {@link FileCallable}s that could run on an agent. + * For new code, implement {@link ControllerToAgentFileCallable} + * which has the advantage that it can be used on {@code record}s. * @since 1.587 / 1.580.1 - * @param the return type; note that this must either be defined in your plugin or included in the stock JEP-200 whitelist + * @param the return type */ -public abstract class MasterToSlaveFileCallable implements FileCallable { - @Override - public void checkRoles(RoleChecker checker) throws SecurityException { - checker.check(this, Roles.SLAVE); - } +public abstract class MasterToSlaveFileCallable implements ControllerToAgentFileCallable { private static final long serialVersionUID = 1L; } diff --git a/core/src/main/java/jenkins/agents/ControllerToAgentCallable.java b/core/src/main/java/jenkins/agents/ControllerToAgentCallable.java new file mode 100644 index 000000000000..b724da77f6a2 --- /dev/null +++ b/core/src/main/java/jenkins/agents/ControllerToAgentCallable.java @@ -0,0 +1,48 @@ +/* + * The MIT License + * + * Copyright 2024 CloudBees, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package jenkins.agents; + +import hudson.remoting.Callable; +import jenkins.security.Roles; +import jenkins.slaves.RemotingVersionInfo; +import org.jenkinsci.remoting.RoleChecker; + +/** + * {@link Callable} meant to be serialized then run on an agent. + * A typical implementation will be a {@link Record} + * since instance state merely transfers a set of parameters to an agent JVM. + *

    Note that the logic within {@link #call} may not use Remoting APIs + * newer than {@link RemotingVersionInfo#getMinimumSupportedVersion}. + * (Core and plugin APIs will be identical to those run inside the controller.) + * @param the return type; note that this must either be defined in your plugin or included in the stock JEP-200 whitelist + * @since TODO + */ +public interface ControllerToAgentCallable extends Callable { + + @Override + default void checkRoles(RoleChecker checker) throws SecurityException { + checker.check(this, Roles.SLAVE); + } +} diff --git a/core/src/main/java/jenkins/agents/ControllerToAgentFileCallable.java b/core/src/main/java/jenkins/agents/ControllerToAgentFileCallable.java new file mode 100644 index 000000000000..22904e0c2e43 --- /dev/null +++ b/core/src/main/java/jenkins/agents/ControllerToAgentFileCallable.java @@ -0,0 +1,43 @@ +/* + * The MIT License + * + * Copyright 2024 CloudBees, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package jenkins.agents; + +import hudson.FilePath; +import jenkins.security.Roles; +import org.jenkinsci.remoting.RoleChecker; + +/** + * {@link FilePath.FileCallable} meant to be serialized then run on an agent. + * Like {@link ControllerToAgentCallable} this will typically be a {@link Record}. + * @param the return type; note that this must either be defined in your plugin or included in the stock JEP-200 whitelist + * @since TODO + */ +public interface ControllerToAgentFileCallable extends FilePath.FileCallable { + + @Override + default void checkRoles(RoleChecker checker) throws SecurityException { + checker.check(this, Roles.SLAVE); + } +} diff --git a/core/src/main/java/jenkins/security/MasterToSlaveCallable.java b/core/src/main/java/jenkins/security/MasterToSlaveCallable.java index db0406bcf548..7d3830bb9562 100644 --- a/core/src/main/java/jenkins/security/MasterToSlaveCallable.java +++ b/core/src/main/java/jenkins/security/MasterToSlaveCallable.java @@ -1,25 +1,17 @@ package jenkins.security; import hudson.remoting.Callable; -import jenkins.slaves.RemotingVersionInfo; -import org.jenkinsci.remoting.RoleChecker; +import jenkins.agents.ControllerToAgentCallable; /** - * Convenient {@link Callable} meant to be run on agent. - * - * Note that the logic within {@link #call()} should use API of a minimum supported Remoting version. - * See {@link RemotingVersionInfo#getMinimumSupportedVersion()}. - * + * {@link Callable} meant to be run on agent. + * For new code, implement {@link ControllerToAgentCallable} + * which has the advantage that it can be used on {@code record}s. * @author Kohsuke Kawaguchi * @since 1.587 / 1.580.1 - * @param the return type; note that this must either be defined in your plugin or included in the stock JEP-200 whitelist + * @param the return type */ -public abstract class MasterToSlaveCallable implements Callable { +public abstract class MasterToSlaveCallable implements ControllerToAgentCallable { private static final long serialVersionUID = 1L; - - @Override - public void checkRoles(RoleChecker checker) throws SecurityException { - checker.check(this, Roles.SLAVE); - } } diff --git a/core/src/main/java/jenkins/slaves/RemotingVersionInfo.java b/core/src/main/java/jenkins/slaves/RemotingVersionInfo.java index fb17b7243c9f..d595a21d22df 100644 --- a/core/src/main/java/jenkins/slaves/RemotingVersionInfo.java +++ b/core/src/main/java/jenkins/slaves/RemotingVersionInfo.java @@ -31,6 +31,7 @@ import java.util.Properties; import java.util.logging.Level; import java.util.logging.Logger; +import jenkins.agents.ControllerToAgentCallable; /** * Provides information about Remoting versions used within the core. @@ -100,7 +101,7 @@ public static VersionNumber getEmbeddedVersion() { /** * Gets Remoting version which is supported by the core. - * Jenkins core and plugins make invoke operations on agents (e.g. {@link jenkins.security.MasterToSlaveCallable}) + * Jenkins core and plugins make invoke operations on agents (e.g. {@link ControllerToAgentCallable}) * and use Remoting-internal API within them. * In such case this API should be present on the remote side. * This method defines a minimum expected version, so that all calls should use a compatible API. From ec448b51c05cc0f6803c1fff6f19ab7924577417 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Sat, 9 Nov 2024 16:46:17 -0500 Subject: [PATCH 1185/1216] Clarify SECURITY-3315 error code on client side (#9930) --- core/src/main/java/hudson/cli/CLIAction.java | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/hudson/cli/CLIAction.java b/core/src/main/java/hudson/cli/CLIAction.java index a2fc5f590197..a2e756267178 100644 --- a/core/src/main/java/hudson/cli/CLIAction.java +++ b/core/src/main/java/hudson/cli/CLIAction.java @@ -118,12 +118,26 @@ public boolean isWebSocketSupported() { return WebSockets.isSupported(); } + /** + * Unlike {@link HttpResponses#errorWithoutStack} this sends the message in a header rather than the body. + * (Currently the WebSocket CLI is unable to process the body in an error message.) + */ + private static HttpResponse statusWithExplanation(int code, String errorMessage) { + return new HttpResponse() { + @Override + public void generateResponse(StaplerRequest2 req, StaplerResponse2 rsp, Object node) { + rsp.setStatus(code); + rsp.setHeader("X-CLI-Error", errorMessage); + } + }; + } + /** * WebSocket endpoint. */ public HttpResponse doWs(StaplerRequest2 req) { if (!WebSockets.isSupported()) { - return HttpResponses.notFound(); + return statusWithExplanation(HttpServletResponse.SC_NOT_FOUND, "WebSocket is not supported in this servlet container (try the built-in Jetty instead)"); } if (ALLOW_WEBSOCKET == null) { final String actualOrigin = req.getHeader("Origin"); @@ -141,10 +155,10 @@ public HttpResponse doWs(StaplerRequest2 req) { if (actualOrigin == null || !actualOrigin.equals(expectedOrigin)) { LOGGER.log(Level.FINE, () -> "Rejecting origin: " + actualOrigin + "; expected was from request: " + expectedOrigin); - return HttpResponses.forbidden(); + return statusWithExplanation(HttpServletResponse.SC_FORBIDDEN, "Unexpected request origin (check your reverse proxy settings)"); } } else if (!ALLOW_WEBSOCKET) { - return HttpResponses.forbidden(); + return statusWithExplanation(HttpServletResponse.SC_FORBIDDEN, "WebSocket support for CLI disabled for this controller"); } Authentication authentication = Jenkins.getAuthentication2(); return WebSockets.upgrade(new WebSocketSession() { From e6ec0657b3ed551234299d409a045ea08e176173 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 10 Nov 2024 08:23:00 -0800 Subject: [PATCH 1186/1216] Update dependency org.jenkins-ci.plugins:junit to v1309 (#9957) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index 52f2d4492f62..3e9aaf9035c6 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -230,7 +230,7 @@ THE SOFTWARE. org.jenkins-ci.plugins junit - 1307.vdd5b_2646279e + 1309.v0078b_fecd6ed test diff --git a/war/pom.xml b/war/pom.xml index 2bfab98574ad..5529b08a0c12 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -314,7 +314,7 @@ THE SOFTWARE. org.jenkins-ci.plugins junit - 1307.vdd5b_2646279e + 1309.v0078b_fecd6ed hpi From 3daa3ac8c8d162bcc207dfd09f9590a34a9edfab Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 11 Nov 2024 19:53:34 +0000 Subject: [PATCH 1187/1216] Update dependency io.jenkins.plugins:prism-api to v1.29.0-18 (#9960) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index 3e9aaf9035c6..6d5f093edd85 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -352,7 +352,7 @@ THE SOFTWARE. io.jenkins.plugins prism-api - 1.29.0-17 + 1.29.0-18 hpi ${project.build.outputDirectory}/plugins prism-api.jpi From 10e21210dc743e34dfaa4001b7d6bd0a49681b98 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 11 Nov 2024 15:19:59 -0800 Subject: [PATCH 1188/1216] Update dependency io.jenkins.plugins:design-library to v323 (#9961) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index 6d5f093edd85..4eb4d0708f7c 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -344,7 +344,7 @@ THE SOFTWARE. io.jenkins.plugins design-library - 307.vecc0205ca_707 + 323.v301efa_39c6eb_ hpi ${project.build.outputDirectory}/plugins design-library.jpi From f621c280f027abcf56c9bb9f26ef3d8a580b1a8c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 11 Nov 2024 15:20:24 -0800 Subject: [PATCH 1189/1216] Update dependency org.jenkins-ci.main:jenkins-test-harness to v2351 (#9962) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index 4eb4d0708f7c..315232716108 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -178,7 +178,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-test-harness - 2345.v699712948764 + 2351.v862801ec05f9 test From 4f5aff2fde393a356ab8e7a3eddb8f6743f16bfd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 11 Nov 2024 15:21:01 -0800 Subject: [PATCH 1190/1216] Update softprops/action-gh-release action to v2.1.0 (#9963) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/publish-release-artifact.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/publish-release-artifact.yml b/.github/workflows/publish-release-artifact.yml index e0268a61af0b..3bd728e9632b 100644 --- a/.github/workflows/publish-release-artifact.yml +++ b/.github/workflows/publish-release-artifact.yml @@ -73,7 +73,7 @@ jobs: wget -q https://get.jenkins.io/${REPO}/${PROJECT_VERSION}/${FILE_NAME} - name: Upload Release Asset id: upload-war - uses: softprops/action-gh-release@e7a8f85e1c67a31e6ed99a94b41bd0b71bbee6b8 # v2.0.9 + uses: softprops/action-gh-release@01570a1f39cb168c169c802c3bceb9e93fb10974 # v2.1.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -108,7 +108,7 @@ jobs: - name: Upload Release Asset id: upload-deb if: always() - uses: softprops/action-gh-release@e7a8f85e1c67a31e6ed99a94b41bd0b71bbee6b8 # v2.0.9 + uses: softprops/action-gh-release@01570a1f39cb168c169c802c3bceb9e93fb10974 # v2.1.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -144,7 +144,7 @@ jobs: - name: Upload Release Asset id: upload-rpm if: always() - uses: softprops/action-gh-release@e7a8f85e1c67a31e6ed99a94b41bd0b71bbee6b8 # v2.0.9 + uses: softprops/action-gh-release@01570a1f39cb168c169c802c3bceb9e93fb10974 # v2.1.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -180,7 +180,7 @@ jobs: - name: Upload Release Asset id: upload-msi if: always() - uses: softprops/action-gh-release@e7a8f85e1c67a31e6ed99a94b41bd0b71bbee6b8 # v2.0.9 + uses: softprops/action-gh-release@01570a1f39cb168c169c802c3bceb9e93fb10974 # v2.1.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -216,7 +216,7 @@ jobs: - name: Upload Release Asset id: upload-suse-rpm if: always() - uses: softprops/action-gh-release@e7a8f85e1c67a31e6ed99a94b41bd0b71bbee6b8 # v2.0.9 + uses: softprops/action-gh-release@01570a1f39cb168c169c802c3bceb9e93fb10974 # v2.1.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: From a30309847a598d7d444f10bef744ee4d5c755e12 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 12 Nov 2024 13:58:29 +0000 Subject: [PATCH 1191/1216] [maven-release-plugin] prepare release jenkins-2.485 --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 6 +++--- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty12-ee9/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index b7e685a4658b..85fc74ba0c55 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.485 jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 2473629d23cc..1672e83a5f23 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.485 cli diff --git a/core/pom.xml b/core/pom.xml index 9bff5e5ad0b2..195b076d950e 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.485 jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index fe1e89a120dc..275e48d5f3ae 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.485 jenkins-coverage diff --git a/pom.xml b/pom.xml index 6780dd0bf231..82e397102c21 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.485 pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - ${scmTag} + jenkins-2.485 https://github.com/jenkinsci/jenkins @@ -75,7 +75,7 @@ THE SOFTWARE. 2.485 -SNAPSHOT - 2024-11-05T13:51:04Z + 2024-11-12T10:33:23Z github diff --git a/test/pom.xml b/test/pom.xml index 315232716108..12e516428cd0 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.485 jenkins-test diff --git a/war/pom.xml b/war/pom.xml index 5529b08a0c12..65bf6d229634 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.485 jenkins-war diff --git a/websocket/jetty12-ee9/pom.xml b/websocket/jetty12-ee9/pom.xml index 2253163b3c4c..05543de563ab 100644 --- a/websocket/jetty12-ee9/pom.xml +++ b/websocket/jetty12-ee9/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.485 ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 178413f92c8e..d408e4f7e367 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.485 ../.. From 9b51d52f7af8bed15de41f141275d287281631b1 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 12 Nov 2024 13:58:46 +0000 Subject: [PATCH 1192/1216] [maven-release-plugin] prepare for next development iteration --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 8 ++++---- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty12-ee9/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 12 insertions(+), 12 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 85fc74ba0c55..b7e685a4658b 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.485 + ${revision}${changelist} jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 1672e83a5f23..2473629d23cc 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.485 + ${revision}${changelist} cli diff --git a/core/pom.xml b/core/pom.xml index 195b076d950e..9bff5e5ad0b2 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.485 + ${revision}${changelist} jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index 275e48d5f3ae..fe1e89a120dc 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.485 + ${revision}${changelist} jenkins-coverage diff --git a/pom.xml b/pom.xml index 82e397102c21..20c5abc8dbf8 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.485 + ${revision}${changelist} pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - jenkins-2.485 + ${scmTag} https://github.com/jenkinsci/jenkins @@ -73,9 +73,9 @@ THE SOFTWARE. - 2.485 + 2.486 -SNAPSHOT - 2024-11-12T10:33:23Z + 2024-11-12T13:58:29Z github diff --git a/test/pom.xml b/test/pom.xml index 12e516428cd0..315232716108 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.485 + ${revision}${changelist} jenkins-test diff --git a/war/pom.xml b/war/pom.xml index 65bf6d229634..5529b08a0c12 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.485 + ${revision}${changelist} jenkins-war diff --git a/websocket/jetty12-ee9/pom.xml b/websocket/jetty12-ee9/pom.xml index 05543de563ab..2253163b3c4c 100644 --- a/websocket/jetty12-ee9/pom.xml +++ b/websocket/jetty12-ee9/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.485 + ${revision}${changelist} ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index d408e4f7e367..178413f92c8e 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.485 + ${revision}${changelist} ../.. From 89f35da23666fe0e3feb5bb8d658a505d512f2f2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 12 Nov 2024 12:53:40 -0800 Subject: [PATCH 1193/1216] Update dependency org.jenkins-ci.plugins:command-launcher to v116 (#9966) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/pom.xml b/war/pom.xml index 5529b08a0c12..efdc77a77ea1 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -439,7 +439,7 @@ THE SOFTWARE. org.jenkins-ci.plugins command-launcher - 115.vd8b_301cc15d0 + 116.vd85919c54a_d6 hpi From 9e88d0f24b1401cf32991326475b1a89cb5349aa Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 13 Nov 2024 12:09:20 -0800 Subject: [PATCH 1194/1216] Update jenkins/ath Docker tag to v6081 (#9967) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- ath.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ath.sh b/ath.sh index 642d6f3a6c71..e25bf4b945e8 100644 --- a/ath.sh +++ b/ath.sh @@ -6,7 +6,7 @@ set -o xtrace cd "$(dirname "$0")" # https://github.com/jenkinsci/acceptance-test-harness/releases -export ATH_VERSION=6072.vc7e4e6a_970b_c +export ATH_VERSION=6081.v29b_ce3c2771c if [[ $# -eq 0 ]]; then export JDK=17 From 11f036324f54893c8fe8ec3df41999ec6879f228 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 14 Nov 2024 07:20:35 +0000 Subject: [PATCH 1195/1216] Update dependency postcss to v8.4.48 (#9969) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index c806a3138222..e3da41b6af25 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "globals": "15.12.0", "handlebars-loader": "1.7.3", "mini-css-extract-plugin": "2.9.2", - "postcss": "8.4.47", + "postcss": "8.4.48", "postcss-loader": "8.1.1", "postcss-preset-env": "10.0.9", "postcss-scss": "4.0.9", diff --git a/yarn.lock b/yarn.lock index 7dfcd772fd16..b8b58dec6b44 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4381,7 +4381,7 @@ __metadata: jquery: "npm:3.7.1" lodash: "npm:4.17.21" mini-css-extract-plugin: "npm:2.9.2" - postcss: "npm:8.4.47" + postcss: "npm:8.4.48" postcss-loader: "npm:8.1.1" postcss-preset-env: "npm:10.0.9" postcss-scss: "npm:4.0.9" @@ -5241,10 +5241,10 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1, picocolors@npm:^1.1.0": - version: 1.1.0 - resolution: "picocolors@npm:1.1.0" - checksum: 10c0/86946f6032148801ef09c051c6fb13b5cf942eaf147e30ea79edb91dd32d700934edebe782a1078ff859fb2b816792e97ef4dab03d7f0b804f6b01a0df35e023 +"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1, picocolors@npm:^1.1.1": + version: 1.1.1 + resolution: "picocolors@npm:1.1.1" + checksum: 10c0/e2e3e8170ab9d7c7421969adaa7e1b31434f789afb9b3f115f6b96d91945041ac3ceb02e9ec6fe6510ff036bcc0bf91e69a1772edc0b707e12b19c0f2d6bcf58 languageName: node linkType: hard @@ -6087,14 +6087,14 @@ __metadata: languageName: node linkType: hard -"postcss@npm:8.4.47, postcss@npm:^8.4.33, postcss@npm:^8.4.38, postcss@npm:^8.4.47": - version: 8.4.47 - resolution: "postcss@npm:8.4.47" +"postcss@npm:8.4.48, postcss@npm:^8.4.33, postcss@npm:^8.4.38, postcss@npm:^8.4.47": + version: 8.4.48 + resolution: "postcss@npm:8.4.48" dependencies: nanoid: "npm:^3.3.7" - picocolors: "npm:^1.1.0" + picocolors: "npm:^1.1.1" source-map-js: "npm:^1.2.1" - checksum: 10c0/929f68b5081b7202709456532cee2a145c1843d391508c5a09de2517e8c4791638f71dd63b1898dba6712f8839d7a6da046c72a5e44c162e908f5911f57b5f44 + checksum: 10c0/d586361fda12fc7ab5650ce9b5763fc61d6ea2cecac9da98fceea6a3f27e42ed34db830582411bc06743492d9bb414c52b0c81da65440682d244d692da2f928a languageName: node linkType: hard From 4b2ab447de6e5305758f42c8c94f3aee5d0ae489 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 14 Nov 2024 07:54:48 -0800 Subject: [PATCH 1196/1216] Update dependency org.jenkins-ci.plugins:script-security to v1369 (#9970) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index 315232716108..a81c2b636040 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -118,7 +118,7 @@ THE SOFTWARE. org.jenkins-ci.plugins script-security - 1367.vdf2fc45f229c + 1369.v9b_98a_4e95b_2d org.jenkins-ci.plugins.workflow diff --git a/war/pom.xml b/war/pom.xml index efdc77a77ea1..43af909f06e2 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -307,7 +307,7 @@ THE SOFTWARE. org.jenkins-ci.plugins script-security - 1367.vdf2fc45f229c + 1369.v9b_98a_4e95b_2d hpi From 22e48f7fcd3e8d04a299c2bad121601aeec47e23 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 14 Nov 2024 07:55:42 -0800 Subject: [PATCH 1197/1216] Update dependency postcss-preset-env to v10.1.0 (#9971) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 222 +++++++++++++++++++++++++++++---------------------- 2 files changed, 126 insertions(+), 98 deletions(-) diff --git a/package.json b/package.json index e3da41b6af25..8c1af17b3924 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "mini-css-extract-plugin": "2.9.2", "postcss": "8.4.48", "postcss-loader": "8.1.1", - "postcss-preset-env": "10.0.9", + "postcss-preset-env": "10.1.0", "postcss-scss": "4.0.9", "prettier": "3.3.3", "sass": "1.80.6", diff --git a/yarn.lock b/yarn.lock index b8b58dec6b44..762381ea1d88 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1166,26 +1166,26 @@ __metadata: languageName: node linkType: hard -"@csstools/css-calc@npm:^2.0.4": - version: 2.0.4 - resolution: "@csstools/css-calc@npm:2.0.4" +"@csstools/css-calc@npm:^2.1.0": + version: 2.1.0 + resolution: "@csstools/css-calc@npm:2.1.0" peerDependencies: "@csstools/css-parser-algorithms": ^3.0.4 "@csstools/css-tokenizer": ^3.0.3 - checksum: 10c0/ecb68fc9f8d930b861d5c9c5d4fc6eb43dabc619a4cd6c82dc18034ee746f907dba106fa6cdb909ac727fbfc9b1f7ceac1f356641542faeb2fab99c5fcd52a2e + checksum: 10c0/c707bb533a6ea63ed5bb4b8f1ffcbf3cd2daf970a6d76d42b684243426f5aa7513179a8f34d2e3c5a85df3870f44d3bc2850ca40b085c5fe00b41a291a2ecae2 languageName: node linkType: hard -"@csstools/css-color-parser@npm:^3.0.5": - version: 3.0.5 - resolution: "@csstools/css-color-parser@npm:3.0.5" +"@csstools/css-color-parser@npm:^3.0.6": + version: 3.0.6 + resolution: "@csstools/css-color-parser@npm:3.0.6" dependencies: "@csstools/color-helpers": "npm:^5.0.1" - "@csstools/css-calc": "npm:^2.0.4" + "@csstools/css-calc": "npm:^2.1.0" peerDependencies: "@csstools/css-parser-algorithms": ^3.0.4 "@csstools/css-tokenizer": ^3.0.3 - checksum: 10c0/535e2a38222ad7ee9e1143c3ef09ba07b2e70a4214bbdf7ca13398388b8d2db9ee295fe15d9d306342036e554d97dd235567a8c8ee03fea6825483f1c4dbbf7e + checksum: 10c0/7c4f42a704c8c44cece75f5dcd647a83634dec0f44d398ae1fbdc6e8527d4fbdc3a809eaaba3b739edf8e3c09d62c28234636f250f9b0b0d52a599e824c22047 languageName: node linkType: hard @@ -1237,33 +1237,33 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-color-function@npm:^4.0.5": - version: 4.0.5 - resolution: "@csstools/postcss-color-function@npm:4.0.5" +"@csstools/postcss-color-function@npm:^4.0.6": + version: 4.0.6 + resolution: "@csstools/postcss-color-function@npm:4.0.6" dependencies: - "@csstools/css-color-parser": "npm:^3.0.5" + "@csstools/css-color-parser": "npm:^3.0.6" "@csstools/css-parser-algorithms": "npm:^3.0.4" "@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/b47cc4567445eb12dd3e67a4298470d62a449a4d754fd4dd32eb78b23615ba6bd1fe8dacccc6c95087ce8749a6552bace8de0b9b6eee0c9a7b7202a0bcb8fcac + checksum: 10c0/facbae01fd58898a176219cfcffee9ffb06fb466a2c439fd28403819e48778b682621b86a69682c0f758c659f8ec5f14eca1a9612b12b8777a2198173f386b49 languageName: node linkType: hard -"@csstools/postcss-color-mix-function@npm:^3.0.5": - version: 3.0.5 - resolution: "@csstools/postcss-color-mix-function@npm:3.0.5" +"@csstools/postcss-color-mix-function@npm:^3.0.6": + version: 3.0.6 + resolution: "@csstools/postcss-color-mix-function@npm:3.0.6" dependencies: - "@csstools/css-color-parser": "npm:^3.0.5" + "@csstools/css-color-parser": "npm:^3.0.6" "@csstools/css-parser-algorithms": "npm:^3.0.4" "@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/a17d20dcc42d2c1ccd7a5ceb8d1413133ae9461bf973a9aad997a5782bf4cbbd847aef06accc20fa391ac6fbd44a1003e18c30a621d7c77052d4256fe39619aa + checksum: 10c0/66b906b2425ed137b1c2ef3d166036719ae69039668385dccce4e02bd91e41733b37dd3c884b74a2999067bfe8a8d8d1afa4082ef21a0bf044ba7e7fffb77e01 languageName: node linkType: hard @@ -1281,16 +1281,16 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-exponential-functions@npm:^2.0.4": - version: 2.0.4 - resolution: "@csstools/postcss-exponential-functions@npm:2.0.4" +"@csstools/postcss-exponential-functions@npm:^2.0.5": + version: 2.0.5 + resolution: "@csstools/postcss-exponential-functions@npm:2.0.5" dependencies: - "@csstools/css-calc": "npm:^2.0.4" + "@csstools/css-calc": "npm:^2.1.0" "@csstools/css-parser-algorithms": "npm:^3.0.4" "@csstools/css-tokenizer": "npm:^3.0.3" peerDependencies: postcss: ^8.4 - checksum: 10c0/b174faa8782b7b3f3a9636412f90963740ff033c6506acf662f002fa07f59b370eb23937dbe3f1a05d7df277373f662d6970237d34ae938cf282a0b8dbde9a47 + checksum: 10c0/8935cb69f70d7448aa5a3dcdfd188bdcfbc34e9a99131306947df8847126272773212011dcff85e10bcee4c9d01f94f7f8557ef93933122a0b82743185684ab1 languageName: node linkType: hard @@ -1306,46 +1306,46 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-gamut-mapping@npm:^2.0.5": - version: 2.0.5 - resolution: "@csstools/postcss-gamut-mapping@npm:2.0.5" +"@csstools/postcss-gamut-mapping@npm:^2.0.6": + version: 2.0.6 + resolution: "@csstools/postcss-gamut-mapping@npm:2.0.6" dependencies: - "@csstools/css-color-parser": "npm:^3.0.5" + "@csstools/css-color-parser": "npm:^3.0.6" "@csstools/css-parser-algorithms": "npm:^3.0.4" "@csstools/css-tokenizer": "npm:^3.0.3" peerDependencies: postcss: ^8.4 - checksum: 10c0/a9d7365bed5c323dddad06d53c137ef3508870e541c6275dbdf3a73a50d44437830c22fa62c510d9316441d1e9f3b5552730778d1b73d083422245673bd00dac + checksum: 10c0/8a3f012774ab261924cc9f3519caa87a25a6abcd70d78f622144d8e7126a687bddbdaa92995fc30f53355759cd5971e71ac099b6b8cb85c89d8ca86455588e3b languageName: node linkType: hard -"@csstools/postcss-gradients-interpolation-method@npm:^5.0.5": - version: 5.0.5 - resolution: "@csstools/postcss-gradients-interpolation-method@npm:5.0.5" +"@csstools/postcss-gradients-interpolation-method@npm:^5.0.6": + version: 5.0.6 + resolution: "@csstools/postcss-gradients-interpolation-method@npm:5.0.6" dependencies: - "@csstools/css-color-parser": "npm:^3.0.5" + "@csstools/css-color-parser": "npm:^3.0.6" "@csstools/css-parser-algorithms": "npm:^3.0.4" "@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/0ef258478270005ab3a879132dc6dbf2bf80788c79861515c826607953c551df1c2ef7005ba9592c31c6dad332d12ee247928a9fdd1569a51927a18a75dcc865 + checksum: 10c0/0d97be76837f972ea323b58189ded2310b618ad94b40777464d0d8ac050b557ca9fd1f20af5ada105d61574cc9d8c119ae0daf294a3aacaaa89926f864d9d674 languageName: node linkType: hard -"@csstools/postcss-hwb-function@npm:^4.0.5": - version: 4.0.5 - resolution: "@csstools/postcss-hwb-function@npm:4.0.5" +"@csstools/postcss-hwb-function@npm:^4.0.6": + version: 4.0.6 + resolution: "@csstools/postcss-hwb-function@npm:4.0.6" dependencies: - "@csstools/css-color-parser": "npm:^3.0.5" + "@csstools/css-color-parser": "npm:^3.0.6" "@csstools/css-parser-algorithms": "npm:^3.0.4" "@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/9ce0a66bf288c9ec7f1fc28323d56ec54d38a30cb2ab722d1afbd46ec070cc5e61121bacb503803cb00293fc5ed117269969ac21071d7f4ce94b385c96168445 + checksum: 10c0/e7bcc98095ef2873a7b1a7326f1618bbeecc1c78660b23805bbefd8ec067bf2f35f2a2d4675be51a02d2280046f36f74d55f6af78e3ce107b82624d1a421ffcf languageName: node linkType: hard @@ -1447,17 +1447,17 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-media-minmax@npm:^2.0.4": - version: 2.0.4 - resolution: "@csstools/postcss-media-minmax@npm:2.0.4" +"@csstools/postcss-media-minmax@npm:^2.0.5": + version: 2.0.5 + resolution: "@csstools/postcss-media-minmax@npm:2.0.5" dependencies: - "@csstools/css-calc": "npm:^2.0.4" + "@csstools/css-calc": "npm:^2.1.0" "@csstools/css-parser-algorithms": "npm:^3.0.4" "@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/media-query-list-parser": "npm:^4.0.2" peerDependencies: postcss: ^8.4 - checksum: 10c0/f9fe1e99b83a0724250f9426335da6f13bfbc28be6d10ebfafbf037766fc5245240ec33be7e68c9c5b60c013fbc2fa0be96fbed0d41383c919ee9e6f1b8225ce + checksum: 10c0/0d17782076fcaba2c3c85bd769fc102d95809e9ee6141ad9de706ee116466cada62424fd68623c58cc2456771725291c356e550377ba73a102ab6fe628931e30 languageName: node linkType: hard @@ -1497,18 +1497,18 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-oklab-function@npm:^4.0.5": - version: 4.0.5 - resolution: "@csstools/postcss-oklab-function@npm:4.0.5" +"@csstools/postcss-oklab-function@npm:^4.0.6": + version: 4.0.6 + resolution: "@csstools/postcss-oklab-function@npm:4.0.6" dependencies: - "@csstools/css-color-parser": "npm:^3.0.5" + "@csstools/css-color-parser": "npm:^3.0.6" "@csstools/css-parser-algorithms": "npm:^3.0.4" "@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/a49e2ee60066f7da18316c7c80e5b2ced286ec962052f83c01f1952a1c5fe5b65ba9803a04698260125270a1dd47416f0b287a8f42e591f0d88c9a660ae844ce + checksum: 10c0/74ec74eb7171881deeff7a79e0dc696097fb53dcdcd9627d9559cd7be63f41adecec06c1e88ddd5d8a37f4705715d1c0c135ca2b001fb70fdc0b76ab1e491b66 languageName: node linkType: hard @@ -1523,18 +1523,31 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-relative-color-syntax@npm:^3.0.5": - version: 3.0.5 - resolution: "@csstools/postcss-relative-color-syntax@npm:3.0.5" +"@csstools/postcss-random-function@npm:^1.0.0": + version: 1.0.1 + resolution: "@csstools/postcss-random-function@npm:1.0.1" dependencies: - "@csstools/css-color-parser": "npm:^3.0.5" + "@csstools/css-calc": "npm:^2.1.0" + "@csstools/css-parser-algorithms": "npm:^3.0.4" + "@csstools/css-tokenizer": "npm:^3.0.3" + peerDependencies: + postcss: ^8.4 + checksum: 10c0/5e8f29c024aa6ed1f89ee8b9c8ece39c8e72602d63faa82d9684e3183828f01971cf2f760b7d5b773605d44a4ea661d6d4389ec03f7e21002f9aa9e8db613a61 + languageName: node + linkType: hard + +"@csstools/postcss-relative-color-syntax@npm:^3.0.6": + version: 3.0.6 + resolution: "@csstools/postcss-relative-color-syntax@npm:3.0.6" + dependencies: + "@csstools/css-color-parser": "npm:^3.0.6" "@csstools/css-parser-algorithms": "npm:^3.0.4" "@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/505da97e7b219095a9fb6fa0ad6c6a1358ce1f5debada00564e635e1aa11d034c588be9ce2f76263172a8d1bd07d90647fde826f4565de22dcfc0a76beb68ff1 + checksum: 10c0/207ae711831f8ae9170093dbea3727cd6f32ca31d22c1231b5b678592679eb49e329e87ea403714b8e10feb5b9137780364cc7e1e7d8cc4c90d47483a42132dc languageName: node linkType: hard @@ -1549,16 +1562,29 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-stepped-value-functions@npm:^4.0.4": - version: 4.0.4 - resolution: "@csstools/postcss-stepped-value-functions@npm:4.0.4" +"@csstools/postcss-sign-functions@npm:^1.0.0": + version: 1.0.0 + resolution: "@csstools/postcss-sign-functions@npm:1.0.0" dependencies: - "@csstools/css-calc": "npm:^2.0.4" + "@csstools/css-calc": "npm:^2.1.0" "@csstools/css-parser-algorithms": "npm:^3.0.4" "@csstools/css-tokenizer": "npm:^3.0.3" peerDependencies: postcss: ^8.4 - checksum: 10c0/c8413a855a5ee9ad5b800263545d24d1bbd815f5ae0693c7dfd10c5f5b47bae5a9d985efdb2c46b03194ed3cae39f3d82c3ccfde502dee0b35d620fa539906be + checksum: 10c0/ec745b2f1e714ffead43ade5964234dfc1750c3a71d2e29df862ab3f79ba4a1275187b270b4c226bbb1155bee8e9e63c35597b4f4cb3effaa632e5e07e422344 + languageName: node + linkType: hard + +"@csstools/postcss-stepped-value-functions@npm:^4.0.5": + version: 4.0.5 + resolution: "@csstools/postcss-stepped-value-functions@npm:4.0.5" + dependencies: + "@csstools/css-calc": "npm:^2.1.0" + "@csstools/css-parser-algorithms": "npm:^3.0.4" + "@csstools/css-tokenizer": "npm:^3.0.3" + peerDependencies: + postcss: ^8.4 + checksum: 10c0/76f1f60c24b9e6a80b044eb19f37c1816788a2335fbf7c25f3fbea1cd7104857f424a451dcff60e4f8841618c6b6ffa6091f8b840d6d5930c1c7100c2f8ae74b languageName: node linkType: hard @@ -1574,16 +1600,16 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-trigonometric-functions@npm:^4.0.4": - version: 4.0.4 - resolution: "@csstools/postcss-trigonometric-functions@npm:4.0.4" +"@csstools/postcss-trigonometric-functions@npm:^4.0.5": + version: 4.0.5 + resolution: "@csstools/postcss-trigonometric-functions@npm:4.0.5" dependencies: - "@csstools/css-calc": "npm:^2.0.4" + "@csstools/css-calc": "npm:^2.1.0" "@csstools/css-parser-algorithms": "npm:^3.0.4" "@csstools/css-tokenizer": "npm:^3.0.3" peerDependencies: postcss: ^8.4 - checksum: 10c0/344c07961d24894f315faebf43c0128167fb2e33964c70d0d39d99a051c045678511d7378959105d672c5286a5360fde28fe390cdebfe823f3949e3cd1d50c4e + checksum: 10c0/b8518c8b81da047448dcee12a5f3716dbc19671333387a4a673991a16f1a120441d2768de8a30ce1e2ef8d0d76509b9509f506ef1e8630da84834451414b23a3 languageName: node linkType: hard @@ -3158,10 +3184,10 @@ __metadata: languageName: node linkType: hard -"cssdb@npm:^8.1.2": - version: 8.1.2 - resolution: "cssdb@npm:8.1.2" - checksum: 10c0/056149e713a78921f56d9ef0cd734577cedb93c27966c3d0eab01956a2aa8d3c260a911766064b57ded8b4d9c55dd5275626cbb022ccd8d2d0b93b53fefd1603 +"cssdb@npm:^8.2.1": + version: 8.2.1 + resolution: "cssdb@npm:8.2.1" + checksum: 10c0/d27d7db0a39e1105181aac119a98d6c92cd5ceba2e8bd349cdf2ba4a8d9ead149b685a1dba9542ca24f094cc70eca4a3e02973fe1f74c11a373b508606e5e1c0 languageName: node linkType: hard @@ -4383,7 +4409,7 @@ __metadata: mini-css-extract-plugin: "npm:2.9.2" postcss: "npm:8.4.48" postcss-loader: "npm:8.1.1" - postcss-preset-env: "npm:10.0.9" + postcss-preset-env: "npm:10.1.0" postcss-scss: "npm:4.0.9" prettier: "npm:3.3.3" sass: "npm:1.80.6" @@ -5337,18 +5363,18 @@ __metadata: languageName: node linkType: hard -"postcss-color-functional-notation@npm:^7.0.5": - version: 7.0.5 - resolution: "postcss-color-functional-notation@npm:7.0.5" +"postcss-color-functional-notation@npm:^7.0.6": + version: 7.0.6 + resolution: "postcss-color-functional-notation@npm:7.0.6" dependencies: - "@csstools/css-color-parser": "npm:^3.0.5" + "@csstools/css-color-parser": "npm:^3.0.6" "@csstools/css-parser-algorithms": "npm:^3.0.4" "@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/5e1771b8a43abd3cb18142842e8ac100b205f37a6757d6686da49e0c61ecf33d09244d256f3802962105e7ef79fbde2dffbfc1eedf1700198c54d2d5e48f3dc1 + checksum: 10c0/15f6dfc9a24d6f5186fb054623a92bcf9e804f4eaa35b339551a8048cdb0c7bd2e4655fdbb09a0c9a89f854e9fb1d71e298e8749597660ac034e79bd0d38d7dd languageName: node linkType: hard @@ -5559,18 +5585,18 @@ __metadata: languageName: node linkType: hard -"postcss-lab-function@npm:^7.0.5": - version: 7.0.5 - resolution: "postcss-lab-function@npm:7.0.5" +"postcss-lab-function@npm:^7.0.6": + version: 7.0.6 + resolution: "postcss-lab-function@npm:7.0.6" dependencies: - "@csstools/css-color-parser": "npm:^3.0.5" + "@csstools/css-color-parser": "npm:^3.0.6" "@csstools/css-parser-algorithms": "npm:^3.0.4" "@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/b688f6332ac12974452c97c5a40f4d0a604ce16b074124a1106add9cf9c25fbe7717d23423d6e92d937dc6e288e03e885b70e0793b96f41d28d2f7403bce7bf5 + checksum: 10c0/8b8d498dbc939ee79737b29232b39d09cbda26cc92e8926fb74fe56a1bb05af1198e85a67a822f39cc69109ac6757a6ff7b20842ba5ffafce891abc9bc1c3c68 languageName: node linkType: hard @@ -5887,19 +5913,19 @@ __metadata: languageName: node linkType: hard -"postcss-preset-env@npm:10.0.9": - version: 10.0.9 - resolution: "postcss-preset-env@npm:10.0.9" +"postcss-preset-env@npm:10.1.0": + version: 10.1.0 + resolution: "postcss-preset-env@npm:10.1.0" dependencies: "@csstools/postcss-cascade-layers": "npm:^5.0.1" - "@csstools/postcss-color-function": "npm:^4.0.5" - "@csstools/postcss-color-mix-function": "npm:^3.0.5" + "@csstools/postcss-color-function": "npm:^4.0.6" + "@csstools/postcss-color-mix-function": "npm:^3.0.6" "@csstools/postcss-content-alt-text": "npm:^2.0.4" - "@csstools/postcss-exponential-functions": "npm:^2.0.4" + "@csstools/postcss-exponential-functions": "npm:^2.0.5" "@csstools/postcss-font-format-keywords": "npm:^4.0.0" - "@csstools/postcss-gamut-mapping": "npm:^2.0.5" - "@csstools/postcss-gradients-interpolation-method": "npm:^5.0.5" - "@csstools/postcss-hwb-function": "npm:^4.0.5" + "@csstools/postcss-gamut-mapping": "npm:^2.0.6" + "@csstools/postcss-gradients-interpolation-method": "npm:^5.0.6" + "@csstools/postcss-hwb-function": "npm:^4.0.6" "@csstools/postcss-ic-unit": "npm:^4.0.0" "@csstools/postcss-initial": "npm:^2.0.0" "@csstools/postcss-is-pseudo-class": "npm:^5.0.1" @@ -5909,27 +5935,29 @@ __metadata: "@csstools/postcss-logical-overscroll-behavior": "npm:^2.0.0" "@csstools/postcss-logical-resize": "npm:^3.0.0" "@csstools/postcss-logical-viewport-units": "npm:^3.0.3" - "@csstools/postcss-media-minmax": "npm:^2.0.4" + "@csstools/postcss-media-minmax": "npm:^2.0.5" "@csstools/postcss-media-queries-aspect-ratio-number-values": "npm:^3.0.4" "@csstools/postcss-nested-calc": "npm:^4.0.0" "@csstools/postcss-normalize-display-values": "npm:^4.0.0" - "@csstools/postcss-oklab-function": "npm:^4.0.5" + "@csstools/postcss-oklab-function": "npm:^4.0.6" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" - "@csstools/postcss-relative-color-syntax": "npm:^3.0.5" + "@csstools/postcss-random-function": "npm:^1.0.0" + "@csstools/postcss-relative-color-syntax": "npm:^3.0.6" "@csstools/postcss-scope-pseudo-class": "npm:^4.0.1" - "@csstools/postcss-stepped-value-functions": "npm:^4.0.4" + "@csstools/postcss-sign-functions": "npm:^1.0.0" + "@csstools/postcss-stepped-value-functions": "npm:^4.0.5" "@csstools/postcss-text-decoration-shorthand": "npm:^4.0.1" - "@csstools/postcss-trigonometric-functions": "npm:^4.0.4" + "@csstools/postcss-trigonometric-functions": "npm:^4.0.5" "@csstools/postcss-unset-value": "npm:^4.0.0" autoprefixer: "npm:^10.4.19" browserslist: "npm:^4.23.1" css-blank-pseudo: "npm:^7.0.1" css-has-pseudo: "npm:^7.0.1" css-prefers-color-scheme: "npm:^10.0.0" - cssdb: "npm:^8.1.2" + cssdb: "npm:^8.2.1" postcss-attribute-case-insensitive: "npm:^7.0.1" postcss-clamp: "npm:^4.1.0" - postcss-color-functional-notation: "npm:^7.0.5" + postcss-color-functional-notation: "npm:^7.0.6" postcss-color-hex-alpha: "npm:^10.0.0" postcss-color-rebeccapurple: "npm:^10.0.0" postcss-custom-media: "npm:^11.0.5" @@ -5942,7 +5970,7 @@ __metadata: postcss-font-variant: "npm:^5.0.0" postcss-gap-properties: "npm:^6.0.0" postcss-image-set-function: "npm:^7.0.0" - postcss-lab-function: "npm:^7.0.5" + postcss-lab-function: "npm:^7.0.6" postcss-logical: "npm:^8.0.0" postcss-nesting: "npm:^13.0.1" postcss-opacity-percentage: "npm:^3.0.0" @@ -5954,7 +5982,7 @@ __metadata: postcss-selector-not: "npm:^8.0.1" peerDependencies: postcss: ^8.4 - checksum: 10c0/985ef4cfd2dd6a94d8a802db8e392c4b4c47ae0de8fd5224c60d8172cac3d7ce9011e63ab80470cddc77f21f09b2be850f97ac2478f651bc0a8956b538b079fe + checksum: 10c0/bd157dbed38c3c125b3bf86f5437a8094539ec5bf24428487c7bbf29da393731e48053afc695494cc9dbe4d182cfe405c398fcf0b22eb326b6db395e7315f892 languageName: node linkType: hard From 92436197ce1fa2b895082c39607b07fac7dada9d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 15 Nov 2024 07:32:57 +0000 Subject: [PATCH 1198/1216] Update dependency postcss to v8.4.49 (#9977) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 8c1af17b3924..6150d08623dd 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "globals": "15.12.0", "handlebars-loader": "1.7.3", "mini-css-extract-plugin": "2.9.2", - "postcss": "8.4.48", + "postcss": "8.4.49", "postcss-loader": "8.1.1", "postcss-preset-env": "10.1.0", "postcss-scss": "4.0.9", diff --git a/yarn.lock b/yarn.lock index 762381ea1d88..e17599d2f2f9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4407,7 +4407,7 @@ __metadata: jquery: "npm:3.7.1" lodash: "npm:4.17.21" mini-css-extract-plugin: "npm:2.9.2" - postcss: "npm:8.4.48" + postcss: "npm:8.4.49" postcss-loader: "npm:8.1.1" postcss-preset-env: "npm:10.1.0" postcss-scss: "npm:4.0.9" @@ -6115,14 +6115,14 @@ __metadata: languageName: node linkType: hard -"postcss@npm:8.4.48, postcss@npm:^8.4.33, postcss@npm:^8.4.38, postcss@npm:^8.4.47": - version: 8.4.48 - resolution: "postcss@npm:8.4.48" +"postcss@npm:8.4.49, postcss@npm:^8.4.33, postcss@npm:^8.4.38, postcss@npm:^8.4.47": + version: 8.4.49 + resolution: "postcss@npm:8.4.49" dependencies: nanoid: "npm:^3.3.7" picocolors: "npm:^1.1.1" source-map-js: "npm:^1.2.1" - checksum: 10c0/d586361fda12fc7ab5650ce9b5763fc61d6ea2cecac9da98fceea6a3f27e42ed34db830582411bc06743492d9bb414c52b0c81da65440682d244d692da2f928a + checksum: 10c0/f1b3f17aaf36d136f59ec373459f18129908235e65dbdc3aee5eef8eba0756106f52de5ec4682e29a2eab53eb25170e7e871b3e4b52a8f1de3d344a514306be3 languageName: node linkType: hard From 027bbb2fc65eeebbb8494cae842a58639ffa439a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 15 Nov 2024 08:21:12 -0800 Subject: [PATCH 1199/1216] Update dependency org.jenkins-ci.main:jenkins-test-harness to v2353 (#9978) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index a81c2b636040..5bcc1583fd0c 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -178,7 +178,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-test-harness - 2351.v862801ec05f9 + 2353.ve3f890c6eea_f test From ab2ae8bf6bf86954f3bfa368ca99ffcd62ba4fd8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 15 Nov 2024 08:21:35 -0800 Subject: [PATCH 1200/1216] Update dependency org.springframework:spring-framework-bom to v6.2.0 (#9976) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bom/pom.xml b/bom/pom.xml index b7e685a4658b..449e379d3778 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -62,7 +62,7 @@ THE SOFTWARE. org.springframework spring-framework-bom - 6.1.14 + 6.2.0 pom import From b5eb33293b2eb375fee506a48b14e34d4f4044ce Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 15 Nov 2024 18:26:59 -0800 Subject: [PATCH 1201/1216] Update dependency org.jvnet.hudson:commons-jelly-tags-define to v1.1-jenkins-20241115 (#9984) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bom/pom.xml b/bom/pom.xml index 449e379d3778..291d193eb174 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -295,7 +295,7 @@ THE SOFTWARE. org.jvnet.hudson commons-jelly-tags-define - 1.1-jenkins-20240903 + 1.1-jenkins-20241115 org.jvnet.localizer From 6466ae2b7a5c2b4231e270bc6715f5facd057782 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 15 Nov 2024 18:51:13 -0800 Subject: [PATCH 1202/1216] Update dependency sass to v1.80.7 (#9985) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 6150d08623dd..7bc5f996cee0 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "postcss-preset-env": "10.1.0", "postcss-scss": "4.0.9", "prettier": "3.3.3", - "sass": "1.80.6", + "sass": "1.80.7", "sass-loader": "16.0.3", "style-loader": "4.0.0", "stylelint": "16.10.0", diff --git a/yarn.lock b/yarn.lock index e17599d2f2f9..6f1e8585e2ee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4164,10 +4164,10 @@ __metadata: languageName: node linkType: hard -"immutable@npm:^4.0.0": - version: 4.3.7 - resolution: "immutable@npm:4.3.7" - checksum: 10c0/9b099197081b22f6433003e34929da8ecddbbdc1474cdc8aa3b7669dee4adda349c06143de22def36016d1b6de5322b043eccd7a11db1dad2ca85dad4fff5435 +"immutable@npm:^5.0.2": + version: 5.0.2 + resolution: "immutable@npm:5.0.2" + checksum: 10c0/0d97ad95384e49563b6ed68f90e5ea83c149fd96ff417fae8274e1c524e3ef800eb1a2e8009e29d9b8ffdf63affd7692f87c8af72714181aad8dca88747fb5ac languageName: node linkType: hard @@ -4412,7 +4412,7 @@ __metadata: postcss-preset-env: "npm:10.1.0" postcss-scss: "npm:4.0.9" prettier: "npm:3.3.3" - sass: "npm:1.80.6" + sass: "npm:1.80.7" sass-loader: "npm:16.0.3" sortablejs: "npm:1.15.3" style-loader: "npm:4.0.0" @@ -6401,20 +6401,20 @@ __metadata: languageName: node linkType: hard -"sass@npm:1.80.6": - version: 1.80.6 - resolution: "sass@npm:1.80.6" +"sass@npm:1.80.7": + version: 1.80.7 + resolution: "sass@npm:1.80.7" dependencies: "@parcel/watcher": "npm:^2.4.1" chokidar: "npm:^4.0.0" - immutable: "npm:^4.0.0" + immutable: "npm:^5.0.2" source-map-js: "npm:>=0.6.2 <2.0.0" dependenciesMeta: "@parcel/watcher": optional: true bin: sass: sass.js - checksum: 10c0/04ce40d4dcf06cf2a94a66c1cc4fd4a9eb4033fd039291acd0be9d1d4123860da568c5cbef9de8493ffbedd8acae1cd0b8346f5da21c6f7cf0ffd3477730beca + checksum: 10c0/e0e0df8dc9dd7694826f915196a96cda45fe0fc849be9fc08b43c12aa1250eb512130979ed239e1106476973ace1f52abbcc1d5900a075d3813c282a626dcbf7 languageName: node linkType: hard From 7341b7a4faa79304c251031dadcef715a983d6d6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 16 Nov 2024 11:31:51 -0800 Subject: [PATCH 1203/1216] Update stapler.version to v1927 (major) (#9987) Update stapler.version to v1927 Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bom/pom.xml b/bom/pom.xml index 291d193eb174..bf498077c163 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -39,7 +39,7 @@ THE SOFTWARE. 2.0.0-M2 - 1922.v3f3302a_7f16f + 1927.vca_a_9061b_2f28 2.4.21 From 291c548d7f90101e5bb0890da0575b54e7794f38 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 16 Nov 2024 11:32:16 -0800 Subject: [PATCH 1204/1216] Update dependency org.jenkins-ci.plugins:cloudbees-folder to v6.959.v4ed5cc9e2dd4 (#9988) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index 5bcc1583fd0c..b7885dcd142e 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -218,7 +218,7 @@ THE SOFTWARE. org.jenkins-ci.plugins cloudbees-folder - 6.955.v81e2a_35c08d3 + 6.959.v4ed5cc9e2dd4 test From 9410768dfc30d51612ee87292dd39fb858c7e8c0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 16 Nov 2024 11:32:42 -0800 Subject: [PATCH 1205/1216] Bump cross-spawn from 7.0.3 to 7.0.5 (#9986) Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from 7.0.3 to 7.0.5. - [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md) - [Commits](https://github.com/moxystudio/node-cross-spawn/compare/v7.0.3...v7.0.5) --- updated-dependencies: - dependency-name: cross-spawn dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 6f1e8585e2ee..7f5ce0a8ad02 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3022,13 +3022,13 @@ __metadata: linkType: hard "cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": - version: 7.0.3 - resolution: "cross-spawn@npm:7.0.3" + version: 7.0.5 + resolution: "cross-spawn@npm:7.0.5" dependencies: path-key: "npm:^3.1.0" shebang-command: "npm:^2.0.0" which: "npm:^2.0.1" - checksum: 10c0/5738c312387081c98d69c98e105b6327b069197f864a60593245d64c8089c8a0a744e16349281210d56835bb9274130d825a78b2ad6853ca13cfbeffc0c31750 + checksum: 10c0/aa82ce7ac0814a27e6f2b738c5a7cf1fa21a3558a1e42df449fc96541ba3ba731e4d3ecffa4435348808a86212f287c6f20a1ee551ef1ff95d01cfec5f434944 languageName: node linkType: hard From 530b0abd38cc29db8737c445775ad0d608434564 Mon Sep 17 00:00:00 2001 From: Daniel Beck <1831569+daniel-beck@users.noreply.github.com> Date: Sat, 16 Nov 2024 21:50:07 +0100 Subject: [PATCH 1206/1216] [JENKINS-73908] Do not show button to upgrade to SystemRead users (#9981) Co-authored-by: Daniel Beck --- .../UpdateCenter/CoreUpdateMonitor/message.jelly | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message.jelly b/core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message.jelly index f11ee8837cdd..efaa6159136e 100644 --- a/core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message.jelly +++ b/core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message.jelly @@ -53,11 +53,13 @@ THE SOFTWARE. ${%NewVersionAvailable(ucData.core.version,ucData.core.url,changelog_url)} - - - - - + + +

    + + + +
    From ca121359ec63cb54f0dc9ce1abb25b05a9c1c83a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 16 Nov 2024 20:50:47 +0000 Subject: [PATCH 1207/1216] Fill in since annotations (#9974) Co-authored-by: timja <21194782+timja@users.noreply.github.com> --- .../src/main/java/jenkins/agents/ControllerToAgentCallable.java | 2 +- .../main/java/jenkins/agents/ControllerToAgentFileCallable.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/jenkins/agents/ControllerToAgentCallable.java b/core/src/main/java/jenkins/agents/ControllerToAgentCallable.java index b724da77f6a2..edf057656569 100644 --- a/core/src/main/java/jenkins/agents/ControllerToAgentCallable.java +++ b/core/src/main/java/jenkins/agents/ControllerToAgentCallable.java @@ -37,7 +37,7 @@ * newer than {@link RemotingVersionInfo#getMinimumSupportedVersion}. * (Core and plugin APIs will be identical to those run inside the controller.) * @param the return type; note that this must either be defined in your plugin or included in the stock JEP-200 whitelist - * @since TODO + * @since 2.485 */ public interface ControllerToAgentCallable extends Callable { diff --git a/core/src/main/java/jenkins/agents/ControllerToAgentFileCallable.java b/core/src/main/java/jenkins/agents/ControllerToAgentFileCallable.java index 22904e0c2e43..bd7f7a86c36d 100644 --- a/core/src/main/java/jenkins/agents/ControllerToAgentFileCallable.java +++ b/core/src/main/java/jenkins/agents/ControllerToAgentFileCallable.java @@ -32,7 +32,7 @@ * {@link FilePath.FileCallable} meant to be serialized then run on an agent. * Like {@link ControllerToAgentCallable} this will typically be a {@link Record}. * @param the return type; note that this must either be defined in your plugin or included in the stock JEP-200 whitelist - * @since TODO + * @since 2.485 */ public interface ControllerToAgentFileCallable extends FilePath.FileCallable { From 2cd68bc9072ed5cd4b7b5557992ebc062423e92a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 16 Nov 2024 13:58:18 -0800 Subject: [PATCH 1208/1216] Bump @eslint/plugin-kit from 0.2.0 to 0.2.3 (#9982) Bumps [@eslint/plugin-kit](https://github.com/eslint/rewrite) from 0.2.0 to 0.2.3. - [Release notes](https://github.com/eslint/rewrite/releases) - [Changelog](https://github.com/eslint/rewrite/blob/main/release-please-config.json) - [Commits](https://github.com/eslint/rewrite/compare/core-v0.2.0...plugin-kit-v0.2.3) --- updated-dependencies: - dependency-name: "@eslint/plugin-kit" dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7f5ce0a8ad02..a512ae8a1fdf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1740,11 +1740,11 @@ __metadata: linkType: hard "@eslint/plugin-kit@npm:^0.2.0": - version: 0.2.0 - resolution: "@eslint/plugin-kit@npm:0.2.0" + version: 0.2.3 + resolution: "@eslint/plugin-kit@npm:0.2.3" dependencies: levn: "npm:^0.4.1" - checksum: 10c0/00b92bc52ad09b0e2bbbb30591c02a895f0bec3376759562590e8a57a13d096b22f8c8773b6bf791a7cf2ea614123b3d592fd006c51ac5fd0edbb90ea6d8760c + checksum: 10c0/89a8035976bb1780e3fa8ffe682df013bd25f7d102d991cecd3b7c297f4ce8c1a1b6805e76dd16465b5353455b670b545eff2b4ec3133e0eab81a5f9e99bd90f languageName: node linkType: hard From 73caccce052f21c94e55a7104cf3315e7cbf33c9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 16 Nov 2024 17:55:06 -0800 Subject: [PATCH 1209/1216] Update eslint monorepo to v9.15.0 (#9989) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +-- yarn.lock | 78 +++++++++++++++++++++++----------------------------- 2 files changed, 37 insertions(+), 45 deletions(-) diff --git a/package.json b/package.json index 7bc5f996cee0..f7efdf47022a 100644 --- a/package.json +++ b/package.json @@ -26,12 +26,12 @@ "@babel/cli": "7.25.9", "@babel/core": "7.26.0", "@babel/preset-env": "7.26.0", - "@eslint/js": "9.14.0", + "@eslint/js": "9.15.0", "babel-loader": "9.2.1", "clean-webpack-plugin": "4.0.0", "css-loader": "7.1.2", "css-minimizer-webpack-plugin": "7.0.0", - "eslint": "9.14.0", + "eslint": "9.15.0", "eslint-config-prettier": "9.1.0", "eslint-formatter-checkstyle": "8.40.0", "globals": "15.12.0", diff --git a/yarn.lock b/yarn.lock index a512ae8a1fdf..7dd9a3380020 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1690,27 +1690,27 @@ __metadata: languageName: node linkType: hard -"@eslint/config-array@npm:^0.18.0": - version: 0.18.0 - resolution: "@eslint/config-array@npm:0.18.0" +"@eslint/config-array@npm:^0.19.0": + version: 0.19.0 + resolution: "@eslint/config-array@npm:0.19.0" dependencies: "@eslint/object-schema": "npm:^2.1.4" debug: "npm:^4.3.1" minimatch: "npm:^3.1.2" - checksum: 10c0/0234aeb3e6b052ad2402a647d0b4f8a6aa71524bafe1adad0b8db1dfe94d7f5f26d67c80f79bb37ac61361a1d4b14bb8fb475efe501de37263cf55eabb79868f + checksum: 10c0/def23c6c67a8f98dc88f1b87e17a5668e5028f5ab9459661aabfe08e08f2acd557474bbaf9ba227be0921ae4db232c62773dbb7739815f8415678eb8f592dbf5 languageName: node linkType: hard -"@eslint/core@npm:^0.7.0": - version: 0.7.0 - resolution: "@eslint/core@npm:0.7.0" - checksum: 10c0/3cdee8bc6cbb96ac6103d3ead42e59830019435839583c9eb352b94ed558bd78e7ffad5286dc710df21ec1e7bd8f52aa6574c62457a4dd0f01f3736fa4a7d87a +"@eslint/core@npm:^0.9.0": + version: 0.9.0 + resolution: "@eslint/core@npm:0.9.0" + checksum: 10c0/6d8e8e0991cef12314c49425d8d2d9394f5fb1a36753ff82df7c03185a4646cb7c8736cf26638a4a714782cedf4b23cfc17667d282d3e5965b3920a0e7ce20d4 languageName: node linkType: hard -"@eslint/eslintrc@npm:^3.1.0": - version: 3.1.0 - resolution: "@eslint/eslintrc@npm:3.1.0" +"@eslint/eslintrc@npm:^3.2.0": + version: 3.2.0 + resolution: "@eslint/eslintrc@npm:3.2.0" dependencies: ajv: "npm:^6.12.4" debug: "npm:^4.3.2" @@ -1721,14 +1721,14 @@ __metadata: js-yaml: "npm:^4.1.0" minimatch: "npm:^3.1.2" strip-json-comments: "npm:^3.1.1" - checksum: 10c0/5b7332ed781edcfc98caa8dedbbb843abfb9bda2e86538529c843473f580e40c69eb894410eddc6702f487e9ee8f8cfa8df83213d43a8fdb549f23ce06699167 + checksum: 10c0/43867a07ff9884d895d9855edba41acf325ef7664a8df41d957135a81a477ff4df4196f5f74dc3382627e5cc8b7ad6b815c2cea1b58f04a75aced7c43414ab8b languageName: node linkType: hard -"@eslint/js@npm:9.14.0": - version: 9.14.0 - resolution: "@eslint/js@npm:9.14.0" - checksum: 10c0/a423dd435e10aa3b461599aa02f6cbadd4b5128cb122467ee4e2c798e7ca4f9bb1fce4dcea003b29b983090238cf120899c1af657cf86300b399e4f996b83ddc +"@eslint/js@npm:9.15.0": + version: 9.15.0 + resolution: "@eslint/js@npm:9.15.0" + checksum: 10c0/56552966ab1aa95332f70d0e006db5746b511c5f8b5e0c6a9b2d6764ff6d964e0b2622731877cbc4e3f0e74c5b39191290d5f48147be19175292575130d499ab languageName: node linkType: hard @@ -1739,7 +1739,7 @@ __metadata: languageName: node linkType: hard -"@eslint/plugin-kit@npm:^0.2.0": +"@eslint/plugin-kit@npm:^0.2.3": version: 0.2.3 resolution: "@eslint/plugin-kit@npm:0.2.3" dependencies: @@ -1779,10 +1779,10 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/retry@npm:^0.4.0": - version: 0.4.0 - resolution: "@humanwhocodes/retry@npm:0.4.0" - checksum: 10c0/28dcf1ed70b28ae8bc07b268c457a02f6b53fe4591b73e31f6735e7673dfd9e662f24a69e065aada1a64311bf5692d93d4ef35aba849314e8a87a870ba3b47aa +"@humanwhocodes/retry@npm:^0.4.1": + version: 0.4.1 + resolution: "@humanwhocodes/retry@npm:0.4.1" + checksum: 10c0/be7bb6841c4c01d0b767d9bb1ec1c9359ee61421ce8ba66c249d035c5acdfd080f32d55a5c9e859cdd7868788b8935774f65b2caf24ec0b7bd7bf333791f063b languageName: node linkType: hard @@ -3021,7 +3021,7 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.3, cross-spawn@npm:^7.0.5": version: 7.0.5 resolution: "cross-spawn@npm:7.0.5" dependencies: @@ -3526,25 +3526,25 @@ __metadata: languageName: node linkType: hard -"eslint@npm:9.14.0": - version: 9.14.0 - resolution: "eslint@npm:9.14.0" +"eslint@npm:9.15.0": + version: 9.15.0 + resolution: "eslint@npm:9.15.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" "@eslint-community/regexpp": "npm:^4.12.1" - "@eslint/config-array": "npm:^0.18.0" - "@eslint/core": "npm:^0.7.0" - "@eslint/eslintrc": "npm:^3.1.0" - "@eslint/js": "npm:9.14.0" - "@eslint/plugin-kit": "npm:^0.2.0" + "@eslint/config-array": "npm:^0.19.0" + "@eslint/core": "npm:^0.9.0" + "@eslint/eslintrc": "npm:^3.2.0" + "@eslint/js": "npm:9.15.0" + "@eslint/plugin-kit": "npm:^0.2.3" "@humanfs/node": "npm:^0.16.6" "@humanwhocodes/module-importer": "npm:^1.0.1" - "@humanwhocodes/retry": "npm:^0.4.0" + "@humanwhocodes/retry": "npm:^0.4.1" "@types/estree": "npm:^1.0.6" "@types/json-schema": "npm:^7.0.15" ajv: "npm:^6.12.4" chalk: "npm:^4.0.0" - cross-spawn: "npm:^7.0.2" + cross-spawn: "npm:^7.0.5" debug: "npm:^4.3.2" escape-string-regexp: "npm:^4.0.0" eslint-scope: "npm:^8.2.0" @@ -3564,7 +3564,6 @@ __metadata: minimatch: "npm:^3.1.2" natural-compare: "npm:^1.4.0" optionator: "npm:^0.9.3" - text-table: "npm:^0.2.0" peerDependencies: jiti: "*" peerDependenciesMeta: @@ -3572,7 +3571,7 @@ __metadata: optional: true bin: eslint: bin/eslint.js - checksum: 10c0/e1cbf571b75519ad0b24c27e66a6575e57cab2671ef5296e7b345d9ac3adc1a549118dcc74a05b651a7a13a5e61ebb680be6a3e04a80e1f22eba1931921b5187 + checksum: 10c0/d0d7606f36bfcccb1c3703d0a24df32067b207a616f17efe5fb1765a91d13f085afffc4fc97ecde4ab9c9f4edd64d9b4ce750e13ff7937a25074b24bee15b20f languageName: node linkType: hard @@ -4392,12 +4391,12 @@ __metadata: "@babel/cli": "npm:7.25.9" "@babel/core": "npm:7.26.0" "@babel/preset-env": "npm:7.26.0" - "@eslint/js": "npm:9.14.0" + "@eslint/js": "npm:9.15.0" babel-loader: "npm:9.2.1" clean-webpack-plugin: "npm:4.0.0" css-loader: "npm:7.1.2" css-minimizer-webpack-plugin: "npm:7.0.0" - eslint: "npm:9.14.0" + eslint: "npm:9.15.0" eslint-config-prettier: "npm:9.1.0" eslint-formatter-checkstyle: "npm:8.40.0" globals: "npm:15.12.0" @@ -6893,13 +6892,6 @@ __metadata: languageName: node linkType: hard -"text-table@npm:^0.2.0": - version: 0.2.0 - resolution: "text-table@npm:0.2.0" - checksum: 10c0/02805740c12851ea5982686810702e2f14369a5f4c5c40a836821e3eefc65ffeec3131ba324692a37608294b0fd8c1e55a2dd571ffed4909822787668ddbee5c - languageName: node - linkType: hard - "tippy.js@npm:6.3.7": version: 6.3.7 resolution: "tippy.js@npm:6.3.7" From c3d99d8c9fd13b9b4e8090190928ead5272468f7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 16 Nov 2024 21:17:48 -0800 Subject: [PATCH 1210/1216] Update dependency sass to v1.81.0 (#9990) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index f7efdf47022a..26ab29c11b8c 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "postcss-preset-env": "10.1.0", "postcss-scss": "4.0.9", "prettier": "3.3.3", - "sass": "1.80.7", + "sass": "1.81.0", "sass-loader": "16.0.3", "style-loader": "4.0.0", "stylelint": "16.10.0", diff --git a/yarn.lock b/yarn.lock index 7dd9a3380020..89b375f73c82 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4411,7 +4411,7 @@ __metadata: postcss-preset-env: "npm:10.1.0" postcss-scss: "npm:4.0.9" prettier: "npm:3.3.3" - sass: "npm:1.80.7" + sass: "npm:1.81.0" sass-loader: "npm:16.0.3" sortablejs: "npm:1.15.3" style-loader: "npm:4.0.0" @@ -6400,9 +6400,9 @@ __metadata: languageName: node linkType: hard -"sass@npm:1.80.7": - version: 1.80.7 - resolution: "sass@npm:1.80.7" +"sass@npm:1.81.0": + version: 1.81.0 + resolution: "sass@npm:1.81.0" dependencies: "@parcel/watcher": "npm:^2.4.1" chokidar: "npm:^4.0.0" @@ -6413,7 +6413,7 @@ __metadata: optional: true bin: sass: sass.js - checksum: 10c0/e0e0df8dc9dd7694826f915196a96cda45fe0fc849be9fc08b43c12aa1250eb512130979ed239e1106476973ace1f52abbcc1d5900a075d3813c282a626dcbf7 + checksum: 10c0/9c59b3c9b4231c18fcb4583cc232dbc4de501ddc11101b7a025e44833e3f3ce6031546dc1cd109ee9f04ebcfb1fe30ff870810af33b8feb9aa9e36dfba9ec1ef languageName: node linkType: hard From deb2a8d896322ba31183ff9921d9f3898a66ca55 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 18 Nov 2024 10:07:18 -0800 Subject: [PATCH 1211/1216] Update dependency postcss-preset-env to v10.1.1 (#9991) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 24 ++++++++++++------------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index 26ab29c11b8c..36570c241b79 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "mini-css-extract-plugin": "2.9.2", "postcss": "8.4.49", "postcss-loader": "8.1.1", - "postcss-preset-env": "10.1.0", + "postcss-preset-env": "10.1.1", "postcss-scss": "4.0.9", "prettier": "3.3.3", "sass": "1.81.0", diff --git a/yarn.lock b/yarn.lock index 89b375f73c82..da39cebd7125 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1523,7 +1523,7 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-random-function@npm:^1.0.0": +"@csstools/postcss-random-function@npm:^1.0.1": version: 1.0.1 resolution: "@csstools/postcss-random-function@npm:1.0.1" dependencies: @@ -1562,16 +1562,16 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-sign-functions@npm:^1.0.0": - version: 1.0.0 - resolution: "@csstools/postcss-sign-functions@npm:1.0.0" +"@csstools/postcss-sign-functions@npm:^1.1.0": + version: 1.1.0 + resolution: "@csstools/postcss-sign-functions@npm:1.1.0" dependencies: "@csstools/css-calc": "npm:^2.1.0" "@csstools/css-parser-algorithms": "npm:^3.0.4" "@csstools/css-tokenizer": "npm:^3.0.3" peerDependencies: postcss: ^8.4 - checksum: 10c0/ec745b2f1e714ffead43ade5964234dfc1750c3a71d2e29df862ab3f79ba4a1275187b270b4c226bbb1155bee8e9e63c35597b4f4cb3effaa632e5e07e422344 + checksum: 10c0/503bbaa8fe1d1a619880d5d6b838f07f1898a5820889e5db3c4e02bb8b340dab18b88f439f9f1da44c6669bab2d4ba3f9543643ccc459d8a21191c5d22109c9b languageName: node linkType: hard @@ -4408,7 +4408,7 @@ __metadata: mini-css-extract-plugin: "npm:2.9.2" postcss: "npm:8.4.49" postcss-loader: "npm:8.1.1" - postcss-preset-env: "npm:10.1.0" + postcss-preset-env: "npm:10.1.1" postcss-scss: "npm:4.0.9" prettier: "npm:3.3.3" sass: "npm:1.81.0" @@ -5912,9 +5912,9 @@ __metadata: languageName: node linkType: hard -"postcss-preset-env@npm:10.1.0": - version: 10.1.0 - resolution: "postcss-preset-env@npm:10.1.0" +"postcss-preset-env@npm:10.1.1": + version: 10.1.1 + resolution: "postcss-preset-env@npm:10.1.1" dependencies: "@csstools/postcss-cascade-layers": "npm:^5.0.1" "@csstools/postcss-color-function": "npm:^4.0.6" @@ -5940,10 +5940,10 @@ __metadata: "@csstools/postcss-normalize-display-values": "npm:^4.0.0" "@csstools/postcss-oklab-function": "npm:^4.0.6" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" - "@csstools/postcss-random-function": "npm:^1.0.0" + "@csstools/postcss-random-function": "npm:^1.0.1" "@csstools/postcss-relative-color-syntax": "npm:^3.0.6" "@csstools/postcss-scope-pseudo-class": "npm:^4.0.1" - "@csstools/postcss-sign-functions": "npm:^1.0.0" + "@csstools/postcss-sign-functions": "npm:^1.1.0" "@csstools/postcss-stepped-value-functions": "npm:^4.0.5" "@csstools/postcss-text-decoration-shorthand": "npm:^4.0.1" "@csstools/postcss-trigonometric-functions": "npm:^4.0.5" @@ -5981,7 +5981,7 @@ __metadata: postcss-selector-not: "npm:^8.0.1" peerDependencies: postcss: ^8.4 - checksum: 10c0/bd157dbed38c3c125b3bf86f5437a8094539ec5bf24428487c7bbf29da393731e48053afc695494cc9dbe4d182cfe405c398fcf0b22eb326b6db395e7315f892 + checksum: 10c0/99931117735a66827c7318be023ddb614990457617ccbe7fd2fdc1f10345554652df180d4842768d68d57e14fc0be4d86d0b413c65e77e02db5511e57ed07c4f languageName: node linkType: hard From 1245514c15ec6959d3a2445f38cd2de6dc591b10 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 19 Nov 2024 13:49:45 +0000 Subject: [PATCH 1212/1216] [maven-release-plugin] prepare release jenkins-2.486 --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 6 +++--- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty12-ee9/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index bf498077c163..a0821ad557d6 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.486 jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 2473629d23cc..949762c007c8 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.486 cli diff --git a/core/pom.xml b/core/pom.xml index 9bff5e5ad0b2..1f1b673f0197 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.486 jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index fe1e89a120dc..90770bc5a870 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.486 jenkins-coverage diff --git a/pom.xml b/pom.xml index 20c5abc8dbf8..1a359b36b0cd 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.486 pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - ${scmTag} + jenkins-2.486 https://github.com/jenkinsci/jenkins @@ -75,7 +75,7 @@ THE SOFTWARE. 2.486 -SNAPSHOT - 2024-11-12T13:58:29Z + 2024-11-19T10:33:45Z github diff --git a/test/pom.xml b/test/pom.xml index b7885dcd142e..ac4f3677004b 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.486 jenkins-test diff --git a/war/pom.xml b/war/pom.xml index 43af909f06e2..c43e83fcb1dc 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.486 jenkins-war diff --git a/websocket/jetty12-ee9/pom.xml b/websocket/jetty12-ee9/pom.xml index 2253163b3c4c..d4f57eaa279b 100644 --- a/websocket/jetty12-ee9/pom.xml +++ b/websocket/jetty12-ee9/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.486 ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 178413f92c8e..d459c8a16266 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.486 ../.. From b8e5141a9e69318d908982eaecdfea798010f954 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 19 Nov 2024 13:50:32 +0000 Subject: [PATCH 1213/1216] [maven-release-plugin] prepare for next development iteration --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 8 ++++---- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty12-ee9/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 12 insertions(+), 12 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index a0821ad557d6..bf498077c163 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.486 + ${revision}${changelist} jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 949762c007c8..2473629d23cc 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.486 + ${revision}${changelist} cli diff --git a/core/pom.xml b/core/pom.xml index 1f1b673f0197..9bff5e5ad0b2 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.486 + ${revision}${changelist} jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index 90770bc5a870..fe1e89a120dc 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.486 + ${revision}${changelist} jenkins-coverage diff --git a/pom.xml b/pom.xml index 1a359b36b0cd..b8c1adb1f89f 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.486 + ${revision}${changelist} pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - jenkins-2.486 + ${scmTag} https://github.com/jenkinsci/jenkins @@ -73,9 +73,9 @@ THE SOFTWARE. - 2.486 + 2.487 -SNAPSHOT - 2024-11-19T10:33:45Z + 2024-11-19T13:49:45Z github diff --git a/test/pom.xml b/test/pom.xml index ac4f3677004b..b7885dcd142e 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.486 + ${revision}${changelist} jenkins-test diff --git a/war/pom.xml b/war/pom.xml index c43e83fcb1dc..43af909f06e2 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.486 + ${revision}${changelist} jenkins-war diff --git a/websocket/jetty12-ee9/pom.xml b/websocket/jetty12-ee9/pom.xml index d4f57eaa279b..2253163b3c4c 100644 --- a/websocket/jetty12-ee9/pom.xml +++ b/websocket/jetty12-ee9/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.486 + ${revision}${changelist} ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index d459c8a16266..178413f92c8e 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.486 + ${revision}${changelist} ../.. From 17ffc46ff8dcc51b3b6bf5b3b869e7eb05ad16af Mon Sep 17 00:00:00 2001 From: Daniel Beck Date: Tue, 19 Nov 2024 14:21:06 +0000 Subject: [PATCH 1214/1216] [SECURITY-3463] --- bom/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index bf498077c163..9413a5957ef0 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -39,7 +39,7 @@ THE SOFTWARE. 2.0.0-M2 - 1927.vca_a_9061b_2f28 + 1928.v9115fe47607f 2.4.21 @@ -335,7 +335,7 @@ THE SOFTWARE. org.kohsuke.stapler json-lib - 2.4-jenkins-7 + 2.4-jenkins-8 org.kohsuke.stapler From 37069bd17d167e292915e2308ea6cf39c8e16c00 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Mon, 25 Nov 2024 19:14:51 +0000 Subject: [PATCH 1215/1216] [maven-release-plugin] prepare release jenkins-2.487 --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 6 +++--- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty12-ee9/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 9413a5957ef0..a8c15eadf1f7 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.487 jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 2473629d23cc..c3ad0273593a 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.487 cli diff --git a/core/pom.xml b/core/pom.xml index 9bff5e5ad0b2..f7eea7349dfa 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.487 jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index fe1e89a120dc..f17cf2b79189 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.487 jenkins-coverage diff --git a/pom.xml b/pom.xml index b8c1adb1f89f..6500cdf0130f 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.487 pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - ${scmTag} + jenkins-2.487 https://github.com/jenkinsci/jenkins @@ -75,7 +75,7 @@ THE SOFTWARE. 2.487 -SNAPSHOT - 2024-11-19T13:49:45Z + 2024-11-25T15:52:13Z github diff --git a/test/pom.xml b/test/pom.xml index b7885dcd142e..5151a2049ed5 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.487 jenkins-test diff --git a/war/pom.xml b/war/pom.xml index 43af909f06e2..27633f8fd1d1 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.487 jenkins-war diff --git a/websocket/jetty12-ee9/pom.xml b/websocket/jetty12-ee9/pom.xml index 2253163b3c4c..df8d2f941429 100644 --- a/websocket/jetty12-ee9/pom.xml +++ b/websocket/jetty12-ee9/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.487 ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 178413f92c8e..43ec40b62144 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.487 ../.. From d092094d686bd6282025313b1df9e70e79876673 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Mon, 25 Nov 2024 19:15:28 +0000 Subject: [PATCH 1216/1216] [maven-release-plugin] prepare for next development iteration --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 8 ++++---- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty12-ee9/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 12 insertions(+), 12 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index a8c15eadf1f7..9413a5957ef0 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.487 + ${revision}${changelist} jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index c3ad0273593a..2473629d23cc 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.487 + ${revision}${changelist} cli diff --git a/core/pom.xml b/core/pom.xml index f7eea7349dfa..9bff5e5ad0b2 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.487 + ${revision}${changelist} jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index f17cf2b79189..fe1e89a120dc 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.487 + ${revision}${changelist} jenkins-coverage diff --git a/pom.xml b/pom.xml index 6500cdf0130f..5aaf52a73603 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.487 + ${revision}${changelist} pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - jenkins-2.487 + ${scmTag} https://github.com/jenkinsci/jenkins @@ -73,9 +73,9 @@ THE SOFTWARE. - 2.487 + 2.488 -SNAPSHOT - 2024-11-25T15:52:13Z + 2024-11-25T19:14:52Z github diff --git a/test/pom.xml b/test/pom.xml index 5151a2049ed5..b7885dcd142e 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.487 + ${revision}${changelist} jenkins-test diff --git a/war/pom.xml b/war/pom.xml index 27633f8fd1d1..43af909f06e2 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.487 + ${revision}${changelist} jenkins-war diff --git a/websocket/jetty12-ee9/pom.xml b/websocket/jetty12-ee9/pom.xml index df8d2f941429..2253163b3c4c 100644 --- a/websocket/jetty12-ee9/pom.xml +++ b/websocket/jetty12-ee9/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.487 + ${revision}${changelist} ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 43ec40b62144..178413f92c8e 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.487 + ${revision}${changelist} ../..