156 Commits
Author SHA1 Message Date
Dominik Jain 18fa47bfcc Merge branch 'gpl' 2026-09-14 21:35:06 +02:00
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
Dominik Jain 74c38a65f0 Require issue to be real 2026-09-14 17:56:23 +02:00
mameikagou e473dd64b5 docs: fix issue template user guide link 2026-09-02 13:02:27 +02:00
xor bdc9a2de2d CI: cache npm dependencies for web test fixtures (#1698) 2026-08-09 16:00:55 +02:00
weiconghe 1d44e9cfab feat: add Gleam language support via the Gleam compiler's bundled gleam lsp (#1765) 2026-08-08 19:44:27 +02:00
Evangelos Karatzas 76b94f3274 Add Nextflow language server support (#1815)
The Nextflow language server schedules a debounced (1s) AST update on every
didOpen/didChange, and LanguageService.references is the only request that does
not await it -- documentSymbol, codeLens, documentLink and semanticTokensFull
all do. A references request issued inside that window races the recompile of
the file it asks about and can return an empty list, which is what the macOS CI
runner hit. Send a documentSymbol request for the same file first, which blocks
server-side until the pending update has been applied.

Also compare reference paths using the platform separator in the tests, since
relativePath is OS-native and the hardcoded forward slashes failed on Windows.
2026-08-08 18:58:46 +02:00
Michael Panchenko 27d7d0e0ec Merge pull request #1778 from shiersa/feat/deno-language-server
feat: add Deno language server support
2026-08-08 18:50:38 +02:00
Kobi Hikri 436fbe4ac3 ci: attach provenance and SBOM attestations to the published image (#1775) 2026-08-08 18:44:10 +02:00
Tyce Herrman 7acd78bde0 ci: exclude JDTLS workspaces from cache 2026-08-08 16:32:17 +02:00
shiersa 7a870878b8 feat: add Deno language server support
Add a Deno language server backed by the Deno CLI's built-in `deno lsp`,
serving TypeScript/JavaScript in Deno projects. Unlike the plain
typescript-language-server it understands Deno module resolution
(npm:/jsr:/https: imports) and the `Deno.*` global namespace.

It is experimental and must be selected explicitly via
`language_servers: [deno]`; it overlaps the TypeScript server on file
extensions, so it is not auto-detected. Requires the `deno` CLI on PATH.

Tests run in CI: the `deno` marker joins the other-langs batch, which now
installs Deno via denoland/setup-deno. Off-CI and wherever the CLI is
absent they skip through the central conftest guard, following the existing
pattern for toolchain-gated language servers. Hover is covered explicitly,
including hover on a `Deno.*` global, which is the capability this server
adds over the TypeScript one.
2026-08-06 23:21:42 +08:00
Dr. Dominik Jain df5ab4f607 Merge pull request #1781 from oraios/test-uv-python-compat
Test Python version compatibility in CI
2026-08-05 12:00:32 +02:00
Tyce Herrman c7dbe3bd11 ci: use Node 24 for Node-backed test batches 2026-08-01 16:14:38 +02:00
Dominik JainandClaude Opus 5 9237671ed0 CI: check uv sync and the health check on all supported Python versions
The test suite runs on a single interpreter, so nothing covered the rest of the range declared by
`requires-python` (>=3.11, <3.15). The new workflow installs the locked dependency set on each of 3.11-3.14
and then runs `project health-check` against the Python test repo, which catches both a dependency without a
wheel for a given version and any import or startup breakage. It is deliberately Linux-only, to stay within
the cap of 20 concurrent jobs, and deliberately does not cache the venv, since a restored venv would make the
`uv sync` under test a no-op.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-29 18:36:13 +02:00
xormania 04d328c748 CI: add timeout-minutes backstop to the pytest matrix job
The cpu matrix job had no timeout-minutes, so a hung job runs until
GitHub's default 6-hour limit. This is not hypothetical: on run
29064865197 (2026-07-10), the native (ubuntu-latest) job hung and ran
from 02:36:34 to 08:36:50 before GitHub cancelled it at exactly the
6-hour cap, blocking the PR's status the whole time and burning a
runner for 6 hours.

Healthy runs are far below the new limit: across the 8 most recent
successful runs of this workflow, the slowest job was 16 minutes
(niche on ubuntu-latest), with catch-all on windows-latest typically
11-14 minutes. 60 minutes leaves ~4x headroom for cache-cold runs
(language-server downloads, npm installs) while cutting the worst-case
hang from 6 hours to 1.

Part of the timeout-hardening discussed in #1695.
2026-07-14 23:15:06 -04:00
weiconghe 9825316c23 feat: add QML language support via Qt's qmlls (#1635) 2026-07-13 13:54:23 +02:00
Dominik Jain 0d8d5add9d Add instructions on submitting PRs 2026-06-29 12:20:36 +02:00
Michael Panchenko 4c7fa0e578 CI: caching of deps in the niche batch 2026-06-29 10:40:13 +02:00
Michael Panchenko 85e78db670 CI: remove now obsolete Dockerfile.maximal-based workflow 2026-06-29 10:13:33 +02:00
Michael Panchenko ebe7646764 CI: overcome rate-limits for GH downloads by providing access token
Also only run haskell tests on linux, toolchain takes 6 mins to install on macos
2026-06-28 22:38:48 +02:00
Michael Panchenko af1048901d CI: run niche batch only on ubuntu and document workflow logic 2026-06-28 21:44:55 +02:00
Michael Panchenko 4246ac0fe8 CI: remove unnecessary free disk space step 2026-06-28 19:22:34 +02:00
Michael Panchenko ad7f65ef13 CI: improve distribution of cases to batches (GH offers limited concurrency)
See https://docs.github.com/en/actions/reference/limits#job-concurrency-limits-for-github-hosted-runners
2026-06-28 19:04:31 +02:00
Michael Panchenko 4b7e02239a CI: re-adding ubuntu to OS matrix and niche languages with large toolkits 2026-06-28 18:28:36 +02:00
Michael Panchenko 0143479621 Tests: centralized test enabling logic, better parallelization in CI
Removing some heavy toolchains from windows/macos run (they will be tested only in the job based off the maximal docker image)
2026-06-28 17:47:36 +02:00
Michael Panchenko ae097c5c10 Remove perl and nix from CI tests (heavy toolchains) 2026-06-28 16:27:24 +02:00
Michael Panchenko 595cf19b87 Remove niche languages with heavy toolchains from execution in GH actions 2026-06-28 13:33:19 +02:00
Michael Panchenko f84452cdd3 CI: removed ubuntu from os matrix (covered by parallel tests)
Removed feature/parallel-ci-workflows as trigger for action
2026-06-16 15:36:59 +02:00
Tirth Patel 652a739826 Merge pull request #1421 from tirthpatel90/feature/parallel-ci-workflows
ci: implement parallel matrix architecture for segmented testing, including a separate docker image for CI that contains all dependencies
2026-06-15 12:09:36 +02:00
Dominik Jain 577931c8cf Revise issue template #1549 2026-06-07 17:53:11 +02:00
Dominik Jain ccc80e7253 Improve release mechanism (two stages: draft release + publish to PyPi upon conversion) 2026-05-11 22:18:47 +02:00
Данилов Роман fb9c822178 feat: add BSL (1C:Enterprise) language server support (#1430)
Required bumping of java to 21 in CI
2026-05-11 10:09:51 +02:00
Michael Panchenko 6882f2e1f0 CI: use a different zig install action 2026-05-06 19:52:47 +02:00
3122384822 feat: Add Angular, HTML, and SCSS / Sass language servers (#1439)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Pavlo Basanets <Pavlo_Basanets@epam.com>
2026-05-05 14:33:51 +02:00
Michael Panchenko da59a19c50 Fixes in various LS and in tests to accommodate diagnostics edge behavior
Also minor fix in go test expectations of symbol name
2026-04-29 23:52:26 +02:00
a-simeshin ae7f1065be ci: install libuv1-dev so R fs package builds on ubuntu-24.04 (#1420)
The `Install R language server` step started failing on the new
`ubuntu-24.04` runner image (`ubuntu-latest`) because the R `fs`
package falls back to a source build and its `configure` step calls
`pkg-config --exists libuv`, which fails with:

    Package libuv was not found in the pkg-config search path.
    fatal error: uv.h: No such file or directory
    ERROR: configuration failed for package 'fs'

That cascades through `pkgload` -> `roxygen2` -> `languageserver`,
making `test/solidlsp/r/test_r_basic.py` error out at setup with
`RuntimeError: R languageserver package is not installed`.

Verified locally on a clean `ubuntu:24.04` container: `libuv1-dev`
is not preinstalled but is available in the `noble` apt repo
(version `1.48.0-1.1build1`). Installing it makes
`pkg-config --exists libuv` succeed (`pkg-config --modversion libuv`
returns `1.48.0`), which is exactly what the `fs` configure script
needs.

Linux-only via `if: runner.os == 'Linux'` so the step is a no-op
on macOS and Windows runners (libuv is bundled differently there
and `fs` is delivered as a binary).

Refs: #1419
2026-04-26 16:28:31 +02:00
Michael Panchenko 3345153cce Clean up CodeQL workflow by removing languages
Removed unused languages from CodeQL workflow matrix.
2026-04-16 17:53:54 +02:00
Michael Panchenko 6cd9c6b4d6 CI: minor cleanup in workflows. build job in publish workflow was not needed 2026-04-15 19:30:53 +02:00
Michael Panchenko d8178fa2b4 CI: Removed persist-credentials: false from checkout action
For some reason, this causes the haxe LS download to fail.
We might want to investigate this in the future
2026-04-15 00:13:48 +02:00
Michael Panchenko 94bd2e52b6 CI, minor: remove junie workflow, use persist-credentials: false on checkout action 2026-04-14 18:30:43 +02:00
Michael Panchenko adad335d76 Removed concurrency handling for docs workflow 2026-04-14 16:06:22 +02:00
Michael Panchenko 0c664b365c CI: remove doc-build from pytest workflow, instead run the docs job on PR
Docs upload will only happen on main
2026-04-14 00:05:46 +02:00
Michael Panchenko 1464fee875 CI: run doc-build on each PR 2026-04-13 14:21:53 +02:00
Michael Panchenko 812b6e066a Merge branch 'main' into v1.1-develop
# Conflicts:
#	CHANGELOG.md
2026-04-11 15:27:38 +02:00
Tobias Jansing addccfa41f Improve Haxe LS: configurable version/haxePath, top-level imports, CI docs, regression test 2026-04-10 17:49:48 +02:00
Tobias Jansing e9b6c0ff85 Add Haxe language support via vshaxe/haxe-language-server
Includes full setup with ls provider, tests, docs, etc.
2026-04-10 15:07:23 +02:00
Dominik Jain 2aa8cf4cae Change release mechanism
Release creation and publishing to PyPI is now triggered by push of tag v*
2026-04-08 17:33:27 +02:00
Michael Panchenko d30cdf8474 Fix symbol name resolution in selected LS (#1247)
Adds tests for name resolution for each language and fixes the name resolution where tests have failed.

Also:

Extends python tests to cover ty
Extends skipping conditions for several LS (but only when not in CI)
Better test output in CI
Removed a wrong python test (started failing for ty and should have failed for pyright too)
2026-04-01 16:29:00 +02:00
Sergey Belov ff1b9057c0 Add limited Ansible language server support (#1170)
References and definition not working yet. Since ansible resolves same files as yaml LS, we will need to add disambiguation later.

Work in progress, improvements on the language server itself are being worked on, ansible support in Serena will be extended accordingly in the future.
2026-03-16 22:40:58 +01:00
Dan Rosen 09c007d1e1 Add Lean 4 language support (#1137) 2026-03-12 11:32:31 +01:00