Skip to content

relicense BSL code to Apache 2.0#67

Open
semistrict wants to merge 1 commit intooxidecomputer:release-22.1-oxidefrom
semistrict:relicense-bsl-to-apache
Open

relicense BSL code to Apache 2.0#67
semistrict wants to merge 1 commit intooxidecomputer:release-22.1-oxidefrom
semistrict:relicense-bsl-to-apache

Conversation

@semistrict
Copy link
Copy Markdown

@semistrict semistrict commented Apr 4, 2026

Summary

The Business Source License 1.1 for CockroachDB 22.1 specified a Change Date of April 1, 2025, at which point the license automatically converts to the Apache License, Version 2.0. That date has now passed.

This was verified by examining the git history of licenses/BSL.txt. The BSL license file was updated once per major version, and every version's Change Date has now passed:

Version Change Date Status
19.2 2022-10-01 Converted to Apache 2.0
20.1 2023-04-01 Converted to Apache 2.0
20.2 2023-10-01 Converted to Apache 2.0
21.1 2024-04-01 Converted to Apache 2.0
21.2 2024-10-01 Converted to Apache 2.0
22.1 2025-04-01 Converted to Apache 2.0

The BSL itself states (emphasis added):

Effective on the Change Date, or the fourth anniversary of the first publicly available distribution of a specific version of the Licensed Work under this License, whichever comes first, the Licensor hereby grants you rights under the terms of the Change License

CockroachDB 22.1.0 was first publicly released on 2022-04-27 (verified via git log), making its fourth anniversary 2026-04-27. The explicit Change Date of 2025-04-01 came first, so the conversion happened over a year ago.

Changes

  • Replaced BSL license headers in ~6,000 source files (.go, .proto, .ts, .tsx, .cc, .h, .s, .sh, .scss, .styl, .less, .tmpl) with standard Apache 2.0 headers, preserving original copyright lines
  • Removed licenses/BSL.txt
  • Updated root LICENSE file to reference Apache 2.0 instead of BSL
  • Updated README.md with an explanation of the license change and its justification
  • Updated Swagger/OpenAPI license annotation in pkg/server/api_v2.go and docs/generated/swagger/spec.json
  • Updated the lint test's license header check variable name (bslHeaderapacheHeader)
  • Updated a stale "OSS/BSL" comment in pkg/cli/democluster/api.go

Test plan

  • Verify no BSL header text remains in source files: rg 'governed by the Business Source License' pkg/ returns zero results
  • Spot-check replaced files to confirm copyright lines are preserved
  • Verify TestCopyrightHeaders lint test passes with the new Apache headers (needs CI)

The Business Source License 1.1 for CockroachDB 22.1 specified a Change
Date of April 1, 2025, at which point the license automatically converts
to the Apache License, Version 2.0. That date has passed (it is now
April 2026). We verified this by examining the git history of
licenses/BSL.txt: every BSL version from 19.2 through 22.1 has passed
its Change Date, with 22.1 (the latest version in this fork) converting
on 2025-04-01.

This commit:
- Replaces all BSL license headers in ~6,000 source files (.go, .proto,
  .ts, .tsx, .cc, .h, .s, .sh, .scss, .styl, .less, .tmpl) with
  standard Apache 2.0 headers, preserving original copyright lines
- Removes licenses/BSL.txt
- Updates the root LICENSE file to reference Apache 2.0
- Updates README.md to explain the license change
- Updates the Swagger/OpenAPI license annotation in api_v2.go and
  spec.json
- Updates the lint test's license header check (renamed bslHeader to
  apacheHeader to reflect the new license)
@captn3m0
Copy link
Copy Markdown

captn3m0 commented Apr 9, 2026

I recently built a tracker for this! https://captnemo.in/finally-foss/ (need to correct cockroach)

Just here to point out that the 23.1.28 release is now FOSS (as of 1st April) and that was the last release before the license switch (23.1.29 is CSL).

Backports/upgrading to 23.1.28 is now a possibility?

(Want to point out that BUSL's Change Date is its worst feature because Cockroach set it once for the 23.1 branch and never updated it, so 23.1.28 becomes Apache-2 after 1.5y).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants