Skip to content

Commit de24070

Browse files
committed
Merge branch 'master' into tests/rpy2
2 parents 8c69f2e + a1aedf7 commit de24070

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+2691
-620
lines changed

.github/ISSUE_TEMPLATE/feature_request.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ about: Help us build future features
66
<!--
77
Welcome! Before creating a new issue:
88
* Search for relevant issues
9-
* Look at ROADMAP.md to make sure we don't already want the same thing
9+
* Look at docs/Roadmap.ipynb to make sure we don't already want the same thing
1010
* Follow the issue reporting guidelines:
1111
https://jupyterlab.readthedocs.io/en/latest/getting_started/issue.html
1212
-->

.github/ISSUE_TEMPLATE/intent_to_implement.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ about: Announce that you're going to do some work
66
<!--
77
Welcome! Before creating a new issue:
88
* Search for relevant issues
9-
* Look at ROADMAP.md to make sure we don't already want the same thing
9+
* Look at docs/Roadmap.ipynb to make sure we don't already want the same thing
1010
* Follow the issue reporting guidelines:
1111
https://jupyterlab.readthedocs.io/en/latest/getting_started/issue.html
1212
-->

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,4 +114,5 @@ junit.xml
114114
coverage/
115115
.vscode/
116116
_schema.d.ts
117+
_build
117118
.virtual_documents/

.prettierignore

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,33 @@
1-
node_modules
2-
**/node_modules
3-
**/lib
1+
.eggs
2+
.mypy_cache
3+
.pytest_cache
4+
.yarn-packages
5+
**/.ipynb_checkpoints
6+
**/*.egg-info
47
**/build
58
**/dist
9+
**/lib
10+
**/node_modules
11+
**/package.json
612
**/static
7-
jupyterlab/schemas
8-
jupyterlab/themes
9-
jupyterlab/geckodriver
10-
jupyterlab/staging/yarn.js
11-
jupyterlab/staging/index.js
13+
atest
14+
coverage
1215
dev_mode/index.js
1316
dev_mode/schemas
1417
dev_mode/static
1518
dev_mode/themes
1619
dev_mode/workspaces
17-
examples/app/build
18-
examples/app/themes
19-
examples/app/schemas
20-
tests/**/coverage
2120
docs/_build
21+
docs/_templates
2222
docs/api
23-
**/package.json
24-
.eggs
2523
envs
26-
.mypy_cache
27-
.pytest_cache
28-
**/.ipynb_checkpoints
29-
**/*.egg-info
30-
.yarn-packages
31-
atest
32-
coverage
24+
examples/app/build
25+
examples/app/schemas
26+
examples/app/themes
27+
jupyterlab/geckodriver
28+
jupyterlab/schemas
29+
jupyterlab/staging/index.js
30+
jupyterlab/staging/yarn.js
31+
jupyterlab/themes
32+
node_modules
33+
tests/**/coverage

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ matrix:
1111
- python: '3.5'
1212
- python: '3.6'
1313
- python: '3.7'
14-
- python: '3.8-dev'
14+
- python: '3.8'
1515
- os: osx
1616
osx_image: xcode11
1717
language: shell

CHANGELOG.md

Lines changed: 33 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
# CHANGELOG
1+
## CHANGELOG
22

3-
## `@krassowski/jupyterlab-lsp 0.8.0` (unreleased)
3+
### `@krassowski/jupyterlab-lsp 0.8.0` (unreleased)
44

55
- features
66

7-
- opens a maximum of one WebSocket per language server ([#165][])
7+
- opens a maximum of one WebSocket per language server ([#165][], [#199][])
88
- lazy-loads language server protocol machinery ([#165][])
99
- waits much longer for slow-starting language servers ([#165][])
1010
- cleans up documents, handlers, events, and signals more aggressively ([#165][])
@@ -14,7 +14,13 @@
1414
[#206](https://github.com/krassowski/jupyterlab-lsp/pull/206)
1515
)
1616

17-
## `lsp-ws-connection 0.4.0` (unreleased)
17+
- bug fixes
18+
19+
- reports files are open only after installing all handlers to avoid missing messages ([#201][])
20+
21+
[#201]: https://github.com/krassowski/jupyterlab-lsp/issues/201
22+
23+
### `lsp-ws-connection 0.4.0` (unreleased)
1824

1925
- breaking changes
2026

@@ -25,14 +31,27 @@
2531

2632
[#165]: https://github.com/krassowski/jupyterlab-lsp/pull/165
2733

28-
## `jupyter-lsp 0.7.0`
34+
### `jupyter-lsp 0.8.0` (unreleased)
35+
36+
- breaking changes
37+
38+
- websockets are now serviced by implementation key, rather than language
39+
under `lsp/ws/<server key>` ([#199][])
40+
- introduces schema version `2`, reporting status by server at `lsp/status` ([#199][])
41+
42+
- bugfixes:
43+
- handles language server reading/writing and shadow file operations in threads ([#199][])
44+
45+
[#199]: https://github.com/krassowski/jupyterlab-lsp/pull/199
46+
47+
### `jupyter-lsp 0.7.0`
2948

3049
- bugfixes
3150
- didSave no longer causes unwanted messages in logs (
3251
[#187](https://github.com/krassowski/jupyterlab-lsp/pull/187)
3352
)
3453

35-
## `@krassowski/jupyterlab-lsp 0.7.1`
54+
### `@krassowski/jupyterlab-lsp 0.7.1`
3655

3756
- features
3857

@@ -55,7 +74,7 @@
5574
[#164](https://github.com/krassowski/jupyterlab-lsp/pull/164)
5675
)
5776

58-
## `lsp-ws-connection 0.3.1`
77+
### `lsp-ws-connection 0.3.1`
5978

6079
- added `sendSaved()` method (textDocument/didSave) (
6180
[#147](https://github.com/krassowski/jupyterlab-lsp/pull/147)
@@ -64,7 +83,7 @@
6483
[#140](https://github.com/krassowski/jupyterlab-lsp/pull/140)
6584
)
6685

67-
## `@krassowski/jupyterlab-lsp 0.7.0`
86+
### `@krassowski/jupyterlab-lsp 0.7.0`
6887

6988
- features
7089

@@ -131,7 +150,7 @@
131150
[#140](https://github.com/krassowski/jupyterlab-lsp/pull/140)
132151
)
133152

134-
## `lsp-ws-connection 0.3.0`
153+
### `lsp-ws-connection 0.3.0`
135154

136155
- infrastructure
137156
- brought into monorepo [#107](https://github.com/krassowski/jupyterlab-lsp/pull/107)
@@ -144,7 +163,7 @@
144163
- added initialization checks before executing sendChange to comply
145164
with LSP specs [#115](https://github.com/krassowski/jupyterlab-lsp/pull/115)
146165

147-
## `jupyter-lsp 0.7.0b0`
166+
### `jupyter-lsp 0.7.0b0`
148167

149168
- features
150169
- adds a language server status endpoint (
@@ -158,26 +177,26 @@
158177
[#100](https://github.com/krassowski/jupyterlab-lsp/pulls/100)
159178
)
160179

161-
## `@krassowski/jupyterlab-lsp 0.6.1`
180+
### `@krassowski/jupyterlab-lsp 0.6.1`
162181

163182
- features
164183
- adds an indicator to the statusbar
184+
- and many other improvements, see the [release notes](https://github.com/krassowski/jupyterlab-lsp/releases/tag/v0.6.1)
165185
- dependencies
166186
- removes unused npm dependencies
167187

168-
## `@krassowski/jupyterlab-lsp 0.6.0`
188+
### `@krassowski/jupyterlab-lsp 0.6.0`
169189

170190
- features
171191
- allows "rename" action in file editor
172-
- and many other improvements, see the [release notes](https://github.com/krassowski/jupyterlab-lsp/releases/tag/v0.6.0)
173192
- bugfixes
174193
- handles some non-standard diagnostic responses
175194
- testing
176195
- adds browser-based testing for file editor
177196
- dependencies
178197
- requires `jupyter-lsp`
179198

180-
## `jupyter-lsp 0.6.0b0`
199+
### `jupyter-lsp 0.6.0b0`
181200

182201
- features
183202
- starts language servers on demand

CONTRIBUTING.md

Lines changed: 57 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# Contribute to jupyterlab-lsp and jupyter-lsp :heart:
1+
## Contribute to jupyterlab-lsp and jupyter-lsp :heart:
22

3-
`jupyter-lsp` and `jupyterlab-lsp` are [open source](./LICENSE) software, and
3+
`jupyter-lsp` and `jupyterlab-lsp` are [open source][license] software, and
44
all contributions conforming to good sense, good taste, and the
55
[Jupyter Code of Conduct][code-of-conduct] are welcome, and will be reviewed
66
by the contributors, time-permitting.
@@ -13,16 +13,19 @@ You can contribute to the project through:
1313
and its various distributions
1414
- these are great first issues, as you might not need to know any python or
1515
javascript
16-
- proposing parts of the architecture that can be [extended](./docs/EXTENDING.md)
16+
- proposing parts of the architecture that can be [extended][extending]
1717
- improving [documentation](#Documentation)
18-
- tackling Big Issues from the [future roadmap](./docs/ROADMAP.md)
18+
- tackling Big Issues from the [future roadmap][roadmap]
1919
- improving [testing](#Testing)
2020
- reviewing pull requests
2121

22+
[license]: https://github.com/krassowski/jupyterlab-lsp/blob/master/LICENSE
23+
[extending]: ./docs/Extending.ipynb
24+
[roadmap]: ./docs/Roadmap.ipynb
2225
[jupyterlab-lsp]: https://github.com/krassowski/jupyterlab-lsp.git
2326
[code-of-conduct]: https://github.com/jupyter/governance/blob/master/conduct/code_of_conduct.md
2427

25-
## Set up the environment
28+
### Set up the environment
2629

2730
Development requires:
2831

@@ -41,7 +44,7 @@ pip install -r requirements/dev.txt # in a virtualenv, probably
4144
# ... and install nodejs, somehow
4245
```
4346

44-
### The Easy Way
47+
#### The Easy Way
4548

4649
Once your environment is created and activated, on Linux/OSX you can run:
4750

@@ -51,7 +54,7 @@ bash postBuild
5154

5255
This performs all of the basic setup steps, and is used for the binder demo.
5356

54-
### The Hard Way
57+
#### The Hard Way
5558

5659
Install `jupyter-lsp` from source in your virtual environment:
5760

@@ -74,7 +77,7 @@ jlpm build
7477
jlpm lab:link
7578
```
7679

77-
## Frontend Development
80+
### Frontend Development
7881

7982
To rebuild the schemas, packages, and the JupyterLab app:
8083

@@ -110,15 +113,44 @@ To run tests matching specific phrase, forward `-t` argument over yarn and lerna
110113
jlpm test -- -- -t match_phrase
111114
```
112115

113-
## Server Development
116+
### Server Development
114117

115-
### Testing `jupyter-lsp`
118+
#### Testing `jupyter-lsp`
116119

117120
```bash
118121
python scripts/utest.py
119122
```
120123

121-
## Browser-based Acceptance Tests
124+
### Documentation
125+
126+
To build the documentation:
127+
128+
```bash
129+
python scripts/docs.py
130+
```
131+
132+
To watch documentation sources and build continuously:
133+
134+
```bash
135+
python scripts/docs.py --watch
136+
```
137+
138+
To check internal links in the docs after building:
139+
140+
```bash
141+
python scripts/docs.py --check --local-only
142+
```
143+
144+
To check internal _and_ external links in the docs after building:
145+
146+
```bash
147+
python scripts/docs.py --check
148+
```
149+
150+
> Note: you may get spurious failures due to rate limiting, especially in CI,
151+
> but it's good to test locally
152+
153+
### Browser-based Acceptance Tests
122154

123155
The browser tests will launch JupyterLab on a random port and exercise the
124156
Language Server features with [Robot Framework][] and [SeleniumLibrary][]. It
@@ -217,7 +249,7 @@ python scripts/combine.py
217249

218250
- If you see the following error message:
219251

220-
```
252+
```python
221253
Parent suite setup failed:
222254
TypeError: expected str, bytes or os.PathLike object, not NoneType
223255
```
@@ -226,7 +258,9 @@ python scripts/combine.py
226258
in the search path).
227259

228260
- If a test suite for a specific language fails it may indicate that you have no
229-
appropriate server language installed (see [LANGUAGESERVERS.md](./LANGUAGESERVERS.md))
261+
appropriate server language installed (see [LANGUAGESERVERS][])
262+
263+
[languageservers]: ./docs/Language%20Servers.ipynb
230264

231265
- If you are seeing errors like `Element is blocked by .jp-Dialog`, caused by
232266
the JupyterLab _Build suggested_ dialog, (likely if you have been using
@@ -257,18 +291,6 @@ You can clean up your code, and check for using the project's style guide with:
257291
python scripts/lint.py
258292
```
259293

260-
> TBD
261-
>
262-
> - hypothesis
263-
> - mypy
264-
265-
## Documentation
266-
267-
> TBD
268-
>
269-
> - sphinx
270-
> - one of the sphinx/ipynb connectors
271-
272294
### Specs
273295

274296
It is convenient to collect common patterns for connecting to installed language
@@ -279,8 +301,10 @@ server it will always win vs an auto-configured one.
279301

280302
#### Writing a spec
281303

282-
> See the built-in [specs](./py_src/jupyter_lsp/specs) for implementations and some
283-
> [helpers](./py_src/jupyter_lsp/specs/utils.py).
304+
> See the built-in [specs][] for implementations and some [helpers][].
305+
306+
[specs]: https://github.com/krassowski/jupyterlab-lsp/tree/master/py_src/jupyter_lsp/specs
307+
[helpers]: https://github.com/krassowski/jupyterlab-lsp/blob/master/py_src/jupyter_lsp/specs/utils.py
284308

285309
A spec is a python function that accepts a single argument, the
286310
`LanguageServerManager`, and returns a dictionary of the form:
@@ -298,8 +322,9 @@ A spec is a python function that accepts a single argument, the
298322
The absolute minimum listing requires `argv` (a list of shell tokens to launch
299323
the server) and `languages` (which languages to respond to), but many number of
300324
other options to enrich the user experience are available in the
301-
[schema](./py_src/jupyter_lsp/schema/schema.json) and are exercised by the
302-
current `entry_points`-based [specs]().
325+
[schema][] and are exercised by the current `entry_points`-based [specs][].
326+
327+
[schema]: https://github.com/krassowski/jupyterlab-lsp/blob/master/py_src/jupyter_lsp/schema/schema.json
303328

304329
The spec should only be advertised if the command _could actually_ be run:
305330

@@ -316,7 +341,9 @@ The spec should only be advertised if the command _could actually_ be run:
316341
guess at where a user's `nodejs` might be found
317342
- some language servers are hard to start purely from the command line
318343
- use a helper script to encapsulate some complexity.
319-
- See the [r spec](./py_src/jupyter_lsp/specs/r_languageserver.py) for an example
344+
- See the [r spec][] for an example
345+
346+
[r spec]: https://github.com/krassowski/jupyterlab-lsp/blob/master/py_src/jupyter_lsp/specs/r_languageserver.py
320347

321348
##### Example: making a pip-installable `cool-language-server` spec
322349

LANGUAGESERVERS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
This file has moved to [docs/LANGUAGESERVERS.md](./docs/LANGUAGESERVERS.md).
1+
This file has moved to [docs/LANGUAGESERVERS.md](./docs/Configuring.ipynb).

0 commit comments

Comments
 (0)