Hello community,
here is the log from the commit of package python-ipython for openSUSE:Factory
checked in at 2020-02-14 16:25:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-ipython (Old)
and /work/SRC/openSUSE:Factory/.python-ipython.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-ipython"
Fri Feb 14 16:25:18 2020 rev:6 rq:773064 version:7.12.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-ipython/python-ipython-doc.changes
2020-01-19 21:00:24.860144069 +0100
+++
/work/SRC/openSUSE:Factory/.python-ipython.new.26092/python-ipython-doc.changes
2020-02-14 16:25:20.795189741 +0100
@@ -1,0 +2,13 @@
+Sat Feb 8 22:41:18 UTC 2020 - Arun Persaud <[email protected]>
+
+- update to version 7.12.0:
+ * Exit non-zero when ipython is given a file path to run that
+ doesn't exist :ghpull:`12074`
+ * Test PR on ARM64 with Travis-CI :ghpull:`12073`
+ * Update CI to work with latest Pytest :ghpull:`12086`
+ * Add infrastructure to run ipykernel eventloop via trio
+ :ghpull:`12097`
+ * Support git blame ignore revs :ghpull:`12091`
+ * Start multi-line __repr__ s on their own line :ghpull:`12099`
+
+-------------------------------------------------------------------
python-ipython.changes: same change
Old:
----
ipython-7.11.1.pdf
ipython-7.11.1.tar.gz
ipython-7.11.1.zip
New:
----
ipython-7.12.0.pdf
ipython-7.12.0.tar.gz
ipython-7.12.0.zip
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-ipython-doc.spec ++++++
--- /var/tmp/diff_new_pack.YXh8nF/_old 2020-02-14 16:25:23.231191063 +0100
+++ /var/tmp/diff_new_pack.YXh8nF/_new 2020-02-14 16:25:23.231191063 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-ipython-doc
#
-# Copyright (c) 2020 SUSE LLC.
+# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,9 +19,9 @@
# This package has to be kept separate from the main package to avoid
# dependency loops with most of the core jupyter packages.
%define oldpython python
-%define doc_ver 7.11.1
+%define doc_ver 7.12.0
Name: python-ipython-doc
-Version: 7.11.1
+Version: 7.12.0
Release: 0
Summary: Documentation for python3-jupyter_ipython
License: BSD-3-Clause
++++++ python-ipython.spec ++++++
--- /var/tmp/diff_new_pack.YXh8nF/_old 2020-02-14 16:25:23.243191070 +0100
+++ /var/tmp/diff_new_pack.YXh8nF/_new 2020-02-14 16:25:23.243191070 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-ipython
#
-# Copyright (c) 2020 SUSE LLC.
+# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,7 +20,7 @@
%define skip_python2 1
%bcond_without iptest
Name: python-ipython
-Version: 7.11.1
+Version: 7.12.0
Release: 0
Summary: Rich architecture for interactive computing with Python
License: BSD-3-Clause
++++++ ipython-7.11.1.pdf -> ipython-7.12.0.pdf ++++++
(binary differes)
++++++ ipython-7.11.1.tar.gz -> ipython-7.12.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipython-7.11.1/IPython/core/async_helpers.py
new/ipython-7.12.0/IPython/core/async_helpers.py
--- old/ipython-7.11.1/IPython/core/async_helpers.py 2019-12-28
10:53:03.000000000 +0100
+++ new/ipython-7.12.0/IPython/core/async_helpers.py 2020-02-01
02:06:52.000000000 +0100
@@ -146,20 +146,20 @@
If it works, assume it should be async. Otherwise Return False.
- Not handled yet: If the block of code has a return statement as the top
+ Not handled yet: If the block of code has a return statement as the top
level, it will be seen as async. This is a know limitation.
"""
if sys.version_info > (3, 8):
try:
code = compile(cell, "<>", "exec",
flags=getattr(ast,'PyCF_ALLOW_TOP_LEVEL_AWAIT', 0x0))
return inspect.CO_COROUTINE & code.co_flags == inspect.CO_COROUTINE
- except SyntaxError:
+ except (SyntaxError, MemoryError):
return False
try:
# we can't limit ourself to ast.parse, as it __accepts__ to parse on
# 3.7+, but just does not _compile_
code = compile(cell, "<>", "exec")
- except SyntaxError:
+ except (SyntaxError, MemoryError):
try:
parse_tree = _async_parse_cell(cell)
@@ -167,7 +167,7 @@
v = _AsyncSyntaxErrorVisitor()
v.visit(parse_tree)
- except SyntaxError:
+ except (SyntaxError, MemoryError):
return False
return True
return False
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipython-7.11.1/IPython/core/hooks.py
new/ipython-7.12.0/IPython/core/hooks.py
--- old/ipython-7.11.1/IPython/core/hooks.py 2019-12-28 10:53:03.000000000
+0100
+++ new/ipython-7.12.0/IPython/core/hooks.py 2020-02-01 02:06:52.000000000
+0100
@@ -37,7 +37,6 @@
import os
import subprocess
-import warnings
import sys
from .error import TryNext
@@ -82,44 +81,6 @@
if wait and proc.wait() != 0:
raise TryNext()
-import tempfile
-from ..utils.decorators import undoc
-
-@undoc
-def fix_error_editor(self,filename,linenum,column,msg):
- """DEPRECATED
-
- Open the editor at the given filename, linenumber, column and
- show an error message. This is used for correcting syntax errors.
- The current implementation only has special support for the VIM editor,
- and falls back on the 'editor' hook if VIM is not used.
-
- Call ip.set_hook('fix_error_editor',yourfunc) to use your own function,
- """
-
- warnings.warn("""
-`fix_error_editor` is deprecated as of IPython 6.0 and will be removed
-in future versions. It appears to be used only for automatically fixing syntax
-error that has been broken for a few years and has thus been removed. If you
-happened to use this function and still need it please make your voice heard on
-the mailing list [email protected] , or on the GitHub Issue tracker:
-https://github.com/ipython/ipython/issues/9649 """, UserWarning)
-
- def vim_quickfix_file():
- t = tempfile.NamedTemporaryFile()
- t.write('%s:%d:%d:%s\n' % (filename,linenum,column,msg))
- t.flush()
- return t
- if os.path.basename(self.editor) != 'vim':
- self.hooks.editor(filename,linenum)
- return
- t = vim_quickfix_file()
- try:
- if os.system('vim --cmd "set errorformat=%f:%l:%c:%m" -q ' + t.name):
- raise TryNext()
- finally:
- t.close()
-
def synchronize_with_editor(self, filename, linenum, column):
pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipython-7.11.1/IPython/core/interactiveshell.py
new/ipython-7.12.0/IPython/core/interactiveshell.py
--- old/ipython-7.11.1/IPython/core/interactiveshell.py 2019-12-28
10:53:03.000000000 +0100
+++ new/ipython-7.12.0/IPython/core/interactiveshell.py 2020-02-01
02:06:52.000000000 +0100
@@ -695,6 +695,13 @@
self.events.trigger('shell_initialized', self)
atexit.register(self.atexit_operations)
+ # The trio runner is used for running Trio in the foreground thread. It
+ # is different from `_trio_runner(async_fn)` in `async_helpers.py`
+ # which calls `trio.run()` for every cell. This runner runs all cells
+ # inside a single Trio event loop. If used, it is set from
+ # `ipykernel.kernelapp`.
+ self.trio_runner = None
+
def get_ipython(self):
"""Return the currently running IPython instance."""
return self
@@ -715,6 +722,9 @@
else:
self.autoindent = value
+ def set_trio_runner(self, tr):
+ self.trio_runner = tr
+
#-------------------------------------------------------------------------
# init_* methods called by __init__
#-------------------------------------------------------------------------
@@ -2865,7 +2875,9 @@
# when this is the case, we want to run it using the pseudo_sync_runner
# so that code can invoke eventloops (for example via the %run , and
# `%paste` magic.
- if self.should_run_async(raw_cell):
+ if self.trio_runner:
+ runner = self.trio_runner
+ elif self.should_run_async(raw_cell):
runner = self.loop_runner
else:
runner = _pseudo_sync_runner
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipython-7.11.1/IPython/core/pylabtools.py
new/ipython-7.12.0/IPython/core/pylabtools.py
--- old/ipython-7.11.1/IPython/core/pylabtools.py 2019-12-28
10:53:03.000000000 +0100
+++ new/ipython-7.12.0/IPython/core/pylabtools.py 2020-02-01
02:06:52.000000000 +0100
@@ -123,14 +123,18 @@
}
# **kwargs get higher priority
kw.update(kwargs)
-
+
bytes_io = BytesIO()
+ if fig.canvas is None:
+ from matplotlib.backend_bases import FigureCanvasBase
+ FigureCanvasBase(fig)
+
fig.canvas.print_figure(bytes_io, **kw)
data = bytes_io.getvalue()
if fmt == 'svg':
data = data.decode('utf-8')
return data
-
+
def retina_figure(fig, **kwargs):
"""format a figure as a pixel-doubled (retina) PNG"""
pngdata = print_figure(fig, fmt='retina', **kwargs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipython-7.11.1/IPython/core/release.py
new/ipython-7.12.0/IPython/core/release.py
--- old/ipython-7.11.1/IPython/core/release.py 2020-01-01 18:33:40.000000000
+0100
+++ new/ipython-7.12.0/IPython/core/release.py 2020-02-01 02:39:06.000000000
+0100
@@ -20,8 +20,8 @@
# release. 'dev' as a _version_extra string means this is a development
# version
_version_major = 7
-_version_minor = 11
-_version_patch = 1
+_version_minor = 12
+_version_patch = 0
_version_extra = '.dev'
# _version_extra = 'b1'
_version_extra = '' # Uncomment this for full releases
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipython-7.11.1/IPython/core/shellapp.py
new/ipython-7.12.0/IPython/core/shellapp.py
--- old/ipython-7.11.1/IPython/core/shellapp.py 2019-12-28 10:53:03.000000000
+0100
+++ new/ipython-7.12.0/IPython/core/shellapp.py 2020-02-01 02:06:52.000000000
+0100
@@ -404,6 +404,9 @@
fname = self.file_to_run
if os.path.isdir(fname):
fname = os.path.join(fname, "__main__.py")
+ if not os.path.exists(fname):
+ self.log.warning("File '%s' doesn't exist", fname)
+ self.exit(2)
try:
self._exec_file(fname, shell_futures=True)
except:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ipython-7.11.1/IPython/core/tests/test_async_helpers.py
new/ipython-7.12.0/IPython/core/tests/test_async_helpers.py
--- old/ipython-7.11.1/IPython/core/tests/test_async_helpers.py 2019-12-28
10:53:03.000000000 +0100
+++ new/ipython-7.12.0/IPython/core/tests/test_async_helpers.py 2020-02-01
02:06:52.000000000 +0100
@@ -276,6 +276,10 @@
"""
)
+ def test_memory_error(self):
+ with self.assertRaises(MemoryError):
+ iprc("(" * 200 + ")" * 200)
+
@skip_without('curio')
def test_autoawait_curio(self):
iprc("%autoawait curio")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipython-7.11.1/IPython/core/tests/test_pylabtools.py
new/ipython-7.12.0/IPython/core/tests/test_pylabtools.py
--- old/ipython-7.11.1/IPython/core/tests/test_pylabtools.py 2019-12-28
10:53:03.000000000 +0100
+++ new/ipython-7.12.0/IPython/core/tests/test_pylabtools.py 2020-02-01
02:06:52.000000000 +0100
@@ -248,3 +248,9 @@
def test_no_gui_backends():
for k in ['agg', 'svg', 'pdf', 'ps']:
assert k not in pt.backend2gui
+
+
+def test_figure_no_canvas():
+ fig = Figure()
+ fig.canvas = None
+ pt.print_figure(fig)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipython-7.11.1/IPython/core/tests/test_ultratb.py
new/ipython-7.12.0/IPython/core/tests/test_ultratb.py
--- old/ipython-7.11.1/IPython/core/tests/test_ultratb.py 2019-12-28
10:53:03.000000000 +0100
+++ new/ipython-7.12.0/IPython/core/tests/test_ultratb.py 2020-02-01
02:06:52.000000000 +0100
@@ -253,6 +253,13 @@
ip.showsyntaxerror()
+class MemoryErrorTest(unittest.TestCase):
+ def test_memoryerror(self):
+ memoryerror_code = "(" * 200 + ")" * 200
+ with tt.AssertPrints("MemoryError"):
+ ip.run_cell(memoryerror_code)
+
+
class Python3ChainedExceptionsTest(unittest.TestCase):
DIRECT_CAUSE_ERROR_CODE = """
try:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipython-7.11.1/IPython/lib/pretty.py
new/ipython-7.12.0/IPython/lib/pretty.py
--- old/ipython-7.11.1/IPython/lib/pretty.py 2019-12-28 10:53:03.000000000
+0100
+++ new/ipython-7.12.0/IPython/lib/pretty.py 2020-02-01 02:06:52.000000000
+0100
@@ -196,19 +196,22 @@
self.group_queue = GroupQueue(root_group)
self.indentation = 0
+ def _break_one_group(self, group):
+ while group.breakables:
+ x = self.buffer.popleft()
+ self.output_width = x.output(self.output, self.output_width)
+ self.buffer_width -= x.width
+ while self.buffer and isinstance(self.buffer[0], Text):
+ x = self.buffer.popleft()
+ self.output_width = x.output(self.output, self.output_width)
+ self.buffer_width -= x.width
+
def _break_outer_groups(self):
while self.max_width < self.output_width + self.buffer_width:
group = self.group_queue.deq()
if not group:
return
- while group.breakables:
- x = self.buffer.popleft()
- self.output_width = x.output(self.output, self.output_width)
- self.buffer_width -= x.width
- while self.buffer and isinstance(self.buffer[0], Text):
- x = self.buffer.popleft()
- self.output_width = x.output(self.output, self.output_width)
- self.buffer_width -= x.width
+ self._break_one_group(group)
def text(self, obj):
"""Add literal text to the output."""
@@ -248,6 +251,9 @@
"""
Explicitly insert a newline into the output, maintaining correct
indentation.
"""
+ group = self.group_queue.deq()
+ if group:
+ self._break_one_group(group)
self.flush()
self.output.write(self.newline)
self.output.write(' ' * self.indentation)
@@ -687,10 +693,12 @@
"""A pprint that just redirects to the normal repr function."""
# Find newlines and replace them with p.break_()
output = repr(obj)
- for idx,output_line in enumerate(output.splitlines()):
- if idx:
- p.break_()
- p.text(output_line)
+ lines = output.splitlines()
+ with p.group():
+ for idx, output_line in enumerate(lines):
+ if idx:
+ p.break_()
+ p.text(output_line)
def _function_pprint(obj, p, cycle):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipython-7.11.1/IPython/lib/tests/test_pretty.py
new/ipython-7.12.0/IPython/lib/tests/test_pretty.py
--- old/ipython-7.11.1/IPython/lib/tests/test_pretty.py 2019-12-28
10:53:03.000000000 +0100
+++ new/ipython-7.12.0/IPython/lib/tests/test_pretty.py 2020-02-01
02:06:52.000000000 +0100
@@ -68,11 +68,6 @@
def __repr__(self):
return "Breaking(\n)"
-class BreakingReprParent(object):
- def _repr_pretty_(self, p, cycle):
- with p.group(4,"TG: ",":"):
- p.pretty(BreakingRepr())
-
class BadRepr(object):
def __repr__(self):
@@ -151,8 +146,12 @@
"""
Test that p.break_ is used in repr
"""
- output = pretty.pretty(BreakingReprParent())
- expected = "TG: Breaking(\n ):"
+ output = pretty.pretty([[BreakingRepr()]])
+ expected = "[[Breaking(\n )]]"
+ nt.assert_equal(output, expected)
+
+ output = pretty.pretty([[BreakingRepr()]*2])
+ expected = "[[Breaking(\n ),\n Breaking(\n )]]"
nt.assert_equal(output, expected)
def test_bad_repr():
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipython-7.11.1/IPython/utils/_sysinfo.py
new/ipython-7.12.0/IPython/utils/_sysinfo.py
--- old/ipython-7.11.1/IPython/utils/_sysinfo.py 2020-01-01
18:33:54.000000000 +0100
+++ new/ipython-7.12.0/IPython/utils/_sysinfo.py 2020-02-01
02:39:39.000000000 +0100
@@ -1,2 +1,2 @@
# GENERATED BY setup.py
-commit = u"3544c180b"
+commit = u"8bda98619"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipython-7.11.1/IPython/utils/py3compat.py
new/ipython-7.12.0/IPython/utils/py3compat.py
--- old/ipython-7.11.1/IPython/utils/py3compat.py 2019-12-28
11:00:54.000000000 +0100
+++ new/ipython-7.12.0/IPython/utils/py3compat.py 2020-02-01
02:06:52.000000000 +0100
@@ -169,9 +169,6 @@
# Refactor print statements in doctests.
_print_statement_re = re.compile(r"\bprint (?P<expr>.*)$", re.MULTILINE)
-def _print_statement_sub(match):
- expr = match.groups('expr')
- return "print(%s)" % expr
# Abstract u'abc' syntax:
@_modify_str_or_docstring
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipython-7.11.1/MANIFEST.in
new/ipython-7.12.0/MANIFEST.in
--- old/ipython-7.11.1/MANIFEST.in 2019-12-28 10:53:03.000000000 +0100
+++ new/ipython-7.12.0/MANIFEST.in 2020-02-01 02:06:52.000000000 +0100
@@ -24,6 +24,8 @@
exclude docs/\#*
exclude docs/man/*.1.gz
+exclude .git-blame-ignore-revs
+
# Examples
graft examples
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipython-7.11.1/PKG-INFO new/ipython-7.12.0/PKG-INFO
--- old/ipython-7.11.1/PKG-INFO 2020-01-01 18:33:54.000000000 +0100
+++ new/ipython-7.12.0/PKG-INFO 2020-02-01 02:39:39.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: ipython
-Version: 7.11.1
+Version: 7.12.0
Summary: IPython: Productive Interactive Computing
Home-page: https://ipython.org
Author: The IPython Development Team
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipython-7.11.1/README.rst
new/ipython-7.12.0/README.rst
--- old/ipython-7.11.1/README.rst 2019-12-28 10:53:03.000000000 +0100
+++ new/ipython-7.12.0/README.rst 2020-02-01 02:06:52.000000000 +0100
@@ -129,3 +129,18 @@
- `mypython <https://www.asmeurer.com/mypython/>`_
- `ptpython and ptipython <https://pypi.org/project/ptpython/>`
- `xonsh <https://xon.sh/>`
+
+Ignoring commits with git blame.ignoreRevsFile
+==============================================
+
+As of git 2.23, it is possible to make formatting changes without breaking
+``git blame``. See the `git documentation
+<https://git-scm.com/docs/git-config#Documentation/git-config.txt-blameignoreRevsFile>`_
+for more details.
+
+To use this feature you must:
+
+- Install git >= 2.23
+- Configure your local git repo by running:
+ - POSIX: ``tools\configure-git-blame-ignore-revs.sh``
+ - Windows: ``tools\configure-git-blame-ignore-revs.bat``
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipython-7.11.1/docs/source/conf.py
new/ipython-7.12.0/docs/source/conf.py
--- old/ipython-7.11.1/docs/source/conf.py 2019-12-28 10:53:03.000000000
+0100
+++ new/ipython-7.12.0/docs/source/conf.py 2020-01-07 16:43:21.000000000
+0100
@@ -223,7 +223,7 @@
htmlhelp_basename = 'ipythondoc'
intersphinx_mapping = {'python': ('https://docs.python.org/3/', None),
- 'rpy2':
('https://rpy2.readthedocs.io/en/version_2.8.x/', None),
+ 'rpy2': ('https://rpy2.readthedocs.io/en/latest/',
None),
'jupyterclient':
('https://jupyter-client.readthedocs.io/en/latest/', None),
'jupyter':
('https://jupyter.readthedocs.io/en/latest/', None),
'jedi': ('https://jedi.readthedocs.io/en/latest/',
None),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipython-7.11.1/docs/source/interactive/reference.rst
new/ipython-7.12.0/docs/source/interactive/reference.rst
--- old/ipython-7.11.1/docs/source/interactive/reference.rst 2019-12-28
10:53:03.000000000 +0100
+++ new/ipython-7.12.0/docs/source/interactive/reference.rst 2020-02-01
02:06:52.000000000 +0100
@@ -77,8 +77,8 @@
Caution for Windows users
-------------------------
-Windows, unfortunately, uses the '\\' character as a path separator. This is a
-terrible choice, because '\\' also represents the escape character in most
+Windows, unfortunately, uses the ``\`` character as a path separator. This is a
+terrible choice, because ``\`` also represents the escape character in most
modern programming languages, including Python. For this reason, using '/'
character is recommended if you have problems with ``\``. However, in Windows
commands '/' flags options, so you can not use it for the root directory. This
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ipython-7.11.1/docs/source/whatsnew/github-stats-7.rst
new/ipython-7.12.0/docs/source/whatsnew/github-stats-7.rst
--- old/ipython-7.11.1/docs/source/whatsnew/github-stats-7.rst 2019-12-28
10:53:03.000000000 +0100
+++ new/ipython-7.12.0/docs/source/whatsnew/github-stats-7.rst 2020-02-01
02:35:34.000000000 +0100
@@ -1,6 +1,30 @@
Issues closed in the 7.x development cycle
==========================================
+Issues closed in 7.12
+---------------------
+
+GitHub stats for 2020/01/01 - 2020/01/31 (tag: 7.11.1)
+
+These lists are automatically generated, and may be incomplete or contain
duplicates.
+
+We closed 2 issues and merged 14 pull requests.
+The full list can be seen `on GitHub
<https://github.com/ipython/ipython/issues?q=milestone%3A7.12>`__
+
+The following 11 authors contributed 48 commits.
+
+* Augusto
+* Eric Wieser
+* Jeff Potter
+* Mark E. Haase
+* Matthias Bussonnier
+* ossdev07
+* ras44
+* takuya fujiwara
+* Terry Davis
+* Thomas A Caswell
+* yangyang
+
Issues closed in 7.11
---------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipython-7.11.1/docs/source/whatsnew/version7.rst
new/ipython-7.12.0/docs/source/whatsnew/version7.rst
--- old/ipython-7.11.1/docs/source/whatsnew/version7.rst 2020-01-01
18:29:53.000000000 +0100
+++ new/ipython-7.12.0/docs/source/whatsnew/version7.rst 2020-02-01
02:24:41.000000000 +0100
@@ -2,6 +2,23 @@
7.x Series
============
+.. _version 712:
+
+IPython 7.12
+============
+
+IPython 7.12 is a minor update that mostly brings code cleanup, removal of
+longtime deprecated function and a couple update to documentation cleanup as
well.
+
+Notable changes are the following:
+
+ - Exit non-zero when ipython is given a file path to run that doesn't exist
:ghpull:`12074`
+ - Test PR on ARM64 with Travis-CI :ghpull:`12073`
+ - Update CI to work with latest Pytest :ghpull:`12086`
+ - Add infrastructure to run ipykernel eventloop via trio :ghpull:`12097`
+ - Support git blame ignore revs :ghpull:`12091`
+ - Start multi-line ``__repr__`` s on their own line :ghpull:`12099`
+
.. _version 7111:
IPython 7.11.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipython-7.11.1/pytest.ini
new/ipython-7.12.0/pytest.ini
--- old/ipython-7.11.1/pytest.ini 2019-12-28 10:53:03.000000000 +0100
+++ new/ipython-7.12.0/pytest.ini 2020-02-01 02:06:52.000000000 +0100
@@ -1,2 +1,2 @@
[pytest]
-addopts = --duration=10
+addopts = --durations=10