Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add contributing guide to setup dev environment #470

Merged
merged 5 commits into from
Mar 24, 2024
Merged
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Setup the environment

1. Clone the repo: `git clone [email protected]:python-lsp/python-lsp-server.git`
2. Create the virtual environment: `python3 -m venv .venv`
staticf0x marked this conversation as resolved.
Show resolved Hide resolved
3. Activate: `source .venv/bin/activate`
4. Install an editable installation: `pip3 install -e .`
staticf0x marked this conversation as resolved.
Show resolved Hide resolved
- This will ensure you'll see your edits immediately without reinstalling the project
5. Configure your editor to point the pylsp executable to the one in `.venv`

## Trying out if it works

Go to file `pylsp/python_lsp.py`, function `start_io_lang_server`,
and on the first line of the function, add some logging:

```py
log.info("It works!")
```

Save the file, restart the LSP server and you should see the log line:

```
2023-10-12 16:46:38,320 CEST - INFO - pylsp._utils - It works!
```

Now the project is setup in a way you can quickly iterate change you want to add.

# Running tests

1. Install runtime dependencies: `pip3 install .[all]`
2. Install test dependencies: `pip3 install .[test]`
staticf0x marked this conversation as resolved.
Show resolved Hide resolved
3. Run `pytest`: `pytest -v`

## Useful pytest options

- To run a specific test file, use `pytest test/test_utils.py`
- To run a specific test function within a test file,
use `pytest test/test_utils.py::test_debounce`
- To run tests matching a certain expression, use `pytest -k format`
- To increase verbosity of pytest, use `pytest -v` or `pytest -vv`
- To enter a debugger on failed tests, use `pytest --pdb`
Loading