This changelog is deprecated. Here is where you can find details about the latest updates to this extension:
- Highlighted features for the latest release are described in the VS Code release notes, under the "Contributions to extensions" section: https://code.visualstudio.com/updates
- All issues and code changes can be found by searching our Github repo under the latest milestone. Example from November 2022
- Fixed vulnerability described in CVE-2023-36018
- If a display name is specified for a remote jupyte server display that name instead of (Remote) in the kernel picker. (#11381)
- Display an error message (with instructions to resolve the issue) in the cell output when attempting to run a cell against a kernel from an untrusted location. (#11622)
- Make insiders kernel picker now a two step selection process that picks a source and a controller. (#11642)
- Update kernel source command to use newly available NotebookDocument context from kernel picker command source. (#11759)
- Outputs containing Plotly plots generated with the
notebook
renderer are now displayed even after re-opening this notebook in a new install of VS Code. (#6404) - Restore the command to import a notebook from the explorer context menu. (#9252)
- Optimize the way stream outputs are handled, to support large output streams without crashing VS Code. (#11031)
- Fully remove message asking users to try out pre-release Jupyter if they are on Insiders. (#11477)
- Ensure kernel messages are handled by a cell even after cell execution completes. (#11526)
- A restored Interactive Window will be re-used for code cells from the same python file. (#11574)
- In the insiders kernel picker, don't prepopulate the server display name field with the URI. (#11643)
- Update the "Install Python" kernel command to use the python api directly and remove controller loaded context. (#11647)
- Adopt the new Python Extension API used to enumerate Python environments, resulting in improvements such as faster listing of Kernels in the Kernel Picker. (#7583)
- Reduce the amount of work done for each code lens creation to help performance. (#11433)
- Ship renderer preload scripts in the Notebook Renderer Extension. (#11671)
- Initialize the environment variable
PYDEVD_IPYTHON_COMPATIBLE_DEBUGGING
at the point of spawning the Python kernel. (#11682)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Display an error message (with instructions to resolve the issue) in the cell output when attempting to run a cell against a kernel from an untrusted location. (#11622)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Fixed vulnerability described in CVE-2022-41083
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Fixed vulnerability described in CVE-2022-41083
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Add code folding regions for
# %%
cells within python files. (#1527) - Deleting a cell in the interactive window is now an undo-able operation. (#7756)
- Add cell tag and slideshow editing support. (#1121)
- The cell scrolled to will be selected after using the go to cell code lens. (#7687)
- Make sure the "Install Python" and "Install Python Extension" commands only show up after we have loaded our controllers. (#10960)
- Ensure the cache of kernels is not updated when kernel discovery ends midway. (#11240)
- Don't show unclickable links when failing to connect to a jupyter server in the web extension. (#11285)
- Removed delayed scrolling reveal in the interactive window now that core does auto-scrolling. (#7686)
- Ignore errors when disposing a kernel. (#11304)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Display a prompt when Python environment used to start Jupyter cannot, providing the user with the ability to select a Python Environment. (#1110)
- Start and maintain a single Python process for interrupting Python kernels (one process per session). (#9909)
- Don't save an incorrect server password in our cached password list, and keep displaying the server input prompt after a failed password attempt. (#10300)
- Pass
--user
flag when installing dependencies into aGlobal
Python environment such as the one installed from Windows Store. (#10478) - Handle situations when the connection to a remote Kernel is lost after executing a cell. This also fixes the issue Unable to interrupt a kernel when the remote kernel connection is lost #9828. (#10568)
- Ensure cells in Interactive Window are executed in correct order when executing from both code lenses and the input box. (#10671)
- Do not append/prepend path values unnecessarily. (#10906)
- Ensure user variables overriding
builtins
do not break the dataframe viewer. (#10941) - Remove duplicate
Cancel
button from modal dialog for interrupting kernels. (#10999) - Kill all of the child processes spawned by a local kernel when the kernel is shutdown. (#11018)
- Initialize the environment variable
PYDEVD_IPYTHON_COMPATIBLE_DEBUGGING
for thePython
debugger when debuggingInteractive Window
andNotebooks
. This also addresses the following issues 10600, 10106 (#11033) - Ensure users can connect to
Azure ML Jupyter Server
. (#11084)
- Stop creating hidden terminals to look for Jupyter Notebook application. (#10935)
- Fix the test "Export a basic notebook document with nbconvert" CI failure. (#11190)
- Fix the macOS smoke test which is failing every time on CI. (#11193)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Ensure users can connect to
Azure ML Jupyter Server
. (#11084)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- DataFrame viewer enabled on the web. (#9665)
- The Variable Viewer now shows strings wrapped in single quotes. (#10225)
- Rework kernel selection to be in either 'remote' mode or 'local' mode to avoid confusion about what kernels should be displayed. (#10435)
- Added a more info button to the kernel depedency prompt to give more information about ipykernel. (#10658)
- Use the Python Extension install python command versus just pointing at python.org. (#10696)
- Only show the "kernel may need to be restarted" message when installing Python if there are active kernels. (#10697)
- Added a setting 'jupyter.showOnlyOneTypeOfKernel' to allow trying out the new kernel picker UI. (#10782)
- Don't show the Python getting started page when installing via the Jupyter kernel picker command. (#10793)
- Fixes related to loading of environment variables from
.env
files (#10359, #9774, #10392, #10755). - Load environment variables for Python kernels from file defined in the setting
python.envFile
(#9691). - Fixes problem where clipboard permissions are required in order to enter a Jupyter server URL. (only applies when 'jupyter.showOnlyOneTypeOfKernel' is enabled) (#10191)
- Fix problem of determining whether or not in 'local' or 'remote' mode for a Jupyter connection. (#10363)
- Don't prompt to install python extension on just trying to check the packages that are in an interpreter. (#10615)
- Ensure the extension loads in the
Safari
browser. (#10621) - Fixed localization on
package.json
sections:capabilities
,contributes.walkthroughs
,contributes.commands
andcontributes.debuggers
. As well as the localizations on the exceptions thrown if the extension fails to activate and the localization on the messages for deprecated features. (#10624) - Fix language of picking a jupyter server when in the web extension. (#10672)
- Change wording on 'Connect to Your Own Jupyter Server' to 'Connect to a Jupyter Server'. (#10675)
- Fix error that pops up when trying to restart during debugging a notebook. (#10741)
- Stop waiting for kernel to start (or be idle) when switching kernels. (#10795)
- Display messages from background threads in cell outputs. (#10864)
- Fixes problem with starting a kernel when ZMQ wasn't supported on Windows. (#10940)
- Use modal dialogs in places where user input is necessary as part of a workflow. (#10436)
- Load static resources for IPyWidgets from known directories as documented here. (#10722)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Stop incorrectly looking at .python property in the python debug configuration. (#10789)
- Temporarily disable localising certain phrases that would break some of the extension features while we investigate the underlying reason. (#10752)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Ensure static resources required by IPyWidgets get downloaded appropriately in the Web and when using local or remote Jupyter Servers. (#8834)
- Enabled export Interactive Window for web. (#10291)
- Enabled expand and collapse Interactive Window cells in Web. (#10524)
- For the new "Install Python Extension" command only show the modal dialog box if triggered via a running document. (#10548)
- Change the logic to show our "Install Python (Extension)" commands in the kernel picker more often. (#10583)
- Support displaying of complex outputs (such as Plots) in the Output Widget. (#9503)
- Fixes to pick the correct python version when opening in the DataViewer from python debug menu. (#10007)
- Ensure IPyWidgets get loaded correctly when loading resources from the CDN, Remote Jupyter or local the Python Environment. (#10060)
- Fix problem with variable view not refreshing when switching between tabs. (#10241)
- Fix error link clicking in the web version of the extension. (#10287)
- Fixed loading of scripts related to custom IPyWidgets. (#10319)
- Enable
IPyWidgets
for Kernels other thanPython
. (#10330) - Fix inconsistent link in README. Thanks @ChaseKnowlden (#10396)
- Fix problem with continuous progress bar in the 'Jupyter:Variables' window by making the jupyter extension load when this view is visible. (#10413)
- Fix problem with widgets being rendered offscreen and not appearing when scrolling. (#10485)
- Replace 'Python 3' dummy kernel with commands to install the python extension or install python. (#10513)
- Ensure we always import scripts required to load DataFrame and variable information. (#10516)
- Ensure we can run Latex from within a Interactive Window cell (with a cell marker). (#10531)
- Remove extra button from Restart Kernel modal. (Thanks kilacoda) (#10539)
- Add support for loading of widget scripts found within the global Jupyter data directory. (#8241)
- Set a longer timeout so that if we fail to install the Python extension for some reason we don't just wait forever. (#10617)
- Expose
jQuery
in Notebook Cell outputs for IPyWidgets. (#10660)
- Removed deprecated 'change directory on import/export' option (#8752)
- Remove usage of console.log in renderers. (#10202)
- Fix 'Special Token Check' test. (#10565)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Document context keys for keybinding 'when' clauses. (#6573)
- Alert boxes of the form
<div style="alert alert-danger">
are now styled as colored boxes, to match how they are in Jupyter. (thanks Eric Wieser) (#8399) - Enabled the Interactive Window in web. (#9717)
- Enabled the Variables Viewer in web. (#10154) However, neither the DataFrame viewer nor the Plot viewer are enabled in this release. (Tracking: #9665)
- Validate remote Jupyter Server connections when attempting to start a kernel. (#8043)
- Fix to provide autocomplete inside of quoted strings. This fix also enabled a setting to allow the use of Jedi for completions in a kernel, but should be used with caution. Jedi can hang the kernel preventing exeuction from happening. (#8983)
- Clear locally saved connection info when we run the server clear command. (#8956)
- Ensure the format progress message disappears once export has completed. (#9112)
- Notify failures in connection to remote Jupyter Server only when connecting to those kernels. (#9167)
- Show the export commands for non-python notebooks. (#9571)
- Makes progress indicators appear for web extension when connecting to kernels. (#9784)
- Support reopening a notebook in web browser and having it remember its original kernel. (#9826)
- Allow usage of the jupyter API in stable builds so Juptyer Power Toys can use it. (#9868)
- Support notebook debugging in the web extension. (#9973)
- Support widgets that can be downloaded from a CDN in the web extension. Non CDN widgets will come later. (#9984)
- Add editor context key support into the web extension. (#9990)
- Fix problem with
PYTHONNOUSERSITE
being set even when not desired. There's a setting now that will set this environment variable on kernel launch if it's needed:jupyter.excludeUserSitePackages
. (#9995) - Don't show the python extension install ui when auto starting kernels. (#10011)
- Support standard ipywidgets in the web extension. (#10051)
- When connecting to a remote Jupyter server with a password you will not have to input the server URL twice to have it apply anymore. (#10103)
- Fix clicking on links for error callstacks to open the same original python file instead of a new one. (#10149)
- Gracefully handle failures when attempting to convert ANSI codes to HTML in large error output within the errors renderer. (#10172)
- Fix 'go to source' to work again in the interactive window. (#10205)
- Fixes run by line not stopping on any lines. (#10207)
- Fix Jupyter: Variables hiding when closing a notebook or an interactive window. (#10209)
- Fix error renderer to return tracebacks. (#10239)
- Fix problem with interactive window links being off by one. (#10283)
- Add test to make sure if the active interpreter is switched, the interactive window switches to that interpreter. (#5478)
- Add tests to verify notebook metadata is in a notebook. (#5601)
- Add telemetry test to verify we output a specific set for different operations. (#6883)
- Added a Performance test to test and ensure expected performance characteristics. (#7437)
- Don't skip code completions when the server is busy. Instead let it timeout if the server doesn't come back. (#9797)
- Add test for remote https jupyter servers. (#9844)
- Change document to notebook off of NotebookEditor class due to API change. (#10083)
- Dataframe tests were failing when Pylance was updated to return the 'Name' column for a dataframe. (#10259)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Fix regression in finding the python interpreter for viewing values in the debugger. (#9928)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Ensure widgets using IPyWidgets 8.0 get rendered correctly. (#8552)
- Display a meaningful message in the cell that last ran when the kernel crashed. (#9375)
- Add support for connecting to remote jupyter kernels from the web extension. The server needs to start with '--NotebookApp.alloworigin=_baseurl' in order to connect from a webpage. (#9663)
- Don't append another cell to a python file when the cell was empty. (#9452)
- Mark cell as not executing when dismissing the prompt to restart a dead kernel. (#9538)
- Fix problem with path names in overriding modules. (#9560)
- Replace
Buffer
constructors with safer methods to reduce security concerns. (Thanks caphosra) (#9589) - Ensure
raw
cells do not stay in a pending execution state. (#9633) - Only set preferred kernel on exact matches. (#9685)
- Use kernel name in preferred kernel sorting algorithm. (#9704)
- Make sure that notebook metadata is updating when changing between python envs (or kernelspecs) that use the same python version number. (#9727)
- Fix kernels not showing up at all if remote kernel fetch fails. (#9728)
- Ask for allowing unauthorized connections for https jupyter servers without certification. (#9758)
- Fixes problem with crashes in the python extension preventing the jupyter extension from running. (#9800)
- Fix remote kernels not being reselected on reopening a notebook. (#9809)
- Fix handling of kernel errors in web extension. (#9817)
-
Finish layout of src folder into:
- intellisense
- interactive-window
- kernels
- notebooks
- platform
- telemetry
- test
- webviews (#8976)
-
Allow passing a Uri instead of a Notebook document to the kernel API. (#9495)
-
Clean up react17 reference in package.json it's not needed anymore. (#9543)
-
Remove events from shipping code. Not needed. (#9596)
-
Switch to using URIs wherever possible instead of strings for file paths. (#9599)
-
Remove usage of textDocumentNotebook proposed API that was unnecessary. (#9679)
-
Skip logging the entire server settings. (#9791)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Add support for named index in dataframe viewer for DataFrames and Series. (#5348)
- Fix interactive window such that if a new kernel is picked when opening or the kernel is canceled, the interactive window will run with the new kernel or show the canceled state (instead of just showing no status at all). (#8817)
- Fix 'ipykernel_launcher' not found when using a global python environment and '.env' file exists. (#9127)
- Support conda installations that require using conda.bat instead of conda.exe on windows. (#9133)
- Register kernelspecs in a private directory without cluttering user kernelspecs. (#9141)
- Hide Notebook Editor icons contributed by the Jupyter extension when selecting a Kernel contributed by another extension. (#9155)
- Only append SVG to the figure format if required. If not required, don't mess with the default. (#9191)
- Deprecated the "Jupyter: Create new Jupyter notebook" Command since it has moved to the built-in ipynb extension in VS Code. (#9250)
- Fix auto scrolling in the interactive window. (#9259)
- Fix problem with double install ipykernel message when cancelling. (#9267)
- Ensure the handle to the kernel connection file is disposed. (#9298)
- Fix notebook intellisense to work again after recent regression. (#9385)
- Fix all cells to not show a timer when queueing up multiple. (#9405)
- Fixes intellisense provided by the kernel missing. (#9424)
- Fixes IPyWidgets not working after refactor of source tree. (#9475)
- Register platform commands. (#9476)
- Eliminate unused parameter for concatMultilineString. (#5144)
- Move installation of python packages into the Jupyter extension (stop using an API from the python extension). (#8457)
- Re-use the same codeWatchers per document when providing code lenses. (#8919)
- Refactor kernel related code into a 'kernels' subfolder. (#8970)
- Refactor 'notebook' related code into a 'notebooks' folder. (#8971)
- Move interactive window related code to its own root folder. (#8972)
- Refactor client code into a 'platform' directory and organize serviceRegistry files in a hierarchical structure. (#8981)
- Update to Typescript 4.6. (#9173)
- Match the node version used by VS code to build. (#9325)
- Remove
src\ipywidgets
from repository and move to a separate npm module. (#9337)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Load environment variables defined in kernelspecs. (#9171)
- Do not inherit
PYTHONNOUSERSITE
from the process running Jupyter. (#9233) - Update display names of Python Environments in kernel picker if the Python version has changed. (#9104)
- Support for detection of missing dependencies in scenarios where users re-create the Python Environments (virtual env or Conda env) or for some reason manually uninstall some of the dependencies. (#9135)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Ensure we detect and set the
site_packages
directory only for environments that can be activated. This ensures we can correctly start Python Kernels in the Python Windows Store Apps. (#9219)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- When a new Conda Environment is created, refresh the list of kernels to include this new Conda environment. (#8508)
- Modify command
jupyter.selectjupyteruri
to allow URI parameter. (Thanks C-SELLERS) (#8918)
- Add
jupyter.logKernelOutputSeparately
to expose the console logs of a kernel and or jupyter server (when we don't start a kernel directly ourselves). This option should make it easier to diagnose kernel only problems. (#4954) - Handle situations where nbconvert is installed but jupyter is not installed (our dependency installer will install both). (#6838)
- Re-run the cells when changing kernels due to missing
ipykernel
. (#8381) - Support connecting to remote kernels that are busy. (#8414)
- When using "Show in Data Viewer" from the python debug variables menu prompt to install pandas if it's not there already. (#8423)
- Give preference to
cellId
in the cell metadata when sending cell metadata over for execution. (#8761) - Rename labels to match the new feature of allowing remote and local connections to exist simultaneously. (#8780)
- Refresh the remote kernel connection count in kernels for Interactive Window. (#8798)
- Do not execute startup code if there isn't any. (#8879)
- Fix completions for dataframe columns. (#8888)
- Provide a better message to indicate when we have no variables yet and are fetching them instead of saying no variables defined. (#8898)
- Make autocomplete return faster regardless of how long pylance takes to return. (#8906)
- Fix kernel dying when interrupting on Windows. (#8945)
- Fix our waiting for RequestKernelInfo (might have been hurting raw kernel start some). (#8989)
- Avoid waiting for completions during kernel startup (as completions request could fail without a response). (#9014)
- Adopt new
notebookKernel
contextkey (1.65) to prevent our interactive window toolbar from appearing on IWs belonging to other extensions. (Thanks gjsjohnmurray) (#9037) - Leverage new
notebookKernel
contextkey and IW placeholder text fix (1.65) to prevent our interactive windowShift+Enter
keybinding from affecting IWs belonging to other extensions. (Thanks gjsjohnmurray) (#9038) - Correctly handle tilde in python traceback file path links. (#9058)
- When running
shell commands
, ensure the kernel first looks for executables in Python Environment associated with the Kernel. E.g. commands such as!pip
and!python
will point to thepip
andpython
executable associated with the kernel. (#9089) - Fix 'ipykernel_launcher' not found when using a global python environment and '.env' file exists. (#9127)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Fix daemon startup to work for non direct kernel cases (#8995)
- Fix our waiting for RequestKernelInfo (might have been hurting raw kernel start some). (#8989)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Fix kernel dying when interrupting on Windows. (#8945)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Reloading VS Code is no longer necessary when switching between local and remote Jupyter servers. (#1367)
- Expose Jupyter Kernel API to 3rd party extensions. This API is still in preview and only available in VS Code Insiders, further information can be found here https://github.com/microsoft/vscode-jupyter/wiki/Accessing-Jupyter-Kernels-from-3rd-party-extensions. (#5532)
- Recommend using
%matplotlib widget
when any other%matplotlib
choice is set. (#8365) - Be able to retrieve XSRF token with session cookie from notebook server on Kubeflow. (@shawnzhu) (#8441)
- Add support for pre-release version of Extensions for VS Code Insiders. (#8463)
- Allow to retrieve the jupyter filename programmatically (vsc_ipynb_file) fix support for ClearML
- Display both local and remote kernels together in the kernel picker. (#8489)
- Install
IPyKernel
without a terminal when dealing withVirtual Environments
on windows. (#1253) - Use the appropriate directory for a notebook if remoting to 'localhost' (#1551)
- Fix VS code leaving kernel processes running during shutdown. (#1626)
- Deprecate "Change Directory on Import Export Setting" (#4419)
- Fix plot viewer so that plots are full size when opening. (#7523)
- Support viewing dataframes (in the dataframe viewer) that contain columns used as an index. (#7603)
- Support automatic reconnection to a remote kernel when reopening a notebook. (#7610)
- Fix completions for paths for notebooks so that you can keep tabbing through all entries. This used to stop after the first level. (#7816)
- Prevent variables from getting stuck in the Loading... state after restart. (#7970)
- Allow queueing of multiple cells in the interactive window. (#8022)
- Correctly handle leading spaces in cells when debugging with the interactive window. (#8263)
- Support intellisense after connecting to a remote server (defaults to active python interpreter) (#8285)
- Make run file in interactive window respect cell boundaries. (#8312)
- Get
%matplotlib qt5
working again. QT5's event loop is slightly different and can't handle concurrent requests so make sure to wait for a request before issuing another. (#8322) - Fix problems when 'print' has been overridden by user code. (#8356)
- Ensure interactive IPyWidgets work even after restarting Remote Kernels. (#8378)
- Continue attempting to create a kernel for the IW if it failed to start previously (#8383)
- Fix intellisense to work when no folder is opened. (#8409)
- Fix intellisense after deleting a line from a cell that contains the word 'await' or a magic. (#8419)
- Set suggested kernel for interactive window correctly. (#8424)
- Fix semantic colorization in the first cell of a notebook. (#8437)
- Context key not updated when interactive window is created from command palette. (#8455)
- Autocompletions from the jupyter kernel can sometimes not appear. (#8536)
- Fix problem with markdown cells in the interactive window not being split if they have code in them too. (#8543)
- Fix conda environments not working when ZMQ support is not enabled.
Ensure
sys.path
is setup such that packages installed in selected environments is given preference (imported) over global site-packages. I.e. this fix will ensure packages are first imported from the selected environment, and then from the global site-packages. (#8553) - Apply correct resource settings to notebookFileRoot in multi-root workspaces. (#8561)
- Fix problem where error stack traces would show random code that hadn't actually been run. (#8568)
- Fix caching of conda environment data so that subsequent runs of conda kernels are faster. (#8580)
- Allows execution in more than one interactive window at the same time. (#8615)
- Don't ask the user to enable CDN widget sources if they are already enabled and add more information to the warning message when we fail to download the widget. (#8626)
- Fix traceback parsing when using IPython 8.0 or greater. (#8675)
- Expand ~ in notebookFileRoot setting. (#8679)
- Fix launching kernel on Mac M1 (or zmq not supported) using default environment. (#8681)
- Fix the interactive debugging tests to shut down debugging correctly at the end. (#8684)
- Fix error tracebacks to not have background colors. Background colors from Jupyter don't match VS code themes, so they were just removed. (#8697)
- Fix prompting to switch to prerelease even when already on prerelease. (#8724)
- Fix problem with markdown cells causing off by one errors in notebooks. (#8769)
- Fix for intellisense breaking after typing a magic into a cell other than the first. (#8830)
- Refactor any code using a string for a file path to support a URI instead. This should make remote file systems work better. (#1420)
- Make sure submissions include a news file. (#3200)
- Consolidate requirements.txt files into a smaller set. (#3992)
- Change error message prompting user to install IPykernel into an information message. (#8415)
- Display modal dialog when attempting to run Python notebooks without the Python extension installed. (#8416)
- Display error message when failing to connect to the remote Jupyter server. (#8474)
- Remove
jupyter.runMagicCommands
(which has been deprecated for over a year) in favor ofrunStartupCommands
. (#8485) - Activate
conda
environments usingconda run
. (#8544) - Improvements to progress message displayed when starting kernels. The messages now attempt to provide more information about the progress and hopefully make it easier to understand what is going on (or what is slow when starting a kernel). (#8583)
- Update README.md to remove insiders specific references. (#8548)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
VS Code Stable releases along with the minimum recommended version of the Jupyter Extension.
Release | VS Code Stable | Recommended Jupyter Build |
---|---|---|
November | 1.63.0 | 2021.11.1001550889 |
October | 1.62.0 | 2021.10.1001414422 |
September | 1.61.2 | 2021.9.1101343141 |
August | 1.60.2 | 2021.8.2041215044 |
July | 1.59.1 | 2021.8.1236758218 |
June | 1.58.2 | 2021.8.1054968649 |
- Performance improvements related to startup of Kernels.
- Support pre-warming Kernels to improve startup experience of Notebooks. (#7903)
- Faster activation of Python environments such as Conda. (#8342)
- Avoid starting default kernel when starting jupyter. (#8185)
- Avoid looking for IPyKernel when we've found it once before. (#8196)
- Avoid unnecessarily searching for
Jupyter
packages whenJupyter
runtime isnt' rqeuired to start Kernels. (#8350) (#8352)
- Add diagnostics messages recommending the usage of
%pip install
&%conda install
over!pip install
. (#6864) - Prompt and install
pip
ifpip
is not available when installing missing dependencies such asipykernel
. (#7739) - Add support for interrupting non-python kernels. (#8107)
- Support iPyWidgets when connecting to an existing (already running) remote kernel. (#8179)
- Identify and recommend renaming user created python files that overwrite builtins and cause Kernels to crash (or not start at all). (#8195)
- Recommend updating
traitlets
to5.1.1
ifjupyter
fails to start. (#8295) - Attempt to pip install Data Science packages such as
ipykernel
outside a terminal when dealing with Global Python Environments. (#8325) - Display kernel startup failure messages in cell outputs for improved visibility. (#8351)
- Improvements to error messages displayed when Kernel startup fails. (#8354)
- Warn when using outdated versions of Python (Python 2.7 & the like). (#7960)
- Top level awaits in a notebook cell should not cause an error to be shown. (#1510)
- Cancel active kernel startup when switching to another kernel. (#5896)
- Fix highlighting of elements in a cell. (#5932)
- For interactive window commands (run all, run above, run below) add them to a queue instead of just trying to execute one by one. (#6982)
- Fix completions to skip file names when not inside of a string. (#7136)
- Fix regression to show "Show in Data Viewer" option from nested variables in the debug variables view. (#7295)
- Eliminate duplicate content in jupyter completions. (#7772)
- Make jupyter kernel autocomplete less aggressive and customizable. The new 'jupyter.completionTriggerCharacters' can be used to determine what causes a kernel to return completions. (#7880)
- Make 'Jupyter: Export interactive as Jupyter notebook' command work. (#7947)
- Let code in 'jupyter.runStartupCommands' work with intellisense. For example, if your startup commands were 'import pandas as pd', auto completion would now work automatically for 'pd.' without having to type the import first. (#7993)
- Allow for nbconvert export when a global jupyter interpreter has not been set before. (#8050)
- Eliminate extra long labels in jupyter completions. (#8080)
- Fixes related to handling of carriage returns in outputs. (#8112)
- Make the import ipynb commands use the currently selected pythonExportMethod setting. (#8158)
- Display notebook paths associated with remote kernels in the kernel picker. (#8175)
- Do not prompt to install Python extension when opening a
.NET
notebook. (#8204) - Turn off telemetry for tracking the number of notebooks in a workspace. (#8293)
- Recommend installing
traitlets
version5.1.1
if Jupyter fails to start and the version oftraitlets
is older. (#8295) - Fix interactive window intellisense to work after new concat changes for notebook intellisense. (#8353)
- Fix intellisense problems after editing notebook cells. (#8374)
- Ensure interactive widgets work when connecting to remote Jupyter (or when falling back to starting Jupyter locally). (#8378)
- Make sure interrupt during run by line is tested. (#8002)
- Add setting to allow usage of experimental pylance intellisense in notebooks. (#8096)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Group kernels in kernel picker based on the type of the Python environment & kernel. (#7934)
- Add ability to filter kernels displayed in the kernel picker. (#7373)
- Add ability to not generate a new cell when hitting SHIFT+ENTER in a python file. (Thanks janosh) (#7966)
- New default export that just uses conversion in typescript as opposed to nbconvert. Allow the option to comment out magics or use the old nbconvert style of export via a setting. (#5222)
- Track the active kernel in a notebook when providing intellisense. (#6333)
- Hide Jupyter specific toolbar icons from notebooks. (#6543)
- Fix notebooks opening and being marked as dirty on every open. (#6637)
- Fix semantic colorization in notebooks. (#6799)
- Close input prompts displayed by kernel when interrupting/restarting kernels. (#6897)
- Delete all of the old kernelspecs generated by the extension (as some were incorrectly generated), with the ability to manually recover them if necessary. (#7171)
- Support using the variable viewer when a data viewer window is open. (#7325)
- Changes to how we check if kernels have started (as a result now suppor kernels such as Wolfram). (#7334)
- Allow intellisense completions from Jupyter to be shown in the interactive window. (#7406)
- Change filtering for text data in the data viewer to search for any instance of a string unless regular expression chars are detected. If any regular expression chars are detected, switch to using regular expressions to match. (#7628)
- Fix debugging from the interactive window. (#7650)
- Specifying a jupyter command line only makes sense if we need to use jupyter to launch kernels (no ZMQ support). (#7724)
- Don't make the outline button and command dependent on if the outline view is visible. (#7766)
- Incorrect paths displayed for non-python kernels in kernel picker. (#7931)
- Group kernels in by kernel picker by Python environment type (prefix non-python kernels with
Jupyter Kernel
). (#7934) - Fix build break in ipywidget build. (thanks ChaseKnowlden) (#7935)
- Ensure
__file__
is set when changing kernels in Interactive Window. (#7941) - Interactive window is not necessarily using active interpreter when creating the controller. (#7945)
- Improve performance of widgets over remote connections. (thanks sdissegna-maystreet) (#7965)
- Remove duplicates from kernel picker & ensure globally registered kernels point to the right interpreter. (#7994)
- Ensure kernel language is defined in the
ipynb
metadata. (#8003) - Change 'Stop' for debugging in the interactive window to interrupt the execution so it actually stops as soon as possible. (#8069)
- Avoid losing ipywidgets kernel communications when switching kernel. (thanks sdissegna-maystreet) (#8085)
- Replace instances of
traceInfoIf
withtraceInfoIfCI
as almost all of them were just for CI tracing. (#7574) - Upgrade to the latest jupyterlab/services API for communicating with kernels and jupyter servers. (#7675)
- Get rid of unnecessary 'Open with Notebook Editor' command as this is built into VS code itself. (#7725)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Ensure
Change Kernel
option in the prmopt allows users to change kernels. (#7779) - Ensure restarting kernels in
Interactive Window
retains support for__file__
. (#7883)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Split Notebook renderers into a separate extension (Jupyter Notebook Renderers), allowing users to view Notebook outputs such as plotly, vega on github.dev. (#1909)
- Added support to use Run by Line and Notebook Debugging in remote kernels. (#7576)
- Added ability to create notebooks using the menu option
File -> New File...
. (#7363) - Added a command to the command palette and an icon to the notebook toolbar to open the the table of contents for Notebooks. (#7305)
- Strip CR from CRLF of source when sending code to the kernel for execution. (#4576)
- Show global Python kernel specs that use ipykernel to launch. (#6389)
- Fixes related to remote connections in
Interactive Window
. (#6881) - Fixes to restarting of kernels when kernel dies (as opposed to manually restarting a kernel). (#7167)
- Code cell submissions should go to active window in 'multiple' mode. (#7249)
- Interrupt kernel button on interactive window toolbar should be disabled when kernel is not busy. (#7269)
- Fix 'Connecting to...' message in interactive window not being updated in-place if a code cell is inserted before the connection completes. (#7280)
- Fix changing kernel in interactive windows started with an interpreter that does not have ipykernel installed. (#7288)
- Preserve leading tab characters on code lines for #%% cells submitted to interactive window. (#7303)
- Display error message from Python stack trace when kernel dies (also if kernel dies when attempting to restart). (#7318)
- Don't add an extra linefeed in interactive window markdown. (#7355)
- Fix Debug Cell codelens opening the wrong source file after restarting the kernel in the interactive window. (#7366)
- Refresh list of remote kernels if a notebook is already open. (#7385)
- Fix allowing the dataframe viewer to open large data frames. Also fix variable fetching code from updating the execution count. (#7420)
- Apply background to the image element in a notebook output, instead of applying it to the entire output container. (#7470)
- Support retina output option for Matplotlib. (#7471)
- Clicking 'Change Kernel' for interactive window started from script file when ipykernel is not installed should display the kernel picker. (#7476)
- Fix
jupyter.magicCommandsAsComments
when executing code cells in the interactive window. (#7481) jupyter.interactive.removeCell
now supports being invoked from the command palette or with a custom keybinding when an interactive window has focus. (#7541)- Fix the context keys for the variable explorer when working with the interactive window. (#7556)
- Ensure empty #%% cells are skipped and do not interfere with running of subsequent cells in the interactive window. (#7581)
- Fix interactive window debugging sourcemap resolution after running a markdown cell. (#7589)
- Support a highlight around a cell when goto cell is clicked in the interactive window. (#7648)
- Support multiline comments in the middle of a cell being submitted to the interactive window. (#7658)
- Basic test for plotviewer metadata and SVG setting. (#7209)
- Fix failing variable view tests. (#7443)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Updated the preview to debugging in native notebooks. Set the
jupyter.experimental.debugging
setting to true, and aDebug Cell
option will appear on the dropdown in theExecute Cell
button. Pressing it will run the cell and hit any breakpoints you've set. (#1652) - Added the
Run by Line
feature. In Python notebooks, pressF10
while selecting a cell or click the first button on the cell toolbar to start a lightweight debugging session and run the cell line by line. To set it up, follow the steps here. (#5607) - Add diskpath to logging for loading third party widgets to support local testing of new widget versions. (#6294)
- Default plot output to just PNG, and support showing PNGs or SVGs in the Plot Viewer control. The enablePlotViewer setting still turns on both PNG and SVG plot output, but it's now off by default, not on. (#6913)
- Update Simplified Chinese translation. (thanks FiftysixTimes7) (#7049)
- Run by line now stops after running the last line. (#6858)
- Ensure execution of
raw
cells are skipped when we have multiple cells. (#6954) - Fixes to autocompletions returned by Jupyter Kernel (sort as returned by the kernel and trigger when entering quotes). (#6979)
- Populate the interactive window variable explorer when focus is in the #%% Python file. (#6993)
- Reinitialize kernels after a restart, including resetting current working directory and rerunning startup commands. (#7016)
- Restore support for
jupyter.collapseCellInputCodeByDefault
in native interactive window. (#7031) - Fix restart kernel in native interactive window when executing a #%% cell. (#7081)
- Fix code indentation being lost on interactive window export. (#7088)
- Ensure variable explorer handles kernel restarts. (#7126)
- Add remappable
esc
keybinding to clear contents of native interactive window input box, bound tointeractive.input.clear
command in VS Code core. (#7157) - Fix ability to use command palette restart/interrupt from command palette when focus is in a Python file linked to an interactive window. (#7158)
- Fix A/B shortcuts to insert cell in command mode instead of edit mode. All Jupyter keyboard shortcuts are now provided through the Jupyter keymap extension, which is included with the Jupyter extension and can be uninstalled. (#7172)
- Fixes kernel spec generation (on Mac M1/Non ZMQ supported machines) to include the appropriate environment. (#7186)
- Support kernelspec argv containing non traditional args for
{connection_file}
. (#7203) - Fix export for already-open native notebooks. (#7233)
- Fix being able to save PNG plots from the plot viewer. (#7265)
- When no notebook or interactive window is active then clear the variables view. (#7266)
- Fix placeholder 'Connecting to...' sys info cell not being overwritten after a kernel connection is established if cells are added to the interactive window first. (#7280)
- Ensure that interactive window is started with active Python interpreter after active interpreter is changed. (#7301)
- Restore support for Bash Kernel. (#7345)
- Remove old Interactive Window, old Notebook Editor and LiveShare code (all of this functionality is now Natively supported by VS Code). (#6488)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Updated the preview to run by line in native notebooks. Set the
jupyter.experimental.debugging
setting to true, install ipykernel 6 on your selected kernel and aRun by Line
button will appear on cell toolbars. Pressing it will start a lightweight debugging session and let you run the cell line by line. (#5607)
- Restore plotviewer in Native Notebooks. (#6315)
- Fix debugging in
Interactive Window
when usingIPyKernel 6
. (#6534) - Add a placeholder
Python 3
kernel if user doesn't have any Python interpreters, with ability to notify user to install Python extenssion or Python runtime. (#5864) - Fixes to completion items received from Jupyter. (#5956)
- Run all and restarting does not actually interrupt the rest of the running cells. (#5996)
- Remove popup tip that indicates to users the kernel picker is in the bottom right. (#6016)
- Ensure Pyspark kernels are listed. (#6316)
- Fix problem where the active interpreter is not being used for the interactive window when not running with raw kernel. (#6409)
Ctrl+Enter
in native notebooks should put cell into command mode immediately, then run the cell. (#6582)- List non-traditional (not using
ipykernel
) global Python kernelspecs. (#6622) - Clone the Notebook metadata before udpating it. (#6624)
- Format the readme to render correctly on the VS Code extensions side bar. Thanks jyooru! (#6648)
- Ensure we get Jupyter Server info correctly in Python 3.6. (#6738)
- List kernels in situations where extension is installed after opening a notebook. (#6824)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Fix for kernel not starting with correct path (causes DLL load and import modules failures). (#5833)
- In preview native notebooks UI, contribute
L
keybinding to toggle line numbers for the current cell, andshift+L
keybinding to toggle line numbers for all cells. (#4438) - Add xarray arrays to Data Viewer. (#5590)
- When editing a markdown cell in preview native notebooks UI, contribute
ctrl+enter
keybinding to render current markdown cell, andshift+enter
to render current markdown cell and skip to the next cell. (#5976) - Contribute extension-level
shift+enter
keybinding to execute current code cell and select below in preview native notebooks UI. (#6037) - Added ability to save plots in the preview native notebooks UI. (#6183)
- Added a preview to run by line and debugging in native notebooks. Set the
jupyter.experimental.debugging
setting to true, install ipykernel 6 on your selected kernel and adebug
button will appear. Pressing it will start a debugging session and let you set and hit breakpoints. (#5607) - Add
jupyter.enableNativeInteractiveWindow
setting to opt into the preview native interactive window experience, with support for VS Code customizations like keybindings, themes, snippets and more.(#1388)
- Fix problems loading other language kernels in the Interactive Window and in non insiders webviews. (#893)
- Only ask user to switch to
"perFile"
mode if"jupyter.interactiveWindowMode": "multiple"
and they have submitted code from two different source files. (#5471) - On remote connections check for new or removed LiveKernelConnections on document open. (#5984)
- In preview native notebooks interface, show editor title buttons only when "notebook.globalToolbar" setting is set to
false
. (#6019) - Ship require.js with our notebook preloads and renderers. (#6034)
- Save output in *.ipynb even when output is created without any Jupyter output metadata. (#6192)
- In preview native notebooks interface, contribute
ctrl+enter
keybinding which puts the current cell into control mode instead of leaving it in edit mode after running. (#6198) - Fix interrupt button in Native Notebook toolbar. (#6254)
- Fix problem where the active interpreter is not being used for the interactive window when not running with raw kernel. (#6409)
- Add doc switching variable view tests for native notebooks. (#4355)
- Fix 'Restarting kernel will cancel cell execution & we can re-run a cell' test. (#6139)
- Restore GitHub token access for CodeQL, issue locking and issue assignment workflows. (#6170)
- Fix flake notebookAndWebview test. (#6234)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- On remote connections check for new or removed LiveKernelConnections on document open. (#5984)
- When editing a markdown cell in preview native notebooks UI, contribute
ctrl+enter
keybinding to render current markdown cell, andshift+enter
to render current markdown cell and skip to the next cell. (#5976) - In preview native notebooks UI, contribute
L
keybinding to toggle line numbers for the current cell, andshift+L
keybinding to toggle line numbers for all cells. (#4438) - Contribute extension-level
shift+enter
keybinding to execute current code cell and select below in preview native notebooks UI. (#6037) - In preview native notebooks interface, contribute
ctrl+enter
keybinding which puts the current cell into control mode instead of leaving it in edit mode after running. (#6198) - Fix interrupt button in Native Notebook toolbar. (#6254)
- Fix 'Restarting kernel will cancel cell execution & we can re-run a cell' test. (#6139)
- Data Viewer Filter Rows must use explicit wildcards to search for substrings in string filters. For example, filtering by "stable" will not show the value "unstable" anymore, but filtering by "*stable" will show "stable" and "unstable". (#1142)
- Sort variables by name and type in variable explorer. (#4585)
- Limit languages dispalyed in the Cell language picker to languages supported by the kernel. (#5580)
- Move native notebooks cell toolbar to the left by default. (#5605)
- Display modal dialog box (so users don't miss this) when IPyKernel (or Jupyter) is missing (required to run Python in Interactive Window or Notebooks). (#5798)
- Add support for Virtual Workspaces. (#5803)
- Losslessly compressed PNG images to save ~20KB. (thanks Christopher Yeh) (#5869)
- Adopt
notebook/toolbar
contribution point for native notebooks. (#5954) - Tweak variable view fit and finish to match VS Code. (#5955)
- Replace 'Run cells above' and 'Run cell and below' commands and cell toolbar buttons with VS Code's built-in 'Execute Above Cells' and 'Execute Cell And Below' commands and unified run button. (#6025)
- Update/reinstall if module such as
IPyKernel
was installed once before or already exists. (#4758) - Stop listing default kernelspecs in kernel picker. (#5445)
- Store interpreter information in notebook metadata instead of the generated kernelspec name. (#5612)
- Restore the
Run Above/Below
cells command inCommand Palette
. (#5746) - Migrate 'workbench.editorAssociations' setting to new format. (#5806)
- Add ABCMeta and type to variable explorer exclude list. (#5865)
- Blank Python notebooks do not use active interpreter. (#5874)
- Change language of cell to reflect langauges supported by the selected Kernel. (#5924)
- Resolve issue related to
Interrupt
button vanishing when tabbing across notebooks while a cell is being executed. (#5925) - Delete encrypted storage in a try catch to avoid errors. (#5934)
- Support new renderer API in Jupyter. (#5952)
- Hide kernels belonging to deleted Python environments from kernel picker. (#6164)
- Error category for unsupported kernelspec file args. (#5492)
- Fix basic execution issues with nonConda 'remote' and nonConda 'local' test suites. (#5660)
- Update to new message API for native notebook preloads. (#5753)
- Rename of onDidChangeCellExecutionState. (#5809)
- Fix functional ipywidget tests. (#5842)
- When using remote Jupyter connections pre-fetch kernels only when opening a notebook. (#5846)
- Removed execution isolation script. (#5931)
- VSCode API naming changes for NotebookCellExecution, NotebookRendererScript. (#6014)
- API Changes viewType => notebookType and notebook namespace to notebooks. (#6046)
- Update test init code to use window and not notebook for editor properties. (#6098)
- Support the new renderer API in jupyter extension. (#6118)
- Update to new notebookcontroller selection function name. (#6121)
- Inline execution handler change to notebook API. (#6137)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Manage contributed Jupyter kernels registration. (#4490)
- Update variable explorer icon. (#5355)
- Add keybind 'O' to toggle the output of all selected cells in a notebook. (#5425)
- Recommend extensions when opening notebooks targeting specific languages. (#5577)
- Restore the Intellisense documentation on custom editor notebook. (#5124)
- Upgrade vega-transforms and support vegalite v4. (#5149)
- Add a 10 minute delay to surveys. (#5261)
- Display formatted markdown description for
jupyter.variableQueries
setting in settings UI. (#5289) - Pass remote Jupyter server's default kernelspec name in remote kernel connection. (#5290)
- Ensure data viewer grid is resized when slice panel is toggled so that horizontal scrollbar remains visible. (#5309)
- When 3rd party CDN downloads need to be enabled for ipywidgets support, display More Info and Enable Downloads buttons instead of embedding them as links in the message. (#5352)
- Fix the output link in the kernel timeout message. (#5360)
- Stop asking users to install ipykernel on autostart, only do it when a cell is run. (#5368)
- Fix for 'Export as Python Script' option not appearing. (#5403)
- Update to remove usage of .cells property from NotebookDocument. Also update TextDocument with notebook property and QuickPick. (#5417)
- Delete extension context secrets if we get an error when getting them. Small fixes on error handling. (#5419)
- When native notebook is untrusted, do not allow cell execution and prompt to trust. (#5436)
- Resize the untrusted icon. (#5437)
- Save notebook metadata in ipynb even if the selected Kernel is provided by some other extension. (#5460)
- Invalidate cached interpreters when Python extension active interpreter changes. (#5470)
- Use interpreter information stored in kernelspec.json file when starting kernels. (#5495)
- Update to new selections API. (#5515)
- CellStatusBarItem update for Native Notebooks. Along with other breaking API changes. (#5527)
- Remove statusbar from Notebook Cells. (#5541)
- Hide Jupyter commands from other types of notebooks. (#5559)
- Update to newest vscode Notebook API changes. (#5598)
- Increase the width of the data viewer scrollbar. (#5610)
- Fix
NameError: name '_VSCODE_InfoImport' is not defined
when attempting to open the data viewer from 2 or more different scopes in a single debug session. (#5627) - Use active interpreter when starting Kernels for Interactive Window. (#5628)
- Use
download
package to download widget scripts. (#5633) - Start kernel if not already started when using
Run cells above/below
. (#5636)
- Add functional test for large data in data viewer. (#5207)
- Pass
NotebookDocument
when invokingjupyter.notebookeditor.interruptkernel
. (#5242) - Remove data slicing experiment feature gate. (#5399)
- Ignore errors throw by VS Code when updating cell output during execution. (#5446)
- Improvements to telemetry used to check if we're not starting the right interpreter (for a Python kernel). (#5509)
- Add telemetry to check if we fail to update kernelspecs with environment variables. (#5547)
- Ensure
canvas
andplaywright-chromium
are setup as optional dependencies inpackage.json
. (#5567) - Fix tests after kernel push changes. (#5585)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Check the responses of prompts for installation of missing packages such as
IPyKernel
. (#5432)
- Fix for 'Export as Python Script' option not appearing. (#5403)
- Delete extension context secrets if we get an error when getting them. Small fixes on error handling. (#5419)
- Enable correct plot background for Native Notebooks. (#5353)
- Stop asking users to install ipykernel on autostart, only do it when a cell is ran. (#5368)
- Invalidate cached interpreters when Python extension active interpreter changes. (#5470)
- Be able to provide string argument to jupyter.execSelectionInteractive for extensibility. (thanks Andrew Craig) (#1689)
- Jupyter variables tab will always be named 'Jupyter Variables'. (#4458)
- Variable view will stay as long as you have a notebook open (not necessarily active). (#4562)
- Add quotations to arguments with blank spaces when executing kernel processes. (#4647)
- Do not prompt to install Python extension when creating a blank notebook. (#4965)
- Cache the active workspace Python Interpreter. (#5004)
- Don't prewarm variables for global jupyter interpreter if ZMQ is supported. (#5009)
- When closing the Interactive Window, shutdown sessions started by Interactive Window. (#5030)
- Stop wrapping new errors if we threw the original error. (#5089)
- Ignore errors when getting the environment variables for a Python environment. (#5093)
- Revert viewsContainter name to Jupyter and view name to Variables to avoid un-named viewsContainer. (#5102)
- Ensure extensions depending on Jupyter do not fail to load if Jupyter extension fails to load. (#5145)
- Don't display the data science banner for non-Jupyter notebooks. (#5181)
- Don't use NotebookEditor.onDidDispose and support new err / out specific stream mime types. (#5191)
- Prevent unnecessary activation of the Python extension. (#5193)
- Update widget kernel for new NotebookOutputEventParams. (#5195)
- Updates to code used to run Python in an isolated manner. (#5212)
- Changes to proposed API for using resolveKernel instead of resolveNotebook. Since this change goes along with widget tests also renable and fix those tests. (#5217)
- Fix data viewer display of non-numeric index columns in DataFrames. (#5253)
- Display messages notifying user to enable support for CDNs when rendering IPyWidgets. (#5074)
- When reopening a newly created Notebook with a Julia kernel, the cells should be detected as
Julia
. (#5148) - Support switching kernels in Native Notebooks when connecting to Jupyter. (#1215)
- Refactor how Kernels are searched and selected. (#4995)
- Fix run selection/line to work from the active editor (#5287)
- Update variable view to use the new API for native cell execution notification. (#5316)
- Ensure users in CodeSpaces do not get prompted to forward Kernel Ports. (#5283)
- Disable surveys in CodeSpaces. (#5295)
- Ensure Git diff viewer does not get replaced by Notebook Editor. (#633) (thanks Matt Bierner)
- Ability to queue telemetry until all of the data required is available. (#4956)
- Fix variables test. We had a new import of sys, which was causing the variable fetching to have to do one extra fetch, pushing it over the limit to require a second chunk fetch. (#5016)
- Add tests for data viewer slice data functionality. (#5066)
- Remove setting
jupyter.useNotebookEditor
. (#5130) - Enable
debug
logging by default. (#5238)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Add ability to view a slice of the current variable in the data viewer using either axis/index dropdowns or a slice expression input field. (#305)
- Enable refreshing active data viewer contents using Jupyter: Refresh Data Viewer command in the command palette, Cmd+R or Ctrl+R, or the refresh button in the editor title menu. (#1143)
- Always open the data viewer in the last view group that it was moved to. (#4689)
- Support for other extensions to provide a default language when creating new notebooks. (#4859)
- Remove special casing to ignore warnings. (#1312)
- Allow jupyter kernels to not be handled by the jupyter extension. (#4423)
- Restore the 'Select a Kernel' command on the interactive window. (#4479)
- Correctly syntax color items in native variable view. (#4499)
- Don't ask for a kernel restart if the kernel was interrupted in native notebooks. (#4669)
- Popup a tip when opening a notebook for the first time. (#4775)
- Ensure we save the contents when closing a (webview based) notebook. (#4779)
- Stop sending cells executed silently to other extensions. (#4867)
- Do not prompt to install missing dependencies on GitHub Codespaces. (#4882)
- Synchronously check if
zmq
is supported. (#4764) - Telemetry to track the commands executed using ICommandManager. (#4926)
- More telemetry to track kernel failure reasons. (#4940)
- Add telemetry flag to differentiate between stable vs insider builds of the extension. (#4959)
- Add telemetry to check if we have started the right local Python kernel. (#4999)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Popup a tip when opening a notebook for the first time. (#4775)
- Ensure we save the contents when closing a (webview based) notebook. (#4779)
- Allow kernels to not be handled by the jupyter extension. (#4423
- Enable native notebook if sync'd settings is forcing it. (#4845
- Fix 'Export as Notebook' not working after opening a notebook on a python file. (#4869
- Support multidimensional data in the data viewer. >2D dimensions are flattened, with the ability to double-click on a truncated cell to view the full value in a horizontally scrollable field. (#298)
- Support NaN, Inf, -Inf in data viewer. (#299)
- Support viewing PyTorch tensors and TensorFlow EagerTensors in variable explorer and data viewer. (#304)
- Show more detailed error messages when the kernel dies or times out. (#1254)
- Do not invoke requestKernelInfo when the Kernel.info property already contains this information. (#3202)
- Support rendering of outputs such as Plotly, Altair, Vega, and the like in Native Notebooks. (#3936)
- Add full Simplified Chinese translation. (thanks FiftysixTimes7) (#4418)
- Add a button to the native notebook toolbar to show the variable panel. Disable button when panel is already visible. (#4486)
- Users on AML Compute will automatically get the new Native Notebook experience. (#4550)
- Improved Tensor tooltips in Python files which have been run in the interactive window. (#302)
- Minimize number of icons on the notebook toolbar (put the rest in overflow). (#4730)
- Add survey for the new Notebooks experience experiment. (#4726)
- Don't overwrite the top level VS Code Save and Undo command keybindings. (#4527)
- Added a progress notification when restarting the kernel. (#1197)
- Fix error with selecting jupyter server URI when no workspace open. (#4037)
- Fix Z (and CTRL+Z when using custom editor support) to update data model so that save works. (#4058)
- Preload font awesome for ipywidgets. (#4095)
- When comparing to existing running kernel only consider the kernelspec when launched via kernelspec. (#4109)
- Fix notebook cells running out of order (for VS code insiders notebook editor). (#4136)
- Support installing ipykernel when necessary in native notebooks. (#4153)
__file__
variable is now set after changing kernel in the interactive window. (#4164)- Fix support for IPyWidgets in Interactive Window. (#4203)
- Fix hover tips on notebooks (and the interactive window). (#4218)
- Fix problem with creating a blank notebook from the python extension start page. (#4242)
- Don't suppress whitespace at start of output for native notebooks. (#4254)
- Clear output of a cell if its executed while empty. (#4286)
- Wait for datascience code to activate when activating the extension. (#4295)
- Fix problem when run all cells an exception is thrown, cells can no longer be run. (#4309)
- Update trust icons. (#4338)
- Display trusted icon when a notebook is trusted. (#4339)
- Enable 'Run To Line', 'Run From Line' and 'Run Selection/Line in Interactive Window' on the editor context. The 'shift+enter' keybinding still follows the "jupyter.sendSelectionToInteractiveWindow" setting. (#4368)
- If a kernel refuses to interrupt ask the user if they want to restart instead. (#4369)
- Refresh variable explorer when docking is changed. (#4485)
- Correctly handle kernel restarts in native variable viewer. (#4492)
- All notebook commands should be prefixed with 'Notebook'. (#4494)
- Don't retain context on variable view. Update view with current execution count when made visible. (#4541)
- Remove unnecessary files from the VSIX that just take up space. (#4551)
- Support set_next_input message payload. (#4566)
- Fix the Variable Explorer height so the horizontal scroll bar is shown. (#4598)
- Allow viewing class instance variables in the data viewer. (#4606)
- Update message that recommends the python extension to a warning and mention it gives an enhanced experience. (#4615)
- Correctly hide old interpreters registered as kernels from the selector. (#4632)
- Allow installing python extension in codespaces. (#4664)
- Add notebook codicon for Juypter viewContainer. (#4538)
- Allow options to show native variable view only when looking at native notebooks. (#4761)
- Fix CTRL+ENTER and ALT+ENTER to behave as expected for a jupyter notebook. (#4713)
- If .NET interactive is installed, make sure to use the new notebook editor. (#4771)
- Only clean up a notebook editor when it's closed, not when the panel is disposed. (#4786)
- Fixes problem with duplicate jupyter kernels being generated. (#4720)
- Deprecate src\client\datascience\kernel-launcher\helpers.ts. (#1195)
- Stop preloading requirejs in ipywidgets for native notebooks. (#4015)
- Add .vscode tests to test the new variable view. (#4355)
- Update CI to set xvfb correctly, and new test step that can do native notebooks + old webviews. (#4412)
- Run cells below test randomly failing on shutdown. (#4445)
- Fix julia test to pass. (#4453)
- Add UI side telemetry for variable view. (#4649)
- Prevent Winston logger from exiting the Extension Host when there are unhandled exceptions. (#4702)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Fix support for IPyWidgets in Interactive Window. (#4203)
- Add support for IPyWidget in Native Notebooks. (#251)
- Information in the interactive window is python specific. (#340)
- Allow user to cancel asking about logging level. (#348)
- Watch for any addition of the python extension, and don't suggest a full reload when it is added. (#405)
- Only offer to export to python script when the metadata specifies python as its language. (#407)
- Hide webview based Notebook command
Select Kernel
when a Notebook is opened using the new VS Code Native Notebook editor. (#426) - Correctly pass the candidate interpreter when exporting. (#1363)
__file__
variable not set after restarting kernel in the interactive window. (#1373)- Fix the search path for Jupyter kernels on UNIX systems (thanks Giulio Girardi) (#3918)
- Fix the directory for exporting from the interactive window and notebooks to match the directory where the original file was created. (#3991)
- Fix variable fetching on remote machines that don't have our scripts files on them. (#4006)
- Display survey prompt once per session. (#4077)
- Guard against AttributeErrors in our DataViewer code. (#4082)
- Ensure user cannot belong to Custom Editor experiment is already in Native Notebook experiment. (#4105)
- Fix problems with code in UI getting out of sync with code being executed or saved to disk. (#1701)
- Added an onCreated event to the Interactive Window provider so external buttons can appear on creation. (#413)
- Use notebookIdentity instead of the notebook when handling external buttons. It handles the case when the user doesn't autostart the kernel. (#414)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Display survey prompt once per session. (#4077)
- When removing our dynamically added editor associations always remove them if Native / Custom Editor is disabled, not just if we remember adding them. (#3988)
- Ensure survey prompt is not displayed multiple times.. (#4002)
- Migrate references to python.dataScience.* in when clauses of keybindings.json. (#1088)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Interactive window input prompt does not allow any keyboard input. (#446)
- Support opening Notebooks using Native Notebook editor even if the Python extension is not installed. (#1074)
- Show kernel picker in the interactive window. (#411)
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful:
Thanks to the following projects which we fully rely on to provide some of our features:
Also thanks to the various projects we provide integrations with which help make this extension useful: