Skip to content

ADR 0237: discern ships under the Functional Source License with an Apache-2.0 future license

Status: accepted

Context

§

discern's repository carried Apache-2.0 while private, and the project is approaching its first public release with no external users or contributors yet. The license has to serve two goals at once: keep the product free to adopt, inspect, and run — the trust surface the product depends on — and keep a commercial path open so stewardship can be funded for the long term. A permissive license forecloses the second, and retracting permissions after strangers have adopted under them breaks faith in a way no later generosity repairs. Pre-launch, with nobody depending on the current terms, is the one moment a license change costs nothing.

Decision

§

discern is licensed under the Functional Source License, Version 1.1, with the Apache License, Version 2.0 as its future license (SPDX: FSL-1.1-ALv2). Anyone may use, copy, modify, and redistribute discern for any purpose except offering a competing commercial product or service; internal use, commercial included, is free, permanently. Each version irrevocably converts to Apache-2.0 on the second anniversary of the date it was first made publicly available.

The vocabulary follows the license. discern describes itself as "Fair Source" or "source-available". It is not described as "open source" until a version's conversion date passes, because until then the definition does not hold. LICENSE carries the canonical FSL text from the maintained template at fsl.software, and deno.json declares the SPDX identifier. Discern-authored material written into user projects has a separate, immediate Apache-2.0 license.

The explicit noes: no copyleft license, no closed source, and no marketing claim the license text cannot back.

Consequences

§
  • Every version carries a built-in openness guarantee: two years after it is first made available it is Apache-2.0, whatever happens to the project or its owner.
  • Teams adopting discern for their own development, commercial teams included, are unaffected; only offering discern itself as a competing product or service is reserved.
  • The project can offer commercial licenses over the same codebase, with no second edition and no license migration.
  • An "open source" claim on the site, in the README, or in metadata is now a defect. The landing chip reads "Free and Fair Source", and the site test outlaws the retired phrase.
  • Contribution terms need their own instrument, because inbound-equals-outbound no longer works when the project must license the work flexibly.

Alternatives considered

§
  • Stay on Apache-2.0. Rejected: it forecloses commercial licensing of the product itself, and the moment to change is before external users exist, not after.
  • A copyleft license such as AGPL-3.0. Rejected: it burdens the users discern wants — companies adopting it internally — while doing little against a hosted competitor that never distributes.
  • BUSL-1.1. Rejected in favor of FSL-1.1: the FSL is shorter, maintained, SPDX-registered, and fixes the conversion at two years per release instead of leaving the change license and date as parameters to negotiate.
  • Closed source. Rejected: discern's adoption story depends on being inspectable and free to run, and its agents-read-everything design assumes users can audit what the tool does.
choose openEsc close