- Add check in conftest.py to disable PHP_PHPACTOR tests when php binary
is not found
- Refactor test_php_basic.py to use dynamic PHP server list based on
availability
- Ensure tests for PHP_PHPACTOR are only parametrized if PHP is present
Remove serena_config storage from RegisteredProject; instead accept it
as an explicit parameter in get_project_instance() for cleaner separation
of concerns.
Replace `global_ignored_paths: Sequence[str]` with `serena_config: SerenaConfig | None`
in Project.__init__ and propagate through RegisteredProject for more general and
future-proof interfaces.
Docker build fails when local .venv directory exists because:
1. COPY . /workspaces/serena/ copies .venv into container
2. RUN uv venv fails with 'virtual environment already exists'
This change prevents the issue by excluding Python development artifacts:
- .venv (virtual environment)
- __pycache__ (Python bytecode cache)
- *.pyc (compiled Python files)
- .pytest_cache (test cache)
These files are not needed for Docker builds as the container creates
its own clean environment.
Co-authored-by: Cursor <cursoragent@cursor.com>
set_modes() applied requested modes directly to self._active_modes,
then called _update_active_modes_and_tools() which recreates
_active_modes from scratch (global config -> project config -> CLI
overrides), discarding the change.
Fix: store the requested modes into self._mode_overrides so they
survive the rebuild and take highest priority, matching the behavior
of CLI --mode flags.
Also adds test coverage for set_modes() which was previously untested.
Bug was introduced in commit 40a3075 on Jan 26, 2026.
Consolidate TestPhpLanguageServer and TestPhpPhpactorLanguageServer
into a single TestPhpLanguageServers class. Both Language.PHP and
Language.PHP_PHPACTOR are now parametrized together, with conditional
branching where the two language servers differ in behavior.
Addresses review comment on PR #1002.
Remove the unnecessary php_phpactor -> php symlink. Instead, add a
_LANGUAGE_REPO_ALIASES mapping in conftest.py so that variant language
servers (PHP_PHPACTOR, PYTHON_JEDI, RUBY_SOLARGRAPH) resolve to their
base language's test repository without needing filesystem symlinks.
Addresses review comment on PR #1002.
Check that the installed PHP version is >= 8.1 before proceeding with
Phpactor setup. Raises RuntimeError with a clear message if the version
is too old, and logs a warning if the version string cannot be parsed.
Addresses review comment on PR #1002.