Files
Weny Xu a6107fbe3d ci: optimize fuzz and split workflows (#8710)
* ci: batch fuzz targets in GitHub Actions

Signed-off-by: WenyXu <wenymedia@gmail.com>

* ci: improve fuzz test observability

Signed-off-by: WenyXu <wenymedia@gmail.com>

* fix(ci): preserve fuzz setup failure artifacts

Signed-off-by: WenyXu <wenymedia@gmail.com>

* test(ci): keep fuzz mock output in logs

Signed-off-by: WenyXu <wenymedia@gmail.com>

* ci: optimize fuzz worker cache

Signed-off-by: WenyXu <wenymedia@gmail.com>

* ci: warm fuzz target binaries

Signed-off-by: WenyXu <wenymedia@gmail.com>

* ci: isolate fuzz workflow

Signed-off-by: WenyXu <wenymedia@gmail.com>

* ci: centralize fuzz target preparation

Signed-off-by: WenyXu <wenymedia@gmail.com>

* ci: split general workflows

Signed-off-by: WenyXu <wenymedia@gmail.com>

* ci: streamline docs required checks

Signed-off-by: WenyXu <wenymedia@gmail.com>

* fix: transfer fuzz targets as artifacts

Signed-off-by: WenyXu <wenymedia@gmail.com>

* fix: preserve fuzz binary permissions

Signed-off-by: WenyXu <wenymedia@gmail.com>

* ci: streamline fuzz workers

Signed-off-by: WenyXu <wenymedia@gmail.com>

* ci: cache PR build dependencies

Signed-off-by: WenyXu <wenymedia@gmail.com>

* ci: retain main build cache policy

Signed-off-by: WenyXu <wenymedia@gmail.com>

* ci: address fuzz review feedback

Signed-off-by: WenyXu <wenymedia@gmail.com>

---------

Signed-off-by: WenyXu <wenymedia@gmail.com>
2026-08-03 07:58:29 +00:00
..

Licensing

GreptimeDB is an open-core project with a dual-license layout.

Scope License Where it's declared
Core (default build) Apache-2.0 /LICENSE; per-file Apache header enforced by /licenserc.toml
Enterprise features GreptimeDB Enterprise License /LICENSE-ENTERPRISE; per-file Enterprise header enforced by /licenserc-enterprise.toml

Enterprise sources are gated behind the enterprise Cargo feature and are not compiled into the default open-source build. Each one carries an explicit Enterprise License header generated from enterprise-header.txt.

How it's enforced

CI (license-header-check in .github/workflows/checks.yml) runs hawkeye twice:

  1. Default config — applies the Apache-2.0 header to all sources, excluding the enterprise files.
  2. licenserc-enterprise.toml — applies the Enterprise header to only the enterprise files.

The two file lists are complementary and must stay in sync:

  • licenserc.toml excludes — the # enterprise block.
  • licenserc-enterprise.toml includes.

Adding a new enterprise file

  1. Add its path to both lists above.
  2. Apply the header: hawkeye format --config licenserc-enterprise.toml.
  3. Verify: hawkeye check --config licenserc-enterprise.toml.

Do not put an Apache-2.0 header on an enterprise file, and do not leave an enterprise file without a header — CI fails in both cases.