mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-09-13 08:52:15 +00:00
* 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>
37 lines
1.6 KiB
Markdown
37 lines
1.6 KiB
Markdown
# 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`](../LICENSE); per-file Apache header enforced by [`/licenserc.toml`](../licenserc.toml) |
|
|
| Enterprise features | GreptimeDB Enterprise License | [`/LICENSE-ENTERPRISE`](../LICENSE-ENTERPRISE); per-file Enterprise header enforced by [`/licenserc-enterprise.toml`](../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`](enterprise-header.txt).
|
|
|
|
## How it's enforced
|
|
|
|
CI (`license-header-check` in `.github/workflows/checks.yml`) runs
|
|
[hawkeye](https://github.com/korandoru/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.
|