<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">---
title: "Delayed Open Source Publication:\\\\A Survey of Past and Current Practices"
date: TBD Nov 2023
draft: true
---

%% extends "report.ltx"

\BLOCK{block preamble}
\BLOCK{endblock}

\BLOCK{block body}

\begin{center}
  Seth Schoen, Karl Fogel, James Vasile
\end{center}

\renewcommand*{\contentsname}{} % Get rid of "Contents" from top of TOC
\tableofcontents
\addtocontents{toc}{\protect\thispagestyle{empty}} % no page numbers

\setcounter{page}{1}

\newpage

\numberedsection{Executive Summary}\label{executive-summary}

\otsfirstterm{Delayed Open Source Publication} (DOSP) is the practice
of distributing or publicly deploying software under a proprietary
license at first, then subsequently and in a planned fashion
publishing that software's source code under an open source
license.\footnote{Note that this definition deliberately does not
  include \foreignphrase{ad hoc} or improvisatory open source releases
  of formerly proprietary code.  For example, the 1998 release of the
  Netscape Navigator source code, which through further development
  eventually became Mozilla Firefox, is \emph{not} an example of DOSP.
  This report is examines the history and effects of DOSP practiced as
  a conscious strategy; the effect of unplanned and unpredicted open
  source publication is also an interesting topic, but a separate
  one.}

Software producers have practiced DOSP throughout the history of free
and open source software.\footnote{We use the terms ``free software''
  and ``open source software'' synonymously throughout this report.}
However, surveying this phenomenon at a high level, from its
beginnings through today, shows some clear trends:

\emph{TBD: Everything below is tentative, draft, still a
  work-in-progress, etc.  Feel free to read and comment, but please do
  not consider anything from this point on to reflect the settled
  opinions of the authors nor of any organizations.}

\begin{itemize}

  \item The rise of the Business Source License (BUSL).

    Use of BUSL is really taking off.

    Deserves its own section --- see Section \ref{busl}.

  \item  Delayed unconditional release.

    Planned OSS releases with just a pre-defined time delay.

  \item Delayed event-driven regular release.

    OSS publication happens regularly, but is driven each time by some
    regular event (e.g., the publication of the latest proprietary
    version, which prompts the previous version to now be open
    sourced).

  \item Delayed conditional release.

    "We'll publish this as open source as soon as we get funding" or
    "as soon as we find the right non-profit home for it", etc.
    Probably includes bounty mechanisms, but only if these were
    intended --- that is, not ``buy-outs".

\end{itemize}

There are also post-hoc or unscheduled releases, where the authors
didn't originally plan to release the software as open source but
eventually decide to do so.  These aren't technically in scope, but we
should give some examples somewhere --- maybe in a footnote or
appendix --- just to make it clear that it's something that happens.

\numberedsection{Motivations}\label{motivations}

DOSP is usually described as protecting commercial interests of a software
developer by maintaining a window of time during which some users might be
incentivized to pay for licenses that they might not need if the software
were released as open source.

% Fit into discussions about incentive/funding models

We've also seen one-time delays for new projects whose developers state
a concrete intention to convert those projects to an open source license.
They may have non-economic reasons for those delays, such as shame about
poor code quality, concern about security issues that may be apparent in
unaudited source code, a need to procure permissions from other copyright
holders, a desire to establish a community or governance structure, or
a plan to incorporate a legal entity.


\numberedsection{Scheduled Relicensing}\label{scheduled}

\subsection{Early History}

For many years, Aladdin GhostScript implemented a DOSP policy whereby
new versions were published under a proprietary license, and then regularly
relicensed under the GNU GPL with a delay of one year.  (It might be
clearer to say that year-old versions were regularly republished under
the GPL.)

GhostScript author L. Peter Deutsch described this practice as providing
commercial exclusivity that would help fund continued development of the
project.

Eventually, GhostScript adopted a simultaneous dual-licensing approach
in which all releases were available under GPL and redistributors could
choose to pay for a proprietary license exempting them from GPL
obligations.

% TODO This is about Artifex rather than Aladdin - the change happened
%      after the product was transferred to a new company!
Attorney and author Lawrence Rosen, who discussed GhostScript's model in
his book on open source licensing, told us that Artifex eventually
concluded that the GPL was unpalatable enough to commercial embedded
developers --- the entities that were typically already paying for
proprietary licenses or that could be induced to pay for violations of
GhostScript's copyright --- that the delay in making GhostScript available
under the GPL did not significantly change these companies' incentives to pay
for licenses.
% Sorry for the super-long sentence. I'm sure we'll break that up somehow.

% Rosen also says that sendmail may have had a dual license in the same
% era or even before Ghostscript.  I found references to sendmail having
% a "traditional" dual license but so far have not found references to a
% scheduled relicensing practice.

% TrollTech story is complicated...
% https://tinf2.vub.ac.be/~dvermeir/manual/KDE20Development-html/ch19lev1sec4.html
% and more

\subsection{Bounty and Sponsorship Delays}\label{bounty}

Another model is making individual software features or enhancements
available to sponsors first, with a fixed time delay before making
them available to the general public. An example of this is the North
Road SLYR GIS software\footnote{See \otsurl{https://north-road.com/slyr/}.},
which has a published feature roadmap and releases (and licenses) its
implementation of each feature to sponsors first:

\begin{quote}
While we fully intend to make the full SLYR plugin open source and freely publish the style/LYR/MXD conversion tools, we also require financial backing in order to support the significant time required to completely reverse engineer these file formats and develop quality tools supporting their use outside of the ESRI software ecosystem. Accordingly, the specifications and file parsing library will initially be closed source and available to SLYR license holders only. Exactly six months after we hit the pledged sponsorship levels for each stage of the project (check the progress below for each stage), we will open-source that component of the code and update the community version of the plugin.
\end{quote}

This strategy was also used by the OPSI project, which created a bounty-like ``co-funding" mechanism, which is still alluded to on the associated company's web site. Under this model, customers could sponsor the development of particular features, which would initially be available to sponsors and later to the public. However, this mechanism appears to have fallen out of use, as there are no recent co-funding opportunities, and the project currently appears to follow an open core model with paid subscriptions for proprietary extensions.

\subsection{The Business Source License (BUSL)}\label{busl}

The Business Source License (BUSL; sometimes ``BSL"\footnote{Most adopters
of this license refer to it as ``BSL", but
this acronym was previously used for the Boost Software License. The
SPDX license identifier for the Business Source License is ``BUSL".})
was originally written in 2016 by MariaDB for its MaxScale project.
The current version of BUSL, 1.1, was released in 2017 and first
used for MaxScale 2.1.0.\footnote{See
\otsurl{https://mariadb.com/resources/blog/releasing-bsl-1-1/}.}

BUSL requires a licensor to specify a ``Change Date" and a ``Change License".

MariaDB's Change Date for MaxScale is four years after the release of a
specific version, and its Change License is GPLv2.
% example: https://github.com/mariadb-corporation/MaxScale/blob/23.08/LICENSE2308.TXT

The Linux Foundation noted (\otsurl{https://www.linuxfoundation.org/blog/how-open-source-foundations-protect-the-licensing-integrity-of-open-source-projects})
that several prominent projects switched away from open-source licenses
from 2018 to 2023. Not all of these adopted DOSP licenses, but those that did
so adopted BUSL.
These included CockroachDB, Couchbase, Terraform, and ArangoDB. The most
prominent of these BUSL adopters was HashiCorp, which wrote

\begin{quote}
BSL 1.1 is a source-available license that allows copying, modification, redistribution, non-commercial use, and commercial use under specific conditions. With this change we are following a path similar to other companies in recent years. These companies include Couchbase, Cockroach Labs, Sentry, and MariaDB, which developed this license in 2013. Companies including Confluent, MongoDB, Elastic, Redis Labs, and others have also adopted alternative licenses that include restrictions on commercial usage. In all these cases, the license enables the commercial sponsor to have more control around commercialization.
\end{quote}

This change applied to almost all of the company's software, including popular
software like Terraform, Vagrant, and HashiCorp Vault.

Although HashiCorp's license change attracted the most attention and
commentary, it's interesting to note that BUSL was originally written by
a database company and that the majority of the projects we've identified
that relicensed under BUSL are database systems. Some of the project
developers wrote that they wanted to discourage other companies from
competing directly with the developers' hosted database services, and that
they doubted whether an open source license would manage to accomplish
this. It's also possible that there was a degree of ``social contagion"
as database developers observed several of their peers relicensing away
from open source at roughly the same time, either to BUSL or to other
licenses that restrict licensees from operating commercial services.

Several licensors add an Additional Use Grant (AUG) under the BUSL to
allow for ``production" uses other than those that are considered to
compete with the developer's commercial services. For example,
ArcticDB provides the following Additional Use Grant\footnote{This same
text is also used by several other projects, and we have not determined
which project originated it. There are also other variants with similar
effect.}:

\begin{quote}
You may make use of the Licensed Work under the terms of this License,
provided that you may not use the Licensed Work for a Database Service.

A ``Database Service" is a commercial offering that allows third parties
(other than your employees and contractors) to access the functionality
of the Licensed Work by creating tables whose schemas are controlled by
such third parties.
\end{quote}

It appears that the project thus intends to immediately allow
\emph{commercial} uses, including for public services, as long as these
don't entail charging money for hosting databases in particular. Several
other BUSL adopters have analogous grants.

The AUG mechanism---including optional free-form text that exempts certain
uses from BUSL's ``production use" restrictions---complicates direct
comparison of uses of the BUSL; we have not yet devised a taxonomy
for making these comparisons.

% TODO Sort this table by date of BUSL adoption? ("BUSL date")
\begin{table}[]
\begin{tabular}{lllll}
\textbf{Project} &amp; \textbf{BUSL date} &amp; \textbf{Change Date} &amp; \textbf{Change License} &amp; \textbf{Reference} \\

Akka &amp; 2022-09-07 &amp; rel. +3 years &amp; Apache v2 &amp; \otsurl{https://www.lightbend.com/blog/why-we-are-changing-the-license-for-akka} \\

ArangoDB &amp; 2023-10-11 &amp; rel. +4 years &amp; Apache v2 &amp; \otsurl{https://arangodb.com/2023/10/evolving-arangodbs-licensing-model-for-a-sustainable-future/} \\

ArcticDB &amp; [always] &amp; rel. +2 years &amp; Apache v2 &amp; [no ref] \\
% https://github.com/man-group/ArcticDB/blob/master/LICENSE.txt

CockroachDB &amp; 2019-06-04 &amp; rel. +3 years &amp; Apache v2 &amp; \otsurl{https://www.cockroachlabs.com/docs/stable/licensing-faqs\#bsl} \\

CodeCov &amp; 2023-08-02 &amp; rel. +3 years &amp; Apache v2 &amp; \otsurl{https://about.codecov.io/blog/codecov-is-now-open-source/} \\

CouchBase &amp; 2021-03-26 &amp; rel. +4 years &amp; Apache v2 &amp; \otsurl{https://www.couchbase.com/blog/couchbase-adopts-bsl-license/} \\

DragonflyDB &amp; 2022-05-29 &amp; +5 years &amp; Apache v2 &amp; REF \\
% https://github.com/dragonflydb/dragonfly/blob/main/LICENSE.md

evitaDB &amp; [always] &amp; 4th cal. year &amp; Apache v2 &amp; [no ref] \\
% https://github.com/FgForrest/evitaDB/blob/dev/LICENSE

Materialize\footnote{Not to be confused with the Materialize CSS project, which is released under the MIT license.} &amp; 2020-02-07 &amp; daily +4 years\footnote{Differently from other BUSL-licensed projects, Materialize uses a bot to update the Change Date every day (not just on the occasion of release events), so that it always reflects a date exactly four years after the present date.} &amp; Apache v2 &amp; REF \\

MaxScale &amp; 2017-02-14 &amp; rel. +4 years &amp; GPL v2 &amp; \otsurl{https://mariadb.com/resources/blog/releasing-bsl-1-1/} \\

Memgraph &amp; 2021-10-03 &amp; rel. +4 years &amp; Apache v2 &amp; REF \\
% https://github.com/memgraph/memgraph/blob/master/licenses/BSL.txt

ReadySet &amp; 2022-08-03 &amp; rel. +4 years &amp; Apache v2 &amp; REF \\
% https://github.com/readysettech/readyset/blob/main/LICENSE

Sentry &amp; 2019-11-06 &amp; rel. +3 years &amp; Apache v2 &amp; REF \\

SurrealDB &amp; 2021-12-14 &amp; rel. +4 years &amp; Apache v2 &amp; REF \\
% https://github.com/surrealdb/surrealdb/blob/main/LICENSE

Terraform (etc.) &amp; 2023-08-10 &amp; rel. +4 years &amp; MPL 2.0 &amp; REF \\

ZeroTier &amp; 2019-08-28 &amp; 5th cal. year &amp; Apache v2 &amp; REF \\
\end{tabular}
\end{table}
% TODO: Do footnotes from a table not render properly?

\subsection{Differences From Other Licensing Strategies}\label{differences}

MariaDB (https://mariadb.com/bsl-faq-mariadb/):

\begin{quote}
Q: How is the BSL different from Open Core?

A: Open core offers some code under Open Source terms, but non-core code is not under Open Source terms, is not available in source form, cannot be modified and compiled, cannot be contributed to, and will never be Open Source. By using Open Core software, like with closed source code, you are locked to one vendor. With BSL, as compared to Open Core, the source code is available from the start, can be modified and compiled, contributions are encouraged, the product will become fully Open Source after a period of time and remains free for non-production use. The importance of the eventual Open Source is that users are free from vendor lock-in. If the vendor decides to stop contributing to the code, users have open access and can modify, update and extend as needed.

Q: How is the BSL different from dual GPL/commercial licensing?

A: When using dual licensing with GPL, companies must pay for a commercial license to use the software with their closed source code. With BSL, the companies are only paying for the software if they want to make production use of the software. From a vendor perspective, GPL dual licensing only works for infrastructure products that other companies want to deeply embed in their product. BSL works for any kind of software product.
\end{quote}

This is echoed in statements by several BUSL adopters that they sought a way to make downstream commercial users who did not redistribute derived works pay for the use of their software (typically in cloud environments), or wanted to prevent downstream commercial users from directly competing with the initial developer's own service offerings.

\subsection{Consequences/Impacts?}

Projects that change from an open-source license to a delayed open-source
license have attracted criticism, with some people pledging to
switch to other projects or even to maintain competitive forks of the
prior open-source versions.  The most consequential such effort
appears to be OpenTofu, a fork of HashiCorp's Terraform announced soon
after Terraform was relicensed under BUSL.\footnote{See
\otsurl{https://opentofu.org/}.}
OpenTofu has announced several corporate sponsorships, apparently plans
to hire multiple full-time developers, and has organized itself as a
project of the Linux Foundation. The fork's creators complained that
the prior open source license of Terraform had encouraged people to
develop professional expertise with the software and to use it as a part
of their infrastructure.
% One could say much more about this both in terms of commercial strategy
% and also in terms of users' subjective feelings of betrayal.
They also noted concerns about whether Terraform users could be confident
about whether their individual uses were considered commercially
competitive with HashiCorp.

Most other forks of recently-relicensed software have not attracted the
same levels of attention, participation, or adoption.

% yes for Vagrant -&gt; Viagrunt, although OpenTofu got vastly more support
% and activity

It could be harder for projects under non-open-source terms to receive
or accept outside contributions, both because people may be less motivated
to make them and because the licensing status of the resulting contributions
is more complicated. However, some projects that have switched to BUSL (or
other licenses) continue to accept outside contributions subject to a
contributor license agreement (``CLA"), which grants certain rights to the
original developer. HashiCorp, for example, has a CLA for its
projects\footnote{See, for example,
\otsurl{https://cla.hashicorp.com/hashicorp/terraform}.}, and a bot that
that checks whether the authors of pull requests have signed it, so that
their contributions will not be incorporated into the codebase until
and unless they do so. The company does continue to receive some outside
code contributions to its BUSL-licensed projects, including Terraform.
% TODO: Has the rate measurably decreased?
%
% TODO: Did they have this requirement before relicensing? Some open source
%       projects do have comparable CLAs for outside contributions to
%       become part of their official upstream code bases. It's not only a
%       BUSL/DOSP/proprietary licensing phenomenon.

\subsection{Other}

The Child Mind Institute uses its Delayed Open Source Attribution License
(DOSA), which has a three-year period in which only noncommercial uses
are permitted, for its MindLogger software.
% https://github.com/ChildMindInstitute

The Poké Classic Framework
has a conditional license which limits uses of the code but which
converts to AGPL if the original developer ceases to operate a service
based on the code.\footnote{See
\otsurl{https://github.com/mm201/pkmn-classic-framework}.}

Sentry has released a draft of its ``Functional Source License" (FSL),
which it hopes to use for its own currently BUSL-licensed software, at
\otsurl{https://fsl.software/}.\footnote{Disclosure:
% TODO: What is the right phrasing for the disclosure here?
}
The FSL prohibits, during a period of one year, uses of covered software
to provide services that ``compete" with the original developer's commercial
service offerings.  Following this period, the software is licensed under
BSD or Apache terms, without the competition restriction.

Several cloud-oriented software projects that switched away from open
source licensing in the past few years also adopted license terms with
non-competition clauses. However, these generally were not time-limited.
% TODO: double-check whether any of them were time-limited

% I think it's interesting that the AGPL doesn't seem to appeal to most
% companies that are pursuing this kind of thing. I don't know if any of
% them have commented on their views about it.

\numberedsection{Enforceability}\label{enforce}

Delayed open source licensing is less explored than immediate open source
licensing, and some observers have expressed concerns about its legal
enforceability. For example, if an author died before the announced license
transition date, would the author's heirs be required to honor the license
transition, or could they potentially cancel or withdraw it? What if a
company were acquired by a new owner which wanted to retroactively change
its licensing structure?

% XXX We obviously don't know yet because ...

The Creative Commons research on springing licenses expressed some concerns
about their enforceability. The Creative Commons organization itself
previously implemented a delayed licensing mechanism called Founders
Copyright; unlike other Creative Commons licenses, the Founders Copyright
involves a copyright assignment to the Creative Commons nonprofit
organization itself. The organization then commits to grant the original
author an exclusive license to the for the announced delay period, and
to license the work to the public afterward. It appears that this copyright
assignment mechanism was intended to minimize uncertainty about the
extent to which authors could bind themselves (or their successors) to
future licensing intentions, although it required direct involvement by
the nonprofit as copyright holder and licensor, a role it had otherwise
not seen fit to take on.

Kyle E. Mitchell distinguishes ``a present grant of a license" (with a
specified future start date) from ``a contractual promise to grant the
license later" and advocates using the former, although he does not
imply that the latter is invalid or unenforceable. Mitchell's concerns
focus on clarity and persistent documentation of specific license
grants to specific code and project versions.

\numberedsection{``Grace Period" Reciprocal Licensing}\label{grace}

One licensing practice often described as related to DOSP is implemented
in the Bootstrap Open Source License (BOSL), previously called the
Transitive Grace Period Public License (TGPPL).  This license was mainly
devised by Zooko Wilcox-O'Hearn.\footnote{It implements a strategy previously
proposed by Ted Ts'o, at \otsurl{https://thunk.org/tytso/TPL.html}.}

% https://lists.opensource.org/pipermail/license-discuss_lists.opensource.org/2013-July/018428.html
% TGPPL was submitted for OSI review in 2009 (!) but was never approved.
% There are some discussions that seem to imply that people were reluctant
% to approve it from nascent concerns over license proliferation and some
% prudential concerns about whether this was the right approach to
% relicensing.

It is worth pointing out that the BOSL has no connection to the Bootstrap
web framework project, which is under the MIT license. Both projects
independently use the term ``bootstrap" to refer to the concept of
bootstrapping.

Instead of making an initially proprietary license grant that later
transforms into an open-source license, the BOSL makes an initially
permissive (BSD-style) license grant that later transforms into a
reciprocal (GPL-style) license. This is intended to allow downstream
code reuse in proprietary software projects, but only for a limited
time, something Zooko characterized as a compromise between
permissive and reciprocal open source licensing models.\footnote{See,
for example, the presentation at
\otsurl{https://tahoe-lafs.org/\textasciitilde{}zooko/tgppl.pdf}.}
% TODO: Get rid of the {} that shows up in the link target

Since both the start and end-state licenses of the BOSL are themselves
open source, we do not regard the BOSL as a form of delayed open-source
publication as defined by this report. Rather, it seems to be an
unconventional form of open source publication with time-varying open
source terms. While the BOSL has not been approved by the Open Source
Initiative, it appears to us to be compatible with the Open Source
Definition, and --- unlike BUSL, for instance --- is claimed by its
authors to be a form of open source licensing.

One way to view the distinction between delayed open-source licensing and
grace period reciprocal licensing is that the former aims to compromise
between proprietary and open source licensing, where the latter aims
to compromise between permissive and reciprocal licensing --- in both
cases by modifying the license terms after a delay.

\numberedsection{Other Terminology and Practices}\label{terminology}

We've encountered a number of other terms that can describe DOSP or
the licensing mechanisms used to implement it.

\begin{itemize}

   \item Eventual (open) source; scheduled licensing.

   Lawrence Rosen's book on open source licensing refers to ``eventual source"
   or ``eventually open source" software, giving the example of Aladdin
   GhostScript. He also calls this ``scheduled licensing".

   \item Springing licenses.

   A research report from Creative Commons refers to ``springing licenses"
   (licenses that grant additional permissions after a period of time, or
   when some other condition has been met). Creative Commons was mainly
   interested in the possibility of developing licenses that would grant
   additional permissions over time, after a period of greater exclusivity.

   \item Scheduled relicensing.

   Kyle E. Mitchell refers to ``scheduled relicensing".

\end{itemize}

One can also distinguish between a public pledge to relicense on a schedule
(as GhostScript did) and a license document whose text includes date or
other restrictions. In the former case, the delayed release is implemented
by human beings (actively making a new software release including new
license text); in the latter case, it is automatic.

We do not consider ``unplanned" open source releases to be examples of DOSP.
There are a number of high-profile cases of proprietary projects that were
retroactively relicensed as open source as a result of a one-off decision.
Where developers originally had no announced plan or intention to do this,
we think this is best considered a separate phenomenon, not a ``delayed"
release.

Many people also mentioned the custom among some video game developers of
releasing code (though usually not assets such as graphics and sound)
from proprietary video games that are no longer commercially important.
This is a relatively widespread practice, with Wikipedia identifying
dozens of instances.\footnote{Wikipedia lists these examples at
\otsurl{https://en.wikipedia.org/wiki/List\_of\_commercial\_video\_games\_with\_later\_released\_source\_code}.}

Some companies like id Software have made such releases for multiple video
game generations.
While many of these developers apparently had a general intention to make
their games open source, in whole or in part, at some point in the future,
there was usually no public commitment to do so on any particular
schedule or under any particular circumstances.  This practice is thus not
a core example of DOSP.

A ``delayed open access" model, applied to research articles, has become
popular for academic journals as a compromise between more restrictive
journal licensing and open-access publishing.\footnote{See
\otsurl{https://en.wikipedia.org/wiki/Delayed\_open-access\_journal}.}
As of November 2023, Wikipedia identifies by name 108 journals that
currently follow some form of this model, but cites a 2013 study that
reportedly reviewed 492 journals with such a policy. In this context,
journals may apply an ``embargo period" to create an incentive for some
journal users to pay for subscriptions or article access in order to
read recent research. The license terms applied at the expiration of these
embargo periods permit the public to read articles at no charge, but
may or may not be equivalent to open source licensing.

\numberedsection{Sources and References}\label{sources}

\begin{itemize}

\item \otscite{Creative Commons Final Report: On the Viability and
    Development of Springing Licenses}\\
  \otsurl{https://creativecommons.org/wp-content/uploads/2018/07/Springing-licenses-FINAL.pdf}

% https://writing.kemitchell.com/2023/10/24/Scheduled-Relicensing

  \item \otscite{Wikipedia: List of Commercial Video Games With Later Released Source Code}\\
	\otsurl{https://en.wikipedia.org/wiki/List\_of\_commercial\_video\_games\_with\_later\_released\_source\_code}

\end{itemize}

\numberedsection{Acknowledgements}\label{acknowledgements-sow}

TBD
% Two examples learned from https://blog.adamretter.org.uk/business-source-license-adoption/

\BLOCK{endblock}
</pre></body></html>