Skip to content

Relicense VS Code extension and Visual Editor from AGPL-3.0 to MIT#1032

Draft
cderv wants to merge 8 commits into
mainfrom
worktree-mit-relicensing
Draft

Relicense VS Code extension and Visual Editor from AGPL-3.0 to MIT#1032
cderv wants to merge 8 commits into
mainfrom
worktree-mit-relicensing

Conversation

@cderv

@cderv cderv commented Jul 1, 2026

Copy link
Copy Markdown
Member

Important

Draft — do not merge until every contributor listed in #1026 has replied "I agree". Several contributors on that checklist haven't replied yet.

#430 flagged that AGPL-3.0 blocks adoption of the VS Code extension at companies that treat AGPL as a hard no. #1026 decided to relicense the extension and Visual Editor as MIT, matching the license already used by the rest of Quarto. Relicensing requires consent from every non-Posit copyright holder, tracked as a checklist on #1026.

The 19 packages/apps in scope are the VS Code extension, the LSP, the Visual Editor, and the shared packages they depend on. apps/writer and apps/writer-server are excluded (experimental, not yet shipped to production) and remain AGPL-3.0.

License changes

  • Sets license: MIT and swaps in MIT LICENSE/README text for the packages in scope.
  • Preserves the Apache-2.0/BSD-3-Clause legal comments that Vite and esbuild strip from production bundles by default (Apache-2.0 §4(c) and BSD-3-Clause require retaining copyright notices in distributions).
  • Adds ThirdPartyNotices.txt (Microsoft convention, matches VS Code itself and GitLens) covering the LGPL-3.0, Apache-2.0, and BSD-3-Clause dependencies bundled into the extension — Apache-2.0 §4(a) and BSD-3-Clause require license text in distributions.
  • biblatex-csl-converter (LGPL-3.0, bundled in the Visual Editor webview) is the only non-permissive dependency. Compliance is via ThirdPartyNotices.txt shipping both the GPL-3.0 and LGPL-3.0 full texts per §4(b), no code changes needed. Dropping the LGPL dependency entirely would need either replacing it with an MIT alternative (@citation-js) or asking the maintainer about relicensing — neither pursued here.

Header cleanup

  • Strips the AGPL "commercial license alternative" clause from source file headers across the relicensed packages, leaving the copyright line only — matching the header style already used by packages that were already MIT. Covers both the initial .ts/.tsx sweep and a follow-up pass for CSS/SCSS files a roborev review caught as missed.
  • While those same headers were being touched, also brings stale copyright year ranges up to 2026 and renames the remaining RStudio, PBC attributions to Posit Software, PBC.

Relates to #1026, #430

cderv added 7 commits July 1, 2026 14:02
…bundled dependencies

Auditing the third-party npm packages bundled across the three shipped
extension bundles (esbuild extension host, Vite Visual Editor webview, Vite
markdown-it renderer) turned up one non-permissive dependency,
biblatex-csl-converter (LGPL-3.0), plus several Apache-2.0 and BSD-3-Clause
packages whose licenses require reproducing copyright/license text in the
distributed product rather than just in node_modules.

LGPL-3.0 does not require dependents to be LGPL, so this doesn't block the
MIT relicensing itself, but LGPL-3.0 SS4 requires that users be able to modify
and rebuild the library against our code. biblatex-csl-converter is statically
bundled into the Vite webview (UMD, no Node.js module resolution available in
that context), so SS4(d0) applies: satisfied because Quarto is open source and
users can modify and rebuild from source, and SS4(b) requires shipping the
license text, which this file provides (GPL-3.0 text is included because
LGPL-3.0 incorporates it by reference).

Apache-2.0 (diff-match-patch, fuse.js, mathjax-full, prosemirror-utils,
thenby) SS4(a)/(c) and BSD-3-Clause (highlight.js, flat, react-transition-group,
typo-js) both require retaining copyright and license notices in
redistributed copies, which this notices file also covers.
Per #1026, the VS Code extension and Visual Editor
packages relicensed to MIT no longer carry the AGPL commercial-license
clause. Strips the "Unless you have received this program directly
from Posit Software/RStudio pursuant..." block from all 665 source
files across the relicensed packages, leaving the Copyright line only
(matching the header style already used by MIT-licensed packages
elsewhere in the monorepo). apps/writer and apps/writer-server remain
AGPL-3.0 and are untouched.
Bumps stale copyright year ranges to include 2026 in the same 665
source files touched by the AGPL-clause removal, and updates the 16
remaining "RStudio, PBC" attributions (pre-rename company name) to
"Posit Software, PBC" to match current headers elsewhere. apps/writer
and apps/writer-server remain untouched.
roborev review of 3ffa0b4 caught 40 CSS/SCSS files across
apps/vscode-editor, packages/editor, packages/editor-ui, and
packages/editor-codemirror that still carried the AGPL
commercial-license clause -- the initial header-strip pass only
targeted .ts/.tsx files. Applies the same three fixes as the prior
commits (strip AGPL clause, bump copyright year to 2026, rename
RStudio -> Posit Software) to these files.
@posit-snyk-bot

posit-snyk-bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues
Licenses 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

roborev review of ffbfed3 caught that apps/panmirror/vite.config.ts
was missed -- it also runs a production `vite build` shipping
dist/panmirror.js, and bundles the same workspace `editor` package
(and its third-party deps) as apps/vscode-editor and
apps/vscode-markdownit, which already got this fix.
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