10 Commits
Author SHA1 Message Date
Dominik Jain 6707cd9b7e Introduce component-based licensing: Serena GPL-3.0-or-later, SolidLSP MIT
The repository is licensed per component. SolidLSP (src/solidlsp,
test/solidlsp, test/resources) remains MIT-licensed and independently
reusable; the Serena application (src/serena, src/interprompt, scripts,
test/serena, docs) is licensed under GPL-3.0-or-later starting with the v2
licensing transition. The change is not retroactive: all releases and
commits up to v1.7.0 / 74c38a65 (tag mit-final) remain available under MIT.

Since MIT is GPL-compatible, a distribution combining both (such as the
serena-agent package) is as a whole subject to GPL-3.0-or-later, while the
SolidLSP files themselves stay MIT and can be extracted and used separately
under MIT terms. The distribution metadata therefore declares
GPL-3.0-or-later, with both license texts shipped alongside it.

Serena originally began under the GPL (v2) and was switched to MIT in
May 2025 following community requests. We consider that change a mistake;
the substantial changes in v2 make this the appropriate time to revert it.
We want the best version of Serena to remain free.

Changes:
* LICENSE is now the licensing overview; canonical license texts live in
  LICENSES/ (MIT.txt is the previous LICENSE verbatim, GPL-3.0-or-later.txt
  is the unmodified FSF text)
* pyproject.toml declares the PEP 639 license expression
  "GPL-3.0-or-later" and bundles LICENSE and LICENSES/* as license files;
  the deprecated MIT classifier is dropped and flake.nix declares gpl3Plus;
  README has per-component license badges and a License section
* SPDX-License-Identifier headers in all Python sources under src/ and
  scripts/, added by the new idempotent scripts/add_spdx_headers.py, which
  gen_prompt_factory.py also uses to keep the header on the generated
  module; existing third-party notices are preserved
* CLA.md: Contributor License Agreement (contributor retains copyright;
  grants a perpetual, irrevocable license including relicensing under any
  terms, incl. proprietary/commercial; patent grant; authority
  representations), to be enforced repository-wide via cla-assistant.io
* CONTRIBUTING.md, PR template and a new docs page explain the licensing
  boundary and the CLA workflow
2026-09-14 21:33:18 +02:00
TANIGUCHI KoheiandClaude Opus 5 6d387aa8ec Adapt the flake to nixpkgs' deprecation of the stdenv platform predicates
nixpkgs now warns on every access to the `stdenv.is*` shorthands, which hide
the build/host/target distinction
(https://github.com/NixOS/nixpkgs/pull/518407). The nixpkgs pinned here
predates that change, but a future update will surface the warnings.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-03 13:05:51 +02:00
Felix Rath 7b9fc9c5b7 fix(nix): Add Linux-support for the tray manager in AppIndicator trays
Assisted-by: gpt-5.5
2026-06-01 15:17:36 +02:00
Michael Alan Dorman 6016c3b4e2 flake.nix: include serena-hooks in package 2026-04-20 13:42:21 -04:00
Michael Panchenko 568f9a06af Nix flake: added setuptools as build input for pywebview 2026-03-31 14:29:08 +02:00
Michael Panchenko 01e9582cac Nix flake: add proxy-tools (needed to build pywebview) 2026-03-31 11:26:01 +02:00
Mikha Davids 70edc0d1cc fix: add meta property to flake.nix (#1167) 2026-03-16 10:01:27 +01:00
Anatolii PrylutskyiandClaude 568ee77e42 Fix: Expose only serena scripts in Nix package, exclude Python interpreter (#753)
* Fix: Expose only serena scripts in Nix package, exclude Python interpreter

Modified flake.nix to use a wrapper derivation that filters the virtual
environment to expose only serena-specific executables (serena, serena-mcp-server,
index-project) while excluding the Python interpreter and other venv binaries.

The full virtual environment is still accessible via 'nix build .#serena-env'
for development purposes.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Remove deprecated commands from Nix package exports

This change removes serena-mcp-server and index-project from the default
Nix package outputs, exposing only the serena command. These commands are
deprecated and will be removed soon, so they should not be part of the
public package interface.

Addresses PR review feedback requesting to expose only the serena command.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-11-15 23:54:58 +07:00
dc31e4e27e fix(nix): resolve build issues and add CI verification (#668)
* ci: add Nix build verification to pytest workflow

Add a verification step to the CI pipeline that validates the Nix package builds successfully on each run. The step uses 'nix build --no-link' to verify the flake builds without creating artifacts.

This provides early detection of Nix packaging issues with minimal overhead, reusing the existing Nix installation on Linux and macOS runners.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>

* fix(nix): add setuptools to ruamel-yaml-clib build dependencies

Add pyproject override to ensure ruamel-yaml-clib has setuptools available during build. This fixes Nix build failures where the package requires setuptools but doesn't declare it as a native build input.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Happy <yesreply@happy.engineering>
2025-10-15 11:14:32 +02:00
Jonathan Dickinson 9885570bf8 Add nix flake
Adds a nix flake to the project so that nix users can easily execute it.
2025-08-23 13:45:47 -07:00