Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Apache Druid Licenses Registry

From Leeroopedia
Revision as of 14:14, 16 February 2026 by Admin (talk | contribs) (Auto-imported from implementations/Apache_Druid_Licenses_Registry.md)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


Knowledge Sources
Domains Licensing, Compliance, Infrastructure
Last Updated 2026-02-10 10:00 GMT

Overview

licenses.yaml is a structured registry of all third-party dependency licenses bundled with or adapted into the Apache Druid project, required for Apache Software Foundation compliance.

Description

This YAML file contains multi-document entries (separated by ---) that declare every third-party library, source adaptation, and binary dependency used by Druid. Each entry records the dependency name, version, license category (source or binary), the Druid module it belongs to, the license name, optional copyright and notice text, and the specific library coordinates or source paths affected. The file spans over 6800 lines and covers hundreds of dependencies across categories including Apache-licensed libraries, MIT-licensed components, BSD-licensed code, and Eclipse-licensed JARs.

Usage

Reference this file when adding a new third-party dependency to Druid, when auditing license compliance, or when generating the NOTICE and LICENSE files for a Druid release distribution. The Apache release process requires all bundled dependencies to be declared here.

Code Reference

Source Location

Signature

# Each YAML document follows this structure:
---
name: <dependency or adapted code name>
license_category: source | binary
module: <druid module path>
license_name: <SPDX or descriptive license name>
version: <version string>           # optional
copyright: <copyright holder>       # optional
license_file_path: <path to license file>  # optional
libraries:                           # for binary dependencies
  - <groupId>: <artifactId>
source_paths:                        # for source adaptations
  - <path within repo>
notice: |                            # optional NOTICE text
  <notice content>

Import

# Parse the license registry (example with Python)
python -c "
import yaml
with open('licenses.yaml') as f:
    for doc in yaml.safe_load_all(f):
        if doc:
            print(doc.get('name'), '-', doc.get('license_name'))
"

I/O Contract

Inputs

Name Type Required Description
name string Yes Human-readable name of the dependency or adapted source code
license_category string Yes Either "source" (code adapted into Druid) or "binary" (JAR/library bundled at runtime)
module string Yes The Druid module or extension that uses this dependency
license_name string Yes Name of the license (e.g., "Apache License version 2.0", "MIT License")
version string No Version of the third-party dependency
libraries list No Maven coordinates (groupId: artifactId) for binary dependencies
source_paths list No Repository paths for adapted source code
notice string No NOTICE text required by the dependency license

Outputs

Name Type Description
LICENSE file text Generated LICENSE file content for Druid distributions
NOTICE file text Generated NOTICE file content aggregating all notice texts

Usage Examples

Adding a New Binary Dependency

---
name: Example Library
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 1.2.3
libraries:
  - com.example: example-lib

Declaring Adapted Source Code

---
name: algorithm adapted from Example Project
license_category: source
module: processing
license_name: MIT License
copyright: Example Author (https://github.com/example/project)
license_file_path: licenses/src/example.MIT
source_paths:
  - processing/src/main/java/org/apache/druid/example/AdaptedAlgorithm.java

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment