Compare commits

...

42 Commits

Author SHA1 Message Date
Mark Waite be407f2119
Sanitize launchable build name (#11174)
Changelog Drafter / update_draft_release (push) Waiting to run Details
Changelog Drafter / jenkins_io_draft (push) Waiting to run Details
Label conflicting PRs / main (push) Waiting to run Details
* Launchable rejects a name with embedded '%2F'

The '%2F' is a URL encoded '/' and occurs when a branch name with a '/'
is pushed to the Jenkins core repository.

This first step in the fix is to show that the bug exists.

* Sanitize launchable build name
2025-10-08 08:18:03 +02:00
renovate[bot] f73f1f034d
Update stapler.version to v2044 (major) (#11175)
Update stapler.version to v2044

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-08 08:17:42 +02:00
renovate[bot] d396a24930
Update dependency org.jenkins-ci.plugins:matrix-project to v867 (#11172)
Changelog Drafter / update_draft_release (push) Waiting to run Details
Changelog Drafter / jenkins_io_draft (push) Waiting to run Details
Label conflicting PRs / main (push) Waiting to run Details
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-07 21:22:03 +01:00
Stefan Spieker b85a4f959b
Converted `config.groovy` to `config.jelly` in proxy config and added German localization (#11159)
Changelog Drafter / update_draft_release (push) Waiting to run Details
Changelog Drafter / jenkins_io_draft (push) Waiting to run Details
Label conflicting PRs / main (push) Waiting to run Details
2025-10-07 15:43:32 +02:00
renovate[bot] 88cbd32725
Update dependency io.jenkins.plugins:asm-api to v9.9-185.va_6c6b_3348b_c3 (#11161)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-07 15:43:21 +02:00
renovate[bot] 9ad057fd32
Update softprops/action-gh-release action to v2.4.0 (#11170)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-07 15:43:10 +02:00
renovate[bot] 0e405cc185
Update dependency org.jenkins-ci.main:jenkins-test-harness to v2508 (#11169)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-07 14:11:18 +01:00
Jenkins Release Bot c0bed7aa50 [maven-release-plugin] prepare for next development iteration 2025-10-07 12:26:09 +00:00
Jenkins Release Bot 69ef02102e [maven-release-plugin] prepare release jenkins-2.531 2025-10-07 12:25:57 +00:00
renovate[bot] 0b23eef517
Update dependency stylelint to v16.25.0 (#11164)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-07 10:35:38 +01:00
renovate[bot] 02e6a9aa61
Update dependency org.jenkins-ci.plugins:scm-api to v712 (#11166)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-07 10:35:15 +01:00
renovate[bot] 903837d94e
Update eslint monorepo to v9.37.0 (#11168)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-07 10:35:09 +01:00
Alexander Brandes ec5c7feb45
Pin GH actions maintained by GH (#11167) 2025-10-07 10:35:00 +01:00
Hervé Le Meur 4e76327afe
Retry failing Windows builds on non-spot agent (#11052)
Co-authored-by: Tim Jacomb <21194782+timja@users.noreply.github.com>
2025-10-07 09:52:01 +01:00
Christopher Molin 68e7cdec61
Remove unused utility methods checking for Java 8 (#8152)
Changelog Drafter / update_draft_release (push) Has been cancelled Details
Changelog Drafter / jenkins_io_draft (push) Has been cancelled Details
Label conflicting PRs / main (push) Has been cancelled Details
Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>
2025-10-06 08:58:55 +01:00
renovate[bot] cb6bc5b1d2
Update dependency io.jenkins.plugins:echarts-api to v6.0.0-1165.vd1283a_3e37d4 (#11110)
* Update dependency io.jenkins.plugins:echarts-api to v6.0.0-1165.vd1283a_3e37d4

* Use Jackson 2 API 2.19.2-408.x

Remove Jackson 2 exclusion for Renovate - resolved

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>
2025-10-06 08:28:10 +02:00
renovate[bot] 375220a0c2
Update dependency org.ow2.asm:asm to v9.9 (#11156)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-06 08:26:09 +02:00
Alexander Brandes aa51217706
Replace deprecated 'tibdex/github-app-token' with native GH action (#11158)
Changelog Drafter / update_draft_release (push) Waiting to run Details
Changelog Drafter / jenkins_io_draft (push) Waiting to run Details
Label conflicting PRs / main (push) Waiting to run Details
Co-authored-by: Tim Jacomb <21194782+timja@users.noreply.github.com>
2025-10-05 16:15:37 +02:00
Stefan Spieker 7bf2969c13
Replaced deprecated `Stringutils` method with suggested replacement in tests (#11155) 2025-10-05 16:15:02 +02:00
renovate[bot] 84b55f3250
Update mheap/github-action-required-labels action to v5.5.1 (#11157)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-05 16:14:50 +02:00
renovate[bot] bc629045d2
Update dependency org.jenkins-ci.plugins:cloudbees-folder to v6.1053.vd62fb_b_f7367b_ (#11142)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-05 16:14:31 +02:00
renovate[bot] 0eba2a5684
Update dependency io.jenkins.plugins:commons-lang3-api to v3.19.0-104.v12125f33a_255 (#11104)
Changelog Drafter / update_draft_release (push) Waiting to run Details
Changelog Drafter / jenkins_io_draft (push) Waiting to run Details
Label conflicting PRs / main (push) Waiting to run Details
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-04 22:12:36 +02:00
renovate[bot] b0eafed55e
Update dependency org.jenkins-ci:jenkins to v1.141 (#11139)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>
Co-authored-by: Jakob Ackermann <das7pad@outlook.com>
2025-10-04 22:12:27 +02:00
Jesse Glick 9f200b11b6
Define health check for `BindException` on enforced TCP port (#11145) 2025-10-04 22:12:07 +02:00
Alexander Brandes b1fe658d39
Prefer using the SHA of third party actions (#11154) 2025-10-04 22:11:58 +02:00
renovate[bot] 443160f6c0
Update dependency org.jenkins-ci.main:remoting to v3345 (#11152)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-04 22:11:50 +02:00
renovate[bot] 417e7b5f7a
Update softprops/action-gh-release action to v2.3.4 (#11151)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-04 22:11:42 +02:00
renovate[bot] 49f837247d
Update dependency org.jenkins-ci.plugins:scm-api to v711 (#11150)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-04 22:11:35 +02:00
Mark Waite 35b6741fcc
Fix javadoc to refer to the correct method (#11149) 2025-10-04 22:11:22 +02:00
renovate[bot] 69d5a54239
Update dependency stylelint-config-standard-scss to v16 (#11068)
Changelog Drafter / update_draft_release (push) Waiting to run Details
Changelog Drafter / jenkins_io_draft (push) Waiting to run Details
Label conflicting PRs / main (push) Waiting to run Details
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>
Co-authored-by: Jakob Ackermann <das7pad@outlook.com>
2025-10-04 10:42:24 +01:00
Tim Jacomb 6ec55c327f
Reduce test flakiness: Give agent startup more time (10s -> 30s) (#11153)
Co-authored-by: Jakob Ackermann <das7pad@outlook.com>
2025-10-04 09:02:45 +01:00
renovate[bot] c5b876b582
Update dependency org.jenkins-ci.plugins:junit to v1361 (#11144)
Changelog Drafter / update_draft_release (push) Waiting to run Details
Changelog Drafter / jenkins_io_draft (push) Waiting to run Details
Label conflicting PRs / main (push) Waiting to run Details
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-03 17:13:48 +02:00
renovate[bot] 6cfd7e6b5e
Update dependency webpack to v5.102.0 (#11146)
Changelog Drafter / update_draft_release (push) Waiting to run Details
Changelog Drafter / jenkins_io_draft (push) Waiting to run Details
Label conflicting PRs / main (push) Waiting to run Details
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-03 07:45:50 +01:00
renovate[bot] b0367d4cfb
Update dependency org.jenkins-ci.plugins.workflow:workflow-support to v991 (#11140)
Changelog Drafter / update_draft_release (push) Waiting to run Details
Changelog Drafter / jenkins_io_draft (push) Waiting to run Details
Label conflicting PRs / main (push) Waiting to run Details
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-02 08:02:58 +02:00
Jan Faracik 4c310c5201
Show build cause on experimental build UI (#11128)
Changelog Drafter / update_draft_release (push) Waiting to run Details
Changelog Drafter / jenkins_io_draft (push) Waiting to run Details
Label conflicting PRs / main (push) Waiting to run Details
Co-authored-by: Kris Stern <krisstern@outlook.com>
2025-10-01 16:28:24 +01:00
renovate[bot] 481c7784e6
Update dependency org.jenkins-ci.plugins:junit to v1359 (#11138)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-01 16:17:00 +01:00
Jan Faracik f7c1f67dbc
Move experimental run sidepanel to overflow (#11127) 2025-10-01 16:16:43 +01:00
Alexander Brandes 865bff5565
Don't fail when no @since tags are found in @since updater (#11135)
Changelog Drafter / update_draft_release (push) Waiting to run Details
Changelog Drafter / jenkins_io_draft (push) Waiting to run Details
Label conflicting PRs / main (push) Waiting to run Details
2025-10-01 10:27:28 +01:00
Damien 7beca3db02
Fix French translations (#11134) 2025-10-01 10:26:57 +01:00
renovate[bot] c01b2c4363
Update dependency net.java.dev.jna:jna to v5.18.1 (#11136)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-01 08:02:28 +02:00
renovate[bot] bc8ef8dcca
Update dependency io.jenkins.plugins:bootstrap5-api to v5.3.8-895.v4d0d8e47fea_d (#11097)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-01 08:02:10 +02:00
Jenkins Release Bot 3bce9e226b [maven-release-plugin] prepare for next development iteration
Changelog Drafter / update_draft_release (push) Waiting to run Details
Changelog Drafter / jenkins_io_draft (push) Waiting to run Details
Label conflicting PRs / main (push) Waiting to run Details
2025-09-30 12:23:51 +00:00
76 changed files with 629 additions and 392 deletions

10
.github/renovate.json vendored
View File

@ -107,16 +107,6 @@
"enabled": false,
"description": "maven-metadata.xml is missing for this really old package which is required by renovate"
},
{
"description": "Jackson 2.19.0 causes issues with Kubernetes client. See https://github.com/jenkinsci/bom/pull/5114",
"matchManagers": [
"maven"
],
"allowedVersions": "<2.19.0",
"matchPackageNames": [
"org.jenkins-ci.plugins:jackson2-api"
]
}
],
"customManagers": [
{

View File

@ -24,14 +24,14 @@ jobs:
# Drafts your next Release notes as Pull Requests are merged into "master"
- name: Generate GitHub Release Draft
id: release-drafter
uses: release-drafter/release-drafter@v6
uses: release-drafter/release-drafter@b1476f6e6eb133afa41ed8589daba6dc69b4d3f5 # v6.1.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Generates a YAML changelog file using https://github.com/jenkinsci/jenkins-core-changelog-generator
# used by Oleg N in open graph generator experiment for now
- name: Generate YAML changelog draft
id: jenkins-core-changelog-generator
uses: jenkinsci/jenkins-core-changelog-generator@master
uses: jenkinsci/core-changelog-generator@feb124ed2262f8586ac4561348436afb965812e1 # v2.2.2
env:
GITHUB_AUTH: github-actions:${{ secrets.GITHUB_TOKEN }}
- name: Upload Changelog YAML
@ -44,17 +44,15 @@ jobs:
runs-on: ubuntu-latest
if: github.repository_owner == 'jenkinsci'
steps:
- uses: tibdex/github-app-token@v2
- uses: actions/create-github-app-token@67018539274d69449ef7c02e8e71183d1719ab42 # v2.1.4
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.io"]
app-id: ${{ secrets.JENKINS_CHANGELOG_UPDATER_APP_ID }}
private-key: ${{ secrets.JENKINS_CHANGELOG_UPDATER_PRIVATE_KEY }}
owner: jenkins-infra
repositories: jenkins.io
- name: Check out
uses: actions/checkout@v5
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 0
- name: Publish jenkins.io changelog draft

View File

@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Label conflicting PRs
uses: eps1lon/actions-label-merge-conflict@v3.0.3
uses: eps1lon/actions-label-merge-conflict@1df065ebe6e3310545d4f4c4e862e43bdca146f0 # v3.0.3
with:
dirtyLabel: "unresolved-merge-conflict"
repoToken: "${{ secrets.GITHUB_TOKEN }}"

View File

@ -11,7 +11,7 @@ jobs:
steps:
- name: Check if PR targets LTS branch
if: startsWith(github.event.pull_request.base.ref, 'stable-')
uses: actions/github-script@v8
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |

View File

@ -16,9 +16,9 @@ jobs:
is-lts: ${{ steps.set-version.outputs.is-lts }}
is-rc: ${{ steps.set-version.outputs.is-rc }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Set up JDK 21
uses: actions/setup-java@v5
uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 #v 5.0.0
with:
distribution: "temurin"
java-version: 21
@ -74,7 +74,7 @@ jobs:
wget -q https://get.jenkins.io/${REPO}/${PROJECT_VERSION}/${FILE_NAME}
- name: Upload Release Asset
id: upload-war
uses: softprops/action-gh-release@6cbd405e2c4e67a21c47fa9e383d020e4e28b836 # v2.3.3
uses: softprops/action-gh-release@aec2ec56f94eb8180ceec724245f64ef008b89f5 # v2.4.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
@ -109,7 +109,7 @@ jobs:
- name: Upload Release Asset
id: upload-deb
if: always()
uses: softprops/action-gh-release@6cbd405e2c4e67a21c47fa9e383d020e4e28b836 # v2.3.3
uses: softprops/action-gh-release@aec2ec56f94eb8180ceec724245f64ef008b89f5 # v2.4.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
@ -145,7 +145,7 @@ jobs:
- name: Upload Release Asset
id: upload-rpm
if: always()
uses: softprops/action-gh-release@6cbd405e2c4e67a21c47fa9e383d020e4e28b836 # v2.3.3
uses: softprops/action-gh-release@aec2ec56f94eb8180ceec724245f64ef008b89f5 # v2.4.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
@ -181,7 +181,7 @@ jobs:
- name: Upload Release Asset
id: upload-msi
if: always()
uses: softprops/action-gh-release@6cbd405e2c4e67a21c47fa9e383d020e4e28b836 # v2.3.3
uses: softprops/action-gh-release@aec2ec56f94eb8180ceec724245f64ef008b89f5 # v2.4.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
@ -217,7 +217,7 @@ jobs:
- name: Upload Release Asset
id: upload-suse-rpm
if: always()
uses: softprops/action-gh-release@6cbd405e2c4e67a21c47fa9e383d020e4e28b836 # v2.3.3
uses: softprops/action-gh-release@aec2ec56f94eb8180ceec724245f64ef008b89f5 # v2.4.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:

View File

@ -12,7 +12,7 @@ jobs:
issues: write
pull-requests: write
steps:
- uses: mheap/github-action-required-labels@8afbe8ae6ab7647d0c9f0cfa7c2f939650d22509 # v5
- uses: mheap/github-action-required-labels@8afbe8ae6ab7647d0c9f0cfa7c2f939650d22509 # v5.5.1
with:
mode: minimum
count: 1

View File

@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
if: ${{ github.repository_owner == 'jenkinsci' }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 0
- name: Run update-since-todo.py
@ -29,7 +29,7 @@ jobs:
id: run_script
shell: bash
- name: Create Pull Request
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: Fill in since annotations

12
Jenkinsfile vendored
View File

@ -29,14 +29,16 @@ stage('Record build') {
/*
* TODO Add the commits of the transitive closure of the Jenkins WAR under test to this build.
*/
sh 'launchable verify && launchable record build --name ${BUILD_TAG} --source jenkinsci/jenkins=.'
// Replace URL encoded characters with '-' because Launchable rejects '%2F' in build name
def launchableName = env.BUILD_TAG.replaceAll('(%[0-9A-Fa-f]{2})+', '-')
sh "launchable verify && launchable record build --name ${launchableName} --source jenkinsci/jenkins=."
axes.values().combinations {
def (platform, jdk) = it
if (platform == 'windows' && jdk != 17) {
return // unnecessary use of hardware
}
def sessionFile = "launchable-session-${platform}-jdk${jdk}.txt"
sh "launchable record session --build ${env.BUILD_TAG} --flavor platform=${platform} --flavor jdk=${jdk} >${sessionFile}"
sh "launchable record session --build ${launchableName} --flavor platform=${platform} --flavor jdk=${jdk} >${sessionFile}"
stash name: sessionFile, includes: sessionFile
}
}
@ -67,7 +69,13 @@ axes.values().combinations {
if (platform == 'windows') {
agentContainerLabel += '-windows'
}
int retryCount = 0
retry(conditions: [kubernetesAgent(handleNonKubernetes: true), nonresumable()], count: 2) {
if (retryCount == 1 && platform == 'windows' ) {
agentContainerLabel = agentContainerLabel + '-nonspot'
}
// Increment before allocating the node in case it fails
retryCount++
node(agentContainerLabel) {
// First stage is actually checking out the source. Since we're using Multibranch
// currently, we can use "checkout scm".

View File

@ -28,7 +28,7 @@ THE SOFTWARE.
<parent>
<groupId>org.jenkins-ci.main</groupId>
<artifactId>jenkins-parent</artifactId>
<version>2.530</version>
<version>${revision}${changelist}</version>
</parent>
<artifactId>jenkins-bom</artifactId>
@ -41,7 +41,7 @@ THE SOFTWARE.
<commons-fileupload2.version>2.0.0-M4</commons-fileupload2.version>
<groovy.version>2.4.21</groovy.version>
<jelly.version>1.1-jenkins-20250731</jelly.version>
<stapler.version>2036.v69a_e0454da_b_9</stapler.version>
<stapler.version>2044.v10eea_06701ef</stapler.version>
</properties>
<dependencyManagement>
@ -144,7 +144,7 @@ THE SOFTWARE.
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>5.18.0</version>
<version>5.18.1</version>
</dependency>
<dependency>
<groupId>net.java.sezpoz</groupId>
@ -326,7 +326,7 @@ THE SOFTWARE.
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<version>9.8</version>
<version>9.9</version>
</dependency>
<dependency>
<!-- provided by jcl-over-slf4j -->

View File

@ -5,7 +5,7 @@
<parent>
<groupId>org.jenkins-ci.main</groupId>
<artifactId>jenkins-parent</artifactId>
<version>2.530</version>
<version>${revision}${changelist}</version>
</parent>
<artifactId>cli</artifactId>

View File

@ -36,7 +36,6 @@
package hudson.util;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.util.ArrayList;
import java.util.List;
import java.util.NoSuchElementException;
@ -140,9 +139,6 @@ public class QuotedStringTokenizer
/* ------------------------------------------------------------ */
@Override
@SuppressFBWarnings(
value = {"SF_DEAD_STORE_DUE_TO_SWITCH_FALLTHROUGH", "SF_SWITCH_FALLTHROUGH"},
justification = "TODO needs triage")
public boolean hasMoreTokens()
{
// Already found a token

View File

@ -7,7 +7,7 @@ CLI.Usage=Jenkins CLI\n\
-noCertificateCheck : contourne entiérement la vérification des certificats HTTPS. A utiliser avec précaution\n\
-noKeyAuth : ne charge pas la clé privée d''authentification SSH. En conflit avec -i\n\
\n\
Les commandes disponibles dépendent du serveur. Lancer la commande 'help' pour\n\
Les commandes disponibles dépendent du serveur. Lancer la commande ''help'' pour\n\
obtenir la liste.
CLI.NoURL=Erreur, ni -s ou la variable d''environnement JENKINS_URL ne sont renseignées.
CLI.VersionMismatch=Conflit de versions. Cet outil ne peut fonctionner avec le serveur Jenkins renseigné.

View File

@ -29,7 +29,7 @@ THE SOFTWARE.
<parent>
<groupId>org.jenkins-ci.main</groupId>
<artifactId>jenkins-parent</artifactId>
<version>2.530</version>
<version>${revision}${changelist}</version>
</parent>
<artifactId>jenkins-core</artifactId>

View File

@ -1301,7 +1301,7 @@ public final class FilePath implements SerializableOnlyOverRemoting {
/**
* Takes a {@link FilePath}+{@link FileCallable} pair and returns the equivalent {@link Callable}.
* When executing the resulting {@link Callable}, it executes {@link FileCallable#act(FileCallable)}
* When executing the resulting {@link Callable}, it executes {@link FilePath#act(FileCallable)}
* on this {@link FilePath}.
*
* @since 1.522

View File

@ -2470,7 +2470,6 @@ public class Functions {
* Advertises the minimum set of HTTP headers that assist programmatic
* discovery of Jenkins.
*/
@SuppressFBWarnings(value = "UC_USELESS_VOID_METHOD", justification = "TODO needs triage")
public static void advertiseHeaders(HttpServletResponse rsp) {
Jenkins j = Jenkins.getInstanceOrNull();
if (j != null) {
@ -2621,7 +2620,7 @@ public class Functions {
for (Map.Entry<DetailGroup, List<Detail>> entry : result.entrySet()) {
List<Detail> detailList = entry.getValue();
detailList.sort(Comparator.comparingInt(Detail::getOrder));
detailList.sort(Comparator.comparingInt(Detail::getOrder).reversed());
}
return result;

View File

@ -50,6 +50,7 @@ import java.util.Base64;
import java.util.logging.Level;
import java.util.logging.Logger;
import jenkins.AgentProtocol;
import jenkins.health.HealthCheck;
import jenkins.model.Jenkins;
import jenkins.model.identity.InstanceIdentityProvider;
import jenkins.security.stapler.StaplerAccessibleType;
@ -445,4 +446,14 @@ public final class TcpSlaveAgentListener extends Thread {
@SuppressFBWarnings(value = "MS_SHOULD_BE_FINAL", justification = "Accessible via System Groovy Scripts")
@Restricted(NoExternalUse.class)
public static Integer CLI_PORT = SystemProperties.getInteger(TcpSlaveAgentListener.class.getName() + ".port");
@Extension
public static final class EnforcedPortHealthCheck implements HealthCheck {
@Override
public boolean check() {
var j = Jenkins.get();
return !j.isSlaveAgentPortEnforced() || j.getSlaveAgentPort() <= 0 || j.getTcpSlaveAgentListener() != null;
}
}
}

View File

@ -24,6 +24,8 @@
package hudson.model;
import static hudson.Functions.getAvatar;
import com.thoughtworks.xstream.converters.UnmarshallingContext;
import edu.umd.cs.findbugs.annotations.CheckForNull;
import edu.umd.cs.findbugs.annotations.NonNull;
@ -445,19 +447,30 @@ public abstract class Cause {
return userId != null ? userId : User.getUnknown().getId();
}
private User getUser() {
return userId == null ? null : User.getById(userId, false);
}
@Exported(visibility = 3)
public String getUserName() {
final User user = userId == null ? null : User.getById(userId, false);
final User user = getUser();
return user == null ? "anonymous" : user.getDisplayName();
}
@Restricted(DoNotUse.class) // for Jelly
@CheckForNull
public String getUserUrl() {
final User user = userId == null ? null : User.getById(userId, false);
final User user = getUser();
return user != null ? user.getUrl() : null;
}
@Restricted(DoNotUse.class) // for Jelly
@CheckForNull
public String getUserAvatar() {
final User user = getUser();
return user != null ? getAvatar(user, "48x48") : null;
}
@Override
public String getShortDescription() {
return Messages.Cause_UserIdCause_ShortDescription(getUserName());

View File

@ -120,6 +120,7 @@ import jenkins.model.Jenkins;
import jenkins.model.JenkinsLocationConfiguration;
import jenkins.model.RunAction2;
import jenkins.model.StandardArtifactManager;
import jenkins.model.details.CauseDetail;
import jenkins.model.details.Detail;
import jenkins.model.details.DetailFactory;
import jenkins.model.details.DurationDetail;
@ -2706,7 +2707,7 @@ public abstract class Run<JobT extends Job<JobT, RunT>, RunT extends Run<JobT, R
}
@NonNull @Override public List<? extends Detail> createFor(@NonNull Run target) {
return List.of(new TimestampDetail(target), new DurationDetail(target));
return List.of(new CauseDetail(target), new TimestampDetail(target), new DurationDetail(target));
}
}
}

View File

@ -17,7 +17,6 @@ Lesser General Public License for more details.
package hudson.util.jna;
import com.sun.jna.ptr.IntByReference;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.nio.charset.StandardCharsets;
import java.util.Collection;
import java.util.TreeMap;
@ -90,7 +89,6 @@ public class RegistryKey implements AutoCloseable {
return convertBufferToInt(getValue(valueName));
}
@SuppressFBWarnings(value = "SF_SWITCH_FALLTHROUGH", justification = "TODO needs triage")
private byte[] getValue(String valueName) {
IntByReference pType, lpcbData;
byte[] lpData = new byte[1];
@ -151,7 +149,6 @@ public class RegistryKey implements AutoCloseable {
/**
* Does a specified value exist?
*/
@SuppressFBWarnings(value = "SF_SWITCH_FALLTHROUGH", justification = "TODO needs triage")
public boolean valueExists(String name) {
IntByReference pType, lpcbData;
byte[] lpData = new byte[1];
@ -226,7 +223,6 @@ public class RegistryKey implements AutoCloseable {
*
* @return TreeMap with name and value pairs
*/
@SuppressFBWarnings(value = "SF_SWITCH_FALLTHROUGH", justification = "TODO needs triage")
public TreeMap<String, Object> getValues() {
int dwIndex, result;
char[] lpValueName;

View File

@ -0,0 +1,29 @@
package jenkins.model.details;
import hudson.model.Cause;
import hudson.model.CauseAction;
import hudson.model.Run;
import java.util.Map;
import org.kohsuke.accmod.Restricted;
import org.kohsuke.accmod.restrictions.NoExternalUse;
/**
* Displays the cause for the given run
*/
public class CauseDetail extends Detail {
public CauseDetail(Run<?, ?> run) {
super(run);
}
@Override
public int getOrder() {
return Integer.MAX_VALUE;
}
@Restricted(NoExternalUse.class)
public Map<Cause, Integer> getCauseCounts() {
CauseAction causeAction = getObject().getAction(CauseAction.class);
return causeAction.getCauseCounts();
}
}

View File

@ -60,9 +60,9 @@ public abstract class Detail implements ModelObject, IconSpec {
}
/**
* @return order in the group, zero is first, MAX_VALUE is any order
* @return order in the group, MAX_VALUE is first, zero is any order
*/
public int getOrder() {
return Integer.MAX_VALUE;
return 0;
}
}

View File

@ -10,4 +10,9 @@ public class TimestampDetail extends Detail {
public TimestampDetail(Run<?, ?> run) {
super(run);
}
@Override
public int getOrder() {
return Integer.MAX_VALUE - 1;
}
}

View File

@ -40,24 +40,6 @@ public class JavaUtils {
// Cannot construct
}
/**
* Check whether the current JVM is running with Java 8 or below
* @return {@code true} if it is Java 8 or older version
*/
public static boolean isRunningWithJava8OrBelow() {
String javaVersion = getCurrentRuntimeJavaVersion();
return javaVersion.startsWith("1.");
}
/**
* Check whether the current JVM is running with Java 9 or above.
* @return {@code true} if it is Java 9 or above
*/
public static boolean isRunningWithPostJava8() {
String javaVersion = getCurrentRuntimeJavaVersion();
return !javaVersion.startsWith("1.");
}
/**
* Returns the JVM's current version as a {@link VersionNumber} instance.
*/

View File

@ -67,6 +67,7 @@ PluginWrapper.PluginWrapperAdministrativeMonitor.DisplayName=Plugin-Ladefehler
ProxyConfiguration.FailedToConnectViaProxy=Konnte nicht mit {0} verbinden.
ProxyConfiguration.FailedToConnect=Konnte nicht mit {0} verbinden (code {1}).
ProxyConfiguration.NonTLSWarning=Jenkins unterstützt nur die Verwendung einer HTTP-Verbindung zum Proxy. Die Zugangsdaten könnten für andere im selben Netzwerk sichtbar sein.
ProxyConfiguration.MalformedTestUrl=Format der Test-URL ungültig
ProxyConfiguration.Success=Erfolg (code {0})
ProxyConfiguration.TestUrlRequired=Test-URL muss angegeben werden.

View File

@ -26,7 +26,7 @@ Update=Mettre à jour
Name=Nom
Released=Publié(e)
Installed=Installé
Applying\ this\ update\ will\ address\ security\ vulnerabilities\ in\ the\ currently\ installed\ version.=L'application de cette mise à jour corrigera les failles de sécurité de la version actuellement installée.
Applying\ this\ update\ will\ address\ security\ vulnerabilities\ in\ the\ currently\ installed\ version.=L''application de cette mise à jour corrigera les failles de sécurité de la version actuellement installée.
No\ updates=Aucunes mises à jour
Inactive=Inactif
No\ updates\ available=Aucune mise à jour disponible

View File

@ -1,32 +0,0 @@
package hudson.ProxyConfiguration
def f=namespace(lib.FormTagLib)
def l=namespace(lib.LayoutTagLib)
set("readOnlyMode", !app.hasPermission(app.ADMINISTER))
f.entry(title:_("Server"),field:"name") {
f.textbox()
}
f.entry(title:_("Port"),field:"port") {
f.number(clazz:"number",min:0,max:65535,step:1)
}
f.entry(title:_("User name"),field:"userName") {
f.textbox()
}
f.entry(title:_("Password"),field:"secretPassword") {
f.password()
}
f.entry(title:_("No Proxy Host"),field:"noProxyHost") {
f.textarea()
}
l.isAdmin() {
f.advanced() {
f.entry(title: _("Test URL"), field: "testUrl") {
f.textbox()
}
f.validateButton(title:_("Validate Proxy"),
method:"validateProxy", with:"testUrl,name,port,userName,secretPassword,noProxyHost")
}
}

View File

@ -0,0 +1,48 @@
<!--
The MIT License
Copyright (c) 2025, Stefan Spieker
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.
-->
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:f="/lib/form" xmlns:l="/lib/layout">
<j:set var="readOnlyMode" value="${!app.hasPermission(app.ADMINISTER)}"/>
<f:entry title="${%Server}">
<f:textbox field="name"/>
</f:entry>
<f:entry title="${%Port}">
<f:number field="port" min="0" max="65535" step="1"/>
</f:entry>
<f:entry title="${%User name}">
<f:textbox field="userName"/>
</f:entry>
<f:entry title="${%Password}">
<f:password field="secretPassword"/>
</f:entry>
<f:entry title="${%No Proxy Host}">
<f:textarea field="noProxyHost"/>
</f:entry>
<l:isAdmin>
<f:advanced>
<f:entry title="${%Test URL}">
<f:textbox field="testUrl"/>
</f:entry>
<f:validateButton title="${%Validate Proxy}" method="validateProxy" with="testUrl,name,port,userName,secretPassword,noProxyHost"/>
</f:advanced>
</l:isAdmin>
</j:jelly>

View File

@ -24,5 +24,6 @@ Server=Server
Port=Port
User\ name=Benutzername
Password=Passwort
Test\ URL=Test-URL
No\ Proxy\ Host=Proxy-Ausnahmen
Validate\ Proxy=Proxy-Konfiguration prüfen

View File

@ -30,17 +30,29 @@ THE SOFTWARE.
<l:header />
<l:side-panel>
<l:tasks>
<l:userExperimentalFlag var="newBuildPage" flagClassName="jenkins.model.experimentalflags.NewBuildPageUserExperimentalFlag" />
<j:set var="buildUrl" value="${h.decompose(request2)}" />
<st:include page="tasks.jelly"/>
<st:include page="delete.jelly" />
<st:include page="actions.jelly" />
<t:actions actions="${it.transientActions}"/>
<j:if test="${it.previousBuild!=null}">
<l:task contextMenu="false" href="${buildUrl.previousBuildUrl}" icon="icon-previous icon-md" title="${%Previous Build}"/>
</j:if>
<j:if test="${it.nextBuild!=null}">
<l:task contextMenu="false" href="${buildUrl.nextBuildUrl}" icon="icon-next icon-md" title="${%Next Build}"/>
</j:if>
<j:choose>
<j:when test="${newBuildPage}">
<st:include page="tasks.jelly"/>
<st:include page="actions.jelly" />
<t:actions actions="${it.transientActions}"/>
<st:include page="delete.jelly" />
</j:when>
<j:otherwise>
<st:include page="tasks.jelly"/>
<st:include page="delete.jelly" />
<st:include page="actions.jelly" />
<t:actions actions="${it.transientActions}"/>
<j:if test="${it.previousBuild!=null}">
<l:task contextMenu="false" href="${buildUrl.previousBuildUrl}" icon="icon-previous icon-md" title="${%Previous Build}"/>
</j:if>
<j:if test="${it.nextBuild!=null}">
<l:task contextMenu="false" href="${buildUrl.nextBuildUrl}" icon="icon-next icon-md" title="${%Next Build}"/>
</j:if>
</j:otherwise>
</j:choose>
</l:tasks>
</l:side-panel>
</j:jelly>

View File

@ -27,15 +27,31 @@ THE SOFTWARE.
-->
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:l="/lib/layout" xmlns:p="/lib/hudson/project">
<j:choose>
<j:when test="${newBuildPage}">
<l:task href="${buildUrl.baseUrl}/changes" icon="symbol-changes" title="${%Changes}"/>
<p:console-link/>
<j:choose>
<j:when test="${h.hasPermission(it,it.UPDATE)}">
<l:task icon="symbol-edit-note" href="${buildUrl.baseUrl}/configure" title="${%Edit Build Information}"/>
</j:when>
<j:otherwise>
<l:task icon="symbol-view" href="${buildUrl.baseUrl}/configure" title="${%View Build Information}"/>
</j:otherwise>
</j:choose>
</j:when>
<j:otherwise>
<l:task contextMenu="false" href="${buildUrl.baseUrl}/" icon="symbol-details" title="${%Status}"/>
<l:task href="${buildUrl.baseUrl}/changes" icon="symbol-changes" title="${%Changes}"/>
<p:console-link/>
<j:choose>
<j:when test="${h.hasPermission(it,it.UPDATE)}">
<l:task icon="symbol-edit-note" href="${buildUrl.baseUrl}/configure" title="${%Edit Build Information}"/>
</j:when>
<j:otherwise>
<l:task icon="symbol-view" href="${buildUrl.baseUrl}/configure" title="${%View Build Information}"/>
</j:otherwise>
<j:when test="${h.hasPermission(it,it.UPDATE)}">
<l:task icon="symbol-edit-note" href="${buildUrl.baseUrl}/configure" title="${%Edit Build Information}"/>
</j:when>
<j:otherwise>
<l:task icon="symbol-view" href="${buildUrl.baseUrl}/configure" title="${%View Build Information}"/>
</j:otherwise>
</j:choose>
</j:otherwise>
</j:choose>
</j:jelly>

View File

@ -23,5 +23,5 @@ THE SOFTWARE.
-->
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
<span>${%blurb(it.addr, it.note)}</span>
<span>${it.shortDescription}</span>
</j:jelly>

View File

@ -1 +0,0 @@
blurb = Started by remote host {0} with note: {1}

View File

@ -1 +0,0 @@
blurb = Démarré par l''hôte distant {0} avec la note : {1}

View File

@ -0,0 +1,32 @@
<!--
The MIT License
Copyright (c) 2004-2011, Seiji Sogabe
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.
-->
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:l="/lib/layout" xmlns:st="jelly:stapler">
<div class="jenkins-details__item">
<div class="jenkins-details__item__icon">
<l:icon src="symbol-cause" />
</div>
<st:include page="description.jelly" />
</div>
</j:jelly>

View File

@ -0,0 +1,64 @@
<!--
The MIT License
Copyright (c) 2004-2011, Seiji Sogabe
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.
-->
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:l="/lib/layout">
<j:choose>
<j:when test="${it.upstreamUrl!=null and app.getItemByFullName(it.upstreamProject)!=null}">
<j:choose>
<j:when test="${app.getItemByFullName(it.upstreamProject).getBuildByNumber(it.upstreamBuild)!=null}">
<a class="jenkins-details__item"
href="${rootURL}/${it.upstreamUrl}${it.upstreamBuild.toString()}">
<div class="jenkins-details__item__icon">
<l:icon src="symbol-cause" />
</div>
<span>
${%started_by_project(app.getItemByFullName(it.upstreamProject).fullDisplayName,it.upstreamBuild.toString(),it.upstreamUrl,rootURL)}
</span>
</a>
</j:when>
<j:otherwise>
<a class="jenkins-details__item"
href="${rootURL}${it.upstreamUrl}">
<div class="jenkins-details__item__icon">
<l:icon src="symbol-cause" />
</div>
<span>
${%started_by_project_with_deleted_build(app.getItemByFullName(it.upstreamProject).fullDisplayName,it.upstreamBuild.toString(),it.upstreamUrl,rootURL)}
</span>
</a>
</j:otherwise>
</j:choose>
</j:when>
<j:otherwise>
<div class="jenkins-details__item">
<div class="jenkins-details__item__icon">
<l:icon src="symbol-cause" />
</div>
<span>
${it.shortDescription}
</span>
</div>
</j:otherwise>
</j:choose>
</j:jelly>

View File

@ -1,17 +1,17 @@
# The MIT License
#
# Copyright (c) 2004-, Kohsuke Kawaguchi, Sun Microsystems, Inc., and a number of other of contributors
#
#
# Copyright (c) 2004-2009, Sun Microsystems, Inc., Alan Harder
#
# 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
@ -20,4 +20,5 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
blurb=Startades av fjärrvärden {0} med följande anteckning: {1}
started_by_project=Started by upstream project {0} #{1}
started_by_project_with_deleted_build=Started by upstream project {0} #{1}

View File

@ -0,0 +1,48 @@
<!--
The MIT License
Copyright (c) 2004-2011, Seiji Sogabe
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.
-->
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:l="/lib/layout">
<j:choose>
<j:when test="${it.userId != null}">
<a href="${rootURL + '/' + it.userUrl}" class="jenkins-details__item">
<div class="jenkins-details__item__icon">
<l:icon src="${it.userAvatar}" class="jenkins-avatar" />
</div>
<span>
${%started_by_user(it.userName)}
</span>
</a>
</j:when>
<j:otherwise>
<div class="jenkins-details__item">
<div class="jenkins-details__item__icon">
<l:icon src="symbol-person-circle" />
</div>
<span>
${%started_by_anonymous}
</span>
</div>
</j:otherwise>
</j:choose>
</j:jelly>

View File

@ -1,17 +1,17 @@
# The MIT License
#
# Copyright (c) 2004-, Kohsuke Kawaguchi, Sun Microsystems, Inc., and a number of other of contributors
#
#
# Copyright (c) 2004-2011, Seiji Sogabe
#
# 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
@ -20,4 +20,5 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
blurb=Iniciado pelo hospedeiro remoto {0} com a nota: {1}
started_by_user=Started by {0}
started_by_anonymous=Started by anonymous user

View File

@ -24,14 +24,18 @@ THE SOFTWARE.
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
<t:summary icon="symbol-trigger">
<j:forEach var="entry" items="${it.causeCounts.entrySet()}">
<p>
<st:include page="description.jelly" it="${entry.key}"/>
<j:if test="${entry.value > 1}">
<st:nbsp/>${%Ntimes(entry.value)}
</j:if>
</p>
</j:forEach>
</t:summary>
<l:userExperimentalFlag var="newBuildPage" flagClassName="jenkins.model.experimentalflags.NewBuildPageUserExperimentalFlag" />
<j:if test="${!newBuildPage}">
<t:summary icon="symbol-trigger">
<j:forEach var="entry" items="${it.causeCounts.entrySet()}">
<p>
<st:include page="description.jelly" it="${entry.key}"/>
<j:if test="${entry.value > 1}">
<st:nbsp/>${%Ntimes(entry.value)}
</j:if>
</p>
</j:forEach>
</t:summary>
</j:if>
</j:jelly>

View File

@ -1 +1 @@
Available\ Environment\ Variables=Verfügbare Umgebungsvariablen
Available\ Environmental\ Variables=Verfügbare Umgebungsvariablen

View File

@ -1 +1,2 @@
Available\ Environment\ Variables=Variables d'environnement disponibles
Available\ Environmental\ Variables=Variables d''environnement disponibles
blurb=Les variables suivantes sont disponibles pour les étapes de construction shell et batch :

View File

@ -1 +1 @@
Available\ Environment\ Variables=利用可能な環境変数
Available\ Environmental\ Variables=利用可能な環境変数

View File

@ -1 +1 @@
Available\ Environment\ Variables=Beschikbare omgevingsparameters
Available\ Environmental\ Variables=Beschikbare omgevingsparameters

View File

@ -1,3 +1,3 @@
# This file is under the MIT License by authors
Available\ Environment\ Variables=Слободних Глобалних Променљива
Available\ Environmental\ Variables=Слободних Глобалних Променљива

View File

@ -47,7 +47,7 @@ blurb=\
<dd>\
C''est le nombre de jobs qui sont dans la file des builds, en attente d''un exécuteur \
disponible (respectivement pour cet ordinateur, pour ce libellé ou pour Jenkins en général). \
Cela n''inclue pas les jobs qui sont dans la 'période silencieuse' (quiet period ou période \
Cela n''inclue pas les jobs qui sont dans la "période silencieuse" (quiet period ou période \
de délai), ni les jobs qui sont dans la file à cause de builds précédents toujours en cours. \
Si cette ligne dépasse 0, cela signifie que Jenkins pourra lancer plus de builds en ajoutant des ordinateurs. \
</dd>\

View File

@ -24,18 +24,23 @@ THE SOFTWARE.
-->
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:x="jelly:xml">
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:dd="/lib/layout/dropdowns">
<l:layout title="${it.fullDisplayName}">
<st:include page="sidepanel.jelly" />
<!-- no need for additional breadcrumb here as we're on an index page already including breadcrumb -->
<l:main-panel>
<script src="${resURL}/jsbundles/pages/job.js" type="text/javascript" defer="true" />
<j:set var="controls">
<l:hasPermission permission="${it.UPDATE}">
<st:include page="logKeep.jelly" />
</l:hasPermission>
<l:overflowButton>
<dd:custom>
<div class="app-build-overflow">
<j:set var="mode" value="side-panel" />
<st:include page="sidepanel.jelly" />
</div>
</dd:custom>
</l:overflowButton>
</j:set>
<t:buildCaption controls="${controls}">${it.displayName}</t:buildCaption>

View File

@ -1 +1 @@
Controls\ when\ Jenkins\ starts\ and\ stops\ this\ agent.=Contrôle le moment où Jenkins démarrage et arrête l'agent.
Controls\ when\ Jenkins\ starts\ and\ stops\ this\ agent.=Contrôle le moment où Jenkins démarrage et arrête l''agent.

View File

@ -1,5 +1,5 @@
blurb=\
C'est la configuration par défaut et la plus classique. Dans ce mode, Jenkins fait des tests réguliers pour conserver l'agent \
C''est la configuration par défaut et la plus classique. Dans ce mode, Jenkins fait des tests réguliers pour conserver l''agent \
actif.<br/>\
Si Jenkins peut démarrer l'agent sans l'aide de l'utilisateur et que l'agent n'est pas disponible, \
Si Jenkins peut démarrer l''agent sans l''aide de l''utilisateur et que l''agent n''est pas disponible, \
il tentera régulièrement de le relancer. Jenkins ne cherchera pas à le désactiver.

View File

@ -1,12 +1,12 @@
blurb=\
Dans ce mode, si Jenkins peut démarrer l'agent sans l'aide de l'utilisateur, il cherchera régulièrement \
à l'activer tant qu'il y aura des jobs en attente respectant les critères suivants&nbsp;: \
Dans ce mode, si Jenkins peut démarrer l''agent sans l''aide de l''utilisateur, il cherchera régulièrement \
à l''activer tant qu''il y aura des jobs en attente respectant les critères suivants&nbsp;: \
<ul> \
<li>Ils sont dans la file d'attente depuis au moins aussi longtemps que le <i>Délai d'attente lors d'une demande</i> spécifié</li> \
<li>Ils peuvent s'exécuter sur cette machine</li> \
<li>Ils sont dans la file d''attente depuis au moins aussi longtemps que le <i>Délai d''attente lors d''une demande</i> spécifié</li> \
<li>Ils peuvent s''exécuter sur cette machine</li> \
</ul> \
L'agent sera désactivé si&nbsp;: \
L''agent sera désactivé si&nbsp;: \
<ul> \
<li>Il n'y a plus de jobs en cours sur cet agent</li> \
<li>L'agent a été inactif depuis au moins le <i>Délai d'inactivité</i> spécifié</li> \
<li>Il n''y a plus de jobs en cours sur cet agent</li> \
<li>L''agent a été inactif depuis au moins le <i>Délai d''inactivité</i> spécifié</li> \
</ul>

View File

@ -1,7 +1,7 @@
blurb=\
Dans ce mode, Jenkins conservera l'agent activé selon les horaires configurés.<br/>\
Si l'agent n'est pas disponible au moment où il est censé être activé, \
Dans ce mode, Jenkins conservera l''agent activé selon les horaires configurés.<br/>\
Si l''agent n''est pas disponible au moment où il est censé être activé, \
Jenkins tentera régulièrement de le relancer. <br/>\
Après que l'agent a été activé selon la <i>Durée du mode actif</i>, il sera désactivé.<br/>\
Si <i>Garder actif tant que des builds sont en cours</i> est coché et que l'agent est programmé \
Après que l''agent a été activé selon la <i>Durée du mode actif</i>, il sera désactivé.<br/>\
Si <i>Garder actif tant que des builds sont en cours</i> est coché et que l''agent est programmé \
pour être désactivé, Jenkins attendra que les builds en cours se terminent.

View File

@ -2,13 +2,13 @@ BUILD_NUMBER.blurb=Le numéro du build courant, par exemple "153"
JOB_NAME.blurb=Nom du projet de ce build, par exemple "foo"
BUILD_TAG.blurb=Le texte "jenkins-<i>$'{'JOB_NAME}</i>-<i>$'{'BUILD_NUMBER}</i>", facile à placer dans \
un fichier de ressource, ou un jar, pour identification future.
EXECUTOR_NUMBER.blurb=Le numéro unique qui identifie l'exécuteur courant \
(parmi les exécuteurs d'une même machine) qui a contruit ce build. \
Il s'agit du numéro que vous voyez dans le "statut de l'exécuteur du build", \
EXECUTOR_NUMBER.blurb=Le numéro unique qui identifie l''exécuteur courant \
(parmi les exécuteurs d''une même machine) qui a contruit ce build. \
Il s'agit du numéro que vous voyez dans le "statut de l''exécuteur du build", \
sauf que la numérotation commence à 0 et non à 1.
NODE_LABELS.blurb=
WORKSPACE.blurb=Le chemin absolu vers le répertoire de travail.
JENKINS_HOME.blurb=
JENKINS_URL.blurb=L'URL complète de Jenkins, au format <code>http://server:port/jenkins/</code>
JENKINS_URL.blurb=L''URL complète de Jenkins, au format <code>http://server:port/jenkins/</code>
BUILD_URL.blurb=
JOB_URL.blurb=

View File

@ -0,0 +1,39 @@
<!--
The MIT License
Copyright (c) 2025 Jan Faracik
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.
-->
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:l="/lib/layout">
<j:forEach var="entry" items="${it.causeCounts.entrySet()}">
<st:include page="detail.jelly" it="${entry.key}" optional="true">
<div class="jenkins-details__item">
<div class="jenkins-details__item__icon">
<l:icon src="symbol-information-circle" />
</div>
<div>
<st:include page="description.jelly" it="${entry.key}" />
</div>
</div>
</st:include>
</j:forEach>
</j:jelly>

View File

@ -24,7 +24,7 @@ pluginTitle = {0} {1}
coreTitle = Jenkins {0} logiciel et librairies
blurb = Des avertissements ont été publiés pour ces composants installés :
more = D'autres avertissements sont cachés en raison de la configuration actuelle de sécurité.
more = D''autres avertissements sont cachés en raison de la configuration actuelle de sécurité.
pluginManager.link = Aller à la gestion des plugins

View File

@ -1,49 +0,0 @@
/*
* The MIT License
*
* Copyright (c) 2018 CloudBees, Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package jenkins.util.java;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assumptions.assumeFalse;
import static org.junit.jupiter.api.Assumptions.assumeTrue;
import org.junit.jupiter.api.Test;
import org.jvnet.hudson.test.For;
@For(JavaUtils.class)
class JavaUtilsTest {
@Test
void verifyJava8() {
assumeTrue(System.getProperty("java.version").startsWith("1."), "Test is for Java 8 only");
assertFalse(JavaUtils.isRunningWithPostJava8(), "isRunningWithPostJava8() should return false on Java 8 and below");
}
@Test
void verifyPostJava8() {
assumeFalse(System.getProperty("java.version").startsWith("1."), "Test is for Java 9+ only");
assertTrue(JavaUtils.isRunningWithPostJava8(), "isRunningWithPostJava8() should return true on Java 9 and above");
}
}

View File

@ -5,7 +5,7 @@
<parent>
<groupId>org.jenkins-ci.main</groupId>
<artifactId>jenkins-parent</artifactId>
<version>2.530</version>
<version>${revision}${changelist}</version>
</parent>
<artifactId>jenkins-coverage</artifactId>

View File

@ -26,12 +26,12 @@
"@babel/cli": "7.28.3",
"@babel/core": "7.28.4",
"@babel/preset-env": "7.28.3",
"@eslint/js": "9.36.0",
"@eslint/js": "9.37.0",
"babel-loader": "10.0.0",
"clean-webpack-plugin": "4.0.0",
"css-loader": "7.1.2",
"css-minimizer-webpack-plugin": "7.0.2",
"eslint": "9.36.0",
"eslint": "9.37.0",
"eslint-config-prettier": "10.1.8",
"eslint-formatter-checkstyle": "8.40.0",
"globals": "16.4.0",
@ -45,10 +45,10 @@
"sass": "1.93.2",
"sass-loader": "16.0.5",
"style-loader": "4.0.0",
"stylelint": "16.24.0",
"stylelint": "16.25.0",
"stylelint-checkstyle-reporter": "1.1.1",
"stylelint-config-standard-scss": "15.0.1",
"webpack": "5.101.3",
"stylelint-config-standard-scss": "16.0.0",
"webpack": "5.102.0",
"webpack-cli": "6.0.1",
"webpack-remove-empty-scripts": "1.1.1"
},

12
pom.xml
View File

@ -28,13 +28,13 @@ THE SOFTWARE.
<parent>
<groupId>org.jenkins-ci</groupId>
<artifactId>jenkins</artifactId>
<version>1.140</version>
<version>1.141</version>
<relativePath />
</parent>
<groupId>org.jenkins-ci.main</groupId>
<artifactId>jenkins-parent</artifactId>
<version>2.530</version>
<version>${revision}${changelist}</version>
<packaging>pom</packaging>
<name>Jenkins main module</name>
@ -63,7 +63,7 @@ THE SOFTWARE.
<scm child.scm.connection.inherit.append.path="false" child.scm.developerConnection.inherit.append.path="false" child.scm.url.inherit.append.path="false">
<connection>scm:git:https://github.com/jenkinsci/jenkins.git</connection>
<developerConnection>scm:git:git@github.com:jenkinsci/jenkins.git</developerConnection>
<tag>jenkins-2.530</tag>
<tag>${scmTag}</tag>
<url>https://github.com/jenkinsci/jenkins</url>
</scm>
@ -73,9 +73,9 @@ THE SOFTWARE.
</issueManagement>
<properties>
<revision>2.530</revision>
<revision>2.532</revision>
<changelist>-SNAPSHOT</changelist>
<project.build.outputTimestamp>2025-09-30T10:33:11Z</project.build.outputTimestamp>
<project.build.outputTimestamp>2025-10-07T12:26:09Z</project.build.outputTimestamp>
<!-- configuration for patch tracker plugin -->
<project.patchManagement.system>github</project.patchManagement.system>
@ -87,7 +87,7 @@ THE SOFTWARE.
<changelog.url>https://www.jenkins.io/changelog</changelog.url>
<!-- Bundled Remoting version -->
<remoting.version>3341.v0766d82b_dec0</remoting.version>
<remoting.version>3345.v03dee9b_f88fc</remoting.version>
<spotbugs.effort>Max</spotbugs.effort>
<spotbugs.threshold>Medium</spotbugs.threshold>

View File

@ -24,8 +24,6 @@
}
@media (prefers-contrast: more) {
text-decoration: underline;
&:hover {
text-decoration-thickness: 3px;
}

View File

@ -157,7 +157,6 @@
margin: 0;
padding: 0;
overflow: hidden;
clip: rect(0 0 0 0);
clip-path: inset(50%);
border: 0;

View File

@ -5,7 +5,7 @@ $icon-size: 1.125rem;
.jenkins-details {
display: flex;
align-items: center;
gap: 0.75rem 1.25rem;
gap: 0.25rem 1.25rem;
flex-wrap: wrap;
button.jenkins-details__item,
@ -37,7 +37,8 @@ $icon-size: 1.125rem;
width: $icon-size;
height: 2rem;
svg {
svg,
img {
width: $icon-size;
height: $icon-size;

View File

@ -9,7 +9,7 @@
max-width: min(600px, #{string.unquote("calc(100vw - 2.4rem)")});
display: grid;
grid-template-columns: auto 1fr;
grid-gap: 1.5ch;
gap: 1.5ch;
padding: 0.8rem;
border-radius: var(--form-input-border-radius);
font-weight: var(--font-bold-weight);

View File

@ -39,7 +39,7 @@
.jenkins-section__items {
display: grid;
grid-template-columns: 1fr;
grid-gap: var(--section-padding);
gap: var(--section-padding);
@media screen and (width >= 800px) {
grid-template-columns: 1fr 1fr;

View File

@ -23,7 +23,6 @@
margin: 0;
padding: 0;
overflow: hidden;
clip: rect(0 0 0 0);
clip-path: inset(50%);
&:not(:disabled) {

View File

@ -53,7 +53,6 @@
margin: 0;
padding: 0;
overflow: hidden;
clip: rect(0 0 0 0);
clip-path: inset(50%);
&:checked + label::before {

View File

@ -94,6 +94,20 @@
}
}
.app-build-overflow {
#side-panel {
width: 250px !important;
#tasks {
margin: 0;
.task {
margin-left: unset !important;
}
}
}
}
.app-console-output-widget {
overflow-y: auto;
margin: 0 -1rem -1rem;

View File

@ -28,7 +28,7 @@ THE SOFTWARE.
<parent>
<groupId>org.jenkins-ci.main</groupId>
<artifactId>jenkins-parent</artifactId>
<version>2.530</version>
<version>${revision}${changelist}</version>
</parent>
<artifactId>jenkins-test</artifactId>
@ -72,7 +72,7 @@ THE SOFTWARE.
<dependency>
<groupId>io.jenkins.plugins</groupId>
<artifactId>commons-lang3-api</artifactId>
<version>3.18.0-98.v3a_674c06072d</version>
<version>3.19.0-104.v12125f33a_255</version>
</dependency>
<dependency>
<!-- RequireUpperBoundDeps between checks-api, plugin-util-api, and font-awesome-api -->
@ -121,7 +121,7 @@ THE SOFTWARE.
<!-- Required by workflow-support -->
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>scm-api</artifactId>
<version>709.v6c27075a_b_1c7</version>
<version>712.v8846fdd68c88</version>
</dependency>
<dependency>
<!-- requireUpperBoundDeps via matrix-project and junit -->
@ -143,7 +143,7 @@ THE SOFTWARE.
<!-- Required by plugin-util-api -->
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-support</artifactId>
<version>989.va_20a_1a_57710a_</version>
<version>991.v66c18437d509</version>
</dependency>
</dependencies>
</dependencyManagement>
@ -192,7 +192,7 @@ THE SOFTWARE.
<dependency>
<groupId>org.jenkins-ci.main</groupId>
<artifactId>jenkins-test-harness</artifactId>
<version>2505.v4a_e1e6f69d4e</version>
<version>2508.v45936ef31cd7</version>
<scope>test</scope>
<exclusions>
<exclusion>
@ -232,7 +232,7 @@ THE SOFTWARE.
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>cloudbees-folder</artifactId>
<version>6.1045.vb_ddd55e2d03f</version>
<version>6.1053.vd62fb_b_f7367b_</version>
<scope>test</scope>
</dependency>
<dependency>
@ -244,7 +244,7 @@ THE SOFTWARE.
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>junit</artifactId>
<version>1355.v45e2ea_65863c</version>
<version>1361.vfed194a_de34a_</version>
<scope>test</scope>
</dependency>
<dependency>
@ -262,7 +262,7 @@ THE SOFTWARE.
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>matrix-project</artifactId>
<version>858.vb_b_eb_9a_7ea_99e</version>
<version>867.vc7ec936160ee</version>
<scope>test</scope>
</dependency>
<dependency>
@ -369,7 +369,7 @@ THE SOFTWARE.
<artifactItem>
<groupId>io.jenkins.plugins</groupId>
<artifactId>bootstrap5-api</artifactId>
<version>5.3.8-876.vb_c62a_27d9a_77</version>
<version>5.3.8-895.v4d0d8e47fea_d</version>
<type>hpi</type>
<outputDirectory>${project.build.outputDirectory}/plugins</outputDirectory>
<destFileName>bootstrap5-api.jpi</destFileName>

View File

@ -42,6 +42,7 @@ import hudson.PluginWrapper;
import java.io.IOException;
import java.util.function.BiPredicate;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.Strings;
import org.junit.jupiter.api.Assumptions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
@ -252,8 +253,8 @@ class DisablePluginCommandTest {
assertPluginDisabled("dependee");
assertPluginDisabled("depender");
assertTrue(checkResultWith(result, StringUtils::contains, "depender", PluginWrapper.PluginDisableStatus.DISABLED), "An occurrence of the depender plugin in the log says it was successfully disabled");
assertTrue(checkResultWith(result, StringUtils::contains, "depender", PluginWrapper.PluginDisableStatus.ALREADY_DISABLED), "An occurrence of the depender plugin in the log says it was already disabled");
assertTrue(checkResultWith(result, Strings.CS::contains, "depender", PluginWrapper.PluginDisableStatus.DISABLED), "An occurrence of the depender plugin in the log says it was successfully disabled");
assertTrue(checkResultWith(result, Strings.CS::contains, "depender", PluginWrapper.PluginDisableStatus.ALREADY_DISABLED), "An occurrence of the depender plugin in the log says it was already disabled");
}
/**
@ -314,7 +315,7 @@ class DisablePluginCommandTest {
assertPluginDisabled("depender");
assertPluginDisabled("mandatory-depender");
assertTrue(checkResultWith(result, StringUtils::startsWith, "badplugin", PluginWrapper.PluginDisableStatus.NO_SUCH_PLUGIN), "Only error NO_SUCH_PLUGIN in quiet mode");
assertTrue(checkResultWith(result, Strings.CS::startsWith, "badplugin", PluginWrapper.PluginDisableStatus.NO_SUCH_PLUGIN), "Only error NO_SUCH_PLUGIN in quiet mode");
}
/**
@ -331,7 +332,7 @@ class DisablePluginCommandTest {
assertPluginEnabled("depender");
assertPluginEnabled("mandatory-depender");
assertTrue(checkResultWith(result, StringUtils::startsWith, "dependee", PluginWrapper.PluginDisableStatus.NOT_DISABLED_DEPENDANTS), "Only error NOT_DISABLED_DEPENDANTS in quiet mode");
assertTrue(checkResultWith(result, Strings.CS::startsWith, "dependee", PluginWrapper.PluginDisableStatus.NOT_DISABLED_DEPENDANTS), "Only error NOT_DISABLED_DEPENDANTS in quiet mode");
}
/**

View File

@ -52,6 +52,7 @@ import java.io.File;
import java.lang.ref.WeakReference;
import java.net.HttpURLConnection;
import java.nio.charset.StandardCharsets;
import java.time.Duration;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.logging.Level;
@ -332,7 +333,7 @@ class ComputerTest {
// Connect the computer
computer.connect(false);
await("computer should be online after connect").until(() -> computer.isOnline(), is(true));
await("computer should be online after connect").atMost(Duration.ofSeconds(30)).until(() -> computer.isOnline(), is(true));
assertThat(computer.isConnected(), is(true));
assertThat(computer.isOffline(), is(false));

View File

@ -6,6 +6,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import hudson.Extension;
import hudson.MarkupText;
import hudson.model.AbstractBuild;
import hudson.model.Run;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.jvnet.hudson.test.FakeChangeLogSCM;
@ -27,7 +28,7 @@ class ChangeLogSetTest {
@Issue("JENKINS-17084")
void catchingExceptionDuringAnnotation() {
FakeChangeLogSCM.EntryImpl change = new FakeChangeLogSCM.EntryImpl();
change.setParent(ChangeLogSet.createEmpty(null)); // otherwise test would actually test only NPE thrown when accessing parent.build
change.setParent(ChangeLogSet.createEmpty((Run<?, ?>) null)); // otherwise test would actually test only NPE thrown when accessing parent.build
assertDoesNotThrow(() -> {
change.getMsgAnnotated();
});

View File

@ -10,7 +10,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
import hudson.ExtensionList;
import hudson.model.InvisibleAction;
import hudson.model.RootAction;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.Strings;
import org.htmlunit.Page;
import org.htmlunit.ScriptException;
import org.htmlunit.html.HtmlPage;
@ -56,7 +56,7 @@ class BindTest {
.orElseThrow()
.getAttribute("src");
final Page script = wc.goTo(StringUtils.removeStart(scriptUrl, j.contextPath + "/"), "text/javascript");
final Page script = wc.goTo(Strings.CS.removeStart(scriptUrl, j.contextPath + "/"), "text/javascript");
final String content = script.getWebResponse().getContentAsString();
assertThat(content, startsWith("varname = makeStaplerProxy('" + j.contextPath + "/$stapler/bound/"));
assertThat(content, endsWith("','test',['annotatedJsMethod1','byName1']);"));
@ -77,7 +77,7 @@ class BindTest {
.orElseThrow()
.getAttribute("src");
final Page script = wc.goTo(StringUtils.removeStart(scriptUrl, j.contextPath + "/"), "text/javascript");
final Page script = wc.goTo(Strings.CS.removeStart(scriptUrl, j.contextPath + "/"), "text/javascript");
assertThat(script.getWebResponse().getContentAsString(), is("varname = makeStaplerProxy('" + j.contextPath + "/theWellKnownRoot','test',['annotatedJsMethod2','byName2']);"));
}
assertThat(root.invocations, is(1));
@ -96,7 +96,7 @@ class BindTest {
.orElseThrow()
.getAttribute("src");
final Page script = wc.goTo(StringUtils.removeStart(scriptUrl, j.contextPath + "/"), "text/javascript");
final Page script = wc.goTo(Strings.CS.removeStart(scriptUrl, j.contextPath + "/"), "text/javascript");
assertThat(script.getWebResponse().getContentAsString(), is("varname = makeStaplerProxy('" + j.contextPath + "/the\\'Well\\'Known\\\\\\'Root\\'With\\'Quotes','test',['annotatedJsMethod2','byName2']);"));
}
assertThat(root.invocations, is(1));
@ -114,7 +114,7 @@ class BindTest {
final HtmlPage htmlPage = exception.getPage();
final String scriptUrl = htmlPage.getElementsByTagName("script").stream().filter(it -> it.getAttribute("src").equals(j.contextPath + "/$stapler/bound/script/null?var=varname")).findFirst().orElseThrow().getAttribute("src");
final Page script = wc.goTo(StringUtils.removeStart(scriptUrl, j.contextPath + "/"), "text/javascript");
final Page script = wc.goTo(Strings.CS.removeStart(scriptUrl, j.contextPath + "/"), "text/javascript");
final String content = script.getWebResponse().getContentAsString();
assertThat(content, is("varname = null;"));
}

View File

@ -105,14 +105,17 @@ def analyze_files(commits_and_tags, dry_run=False):
is_ci = "CI" in os.environ
if is_ci:
print("<details><summary>Detailed output</summary>\n\n")
processed = 0
with subprocess.Popen(cmd, stdout=subprocess.PIPE) as proc:
for line in io.TextIOWrapper(proc.stdout):
parts = line.rstrip().split(":", 2)
analyze_file(parts[0], parts[1], commits_and_tags, dry_run=dry_run)
processed += 1
retcode = proc.wait()
if retcode:
if retcode not in (0, 1):
raise subprocess.CalledProcessError(retcode, cmd)
print()
if processed == 0:
print("No '@since TODO', '@Deprecated(since = \"TODO\")', or '@RestrictedSince(\"TODO\")' tags found.")
if is_ci:
print("</details>\n")

View File

@ -28,7 +28,7 @@ THE SOFTWARE.
<parent>
<groupId>org.jenkins-ci.main</groupId>
<artifactId>jenkins-parent</artifactId>
<version>2.530</version>
<version>${revision}${changelist}</version>
</parent>
<artifactId>jenkins-war</artifactId>
@ -304,7 +304,7 @@ THE SOFTWARE.
<!-- detached after 1.561 -->
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>matrix-project</artifactId>
<version>858.vb_b_eb_9a_7ea_99e</version>
<version>867.vc7ec936160ee</version>
<type>hpi</type>
</artifactItem>
<artifactItem>
@ -318,7 +318,7 @@ THE SOFTWARE.
<!-- detached after 1.577 -->
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>junit</artifactId>
<version>1355.v45e2ea_65863c</version>
<version>1361.vfed194a_de34a_</version>
<type>hpi</type>
</artifactItem>
<artifactItem>
@ -339,7 +339,7 @@ THE SOFTWARE.
<!-- dependency of echarts-api and junit -->
<groupId>io.jenkins.plugins</groupId>
<artifactId>bootstrap5-api</artifactId>
<version>5.3.8-876.vb_c62a_27d9a_77</version>
<version>5.3.8-895.v4d0d8e47fea_d</version>
<type>hpi</type>
</artifactItem>
<artifactItem>
@ -354,7 +354,7 @@ THE SOFTWARE.
<!-- dependency of checks-api and plugin-util-api -->
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-support</artifactId>
<version>989.va_20a_1a_57710a_</version>
<version>991.v66c18437d509</version>
<type>hpi</type>
</artifactItem>
@ -362,14 +362,14 @@ THE SOFTWARE.
<!-- dependency of junit and echarts-api -->
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>jackson2-api</artifactId>
<version>2.18.3-402.v74c4eb_f122b_2</version>
<version>2.19.2-408.v18248a_324cfe</version>
<type>hpi</type>
</artifactItem>
<artifactItem>
<!-- dependency of junit -->
<groupId>io.jenkins.plugins</groupId>
<artifactId>echarts-api</artifactId>
<version>6.0.0-1146.v5c8f3b_8f0573</version>
<version>6.0.0-1165.vd1283a_3e37d4</version>
<type>hpi</type>
</artifactItem>
<artifactItem>
@ -422,7 +422,7 @@ THE SOFTWARE.
<!-- dependency of workflow-api and workflow-support -->
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>scm-api</artifactId>
<version>709.v6c27075a_b_1c7</version>
<version>712.v8846fdd68c88</version>
<type>hpi</type>
</artifactItem>
<artifactItem>
@ -506,14 +506,14 @@ THE SOFTWARE.
<!-- dependency of scm-api -->
<groupId>io.jenkins.plugins</groupId>
<artifactId>asm-api</artifactId>
<version>9.8-163.vb_2a_96d3f9c3c</version>
<version>9.9-185.va_6c6b_3348b_c3</version>
<type>hpi</type>
</artifactItem>
<artifactItem>
<!-- dependency of bootstrap5-api, checks-api, commons-text-api, echarts-api, font-awesome-api, jquery3-api, and plugin-util-api -->
<groupId>io.jenkins.plugins</groupId>
<artifactId>commons-lang3-api</artifactId>
<version>3.18.0-98.v3a_674c06072d</version>
<version>3.19.0-104.v12125f33a_255</version>
<type>hpi</type>
</artifactItem>
<artifactItem>

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><path d="M216.32 334.44l114.45-69.14a10.89 10.89 0 000-18.6l-114.45-69.14a10.78 10.78 0 00-16.32 9.31v138.26a10.78 10.78 0 0016.32 9.31z" fill="currentColor"/></svg>

After

Width:  |  Height:  |  Size: 388 B

View File

@ -28,7 +28,7 @@ THE SOFTWARE.
<parent>
<groupId>org.jenkins-ci.main</groupId>
<artifactId>jenkins-parent</artifactId>
<version>2.530</version>
<version>${revision}${changelist}</version>
<relativePath>../..</relativePath>
</parent>

View File

@ -28,7 +28,7 @@ THE SOFTWARE.
<parent>
<groupId>org.jenkins-ci.main</groupId>
<artifactId>jenkins-parent</artifactId>
<version>2.530</version>
<version>${revision}${changelist}</version>
<relativePath>../..</relativePath>
</parent>

222
yarn.lock
View File

@ -1687,10 +1687,10 @@ __metadata:
languageName: node
linkType: hard
"@dual-bundle/import-meta-resolve@npm:^4.1.0":
version: 4.1.0
resolution: "@dual-bundle/import-meta-resolve@npm:4.1.0"
checksum: 10c0/55069e550ee2710e738dd8bbd34aba796cede456287454b50c3be46fbef8695d00625677f3f41f5ffbec1174c0f57f314da9a908388bc9f8ad41a8438db884d9
"@dual-bundle/import-meta-resolve@npm:^4.2.1":
version: 4.2.1
resolution: "@dual-bundle/import-meta-resolve@npm:4.2.1"
checksum: 10c0/8f1e572c14c4d20ea35734635085213abd13bd440c251309cf8ae5ed1082f6759cefa1c2c52a631f76859c57e26062f78a8cee4acc239c0edc87cd316a5d3b5b
languageName: node
linkType: hard
@ -1723,19 +1723,21 @@ __metadata:
languageName: node
linkType: hard
"@eslint/config-helpers@npm:^0.3.1":
version: 0.3.1
resolution: "@eslint/config-helpers@npm:0.3.1"
checksum: 10c0/f6c5b3a0b76a0d7d84cc93e310c259e6c3e0792ddd0a62c5fc0027796ffae44183432cb74b2c2b1162801ee1b1b34a6beb5d90a151632b4df7349f994146a856
"@eslint/config-helpers@npm:^0.4.0":
version: 0.4.0
resolution: "@eslint/config-helpers@npm:0.4.0"
dependencies:
"@eslint/core": "npm:^0.16.0"
checksum: 10c0/4e20c13aaeba1fa024983785df6625b36c8f4415b2433097982e1ccb08db9909e2f7bf60b793538d52ecfd572f2c4eec39a884c13c185cb6be35151f053beed5
languageName: node
linkType: hard
"@eslint/core@npm:^0.15.2":
version: 0.15.2
resolution: "@eslint/core@npm:0.15.2"
"@eslint/core@npm:^0.16.0":
version: 0.16.0
resolution: "@eslint/core@npm:0.16.0"
dependencies:
"@types/json-schema": "npm:^7.0.15"
checksum: 10c0/c17a6dc4f5a6006ecb60165cc38bcd21fefb4a10c7a2578a0cfe5813bbd442531a87ed741da5adab5eb678e8e693fda2e2b14555b035355537e32bcec367ea17
checksum: 10c0/f27496a244ccfdca3e0fbc3331f9da3f603bdf1aa431af0045a3205826789a54493bc619ad6311a9090eaf7bc25798ff4e265dea1eccd2df9ce3b454f7e7da27
languageName: node
linkType: hard
@ -1756,10 +1758,10 @@ __metadata:
languageName: node
linkType: hard
"@eslint/js@npm:9.36.0":
version: 9.36.0
resolution: "@eslint/js@npm:9.36.0"
checksum: 10c0/e3f6fb7d6f117d79615574f7bef4f238bcfed6ece0465d28226c3a75d2b6fac9cc189121e8673562796ca8ccea2bf9861715ee5cf4a3dbef87d17811c0dac22c
"@eslint/js@npm:9.37.0":
version: 9.37.0
resolution: "@eslint/js@npm:9.37.0"
checksum: 10c0/84f98a6213522fc76ea104bd910f606136200bd918544e056a7a22442d3f9d5c3c5cd7f4cdf2499d49b1fa140155b87d597a1f16d01644920f05c228e9ca0378
languageName: node
linkType: hard
@ -1770,13 +1772,13 @@ __metadata:
languageName: node
linkType: hard
"@eslint/plugin-kit@npm:^0.3.5":
version: 0.3.5
resolution: "@eslint/plugin-kit@npm:0.3.5"
"@eslint/plugin-kit@npm:^0.4.0":
version: 0.4.0
resolution: "@eslint/plugin-kit@npm:0.4.0"
dependencies:
"@eslint/core": "npm:^0.15.2"
"@eslint/core": "npm:^0.16.0"
levn: "npm:^0.4.1"
checksum: 10c0/c178c1b58c574200c0fd125af3e4bc775daba7ce434ba6d1eeaf9bcb64b2e9fea75efabffb3ed3ab28858e55a016a5efa95f509994ee4341b341199ca630b89e
checksum: 10c0/125614e902bb34c041da859794c47ac2ec4a814f5d9e7c4d37fcd34b38d8ee5cf1f97020d38d168885d9bf4046a9a7decb86b4cee8dac9eedcc6ad08ebafe204
languageName: node
linkType: hard
@ -2759,12 +2761,12 @@ __metadata:
languageName: node
linkType: hard
"baseline-browser-mapping@npm:^2.8.3":
version: 2.8.6
resolution: "baseline-browser-mapping@npm:2.8.6"
"baseline-browser-mapping@npm:^2.8.9":
version: 2.8.10
resolution: "baseline-browser-mapping@npm:2.8.10"
bin:
baseline-browser-mapping: dist/cli.js
checksum: 10c0/ea628db5048d1e5c0251d4783e0496f5ce8de7a0e20ea29c8876611cb0acf58ffc76bf6561786c6388db22f130646e3ecb91eebc1c03954552a21d38fa38320f
checksum: 10c0/3ab9eee25e161a689b70b82887c8ee5cefb690a50da1d15655e2dd959de70916a43789b5ddf6968e272029002891e90a5cb46ed90ee54042e6aeae3b1c9630d4
languageName: node
linkType: hard
@ -2817,18 +2819,18 @@ __metadata:
languageName: node
linkType: hard
"browserslist@npm:^4.0.0, browserslist@npm:^4.23.3, browserslist@npm:^4.24.0, browserslist@npm:^4.24.4, browserslist@npm:^4.25.0, browserslist@npm:^4.26.0":
version: 4.26.2
resolution: "browserslist@npm:4.26.2"
"browserslist@npm:^4.0.0, browserslist@npm:^4.23.3, browserslist@npm:^4.24.0, browserslist@npm:^4.24.4, browserslist@npm:^4.24.5, browserslist@npm:^4.25.0, browserslist@npm:^4.26.0":
version: 4.26.3
resolution: "browserslist@npm:4.26.3"
dependencies:
baseline-browser-mapping: "npm:^2.8.3"
caniuse-lite: "npm:^1.0.30001741"
electron-to-chromium: "npm:^1.5.218"
baseline-browser-mapping: "npm:^2.8.9"
caniuse-lite: "npm:^1.0.30001746"
electron-to-chromium: "npm:^1.5.227"
node-releases: "npm:^2.0.21"
update-browserslist-db: "npm:^1.1.3"
bin:
browserslist: cli.js
checksum: 10c0/1146339dad33fda77786b11ea07f1c40c48899edd897d73a9114ee0dbb1ee6475bb4abda263a678c104508bdca8e66760ff8e10be1947d3e20d34bae01d8b89b
checksum: 10c0/3899ee3b7fd205ece4ffe4392697c3f2b120b68f3741ef1789212b4971771aee3f66cf37c5c3accf86ce59c0605b5980c0f132711abbcc9e62c132e6e0ee45f3
languageName: node
linkType: hard
@ -2888,10 +2890,10 @@ __metadata:
languageName: node
linkType: hard
"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001702, caniuse-lite@npm:^1.0.30001741":
version: 1.0.30001743
resolution: "caniuse-lite@npm:1.0.30001743"
checksum: 10c0/1bd730ca10d881a1ca9f55ce864d34c3b18501718c03976e0d3419f4694b715159e13fdef6d58ad47b6d2445d315940f3a01266658876828c820a3331aac021d
"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001702, caniuse-lite@npm:^1.0.30001746":
version: 1.0.30001746
resolution: "caniuse-lite@npm:1.0.30001746"
checksum: 10c0/e656a9dc811be2316e3b6dbd3bf25d0e32dbce645b1284821b4ec93fb81dc3e3f73b9473e2f66c921b620ea8b25ebbae9ee70c3d13dad85f8dd69d6bb2c91d46
languageName: node
linkType: hard
@ -3323,15 +3325,15 @@ __metadata:
languageName: node
linkType: hard
"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.4.1":
version: 4.4.1
resolution: "debug@npm:4.4.1"
"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.4.1, debug@npm:^4.4.3":
version: 4.4.3
resolution: "debug@npm:4.4.3"
dependencies:
ms: "npm:^2.1.3"
peerDependenciesMeta:
supports-color:
optional: true
checksum: 10c0/d2b44bc1afd912b49bb7ebb0d50a860dc93a4dd7d946e8de94abc957bb63726b7dd5aa48c18c2386c379ec024c46692e15ed3ed97d481729f929201e671fcd55
checksum: 10c0/d79136ec6c83ecbefd0f6a5593da6a9c91ec4d7ddc4b54c883d6e71ec9accb5f67a1a5e96d00a328196b5b5c86d365e98d8a3a70856aaf16b4e7b1985e67f5a6
languageName: node
linkType: hard
@ -3420,10 +3422,10 @@ __metadata:
languageName: node
linkType: hard
"electron-to-chromium@npm:^1.5.218":
version: 1.5.223
resolution: "electron-to-chromium@npm:1.5.223"
checksum: 10c0/1c07c34b6d8eca9b5a587e9a7ffdb4502d9cd346cf7a0446b5bbf9056395b06f3d95774c7b221b8060184771ac536f4653a06811dd4ea5c20a1a071349e84120
"electron-to-chromium@npm:^1.5.227":
version: 1.5.229
resolution: "electron-to-chromium@npm:1.5.229"
checksum: 10c0/b136c1c8e6c402dfc74d63d7774b5ad343edc26943b21c9c5c29c2f5852ba75a015dc2df88a6fcf31b42b15571dfcfd32f41a697ad22fd9b415f4937ea1e84d3
languageName: node
linkType: hard
@ -3579,18 +3581,18 @@ __metadata:
languageName: node
linkType: hard
"eslint@npm:9.36.0":
version: 9.36.0
resolution: "eslint@npm:9.36.0"
"eslint@npm:9.37.0":
version: 9.37.0
resolution: "eslint@npm:9.37.0"
dependencies:
"@eslint-community/eslint-utils": "npm:^4.8.0"
"@eslint-community/regexpp": "npm:^4.12.1"
"@eslint/config-array": "npm:^0.21.0"
"@eslint/config-helpers": "npm:^0.3.1"
"@eslint/core": "npm:^0.15.2"
"@eslint/config-helpers": "npm:^0.4.0"
"@eslint/core": "npm:^0.16.0"
"@eslint/eslintrc": "npm:^3.3.1"
"@eslint/js": "npm:9.36.0"
"@eslint/plugin-kit": "npm:^0.3.5"
"@eslint/js": "npm:9.37.0"
"@eslint/plugin-kit": "npm:^0.4.0"
"@humanfs/node": "npm:^0.16.6"
"@humanwhocodes/module-importer": "npm:^1.0.1"
"@humanwhocodes/retry": "npm:^0.4.2"
@ -3625,7 +3627,7 @@ __metadata:
optional: true
bin:
eslint: bin/eslint.js
checksum: 10c0/0e2705a94847813b03f2f3c1367c0708319cbb66458250a09b2d056a088c56e079a1c1d76c44feebf51971d9ce64d010373b2a4f007cd1026fc24f95c89836df
checksum: 10c0/30b71350b0e43542eeffa6f7380ed85c960055dde8003f17bf87d209a4a9afc6091bc0419aa32f86853e7ecef18790bdc4d678112b89dbebe61b69efcb1100e1
languageName: node
linkType: hard
@ -4403,12 +4405,12 @@ __metadata:
"@babel/cli": "npm:7.28.3"
"@babel/core": "npm:7.28.4"
"@babel/preset-env": "npm:7.28.3"
"@eslint/js": "npm:9.36.0"
"@eslint/js": "npm:9.37.0"
babel-loader: "npm:10.0.0"
clean-webpack-plugin: "npm:4.0.0"
css-loader: "npm:7.1.2"
css-minimizer-webpack-plugin: "npm:7.0.2"
eslint: "npm:9.36.0"
eslint: "npm:9.37.0"
eslint-config-prettier: "npm:10.1.8"
eslint-formatter-checkstyle: "npm:8.40.0"
globals: "npm:16.4.0"
@ -4427,11 +4429,11 @@ __metadata:
sass-loader: "npm:16.0.5"
sortablejs: "npm:1.15.6"
style-loader: "npm:4.0.0"
stylelint: "npm:16.24.0"
stylelint: "npm:16.25.0"
stylelint-checkstyle-reporter: "npm:1.1.1"
stylelint-config-standard-scss: "npm:15.0.1"
stylelint-config-standard-scss: "npm:16.0.0"
tippy.js: "npm:6.3.7"
webpack: "npm:5.101.3"
webpack: "npm:5.102.0"
webpack-cli: "npm:6.0.1"
webpack-remove-empty-scripts: "npm:1.1.1"
window-handle: "npm:1.0.1"
@ -6681,62 +6683,62 @@ __metadata:
languageName: node
linkType: hard
"stylelint-config-recommended-scss@npm:^15.0.1":
version: 15.0.1
resolution: "stylelint-config-recommended-scss@npm:15.0.1"
"stylelint-config-recommended-scss@npm:^16.0.1":
version: 16.0.1
resolution: "stylelint-config-recommended-scss@npm:16.0.1"
dependencies:
postcss-scss: "npm:^4.0.9"
stylelint-config-recommended: "npm:^16.0.0"
stylelint-scss: "npm:^6.12.0"
stylelint-config-recommended: "npm:^17.0.0"
stylelint-scss: "npm:^6.12.1"
peerDependencies:
postcss: ^8.3.3
stylelint: ^16.16.0
stylelint: ^16.23.1
peerDependenciesMeta:
postcss:
optional: true
checksum: 10c0/8c5854e143145241dbff3d921298eb59e837aa695c0e6d7f08acf75de81f3f8307d39a931781bf8ac7cbe6bf9079a402fee89566206e9cfb1d728ef6b6486890
checksum: 10c0/340aa85fa964ebac7efdbef4c51bab8e0ef62716e2826fe1156a0087b700c02d92b4dfd7ef5e60d86171f9b28c93dafc0a117d4548df51b3096583d1618acc9d
languageName: node
linkType: hard
"stylelint-config-recommended@npm:^16.0.0":
"stylelint-config-recommended@npm:^17.0.0":
version: 17.0.0
resolution: "stylelint-config-recommended@npm:17.0.0"
peerDependencies:
stylelint: ^16.23.0
checksum: 10c0/49e5d1c0f58197b2c5585b85fad814fed9bdec44c9870368c46a762664c5ff158c1145b6337456ae194409d692992b5b87421d62880422f71d8a3360417f5ad1
languageName: node
linkType: hard
"stylelint-config-standard-scss@npm:16.0.0":
version: 16.0.0
resolution: "stylelint-config-recommended@npm:16.0.0"
peerDependencies:
stylelint: ^16.16.0
checksum: 10c0/b2b4ea2633a606a0f686521aa5e8908810c9dd21fd4525c86b34213de1e362b445fd5472b6e5ff251d46f999e2ca2c6c704f2efc1c08d5a532084427f4e1c9d8
languageName: node
linkType: hard
"stylelint-config-standard-scss@npm:15.0.1":
version: 15.0.1
resolution: "stylelint-config-standard-scss@npm:15.0.1"
resolution: "stylelint-config-standard-scss@npm:16.0.0"
dependencies:
stylelint-config-recommended-scss: "npm:^15.0.1"
stylelint-config-standard: "npm:^38.0.0"
stylelint-config-recommended-scss: "npm:^16.0.1"
stylelint-config-standard: "npm:^39.0.0"
peerDependencies:
postcss: ^8.3.3
stylelint: ^16.18.0
stylelint: ^16.23.1
peerDependenciesMeta:
postcss:
optional: true
checksum: 10c0/85b4c85a9ecd97176ac104fb4590cd48047b6253b830d08749c024752b9bc8871bbf69eca592769d69cd4c6e3f90005960630f1c2cdaf85dbfabdb5621ecc55f
checksum: 10c0/eb77f23824c5d649b193cb71d7f9b538b32b8cc1769451b2993270361127243d4011baf891ec265711b8e34e69ce28acb57ab6c3947b51fa3713ac26f4276439
languageName: node
linkType: hard
"stylelint-config-standard@npm:^38.0.0":
version: 38.0.0
resolution: "stylelint-config-standard@npm:38.0.0"
"stylelint-config-standard@npm:^39.0.0":
version: 39.0.0
resolution: "stylelint-config-standard@npm:39.0.0"
dependencies:
stylelint-config-recommended: "npm:^16.0.0"
stylelint-config-recommended: "npm:^17.0.0"
peerDependencies:
stylelint: ^16.18.0
checksum: 10c0/8b52c7b7d6287c7495a8fe3a681e07ea9478374e7e66b28d61779072d46cd5b845530b2410df7496a008a8efafe834fb46cf07792f4cf57f996e39f24a801b90
stylelint: ^16.23.0
checksum: 10c0/b965f2708b0a506beebbe75ce6533ea56c58988e6b473c4789fb5a33f9911a4e163c0d27553d080fda6905cffefc7b7c34794a6d396207606478551ffa662efa
languageName: node
linkType: hard
"stylelint-scss@npm:^6.12.0":
version: 6.12.0
resolution: "stylelint-scss@npm:6.12.0"
"stylelint-scss@npm:^6.12.1":
version: 6.12.1
resolution: "stylelint-scss@npm:6.12.1"
dependencies:
css-tree: "npm:^3.0.1"
is-plain-object: "npm:^5.0.0"
@ -6748,25 +6750,25 @@ __metadata:
postcss-value-parser: "npm:^4.2.0"
peerDependencies:
stylelint: ^16.0.2
checksum: 10c0/c0ba314badd22118047e374febf8dabac56bd351d612ed9c9fc2da5dc760996c2768605aa8d4e483cf0b0fe649c35ae5a003c8a872ee5bec1bbc2d8d45673ff5
checksum: 10c0/9a0903d34be3c75a72bef32402899db5f6b94c0823c5944fdf1acb2c3dc61c1f70fbb322558f8cb7e42dd01ed5e0dec22ed298f03b7bacc9f467c28330acae71
languageName: node
linkType: hard
"stylelint@npm:16.24.0":
version: 16.24.0
resolution: "stylelint@npm:16.24.0"
"stylelint@npm:16.25.0":
version: 16.25.0
resolution: "stylelint@npm:16.25.0"
dependencies:
"@csstools/css-parser-algorithms": "npm:^3.0.5"
"@csstools/css-tokenizer": "npm:^3.0.4"
"@csstools/media-query-list-parser": "npm:^4.0.3"
"@csstools/selector-specificity": "npm:^5.0.0"
"@dual-bundle/import-meta-resolve": "npm:^4.1.0"
"@dual-bundle/import-meta-resolve": "npm:^4.2.1"
balanced-match: "npm:^2.0.0"
colord: "npm:^2.9.3"
cosmiconfig: "npm:^9.0.0"
css-functions-list: "npm:^3.2.3"
css-tree: "npm:^3.1.0"
debug: "npm:^4.4.1"
debug: "npm:^4.4.3"
fast-glob: "npm:^3.3.3"
fastest-levenshtein: "npm:^1.0.16"
file-entry-cache: "npm:^10.1.4"
@ -6796,7 +6798,7 @@ __metadata:
write-file-atomic: "npm:^5.0.1"
bin:
stylelint: bin/stylelint.mjs
checksum: 10c0/f694bfa86b8030d71e0ebd7eb815e927869481325af9a096d574d60d459944d3f11c295a5ed8885ae3d090aa1ab9431698fba1b7b99cea9884f7c762433a2891
checksum: 10c0/80fa44ff5197419647306d9b2cf3804c10255ac30a96bb3390f2a3f1debee80e2e1cde81bb4e87d9179ababc9cc0ad6c362661835ee1d32a509b7fe44a8d3dd6
languageName: node
linkType: hard
@ -6872,10 +6874,10 @@ __metadata:
languageName: node
linkType: hard
"tapable@npm:^2.1.1, tapable@npm:^2.2.0, tapable@npm:^2.2.1":
version: 2.2.1
resolution: "tapable@npm:2.2.1"
checksum: 10c0/bc40e6efe1e554d075469cedaba69a30eeb373552aaf41caeaaa45bf56ffacc2674261b106245bd566b35d8f3329b52d838e851ee0a852120acae26e622925c9
"tapable@npm:^2.2.0, tapable@npm:^2.2.1, tapable@npm:^2.2.3":
version: 2.3.0
resolution: "tapable@npm:2.3.0"
checksum: 10c0/cb9d67cc2c6a74dedc812ef3085d9d681edd2c1fa18e4aef57a3c0605fdbe44e6b8ea00bd9ef21bc74dd45314e39d31227aa031ebf2f5e38164df514136f2681
languageName: node
linkType: hard
@ -7051,13 +7053,13 @@ __metadata:
languageName: node
linkType: hard
"watchpack@npm:^2.4.1":
version: 2.4.2
resolution: "watchpack@npm:2.4.2"
"watchpack@npm:^2.4.4":
version: 2.4.4
resolution: "watchpack@npm:2.4.4"
dependencies:
glob-to-regexp: "npm:^0.4.1"
graceful-fs: "npm:^4.1.2"
checksum: 10c0/ec60a5f0e9efaeca0102fd9126346b3b2d523e01c34030d3fddf5813a7125765121ebdc2552981136dcd2c852deb1af0b39340f2fcc235f292db5399d0283577
checksum: 10c0/6c0901f75ce245d33991225af915eea1c5ae4ba087f3aee2b70dd377d4cacb34bef02a48daf109da9d59b2d31ec6463d924a0d72f8618ae1643dd07b95de5275
languageName: node
linkType: hard
@ -7120,9 +7122,9 @@ __metadata:
languageName: node
linkType: hard
"webpack@npm:5.101.3":
version: 5.101.3
resolution: "webpack@npm:5.101.3"
"webpack@npm:5.102.0":
version: 5.102.0
resolution: "webpack@npm:5.102.0"
dependencies:
"@types/eslint-scope": "npm:^3.7.7"
"@types/estree": "npm:^1.0.8"
@ -7132,7 +7134,7 @@ __metadata:
"@webassemblyjs/wasm-parser": "npm:^1.14.1"
acorn: "npm:^8.15.0"
acorn-import-phases: "npm:^1.0.3"
browserslist: "npm:^4.24.0"
browserslist: "npm:^4.24.5"
chrome-trace-event: "npm:^1.0.2"
enhanced-resolve: "npm:^5.17.3"
es-module-lexer: "npm:^1.2.1"
@ -7145,16 +7147,16 @@ __metadata:
mime-types: "npm:^2.1.27"
neo-async: "npm:^2.6.2"
schema-utils: "npm:^4.3.2"
tapable: "npm:^2.1.1"
tapable: "npm:^2.2.3"
terser-webpack-plugin: "npm:^5.3.11"
watchpack: "npm:^2.4.1"
watchpack: "npm:^2.4.4"
webpack-sources: "npm:^3.3.3"
peerDependenciesMeta:
webpack-cli:
optional: true
bin:
webpack: bin/webpack.js
checksum: 10c0/3c204d4f1df0ef2774ae043f62e4db56c11b7a0594e82fbb1fbbaf69893570f3bf08a8b5d2d5a0302ce6346132bf3eb9dbde81e4fab3d68307b2e506d606f064
checksum: 10c0/da8f18a5a4b2284d8f3bae0639cd46798d9b0949c48908680b5798125e57fa4898e80155cc367c9758d444d1251df57b2c76fd6c0988dd95ffc89df3bb712f89
languageName: node
linkType: hard