Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also .

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also .
base repository: python/cpython
Choose a Base Repository
python/cpython
1st1/cpython
Acidburn0zzz/cpython
AlvinRenNo1/cpython
Andreasyin/cpython
ApproximateIdentity/cpython
AraHaan/cpython
Atishay990/cpython
CLANNADHH/cpython
CNXTEoEorg/cpython-1
ChyiYaqing/cpython
CuriousLearner/cpython
DalavanCloud/cpython
DarkmaneTheRobot/cpython
Darshan-excellence/cpython
EpicWink/cpython
ErikHendriks/cpython
Frankenstein1836/cpython
FrostyFeng/cpython
HeidiWindkraft/strict_cpython
JacksonKearl/cpython
Jesse-Bakker/cpython
Kamos86/cpython
KanesAccount/cpython
KrzysztofSzewczyk/Zaskroniec
LALINUX2019/cpython
LenochkaNSK18/cpython
Li-Michael/cpython
Longinushadow/cpython
Longturd/cpython
MuhammadZubair210/cpython
Munyola/cpython
Neo23x0/cpython
NoahGWood/cpython
OnePPCDev/cpython
OpenGemini/cpython
PadmajaVB/cpython
PatrickRudgeri/cpython
PraveenChaudhary/cpython
RekGRpth/cpython
Rosuav/cpython
Seluj78/cpython
Silver-Taurus/cpython
SimiCode/cpython
SystemicCypher/cpython
Uberi/cpython
VIP21/cpython
VisualMemory/cpython
VonBluebaugh/cpython
Wind-River/cpython
Xhollo/cpython
XuZhongCN/cpython
ZhangYunfang/cpython
aclements/cpython
agoose77/cpython
ahcub/cpython
airboat/cpython
aixtools/cpython
ajayjoshi879/cpython
amey589/cpython
andrekorol/cpython
animenon/cpython
arantebw/cpython
babara34r/cpython
badrkamel/cpython
berkerpeksag/cpython
bharel/cpython
bmeck/cpython
bmoffatt/cpython
borisuvarov/cpython
bytebuild/cpython
cagney/cpython
cannibal-4852/cpython
cccl/cpython
christopherkang/cpython
codeanynote/cpython
contail/cpython
damngamerz/cpython
delimitry/cpython
delivrance/cpython
deltaIncrement/cpython
devesh-verma/cpython
dhimmel/cpython
dilenondelfino/cpython
dk1978/cpython
dsoprea/cpython
dstanek/cpython
ethanhs/cpython
fishing161/cpython
fonsp/cpython
frankmadao/cpython
freakboy3742/cpython
freddrake/andresdelfino-cpython
fredrikaverpil/cpython
gowtham5699/cpython
greatspider135/cpython
gvanrossum/cpython
hackfengJam/cpython
hkkhuang/cpython
hongweipeng/cpython
imzhong/cpython
jackass0528/cpython
jansure/cpython
jaraco/cpython
jdemeyer/cpython
jishanshaikh4/cpython
jmzanker/cpython
jnwlkr/cpython
jonejiang/cpython
kadler/cpython
khanhqthai/cpython
koreindian/cpython
kovidgoyal/cpython
kripken/cpython
kuhlenough/cpython-for-VxWorks
kushaldas/cpython
kw-andy/cpython
leost99/cpython
longshifeng/cpython
luojun001/cpython
luoshuxiao/cpython
marcosmagno/cpython
markshannon/cpython
miss-islington/cpython
mkiever/cpython
ml451953014/cpython
mohisen/cpython
nanjekyejoannah/cpython
nhuduy/cpython
niubanjin/cpython
oconnor663/cpython
oranav/cpython
pablogsal/cpython
passengeryjy/cpython
pedrorhian944/cpython
podshumok/cpython
pomidoroshev/cpython
pxinwr/cpython
pynickle/cpython
pythoncapi/cpython
ratnania/cpython
rdb/cpython
refoo/cpython
remitamine/cpython
rhettinger/cpython
rkialashaki/cpython
rohitsr24/cpython
samuelcolvin/cpython
scharron/cpython
schedutron/cpython
seanharr11/cpython
sebospc/cpython
serhiy-storchaka/cpython
shabnam99/cpython
shangzhipei/cpython
sheldonzeng/cpython
shlomif/cpython
sisuad/cpython
snjypl/cpython
stackless-dev/stackless
stealthcopter/cpython
sthagen/cpython
subhashissuara/cpython
sudonitesh/cpython
supitchayapat/cpython
swizl/cnpython
taborda11/cpython
thomascherickal/cpython
tiangolo/cpython
tim-one/cpython
tonybaloney/cpython
tonydapiza/cpython
tovrstra/cpython
trenchmortar/cpython
tripmani/cpython
trishnaguha/cpython
tvikneshwar/cpython
tzickel/cpython
ukbaranwal/cpython
ukysung/cpython
unscientific/cpython
val314159/cpython
veltata/cpython
vlad-tokarev/cpython
vmsp/cpython
vsajip/cpython
vstinner/cpython
worldhema/cpython
wylllorenz/cpython
xmanrui/cpython
ycq091044/cpython
yewsGitHub/cpython
yuc8939/cpython
yutiansut/cpython
yyang42/cpython
zhang-hong-yang/cpython
zhangch9/cpython
zhangyangyu/cpython
zooba/cpython
zsxmatthew/cpython
Nothing to show
base: master
head repository: python/cpython
Choose a Head Repository
python/cpython
1st1/cpython
Acidburn0zzz/cpython
AlvinRenNo1/cpython
Andreasyin/cpython
ApproximateIdentity/cpython
AraHaan/cpython
Atishay990/cpython
CLANNADHH/cpython
CNXTEoEorg/cpython-1
ChyiYaqing/cpython
CuriousLearner/cpython
DalavanCloud/cpython
DarkmaneTheRobot/cpython
Darshan-excellence/cpython
EpicWink/cpython
ErikHendriks/cpython
Frankenstein1836/cpython
FrostyFeng/cpython
HeidiWindkraft/strict_cpython
JacksonKearl/cpython
Jesse-Bakker/cpython
Kamos86/cpython
KanesAccount/cpython
KrzysztofSzewczyk/Zaskroniec
LALINUX2019/cpython
LenochkaNSK18/cpython
Li-Michael/cpython
Longinushadow/cpython
Longturd/cpython
MuhammadZubair210/cpython
Munyola/cpython
Neo23x0/cpython
NoahGWood/cpython
OnePPCDev/cpython
OpenGemini/cpython
PadmajaVB/cpython
PatrickRudgeri/cpython
PraveenChaudhary/cpython
RekGRpth/cpython
Rosuav/cpython
Seluj78/cpython
Silver-Taurus/cpython
SimiCode/cpython
SystemicCypher/cpython
Uberi/cpython
VIP21/cpython
VisualMemory/cpython
VonBluebaugh/cpython
Wind-River/cpython
Xhollo/cpython
XuZhongCN/cpython
ZhangYunfang/cpython
aclements/cpython
agoose77/cpython
ahcub/cpython
airboat/cpython
aixtools/cpython
ajayjoshi879/cpython
amey589/cpython
andrekorol/cpython
animenon/cpython
arantebw/cpython
babara34r/cpython
badrkamel/cpython
berkerpeksag/cpython
bharel/cpython
bmeck/cpython
bmoffatt/cpython
borisuvarov/cpython
bytebuild/cpython
cagney/cpython
cannibal-4852/cpython
cccl/cpython
christopherkang/cpython
codeanynote/cpython
contail/cpython
damngamerz/cpython
delimitry/cpython
delivrance/cpython
deltaIncrement/cpython
devesh-verma/cpython
dhimmel/cpython
dilenondelfino/cpython
dk1978/cpython
dsoprea/cpython
dstanek/cpython
ethanhs/cpython
fishing161/cpython
fonsp/cpython
frankmadao/cpython
freakboy3742/cpython
freddrake/andresdelfino-cpython
fredrikaverpil/cpython
gowtham5699/cpython
greatspider135/cpython
gvanrossum/cpython
hackfengJam/cpython
hkkhuang/cpython
hongweipeng/cpython
imzhong/cpython
jackass0528/cpython
jansure/cpython
jaraco/cpython
jdemeyer/cpython
jishanshaikh4/cpython
jmzanker/cpython
jnwlkr/cpython
jonejiang/cpython
kadler/cpython
khanhqthai/cpython
koreindian/cpython
kovidgoyal/cpython
kripken/cpython
kuhlenough/cpython-for-VxWorks
kushaldas/cpython
kw-andy/cpython
leost99/cpython
longshifeng/cpython
luojun001/cpython
luoshuxiao/cpython
marcosmagno/cpython
markshannon/cpython
miss-islington/cpython
mkiever/cpython
ml451953014/cpython
mohisen/cpython
nanjekyejoannah/cpython
nhuduy/cpython
niubanjin/cpython
oconnor663/cpython
oranav/cpython
pablogsal/cpython
passengeryjy/cpython
pedrorhian944/cpython
podshumok/cpython
pomidoroshev/cpython
pxinwr/cpython
pynickle/cpython
pythoncapi/cpython
ratnania/cpython
rdb/cpython
refoo/cpython
remitamine/cpython
rhettinger/cpython
rkialashaki/cpython
rohitsr24/cpython
samuelcolvin/cpython
scharron/cpython
schedutron/cpython
seanharr11/cpython
sebospc/cpython
serhiy-storchaka/cpython
shabnam99/cpython
shangzhipei/cpython
sheldonzeng/cpython
shlomif/cpython
sisuad/cpython
snjypl/cpython
stackless-dev/stackless
stealthcopter/cpython
sthagen/cpython
subhashissuara/cpython
sudonitesh/cpython
supitchayapat/cpython
swizl/cnpython
taborda11/cpython
thomascherickal/cpython
tiangolo/cpython
tim-one/cpython
tonybaloney/cpython
tonydapiza/cpython
tovrstra/cpython
trenchmortar/cpython
tripmani/cpython
trishnaguha/cpython
tvikneshwar/cpython
tzickel/cpython
ukbaranwal/cpython
ukysung/cpython
unscientific/cpython
val314159/cpython
veltata/cpython
vlad-tokarev/cpython
vmsp/cpython
vsajip/cpython
vstinner/cpython
worldhema/cpython
wylllorenz/cpython
xmanrui/cpython
ycq091044/cpython
yewsGitHub/cpython
yuc8939/cpython
yutiansut/cpython
yyang42/cpython
zhang-hong-yang/cpython
zhangch9/cpython
zhangyangyu/cpython
zooba/cpython
zsxmatthew/cpython
Nothing to show
compare: 3.6
Checking mergeability… Don’t worry, you can still create the pull request.
This comparison is big! We’re only showing the most recent 250 commits
Commits on Oct 29, 2018
Fix test_bdb when running Python is isolated mode.

(cherry picked from commit c0799ec)
…H-10204)

After commit d0f49d2, the output of the
test suite is always buffered as the test output needs to be included in
the JUnit file in same cases (as when a test fails). This has the
consequence that printing or using debuggers (like pdb) in the test
suite does not result in a good user experience anymore.

This commit modifies the test suite runner so it only captures the test
output when the JUnit file is requested to fix the regression so prints
and debuggers are usable again.
(cherry picked from commit 0227748)

Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
Commits on Oct 30, 2018
)

The root widget was accessed as a global variable in the Application's method.
(cherry picked from commit a80af77)

Co-authored-by: Daniel Lovell <lovell.daniel92@gmail.com>
Commits on Oct 31, 2018
…H-10231). (GH-10254)

(cherry picked from commit 3f819ca)
(cherry picked from commit c9a6168)

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
…gument. (GH-10217)

_io.IncrementalNewlineDecoder's initializer possibly assigns out-of-range
value to the bitwise struct field.
(cherry picked from commit b08746b)

Co-authored-by: Xiang Zhang <angwerzx@126.com>
Commits on Nov 01, 2018
Don't call _Py_FatalError_PrintExc() nor flush_std_files() if the
current thread doesn't hold the GIL, or if the current thread
has no Python state thread.

(cherry picked from commit 3a228ab)
…0268). (GH-10281)

(cherry picked from commit 4b5e62d)

Co-authored-by: Pablo Aguiar <scorphus@gmail.com>
https://bugs.python.org/issue35075
(cherry picked from commit bf46a09)

Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
* Include memo in the documented signature of copy.deepcopy()

The memo argument is mentioned lower on the doc page under writing a
`__deepcopy__` method, but is not included in the documented function signature.
This makes it easy to miss, and can lead to incorrect/buggy implementations of
`__deepcopy__` -- which is exatly what just happpend to me!
(cherry picked from commit 0200928)

Co-authored-by: Stephan Hoyer <shoyer@gmail.com>
Commits on Nov 02, 2018
…w match `setup.py` (GH-10289)

This could cause compile errors on macOS or other platforms.
(cherry picked from commit 318ab63)

Co-authored-by: Max Bélanger <aeromax@gmail.com>
Some methods in the os module can accept path-like objects. This is documented in the general documentation but not in the function docstrings. To keep both in sync, the docstrings need to be updated to reflect that path-like objects are also accepted..
(cherry picked from commit b942707)

Co-authored-by: BNMetrics <luna@bnmetrics.com>
Use `__GNUC__` instead of non-existing `__GNUC_MAJOR__`.

(cherry picked from commit e2ed5ad)
Commits on Nov 03, 2018
(cherry picked from commit fe62d87)

Co-authored-by: İsmail Arılık <arilik.ismail@gmail.com>
Commits on Nov 04, 2018
GH-10318) (GH-10326)

(cherry picked from commit 59668aa)

Co-authored-by: Lysandros Nikolaou <lisandrosnik@gmail.com>
Commits on Nov 05, 2018
…ferent lines. (GH-10284) (GH-10335)

Two kind of mistakes:

1. Missed space. After concatenating there is no space between words.

2. Missed comma. Causes unintentional concatenating in a list of strings..
(cherry picked from commit 34fd4c2)
…H-10332) (GH-10338) (GH-10339)

(cherry picked from commit 083a7a1)
(cherry picked from commit 6ad277b)
§31.5.6.3. Importing a source file directly: `module_from_spec` is new in Python 3.5.
(cherry picked from commit 16c8a53)

Co-authored-by: E Kawashima <e-kwsm@users.noreply.github.com>
Commits on Nov 06, 2018
The section is renamed from "IDLE -- console differences".  It mostly
covers the implications of using custom sys.stdxxx objects.
(cherry picked from commit 5e79090)

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
(This should have been done with the first PR for this issue.)
(cherry picked from commit f1d3efc)

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
… systems. (GH-10347)

The test depended on '/usr/share/zoneinfo/posixrules' or equivalent
because it set TZ without explicit DST transition rules. At least
on OpenSUSE Tumbleweed that file is linked to '/etc/localtime',
making the test fail with certain local timezones,
such as 'Europe/Moscow' which doesn't have DST transitions since 2011.
(cherry picked from commit f1b9ad3)

Co-authored-by: Alexey Izbyshev <izbyshev@ispras.ru>
Add a new subsection to the doc.
(cherry picked from commit 75d9d59)

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
Commits on Nov 07, 2018
A program that runs indefinitely can overfill memory.
(cherry picked from commit 76cd0c3)

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
(cherry picked from commit ea6a28c)

Co-authored-by: Andrés Delfino <adelfino@gmail.com>
(cherry picked from commit ca03f3b)

Co-authored-by: Andrés Delfino <adelfino@gmail.com>
(cherry picked from commit d649910)

Co-authored-by: Andrés Delfino <adelfino@gmail.com>
…he index. (GH-10138)

(cherry picked from commit c5eec44)

Co-authored-by: Andrés Delfino <adelfino@gmail.com>
(cherry picked from commit ae31e3f)

Co-authored-by: Andrés Delfino <adelfino@gmail.com>
(cherry picked from commit bfe1839)

Co-authored-by: Andrés Delfino <adelfino@gmail.com>
Allow configure --with-lto to apply to all builds, not just profile-opt builds.

Whether this is actually useful or not must be determined by the person
building CPython using their own toolchain.

My own quick test on x86_64 Debian 9 (gcc 6.3, binutils 2.28) seemed
to suggest that it wasn't, but I expect better toolchains can or will exist
at some point.  The point is to allow it at all.
…H-10400)

The constructor of subprocess.CalledProcessError in the check_output function had an extra None in it.
(cherry picked from commit b939250)

Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
Commits on Nov 08, 2018
(cherry picked from commit cdb96f4)

Co-authored-by: Andrés Delfino <adelfino@gmail.com>
Pydoc now does not duplicate docstrings for aliases of inherited methods.
(cherry picked from commit a44d34e)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Commits on Nov 09, 2018
… (GH-10422)

Fix an off by one error in the peephole optimizer when checking for unreachable code beyond a return.

Do a bounds check within find_op so it can return before going past the end as a safety measure.

7db3c48#diff-a33329ae6ae0bb295d742f0caf93c137
introduced this off by one error while fixing another one nearby.

This bug was shipped in all Python 3.6 and 3.7 releases.

The included unittest won't fail unless you do a clang msan build.

(cherry picked from commit 49fa4a9)
This typo doesn't affect the result because wrong bits are discarded
on implicit conversion to unsigned char, but it trips UBSan
with -fsanitize=implicit-integer-truncation.

https://bugs.python.org/issue35194
(cherry picked from commit 7a69cf4)

Co-authored-by: Alexey Izbyshev <izbyshev@ispras.ru>
1) Convert weird field name "typ" to the more standard "type".
2) For the NUMBER type, convert the value to an int() or float().
3) Simplify ``group(kind)`` to the shorter and faster ``group()`` call.
4) Simplify logic go a single if-elif chain to make this easier to extend.
5) Reorder the tests to match the order the tokens are specified.
   This isn't necessary for correctness but does make the example
   easier to follow.
6) Move the "column" calculation before the if-elif chain so that
   users have the option of using this value in error messages.
(cherry picked from commit b83942c)

Co-authored-by: Raymond Hettinger <rhettinger@users.noreply.github.com>
…0288) (GH-10404)

(cherry picked from commit 556d50d)


Co-authored-by: Julien Palard <julien@palard.fr>
Co-Authored-By: maggyero <gery.ogam@gmail.com>
(cherry picked from commit 009b2f0)

Co-authored-by: Géry Ogam <gery.ogam@gmail.com>
Commits on Nov 10, 2018
(cherry picked from commit 43a74ab)

Co-authored-by: Srinivas  Thatiparthy (శ్రీనివాస్  తాటిపర్తి) <thatiparthysreenivas@gmail.com>
Commits on Nov 11, 2018
The System Preferences Dock "prefer tabs always" setting disables some
IDLE features.  Menus are a bit different than as described for Windows
and Linux.
(cherry picked from commit 50ff02b)

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
…GH-7252)

https://bugs.python.org/issue33699
(cherry picked from commit b086c8a)

Co-authored-by: Andrés Delfino <adelfino@gmail.com>
…_range(). (GH-10442)

This function may access memory which is mapped but is considered
free by libc allocator. It behaves so by design, therefore we
need to suppress sanitizer reports.

GCC doesn't support MSan, so disable only TSan for it.
(cherry picked from commit fd3a91c)

Co-authored-by: Alexey Izbyshev <izbyshev@ispras.ru>
Commits on Nov 12, 2018
The documentation was not covering multiple targets enclosed by
parenthesis nor multiple targets enclosed by brackets, adding them all
would be heavy, an else cover them all and is lighter to read.
(cherry picked from commit 082875d)

Co-authored-by: Julien Palard <julien@palard.fr>
Independently of -> Independent of
(cherry picked from commit cd44980)

Co-authored-by: Srinivas  Thatiparthy (శ్రీనివాస్  తాటిపర్తి) <thatiparthysreenivas@gmail.com>
(cherry picked from commit 9404e77)

Co-authored-by: Andrés Delfino <adelfino@gmail.com>
a asynchronous generator -> an asynchronous generator
(cherry picked from commit a9655b7)

Co-authored-by: Windson yang <wiwindson@outlook.com>
Commits on Nov 13, 2018
…-10493)

Adds configure flags for msan and ubsan builds to make it easier to enable.
These also encode the detail that address sanitizer and memory sanitizer
should disable pymalloc.

Define MEMORY_SANITIZER when appropriate at build time and adds workarounds
to existing code to mark things as initialized where the sanitizer is otherwise unable to
determine that.  This lets our build succeed under the memory sanitizer.  not all tests
pass without sanitizer failures yet but we're in pretty good shape after this.

(cherry picked from commit 1584a00)

Contributed by Gregory P. Smith [Google LLC]

Also includes a whitespace fix from make patchcheck to _posixsubprocess.c - unrelated to the main change that makes the CI happy so I'm just doing it now rather than creating a separate PR.
clang's MemorySanitizer understand getc() but does not understand
getc_unlocked().  Workaround: Don't use it on msan builds.
(cherry picked from commit e6c77d8)

Co-authored-by: Gregory P. Smith <greg@krypto.org>
Rename our new MEMORY_SANITIZER define to _Py_MEMORY_SANITIZER.
Project based C Preprocessor namespacing at its finest. :P
(cherry picked from commit 3015fb8)

Co-authored-by: Gregory P. Smith <greg@krypto.org>
Deprecate _PyObject_GC_TRACK() and _PyObject_GC_UNTRACK() in the
documentation. These macros are removed from Python 3.8 by the commit
1a6be91.
(cherry picked from commit 55b4771)

Co-authored-by: Victor Stinner <vstinner@redhat.com>
) (GH-10518)

If tracemalloc is not tracing Python memory allocations,
_PyMem_DumpTraceback() now suggests to enable tracemalloc
to get the traceback where the memory block has been allocated.
Discovered using clang's MemorySanitizer when it ran python3's
test_fstring test_misformed_unicode_character_name.

An msan build will fail by simply executing: ./python -c 'u"\N"'
(cherry picked from commit 746b2d3)

Co-authored-by: Gregory P. Smith <greg@krypto.org>
Commits on Nov 14, 2018
(cherry picked from commit daeb3c4)

Co-authored-by: l-n-s <supervillain@riseup.net>
(cherry picked from commit bf1355b)

Co-authored-by: Andrés Delfino <adelfino@gmail.com>
(cherry picked from commit 8e0b05e)

Co-authored-by: Andrés Delfino <adelfino@gmail.com>
(cherry picked from commit 6431347)

Co-authored-by: Julien Palard <julien@palard.fr>



https://bugs.python.org/issue32613
Commits on Nov 15, 2018
Remove an unnecessary "that":
... will execute that the body ... ->  ... will execute the body ...
(cherry picked from commit 25221b3)

Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
"single" needs to be decrefed if PyList_Append() fails.
(cherry picked from commit 4c596d5)

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
(cherry picked from commit b65413b)

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
Commits on Nov 16, 2018
(cherry picked from commit c2ccac7)

Co-authored-by: Andrés Delfino <adelfino@gmail.com>
…0565)

(cherry picked from commit 4edeaea)

Co-authored-by: Srinivas  Thatiparthy (శ్రీనివాస్  తాటిపర్తి) <thatiparthysreenivas@gmail.com>
This missed PyErr_NoMemory() could cause a SystemError when calling
_symtable.symtable().
(cherry picked from commit ad65f15)

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
Commits on Nov 17, 2018
(cherry picked from commit 5a087d5)

Co-authored-by: Srinivas Reddy Thatiparthy (శ్రీనివాస్  రెడ్డి తాటిపర్తి) <thatiparthysreenivas@gmail.com>
Commits on Nov 19, 2018
(cherry picked from commit 8b9c33e)

Co-authored-by: Donald Stufft <donald@stufft.io>
Commits on Nov 20, 2018
…x. (GH-10330)

(cherry picked from commit 6c48bf2)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Fixes assertion failures in _datetimemodule.c
introduced in the previous fix (see bpo-31752).

Rather of trying to handle an int subclass as exact int,
let it to use overridden special methods, but check the
result of divmod().
(cherry picked from commit 3ec0f49)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
…10619) (GH-10621)

locale.localeconv() now sets temporarily the LC_CTYPE locale to the
LC_MONETARY locale if the two locales are different and monetary
strings are non-ASCII. This temporary change affects other threads.

Changes:

* locale.localeconv() can now set LC_CTYPE to LC_MONETARY to decode
  monetary fields.
* Add LocaleInfo.grouping_buffer: copy localeconv() grouping string
  since it can be replaced anytime if a different thread calls
  localeconv().

(cherry picked from commit 02e6bf7)
(cherry picked from commit 6eff6b8)
Commits on Nov 21, 2018
…H-10604) (GH-10630)

(cherry picked from commit d936a8f)

Co-authored-by: Julien Palard <julien@palard.fr>
)

I'll watch for 404 on the old URL and will setup an HTTP redirection if needed.
(cherry picked from commit 361e868)

Co-authored-by: Zhiming Wang <github@zmwang.pw>
…anguages. (GH-10558)

(cherry picked from commit 6b73bb5)

Co-authored-by: Julien Palard <julien@palard.fr>
Commits on Nov 22, 2018
os_read_impl() now also truncates the size to _PY_READ_MAX
on macOS, to avoid to allocate a larger buffer even if _Py_read() is
limited to _PY_READ_MAX bytes (ex: INT_MAX on macOS).
(cherry picked from commit 9a0d7a7)

Co-authored-by: Victor Stinner <vstinner@redhat.com>
…GH-10663)

* bpo-9263: _PyObject_Dump() detects freed memory (GH-10061)

_PyObject_Dump() now uses an heuristic to check if the object memory
has been freed: log "<freed object>" in that case.

The heuristic rely on the debug hooks on Python memory allocators
which fills the memory with DEADBYTE (0xDB) when memory is
deallocated. Use PYTHONMALLOC=debug to always enable these debug
hooks.

(cherry picked from commit 82af0b6)

* bpo-9263: Fix _PyObject_Dump() for freed object (#10661)

If _PyObject_Dump() detects that the object is freed, don't try to
dump it (exit immediately).

Enhance also _PyObject_IsFreed(): it now detects if the pointer
itself looks like freed memory.

(cherry picked from commit 2cf5d32)
(cherry picked from commit 95036ea)
Commits on Nov 23, 2018
(cherry picked from commit ba57963)

Co-authored-by: takey <taketakeyyy@gmail.com>
…H-4856)

Importing ProcessPoolExecutor may hang or cause an error when the import
accesses urandom on a low resource platform

https://bugs.python.org/issue29877
(cherry picked from commit 1d817e4)

Co-authored-by: Dustin Spicuzza <dustin@virtualroadside.com>
…-10685)

* bpo-35189: Fix eintr_tester.py (GH-10637)

Call setitimer() before each test method, instead of once per test
case, to ensure that signals are sent in each test method.
Previously, only the first method of a testcase class got signals.

Changes:

* Replace setUpClass() with setUp() and replace tearDownClass() with
  tearDown().
* tearDown() now ensures that at least one signal has been sent.
* Replace support.run_unittest() with unittest.main() which has
  a nicer CLI and automatically discover test cases.

(cherry picked from commit aac1f81)

* bpo-35189: Retry fnctl calls on EINTR (GH-10413)

Modify the following fnctl function to retry if interrupted by a signal
(EINTR): flock, lockf, fnctl.

(cherry picked from commit b409ffa)
Co-Authored-By: nierob <nierob@users.noreply.github.com>
(cherry picked from commit 56742f1)
…H-10675) (GH-10688)

The "-I" command line option (run Python in isolated mode) and -X
options (like -X faulthandler) are now also copied by the
multiprocessing and distutils modules when spawning child processes.
Previously, only -E and -s options (enabled by -I) were copied.

subprocess._args_from_interpreter_flags() now copies the -I flag
and options from sys._xoptions like -X dev.

(cherry picked from commit 9de3632)
…GH-10689)

(cherry picked from commit 5b83ef7)

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
Commits on Nov 25, 2018
GH-10592)

(cherry picked from commit 4bb186d)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
(cherry picked from commit 1586958)

Co-authored-by: Boštjan Mejak <bostjan.xperia@gmail.com>
Commits on Nov 26, 2018
) (GH-10720)

Fix str.format(), float.__format__() and complex.__format__() methods
for non-ASCII decimal point when using the "n" formatter.

Rewrite _PyUnicode_InsertThousandsGrouping(): it now requires
a _PyUnicodeWriter object for the buffer and a Python str object
for digits.

(cherry picked from commit 59423e3)
(cherry picked from commit 6f5fa1b)
… (GH-10725)

(cherry picked from commit 5719f27)

Co-authored-by: Mathieu Dupuy <deronnax@users.noreply.github.com>





https://bugs.python.org/issue35255
Commits on Nov 27, 2018
Fix mktime() overflow error in test_email: run
test_localtime_daylight_true_dst_true() and
test_localtime_daylight_false_dst_true() with a specific timezone.
(cherry picked from commit cfaafda)

Co-authored-by: Victor Stinner <vstinner@redhat.com>
Copy code from master: add assertions on start and value, replace 'i'
iterator with 'end' pointer for the loop stop condition.

_PyUnicode_FastFill(): fix type of 'data', it must not be constant,
since data is modified by FILL().
…0746) (GH-10749)

Fix also return type for few other functions (clear, releasebuffer).
(cherry picked from commit d4f9cf5)
)

(cherry picked from commit 8152402)
(cherry picked from commit ad8ac54)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Commits on Nov 28, 2018
Fix WithThreadsTestPool.test_wrapped_exception()
of test_multiprocessing_fork: join the pool.

WithThreadsTestPool.test_del_pool() is now also decorated
with @support.reap_threads.
(cherry picked from commit b727873)

Co-authored-by: Victor Stinner <vstinner@redhat.com>
…H-10487) (GH-10768)

That section is a tip on how to kill process on Windows for Python prior to 2.7 and 3.2.
3.1 end of support was April 2012 and 2.6 was October 2013, so that hasn't been need for supported versions of Python for more than 5 years. Beside not being needed anymore for a long time, when I read it with the eyes of a Python profane, it makes Python looks bad, like a language from the parts with warts you need to circumvent.
Let's delete that :).
(cherry picked from commit a1c4001)

Co-authored-by: Mathieu Dupuy <deronnax@users.noreply.github.com>
Log TZ to debug a timezone issue... and a few more :-)

(cherry picked from commit 282c03d)
Commits on Nov 29, 2018
test_eintr no longer fails if the signal handler has not been called.
(cherry picked from commit 2956bff)

Co-authored-by: Victor Stinner <vstinner@redhat.com>
PyType_GetFlags() return type is unsigned long, not long.
(cherry picked from commit 9fbcfc0)

Co-authored-by: Eddie Elizondo <eduardo.elizondorueda@gmail.com>
Fix ResourceWarning in platform.dist() and
platform.linux_distribution() on SuSE and Caldera OpenLinux.

Patch by Ville Skyttä.
(cherry picked from commit 7eeab87)

Co-authored-by: Victor Stinner <vstinner@redhat.com>
* stop using ranlib (closes bpo-31625) (#3815)

Instead, simply pass 's' to ar.

* explicitly list objects for the ar command (#3824)

$^ is not portable.

closes bpo-31625
) (GH-10796)

Fix warnings with gcc 8 for wrapperfunc <-> wrapperfunc_kwds casts.

(cherry picked from commit 1c60715)
* bpo-34605, libregrtest: Rename --slaveargs to --worker-args (GH-9099)

Rename also run_tests_slave() to run_tests_worker().

(cherry picked from commit 012f5b9)

* bpo-34279, regrtest: Issue a warning if no tests have been executed (GH-10150)

(cherry picked from commit 9724348)

* test_regrtest: remove unused threading import
(cherry picked from commit 8a73cac)

Co-authored-by: Victor Stinner <vstinner@redhat.com>
Commits on Nov 30, 2018
(cherry picked from commit a2e3585)

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
testAccept() and testRecv() of test_socket.NonBlockingTCPTests have a
race condition: time.sleep() is used as a weak synchronization
primitive and the tests fail randomly on slow buildbots.

Use a reliable threading.Event to fix these tests.

Other changes:

* Replace send() with sendall()
* Expect specific BlockingIOError rather than generic OSError
* Add a timeout to select() in testAccept() and testRecv()
* Use addCleanup() to close sockets
* Use assertRaises()
(cherry picked from commit ebd5d6d)

Co-authored-by: Victor Stinner <vstinner@redhat.com>
…10822)

Fix an undefined behaviour in the pthread implementation of
PyThread_start_new_thread(): add a function wrapper to always return
NULL.

Add pythread_callback struct and pythread_wrapper() to thread_pthread.h.

(cherry picked from commit 9eea6ea)
…ory (GH-10826) (GH-10832)

Modify asyncio tests to utilize the certificates from the test directory
instead of its own set, as they are the same and with each update they had
to be updated as well.

(cherry picked from commit b062ba7)
Commits on Dec 01, 2018
get_gmtoff() now returns time_t instead of int to fix the following
Visual Studio warning:

    Modules\timemodule.c(1183): warning C4244: 'return':
    conversion from 'time_t' to 'int', possible loss of data

(cherry picked from commit 503ce5c)
(cherry picked from commit edeca92)

Co-authored-by: Xtreak <tirkarthi@users.noreply.github.com>
(cherry picked from commit 32bc11c)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Commits on Dec 03, 2018
…yCArg_repr(). (GH-10853)

Use "ll" instead of the nonstandard "q".
(cherry picked from commit 062cbb6)

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
(cherry picked from commit 4013c17)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
)

Also refactor the call recording implementation and add some notes
about its limitations.
(cherry picked from commit 8ca0fa9)

Co-authored-by: Chris Withers <chris@withers.org>
* bpo-35373: Fix PyInit_timezone() error handling

PyInit_timezone() now returns -1 at exit if an exception is raised.
Check also explicitly PyUnicode_DecodeLocale() and Py_BuildValue()
errors.

* bpo-35373: Fix PyInit_time() error handling (GH-10865)

* PyInit_time() now returns NULL if an exception is raised.
* Rename PyInit_timezone() to init_timezone(). "PyInit_" prefix is
  a special prefix for function initializing a module.
  init_timezone() doesn't initialize a module and the function is not
  exported.

(cherry picked from commit 3bb150d)
(cherry picked from commit 5eb78c7)

Co-authored-by: Victor Stinner <vstinner@redhat.com>
Commits on Dec 04, 2018
…Call/_MagicProxy. (GH-10873)

Fix minor typo in test function name.
(cherry picked from commit e63e617)

Co-authored-by: Andrew Dunai <andunai@gmail.com>
Commits on Dec 05, 2018
…-10909)

On Travis CI, FTP tests of test_urllib2net randomly fail with "425
Security: Bad IP connecting".

test.pythoninfo now also logs TRAVIS environment variable.
(cherry picked from commit c11b3b1)

Co-authored-by: Victor Stinner <vstinner@redhat.com>
(cherry picked from commit 4752e65)
GH-10914)

(cherry picked from commit 2a89343)

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
…. (GH-10874)

* [3.6] bpo-35380: Enable TCP_NODELAY for proactor event loop (GH-10867).
(cherry picked from commit 3bc0eba)

Co-authored-by: Andrew Svetlov <andrew.svetlov@gmail.com>
…) (GH-10925)

* posixpath.expanduser() now returns the input path unchanged if
  the HOME environment variable is not set and pwd.getpwuid() raises
  KeyError (the current user identifier doesn't exist in the password
  database).
* Add test_no_home_directory() to test_site.

(cherry picked from commit f2f4555)
…e_reduce(). (GH-9886)

(cherry picked from commit 25d3897)

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
(cherry picked from commit 1ce853f)

Co-authored-by: Andre Delfino <adelfino@gmail.com>
…H-8537) (GH-10936)

When running test_bdb.py as a script, `import test_module` would be
importing the existing Lib/test/test_modules.py instead of the
tempcwd/test_module.py module which was dynamically created by
test_bdb.py itself.
(cherry picked from commit 54fd455)

Co-authored-by: Alex H <1884912+lajarre@users.noreply.github.com>
…H-9419) (GH-10942)

(cherry picked from commit 67a93b3)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
(cherry picked from commit 55f41e4)

Co-authored-by: Andre Delfino <adelfino@gmail.com>
select() calls are retried on EINTR (per PEP 475).  However, if a
timeout was provided and the deadline has passed after running the
signal handlers, rlist, wlist and xlist should be cleared since select(2)
left them unmodified.
(cherry picked from commit 7f52415)

Co-authored-by: Oran Avraham <252748+oranav@users.noreply.github.com>
…ons. (GH-8113). (GH-10946) (GH-10952)

(cherry picked from commit 5b25f1d)
(cherry picked from commit 1de91a0)

Co-authored-by: Sergey Fedoseev <fedoseev.sergey@gmail.com>
…aces. (GH-9165). (GH-10947) (GH-10954)

(cherry picked from commit 34c7f0c)
(cherry picked from commit ac8b47c)

Co-authored-by: William Grzybowski <wg@FreeBSD.org>
)

Add a missing word `as` in `as well as an`.
Linkify `threading.Thread`..
(cherry picked from commit 40a61da)

Co-authored-by: Matt Wheeler <m@funkyhat.org>
Moreover, "python3 -m test test_eintr -v" now avoids redirecting
stdout/stderr to a pipe, the child process inherits stdout/stderr
from the parent.
(cherry picked from commit aa8ae90)

Co-authored-by: Victor Stinner <vstinner@redhat.com>
Escape the \t and \n.
Follow up from #10814..
(cherry picked from commit 2d8f976)

Co-authored-by: E Kawashima <e-kwsm@users.noreply.github.com>
Commits on Dec 06, 2018
…eing deleted (GH-8450) (GH-9677)" (GH-10969)

This reverts commit 07b96a9.
…252. (GH-7278)

(cherry picked from commit 8752dfb)

Co-authored-by: native-api <ivan_pozdeev@mail.ru>
Cherry-picked from 6ea9d54.
…i character. (GH-10863)

(cherry picked from commit 3ffa8b9)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Join 3 pools in these tests:

* test.test_multiprocessing_spawn.WithProcessesTestPool.test_context
* test.test_multiprocessing_spawn.WithProcessesTestPool.test_traceback
(cherry picked from commit 388c8c2)

Co-authored-by: Victor Stinner <vstinner@redhat.com>
(cherry picked from commit 0644b33)

Co-authored-by: Victor Stinner <vstinner@redhat.com>
…-11001)

(cherry picked from commit 42b1d61)
(cherry picked from commit c9566b8)

Co-authored-by: Andre Delfino <adelfino@gmail.com>
Commits on Dec 07, 2018
…s" (GH-10464)

* bpo-34864: warn if "Prefer tabs when opening documents" set to "Always"

* add NEWS entry

* address code review comments

* address second code review comments

* Add entry for idlelib/NEWS.txt.
(cherry picked from commit 9ebe879)

Co-authored-by: Tal Einat <taleinat+github@gmail.com>
…Python 2. (GH-11017) (GH-11022) (GH-11024)

encoding='latin1' should be used for successful decoding.
(cherry picked from commit 8452ca1)
(cherry picked from commit 0d5730e)
…es. (GH-11015) (GH-11020) (GH-11026)

(cherry picked from commit 4c49da0)
(cherry picked from commit 602d307)

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
Commits on Dec 08, 2018
…1034)

* tests: Further validate `wraps` functionality in `unittest.mock.Mock`

Add more tests to validate how `wraps` interacts with other features of
mocks.

* Don't call the wrapped object if `side_effect` is set

When a object is wrapped using `Mock(wraps=...)`, if an user sets a
`side_effect` in one of their methods, return the value of `side_effect`
and don't call the original object.

* Refactor what to be called on `mock_call`

When a `Mock` is called, it should return looking up in the following
order: `side_effect`, `return_value`, `wraps`. If any of the first two
return `mock.DEFAULT`, lookup in the next option.

It makes no sense to check for `wraps` returning default, as it is
supposed to be the original implementation and there is nothing to
fallback to.
(cherry picked from commit f05df0a)

Co-authored-by: Mario Corchero <mariocj89@gmail.com>
…H-11033)

In _localemodule.c and selectmodule.c, remove dead code that would
cause double decrefs if run.

In addition, replace PyList_SetItem() with PyList_SET_ITEM() in cases
where a new list is populated and there is no possibility of an error.

In addition, check if the list changed size in the loop in array_array_fromlist().
(cherry picked from commit 99d56b5)

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
Commits on Dec 09, 2018
(cherry picked from commit 2db96ae)

Co-authored-by: Julien Palard <julien@palard.fr>
(cherry picked from commit ac218bc)

Co-authored-by: Ned Deily <nad@python.org>
.o generated by clang in LTO mode actually are LLVM bitcode files, which
leads to a few errors during configure/build step:

- add lto flags to the BASECFLAGS instead of CFLAGS, as CFLAGS are used
  to build autoconf test case, and some are not compatible with clang LTO
  (they assume binary in the .o, not bitcode)
- force llvm-ar instead of ar, as ar is not aware of .o files generated
  by clang -flto
(cherry picked from commit 5ad36f9)

Co-authored-by: serge-sans-paille <serge.guelton@telecom-bretagne.eu>
When using link time optimizations, the -flto flag is passed to
BASECFLAGS, which makes it propagate to distutils. Those flags
should be reserved for the interpreter and the stdlib extension
modules only, thus moving those flags to CFLAGS_NODIST.
(cherry picked from commit f92c7aa)

Co-authored-by: stratakis <cstratak@redhat.com>
Commits on Dec 10, 2018
…11067)

Fix xml.dom.minidom cloneNode() on a document with an entity: pass
the correct arguments to the user data handler of an entity (fix an
old copy/paste mistake).

Bug spotted and fix proposed by Charalampos Stratakis, initial
reproducer written by Petr Viktorin.

Co-Authored-By: Charalampos Stratakis <cstratak@redhat.com>
Co-Authored-By: Petr Viktorin <encukou@gmail.com>
(cherry picked from commit 8e04186)
The length check for AF_ALG salg_name and salg_type had a off-by-one
error. The code assumed that both values are not necessarily NULL
terminated. However the Kernel code for alg_bind() ensures that the last
byte of both strings are NULL terminated.

Signed-off-by: Christian Heimes <christian@python.org>
(cherry picked from commit 2eb6ad8)
Include <pyconfig.h> ealier in Modules/expat/xmltok.c to define
properly _POSIX_C_SOURCE. Python defines _POSIX_C_SOURCE as 200809L,
whereas <features.h> (included indirectly by <string.h>) defines
_POSIX_C_SOURCE as 199506L.
(cherry picked from commit cf24735)

Co-authored-by: Victor Stinner <vstinner@redhat.com>
(cherry picked from commit b6ef6f6)

Co-authored-by: Victor Stinner <vstinner@redhat.com>
(cherry picked from commit de9e9b4)

Co-authored-by: Andre Delfino <adelfino@gmail.com>
Commits on Dec 11, 2018
…1101)

(cherry picked from commit 7cf3d8e)

Co-authored-by: Ned Deily <nad@python.org>
…H-11077) (GH-11106)

(cherry picked from commit 8905fcc)
… private Tcl/Tk 8.6 (GH-11109)
…GH-11047) (GH-11107) (GH-11108)

(cherry picked from commit bb86bf4)
(cherry picked from commit 3cae16d)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
…st.mock tests (GH-8520) (GH-11032)

(cherry picked from commit 3cf7438)


Co-authored-by: Anirudha Bose <ani07nov@gmail.com>


https://bugs.python.org/issue33747
…1087)

The test only except SIGUSR1Exception inside wait_signal(), but the signal can be sent during subprocess_send_signal() call.
(cherry picked from commit 2ab2afd)

Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
…rkserver on Windows (GH-11086)

Forkserver and fork are not available on Windows and therefore these test must be skipped.
(cherry picked from commit a932d0b)

Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
Commits on Dec 12, 2018
Commits on Dec 14, 2018
Commits on Dec 20, 2018
…H-11267)

"make profile-opt" no longer replaces CFLAGS_NODIST with CFLAGS. It
now adds profile-guided optimization (PGO) flags to CFLAGS_NODIST,
existing CFLAGS_NODIST flags are kept.

(cherry picked from commit 640ed52)
) (GH-11265)

When compiling 3rd party C extensions, the linker flags used by the
compiler for the interpreter and the stdlib modules, will get
leaked into distutils. In order to avoid that, the PY_CORE_LDFLAGS
and PY_LDFLAGS_NODIST are introduced to keep those flags separated.

(cherry picked from commit cf10a75)
…H-11199)

(cherry picked from commit bdabb07)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
) (GH-11210)

(cherry picked from commit 3fcc1e0)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
(cherry picked from commit 57dd79e)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
…GH-10620) (GH-11269)

(cherry picked from commit 3e8f962)

Co-authored-by: Arthur Neufeld <aneufeld@seinesoftware.ca>
Commits on Dec 23, 2018
)

`BLDSHARED` needs to have both `LDFLAGS` and `LDFLAGS_NODIST`, not just `LDFLAGS_NODIST`; `PY_CORE_LDFLAGS` provides both.  For example, as it stands now with just `LDFLAGS_NODIST`, macOS universal builds are broken as the necessary `-arch` flags are no longer passed to the standard library extension module link step from `setup.py` resulting in extension modules being single architecture only.

https://bugs.python.org/issue35257
(cherry picked from commit 44a3ee0)

Co-authored-by: Ned Deily <nad@python.org>
Commits on Dec 24, 2018
….1 (GH-11101)"

This reverts commit 37607f2.

Due to regressions found with using Tk 8.6.9.1, the python.org macOS
installers for 3.6.8 and 3.7.2 are shipping with Tcl/Tk 8.6.8 as used
in previous releases.
Commits on Jan 02, 2019
(cherry picked from commit 7e3fb40)

Co-authored-by: Suriyaa ✌️️ <isc.suriyaa@gmail.com>
(cherry picked from commit 9a69ae8)
Commits on Jan 07, 2019
…ules/_sha3/cleanup.py (GH-11413)

(cherry picked from commit d466c43)

Co-authored-by: Mickaël Schoentgen <contact@tiger-222.fr>
Commits on Jan 09, 2019
…H-10639) (#11477)

(cherry picked from commit cbb1645)

Co-authored-by: Sanyam Khurana <8039608+CuriousLearner@users.noreply.github.com>
Commits on Jan 10, 2019
…cy diff (GH-10639) (GH-11477)" (GH-11509)

This reverts commit 5d9ae8b which was merged to 3.6 in error.
Commits on Jan 16, 2019
Fix a NULL pointer deref in ssl module. The cert parser did not handle CRL
distribution points with empty DP or URI correctly. A malicious or buggy
certificate can result into segfault.

Signed-off-by: Christian Heimes <christian@python.org>

https://bugs.python.org/issue35746
(cherry picked from commit a37f524)

Co-authored-by: Christian Heimes <christian@python.org>
Commits on Jan 18, 2019
…asyncio (GH-11337) (GH-11348)

There is a race condition regarding signal delivery in test_signal_handling_args for
test_asyncio.test_events.KqueueEventLoopTests. The signal can be received at any moment outside the time window provided in the test. The fix is to wait for the signal to be received instead with a bigger timeout.
(cherry picked from commit 5471420)

Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
…11334) (GH-11351)

The problem affects _testWithTimeoutTriggeredSend in test_socket.py.
(cherry picked from commit 1f511e1)

Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
…H-11417)

(cherry picked from commit e9a044e)

Co-authored-by: Harmandeep Singh <harmandeep3091@gmail.com>
…GH-11588)

While the introduction of ModuleNotFoundError was fully backwards
compatible on the import API consumer side, folks providing alternative
implementations of `__import__` need to make an update to be
forward compatible with clients that start relying on the new subclass.

https://bugs.python.org/issue35486
(cherry picked from commit cee29b4)

Co-authored-by: Nick Coghlan <ncoghlan@gmail.com>
Commits on Feb 10, 2019
(cherry picked from commit 9db56fb)

Co-authored-by: Julien Palard <julien@palard.fr>
Commits on Feb 16, 2019
Add credit for the cert parser vulnerability. Mention also Cisco
TALOS-2018-0758 identifier.
Commits on Feb 24, 2019
…Tk (GH-12011) (GH-12013)

(cherry picked from commit aeca373)

Co-authored-by: Ned Deily <nad@python.org>
Commits on Feb 27, 2019
(cherry picked from commit 4173772)

Co-authored-by: Gregory P. Smith <greg@krypto.org>
Commits on Mar 10, 2019
…0258) (GH-12260)

Don't send cookies of domain A without Domain attribute to domain B when domain A is a suffix match of domain B while using a cookiejar with `http.cookiejar.DefaultCookiePolicy` policy.  Patch by Karthikeyan Singaravelan.
(cherry picked from commit ca7fe50)

Co-authored-by: Xtreak <tir.karthi@gmail.com>
Commits on Mar 12, 2019
Co-authored-by: Xtreak <tir.karthi@gmail.com>
Commits on Mar 18, 2019
… initializer feature added in Python 3.7 (GH-12182)
Commits on Mar 20, 2019
…-12461)

(cherry picked from commit fc8284e)

Co-authored-by: Jean-François B <jfbu@free.fr>
Commits on Apr 29, 2019
… (GH-13014)

Under some conditions the earlier fix for bpo-18075, "Infinite recursion
tests triggering a segfault on Mac OS X", now causes failures on macOS
when attempting to change stack limit with resource.setrlimit
resource.RLIMIT_STACK, like regrtest does when running the test suite.
The reverted change had specified a non-default stack size when linking
the python executable on macOS.  As of macOS 10.14.4, the previous
code causes a hard failure when running tests, although similar
failures had been seen under some conditions under some earlier
systems.  For now, revert the original change and resume using
the default stack size when linking the interpreter.
(cherry picked from commit 883dfc6)

Co-authored-by: Ned Deily <nad@python.org>
Commits on May 02, 2019
) (GH-12910)

(cherry picked from commit 56ed864)

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
…() (GH-13017) (GH-13024)

(cherry picked from commit d537ab0)

Co-authored-by: Steve Dower <steve.dower@python.org>
Commits on May 08, 2019
Disallow control chars in http URLs in urllib.urlopen.  This addresses a potential security problem for applications that do not sanity check their URLs where http request headers could be injected.

Disable https related urllib tests on a build without ssl (GH-13032)
These tests require an SSL enabled build. Skip these tests when python is built without SSL to fix test failures.

Use http.client.InvalidURL instead of ValueError as the new error case's exception. (GH-13044)

Co-Authored-By: Miro Hrončok <miro@hroncok.cz>
GH-13198)

We updated the server, our testsuite must match.

https://bugs.python.org/issue36816

✈️ CLE -> DEN ✈️ GH-pycon2019
(cherry picked from commit 6bd8173)

Co-authored-by: Gregory P. Smith <greg@krypto.org>
Commits on May 29, 2019
Backport partially commit 529525f:
complete the previous partial backport (commit
2a4ee8a.

Co-Authored-By: Christian Heimes <christian@python.org>
…or old TLS (GH-13124) (GH-13252)

* [3.6] bpo-35925: Skip SSL tests that fail due to weak external certs. (GH-13124)

Modern Linux distros such as Debian Buster have default OpenSSL system
configurations that reject connections to servers with weak certificates
by default.  This causes our test suite run with external networking
resources enabled to skip these tests when they encounter such a failure.

Fixing the network servers is a separate issue..
(cherry picked from commit 2cc0223)

Co-authored-by: Gregory P. Smith <greg@krypto.org>

* Also skip ssl tests that fail when the system rejects TLSv1.

* Remove the test_httplib change; server was updated.

self-signed.pythontest.net was updated so the test_httplib change is
no longer necessary.
CVE-2019-9948: Avoid file reading by disallowing local-file:// and
local_file:// URL schemes in URLopener().open() and
URLopener().retrieve() of urllib.request.

Co-Authored-By: SH <push0ebp@gmail.com>
(cherry picked from commit 0c2b6a3)
(cherry picked from commit 34bab21)
Commits on Jun 04, 2019
… (GH-13814)

(cherry picked from commit 8d0ef0b)

Co-authored-by: Steve Dower <steve.dower@python.org>
(cherry picked from commit 59e7bbc)

Co-authored-by: Julien Palard <julien@palard.fr>
Commits on Jun 09, 2019
…) (GH-13923)

(cherry picked from commit ee171a2)

Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
Commits on Jun 13, 2019
… (GH-14041)
Commits on Jun 15, 2019
(cherry picked from commit 46ed90d)

Co-authored-by: Julien Palard <julien@palard.fr>
Commits on Jun 16, 2019
(cherry picked from commit 5529515)

Co-authored-by: Julien Palard <julien@palard.fr>
Commits on Jun 18, 2019
Commits on Jun 19, 2019
Commits on Jun 28, 2019
(cherry picked from commit 3b03b09)

Co-authored-by: Benjamin Peterson <benjamin@python.org>
Commits on Jun 30, 2019
GH-14472)

(cherry picked from commit 95da310)

Co-authored-by: Benjamin Peterson <benjamin@python.org>
Commits on Jul 02, 2019
(cherry picked from commit 2cd0792)

Co-authored-by: Benjamin Peterson <benjamin@python.org>
… (GH-14549)

Under some conditions the earlier fix for bpo-18075, "Infinite recursion
tests triggering a segfault on Mac OS X", now causes failures on macOS
when attempting to change stack limit with resource.setrlimit
resource.RLIMIT_STACK, like regrtest does when running the test suite.
The reverted change had specified a non-default stack size when linking
the python executable on macOS.  As of macOS 10.14.4, the previous
code causes a hard failure when running tests, although similar
failures had been seen under some conditions under some earlier
systems.  Reverting the change to the interpreter stack size at link
time helped for release builds but caused some tests to fail when
built --with-pydebug.  Try the opposite approach: continue to build
the interpreter with an increased stack size on macOS and remove
the failing setrlimit call in regrtest initialization.  This will
definitely avoid the resource.RLIMIT_STACK error and should have
no, or fewer, side effects.
(cherry picked from commit 5bbbc73)

Co-authored-by: Ned Deily <nad@python.org>
Commits on Jul 03, 2019
Commits on Jul 08, 2019
Also fix a name misspelling.

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
Commits on Jul 21, 2019
As far as I can tell, this infinite loop would be triggered if:

1. The value being folded contains a single word (no spaces) longer than
   max_line_length
2. The max_line_length is shorter than the encoding's name + 9
   characters.

bpo-36564: https://bugs.python.org/issue36564
(cherry picked from commit f69d5c6)

Co-authored-by: Paul Ganssle <pganssle@users.noreply.github.com>
Commits on Aug 01, 2019
…aders (GH-14794) (GH-14817)

Some crafted email header would cause the get_parameter method to run in an
infinite loop causing a DoS attack surface when parsing those headers. This
patch fixes that by making sure the DQUOTE character is handled to prevent
going into an infinite loop.
(cherry picked from commit a4a994b)

Co-authored-by: Abhilash Raj <maxking@users.noreply.github.com>
Commits on Aug 09, 2019
Before:

        >>> email.message_from_string('From: a@malicious.org@important.com', policy=email.policy.default)['from'].addresses
        (Address(display_name='', username='a', domain='malicious.org'),)

        >>> parseaddr('a@malicious.org@important.com')
        ('', 'a@malicious.org')

    After:

        >>> email.message_from_string('From: a@malicious.org@important.com', policy=email.policy.default)['from'].addresses
        (Address(display_name='', username='', domain=''),)

        >>> parseaddr('a@malicious.org@important.com')
        ('', 'a@')

https://bugs.python.org/issue34155
(cherry picked from commit 8cb65d1)

Co-authored-by: jpic <jpic@users.noreply.github.com>
Commits on Aug 24, 2019
Commits on Sep 26, 2019
…6410)

Fixes CVE-2019-15903. See full changelog at https://github.com/libexpat/libexpat/blob/R_2_2_8/expat/Changes..
(cherry picked from commit 52b9408)
Commits on Sep 28, 2019
Escape the server title of xmlrpc.server.DocXMLRPCServer
when rendering the document page as HTML.

(cherry picked from commit e8650a4)
…alidation and encoding behavior (GH-16448) (GH-16462)

(cherry picked from commit 7774d78)

Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
Commits on Oct 14, 2019
2 authors and ned-deily
(cherry picked from commit 4504b45)

Co-authored-by: Julien Palard <julien@palard.fr>
Commits on Oct 15, 2019
(cherry picked from commit 3f36043)

Co-authored-by: Ned Deily <nad@python.org>
Commits on Oct 23, 2019
2 authors and ned-deily
(cherry picked from commit dfe726b)

Co-authored-by: Kyle Stanley <aeros167@gmail.com>
(cherry picked from commit 01659ca)

Co-authored-by: Ned Deily <nad@python.org>
Commits on Nov 22, 2019
The regex http.cookiejar.LOOSE_HTTP_DATE_RE was vulnerable to regular
expression denial of service (REDoS).

LOOSE_HTTP_DATE_RE.match is called when using http.cookiejar.CookieJar
to parse Set-Cookie headers returned by a server.
Processing a response from a malicious HTTP server can lead to extreme
CPU usage and execution will be blocked for a long time.

The regex contained multiple overlapping \s* capture groups.
Ignoring the ?-optional capture groups the regex could be simplified to

    \d+-\w+-\d+(\s*\s*\s*)$

Therefore, a long sequence of spaces can trigger bad performance.

Matching a malicious string such as

    LOOSE_HTTP_DATE_RE.match("1-c-1" + (" " * 2000) + "!")

caused catastrophic backtracking.

The fix removes ambiguity about which \s* should match a particular
space.

You can create a malicious server which responds with Set-Cookie headers
to attack all python programs which access it e.g.

    from http.server import BaseHTTPRequestHandler, HTTPServer

    def make_set_cookie_value(n_spaces):
        spaces = " " * n_spaces
        expiry = f"1-c-1{spaces}!"
        return f"b;Expires={expiry}"

    class Handler(BaseHTTPRequestHandler):
        def do_GET(self):
            self.log_request(204)
            self.send_response_only(204)  GH- Don't bother sending Server and Date
            n_spaces = (
                int(self.path[1:])  GH- Can GET e.g. /100 to test shorter sequences
                if len(self.path) > 1 else
                65506  GH- Max header line length 65536
            )
            value = make_set_cookie_value(n_spaces)
            for i in range(99):  GH- Not necessary, but we can have up to 100 header lines
                self.send_header("Set-Cookie", value)
            self.end_headers()

    if __name__ == "__main__":
        HTTPServer(("", 44020), Handler).serve_forever()

This server returns 99 Set-Cookie headers. Each has 65506 spaces.
Extracting the cookies will pretty much never complete.

Vulnerable client using the example at the bottom of
https://docs.python.org/3/library/http.cookiejar.html :

    import http.cookiejar, urllib.request
    cj = http.cookiejar.CookieJar()
    opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
    r = opener.open("http://localhost:44020/")

The popular requests library was also vulnerable without any additional
options (as it uses http.cookiejar by default):

    import requests
    requests.get("http://localhost:44020/")

* Regression test for http.cookiejar REDoS

If we regress, this test will take a very long time.

* Improve performance of http.cookiejar.ISO_DATE_RE

A string like

"444444" + (" " * 2000) + "A"

could cause poor performance due to the 2 overlapping \s* groups,
although this is not as serious as the REDoS in LOOSE_HTTP_DATE_RE was.
(cherry picked from commit 1b779bf)

Co-authored-by: bcaller <bcaller@users.noreply.github.com>
Commits on Dec 02, 2019
…put format (GH-17418) (GH-17444)

(cherry picked from commit a62ad47)

Co-authored-by: Matthew Rollings <1211162+stealthcopter@users.noreply.github.com>
Commits on Dec 11, 2019
…USEADDR (GH-17311). (GH-17571)

(cherry picked from commit ab513a3)

Co-authored-by: Kyle Stanley <aeros167@gmail.com>
Commits on Dec 12, 2019
Co-authored-by: tirkarthi
(cherry picked from commit 1988344)

Co-authored-by: Kyle Stanley <aeros167@gmail.com>
Commits on Dec 16, 2019
…nt()'s *reuse_address* parameter (GH-17595). (GH-17632)

(cherry picked from commit f501db2)

Co-authored-by: Kyle Stanley <aeros167@gmail.com>
Commits on Dec 17, 2019
…acOS Catalina (GH-17636) (GH-17638)

(cherry picked from commit bf3aa10)

Co-authored-by: Ned Deily <nad@python.org>
Commits on Dec 18, 2019
Commits on Dec 19, 2019
Commits on Jan 03, 2020
(cherry picked from commit 946b29e)

Co-authored-by: Benjamin Peterson <benjamin@python.org>
Commits on Jan 07, 2020
(cherry picked from commit f4800b8)

Co-authored-by: Inada Naoki <songofacandy@gmail.com>
Commits on Jan 23, 2020
GH-18118) (GH-18146)

(cherry picked from commit 79f89e6)

Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
Commits on Jan 31, 2020
Showing 1,425 changed files with 102,618 additions and 41,635 deletions.
@@ -0,0 +1,136 @@
variables:
manylinux: false
coverage: false

jobs:
- job: Prebuild
displayName: Pre-build checks

pool:
vmImage: ubuntu-16.04

steps:
- template: ./prebuild-checks.yml


- job: Docs_PR
displayName: Docs PR
dependsOn: Prebuild
condition: and(succeeded(), eq(dependencies.Prebuild.outputs['docs.run'], 'true'))

pool:
vmImage: ubuntu-16.04

steps:
- template: ./docs-steps.yml
parameters:
upload: true


- job: macOS_CI_Tests
displayName: macOS CI Tests
dependsOn: Prebuild
condition: and(succeeded(), eq(dependencies.Prebuild.outputs['tests.run'], 'true'))

variables:
testRunTitle: '$(build.sourceBranchName)-macos'
testRunPlatform: macos

pool:
vmImage: xcode9-macos10.13

steps:
- template: ./macos-steps.yml


- job: Ubuntu_CI_Tests
displayName: Ubuntu CI Tests
dependsOn: Prebuild
condition: and(succeeded(), eq(dependencies.Prebuild.outputs['tests.run'], 'true'))

pool:
vmImage: ubuntu-16.04

variables:
testRunTitle: '$(build.sourceBranchName)-linux'
testRunPlatform: linux
openssl_version: 1.1.0g

steps:
- template: ./posix-steps.yml


- job: ManyLinux1_CI_Tests
displayName: ManyLinux1 CI Tests
dependsOn: Prebuild
condition: |
and(
and(
succeeded(),
eq(variables['manylinux'], 'true')
),
eq(dependencies.Prebuild.outputs['tests.run'], 'true')
)
pool:
vmImage: ubuntu-16.04

variables:
testRunTitle: '$(build.sourceBranchName)-manylinux1'
testRunPlatform: manylinux1
imageName: 'dockcross/manylinux-x64'

steps:
- template: ./docker-steps.yml


- job: Ubuntu_Coverage_CI_Tests
displayName: Ubuntu CI Tests (coverage)
dependsOn: Prebuild
condition: |
and(
and(
succeeded(),
eq(variables['coverage'], 'true')
),
eq(dependencies.Prebuild.outputs['tests.run'], 'true')
)
pool:
vmImage: ubuntu-16.04

variables:
testRunTitle: '$(Build.SourceBranchName)-linux-coverage'
testRunPlatform: linux-coverage
openssl_version: 1.1.0g

steps:
- template: ./posix-steps.yml
parameters:
coverage: true


- job: Windows_CI_Tests
displayName: Windows CI Tests
dependsOn: Prebuild
condition: and(succeeded(), eq(dependencies.Prebuild.outputs['tests.run'], 'true'))

pool:
vmImage: vs2017-win2016

strategy:
matrix:
win32:
arch: win32
buildOpt:
testRunTitle: '$(Build.SourceBranchName)-win32'
testRunPlatform: win32
win64:
arch: amd64
buildOpt: '-p x64'
testRunTitle: '$(Build.SourceBranchName)-win64'
testRunPlatform: win64
maxParallel: 2

steps:
- template: ./windows-steps.yml
@@ -0,0 +1,76 @@
steps:
- checkout: self
clean: true
fetchDepth: 5

- ${{ if ne(parameters.targetBranch, '') }}:
- script: |
git fetch -q origin ${{ parameters.targetbranch }}
if ! git diff --name-only HEAD $(git merge-base HEAD FETCH_HEAD) | grep -qvE '(\.rst$|^Doc|^Misc)'
then
echo "Only docs were updated, stopping build process."
echo "##vso[task.setvariable variable=DocOnly]true"
exit
fi
displayName: Detect doc-only changes
- task: docker@0
displayName: 'Configure CPython (debug)'
inputs:
action: 'Run an image'
imageName: $(imageName)
volumes: |
$(build.sourcesDirectory):/src
$(build.binariesDirectory):/build
workDir: '/src'
containerCommand: './configure --with-pydebug'
detached: false
condition: and(succeeded(), ne(variables['DocOnly'], 'true'))

- task: docker@0
displayName: 'Build CPython'
inputs:
action: 'Run an image'
imageName: $(imageName)
volumes: |
$(build.sourcesDirectory):/src
$(build.binariesDirectory):/build
workDir: '/src'
containerCommand: 'make -s -j4'
detached: false
condition: and(succeeded(), ne(variables['DocOnly'], 'true'))

- task: docker@0
displayName: 'Display build info'
inputs:
action: 'Run an image'
imageName: $(imageName)
volumes: |
$(build.sourcesDirectory):/src
$(build.binariesDirectory):/build
workDir: '/src'
containerCommand: 'make pythoninfo'
detached: false
condition: and(succeeded(), ne(variables['DocOnly'], 'true'))

- task: docker@0
displayName: 'Tests'
inputs:
action: 'Run an image'
imageName: $(imageName)
volumes: |
$(build.sourcesDirectory):/src
$(build.binariesDirectory):/build
workDir: '/src'
containerCommand: 'make buildbottest TESTOPTS="-j4 -uall,-cpu --junit-xml=/build/test-results.xml"'
detached: false
condition: and(succeeded(), ne(variables['DocOnly'], 'true'))

- task: PublishTestResults@2
displayName: 'Publish Test Results'
inputs:
testResultsFiles: '$(build.binariesDirectory)/test-results.xml'
mergeTestResults: true
testRunTitle: $(testRunTitle)
platform: $(testRunPlatform)
condition: and(succeededOrFailed(), ne(variables['DocOnly'], 'true'))
@@ -0,0 +1,46 @@
parameters:
latex: false
upload: false

steps:
- checkout: self
clean: true
fetchDepth: 5

- task: UsePythonVersion@0
displayName: 'Use Python 3.6 or later'
inputs:
versionSpec: '>=3.6'

- script: python -m pip install sphinx==1.8.2 blurb python-docs-theme
displayName: 'Install build dependencies'

- ${{ if ne(parameters.latex, 'true') }}:
- script: make check suspicious html PYTHON=python
workingDirectory: '$(build.sourcesDirectory)/Doc'
displayName: 'Build documentation'

- ${{ if eq(parameters.latex, 'true') }}:
- script: sudo apt-get update && sudo apt-get install -qy --force-yes texlive-full
displayName: 'Install LaTeX'

- script: make dist PYTHON=python SPHINXBUILD='python -m sphinx' BLURB='python -m blurb'
workingDirectory: '$(build.sourcesDirectory)/Doc'
displayName: 'Build documentation'

- ${{ if eq(parameters.upload, 'true') }}:
- task: PublishBuildArtifacts@1
displayName: 'Publish docs'

inputs:
PathToPublish: '$(build.sourcesDirectory)/Doc/build'
ArtifactName: docs
publishLocation: Container

- ${{ if eq(parameters.latex, 'true') }}:
- task: PublishBuildArtifacts@1
displayName: 'Publish dist'
inputs:
PathToPublish: '$(build.sourcesDirectory)/Doc/dist'
ArtifactName: docs_dist
publishLocation: Container
@@ -0,0 +1,25 @@
steps:
- checkout: self
clean: true
fetchDepth: 5

- script: ./configure --with-pydebug --with-openssl=/usr/local/opt/openssl --prefix=/opt/python-azdev
displayName: 'Configure CPython (debug)'

- script: make -s -j4
displayName: 'Build CPython'

- script: make pythoninfo
displayName: 'Display build info'

- script: make buildbottest TESTOPTS="-j4 -uall,-cpu --junit-xml=$(build.binariesDirectory)/test-results.xml"
displayName: 'Tests'

- task: PublishTestResults@2
displayName: 'Publish Test Results'
inputs:
testResultsFiles: '$(build.binariesDirectory)/test-results.xml'
mergeTestResults: true
testRunTitle: $(testRunTitle)
platform: $(testRunPlatform)
condition: succeededOrFailed()
@@ -0,0 +1,26 @@
sudo apt-get update

sudo apt-get -yq install \
build-essential \
zlib1g-dev \
libbz2-dev \
liblzma-dev \
libncurses5-dev \
libreadline6-dev \
libsqlite3-dev \
libssl-dev \
libgdbm-dev \
tk-dev \
lzma \
lzma-dev \
liblzma-dev \
libffi-dev \
uuid-dev \
xvfb

if [ ! -z "$1" ]
then
echo ##vso[task.prependpath]$PWD/multissl/openssl/$1
echo ##vso[task.setvariable variable=OPENSSL_DIR]$PWD/multissl/openssl/$1
python3 Tools/ssl/multissltests.py --steps=library --base-directory $PWD/multissl --openssl $1 --system Linux
fi
@@ -0,0 +1,63 @@
parameters:
coverage: false

steps:
- checkout: self
clean: true
fetchDepth: 5

- script: ./.azure-pipelines/posix-deps.sh $(openssl_version)
displayName: 'Install dependencies'

- script: ./configure --with-pydebug
displayName: 'Configure CPython (debug)'

- script: make -s -j4
displayName: 'Build CPython'

- ${{ if eq(parameters.coverage, 'true') }}:
- script: ./python -m venv venv && ./venv/bin/python -m pip install -U coverage
displayName: 'Set up virtual environment'

- script: ./venv/bin/python -m test.pythoninfo
displayName: 'Display build info'

- script: |
xvfb-run ./venv/bin/python -m coverage run --pylib -m test \
--fail-env-changed \
-uall,-cpu \
--junit-xml=$(build.binariesDirectory)/test-results.xml" \
-x test_multiprocessing_fork \
-x test_multiprocessing_forkserver \
-x test_multiprocessing_spawn \
-x test_concurrent_futures
displayName: 'Tests with coverage'
- script: ./venv/bin/python -m coverage xml
displayName: 'Generate coverage.xml'

- script: source ./venv/bin/activate && bash <(curl -s https://codecov.io/bash)
displayName: 'Publish code coverage results'


- ${{ if ne(parameters.coverage, 'true') }}:
- script: make pythoninfo
displayName: 'Display build info'

- script: xvfb-run make buildbottest TESTOPTS="-j4 -uall,-cpu --junit-xml=$(build.binariesDirectory)/test-results.xml"
displayName: 'Tests'


- script: ./python Tools/scripts/patchcheck.py --travis true
displayName: 'Run patchcheck.py'
condition: and(succeeded(), eq(variables['Build.Reason'], 'PullRequest'))


- task: PublishTestResults@2
displayName: 'Publish Test Results'
inputs:
testResultsFiles: '$(build.binariesDirectory)/test-results.xml'
mergeTestResults: true
testRunTitle: $(testRunTitle)
platform: $(testRunPlatform)
condition: succeededOrFailed()

No commit comments for this range

You can’t perform that action at this time.