##// END OF EJS Templates
3.2.1 release notes
Min RK -
Show More
@@ -1,250 +1,269 b''
1 1 .. _issues_list_3:
2 2
3 3 Issues closed in the 3.x development cycle
4 4 ==========================================
5 5
6 6
7 Issues closed in 3.2.1
8 ----------------------
9
10 GitHub stats for 2015/06/22 - 2015/07/12 (since 3.2)
11
12 These lists are automatically generated, and may be incomplete or contain duplicates.
13
14 We closed 1 issue and merged 3 pull requests.
15 The full list can be seen `on GitHub <https://github.com/ipython/ipython/milestones/3.2.1>`_
16
17 The following 5 authors contributed 9 commits.
18
19 * Benjamin Ragan-Kelley
20 * Matthias Bussonnier
21 * Nitin Dahyabhai
22 * Sebastiaan Mathot
23 * Thomas Kluyver
24
25
7 26 Issues closed in 3.2
8 27 --------------------
9 28
10 29 GitHub stats for 2015/04/03 - 2015/06/21 (since 3.1)
11 30
12 31 These lists are automatically generated, and may be incomplete or contain duplicates.
13 32
14 33 We closed 7 issues and merged 30 pull requests.
15 34 The full list can be seen `on GitHub <https://github.com/ipython/ipython/milestones/3.2>`_
16 35
17 36 The following 15 authors contributed 74 commits.
18 37
19 38 * Benjamin Ragan-Kelley
20 39 * Brian Gough
21 40 * DamiΓ‘n Avila
22 41 * Ian Barfield
23 42 * Jason Grout
24 43 * Jeff Hussmann
25 44 * Jessica B. Hamrick
26 45 * Kyle Kelley
27 46 * Matthias Bussonnier
28 47 * Nicholas Bollweg
29 48 * Randy Lai
30 49 * Scott Sanderson
31 50 * Sylvain Corlay
32 51 * Thomas A Caswell
33 52 * Thomas Kluyver
34 53
35 54
36 55 Issues closed in 3.1
37 56 --------------------
38 57
39 58 GitHub stats for 2015/02/27 - 2015/04/03 (since 3.0)
40 59
41 60 These lists are automatically generated, and may be incomplete or contain duplicates.
42 61
43 62 We closed 46 issues and merged 133 pull requests.
44 63 The full list can be seen `on GitHub <https://github.com/ipython/ipython/milestones/3.1>`_.
45 64
46 65 The following 33 authors contributed 344 commits:
47 66
48 67 * Abe Guerra
49 68 * Adal Chiriliuc
50 69 * Benjamin Ragan-Kelley
51 70 * Brian Drawert
52 71 * Fernando Perez
53 72 * Gareth Elston
54 73 * Gert-Ludwig Ingold
55 74 * Giuseppe Venturini
56 75 * Jakob Gager
57 76 * Jan Schulz
58 77 * Jason Grout
59 78 * Jessica B. Hamrick
60 79 * Jonathan Frederic
61 80 * Justin Tyberg
62 81 * Lorena Pantano
63 82 * mashenjun
64 83 * Mathieu
65 84 * Matthias Bussonnier
66 85 * Morten Enemark Lund
67 86 * Naveen Nathan
68 87 * Nicholas Bollweg
69 88 * onesandzeroes
70 89 * Patrick Snape
71 90 * Peter Parente
72 91 * RickWinter
73 92 * Robert Smith
74 93 * Ryan Nelson
75 94 * Scott Sanderson
76 95 * Sylvain Corlay
77 96 * Thomas Kluyver
78 97 * tmtabor
79 98 * Wieland Hoffmann
80 99 * Yuval Langer
81 100
82 101
83 102 Issues closed in 3.0
84 103 --------------------
85 104
86 105 GitHub stats for 2014/04/02 - 2015/02/13 (since 2.0)
87 106
88 107 These lists are automatically generated, and may be incomplete or contain duplicates.
89 108
90 109 We closed 469 issues and merged 925 pull requests.
91 110 The full list can be seen `on GitHub <https://github.com/ipython/ipython/milestones/3.0>`_.
92 111
93 112 The following 155 authors contributed 5975 commits.
94 113
95 114 * A.J. Holyoake
96 115 * abalkin
97 116 * Adam Hodgen
98 117 * Adrian Price-Whelan
99 118 * Amin Bandali
100 119 * Andreas Amann
101 120 * Andrew Dawes
102 121 * Andrew Jesaitis
103 122 * Andrew Payne
104 123 * AnneTheAgile
105 124 * Aron Ahmadia
106 125 * Ben Duffield
107 126 * Benjamin ABEL
108 127 * Benjamin Ragan-Kelley
109 128 * Benjamin Schultz
110 129 * BjΓΆrn GrΓΌning
111 130 * BjΓΆrn Linse
112 131 * Blake Griffith
113 132 * Boris Egorov
114 133 * Brian E. Granger
115 134 * bsvh
116 135 * Carlos Cordoba
117 136 * Cedric GESTES
118 137 * cel
119 138 * chebee7i
120 139 * Christoph Gohlke
121 140 * CJ Carey
122 141 * Cyrille Rossant
123 142 * Dale Jung
124 143 * DamiΓ‘n Avila
125 144 * Damon Allen
126 145 * Daniel B. Vasquez
127 146 * Daniel Rocco
128 147 * Daniel Wehner
129 148 * Dav Clark
130 149 * David Hirschfeld
131 150 * David Neto
132 151 * dexterdev
133 152 * Dimitry Kloper
134 153 * dongweiming
135 154 * Doug Blank
136 155 * drevicko
137 156 * Dustin Rodriguez
138 157 * Eric Firing
139 158 * Eric Galloway
140 159 * Erik M. Bray
141 160 * Erik Tollerud
142 161 * Ezequiel (Zac) Panepucci
143 162 * Fernando Perez
144 163 * foogunlana
145 164 * Francisco de la PeΓ±a
146 165 * George Titsworth
147 166 * Gordon Ball
148 167 * gporras
149 168 * Grzegorz RoΕΌniecki
150 169 * Helen ST
151 170 * immerrr
152 171 * Ingolf Becker
153 172 * Jakob Gager
154 173 * James Goppert
155 174 * James Porter
156 175 * Jan Schulz
157 176 * Jason Goad
158 177 * Jason Gors
159 178 * Jason Grout
160 179 * Jason Newton
161 180 * jdavidheiser
162 181 * Jean-Christophe Jaskula
163 182 * Jeff Hemmelgarn
164 183 * Jeffrey Bush
165 184 * Jeroen Demeyer
166 185 * Jessica B. Hamrick
167 186 * Jessica Frazelle
168 187 * jhemmelg
169 188 * Jim Garrison
170 189 * Joel Nothman
171 190 * Johannes Feist
172 191 * John Stowers
173 192 * John Zwinck
174 193 * jonasc
175 194 * Jonathan Frederic
176 195 * Juergen Hasch
177 196 * Julia Evans
178 197 * Justyna Ilczuk
179 198 * JΓΆrg Dietrich
180 199 * K.-Michael Aye
181 200 * Kalibri
182 201 * Kester Tong
183 202 * Kyle Kelley
184 203 * Kyle Rawlins
185 204 * Lev Abalkin
186 205 * Manuel Riel
187 206 * Martin Bergtholdt
188 207 * Martin Spacek
189 208 * Mateusz Paprocki
190 209 * Mathieu
191 210 * Matthias Bussonnier
192 211 * Maximilian Albert
193 212 * mbyt
194 213 * MechCoder
195 214 * Mohan Raj Rajamanickam
196 215 * mvr
197 216 * Narahari
198 217 * Nathan Goldbaum
199 218 * Nathan Heijermans
200 219 * Nathaniel J. Smith
201 220 * ncornette
202 221 * Nicholas Bollweg
203 222 * Nick White
204 223 * Nikolay Koldunov
205 224 * Nile Geisinger
206 225 * Olga Botvinnik
207 226 * Osada Paranaliyanage
208 227 * Pankaj Pandey
209 228 * Pascal Bugnion
210 229 * patricktokeeffe
211 230 * Paul Ivanov
212 231 * Peter Odding
213 232 * Peter Parente
214 233 * Peter WΓΌrtz
215 234 * Phil Elson
216 235 * Phillip Nordwall
217 236 * Pierre Gerold
218 237 * Pierre Haessig
219 238 * Raffaele De Feo
220 239 * Ramiro GΓ³mez
221 240 * Reggie Pierce
222 241 * Remi Rampin
223 242 * Renaud Richardet
224 243 * Richard Everson
225 244 * Scott Sanderson
226 245 * Silvia Vinyes
227 246 * Simon Guillot
228 247 * Spencer Nelson
229 248 * Stefan Zimmermann
230 249 * Steve Chan
231 250 * Steven Anton
232 251 * Steven Silvester
233 252 * sunny
234 253 * Susan Tan
235 254 * Sylvain Corlay
236 255 * Tarun Gaba
237 256 * Thomas Ballinger
238 257 * Thomas Kluyver
239 258 * Thomas Robitaille
240 259 * Thomas Spura
241 260 * Tobias Oberstein
242 261 * Torsten Bittner
243 262 * unknown
244 263 * v923z
245 264 * vaibhavsagar
246 265 * W. Trevor King
247 266 * weichm
248 267 * Xiuming Chen
249 268 * Yaroslav Halchenko
250 269 * zah
@@ -1,367 +1,376 b''
1 1 ============
2 2 3.x Series
3 3 ============
4 4
5 IPython 3.2.1
6 =============
7
8 IPython 3.2.1 is a small bugfix release, primarily for cross-site security fixes in the notebook.
9 Users are **strongly** encouraged to upgrade immediately.
10 There are also a few small unicode and nbconvert-related fixes.
11
12 See :ref:`issues_list_3` for details.
13
5 14
6 15 IPython 3.2
7 16 ===========
8 17
9 18 IPython 3.2 contains important security fixes. Users are **strongly** encouraged to upgrade immediately.
10 19
11 20 Highlights:
12 21
22 - Address cross-site scripting vulnerabilities CVE-2015-4706, CVE-2015-4707
13 23 - A security improvement that set the secure attribute to login cookie to prevent them to be sent over http
14 24 - Revert the face color of matplotlib axes in the inline backend to not be transparent.
15 25 - Enable mathjax safe mode by default
16 26 - Fix XSS vulnerability in JSON error messages
17 27 - Various widget-related fixes
18 28
19 29 See :ref:`issues_list_3` for details.
20 30
21 31
22
23 32 IPython 3.1
24 33 ===========
25 34
26 35 Released April 3, 2015
27 36
28 37 The first 3.x bugfix release, with 33 contributors and 344 commits.
29 38 This primarily includes bugfixes to notebook layout and focus problems.
30 39
31 40
32 41 Highlights:
33 42
34 43 - Various focus jumping and scrolling fixes in the notebook.
35 44 - Various message ordering and widget fixes in the notebook.
36 45 - Images in markdown and output are confined to the notebook width.
37 46 An `.unconfined` CSS class is added to disable this behavior per-image.
38 47 The resize handle on output images is removed.
39 48 - Improved ordering of tooltip content for Python functions, putting the signature at the top.
40 49 - Fix UnicodeErrors when displaying some objects with unicode reprs on Python 2.
41 50 - Set the kernel's working directory to the notebook directory when running ``nbconvert --execute``,
42 51 so that behavior matches the live notebook.
43 52 - Allow setting custom SSL options for the tornado server with ``NotebookApp.ssl_options``,
44 53 and protect against POODLE with default settings by disabling SSLv3.
45 54 - Fix memory leak in the IPython.parallel Controller on Python 3.
46 55
47 56
48 57 See :ref:`issues_list_3` for details.
49 58
50 59
51 60 Release 3.0
52 61 ===========
53 62
54 63 Released February 27, 2015
55 64
56 65 This is a really big release. Over 150 contributors, and almost 6000 commits in a bit under a year.
57 66 Support for languages other than Python is greatly improved,
58 67 notebook UI has been significantly redesigned,
59 68 and a lot of improvement has happened in the experimental interactive widgets.
60 69 The message protocol and document format have both been updated,
61 70 while maintaining better compatibility with previous versions than prior updates.
62 71 The notebook webapp now enables editing of any text file, and even
63 72 a web-based terminal (on Unix platforms).
64 73
65 74 3.x will be the last monolithic release of IPython,
66 75 as the next release cycle will see the growing project split into its Python-specific and language-agnostic components.
67 76 Language-agnostic projects (notebook, qtconsole, etc.) will move under the umbrella of the new Project Jupyter name,
68 77 while Python-specific projects (interactive Python shell, Python kernel, IPython.parallel)
69 78 will remain under IPython, and be split into a few smaller packages.
70 79 To reflect this, IPython is in a bit of a transition state.
71 80 The logo on the notebook is now the Jupyter logo.
72 81 When installing kernels system-wide, they go in a `jupyter` directory.
73 82 We are going to do our best to ease this transition for users and developers.
74 83
75 84 Big changes are ahead.
76 85
77 86
78 87 Using different kernels
79 88 -----------------------
80 89
81 90 .. image:: ../_images/kernel_selector_screenshot.png
82 91 :alt: Screenshot of 'new' dropdown showing different kernels
83 92 :align: center
84 93
85 94 You can now choose a kernel for a notebook within the user interface, rather
86 95 than starting up a separate notebook server for each kernel you want to use. The
87 96 syntax highlighting adapts to match the language you're working in.
88 97
89 98 Information about the kernel is stored in the notebook file, so when you open a
90 99 notebook, it will automatically start the correct kernel.
91 100
92 101 It is also easier to use the Qt console and the terminal console with other
93 102 kernels, using the --kernel flag::
94 103
95 104 ipython qtconsole --kernel bash
96 105 ipython console --kernel bash
97 106
98 107 # To list available kernels
99 108 ipython kernelspec list
100 109
101 110 Kernel authors should see :ref:`kernelspecs` for how to register their kernels
102 111 with IPython so that these mechanisms work.
103 112
104 113 Typing unicode identifiers
105 114 --------------------------
106 115
107 116 .. image:: /_images/unicode_completion.png
108 117
109 118 Complex expressions can be much cleaner when written with a wider choice of
110 119 characters. Python 3 allows unicode identifiers, and IPython 3 makes it easier
111 120 to type those, using a feature from Julia. Type a backslash followed by a LaTeX
112 121 style short name, such as ``\alpha``. Press tab, and it will turn into Ξ±.
113 122
114 123 Widget migration guide
115 124 ----------------------
116 125 The widget framework has a lot of backwards incompatible changes.
117 126 For information about migrating widget notebooks and custom widgets to 3.0 refer
118 127 to the :doc:`widget migration guide<version3_widget_migration>`.
119 128
120 129 Other new features
121 130 ------------------
122 131
123 132 * :class:`~.TextWidget` and :class:`~.TextareaWidget` objects now include a
124 133 ``placeholder`` attribute, for displaying placeholder text before the
125 134 user has typed anything.
126 135
127 136 * The :magic:`load` magic can now find the source for objects in the user namespace.
128 137 To enable searching the namespace, use the ``-n`` option.
129 138
130 139 .. sourcecode:: ipython
131 140
132 141 In [1]: %load -n my_module.some_function
133 142
134 143 * :class:`~.DirectView` objects have a new :meth:`~.DirectView.use_cloudpickle`
135 144 method, which works like ``view.use_dill()``, but causes the ``cloudpickle``
136 145 module from PiCloud's `cloud`__ library to be used rather than dill or the
137 146 builtin pickle module.
138 147
139 148 __ https://pypi.python.org/pypi/cloud
140 149
141 150 * Added a .ipynb exporter to nbconvert. It can be used by passing `--to notebook`
142 151 as a commandline argument to nbconvert.
143 152
144 153 * New nbconvert preprocessor called :class:`~.ClearOutputPreprocessor`. This
145 154 clears the output from IPython notebooks.
146 155
147 156 * New preprocessor for nbconvert that executes all the code cells in a notebook.
148 157 To run a notebook and save its output in a new notebook::
149 158
150 159 ipython nbconvert InputNotebook --ExecutePreprocessor.enabled=True --to notebook --output Executed
151 160
152 161 * Consecutive stream (stdout/stderr) output is merged into a single output
153 162 in the notebook document.
154 163 Previously, all output messages were preserved as separate output fields in the JSON.
155 164 Now, the same merge is applied to the stored output as the displayed output,
156 165 improving document load time for notebooks with many small outputs.
157 166
158 167 * ``NotebookApp.webapp_settings`` is deprecated and replaced with
159 168 the more informatively named ``NotebookApp.tornado_settings``.
160 169
161 170 * Using :magic:`timeit` prints warnings if there is atleast a 4x difference in timings
162 171 between the slowest and fastest runs, since this might meant that the multiple
163 172 runs are not independent of one another.
164 173
165 174 * It's now possible to provide mechanisms to integrate IPython with other event
166 175 loops, in addition to the ones we already support. This lets you run GUI code
167 176 in IPython with an interactive prompt, and to embed the IPython
168 177 kernel in GUI applications. See :doc:`/config/eventloops` for details. As part
169 178 of this, the direct ``enable_*`` and ``disable_*`` functions for various GUIs
170 179 in :mod:`IPython.lib.inputhook` have been deprecated in favour of
171 180 :meth:`~.InputHookManager.enable_gui` and :meth:`~.InputHookManager.disable_gui`.
172 181
173 182 * A ``ScrollManager`` was added to the notebook. The ``ScrollManager`` controls how the notebook document is scrolled using keyboard. Users can inherit from the ``ScrollManager`` or ``TargetScrollManager`` to customize how their notebook scrolls. The default ``ScrollManager`` is the ``SlideScrollManager``, which tries to scroll to the nearest slide or sub-slide cell.
174 183
175 184 * The function :func:`~IPython.html.widgets.interaction.interact_manual` has been
176 185 added which behaves similarly to :func:`~IPython.html.widgets.interaction.interact`,
177 186 but adds a button to explicitly run the interacted-with function, rather than
178 187 doing it automatically for every change of the parameter widgets. This should
179 188 be useful for long-running functions.
180 189
181 190 * The ``%cython`` magic is now part of the Cython module. Use `%load_ext Cython` with a version of Cython >= 0.21 to have access to the magic now.
182 191
183 192 * The Notebook application now offers integrated terminals on Unix platforms,
184 193 intended for when it is used on a remote server. To enable these, install
185 194 the ``terminado`` Python package.
186 195
187 196 * The Notebook application can now edit any plain text files, via a full-page CodeMirror instance.
188 197
189 198 * Setting the default highlighting language for nbconvert with the config option
190 199 ``NbConvertBase.default_language`` is deprecated. Nbconvert now respects
191 200 metadata stored in the :ref:`kernel spec <kernelspecs>`.
192 201
193 202 * IPython can now be configured systemwide, with files in :file:`/etc/ipython`
194 203 or :file:`/usr/local/etc/ipython` on Unix systems,
195 204 or :file:`{%PROGRAMDATA%}\\ipython` on Windows.
196 205
197 206 * Added support for configurable user-supplied `Jinja
198 207 <http://jinja.pocoo.org/>`_ HTML templates for the notebook. Paths to
199 208 directories containing template files can be specified via
200 209 ``NotebookApp.extra_template_paths``. User-supplied template directories
201 210 searched first by the notebook, making it possible to replace existing
202 211 templates with your own files.
203 212
204 213 For example, to replace the notebook's built-in ``error.html`` with your own,
205 214 create a directory like ``/home/my_templates`` and put your override template
206 215 at ``/home/my_templates/error.html``. To start the notebook with your custom
207 216 error page enabled, you would run::
208 217
209 218 ipython notebook '--extra_template_paths=["/home/my_templates/"]'
210 219
211 220 It's also possible to override a template while also `inheriting
212 221 <http://jinja.pocoo.org/docs/dev/templates/#template-inheritance>`_ from that
213 222 template, by prepending ``templates/`` to the ``{% extends %}`` target of
214 223 your child template. This is useful when you only want to override a
215 224 specific block of a template. For example, to add additional CSS to the
216 225 built-in ``error.html``, you might create an override that looks like::
217 226
218 227 {% extends "templates/error.html" %}
219 228
220 229 {% block stylesheet %}
221 230 {{super()}}
222 231 <style type="text/css">
223 232 /* My Awesome CSS */
224 233 </style>
225 234 {% endblock %}
226 235
227 236 * Added a widget persistence API. This allows you to persist your notebooks interactive widgets.
228 237 Two levels of control are provided:
229 238 1. Higher level- ``WidgetManager.set_state_callbacks`` allows you to register callbacks for loading and saving widget state. The callbacks you register are automatically called when necessary.
230 239 2. Lower level- the ``WidgetManager`` Javascript class now has ``get_state`` and ``set_state`` methods that allow you to get and set the state of the widget runtime.
231 240
232 241 Example code for persisting your widget state to session data::
233 242
234 243 %%javascript
235 244 require(['widgets/js/manager'], function(manager) {
236 245 manager.WidgetManager.set_state_callbacks(function() { // Load
237 246 return JSON.parse(sessionStorage.widgets_state || '{}');
238 247 }, function(state) { // Save
239 248 sessionStorage.widgets_state = JSON.stringify(state);
240 249 });
241 250 });
242 251
243 252 * Enhanced support for :magic:`env` magic. As before, :magic:`env` with no
244 253 arguments displays all environment variables and values. Additionally,
245 254 :magic:`env` can be used to get or set individual environment variables. To
246 255 display an individual value, use the `%env var` syntax. To set a value, use
247 256 `env var val` or `env var=val`. Python value expansion using `$` works as usual.
248 257
249 258
250 259 Backwards incompatible changes
251 260 ------------------------------
252 261
253 262 * The :ref:`message protocol <messaging>` has been updated from version 4 to version 5.
254 263 Adapters are included, so IPython frontends can still talk to kernels that
255 264 implement protocol version 4.
256 265
257 266 * The :ref:`notebook format <nbformat>` has been updated from version 3 to version 4.
258 267 Read-only support for v4 notebooks has been backported to IPython 2.4.
259 268 Notable changes:
260 269
261 270 * heading cells are removed in favor or markdown headings
262 271 * notebook outputs and output messages are more consistent with each other
263 272 * use :func:`IPython.nbformat.read` and :func:`~IPython.nbformat.write`
264 273 to read and write notebook files
265 274 instead of the deprecated :mod:`IPython.nbformat.current` APIs.
266 275
267 276 You can downgrade a notebook to v3 via ``nbconvert``::
268 277
269 278 ipython nbconvert --to notebook --nbformat 3 <notebook>
270 279
271 280 which will create :file:`notebook.v3.ipynb`, a copy of the notebook in v3 format.
272 281
273 282 * :func:`IPython.core.oinspect.getsource` call specification has changed:
274 283
275 284 * `oname` keyword argument has been added for property source formatting
276 285 * `is_binary` keyword argument has been dropped, passing ``True`` had
277 286 previously short-circuited the function to return ``None`` unconditionally
278 287
279 288 * Removed the octavemagic extension: it is now available as ``oct2py.ipython``.
280 289
281 290 * Creating PDFs with LaTeX no longer uses a post processor.
282 291 Use `nbconvert --to pdf` instead of `nbconvert --to latex --post pdf`.
283 292
284 293 * Used https://github.com/jdfreder/bootstrap2to3 to migrate the Notebook to Bootstrap 3.
285 294
286 295 Additional changes:
287 296
288 297 - Set `.tab-content .row` `0px;` left and right margin (bootstrap default is `-15px;`)
289 298 - Removed `height: @btn_mini_height;` from `.list_header>div, .list_item>div` in `tree.less`
290 299 - Set `#header` div `margin-bottom: 0px;`
291 300 - Set `#menus` to `float: left;`
292 301 - Set `#maintoolbar .navbar-text` to `float: none;`
293 302 - Added no-padding convenience class.
294 303 - Set border of #maintoolbar to 0px
295 304
296 305 * Accessing the `container` DOM object when displaying javascript has been
297 306 deprecated in IPython 2.0 in favor of accessing `element`. Starting with
298 307 IPython 3.0 trying to access `container` will raise an error in browser
299 308 javascript console.
300 309
301 310 * ``IPython.utils.py3compat.open`` was removed: :func:`io.open` provides all
302 311 the same functionality.
303 312
304 313 * The NotebookManager and ``/api/notebooks`` service has been replaced by
305 314 a more generic ContentsManager and ``/api/contents`` service,
306 315 which supports all kinds of files.
307 316 * The Dashboard now lists all files, not just notebooks and directories.
308 317 * The ``--script`` hook for saving notebooks to Python scripts is removed,
309 318 use :samp:`ipython nbconvert --to python {notebook}` instead.
310 319
311 320 * The ``rmagic`` extension is deprecated, as it is now part of rpy2. See
312 321 :mod:`rpy2.ipython.rmagic`.
313 322
314 323 * :meth:`~.KernelManager.start_kernel` and :meth:`~.KernelManager.format_kernel_cmd`
315 324 no longer accept a ``executable`` parameter. Use the kernelspec machinery instead.
316 325
317 326 * The widget classes have been renamed from `*Widget` to `*`. The old names are
318 327 still functional, but are deprecated. i.e. `IntSliderWidget` has been renamed
319 328 to `IntSlider`.
320 329 * The ContainerWidget was renamed to Box and no longer defaults as a flexible
321 330 box in the web browser. A new FlexBox widget was added, which allows you to
322 331 use the flexible box model.
323 332
324 333 * The notebook now uses a single websocket at `/kernels/<kernel-id>/channels` instead of separate
325 334 `/kernels/<kernel-id>/{shell|iopub|stdin}` channels. Messages on each channel are identified by a
326 335 `channel` key in the message dict, for both send and recv.
327 336
328 337
329 338 Content Security Policy
330 339 ```````````````````````
331 340
332 341 The Content Security Policy is a web standard for adding a layer of security to
333 342 detect and mitigate certain classes of attacks, including Cross Site Scripting
334 343 (XSS) and data injection attacks. This was introduced into the notebook to
335 344 ensure that the IPython Notebook and its APIs (by default) can only be embedded
336 345 in an iframe on the same origin.
337 346
338 347 Override ``headers['Content-Security-Policy']`` within your notebook
339 348 configuration to extend for alternate domains and security settings.::
340 349
341 350 c.NotebookApp.tornado_settings = {
342 351 'headers': {
343 352 'Content-Security-Policy': "frame-ancestors 'self'"
344 353 }
345 354 }
346 355
347 356 Example policies::
348 357
349 358 Content-Security-Policy: default-src 'self' https://*.jupyter.org
350 359
351 360 Matches embeddings on any subdomain of jupyter.org, so long as they are served
352 361 over SSL.
353 362
354 363 There is a `report-uri <https://developer.mozilla.org/en-US/docs/Web/Security/CSP/CSP_policy_directives#report-uri>`_ endpoint available for logging CSP violations, located at
355 364 ``/api/security/csp-report``. To use it, set ``report-uri`` as part of the CSP::
356 365
357 366 c.NotebookApp.tornado_settings = {
358 367 'headers': {
359 368 'Content-Security-Policy': "frame-ancestors 'self'; report-uri /api/security/csp-report"
360 369 }
361 370 }
362 371
363 372 It simply provides the CSP report as a warning in IPython's logs. The default
364 373 CSP sets this report-uri relative to the ``base_url`` (not shown above).
365 374
366 375 For a more thorough and accurate guide on Content Security Policies, check out
367 376 `MDN's Using Content Security Policy <https://developer.mozilla.org/en-US/docs/Web/Security/CSP/Using_Content_Security_Policy>`_ for more examples.
General Comments 0
You need to be logged in to leave comments. Login now