##// END OF EJS Templates
Release IPython 6.0.0rc1
Matthias Bussonnier -
Show More
@@ -1,118 +1,118 b''
1 1 # -*- coding: utf-8 -*-
2 2 """Release data for the IPython project."""
3 3
4 4 #-----------------------------------------------------------------------------
5 5 # Copyright (c) 2008, IPython Development Team.
6 6 # Copyright (c) 2001, Fernando Perez <fernando.perez@colorado.edu>
7 7 # Copyright (c) 2001, Janko Hauser <jhauser@zscout.de>
8 8 # Copyright (c) 2001, Nathaniel Gray <n8gray@caltech.edu>
9 9 #
10 10 # Distributed under the terms of the Modified BSD License.
11 11 #
12 12 # The full license is in the file COPYING.txt, distributed with this software.
13 13 #-----------------------------------------------------------------------------
14 14
15 15 # Name of the package for release purposes. This is the name which labels
16 16 # the tarballs and RPMs made by distutils, so it's best to lowercase it.
17 17 name = 'ipython'
18 18
19 19 # IPython version information. An empty _version_extra corresponds to a full
20 20 # release. 'dev' as a _version_extra string means this is a development
21 21 # version
22 22 _version_major = 6
23 23 _version_minor = 0
24 24 _version_patch = 0
25 25 _version_extra = '.dev'
26 # _version_extra = 'rc1'
26 _version_extra = 'rc1'
27 27 # _version_extra = '' # Uncomment this for full releases
28 28
29 29 # Construct full version string from these.
30 30 _ver = [_version_major, _version_minor, _version_patch]
31 31
32 32 __version__ = '.'.join(map(str, _ver))
33 33 if _version_extra:
34 34 __version__ = __version__ + _version_extra
35 35
36 36 version = __version__ # backwards compatibility name
37 37 version_info = (_version_major, _version_minor, _version_patch, _version_extra)
38 38
39 39 # Change this when incrementing the kernel protocol version
40 40 kernel_protocol_version_info = (5, 0)
41 41 kernel_protocol_version = "%i.%i" % kernel_protocol_version_info
42 42
43 43 description = "IPython: Productive Interactive Computing"
44 44
45 45 long_description = \
46 46 """
47 47 IPython provides a rich toolkit to help you make the most out of using Python
48 48 interactively. Its main components are:
49 49
50 50 * A powerful interactive Python shell
51 51 * A `Jupyter <http://jupyter.org/>`_ kernel to work with Python code in Jupyter
52 52 notebooks and other interactive frontends.
53 53
54 54 The enhanced interactive Python shells have the following main features:
55 55
56 56 * Comprehensive object introspection.
57 57
58 58 * Input history, persistent across sessions.
59 59
60 60 * Caching of output results during a session with automatically generated
61 61 references.
62 62
63 63 * Extensible tab completion, with support by default for completion of python
64 64 variables and keywords, filenames and function keywords.
65 65
66 66 * Extensible system of 'magic' commands for controlling the environment and
67 67 performing many tasks related either to IPython or the operating system.
68 68
69 69 * A rich configuration system with easy switching between different setups
70 70 (simpler than changing $PYTHONSTARTUP environment variables every time).
71 71
72 72 * Session logging and reloading.
73 73
74 74 * Extensible syntax processing for special purpose situations.
75 75
76 76 * Access to the system shell with user-extensible alias system.
77 77
78 78 * Easily embeddable in other Python programs and GUIs.
79 79
80 80 * Integrated access to the pdb debugger and the Python profiler.
81 81
82 82 The latest development version is always available from IPython's `GitHub
83 83 site <http://github.com/ipython>`_.
84 84 """
85 85
86 86 license = 'BSD'
87 87
88 88 authors = {'Fernando' : ('Fernando Perez','fperez.net@gmail.com'),
89 89 'Janko' : ('Janko Hauser','jhauser@zscout.de'),
90 90 'Nathan' : ('Nathaniel Gray','n8gray@caltech.edu'),
91 91 'Ville' : ('Ville Vainio','vivainio@gmail.com'),
92 92 'Brian' : ('Brian E Granger', 'ellisonbg@gmail.com'),
93 93 'Min' : ('Min Ragan-Kelley', 'benjaminrk@gmail.com'),
94 94 'Thomas' : ('Thomas A. Kluyver', 'takowl@gmail.com'),
95 95 'Jorgen' : ('Jorgen Stenarson', 'jorgen.stenarson@bostream.nu'),
96 96 'Matthias' : ('Matthias Bussonnier', 'bussonniermatthias@gmail.com'),
97 97 }
98 98
99 99 author = 'The IPython Development Team'
100 100
101 101 author_email = 'ipython-dev@python.org'
102 102
103 103 url = 'https://ipython.org'
104 104
105 105
106 106 platforms = ['Linux','Mac OSX','Windows']
107 107
108 108 keywords = ['Interactive','Interpreter','Shell', 'Embedding']
109 109
110 110 classifiers = [
111 111 'Framework :: IPython',
112 112 'Intended Audience :: Developers',
113 113 'Intended Audience :: Science/Research',
114 114 'License :: OSI Approved :: BSD License',
115 115 'Programming Language :: Python',
116 116 'Programming Language :: Python :: 3',
117 117 'Topic :: System :: Shells'
118 118 ]
@@ -1,202 +1,190 b''
1 =====================
2 Development version
3 =====================
4
5 This document describes in-flight development work.
6
7 .. warning::
8
9 Please do not edit this file by hand (doing so will likely cause merge
10 conflicts for other Pull Requests). Instead, create a new file in the
11 `docs/source/whatsnew/pr` folder
12
13 1 IPython 6.0
14 2 ===========
15 3
16 4 Released .... ...., 2017
17 5
18 6 IPython 6 feature a major improvement in the completion machinery which is now
19 7 capable of completing non-executed code. It is also the first version of IPython
20 8 to stop compatibility with Python 2, which is still supported on the bugfix only
21 9 5.x branch. Read below to have a non-exhaustive list of new features.
22 10
23 11 Make sure you have pip > 9.0 before upgrading.
24 12 You should be able to update by using:
25 13
26 14 .. code::
27 15
28 16 pip install ipython --upgrade
29 17
30 18
31 19 .. note::
32 20
33 21 If your pip version is greater of equal to pip 9.0.1 you will automatically get
34 22 the most recent version of IPython compatible with your system. THat is to day
35 23 on Python 2 you will get the latest IPython 5.x bugfix, while in Python 3
36 24 you will get the latest 6.x stable version.
37 25
38 26 New completion API and Interface
39 27 --------------------------------
40 28
41 29 The completer Completion API has seen an overhaul, and the new completer have
42 30 plenty of improvement both from the end users of terminal IPython or for
43 31 consumers of the API.
44 32
45 33 This new API is capable of pulling completions from :any:`jedi`, thus allowing
46 34 type inference on non-executed code. If :any:`jedi` is installed completion like
47 35 the following are now becoming possible without code evaluation:
48 36
49 37 >>> data = ['Number of users', 123_456]
50 38 ... data[0].<tab>
51 39
52 40 That is to say, IPython is now capable of inferring that `data[0]` is a string,
53 41 and will suggest completions like `.capitalize`. The completion power of IPython
54 42 will increase with new Jedi releases, and a number of bugs and more completions
55 43 are already available on development version of :any:`jedi` if you are curious.
56 44
57 45 With the help of prompt toolkit, types of completions can be shown in the
58 46 completer interface:
59 47
60 48 .. image:: ../_images/jedi_type_inference_60.png
61 49 :alt: Jedi showing ability to do type inference
62 50 :align: center
63 51 :width: 400px
64 52 :target: ../_images/jedi_type_inference_60.png
65 53
66 54 The appearance of the completer is controlled by the
67 55 ``c.TerminalInteractiveShell.display_completions`` option that will show the
68 56 type differently depending on the value among ``'column'``, ``'multicolumn'``
69 57 and ``'readlinelike'``
70 58
71 59 The use of Jedi also full fill a number of request and fix a number of bugs
72 60 like case insensitive completion, completion after division operator: See
73 61 :ghpull:`10182`.
74 62
75 63 Extra patches and updates will be needed to the :mod:`ipykernel` package for
76 64 this feature to be available to other clients like jupyter Notebook, Lab,
77 65 Nteract, Hydrogen...
78 66
79 67 The use of Jedi can is barely noticeable on recent enough machines, but can be
80 68 feel on older ones, in cases were Jedi behavior need to be adjusted, the amount
81 69 of time given to Jedi to compute type inference can be adjusted with
82 70 ``c.IPCompleter.jedi_compute_type_timeout``, with object whose type were not
83 71 inferred will be shown as ``<unknown>``. Jedi can also be completely deactivated
84 72 by using the ``c.Completer.use_jedi=False`` option.
85 73
86 74
87 75 The old ``Completer.complete()`` API is waiting deprecation and should be
88 76 replaced replaced by ``Completer.completions()`` in a near future. Feedback on
89 77 the current state of the API and suggestions welcome.
90 78
91 79 Python 3 only codebase
92 80 ----------------------
93 81
94 82 One of the large challenges in IPython 6.0 has been the adoption of a pure
95 83 Python 3 code base, which lead us to great length to upstream patches in pip,
96 84 pypi and warehouse to make sure Python 2 system still upgrade to the latest
97 85 compatible Python version compatible.
98 86
99 87 We remind our Python 2 users that IPython 5 is still compatible with Python 2.7,
100 88 still maintained and get regular releases. Using pip 9+, upgrading IPython will
101 89 automatically upgrade to the latest version compatible with your system.
102 90
103 91 .. warning::
104 92
105 93 If you are on a system using an older verison of pip on Python 2, pip may
106 94 still install IPython 6.0 on your system, and IPython will refuse to start.
107 95 You can fix this by ugrading pip, and reinstalling ipython, or forcing pip to
108 96 install an earlier version: ``pip install 'ipython<6'``
109 97
110 98 The ability to use only Python 3 on the code base of IPython has bring a number
111 99 of advantage. Most of the newly written code make use of `optional function type
112 100 anotation <https://www.python.org/dev/peps/pep-0484/>`_ leading to clearer code
113 101 and better documentation.
114 102
115 103 The total size of the repository has also for a first time between releases
116 104 (excluding the big split for 4.0) decreased by about 1500 lines, potentially
117 105 quite a bit more codewide as some documents like this one are append only and
118 106 are about 300 lines long.
119 107
120 108 The removal as of Python2/Python3 shim layer has made the code quite clearer and
121 109 more idiomatic in a number of location, and much friendlier to work with and
122 110 understand. We hope to further embrace Python 3 capability in the next release
123 111 cycle and introduce more of the Python 3 only idioms (yield from, kwarg only,
124 112 general unpacking) in the code base of IPython, and see if we can take advantage
125 113 of these as well to improve user experience with better error messages and
126 114 hints.
127 115
128 116
129 117 Configurable TerminalInteractiveShell, readline interface
130 118 ---------------------------------------------------------
131 119
132 120 IPython gained a new ``c.TerminalIPythonApp.interactive_shell_class`` option
133 121 that allow to customize the class used to start the terminal frontend. This
134 122 should allow user to use custom interfaces, like reviving the former readline
135 123 interface which is now a separate package not actively maintained by the core
136 124 team. See the project to bring back the readline interface: `rlipython
137 125 <https://github.com/ipython/rlipython>`_.
138 126
139 127 This change will be backported to the IPython 5.x series.
140 128
141 129
142 130 Miscs improvements
143 131 ------------------
144 132
145 133
146 134 - The :cellmagic:`capture` magic can now capture the result of a cell (from an
147 135 expression on the last line), as well as printed and displayed output.
148 136 :ghpull:`9851`.
149 137
150 138 - Pressing Ctrl-Z in the terminal debugger now suspends IPython, as it already
151 139 does in the main terminal prompt.
152 140
153 141 - autoreload can now reload ``Enum``. See :ghissue:`10232` and :ghpull:`10316`
154 142
155 143 - IPython.display has gained a :any:`GeoJSON <IPython.display.GeoJSON>` object.
156 144 :ghpull:`10288` and :ghpull:`10253`
157 145
158 146 .. DO NOT EDIT THIS LINE BEFORE RELEASE. FEATURE INSERTION POINT.
159 147
160 148
161 149 Functions Deprecated in 6.x Development cycle
162 150 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
163 151
164 152 - Loading extensions from ``ipython_extension_dir`` print a warning that this
165 153 location is pending deprecation. This should only affect users still having
166 154 extensions installed with ``%install_ext`` which has been deprecated since
167 155 IPython 4.0, and removed in 5.0. Extensions still present in
168 156 ``ipython_extension_dir`` may shadow more recently installed versions using
169 157 pip. It is thus recommended to clean ``ipython_extension_dir`` of any
170 158 extension now available as a package.
171 159
172 160
173 161 - ``IPython.utils.warn`` was deprecated in IPython 4.0, and has now been removed.
174 162 instead of ``IPython.utils.warn`` inbuilt :any:`warnings` module is used.
175 163
176 164
177 165 - The function `IPython.core.oinspect.py:call_tip` is unused, was marked as
178 166 Deprecated (raising a Deprecation Warning) and marked for later removal
179 167 :ghpull:`10104`
180 168
181 169 Backwards incompatible changes
182 170 ------------------------------
183 171
184 172 Functions Removed in 6.x Development cycle
185 173 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
186 174
187 175 The following functions have been removed in the
188 176 development cycle marked for Milestone 6.0.
189 177
190 178 - ``IPython/utils/process.py`` - ``is_cmd_found``
191 179 - ``IPython/utils/process.py`` - ``pycmd2argv``
192 180
193 181 - The `--deep-reload` flag and the corresponding options to inject `dreload` or
194 182 `reload` into the interactive namespace have been removed. You have to
195 183 explicitly import `reload` from `IPython.lib.deepreload` to use it.
196 184
197 185 - the :magic:`profile` used to print current IPython profile in use, and which
198 186 was deprecated in IPython 2.0 does now raise a `DeprecationWarning` error when
199 187 used. It is often confused with the :magic:`prun` and the deprecation remove
200 188 should free up the ``profile`` name in future versions.
201 189
202 190 .. DO NOT EDIT THIS LINE BEFORE RELEASE. INCOMPAT INSERTION POINT.
@@ -1,55 +1,55 b''
1 1 """Various utilities common to IPython release and maintenance tools.
2 2 """
3 3
4 4 # Library imports
5 5 import os
6 6
7 7 # Useful shorthands
8 8 pjoin = os.path.join
9 9 cd = os.chdir
10 10
11 11 # Constants
12 12
13 13 # SSH root address of the archive site
14 14 archive_user = 'ipython@archive.ipython.org'
15 15 archive_dir = 'archive.ipython.org'
16 16 archive = '%s:%s' % (archive_user, archive_dir)
17 17
18 18 # Build commands
19 19 # Source dists
20 20 sdists = './setup.py sdist --formats=gztar'
21 21 # Binary dists
22 22 def buildwheels():
23 sh('python3 setupegg.py bdist_wheel' % py)
23 sh('python3 setupegg.py bdist_wheel')
24 24
25 25 # Utility functions
26 26 def sh(cmd):
27 27 """Run system command in shell, raise SystemExit if it returns an error."""
28 28 print("$", cmd)
29 29 stat = os.system(cmd)
30 30 #stat = 0 # Uncomment this and comment previous to run in debug mode
31 31 if stat:
32 32 raise SystemExit("Command %s failed with code: %s" % (cmd, stat))
33 33
34 34 # Backwards compatibility
35 35 c = sh
36 36
37 37 def get_ipdir():
38 38 """Get IPython directory from command line, or assume it's the one above."""
39 39
40 40 # Initialize arguments and check location
41 41 ipdir = pjoin(os.path.dirname(__file__), os.pardir)
42 42
43 43 ipdir = os.path.abspath(ipdir)
44 44
45 45 cd(ipdir)
46 46 if not os.path.isdir('IPython') and os.path.isfile('setup.py'):
47 47 raise SystemExit('Invalid ipython directory: %s' % ipdir)
48 48 return ipdir
49 49
50 50 try:
51 51 execfile = execfile
52 52 except NameError:
53 53 def execfile(fname, globs, locs=None):
54 54 locs = locs or globs
55 55 exec(compile(open(fname).read(), fname, "exec"), globs, locs)
General Comments 0
You need to be logged in to leave comments. Login now