feat: add modular distribution builder by robfrank · Pull Request #3194 · ArcadeData/arcadedb (original) (raw)

and others added 24 commits

January 19, 2026 20:20

@robfrank @claude

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:

Co-Authored-By: Claude Sonnet 4.5 noreply@anthropic.com

@robfrank @claude

Create base.xml assembly that includes only core modules (engine, server, network) with all their dependencies, excluding optional modules:

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

@robfrank @claude

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

@robfrank @claude

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

@robfrank @claude

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

@robfrank @claude

Add comprehensive help message and CLI argument parsing with support for all planned options.

Co-Authored-By: Claude Sonnet 4.5 noreply@anthropic.com

@robfrank @claude

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

@robfrank @claude

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

@robfrank @claude

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

@robfrank @claude

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

@robfrank @claude

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

@robfrank @claude

Download base distribution from GitHub releases, verify checksum, and extract to temporary directory.

Co-Authored-By: Claude Sonnet 4.5 noreply@anthropic.com

@robfrank @claude

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

@robfrank @claude

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

@robfrank @claude

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

@robfrank @claude

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

@robfrank @claude

Display comprehensive summary of build configuration and generated artifacts at completion.

Co-Authored-By: Claude Sonnet 4.5 noreply@anthropic.com

@robfrank @claude

Add detailed documentation covering usage, examples, options, troubleshooting, and how the builder works.

Co-Authored-By: Claude Sonnet 4.5 noreply@anthropic.com

@robfrank @claude

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

@robfrank @claude

Add script to test builder functionality locally without requiring GitHub releases or Maven Central.

Co-Authored-By: Claude Sonnet 4.5 noreply@anthropic.com

@robfrank @claude

Document the modular distribution builder commands and usage in the project documentation.

Co-Authored-By: Claude Sonnet 4.5 noreply@anthropic.com

@robfrank @claude

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

@robfrank @claude

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 robfrank linked an issue

Jan 20, 2026

that may beclosed by this pull request

[gemini-code-assist[bot]](/apps/gemini-code-assist)

@robfrank @claude

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

@robfrank

Addresses PR review comment #2

@robfrank

Addresses PR review comment #3

@robfrank robfrank changed the titledocs: add modular distribution builder design feat: add modular distribution builder

Jan 20, 2026

@robfrank

@robfrank

@robfrank

@robfrank @claude

Co-Authored-By: Claude Sonnet 4.5 noreply@anthropic.com

@robfrank

@robfrank @claude

Co-Authored-By: Claude Sonnet 4.5 noreply@anthropic.com

@robfrank

@robfrank @claude

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

@robfrank @claude

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

@robfrank @claude

Co-Authored-By: Claude Sonnet 4.5 noreply@anthropic.com

@robfrank @claude

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 added a commit that referenced this pull request

Feb 11, 2026

@robfrank

(cherry picked from commit c8c7fb8)

mergify Bot added a commit that referenced this pull request

Feb 22, 2026

@mergify

mergify Bot added a commit that referenced this pull request

Feb 22, 2026

@mergify

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters

[ Show hidden characters]({{ revealButtonHref }})