diff --git a/.github/renovate.json b/.github/renovate.json
index 1de5552206ed..90c5a18d9f6d 100644
--- a/.github/renovate.json
+++ b/.github/renovate.json
@@ -128,7 +128,7 @@
{
"customType": "regex",
"fileMatch": [
- "war/pom.xml"
+ "pom.xml"
],
"matchStrings": [
"(?.*?)"
diff --git a/.github/workflows/run-since-updater.yml b/.github/workflows/run-since-updater.yml
index 409520a5f73f..6241acdc2dc4 100644
--- a/.github/workflows/run-since-updater.yml
+++ b/.github/workflows/run-since-updater.yml
@@ -29,7 +29,7 @@ jobs:
id: run_script
shell: bash
- name: Create Pull Request
- uses: peter-evans/create-pull-request@d121e62763d8cc35b5fb1710e887d6e69a52d3a4 # v7
+ uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f # v7
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: Fill in since annotations
diff --git a/.gitignore b/.gitignore
index c09d79fcf8c4..f7314d0646ec 100644
--- a/.gitignore
+++ b/.gitignore
@@ -79,3 +79,6 @@ node_modules/
# Generated JavaScript Bundles
jsbundles
+
+# In case someone accidentally runs npm install instead of yarn install
+package-lock.json
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index d2f4700a3ab7..1be9d4f3f9cf 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -52,6 +52,9 @@ MAVEN_OPTS='--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/ja
### Running the Yarn frontend build
+> [!TIP]
+> If you already have Node.js installed, you do not need to change your path. Start using `yarn` by enabling [Corepack](https://yarnpkg.com/corepack) with `corepack enable`, if it isn't already; this will add the `yarn` binary to your PATH.
+
To run the Yarn frontend build, after [building the WAR file](#building-the-war-file), add the downloaded versions of Node and Yarn to your path:
```sh
@@ -74,7 +77,7 @@ On one terminal, start a development server that will not process frontend asset
MAVEN_OPTS='--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED' mvn -pl war jetty:run -Dskip.yarn
```
-Open another terminal and start a [webpack](https://webpack.js.org/) dev server, after [adding Node and Yarn to your path](#running-the-yarn-frontend-build):
+Open another terminal and start a [webpack](https://webpack.js.org/) dev server, after [optionally adding Node and Yarn to your path](#running-the-yarn-frontend-build):
```sh
yarn start
@@ -108,13 +111,13 @@ To automatically fix backend issues, run:
mvn spotless:apply
```
-To view frontend issues, after [adding Node and Yarn to your path](#running-the-yarn-frontend-build), run:
+To view frontend issues, after [optionally adding Node and Yarn to your path](#running-the-yarn-frontend-build), run:
```sh
yarn lint
```
-To fix frontend issues, after [adding Node and Yarn to your path](#running-the-yarn-frontend-build), run:
+To fix frontend issues, after [optionally adding Node and Yarn to your path](#running-the-yarn-frontend-build), run:
```sh
yarn lint:fix
diff --git a/ath.sh b/ath.sh
index 2df3d4909e10..1816e037466b 100644
--- a/ath.sh
+++ b/ath.sh
@@ -6,7 +6,7 @@ set -o xtrace
cd "$(dirname "$0")"
# https://github.com/jenkinsci/acceptance-test-harness/releases
-export ATH_VERSION=5992.v39030e88deb_3
+export ATH_VERSION=5997.v2a_1a_696620a_0
if [[ $# -eq 0 ]]; then
export JDK=17
diff --git a/bom/pom.xml b/bom/pom.xml
index 39e1714b809a..47321614432c 100644
--- a/bom/pom.xml
+++ b/bom/pom.xml
@@ -129,7 +129,7 @@ THE SOFTWARE.
commons-io
commons-io
- 2.16.1
+ 2.17.0
commons-jelly
@@ -169,7 +169,7 @@ THE SOFTWARE.
net.java.dev.jna
jna
- 5.14.0
+ 5.15.0
net.java.sezpoz
diff --git a/core/src/main/java/hudson/lifecycle/WindowsInstallerLink.java b/core/src/main/java/hudson/lifecycle/WindowsInstallerLink.java
index c54a90d1c576..af0ddf9a6ecf 100644
--- a/core/src/main/java/hudson/lifecycle/WindowsInstallerLink.java
+++ b/core/src/main/java/hudson/lifecycle/WindowsInstallerLink.java
@@ -226,7 +226,7 @@ public void run() {
new File(installationDir, "jenkins.exe"), "start", task, installationDir);
task.getLogger().println(r == 0 ? "Successfully started" : "start service failed. Exit code=" + r);
} catch (IOException | InterruptedException e) {
- e.printStackTrace();
+ LOGGER.log(Level.WARNING, null, e);
}
}
@@ -241,7 +241,7 @@ private DefaultLogger createLogger() {
Jenkins.get().cleanUp();
System.exit(0);
} catch (InterruptedException e) {
- e.printStackTrace();
+ LOGGER.log(Level.SEVERE, null, e);
}
}
}.start();
diff --git a/core/src/main/java/hudson/model/AbstractItem.java b/core/src/main/java/hudson/model/AbstractItem.java
index 0e712d8a2e88..8ba7aafe15cd 100644
--- a/core/src/main/java/hudson/model/AbstractItem.java
+++ b/core/src/main/java/hudson/model/AbstractItem.java
@@ -434,7 +434,7 @@ protected void renameTo(final String newName) throws IOException {
Util.deleteRecursive(oldRoot);
} catch (IOException e) {
// but ignore the error, since we expect that
- e.printStackTrace();
+ LOGGER.log(Level.WARNING, "Ignoring IOException while deleting", e);
}
}
diff --git a/core/src/main/java/hudson/model/UserPropertyDescriptor.java b/core/src/main/java/hudson/model/UserPropertyDescriptor.java
index b5a115404be3..f19a54e14aa0 100644
--- a/core/src/main/java/hudson/model/UserPropertyDescriptor.java
+++ b/core/src/main/java/hudson/model/UserPropertyDescriptor.java
@@ -132,7 +132,7 @@ public boolean isEnabled() {
* Optional description for the configurable object
* Displays as plain text
*
- * @since TODO
+ * @since 2.477
*/
@Nullable
public String getDescription() {
diff --git a/core/src/main/java/hudson/model/ViewJob.java b/core/src/main/java/hudson/model/ViewJob.java
index 055b98cafdb5..c030fea0122c 100644
--- a/core/src/main/java/hudson/model/ViewJob.java
+++ b/core/src/main/java/hudson/model/ViewJob.java
@@ -236,14 +236,23 @@ private boolean terminating() {
@Override
public void run() {
while (!terminating()) {
+ String jobName = null;
try {
- getNext()._reload();
+ var next = getNext();
+ jobName = next.getFullName();
+ next._reload();
+ jobName = null;
} catch (InterruptedException e) {
// treat this as a death signal
return;
- } catch (Throwable t) {
+ } catch (Exception e) {
// otherwise ignore any error
- t.printStackTrace();
+ if (jobName != null) {
+ var finalJobName = jobName;
+ LOGGER.log(Level.WARNING, e, () -> "Failed to reload job " + finalJobName);
+ } else {
+ LOGGER.log(Level.WARNING, e, () -> "Failed to obtain next job in the reload queue");
+ }
}
}
}
diff --git a/core/src/main/java/jenkins/model/HistoricalBuild.java b/core/src/main/java/jenkins/model/HistoricalBuild.java
index 2f9f14aefff7..480eb9935654 100644
--- a/core/src/main/java/jenkins/model/HistoricalBuild.java
+++ b/core/src/main/java/jenkins/model/HistoricalBuild.java
@@ -45,7 +45,7 @@
/**
* A {@link Run}-like object as it might be displayed by {@link BuildHistoryWidget}.
*
- * @since TODO
+ * @since 2.477
*/
@Restricted(Beta.class)
public interface HistoricalBuild extends ModelObject {
diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java
index e29651773803..afa634608562 100644
--- a/core/src/main/java/jenkins/model/Jenkins.java
+++ b/core/src/main/java/jenkins/model/Jenkins.java
@@ -5629,7 +5629,7 @@ private static void computeVersion(ServletContext context) {
if (is != null)
props.load(is);
} catch (IOException e) {
- e.printStackTrace(); // if the version properties is missing, that's OK.
+ LOGGER.log(Level.WARNING, e, () -> "Failed to load jenkins-version.properties");
}
String ver = props.getProperty("version");
if (ver == null) ver = UNCOMPUTED_VERSION;
diff --git a/core/src/main/java/jenkins/model/ModelObjectWithContextMenu.java b/core/src/main/java/jenkins/model/ModelObjectWithContextMenu.java
index 2fa50556574c..f46280fef0c0 100644
--- a/core/src/main/java/jenkins/model/ModelObjectWithContextMenu.java
+++ b/core/src/main/java/jenkins/model/ModelObjectWithContextMenu.java
@@ -299,6 +299,10 @@ public ContextMenu from(ModelObjectWithContextMenu self, StaplerRequest2 request
return from(self, request, response, "sidepanel");
}
+ public ContextMenu from(ModelObjectWithContextMenu self, StaplerRequest request, StaplerResponse response) throws JellyException, IOException {
+ return from(self, StaplerRequest.toStaplerRequest2(request), StaplerResponse.toStaplerResponse2(response), "sidepanel");
+ }
+
public ContextMenu from(ModelObjectWithContextMenu self, StaplerRequest2 request, StaplerResponse2 response, String view) throws JellyException, IOException {
WebApp webApp = WebApp.getCurrent();
final Script s = webApp.getMetaClass(self).getTearOff(JellyClassTearOff.class).findScript(view);
diff --git a/core/src/main/resources/hudson/model/Messages.properties b/core/src/main/resources/hudson/model/Messages.properties
index fbe7a70ae53b..f0d52f795ec0 100644
--- a/core/src/main/resources/hudson/model/Messages.properties
+++ b/core/src/main/resources/hudson/model/Messages.properties
@@ -409,7 +409,7 @@ User.IllegalUsername="{0}" is prohibited as a username for security reasons.
User.IllegalFullname="{0}" is prohibited as a full name for security reasons.
TimeZoneProperty.DisplayName=Time zone
-TimeZoneProperty.Description=Select a time zone to use rather than the system default
+TimeZoneProperty.Description=Select a time zone to use rather than the system default.
TimeZoneProperty.DisplayDefaultTimeZone=Default
TimeZoneProperty.current_time_in_=Current time in {0}: {1}
TimeZoneProperty.current_time_on_server_in_in_proposed_di=Current time on server in {0}: {1}; in proposed display zone: {2}
diff --git a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAccountAction/index.properties b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAccountAction/index.properties
index dfeb5024042c..648592ed85ae 100644
--- a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAccountAction/index.properties
+++ b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAccountAction/index.properties
@@ -22,6 +22,6 @@
title=Account
Full\ name=Full name
-Full\ name.Description=We recommend using your real name so people can recognize you instead of your ID
+Full\ name.Description=We recommend using your real name so people can recognize you instead of your ID.
Description=Description
-Description.Description=Enter a short description about yourself so that visitors know who you are
+Description.Description=Enter a short description about yourself so that visitors know who you are.
diff --git a/package.json b/package.json
index 9f40f36fff5b..365fadb619ed 100644
--- a/package.json
+++ b/package.json
@@ -26,24 +26,24 @@
"@babel/cli": "7.25.6",
"@babel/core": "7.25.2",
"@babel/preset-env": "7.25.4",
- "@eslint/js": "9.10.0",
- "babel-loader": "9.1.3",
+ "@eslint/js": "9.11.0",
+ "babel-loader": "9.2.1",
"clean-webpack-plugin": "4.0.0",
"css-loader": "7.1.2",
"css-minimizer-webpack-plugin": "7.0.0",
- "eslint": "9.10.0",
+ "eslint": "9.11.0",
"eslint-config-prettier": "9.1.0",
"eslint-formatter-checkstyle": "8.40.0",
"globals": "15.9.0",
"handlebars-loader": "1.7.3",
"mini-css-extract-plugin": "2.9.1",
- "postcss": "8.4.45",
+ "postcss": "8.4.47",
"postcss-loader": "8.1.1",
"postcss-preset-env": "10.0.3",
"postcss-scss": "4.0.9",
"prettier": "3.3.3",
- "sass": "1.78.0",
- "sass-loader": "16.0.1",
+ "sass": "1.79.3",
+ "sass-loader": "16.0.2",
"style-loader": "4.0.0",
"stylelint": "16.9.0",
"stylelint-checkstyle-reporter": "1.0.0",
@@ -65,5 +65,5 @@
"defaults",
"not IE 11"
],
- "packageManager": "yarn@4.4.1"
+ "packageManager": "yarn@4.5.0"
}
diff --git a/pom.xml b/pom.xml
index 86265c667654..61ca93c2edc6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,7 +28,7 @@ THE SOFTWARE.
org.jenkins-ci
jenkins
- 1.122
+ 1.123
@@ -73,9 +73,9 @@ THE SOFTWARE.
- 2.477
+ 2.479
-SNAPSHOT
- 2024-09-10T14:09:56Z
+ 2024-09-24T13:48:23Z
github
@@ -102,8 +102,8 @@ THE SOFTWARE.
1.22.19
- 4.4.1
- 920b4530755296dc2ce8b4351f057d4a26429524fcb2789d277560d94837c27e
+ 4.5.0
+ cc00dce5de4f68d11450519a0f69eadf2a1cbe5cc0d8e740bfac817a31d76874
-
yarn install
@@ -548,7 +482,6 @@ THE SOFTWARE.
initialize
-
yarn build
@@ -559,12 +492,34 @@ THE SOFTWARE.
build
-
+
+
+
+
+
+
+ yarn-ci-lint
+
+
+ env.CI
+
+
+ package.json
+
+
+
+
+
+ com.github.eirslett
+ frontend-maven-plugin
+ 1.15.1
+
- yarn lint
+ yarn lint:ci
yarn
+ test
lint:ci
${yarn.lint.skip}
@@ -575,6 +530,39 @@ THE SOFTWARE.
+
+ yarn-lint
+
+
+ !env.CI
+
+
+ package.json
+
+
+
+
+
+ com.github.eirslett
+ frontend-maven-plugin
+ 1.15.1
+
+
+ yarn lint
+
+ yarn
+
+ test
+
+ lint
+ ${yarn.lint.skip}
+
+
+
+
+
+
+
clean-node
diff --git a/test/pom.xml b/test/pom.xml
index 97fa920d4090..0f3aa999e08e 100644
--- a/test/pom.xml
+++ b/test/pom.xml
@@ -90,7 +90,7 @@ THE SOFTWARE.
io.jenkins.plugins
plugin-util-api
- 4.1.0
+ 5.1.0
org.jenkins-ci.plugins
@@ -118,7 +118,7 @@ THE SOFTWARE.
org.jenkins-ci.plugins
script-security
- 1361.v913100720139
+ 1362.v67dc1f0e1b_b_3
org.jenkins-ci.plugins.workflow
@@ -134,7 +134,7 @@ THE SOFTWARE.
org.jenkins-ci.plugins.workflow
workflow-support
- 920.v59f71ce16f04
+ 926.v9f4f9b_b_98c19
@@ -178,7 +178,7 @@ THE SOFTWARE.
org.jenkins-ci.main
jenkins-test-harness
- 2265.v3da_49c8134d6
+ 2289.vfd344a_6d1660
test
@@ -224,7 +224,7 @@ THE SOFTWARE.
org.jenkins-ci.plugins
credentials
- 1371.vfee6b_095f0a_3
+ 1378.v81ef4269d764
test
diff --git a/test/src/test/java/hudson/ClassicPluginStrategyTest.java b/test/src/test/java/hudson/ClassicPluginStrategyTest.java
index e8472cef0d81..1bf06531d68d 100644
--- a/test/src/test/java/hudson/ClassicPluginStrategyTest.java
+++ b/test/src/test/java/hudson/ClassicPluginStrategyTest.java
@@ -71,7 +71,7 @@ protected Collection loadBundledPlugins() {
}
};
setPluginManager(pluginManager);
- return new Hudson(home, createWebServer(), pluginManager);
+ return new Hudson(home, createWebServer2(), pluginManager);
}
};
diff --git a/test/src/test/java/hudson/slaves/JNLPLauncherRealTest.java b/test/src/test/java/hudson/slaves/JNLPLauncherRealTest.java
index 557231f5d140..9b4b9bed3f69 100644
--- a/test/src/test/java/hudson/slaves/JNLPLauncherRealTest.java
+++ b/test/src/test/java/hudson/slaves/JNLPLauncherRealTest.java
@@ -25,6 +25,7 @@
package hudson.slaves;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.hasKey;
import static org.hamcrest.Matchers.is;
import hudson.ExtensionList;
@@ -32,7 +33,6 @@
import hudson.model.FreeStyleBuild;
import hudson.model.FreeStyleProject;
import hudson.model.Slave;
-import java.io.File;
import jenkins.agents.WebSocketAgentsTest;
import jenkins.slaves.JnlpSlaveAgentProtocol4;
import org.junit.Rule;
@@ -104,7 +104,7 @@ public void run(JenkinsRule r) throws Throwable {
p.setAssignedNode(agent);
FreeStyleBuild b = r.buildAndAssertSuccess(p);
if (webSocket) {
- assertThat(agent.toComputer().getSystemProperties().get("java.class.path"), is(new File(r.jenkins.root, "agent.jar").getAbsolutePath()));
+ assertThat(agent.toComputer().getSystemProperties(), hasKey("os.name"));
}
System.err.println(JenkinsRule.getLog(b));
}
diff --git a/test/src/test/java/jenkins/security/Security3430Test.java b/test/src/test/java/jenkins/security/Security3430Test.java
index f39702fd4204..09f227af4805 100644
--- a/test/src/test/java/jenkins/security/Security3430Test.java
+++ b/test/src/test/java/jenkins/security/Security3430Test.java
@@ -40,6 +40,7 @@
import org.hamcrest.TypeSafeMatcher;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
import org.jvnet.hudson.test.InboundAgentRule;
import org.jvnet.hudson.test.JenkinsRule;
import org.jvnet.hudson.test.RealJenkinsRule;
@@ -53,6 +54,9 @@ public class Security3430Test {
@Rule
public InboundAgentRule agents = new InboundAgentRule();
+ @Rule
+ public TemporaryFolder tmp = new TemporaryFolder();
+
@Test
public void runWithOldestSupportedAgentJar() throws Throwable {
runWithRemoting(RemotingVersionInfo.getMinimumSupportedVersion().toString(), "/old-remoting/remoting-minimum-supported.jar", true);
@@ -65,18 +69,14 @@ public void runWithPreviousAgentJar() throws Throwable {
@Test
public void runWithCurrentAgentJar() throws Throwable {
- runWithRemoting(null, null, false);
+ runWithRemoting(Launcher.VERSION, null, false);
}
private void runWithRemoting(String expectedRemotingVersion, String remotingResourcePath, boolean requestingJarFromAgent) throws Throwable {
- if (expectedRemotingVersion != null) {
- FileUtils.copyURLToFile(Security3430Test.class.getResource(remotingResourcePath), new File(jj.getHome(), "agent.jar"));
- }
-
jj.startJenkins();
final String agentName = "agent1";
try {
- agents.createAgent(jj, InboundAgentRule.Options.newBuilder().name(agentName).build());
+ createAgent(agentName, remotingResourcePath);
jj.runRemotely(Security3430Test::_run, agentName, expectedRemotingVersion, requestingJarFromAgent, true);
} finally {
agents.stop(jj, agentName);
@@ -84,13 +84,31 @@ private void runWithRemoting(String expectedRemotingVersion, String remotingReso
jj.runRemotely(Security3430Test::disableJarURLValidatorImpl);
final String agentName2 = "agent2";
try {
- agents.createAgent(jj, InboundAgentRule.Options.newBuilder().name(agentName2).build());
+ createAgent(agentName2, remotingResourcePath);
jj.runRemotely(Security3430Test::_run, agentName2, expectedRemotingVersion, requestingJarFromAgent, false);
} finally {
agents.stop(jj, agentName2);
}
}
+ private void createAgent(String name, String remotingResourcePath) throws Throwable {
+ if (remotingResourcePath != null) {
+ var jar = tmp.newFile(name + ".jar");
+ FileUtils.copyURLToFile(Security3430Test.class.getResource(remotingResourcePath), jar);
+ // TODO awkward, especially as InboundAgentRule.getAgentArguments is private;
+ // would be helpful to have an option for a specific agent JAR:
+ var opts = InboundAgentRule.Options.newBuilder().name(name).skipStart().build();
+ agents.createAgent(jj, opts);
+ agents.start(new InboundAgentRule.AgentArguments(jj.getUrl() + "computer/" + name + "/slave-agent.jnlp", jar, jj.runRemotely(Security3430Test::getJnlpMac, name), 1, List.of()), opts);
+ } else {
+ agents.createAgent(jj, InboundAgentRule.Options.newBuilder().name(name).build());
+ }
+ }
+
+ private static String getJnlpMac(JenkinsRule r, String name) throws Throwable {
+ return ((SlaveComputer) r.jenkins.getComputer(name)).getJnlpMac();
+ }
+
// This is quite artificial, but demonstrating that without JarURLValidatorImpl we do not allow any calls from the agent:
private static void disableJarURLValidatorImpl(JenkinsRule j) {
assertTrue(ExtensionList.lookup(ChannelConfigurator.class).remove(ExtensionList.lookupSingleton(JarURLValidatorImpl.class)));
@@ -111,6 +129,7 @@ private static void _run(JenkinsRule j, String agentName, String expectedRemotin
final Computer computer = j.jenkins.getComputer(agentName);
assertThat(computer, instanceOf(SlaveComputer.class));
SlaveComputer agent = (SlaveComputer) computer;
+ j.waitOnline(agent.getNode());
final Channel channel = agent.getChannel();
if (expectedRemotingVersion != null) {
final String result = channel.call(new AgentVersionCallable());
@@ -126,7 +145,7 @@ private static void _run(JenkinsRule j, String agentName, String expectedRemotin
if (requestingJarFromAgent) {
assertThat(logRecords, hasItem(logMessageContainsString("Allowing URL: file:/")));
} else {
- assertThat(logRecords, is(empty()));
+ assertThat(logRecords.stream().map(LogRecord::getMessage).toList(), is(empty()));
}
logHandler.clear();
@@ -140,7 +159,7 @@ private static void _run(JenkinsRule j, String agentName, String expectedRemotin
assertThat(ex.getMessage(), containsString("No hudson.remoting.JarURLValidator has been set for this channel, so all #fetchJar calls are rejected. This is likely a bug in Jenkins. As a workaround, try updating the agent.jar file."));
} else {
assertTrue(channel.preloadJar(j.jenkins.getPluginManager().uberClassLoader, Stapler.class));
- assertThat(logRecords, is(empty()));
+ assertThat(logRecords.stream().map(LogRecord::getMessage).toList(), is(empty()));
}
}
}
diff --git a/update-since-todo.py b/update-since-todo.py
index 3b0241a9928f..38563e6ca488 100755
--- a/update-since-todo.py
+++ b/update-since-todo.py
@@ -102,8 +102,8 @@ def analyze_files(commits_and_tags, dry_run=False):
"*.js",
]
- runningInCI = os.environ.get("CI", "false") == "true"
- if runningInCI:
+ is_ci = "CI" in os.environ
+ if is_ci:
print("Detailed output
\n\n")
with subprocess.Popen(cmd, stdout=subprocess.PIPE) as proc:
for line in io.TextIOWrapper(proc.stdout):
@@ -113,7 +113,7 @@ def analyze_files(commits_and_tags, dry_run=False):
if retcode:
raise subprocess.CalledProcessError(retcode, cmd)
print()
- if runningInCI:
+ if is_ci:
print(" \n")
diff --git a/war/pom.xml b/war/pom.xml
index ab2100469ba4..f256a95017ca 100644
--- a/war/pom.xml
+++ b/war/pom.xml
@@ -299,7 +299,7 @@ THE SOFTWARE.
org.jenkins-ci.plugins
script-security
- 1361.v913100720139
+ 1362.v67dc1f0e1b_b_3
hpi
@@ -320,7 +320,7 @@ THE SOFTWARE.
io.jenkins.plugins
plugin-util-api
- 4.1.0
+ 5.1.0
hpi
@@ -342,7 +342,7 @@ THE SOFTWARE.
org.jenkins-ci.plugins.workflow
workflow-support
- 920.v59f71ce16f04
+ 926.v9f4f9b_b_98c19
hpi
diff --git a/yarn.lock b/yarn.lock
index de7c0e057fe5..28ee807765bc 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1871,10 +1871,10 @@ __metadata:
languageName: node
linkType: hard
-"@eslint/js@npm:9.10.0":
- version: 9.10.0
- resolution: "@eslint/js@npm:9.10.0"
- checksum: 10c0/2ac45a002dc1ccf25be46ea61001ada8d77248d1313ab4e53f3735e5ae00738a757874e41f62ad6fbd49df7dffeece66e5f53ff0d7b78a99ce4c68e8fea66753
+"@eslint/js@npm:9.11.0":
+ version: 9.11.0
+ resolution: "@eslint/js@npm:9.11.0"
+ checksum: 10c0/7403aeba28ba9cae3470d149b334a51375eb7fd850f167555c81cc72fe98e5cc5ac3059ccdbe68eb255a49d7498a7288d25429af0c7d20afeb4b3c0748349bb4
languageName: node
linkType: hard
@@ -1885,12 +1885,12 @@ __metadata:
languageName: node
linkType: hard
-"@eslint/plugin-kit@npm:^0.1.0":
- version: 0.1.0
- resolution: "@eslint/plugin-kit@npm:0.1.0"
+"@eslint/plugin-kit@npm:^0.2.0":
+ version: 0.2.0
+ resolution: "@eslint/plugin-kit@npm:0.2.0"
dependencies:
levn: "npm:^0.4.1"
- checksum: 10c0/fae97cd4efc1c32501c286abba1b5409848ce8c989e1ca6a5bb057a304a2cd721e6e957f6bc35ce95cfd0871e822ed42df3c759fecdad72c30e70802e26f83c7
+ checksum: 10c0/00b92bc52ad09b0e2bbbb30591c02a895f0bec3376759562590e8a57a13d096b22f8c8773b6bf791a7cf2ea614123b3d592fd006c51ac5fd0edbb90ea6d8760c
languageName: node
linkType: hard
@@ -2635,16 +2635,16 @@ __metadata:
languageName: node
linkType: hard
-"babel-loader@npm:9.1.3":
- version: 9.1.3
- resolution: "babel-loader@npm:9.1.3"
+"babel-loader@npm:9.2.1":
+ version: 9.2.1
+ resolution: "babel-loader@npm:9.2.1"
dependencies:
find-cache-dir: "npm:^4.0.0"
schema-utils: "npm:^4.0.0"
peerDependencies:
"@babel/core": ^7.12.0
webpack: ">=5"
- checksum: 10c0/e3fc3c9e02bd908b37e8e8cd4f3d7280cf6ac45e33fc203aedbb615135a0fecc33bf92573b71a166a827af029d302c0b060354985cd91d510320bd70a2f949eb
+ checksum: 10c0/efb82faff4c7c27e9c15bb28bf11c73200e61cf365118a9514e8d74dd489d0afc2a0d5aaa62cb4254eefc2ab631579224d95a03fd245410f28ea75e24de54ba4
languageName: node
linkType: hard
@@ -2835,7 +2835,7 @@ __metadata:
languageName: node
linkType: hard
-"chokidar@npm:>=3.0.0 <4.0.0, chokidar@npm:^3.6.0":
+"chokidar@npm:^3.6.0":
version: 3.6.0
resolution: "chokidar@npm:3.6.0"
dependencies:
@@ -2854,6 +2854,15 @@ __metadata:
languageName: node
linkType: hard
+"chokidar@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "chokidar@npm:4.0.0"
+ dependencies:
+ readdirp: "npm:^4.0.1"
+ checksum: 10c0/42d03c53b0ad200689e4fae7763133561480561cab8ba5304e8f2298ff45ff84bf0f6065c3f02b9e557b74b156813734439a1a2ff19a1ea6b35692395cd92738
+ languageName: node
+ linkType: hard
+
"chownr@npm:^2.0.0":
version: 2.0.0
resolution: "chownr@npm:2.0.0"
@@ -3518,16 +3527,16 @@ __metadata:
languageName: node
linkType: hard
-"eslint@npm:9.10.0":
- version: 9.10.0
- resolution: "eslint@npm:9.10.0"
+"eslint@npm:9.11.0":
+ version: 9.11.0
+ resolution: "eslint@npm:9.11.0"
dependencies:
"@eslint-community/eslint-utils": "npm:^4.2.0"
"@eslint-community/regexpp": "npm:^4.11.0"
"@eslint/config-array": "npm:^0.18.0"
"@eslint/eslintrc": "npm:^3.1.0"
- "@eslint/js": "npm:9.10.0"
- "@eslint/plugin-kit": "npm:^0.1.0"
+ "@eslint/js": "npm:9.11.0"
+ "@eslint/plugin-kit": "npm:^0.2.0"
"@humanwhocodes/module-importer": "npm:^1.0.1"
"@humanwhocodes/retry": "npm:^0.3.0"
"@nodelib/fs.walk": "npm:^1.2.8"
@@ -3563,7 +3572,7 @@ __metadata:
optional: true
bin:
eslint: bin/eslint.js
- checksum: 10c0/7357f3995b15043eea83c8c0ab16c385ce3f28925c1b11cfcd6b2ede8faab3d91ede84a68173dd5f6e3e176e177984e6218de58b7b8388e53e2881f1ec07c836
+ checksum: 10c0/3438a78172bc667dc87bc4ad864671bd93231c82c9d366899ea3a77fc3444c8cdd158e7fe3ca1cfe4cb566045b1b36c0ccae9fc20efeb4b187f1a534075a1177
languageName: node
linkType: hard
@@ -4390,12 +4399,12 @@ __metadata:
"@babel/cli": "npm:7.25.6"
"@babel/core": "npm:7.25.2"
"@babel/preset-env": "npm:7.25.4"
- "@eslint/js": "npm:9.10.0"
- babel-loader: "npm:9.1.3"
+ "@eslint/js": "npm:9.11.0"
+ babel-loader: "npm:9.2.1"
clean-webpack-plugin: "npm:4.0.0"
css-loader: "npm:7.1.2"
css-minimizer-webpack-plugin: "npm:7.0.0"
- eslint: "npm:9.10.0"
+ eslint: "npm:9.11.0"
eslint-config-prettier: "npm:9.1.0"
eslint-formatter-checkstyle: "npm:8.40.0"
globals: "npm:15.9.0"
@@ -4405,13 +4414,13 @@ __metadata:
jquery: "npm:3.7.1"
lodash: "npm:4.17.21"
mini-css-extract-plugin: "npm:2.9.1"
- postcss: "npm:8.4.45"
+ postcss: "npm:8.4.47"
postcss-loader: "npm:8.1.1"
postcss-preset-env: "npm:10.0.3"
postcss-scss: "npm:4.0.9"
prettier: "npm:3.3.3"
- sass: "npm:1.78.0"
- sass-loader: "npm:16.0.1"
+ sass: "npm:1.79.3"
+ sass-loader: "npm:16.0.2"
sortablejs: "npm:1.15.3"
style-loader: "npm:4.0.0"
stylelint: "npm:16.9.0"
@@ -5258,7 +5267,7 @@ __metadata:
languageName: node
linkType: hard
-"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1":
+"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1, picocolors@npm:^1.1.0":
version: 1.1.0
resolution: "picocolors@npm:1.1.0"
checksum: 10c0/86946f6032148801ef09c051c6fb13b5cf942eaf147e30ea79edb91dd32d700934edebe782a1078ff859fb2b816792e97ef4dab03d7f0b804f6b01a0df35e023
@@ -6094,14 +6103,14 @@ __metadata:
languageName: node
linkType: hard
-"postcss@npm:8.4.45, postcss@npm:^8.4.33, postcss@npm:^8.4.38, postcss@npm:^8.4.41":
- version: 8.4.45
- resolution: "postcss@npm:8.4.45"
+"postcss@npm:8.4.47, postcss@npm:^8.4.33, postcss@npm:^8.4.38, postcss@npm:^8.4.41":
+ version: 8.4.47
+ resolution: "postcss@npm:8.4.47"
dependencies:
nanoid: "npm:^3.3.7"
- picocolors: "npm:^1.0.1"
- source-map-js: "npm:^1.2.0"
- checksum: 10c0/ad6f8b9b1157d678560373696109745ab97a947d449f8a997acac41c7f1e4c0f3ca4b092d6df1387f430f2c9a319987b1780dbdc27e35800a88cde9b606c1e8f
+ picocolors: "npm:^1.1.0"
+ source-map-js: "npm:^1.2.1"
+ checksum: 10c0/929f68b5081b7202709456532cee2a145c1843d391508c5a09de2517e8c4791638f71dd63b1898dba6712f8839d7a6da046c72a5e44c162e908f5911f57b5f44
languageName: node
linkType: hard
@@ -6161,6 +6170,13 @@ __metadata:
languageName: node
linkType: hard
+"readdirp@npm:^4.0.1":
+ version: 4.0.1
+ resolution: "readdirp@npm:4.0.1"
+ checksum: 10c0/e5a0b547015f68ecc918f115b62b75b2b840611480a9240cb3317090a0ddac01bb9b40315a8fa08acdf52a43eea17b808c89b645263cba3ab64dc557d7f801f1
+ languageName: node
+ linkType: hard
+
"readdirp@npm:~3.6.0":
version: 3.6.0
resolution: "readdirp@npm:3.6.0"
@@ -6340,9 +6356,9 @@ __metadata:
languageName: node
linkType: hard
-"sass-loader@npm:16.0.1":
- version: 16.0.1
- resolution: "sass-loader@npm:16.0.1"
+"sass-loader@npm:16.0.2":
+ version: 16.0.2
+ resolution: "sass-loader@npm:16.0.2"
dependencies:
neo-async: "npm:^2.6.2"
peerDependencies:
@@ -6362,20 +6378,20 @@ __metadata:
optional: true
webpack:
optional: true
- checksum: 10c0/ac841ea8881354e4bf286c2c5f331b60c2edf73c6e4abbc85b954024ec16dfda01accf59ea6fcb4b29ec7dd5a81a9950fc9138dcb262b9130865367201b7699a
+ checksum: 10c0/9c5165b44fc6229d8f36fb2af3ebb9d1e3a837bcc80040d3f3fc5793cd2998407e2ed55853c2b342cca2b5e17fa141160198ad034685a95b17126200c320ae11
languageName: node
linkType: hard
-"sass@npm:1.78.0":
- version: 1.78.0
- resolution: "sass@npm:1.78.0"
+"sass@npm:1.79.3":
+ version: 1.79.3
+ resolution: "sass@npm:1.79.3"
dependencies:
- chokidar: "npm:>=3.0.0 <4.0.0"
+ chokidar: "npm:^4.0.0"
immutable: "npm:^4.0.0"
source-map-js: "npm:>=0.6.2 <2.0.0"
bin:
sass: sass.js
- checksum: 10c0/6577a87c00b03a5a50f3a11b4b6592f28abce34e61812e381535a3b712151bd94db3ca06467d20395431e0f38a23f99e616d6859d771fb6d4617c359f590c48c
+ checksum: 10c0/ad171bbbb2d7a789cc47803a59dcf2d0ac92ede34b538bb3fd683b6391a9ac3dc3eabaac264fc9582c770c4e435b85840e011785b7adfc0ac002b51ba91179c9
languageName: node
linkType: hard
@@ -6530,7 +6546,7 @@ __metadata:
languageName: node
linkType: hard
-"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.1, source-map-js@npm:^1.2.0":
+"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.1, source-map-js@npm:^1.2.1":
version: 1.2.1
resolution: "source-map-js@npm:1.2.1"
checksum: 10c0/7bda1fc4c197e3c6ff17de1b8b2c20e60af81b63a52cb32ec5a5d67a20a7d42651e2cb34ebe93833c5a2a084377e17455854fee3e21e7925c64a51b6a52b0faf