Skip to content

feat: relicense Shift under MIT OR Apache-2.0 - #443

Merged
kostyafarber merged 1 commit into
mainfrom
chore/relicense
Sep 27, 2026
Merged

kostyafarber merged 1 commit into
mainfrom
chore/relicense

Conversation

@kostyafarber

@kostyafarber kostyafarber commented Sep 27, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • relicense the repository, every workspace package, and every crate from GPL-3.0-only to MIT OR Apache-2.0, so the editor SDK, Rust core, and format tooling can be embedded and reused by open and closed products; the Cargo workspace declares the license once and each crate inherits it
  • replace LICENSE with LICENSE-MIT and LICENSE-APACHE, and state the dual license and contribution terms in the README
  • add THIRD_PARTY_NOTICES.md with the verbatim OFL-1.1 texts for Inter, JetBrains Mono, and Host Grotesk, the GlyphsInfo BSD-3-Clause notice, and the rust-slug-wgpu MIT attribution; theme palettes stay in apps/desktop/THIRD_PARTY_THEMES.md
  • ship both license texts and the notices in desktop releases, and both license texts plus font notices in the @shift-editor/sdk package

Issue

Closes #442

Testing

  • License audit before the change: 59 third-party npm production packages (MIT, ISC, BlueOak-1.0.0, Python-2.0) and 241 runtime crates are all permissive; r-efi is tri-licensed with an MIT option; bundled SQLite is public domain and zstd offers BSD
  • pnpm format:check
  • pnpm typecheck
  • cargo metadata reports MIT OR Apache-2.0 for all eight crates
  • pnpm pack in packages/sdk includes LICENSE-APACHE, LICENSE-MIT, and THIRD_PARTY_NOTICES.md
  • pre-commit hooks (Rust fmt, clippy, and tests; oxfmt; oxlint; typecheck; deadcode; vitest)

A desktop package build was not run; the change only swaps the extraResources entries for files that exist at the repository root.

Follow-up

🤖 Generated with Claude Code

Shift, its packages, and its crates are now dual-licensed so the editor
SDK, Rust core, and format tooling can be embedded and reused by open
and closed products alike. The Cargo workspace declares the license
once and every crate inherits it.

Releases and the SDK package now carry both license texts and a
third-party notices file with the bundled fonts' OFL-1.1 text, the
GlyphsInfo BSD-3-Clause notice, and the Slug renderer attribution.
@kostyafarber kostyafarber changed the title chore: relicense Shift under MIT OR Apache-2.0 feat: relicense Shift under MIT OR Apache-2.0 Sep 27, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Installed app screenshots

Platform Result
macOS arm64 ✅ success
Windows x64 ✅ success
Linux x64 ✅ success
Screenshots
Scenario macOS arm64 Windows x64 Linux x64
Launcher window macOS arm64 Launcher window Windows x64 Launcher window Linux x64 Launcher window
Launcher desktop macOS arm64 Launcher desktop Windows x64 Launcher desktop Linux x64 Launcher desktop
Document window macOS arm64 Document window Windows x64 Document window Linux x64 Document window
Document desktop macOS arm64 Document desktop Windows x64 Document desktop Linux x64 Document desktop
File association window macOS arm64 File association window Windows x64 File association window Linux x64 File association window
File association desktop macOS arm64 File association desktop Windows x64 File association desktop Linux x64 File association desktop
Application menu macOS arm64 Application menu Windows x64 Application menu Linux x64 Application menu
Native dialog macOS arm64 Native dialog Windows x64 Native dialog Linux x64 Native dialog

View workflow run

Screenshots are review artifacts, not pixel-gated baselines. Public PNGs expire after 14 days.

@kostyafarber
kostyafarber added this pull request to the merge queue Sep 27, 2026
Merged via the queue into main with commit 3d25749 Sep 27, 2026
34 of 35 checks passed
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.

Relicense Shift under MIT OR Apache-2.0 with third-party notices

1 participant