@@ -2240,6 +2240,21 @@ details, see the documentation for ``loop.create_datagram_endpoint()``.
2240
2240
(Contributed by Kyle Stanley, Antoine Pitrou, and Yury Selivanov in
2241
2241
:issue: `37228 `.)
2242
2242
2243
+ Notable changes in Python 3.8.2
2244
+ ===============================
2245
+
2246
+ Fixed a regression with the ``ignore `` callback of :func: `shutil.copytree `.
2247
+ The argument types are now str and List[str] again.
2248
+ (Contributed by Manuel Barkhau and Giampaolo Rodola in :gh: `83571 `.)
2249
+
2250
+ Notable changes in Python 3.8.3
2251
+ ===============================
2252
+
2253
+ The constant values of future flags in the :mod: `__future__ ` module
2254
+ are updated in order to prevent collision with compiler flags. Previously
2255
+ ``PyCF_ALLOW_TOP_LEVEL_AWAIT `` was clashing with ``CO_FUTURE_DIVISION ``.
2256
+ (Contributed by Batuhan Taskaya in :gh: `83743 `)
2257
+
2243
2258
Notable changes in Python 3.8.8
2244
2259
===============================
2245
2260
@@ -2253,9 +2268,55 @@ functions internally. For more details, please see their respective
2253
2268
documentation.
2254
2269
(Contributed by Adam Goldschmidt, Senthil Kumaran and Ken Jin in :issue: `42967 `.)
2255
2270
2271
+ Notable changes in Python 3.8.9
2272
+ ===============================
2273
+
2274
+ A security fix alters the :class: `ftplib.FTP ` behavior to not trust the
2275
+ IPv4 address sent from the remote server when setting up a passive data
2276
+ channel. We reuse the ftp server IP address instead. For unusual code
2277
+ requiring the old behavior, set a ``trust_server_pasv_ipv4_address ``
2278
+ attribute on your FTP instance to ``True ``. (See :gh: `87451 `)
2279
+
2280
+ Notable changes in Python 3.8.10
2281
+ ================================
2282
+
2283
+ macOS 11.0 (Big Sur) and Apple Silicon Mac support
2284
+ --------------------------------------------------
2285
+
2286
+ As of 3.8.10, Python now supports building and running on macOS 11
2287
+ (Big Sur) and on Apple Silicon Macs (based on the ``ARM64 `` architecture).
2288
+ A new universal build variant, ``universal2 ``, is now available to natively
2289
+ support both ``ARM64 `` and ``Intel 64 `` in one set of executables.
2290
+ Note that support for "weaklinking", building binaries targeted for newer
2291
+ versions of macOS that will also run correctly on older versions by
2292
+ testing at runtime for missing features, is not included in this backport
2293
+ from Python 3.9; to support a range of macOS versions, continue to target
2294
+ for and build on the oldest version in the range.
2295
+
2296
+ (Originally contributed by Ronald Oussoren and Lawrence D'Anna in :gh: `85272 `,
2297
+ with fixes by FX Coudert and Eli Rykoff, and backported to 3.8 by Maxime Bélanger
2298
+ and Ned Deily)
2299
+
2300
+ Notable changes in Python 3.8.10
2301
+ ================================
2302
+
2303
+ urllib.parse
2304
+ ------------
2305
+
2306
+ The presence of newline or tab characters in parts of a URL allows for some
2307
+ forms of attacks. Following the WHATWG specification that updates :rfc: `3986 `,
2308
+ ASCII newline ``\n ``, ``\r `` and tab ``\t `` characters are stripped from the
2309
+ URL by the parser in :mod: `urllib.parse ` preventing such attacks. The removal
2310
+ characters are controlled by a new module level variable
2311
+ ``urllib.parse._UNSAFE_URL_BYTES_TO_REMOVE ``. (See :issue: `43882 `)
2312
+
2313
+
2256
2314
Notable changes in Python 3.8.12
2257
2315
================================
2258
2316
2317
+ Changes in the Python API
2318
+ -------------------------
2319
+
2259
2320
Starting with Python 3.8.12 the :mod: `ipaddress ` module no longer accepts
2260
2321
any leading zeros in IPv4 address strings. Leading zeros are ambiguous and
2261
2322
interpreted as octal notation by some libraries. For example the legacy
@@ -2265,3 +2326,33 @@ any leading zeros.
2265
2326
2266
2327
(Originally contributed by Christian Heimes in :issue: `36384 `, and backported
2267
2328
to 3.8 by Achraf Merzouki.)
2329
+
2330
+ Notable security feature in 3.8.14
2331
+ ==================================
2332
+
2333
+ Converting between :class: `int ` and :class: `str ` in bases other than 2
2334
+ (binary), 4, 8 (octal), 16 (hexadecimal), or 32 such as base 10 (decimal)
2335
+ now raises a :exc: `ValueError ` if the number of digits in string form is
2336
+ above a limit to avoid potential denial of service attacks due to the
2337
+ algorithmic complexity. This is a mitigation for `CVE-2020-10735
2338
+ <https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-10735> `_.
2339
+ This limit can be configured or disabled by environment variable, command
2340
+ line flag, or :mod: `sys ` APIs. See the :ref: `integer string conversion
2341
+ length limitation <int_max_str_digits>` documentation. The default limit
2342
+ is 4300 digits in string form.
2343
+
2344
+ Notable changes in 3.8.17
2345
+ =========================
2346
+
2347
+ tarfile
2348
+ -------
2349
+
2350
+ * The extraction methods in :mod: `tarfile `, and :func: `shutil.unpack_archive `,
2351
+ have a new a *filter * argument that allows limiting tar features than may be
2352
+ surprising or dangerous, such as creating files outside the destination
2353
+ directory.
2354
+ See :ref: `tarfile-extraction-filter ` for details.
2355
+ In Python 3.12, use without the *filter * argument will show a
2356
+ :exc: `DeprecationWarning `.
2357
+ In Python 3.14, the default will switch to ``'data' ``.
2358
+ (Contributed by Petr Viktorin in :pep: `706 `.)
0 commit comments