Skip to content

feat: add modular distribution builder #3194

Merged
robfrank merged 39 commits intomainfrom
feat/3193-distro-builder
Jan 21, 2026
Merged

feat: add modular distribution builder #3194
robfrank merged 39 commits intomainfrom
feat/3193-distro-builder

Conversation

@robfrank
Copy link
Collaborator

robfrank and others added 24 commits January 19, 2026 20:20
Add design document for a new modular distribution builder that allows
users to create custom ArcadeDB packages with only the modules they need.

Key features:
- Base distribution approach (engine, server, network + deps)
- Optional modules downloaded from Maven Central
- Generates zip, tar.gz, and Docker images
- Interactive and CLI modes
- Checksum verification for security

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Create base.xml assembly that includes only core modules (engine,
server, network) with all their dependencies, excluding optional
modules:
- console
- gremlin
- redisw
- mongodbw
- graphql
- studio
- postgresw
- grpcw
- metrics

This base distribution will be published to GitHub releases and used
as the foundation for the modular distribution builder.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add base distribution assembly to package module build configuration.
This creates arcadedb-{version}-base.tar.gz and .zip distributions
containing only core modules (engine, network, server) without optional
wire protocol modules.

Part of modular distribution builder implementation.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add checksum-maven-plugin to generate SHA-256 checksums for
all distribution archives. These checksums will be used by
the modular builder to verify downloads.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add basic script structure with constants, module metadata,
and configuration variables for the modular distribution builder.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add comprehensive help message and CLI argument parsing
with support for all planned options.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add structured logging functions (info, verbose, error, success)
and error handling with cleanup on exit or interrupt.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Check for required tools (curl/wget, tar, unzip, checksums, docker),
disk space, and write permissions before proceeding.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Validate version format and set default values for output name
and Docker tag based on version and timestamp.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add interactive mode that prompts for version and displays
numbered module list for selection. Falls back to interactive
if version or modules not specified on command line.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add helper functions to download files using curl/wget and
verify SHA-256 and SHA-1 checksums. Includes dry-run support.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Download base distribution from GitHub releases, verify checksum,
and extract to temporary directory.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Download selected optional modules (shaded or regular JARs)
from Maven Central, verify SHA-1 checksums, and add to lib directory.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Create zip and tar.gz archives from the assembled distribution
directory with user-specified or timestamp-based naming.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Generate Dockerfile and optionally build Docker image with
custom tag. Supports --skip-docker and --dockerfile-only flags.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Prevent users from specifying both --skip-docker and --dockerfile-only
flags together, which creates ambiguous intent.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Display comprehensive summary of build configuration and
generated artifacts at completion.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add detailed documentation covering usage, examples, options,
troubleshooting, and how the builder works.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add helper script to prepare builder artifacts for GitHub
releases, including builder script and README.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add script to test builder functionality locally without
requiring GitHub releases or Maven Central.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Document the modular distribution builder commands and
usage in the project documentation.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add comprehensive guide for both end users and developers
covering usage, examples, architecture, and customization.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add comprehensive feature request document summarizing the modular
builder implementation, use cases, benefits, and technical details.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@robfrank robfrank added the enhancement New feature or request label Jan 20, 2026
@robfrank robfrank added this to the 26.1.1 milestone Jan 20, 2026
@robfrank robfrank linked an issue Jan 20, 2026 that may be closed by this pull request
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @robfrank, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request delivers a highly anticipated modular distribution builder for ArcadeDB. This new capability empowers users to tailor their ArcadeDB installations by including only the necessary components, moving away from fixed distribution sizes. The primary goal is to provide smaller, more secure, and more efficient deployments, catering to diverse user needs from development environments to production CI/CD pipelines. The implementation includes a robust bash script, updated build configurations, and thorough documentation to ensure ease of use and maintainability.

Highlights

  • Modular Distribution Builder: Introduced a new modular distribution builder that allows users to create custom ArcadeDB packages by selecting only the modules they need. This significantly reduces distribution size, minimizes dependencies, and simplifies deployments.
  • Custom Package Generation: The builder is a standalone bash script (arcadedb-builder.sh) that can operate in interactive or CLI mode. It downloads a minimal base distribution from GitHub releases and adds user-selected optional modules from Maven Central.
  • Output Formats & Docker Support: The tool generates custom distributions in zip and tar.gz formats and optionally supports building Docker images with the selected modules.
  • Build System Integration: The Maven build process has been updated to produce a 'base' distribution (containing only core modules) and to generate SHA-256 checksums for all distribution artifacts, ensuring integrity.
  • Comprehensive Documentation: Extensive documentation has been added, including a feature request, a detailed design document, a user guide, a dedicated README for the builder, and updates to the main project documentation (CLAUDE.md).
  • Testing and Release Tools: New scripts for local testing (test-builder-local.sh) and release preparation (prepare-release.sh) have been added to streamline development, testing, and release processes for the modular builder.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@mergify
Copy link
Contributor

mergify bot commented Jan 20, 2026

🧪 CI Insights

Here's what we observed from your CI run for 70bd55b.

🟢 All jobs passed!

But CI Insights is watching 👀

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a significant new feature: a modular distribution builder. The changes include the builder script itself, modifications to the Maven build process to create a 'base' distribution, and extensive documentation covering the design, implementation, and usage of the new tool. My review focused on the correctness and usability of the new scripts, the build configuration, and the new documentation files. I've identified a few areas for improvement, primarily to enhance the clarity of the builder script's help text, improve the maintainability of the local test script, and correct a minor error in one of the planning documents. Overall, this is a well-executed and valuable addition to the project.

@codacy-production
Copy link

codacy-production bot commented Jan 20, 2026

Coverage summary from Codacy

See diff coverage on Codacy

Coverage variation Diff coverage
-0.03%
Coverage variation details
Coverable lines Covered lines Coverage
Common ancestor commit (60148ba) 103451 56802 54.91%
Head commit (70bd55b) 103451 (+0) 56773 (-29) 54.88% (-0.03%)

Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: <coverage of head commit> - <coverage of common ancestor commit>

Diff coverage details
Coverable lines Covered lines Diff coverage
Pull request (#3194) 0 0 ∅ (not applicable)

Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: <covered lines added or modified>/<coverable lines added or modified> * 100%

See your quality gate settings    Change summary preferences

robfrank and others added 3 commits January 20, 2026 13:53
Update help text to show correct --option=value format and clarify
that --version is required only for non-interactive mode.

Addresses PR #3194 review comment.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Dynamically retrieve version using mvn help:evaluate
- Replace hardcoded version strings with PROJECT_VERSION variable
- Improves maintainability and prevents version drift

Addresses PR review comment #2
- Use artifact_id instead of module in jar_url
- Remove unused maven_path variable
- Matches actual implementation in arcadedb-builder.sh

Addresses PR review comment #3
@robfrank robfrank changed the title docs: add modular distribution builder design feat: add modular distribution builder Jan 20, 2026
robfrank and others added 11 commits January 20, 2026 15:38
- Add --local-repo flag for offline testing
- Support Maven repository and custom directory structures
- Include checksum verification for local files
- Update all documentation and testing scripts
- 9 tasks with step-by-step implementation guide
- Add LOCAL_REPO global variable
- Support both --local-repo and --local-repo=PATH syntax
- Default to ~/.m2/repository when no path provided
- Update help text with examples
- Verify local repo directory exists before proceeding
- Detect Maven repository vs custom directory structure
- Provide helpful warning for custom directories
- Support Maven repository structure (com/arcadedb/{artifact}/{version}/)
- Support custom flat directory structure
- Return absolute path or empty string if not found

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Add copy_local_module to copy from local repository
- Extract download_remote_module from download_optional_modules
- Support optional checksum verification for local files
- Maintain same error handling and logging patterns
- Add Test 3 to test-builder-local.sh for local mode
- Add Local Development Mode section to README-BUILDER.md
- Add Development Workflow section to modular-builder-guide.md
- Add Distribution Builder section to CLAUDE.md
- Update command-line options and architecture descriptions

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Add || true to find_local_jar call in copy_local_module
- Prevents set -eo pipefail from exiting before error message displays
- Error message now properly shown when module missing from local repo
Enables fully offline testing by allowing users to specify a local
base distribution file instead of downloading from GitHub.

Usage:
  --local-base=target/arcadedb-26.1.1-SNAPSHOT-base.tar.gz

When combined with --local-repo, allows complete offline operation
without any internet downloads.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
The base tarball extracts to arcadedb-{version}/ not
arcadedb-{version}-base/. Fixed all three occurrences where
the script expected the -base suffix in the directory path.

This fixes the extraction error that prevented local builds
from working correctly.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Added Test 3.5 to test-builder-local.sh for full offline mode
- Updated README-BUILDER.md with full offline mode section
- Updated modular-builder-guide.md development workflow
- All examples now show how to use --local-base for fully offline builds

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add dedicated CI job to test the modular distribution builder script.
The job runs all tests in test-builder-local.sh including dry-run
scenarios, local repository mode, and validation tests.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@robfrank robfrank requested a review from lvca January 20, 2026 20:06
@robfrank robfrank merged commit c8c7fb8 into main Jan 21, 2026
19 of 23 checks passed
robfrank added a commit that referenced this pull request Feb 11, 2026
mergify bot added a commit that referenced this pull request Feb 22, 2026
…from 3.5.4 to 3.5.5 [skip ci]

Bumps [org.apache.maven.plugins:maven-failsafe-plugin](https://github.com/apache/maven-surefire) from 3.5.4 to 3.5.5.
Release notes

*Sourced from [org.apache.maven.plugins:maven-failsafe-plugin's releases](https://github.com/apache/maven-surefire/releases).*

> 3.5.5
> -----
>
> 🚀 New features and improvements
> -------------------------------
>
> * Replace runing external process and parsing output with simple ProcessHandle if available (Java9+) ([#3252](https://redirect.github.com/apache/maven-surefire/pull/3252)) [`@​olamy`](https://github.com/olamy)
> * Pass slf4j context to spawned thread ([#3241](https://redirect.github.com/apache/maven-surefire/pull/3241)) [`@​scottrw93`](https://github.com/scottrw93)
> * [[SUREFIRE-3239]](https://issues.apache.org/jira/browse/SUREFIRE-3239) - allow override of statistics file checksum ([#3247](https://redirect.github.com/apache/maven-surefire/pull/3247)) [`@​XN137`](https://github.com/XN137)
> * Reduce log level for skipped tests result to info ([#3232](https://redirect.github.com/apache/maven-surefire/pull/3232)) [`@​strangelookingnerd`](https://github.com/strangelookingnerd)
>
> 🐛 Bug Fixes
> -----------
>
> * Use PowerShell instead of WMIC for detecting zombie process on Windows ([#3258](https://redirect.github.com/apache/maven-surefire/pull/3258)) [`@​jbliznak`](https://github.com/jbliznak). Please note if you are using Windows with Java 8 and not PowerShell (you have options to: use Java 9+, install PowerShell or stay on Surefire 3.5.4)
> * Properly work with test failures caused during beforeAll phase ([#3194](https://redirect.github.com/apache/maven-surefire/pull/3194)) [`@​Frawless`](https://github.com/Frawless)
>
> 📝 Documentation updates
> -----------------------
>
> * Clarify how late placeholder replacement (@{...}) deals with ([#3208](https://redirect.github.com/apache/maven-surefire/pull/3208)) [`@​kwin`](https://github.com/kwin)
>
> 👻 Maintenance
> -------------
>
> * Fix Jenkin badges in README ([#3254](https://redirect.github.com/apache/maven-surefire/pull/3254)) [`@​slawekjaranowski`](https://github.com/slawekjaranowski)
> * Use JUnit5 in failsafe ITs ([#3251](https://redirect.github.com/apache/maven-surefire/pull/3251)) [`@​slawekjaranowski`](https://github.com/slawekjaranowski)
> * Remove long-deprecated unused encoding property from VerifyMojo ([#3198](https://redirect.github.com/apache/maven-surefire/pull/3198)) [`@​Tomlincoln`](https://github.com/Tomlincoln)
> * Add IT and deal with corner cases of handling beforeAll failures ([#3200](https://redirect.github.com/apache/maven-surefire/pull/3200)) [`@​Frawless`](https://github.com/Frawless)
> * Revert PR [#3194](https://redirect.github.com/apache/maven-surefire/issues/3194) that handle beforeAll failures to follow proper contributing rules ([#3211](https://redirect.github.com/apache/maven-surefire/pull/3211)) [`@​Frawless`](https://github.com/Frawless)
>
> 🔧 Build
> -------
>
> * Missing many files in the GH Artifacts of CI ex-post. ([#3219](https://redirect.github.com/apache/maven-surefire/pull/3219)) [`@​Tibor17`](https://github.com/Tibor17)
>
> 📦 Dependency updates
> --------------------
>
> * Bump org.xmlunit:xmlunit-core from 2.10.4 to 2.11.0 ([#3209](https://redirect.github.com/apache/maven-surefire/pull/3209)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump org.apache.maven.plugin-testing:maven-plugin-testing-harness from 3.4.0 to 3.5.1 ([#3260](https://redirect.github.com/apache/maven-surefire/pull/3260)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump parent from 44 to 47 ([#3253](https://redirect.github.com/apache/maven-surefire/pull/3253)) [`@​slawekjaranowski`](https://github.com/slawekjaranowski)
> * Bump org.assertj:assertj-core from 3.16.1 to 3.27.7 in /surefire-its/src/test/resources/surefire-1733-testng ([#3246](https://redirect.github.com/apache/maven-surefire/pull/3246)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump org.assertj:assertj-core from 3.27.6 to 3.27.7 ([#3245](https://redirect.github.com/apache/maven-surefire/pull/3245)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump org.codehaus.mojo:animal-sniffer-maven-plugin from 1.26 to 1.27 ([#3243](https://redirect.github.com/apache/maven-surefire/pull/3243)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump org.htmlunit:htmlunit from 4.20.0 to 4.21.0 ([#3236](https://redirect.github.com/apache/maven-surefire/pull/3236)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump org.codehaus.plexus:plexus-java from 1.5.1 to 1.5.2 ([#3235](https://redirect.github.com/apache/maven-surefire/pull/3235)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump org.apache.logging.log4j:log4j-core from 2.17.1 to 2.25.3 in /surefire-its/src/test/resources/surefire-1659-stream-corruption ([#3234](https://redirect.github.com/apache/maven-surefire/pull/3234)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump org.htmlunit:htmlunit from 4.19.0 to 4.20.0 ([#3228](https://redirect.github.com/apache/maven-surefire/pull/3228)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump org.htmlunit:htmlunit from 4.18.0 to 4.19.0 ([#3224](https://redirect.github.com/apache/maven-surefire/pull/3224)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump org.apache.commons:commons-lang3 from 3.19.0 to 3.20.0 ([#3223](https://redirect.github.com/apache/maven-surefire/pull/3223)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump org.codehaus.plexus:plexus-interpolation from 1.28 to 1.29 ([#3221](https://redirect.github.com/apache/maven-surefire/pull/3221)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump org.codehaus.plexus:plexus-i18n from 1.0.0 to 1.1.0 ([#3220](https://redirect.github.com/apache/maven-surefire/pull/3220)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump commons-io:commons-io from 2.20.0 to 2.21.0 ([#3217](https://redirect.github.com/apache/maven-surefire/pull/3217)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump org.apache.maven.plugin-testing:maven-plugin-testing-harness from 3.3.0 to 3.4.0 ([#3214](https://redirect.github.com/apache/maven-surefire/pull/3214)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump org.codehaus.plexus:plexus-java from 1.5.0 to 1.5.1 ([#3218](https://redirect.github.com/apache/maven-surefire/pull/3218)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump org.htmlunit:htmlunit from 4.16.0 to 4.18.0 ([#3213](https://redirect.github.com/apache/maven-surefire/pull/3213)) @[dependabot[bot]](https://github.com/apps/dependabot)

... (truncated)


Commits

* [`968cb38`](apache/maven-surefire@968cb38) [maven-release-plugin] prepare release surefire-3.5.5
* [`8e7dc41`](apache/maven-surefire@8e7dc41) Reapply "Replace runing external process and parsing output with simple Proce...
* [`4ced57c`](apache/maven-surefire@4ced57c) Revert "Replace runing external process and parsing output with simple Proces…"
* [`8496d9a`](apache/maven-surefire@8496d9a) Bump org.xmlunit:xmlunit-core from 2.10.4 to 2.11.0 ([#3209](https://redirect.github.com/apache/maven-surefire/issues/3209))
* [`68265e5`](apache/maven-surefire@68265e5) Bump org.apache.maven.plugin-testing:maven-plugin-testing-harness ([#3260](https://redirect.github.com/apache/maven-surefire/issues/3260))
* [`0b19014`](apache/maven-surefire@0b19014) Replace runing external process and parsing output with simple ProcessHandle ...
* [`688f8c4`](apache/maven-surefire@688f8c4) Use PowerShell instead of WMIC for detecting zombie process on Windows ([#3258](https://redirect.github.com/apache/maven-surefire/issues/3258))
* [`e5c01a6`](apache/maven-surefire@e5c01a6) Build only by the latest Maven on Jenkins ([#3255](https://redirect.github.com/apache/maven-surefire/issues/3255))
* [`9c99e97`](apache/maven-surefire@9c99e97) Fix Jenkin badges in README ([#3254](https://redirect.github.com/apache/maven-surefire/issues/3254))
* [`20930ea`](apache/maven-surefire@20930ea) Bump parent from 44 to 47 ([#3253](https://redirect.github.com/apache/maven-surefire/issues/3253))
* Additional commits viewable in [compare view](apache/maven-surefire@surefire-3.5.4...surefire-3.5.5)
  
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility\_score?dependency-name=org.apache.maven.plugins:maven-failsafe-plugin&package-manager=maven&previous-version=3.5.4&new-version=3.5.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
  
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot show  ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
mergify bot added a commit that referenced this pull request Feb 22, 2026
…from 3.5.4 to 3.5.5 [skip ci]

Bumps [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.5.4 to 3.5.5.
Release notes

*Sourced from [org.apache.maven.plugins:maven-surefire-plugin's releases](https://github.com/apache/maven-surefire/releases).*

> 3.5.5
> -----
>
> 🚀 New features and improvements
> -------------------------------
>
> * Replace runing external process and parsing output with simple ProcessHandle if available (Java9+) ([#3252](https://redirect.github.com/apache/maven-surefire/pull/3252)) [`@​olamy`](https://github.com/olamy)
> * Pass slf4j context to spawned thread ([#3241](https://redirect.github.com/apache/maven-surefire/pull/3241)) [`@​scottrw93`](https://github.com/scottrw93)
> * [[SUREFIRE-3239]](https://issues.apache.org/jira/browse/SUREFIRE-3239) - allow override of statistics file checksum ([#3247](https://redirect.github.com/apache/maven-surefire/pull/3247)) [`@​XN137`](https://github.com/XN137)
> * Reduce log level for skipped tests result to info ([#3232](https://redirect.github.com/apache/maven-surefire/pull/3232)) [`@​strangelookingnerd`](https://github.com/strangelookingnerd)
>
> 🐛 Bug Fixes
> -----------
>
> * Use PowerShell instead of WMIC for detecting zombie process on Windows ([#3258](https://redirect.github.com/apache/maven-surefire/pull/3258)) [`@​jbliznak`](https://github.com/jbliznak). Please note if you are using Windows with Java 8 and not PowerShell (you have options to: use Java 9+, install PowerShell or stay on Surefire 3.5.4)
> * Properly work with test failures caused during beforeAll phase ([#3194](https://redirect.github.com/apache/maven-surefire/pull/3194)) [`@​Frawless`](https://github.com/Frawless)
>
> 📝 Documentation updates
> -----------------------
>
> * Clarify how late placeholder replacement (@{...}) deals with ([#3208](https://redirect.github.com/apache/maven-surefire/pull/3208)) [`@​kwin`](https://github.com/kwin)
>
> 👻 Maintenance
> -------------
>
> * Fix Jenkin badges in README ([#3254](https://redirect.github.com/apache/maven-surefire/pull/3254)) [`@​slawekjaranowski`](https://github.com/slawekjaranowski)
> * Use JUnit5 in failsafe ITs ([#3251](https://redirect.github.com/apache/maven-surefire/pull/3251)) [`@​slawekjaranowski`](https://github.com/slawekjaranowski)
> * Remove long-deprecated unused encoding property from VerifyMojo ([#3198](https://redirect.github.com/apache/maven-surefire/pull/3198)) [`@​Tomlincoln`](https://github.com/Tomlincoln)
> * Add IT and deal with corner cases of handling beforeAll failures ([#3200](https://redirect.github.com/apache/maven-surefire/pull/3200)) [`@​Frawless`](https://github.com/Frawless)
> * Revert PR [#3194](https://redirect.github.com/apache/maven-surefire/issues/3194) that handle beforeAll failures to follow proper contributing rules ([#3211](https://redirect.github.com/apache/maven-surefire/pull/3211)) [`@​Frawless`](https://github.com/Frawless)
>
> 🔧 Build
> -------
>
> * Missing many files in the GH Artifacts of CI ex-post. ([#3219](https://redirect.github.com/apache/maven-surefire/pull/3219)) [`@​Tibor17`](https://github.com/Tibor17)
>
> 📦 Dependency updates
> --------------------
>
> * Bump org.xmlunit:xmlunit-core from 2.10.4 to 2.11.0 ([#3209](https://redirect.github.com/apache/maven-surefire/pull/3209)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump org.apache.maven.plugin-testing:maven-plugin-testing-harness from 3.4.0 to 3.5.1 ([#3260](https://redirect.github.com/apache/maven-surefire/pull/3260)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump parent from 44 to 47 ([#3253](https://redirect.github.com/apache/maven-surefire/pull/3253)) [`@​slawekjaranowski`](https://github.com/slawekjaranowski)
> * Bump org.assertj:assertj-core from 3.16.1 to 3.27.7 in /surefire-its/src/test/resources/surefire-1733-testng ([#3246](https://redirect.github.com/apache/maven-surefire/pull/3246)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump org.assertj:assertj-core from 3.27.6 to 3.27.7 ([#3245](https://redirect.github.com/apache/maven-surefire/pull/3245)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump org.codehaus.mojo:animal-sniffer-maven-plugin from 1.26 to 1.27 ([#3243](https://redirect.github.com/apache/maven-surefire/pull/3243)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump org.htmlunit:htmlunit from 4.20.0 to 4.21.0 ([#3236](https://redirect.github.com/apache/maven-surefire/pull/3236)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump org.codehaus.plexus:plexus-java from 1.5.1 to 1.5.2 ([#3235](https://redirect.github.com/apache/maven-surefire/pull/3235)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump org.apache.logging.log4j:log4j-core from 2.17.1 to 2.25.3 in /surefire-its/src/test/resources/surefire-1659-stream-corruption ([#3234](https://redirect.github.com/apache/maven-surefire/pull/3234)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump org.htmlunit:htmlunit from 4.19.0 to 4.20.0 ([#3228](https://redirect.github.com/apache/maven-surefire/pull/3228)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump org.htmlunit:htmlunit from 4.18.0 to 4.19.0 ([#3224](https://redirect.github.com/apache/maven-surefire/pull/3224)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump org.apache.commons:commons-lang3 from 3.19.0 to 3.20.0 ([#3223](https://redirect.github.com/apache/maven-surefire/pull/3223)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump org.codehaus.plexus:plexus-interpolation from 1.28 to 1.29 ([#3221](https://redirect.github.com/apache/maven-surefire/pull/3221)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump org.codehaus.plexus:plexus-i18n from 1.0.0 to 1.1.0 ([#3220](https://redirect.github.com/apache/maven-surefire/pull/3220)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump commons-io:commons-io from 2.20.0 to 2.21.0 ([#3217](https://redirect.github.com/apache/maven-surefire/pull/3217)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump org.apache.maven.plugin-testing:maven-plugin-testing-harness from 3.3.0 to 3.4.0 ([#3214](https://redirect.github.com/apache/maven-surefire/pull/3214)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump org.codehaus.plexus:plexus-java from 1.5.0 to 1.5.1 ([#3218](https://redirect.github.com/apache/maven-surefire/pull/3218)) @[dependabot[bot]](https://github.com/apps/dependabot)
> * Bump org.htmlunit:htmlunit from 4.16.0 to 4.18.0 ([#3213](https://redirect.github.com/apache/maven-surefire/pull/3213)) @[dependabot[bot]](https://github.com/apps/dependabot)

... (truncated)


Commits

* [`968cb38`](apache/maven-surefire@968cb38) [maven-release-plugin] prepare release surefire-3.5.5
* [`8e7dc41`](apache/maven-surefire@8e7dc41) Reapply "Replace runing external process and parsing output with simple Proce...
* [`4ced57c`](apache/maven-surefire@4ced57c) Revert "Replace runing external process and parsing output with simple Proces…"
* [`8496d9a`](apache/maven-surefire@8496d9a) Bump org.xmlunit:xmlunit-core from 2.10.4 to 2.11.0 ([#3209](https://redirect.github.com/apache/maven-surefire/issues/3209))
* [`68265e5`](apache/maven-surefire@68265e5) Bump org.apache.maven.plugin-testing:maven-plugin-testing-harness ([#3260](https://redirect.github.com/apache/maven-surefire/issues/3260))
* [`0b19014`](apache/maven-surefire@0b19014) Replace runing external process and parsing output with simple ProcessHandle ...
* [`688f8c4`](apache/maven-surefire@688f8c4) Use PowerShell instead of WMIC for detecting zombie process on Windows ([#3258](https://redirect.github.com/apache/maven-surefire/issues/3258))
* [`e5c01a6`](apache/maven-surefire@e5c01a6) Build only by the latest Maven on Jenkins ([#3255](https://redirect.github.com/apache/maven-surefire/issues/3255))
* [`9c99e97`](apache/maven-surefire@9c99e97) Fix Jenkin badges in README ([#3254](https://redirect.github.com/apache/maven-surefire/issues/3254))
* [`20930ea`](apache/maven-surefire@20930ea) Bump parent from 44 to 47 ([#3253](https://redirect.github.com/apache/maven-surefire/issues/3253))
* Additional commits viewable in [compare view](apache/maven-surefire@surefire-3.5.4...surefire-3.5.5)
  
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility\_score?dependency-name=org.apache.maven.plugins:maven-surefire-plugin&package-manager=maven&previous-version=3.5.4&new-version=3.5.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
  
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot show  ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature Request: Modular Distribution Builder

1 participant