More details: https://github.com/openlawlibrary/pygls/releases/tag/v2.0.0a2
Bug Fixes
- Use `BinaryIO` not `TextIO` in `start_io()`
- Reduce log noise generated by unimplemented methods
- Return ``None`` for non ``file:`` URIs
- Cancel pending client requests when server process exits
- Wait for the server process to exit
- Don't call sys.exit
CI
- Run the new pyodide test suite in CI
- Bump action versions
Documentation
- Add RELEASING.md doc
- Update migration guide to cover thread pool changes
- Remove Strata server implementation
- Update v2 migration guide
- Update migration guide
- Fix intersphinx reference
- Add guide on running the pyodide test suite
- Restructure the documentation... again
- Add guide on running a pyodide server on nodejs
- Add guide on running a pyodide server in the browser
Features
- Add `start_tcp` method to `JsonRPCClient`
- Add `pygls.cli.start_server`
- Add `start_ws` method to pygls' `LangugageClient`
- Fallback to a synchronous main loop on WASM platforms
Miscellaneous Tasks
- Update CHANGELOG.md
- Update CONTRIBUTORS.md
- Properly indent RELEASING.md
- Fix task name
- Bump minimum required websockets version
- Update to lsprotocol-2024.0.0b1
- Delete pyodide specific code
Refactor
- Remove `multiprocessing.pool.ThreadPool`
- Make some methods public
- Convert `aio_readline` function to a `run_async` method
- Use high-level asyncio API in `start_io`
- Use new `pygls.io_` module for pygls' client
- Use high-level asyncio API for `server.start_tcp`
- Use high-level asyncio API for `server.start_ws`
- Stop inheriting from `asyncio.Protocol`
- Rename transport to writer
Testing
- Add end-to-end test covering threaded handlers
- Simplify coverage reporting
- Add the option to run the end-to-end tests over TCP
- Skip test on Windows for now
- Run end-to-end tests over WebSockets
- Include values for runtime and transport in pytest's header
- Update test cases to align with event loop changes
- Delete the old pyodide test suite
- Add option to run end-to-end tests under pyodide
Build
- V2.0.0a2