From fadc5119b29643c3f48f05d37355a80f2b3b0327 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 21 Nov 2023 13:07:19 +0000 Subject: [PATCH 01/50] [maven-release-plugin] prepare release jenkins-2.433 --- 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..c8f6cba41ea9 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.433 jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 21aabc88e649..34382d87b5ea 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.433 cli diff --git a/core/pom.xml b/core/pom.xml index 45539865962a..cbc83145831d 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.433 jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index 9f27c8d11cf0..b5a81a4c078b 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.433 jenkins-coverage diff --git a/pom.xml b/pom.xml index 9c2ac99d6210..633e280a2332 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.433 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.433 https://github.com/jenkinsci/jenkins diff --git a/test/pom.xml b/test/pom.xml index a3c8ea0cbc5a..68260ba532ca 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.433 jenkins-test diff --git a/war/pom.xml b/war/pom.xml index b6082a6d1ada..55578122a27a 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.433 jenkins-war diff --git a/websocket/jetty10/pom.xml b/websocket/jetty10/pom.xml index eb4a169a59d1..b4e5a717652d 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.433 ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 77abcc3b7248..f18d679701f8 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.433 ../.. From f2666710161b75183efb5fac4e8f342c568be930 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 21 Nov 2023 13:07:31 +0000 Subject: [PATCH 02/50] [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 c8f6cba41ea9..616d7f77af70 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.433 + ${revision}${changelist} jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 34382d87b5ea..21aabc88e649 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.433 + ${revision}${changelist} cli diff --git a/core/pom.xml b/core/pom.xml index cbc83145831d..45539865962a 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.433 + ${revision}${changelist} jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index b5a81a4c078b..9f27c8d11cf0 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.433 + ${revision}${changelist} jenkins-coverage diff --git a/pom.xml b/pom.xml index 633e280a2332..7abf74185fdd 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.433 + ${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.433 + ${scmTag} https://github.com/jenkinsci/jenkins @@ -73,7 +73,7 @@ THE SOFTWARE. - 2.433 + 2.434 -SNAPSHOT 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 03/50] 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 04/50] 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 05/50] 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 06/50] 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 07/50] [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 08/50] 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 09/50] 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 10/50] 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 11/50] 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 12/50] 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 13/50] 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 14/50] 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 15/50] [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 16/50] [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 17/50] 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 18/50] 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 19/50] [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 20/50] 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 21/50] 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 22/50] 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 23/50] 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 24/50] 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 25/50] 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 26/50] 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 27/50] 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 28/50] 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 29/50] 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 30/50] [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 31/50] 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 32/50] 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 33/50] 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 34/50] 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 35/50] 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 36/50] [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 37/50] 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 38/50] [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 39/50] [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 40/50] 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 41/50] 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 42/50] 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 43/50] 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 44/50] 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 45/50] 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 46/50] 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 47/50] 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 48/50] 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 49/50] 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 50/50] 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