diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a085114a..177762c9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -11,18 +11,11 @@ The following types of contributions can be submitted directly via pull requests For other changes, please open an issue first to discuss your ideas with the maintainers. -## Developer Environment Setup +### Adding Support for a New Language Server -You can have a local setup via `uv` or a docker interpreter-based setup. -The repository is also configured to seamlessly work within a GitHub Codespace. See the instructions -for the various setup scenarios below. +See the corresponding [memory](.serena/memories/adding_new_language_support_guide.md). -Independently of how the setup was done, the virtual environment can be -created and activated via `uv` (see below), and the various tasks like formatting, testing, and documentation building -can be executed using `poe`. For example, `poe format` will format the code, including the -notebooks. Just run `poe` to see the available commands. - -### Python (uv) setup +## Python Environment Setup You can install a virtual environment with the required as follows @@ -30,15 +23,18 @@ You can install a virtual environment with the required as follows 2. Activate the environment: * On Linux/Unix/macOS or Windows with Git Bash: `source .venv/bin/activate` * On Windows outside of Git Bash: `.venv\Scripts\activate.bat` (in cmd/ps) or `source .venv/Scripts/activate` (in git-bash) -3. Install the required packages with all extras: `uv pip install --all-extras -r pyproject.toml -e .` +3. Install the required packages with all extras: `uv sync --extra dev` -## Running Tools Locally +## Poe Tasks + +We use poe to execute development tasks: + +- `poe format` - run code auto-formatters +- `poe type-check` - run type checkers + +## Testing Tool Executions The Serena tools (and in fact all Serena code) can be executed without an LLM, and also without any MCP specifics (though you can use the mcp inspector, if you want). -An example script for running tools is provided in [scripts/demo_run_tools.py](scripts/demo_run_tools.py). - -## Adding a New Supported Language - -See the corresponding [memory](.serena/memories/adding_new_language_support_guide.md). \ No newline at end of file +An example script for running tools is provided in [scripts/demo_run_tools.py](scripts/demo_run_tools.py). \ No newline at end of file