Upstream release notes:
2.2.12
- Security: Fixed command injection vulnerability in HgDriver/GitDriver
(GHSA-x7cr-6qr6-2hh6 / CVE-2022-24828)
- Fixed curl downloader not retrying when a DNS resolution failure occurs
(#10716)
- Fixed composer.lock file still being used/read when the lock config option
is disabled (#10726)
- Fixed validate command checking the lock file even if the lock option is
disabled (#10723)
2.2.11
- Added missing config.bitbucket-oauth in composer-schema.json
- Added --2.2 flag to self-update to pin the Composer version to the 2.2 LTS
range (#10682)
- Updated semver, jsonlint deps for minor fixes
- Fixed generation of autoload crashing if a package has a broken path
(#10688)
- Removed dev-master=>dev-main alias from #10372 as it does not work when
reloading from lock file and extracting dev deps (#10651)
2.2.10
- Fixed Bitbucket authorization detection due to API changes (#10657)
- Fixed validate command warning about dist/source keys if defined (#10655)
- Fixed deletion/handling of corrupted 0-bytes zip archives (#10666)
2.2.9
- Fixed regression with plugins that modify install path of packages, see docs
if you are authoring such a plugin (#10621)
2.2.8
- Fixed files autoloading sort order to be fully deterministic (#10617)
- Fixed pool optimization pass edge cases (#10579)
- Fixed require command failing when self.version is used as constraint
(#10593)
- Fixed --no-ansi / undecorated output still showing color in repo warnings
(#10601)
- Performance improvement in pool optimization step (composer/semver#131)
2.2.7
- Allow installation together with composer/xdebug-handler ^3 (#10528)
- Fixed support for packages with no licenses in licenses command output
(#10537)
- Fixed handling of allow-plugins: false which kept warning (#10530)
- Fixed enum parsing in classmap generation when the enum keyword is not
lowercased (#10521)
- Fixed author parsing in init command requiring an email whereas the schema
allows a name only (#10538)
- Fixed issues in require command when requiring packages which do not exist
(but are provided by something else you require) (#10541)
- Performance improvement in pool optimization step (#10546)
= Mercurial 6.1.1 =
* Fix Rust compilation on `aarcch64`
* Fix Rust compilation on architectures where `char` is unsigned
* When the merge tool uses `$output`, don't leave markers in `$local`
* Improve test suite support on big-endian platforms
* Cap the number of concurrent threads to 16 in Rust `hg status` to prevent huge speed regression at higher thread counts
* Fix `amend` with copies in extras
* Abort if commit we're trying to `unamend` was not created by `hg [un]amend`
* Fix file name in the pullbundle help text
* Fix an issue with data not being correctly reset in the C implementation of dirstate-v2
* Fix issue6673 where some tags were missing from cache after a merge
* Fix stream-cloning a repo with empty requirements
* Fix a false warning about content-divergence creation
* Fix silly blackbox entries when hg is interrupted
* Fix unsoundness (no known exploits) in Rust extensions (see cfd270d83169 and dd6b67d5c256)
* Fix Rust dirstate counters not being updated correctly leading to some potential bugs (none known)
* Stop relying on a compiler implementation detail in Rust HgPath
22.0.4 (2022-03-06)
===================
Deprecations and Removals
-------------------------
- Drop the doctype check, that presented a warning for index pages that use non-compliant HTML 5. (`#10903 <https://github.com/pypa/pip/issues/10903>`_)
Vendored Libraries
------------------
- Downgrade distlib to 0.3.3.
22.0.3 (2022-02-03)
===================
Features
--------
- Print the exception via ``rich.traceback``, when running with ``--debug``. (`#10791 <https://github.com/pypa/pip/issues/10791>`_)
Bug Fixes
---------
- Only calculate topological installation order, for packages that are going to be installed/upgraded.
This fixes an `AssertionError` that occured when determining installation order, for a very specific combination of upgrading-already-installed-package + change of dependencies + fetching some packages from a package index. This combination was especially common in Read the Docs' builds. (`#10851 <https://github.com/pypa/pip/issues/10851>`_)
- Use ``html.parser`` by default, instead of falling back to ``html5lib`` when ``--use-deprecated=html5lib`` is not passed. (`#10869 <https://github.com/pypa/pip/issues/10869>`_)
Improved Documentation
----------------------
- Clarify that using per-requirement overrides disables the usage of wheels. (`#9674 <https://github.com/pypa/pip/issues/9674>`_)
22.0.2 (2022-01-30)
===================
Deprecations and Removals
-------------------------
- Instead of failing on index pages that use non-compliant HTML 5, print a deprecation warning and fall back to ``html5lib``-based parsing for now. This simplifies the migration for non-compliant index pages, by letting such indexes function with a warning. (`#10847 <https://github.com/pypa/pip/issues/10847>`_)
22.0.1 (2022-01-30)
===================
Bug Fixes
---------
- Accept lowercase ``<!doctype html>`` on index pages. (`#10844 <https://github.com/pypa/pip/issues/10844>`_)
- Properly handle links parsed by html5lib, when using ``--use-deprecated=html5lib``. (`#10846 <https://github.com/pypa/pip/issues/10846>`_)
22.0 (2022-01-29)
=================
Process
-------
- Completely replace :pypi:`tox` in our development workflow, with :pypi:`nox`.
Deprecations and Removals
-------------------------
- Deprecate alternative progress bar styles, leaving only ``on`` and ``off`` as available choices. (`#10462 <https://github.com/pypa/pip/issues/10462>`_)
- Drop support for Python 3.6. (`#10641 <https://github.com/pypa/pip/issues/10641>`_)
- Disable location mismatch warnings on Python versions prior to 3.10.
These warnings were helping identify potential issues as part of the sysconfig -> distutils transition, and we no longer need to rely on reports from older Python versions for information on the transition. (`#10840 <https://github.com/pypa/pip/issues/10840>`_)
Features
--------
- Changed ``PackageFinder`` to parse HTML documents using the stdlib :class:`html.parser.HTMLParser` class instead of the ``html5lib`` package.
For now, the deprecated ``html5lib`` code remains and can be used with the ``--use-deprecated=html5lib`` command line option. However, it will be removed in a future pip release. (`#10291 <https://github.com/pypa/pip/issues/10291>`_)
- Utilise ``rich`` for presenting pip's default download progress bar. (`#10462 <https://github.com/pypa/pip/issues/10462>`_)
- Present a better error message when an invalid wheel file is encountered, providing more context where the invalid wheel file is. (`#10535 <https://github.com/pypa/pip/issues/10535>`_)
- Documents the ``--require-virtualenv`` flag for ``pip install``. (`#10588 <https://github.com/pypa/pip/issues/10588>`_)
- ``pip install <tab>`` autocompletes paths. (`#10646 <https://github.com/pypa/pip/issues/10646>`_)
- Allow Python distributors to opt-out from or opt-in to the ``sysconfig`` installation scheme backend by setting ``sysconfig._PIP_USE_SYSCONFIG`` to ``True`` or ``False``. (`#10647 <https://github.com/pypa/pip/issues/10647>`_)
- Make it possible to deselect tests requiring cryptography package on systems where it cannot be installed. (`#10686 <https://github.com/pypa/pip/issues/10686>`_)
- Start using Rich for presenting error messages in a consistent format. (`#10703 <https://github.com/pypa/pip/issues/10703>`_)
- Improve presentation of errors from subprocesses. (`#10705 <https://github.com/pypa/pip/issues/10705>`_)
- Forward pip's verbosity configuration to VCS tools to control their output accordingly. (`#8819 <https://github.com/pypa/pip/issues/8819>`_)
Bug Fixes
---------
- Optimize installation order calculation to improve performance when installing requirements that form a complex dependency graph with a large amount of edges. (`#10557 <https://github.com/pypa/pip/issues/10557>`_)
- When a package is requested by the user for upgrade, correctly identify that the extra-ed variant of that same package depended by another user-requested package is requesting the same package, and upgrade it accordingly. (`#10613 <https://github.com/pypa/pip/issues/10613>`_)
- Prevent pip from installing yanked releases unless explicitly pinned via the ``==`` or ``===`` operators. (`#10617 <https://github.com/pypa/pip/issues/10617>`_)
- Stop backtracking on build failures, by instead surfacing them to the user and aborting immediately. This behaviour provides more immediate feedback when a package cannot be built due to missing build dependencies or platform incompatibility. (`#10655 <https://github.com/pypa/pip/issues/10655>`_)
- Silence ``Value for <location> does not match`` warning caused by an erroneous patch in Slackware-distributed Python 3.9. (`#10668 <https://github.com/pypa/pip/issues/10668>`_)
- Fix an issue where pip did not consider dependencies with and without extras to be equal (`#9644 <https://github.com/pypa/pip/issues/9644>`_)
Vendored Libraries
------------------
- Upgrade CacheControl to 0.12.10
- Upgrade certifi to 2021.10.8
- Upgrade distlib to 0.3.4
- Upgrade idna to 3.3
- Upgrade msgpack to 1.0.3
- Upgrade packaging to 21.3
- Upgrade platformdirs to 2.4.1
- Add pygments 2.11.2 as a vendored dependency.
- Tree-trim unused portions of vendored pygments, to reduce the distribution size.
- Upgrade pyparsing to 3.0.7
- Upgrade Requests to 2.27.1
- Upgrade resolvelib to 0.8.1
- Add rich 11.0.0 as a vendored dependency.
- Tree-trim unused portions of vendored rich, to reduce the distribution size.
- Add typing_extensions 4.0.1 as a vendored dependency.
- Upgrade urllib3 to 1.26.8
21.3.1 (2021-10-22)
===================
Bug Fixes
---------
- Always refuse installing or building projects that have no ``pyproject.toml`` nor
``setup.py``. (`#10531 <https://github.com/pypa/pip/issues/10531>`_)
- Tweak running-as-root detection, to check ``os.getuid`` if it exists, on Unix-y and non-Linux/non-MacOS machines. (`#10565 <https://github.com/pypa/pip/issues/10565>`_)
- When installing projects with a ``pyproject.toml`` in editable mode, and the build
backend does not support :pep:`660`, prepare metadata using
``prepare_metadata_for_build_wheel`` instead of ``setup.py egg_info``. Also, refuse
installing projects that only have a ``setup.cfg`` and no ``setup.py`` nor
``pyproject.toml``. These restore the pre-21.3 behaviour. (`#10573 <https://github.com/pypa/pip/issues/10573>`_)
- Restore compatibility of where configuration files are loaded from on MacOS (back to ``Library/Application Support/pip``, instead of ``Preferences/pip``). (`#10585 <https://github.com/pypa/pip/issues/10585>`_)
Vendored Libraries
------------------
- Upgrade pep517 to 0.12.0
New Features
Gopls now integrates with staticcheck@v0.3.0, which supports
generics. To enable staticcheck analyzers, set "staticcheck": true
in your gopls settings. Note that as part of this change, staticcheck
is only supported when gopls is built with Go 1.17+.
Bump fmt to version 8.1.1.
Added file event handlers #2165, #2169 Thanks @seker.
You can get callbacks from spdlog before/after log file has been opened or closed.
This is useful for cleanup procedures or for adding something to the start/end of the log files.
Fixed rotating file sink: when disk is full log rotation resulted zero size log files. #2261. (thanks @kishorekrd for reporting).
Added new udp_sink #2090. Thanks @CJLove
(Experimental) Option to depend on std::format instead of fmtlib (set SPDLOG_USE_STD_FORMAT and use C++20). #2170 Thanks @sylveon .
Improved file name for hourly file sink #2047. Thanks @seker .
Added code location information for error handler #2048. Thanks @D-r-P-3-p-p-3-r .
Fixed qt_sinks ctor #2056. Thanks @mguludag .
List Debian instructions in the README #2057. Thanks @mr-c ,
Updated to latest Travis CI Build Status #2094. Thanks @jspraul .
Fixed unhandled errors in udp sink. #2096. Thanks @mmarkeloff .
CMake improvement regarding cmake_minimum_required and policy. #2098. Thanks @reddwarf69 .
Fixed mongo_sink compile in older gcc versions #2102 . Thanks @yzz-ihep .
Remove mutable keyword from mutex_ member in of sinks. #2140 . Thanks @sunlong169 .
Fix typos #2171. Thanks @rex4539 .
Fixed udp sink build on FreeBSD #2172. Thanks @keith-dev .
Avoid c-style casting in stdout sinks. #2179. Thanks @ibmibmibm .
Fixed tweakme.h compile error under msvcs when SPDLOG_FUNCTION is defined #2182. Thanks @Light3039 .
Fixed compiling errors on AIX #2181. Thanks @lisr .
Fixed runtime when build with -fsanitize=cfi #1972. Thanks @bansan85 .
Remove extraneous semicolon #2190. Thanks @sylveon.
Added example how to replace default logger. #2194. Thanks @rioki .
Fixed usage of ranges and to_hex in the same compile unit #2195. Thanks @patrickroocks .
Reduce warnings with pedantic compiler -Wuseless-cast #2216. Thanks @vnepogodin .
Support using std::span in to_hex #2228. Thanks @timblechmann .
Reset current size if rotated files on open #2234. Thanks @SpriteOvO .
Allow forward-declaration of level_enum #2245. Thanks @daverigby .
Call localtime() only if pattern_formatter really needs it #2246. Thanks @doug1234 .
Removed unneeded spaces from code. #2249. Thanks @PixelParas .
Added a few missing files/directories to the gitignore #2255. Thanks @LeonBrands .
Fixed issue #2201 (Pattern width is not applied for missing source information). #2269. Thanks @kyuheon-kr .
Limit max number of rotating files to 200000. (Fixed#1905). Thanks @surfycui (#2273)
pattern_formatter: fix reorder-ctor warning #2278. Thanks @adriweb .
Fixed spdlogConfig.cmake when built with SPDLOG_FMT_EXTERNAL_HO #2300. Thanks @adamcalhoon .
Fixed fopen_s(..) error handling when PREVENT_CHILD_FD is defined #2305. Thanks @nUl1.
Fixed compiler error when building on Windows with #define UNICODE #2317. Thanks @risa2000 .
Added option to enable formatting of systemd sink #2324, #2320. Thanks @Delgan .
Added optional "ident" argument to systemd sink constructor #2328. Thanks @Delgan .
Version 10.40 15-April-2022
---------------------------
This is mostly a bug-fixing and code-tidying release. However, there are some
extensions to Unicode property handling:
* Added support for Bidi_Class and a number of binary Unicode properties,
including Bidi_Control.
* A number of changes to script matching for \p and \P:
(a) Script extensions for a character are now coded as a bitmap instead of
a list of script numbers, which should be faster and does not need a
loop.
(b) Added the syntax \p{script:xxx} and \p{script_extensions:xxx} (synonyms
sc and scx).
(c) Changed \p{scriptname} from being the same as \p{sc:scriptname} to being
the same as \p{scx:scriptname} because this change happened in Perl at
release 5.26.
(d) The standard Unicode 4-letter abbreviations for script names are now
recognized.
(e) In accordance with Unicode and Perl's "loose matching" rules, spaces,
hyphens, and underscores are ignored in property names, which are then
matched independent of case.
Open Policy Agent (OPA) is an open source, general-purpose policy
engine that enables unified, context-aware policy enforcement across
the cloud native stack.
libtermkey allows easy processing of keyboard entry from terminal-based
programs. It handles all the necessary logic to recognise special keys,
UTF-8 combining, and so on, with a simple interface.
Note: Use of this library for new programs is discouraged. It is being
maintained for legacy purposes only.
modifications.
Unibilium is a very basic terminfo library. It doesn't depend on curses or
any other library. It also doesn't use global variables, so it should be
thread-safe.
modifications to install in different directories in order to avoid
conflicts with newer versions of libvterm (0.2.x is out, but incompatible
with neovim)...
What's New in Pylint 2.13.6?
============================
* Fix a crash in the ``unsupported-membership-test`` checker when assigning
multiple constants to class attributes including ``__iter__`` via unpacking.
* Asterisks are no longer required in Sphinx and Google style parameter documentation
for ``missing-param-doc`` and are parsed correctly.
* Fixed a false positive for ``unused-variable`` when a builtin specified in
``--additional-builtins`` is given a type annotation.
* Fixed an ``AstroidError`` in 2.13.0 raised by the ``duplicate-code`` checker with
``ignore-imports`` or ``ignore-signatures`` enabled.
What's New in Pylint 2.13.5?
============================
* Fix false positive regression in 2.13.0 for ``used-before-assignment`` for
homonyms between variable assignments in try/except blocks and variables in
subscripts in comprehensions.
* ``lru-cache-decorating-method`` has been renamed to ``cache-max-size-none`` and
will only be emitted when ``maxsize`` is ``None``.
* Fix false positive for ``unused-import`` when disabling both ``used-before-assignment`` and ``undefined-variable``.
* Narrow the scope of the ``unnecessary-ellipsis`` checker to:
* functions & classes which contain both a docstring and an ellipsis.
* A body which contains an ellipsis ``nodes.Expr`` node & at least one other statement.
* Fix false positive for ``used-before-assignment`` for assignments taking place via
nonlocal declarations after an earlier type annotation.
* Fix crash for ``redefined-slots-in-subclass`` when the type of the slot is not a const or a string.
* Only raise ``not-callable`` when all the inferred values of a property are not callable.
* Fix a false negative for ``subclassed-final-class`` when a set of other messages were disabled.
What's New in Pylint 2.13.4?
============================
* Fix false positive regression in 2.13.0 for ``used-before-assignment`` for
homonyms between variable assignments in try/except blocks and variables in
a comprehension's filter.
* Include ``testing_pylintrc`` in source and wheel distributions.
* Fix crash in ``super-init-not-called`` checker when using ``ctypes.Union``.
* Fix crash for ``unneccessary-ellipsis`` checker when an ellipsis is used inside of a container or a lambda expression.
What's New in Pylint 2.13.3?
============================
* Fix false positive for ``unnecessary-ellipsis`` when using an ellipsis as a default argument.
* Fix crash involving unbalanced tuple unpacking.
* Fix false positive for 'nonexistent-operator' when repeated '-' are
separated (e.g. by parens).
What's New in Pylint 2.13.2?
============================
* Fix crash when subclassing a ``namedtuple``.
* Fix false positive for ``superfluous-parens`` for patterns like
"return (a or b) in iterable".
* Fix a false negative regression in 2.13.0 where ``protected-access`` was not
raised on functions.
* Better error messages in case of crash if pylint can't write the issue template.
What's New in Pylint 2.13.1?
============================
* Fix a regression in 2.13.0 where ``used-before-assignment`` was emitted for
the usage of a nonlocal in a try block.
* Avoid emitting ``raising-bad-type`` when there is inference ambiguity on
the variable being raised.
* Loosen TypeVar default name pattern a bit to allow names with multiple uppercase
characters. E.g. ``HVACModeT`` or ``IPAddressT``.
* Fixed false positive for ``unused-argument`` when a ``nonlocal`` name is used
in a nested function that is returned without being called by its parent.
* Fix program crash for ``modified_iterating-list/set/dict`` when the list/dict/set
being iterated through is a function call.
* Don't emit ``broken-noreturn`` and ``broken-collections-callable`` errors
inside ``if TYPE_CHECKING`` blocks.
What's New in Pylint 2.13.0?
============================
* Add missing dunder methods to ``unexpected-special-method-signature`` check.
* No longer emit ``no-member`` in for loops that reference ``self`` if the binary operation that
started the for loop uses a ``self`` that is encapsulated in tuples or lists.
* Output better error message if unsupported file formats are used with ``pyreverse``.
* Fix pyreverse diagrams type hinting for classmethods and staticmethods.
* Fix pyreverse diagrams type hinting for methods returning None.
* Fix matching ``--notes`` options that end in a non-word character.
* Updated the position of messages for class and function defintions to no longer cover
the complete definition. Only the ``def`` or ``class`` + the name of the class/function
are covered.
* ``using-f-string-in-unsupported-version`` and ``using-final-decorator-in-unsupported-version`` msgids
were renamed from ``W1601`` and ``W1602`` to ``W2601`` and ``W2602``. Disabling using these msgids will break.
This is done in order to restore consistency with the already existing msgids for ``apply-builtin`` and
``basestring-builtin`` from the now deleted python 3K+ checker. There is now a check that we're not using
existing msgids or symbols from deleted checkers.
* The line numbering for messages related to function arguments is now more accurate. This can
require some message disables to be relocated to updated positions.
* Add ``--recursive`` option to allow recursive discovery of all modules and packages in subtree. Running pylint with
``--recursive=y`` option will check all discovered ``.py`` files and packages found inside subtree of directory provided
as parameter to pylint.
* Add ``modified-iterating-list``, ``modified-iterating-dict`` and ``modified-iterating-set``,
emitted when items are added to or removed from respectively a list, dictionary or
set being iterated through.
* Fix false-negative for ``assignment-from-none`` checker using list.sort() method.
* New extension ``import-private-name``: indicate imports of external private packages
and objects (prefixed with ``_``). It can be loaded using ``load-plugins=pylint.extensions.private_import``.
* Fixed crash from ``arguments-differ`` and ``arguments-renamed`` when methods were
defined outside the top level of a class.
* Removed the deprecated ``check_docs`` extension. You can use the ``docparams`` checker
to get the checks previously included in ``check_docs``.
* Added a ``testutil`` extra require to the packaging, as ``gitpython`` should not be a dependency
all the time but is still required to use the primer helper code in ``pylint.testutil``. You can
install it with ``pip install pylint[testutil]``.
* Reinstated checks from the python3 checker that are still useful for python 3
(``eq-without-hash``). This is now in the ``pylint.extensions.eq_without_hash`` optional
extension.
* Fixed an issue where ``ungrouped-imports`` could not be disabled without raising
``useless-suppression``.
* Added several checkers to deal with unicode security issues
(see `Trojan Sources <https://trojansource.codes/>`_ and
`PEP 672 <https://peps.python.org/pep-0672/>`_ for details) that also
concern the readability of the code. In detail the following checks were added:
* ``bad-file-encoding`` checks that the file is encoded in UTF-8 as suggested by
`PEP8 <https://peps.python.org/pep-0008/#source-file-encoding>`_.
UTF-16 and UTF-32 are `not supported by Python <https://bugs.python.org/issue1503789>`_
at the moment. If this ever changes
``invalid-unicode-codec`` checks that they aren't used, to allow for backwards
compatibility.
* ``bidirectional-unicode`` checks for bidirectional unicode characters that
could make code execution different than what the user expects.
* ``invalid-character-backspace``, ``invalid-character-carriage-return``,
``invalid-character-sub``, ``invalid-character-esc``,
``invalid-character-zero-width-space`` and ``invalid-character-nul``
to check for possibly harmful unescaped characters.
* Use the ``tomli`` package instead of ``toml`` to parse ``.toml`` files.
* Fix false positive - Allow unpacking of ``self`` in a subclass of ``typing.NamedTuple``.
* Fixed false negative ``unpacking-non-sequence`` when value is an empty list.
* Better warning messages for useless else or elif when a function returns early.
* Fixed false positive ``consider-using-dict-comprehension`` when creating a dict
using a list of tuples where key AND value vary depending on the same condition.
* Fixed false positive for ``global-variable-undefined`` when ``global`` is used with a class name
* Fixed false positive for ``unused-variable`` when a ``nonlocal`` name is assigned as part of a multi-name assignment.
* Fixed a crash in ``unspecified-encoding`` checker when providing ``None``
to the ``mode`` argument of an ``open()`` call.
* Fixed a crash involving a ``NewType`` named with an f-string.
* Improved ``bad-open-mode`` message when providing ``None`` to the ``mode``
argument of an ``open()`` call.
* Added ``lru-cache-decorating-method`` checker with checks for the use of ``functools.lru_cache``
on class methods. This is unrecommended as it creates memory leaks by never letting the instance
getting garbage collected.
* Fixed crash with recursion error for inference of class attributes that referenced
the class itself.
* Fixed false positive for ``unused-argument`` when a method overridden in a subclass
does nothing with the value of a keyword-only argument.
* The issue template for crashes is now created for crashes which were previously not covered
by this mechanism.
* Rewrote checker for ``non-ascii-name``.
It now ensures __all__ Python names are ASCII and also properly
checks the names of imports (``non-ascii-module-import``) as
well as file names (``non-ascii-file-name``) and emits their respective new warnings.
Non ASCII characters could be homoglyphs (look alike characters) and hard to
enter on a non specialized keyboard.
See `Confusable Characters in PEP 672 <https://peps.python.org/pep-0672/#confusing-features>`_
* When run in parallel mode ``pylint`` now pickles the data passed to subprocesses with
the ``dill`` package. The ``dill`` package has therefore been added as a dependency.
* An astroid issue where symlinks were not being taken into account
was fixed
* Fix a crash in ``unused-private-member`` checker when analyzing code using
``type(self)`` in bound methods.
* Optimize parsing of long lines when ``missing-final-newline`` is enabled.
* Fix false positives for ``used-before-assignment`` from using named
expressions in a ternary operator test and using that expression as
a call argument.
* Fix false positive for ``undefined-variable`` when ``namedtuple`` class
attributes are used as return annotations.
* Fix false negative for ``undefined-variable`` and related variable messages
when the same undefined variable is used as a type annotation and is
accessed multiple times, or is used as a default argument to a function.
* Pyreverse - add output in mermaidjs format
* Emit ``used-before-assignment`` instead of ``undefined-variable`` when attempting
to access unused type annotations.
* Added confidence level ``CONTROL_FLOW`` for warnings relying on assumptions
about control flow.
* ``used-before-assignment`` now considers that assignments in a try block
may not have occurred when the except or finally blocks are executed.
* Fixed false negative for ``used-before-assignment`` when a conditional
or context manager intervened before the try statement that suggested
it might fail.
* Fixed false negative for ``used-before-assignment`` in finally blocks
if an except handler did not define the assignment that might have failed
in the try block.
* Fixed extremely long processing of long lines with comma's.
* Fixed crash on properties and inherited class methods when comparing them for
equality against an empty dict.
* Fixed a false positive for ``assigning-non-slot`` when the slotted class
defined ``__setattr__``.
* Fixed a false positive for ``invalid-class-object`` when the object
being assigned to the ``__class__`` attribute is uninferable.
* Fixed false positive for ``used-before-assignment`` with self-referential type
annotation in conditional statements within class methods.
* Add checker ``redefined-slots-in-subclass``: Emitted when a slot is redefined in a subclass.
* Fixed false positive for ``global-variable-not-assigned`` when the ``del`` statement is used
* By default, pylint does no longer take files starting with ``.#`` into account. Those are
considered `emacs file locks`. See
https://www.gnu.org/software/emacs/manual/html_node/elisp/File-Locks.html.
This behavior can be reverted by redefining the ``ignore-patterns`` option.
* Fixed a false positive for ``used-before-assignment`` when a named expression
appears as the first value in a container.
* ``used-before-assignment`` now assumes that assignments in except blocks
may not have occurred and warns accordingly.
* When evaluating statements after an except block, ``used-before-assignment``
assumes that assignments in the except blocks took place if the
corresponding try block contained a return statement.
* Fixed a false negative for ``used-before-assignment`` when some but not all
except handlers defined a name relied upon after an except block when the
corresponding try block contained a return statement.
* When evaluating statements in the ``else`` clause of a loop, ``used-before-assignment``
assumes that assignments in the except blocks took place if the
except handlers constituted the only ways for the loop to finish without
breaking early.
* ``used-before-assignment`` now checks names in try blocks.
* Fixed false positive with ``used-before-assignment`` for assignment expressions
in lambda statements.
* Fixed a false positive (affecting unreleased development) for
``used-before-assignment`` involving homonyms between filtered comprehensions
and assignments in except blocks.
* Fixed crash with slots assignments and annotated assignments.
* Fixed crash on list comprehensions that used ``type`` as inner variable name.
* Fixed crash in ``use-maxsplit-arg`` checker when providing the ``sep`` argument
to ``str.split()`` by keyword.
* Fix false positive for ``unused-variable`` for a comprehension variable matching
an outer scope type annotation.
* Fix false negative for ``undefined-variable`` for a variable used multiple times
in a comprehension matching an unused outer scope type annotation.
* Some files in ``pylint.testutils`` were deprecated. In the future imports should be done from the
``pylint.testutils.functional`` namespace directly.
* Fixed false positives for ``no-value-for-parameter`` with variadic
positional arguments.
* ``safe_infer`` no longer makes an inference when given two function
definitions with differing numbers of arguments.
* Fix ``comparison-with-callable`` false positive for callables that raise, such
as typing constants.
* Fixed a crash on ``__init__`` nodes when the attribute was previously uninferable due to a cache
limit size. This limit can be hit when the inheritance pattern of a class (and therefore of the ``__init__`` attribute) is very large.
* Fix false positive for ``used-before-assignment`` from a class definition
nested under a function subclassing a class defined outside the function.
* Fix ``unnecessary_dict_index_lookup`` false positive when deleting a dictionary's entry.
* Fix false positive for ``used-before-assignment`` when an except handler
shares a name with a test in a filtered comprehension.
* Fix crash in ``unnecessary-dict-index-lookup`` checker if the output of
``items()`` is assigned to a 1-tuple.
* When invoking ``pylint``, ``epylint``, ``symilar`` or ``pyreverse`` by importing them in a python file
you can now pass an ``argv`` keyword besides patching ``sys.argv``.
* The ``PyLinter`` class will now be initialized with a ``TextReporter``
as its reporter if none is provided.
* Fix ``super-init-not-called`` when parent or ``self`` is a ``Protocol``
* Fix false positive ``not-callable`` with attributes that alias ``NamedTuple``
* Emit ``redefined-outer-name`` when a nested except handler shadows an outer one.
* Fix false positive ``super-init-not-called`` for classes that inherit their ``init`` from
a parent.
* ``encoding`` can now be supplied as a positional argument to calls that open
files without triggering ``unspecified-encoding``.
* Fatal errors now emit a score of 0.0 regardless of whether the linted module
contained any statements
* ``fatal`` was added to the variables permitted in score evaluation expressions.
* The default score evaluation now uses a floor of 0.
* Fix false negative for ``consider-iterating-dictionary`` during membership checks encapsulated in iterables
or ``not in`` checks
* Fixed crash on uninferable decorators on Python 3.6 and 3.7
* Add checker ``unnecessary-ellipsis``: Emitted when the ellipsis constant is used unnecessarily.
* Disable checker ``bad-docstring-quotes`` for Python <= 3.7, because in these versions the line
numbers for decorated functions and classes are not reliable which interferes with the checker.
* Fixed incorrect classification of Numpy-style docstring as Google-style docstring for
docstrings with property setter documentation.
Docstring classification is now based on the highest amount of matched sections instead
of the order in which the docstring styles were tried.
* Fixed detection of ``arguments-differ`` when superclass static
methods lacked a ``@staticmethod`` decorator.
* ``TypingChecker``
* Added new check ``broken-noreturn`` to detect broken uses of ``typing.NoReturn``
if ``py-version`` is set to Python ``3.7.1`` or below.
https://bugs.python.org/issue34921
* Added new check ``broken-collections-callable`` to detect broken uses of ``collections.abc.Callable``
if ``py-version`` is set to Python ``3.9.1`` or below.
https://bugs.python.org/issue42965
* The ``testutils`` for unittests now accept ``end_lineno`` and ``end_column``. Tests
without these will trigger a ``DeprecationWarning``.
* ``arguments-differ`` will no longer complain about method redefinitions with extra parameters
that have default values.
* Fixed false positive ``unexpected-keyword-arg`` for decorators.
* Importing the deprecated stdlib module ``xml.etree.cElementTree`` now emits ``deprecated_module``.
* Disables for ``deprecated-module`` and similar warnings for stdlib features deprecated
in newer versions of Python no longer raise ``useless-suppression`` when linting with
older Python interpreters where those features are not yet deprecated.
* Importing the deprecated stdlib module ``distutils`` now emits ``deprecated_module`` on Python 3.10+.
* ``missing-raises-doc`` will now check the class hierarchy of the raised exceptions
.. code-block:: python
def my_function()
"""My function.
Raises:
Exception: if something fails
"""
raise ValueError
* Allow disabling ``duplicate-code`` with a disable comment when running through
pylint.
* Improve ``invalid-name`` check for ``TypeVar`` names.
The accepted pattern can be customized with ``--typevar-rgx``.
* Added new checker ``typevar-name-missing-variance``. Emitted when a covariant
or contravariant ``TypeVar`` does not end with ``_co`` or ``_contra`` respectively or
when a ``TypeVar`` is not either but has a suffix.
* Allow usage of mccabe 0.7.x release
* Fix ``unused-private-member`` false positive when accessing private methods through ``property``.
What's New in astroid 2.11.3?
=============================
* Fixed an error in the Qt brain when building ``instance_attrs``.
* Fixed a crash in the ``gi`` brain.
What's New in astroid 2.11.2?
=============================
* Avoided adding the name of a parent namedtuple to its child's locals.
What's New in astroid 2.11.1?
=============================
* Promoted ``getattr()`` from ``astroid.scoped_nodes.FunctionDef`` to its parent
``astroid.scoped_nodes.Lambda``.
* Fixed crash on direct inference via ``nodes.FunctionDef._infer``.
What's New in astroid 2.11.0?
=============================
* Add new (optional) ``doc_node`` attribute to ``nodes.Module``, ``nodes.ClassDef``,
and ``nodes.FunctionDef``.
* Accessing the ``doc`` attribute of ``nodes.Module``, ``nodes.ClassDef``, and
``nodes.FunctionDef`` has been deprecated in favour of the ``doc_node`` attribute.
Note: ``doc_node`` is an (optional) ``nodes.Const`` whereas ``doc`` was an (optional) ``str``.
* Passing the ``doc`` argument to the ``__init__`` of ``nodes.Module``, ``nodes.ClassDef``,
and ``nodes.FunctionDef`` has been deprecated in favour of the ``postinit`` ``doc_node`` attribute.
Note: ``doc_node`` is an (optional) ``nodes.Const`` whereas ``doc`` was an (optional) ``str``.
* Replace custom ``cachedproperty`` with ``functools.cached_property`` and deprecate it
for Python 3.8+.
* Set ``end_lineno`` and ``end_col_offset`` attributes to ``None`` for all nodes
with PyPy 3.8. PyPy 3.8 assigns these attributes inconsistently which could lead
to unexpected errors. Overwriting them with ``None`` will cause a fallback
to the already supported way of PyPy 3.7.
* Add missing ``shape`` parameter to numpy ``zeros_like``, ``ones_like``,
and ``full_like`` methods.
* Only pin ``wrapt`` on the major version.
What's New in astroid 2.10.0?
=============================
* Fixed inference of ``self`` in binary operations in which ``self``
is part of a list or tuple.
* Fixed builtin inference on `property` calls not calling the `postinit` of the new node, which
resulted in instance arguments missing on these nodes.
* Fixed a crash on ``Super.getattr`` when the attribute was previously uninferable due to a cache
limit size. This limit can be hit when the inheritance pattern of a class (and therefore of the
``__init__`` attribute) is very large.
* Inlcude names of keyword-only arguments in ``astroid.scoped_nodes.Lambda.argnames``.
* Fixed a crash inferring on a ``NewType`` named with an f-string.
* Add support for [attrs v21.3.0](https://github.com/python-attrs/attrs/releases/tag/21.3.0) which
added a new `attrs` module alongside the existing `attr`.
* Use the ``end_lineno`` attribute for the ``NodeNG.tolineno`` property
when it is available.
* Add ``is_dataclass`` attribute to ``ClassDef`` nodes.
* Use ``sysconfig`` instead of ``distutils`` to determine the location of
python stdlib files and packages.
* Fixed crash with recursion error for inference of class attributes that referenced
the class itself.
* Fixed crash when trying to infer ``items()`` on the ``__dict__``
attribute of an imported module.
* Add optional ``NodeNG.position`` attribute.
Used for block nodes to highlight position of keyword(s) and name
in cases where the AST doesn't provide good enough positional information.
E.g. ``nodes.ClassDef``, ``nodes.FunctionDef``.
* Fix ``ClassDef.fromlineno``. For Python < 3.8 the ``lineno`` attribute includes decorators.
``fromlineno`` should return the line of the ``class`` statement itself.
* Performance improvements. Only run expensive decorator functions when
non-default Deprecation warnings are enabled, eg. during a Pytest run.
Potentially breaking changes:
- JUnit output now includes OPA namespace in test name for better grouping
- Output for parse command only emits valid JSON
New features:
- Support for JSONC files. Thank you @greggroth!
Other Improvements:
- Bump OPA to v0.39.0
- Bump Golang to v1.18.1
- Builds now include ppc64le architecture. Thank you @seth-priya!
* Make it possible to disable comment plugin in non-PHP environment
(e.g. Azure blob store) [Geoff Bache]
* Adding similar support for Azure Devops that we already had for
Jenkins [Geoff Bache]
* windows CLI self tests #99 [Michael Behrisch]
* first script for regular CI tests [Michael Behrisch]
* fixing setup after nterpretcore move #99 [Michael Behrisch]
* moving interpretcore for easier self testing #99 [Michael Behrisch]
* removing leftovers from python3 conversion [Michael Behrisch]
1.6.0
- We recommend at least libgit2 1.0 now
- Windows: update to libgit2 1.4.2
- Tests: switch to ECDSA keys for ssh remote unit tests
- git_log() gains a parameter 'after'
1.5.0
- Windows: use ${HOMEDRIVE}${HOMEPATH} path as home if it exists, to match
git-for-windows. On most systems this is the same as ${USERPROFILE}.
- git_commit_info() no longer includes $diff by default because it can be huge.
Please use git_diff() instead if you need it.
1.4.3
- Fix a unit test for some older versions of libgit2
1.4.2
- Make unit tests more robust against network fail and renamed branches
- Windows / MacOS: update to libgit2 1.3.0
1.4.1
- Fix compile error with some older version of libgit2
- MacOS: automatically use static libs when building in CI
1.4.0
- Windows / MacOS: update to libgit2 1.2.0
- New function git_branch_move()
- git_branch_checkout gains 'orphan' parameter
# fs 1.5.2
* `file_create()` and `dir_create()` now return the correct path when
`...` arguments are used (@davidchall, #333).
* `dir_create(recurse = FALSE)` now correctly handles `...` arguments
(@davidchall, #333).
* `file_exists()` now expands `~` again (#325).
* `dir_copy()` works when `path` has length >1 (#360).
# fs 1.5.1
* Gábor Csárdi is now the maintainer.
* fs is now licensed as MIT (#301).
* `dir_create()` now restores the previous umask (#293)
* `file_exists()` is now much faster (#295)
* `options(fs.fs_path.shorten)` can now be used to control how paths
are shortened in tibbles. The default value is "front", valid
alternatives are "back", "middle" and "abbreviate". (#335)
* `options(fs.use_tibble = FALSE)` can now be used to disable use of
tibbles (#295).
* `path_tidy()` now works with non-UTF8 encoded paths (@shrektan, #321).
4.10.0
* Include all files from ``jupyter_core``.
* Add project URLs to ``setup.cfg``.
* Set up pre-commit.
* Add flake8 and mypy settings.
* Clean up CI.
# cli 3.2.0
## Breaking change
* The `cli_theme_dark` option is know known as `cli.theme_dark`, to be
consistent with all other cli option names (#380).
## Other changes
* The preferred names of the S3 clases `ansi_string`, `ansi_style`, `boxx`,
`rule` and `tree` now have `cli_` prefix: `cli_ansi_string`, etc. This will
help avoiding name conflicts with other packages eventually, but for now
the old names are kept as well, for compatibility.
* `cli_abort()` has been updated to work nicely with rlang 1.0. The
default `call` and backtrace soft-truncation are set to `.envir`
(which itself is set to the immediate caller of `cli_abort()` by
default).
Line formatting now happens lazily at display time via
`rlang::cnd_message()` (which is called by the `conditionMessage()`
method for rlang errors).
* New `hash_sha256()` function to calculate SHA-256 hashes. New
`hash_raw_*()`, `hash_obj_*()` and `hash_file_*()` functions to calculate
various hashes of raw vectors, R objects and files.
* You can use the new `cli.default_num_colors` option to set the default
number of ANSI colors, only if ANSI support is otherwise detected.
See the details in the manual of `num_ansi_colors()`.
* You can set the new `ESS_BACKGROUND_MODE` environment variable to
`dark` to indicate dark mode.
* cli now handles quotes and comment characters better in the semantion
`cli_*()` functions that perform glue string interpolation (#370).
# cli 3.1.1
* `style_hyperlink()` gains a `params=` argument (#384).
# cli 3.1.0
## Breaking changes
* The C progress bar API now uses `double` instead of `int` as the data
type of the progress units (#335).
## New features
* Several improvements and changes in the `ansi_*()` functions:
- most `ansi_*()` functions are now implemented in C and they are
much faster (#316).
- they handle `NA` values better.
- many functions now use UTF-8 graphemes by default instead of code
points. E.g. `ansi_nchar()` counts graphemes, etc.
- they convert their input to UTF-8 and always return UTF-8
encoded strings.
- new function `ansi_simplify()` to remove superfluous ANSI tags.
- new function `ansi_html()` to convert ANSI-highlighted strings
to HTML.
- `ansi_has_any()` and `ansi_strip()` now have `sgr` and `csi`
arguments to look for SGR tags, CSI tags, or both.
* New functions that handle UTF-8 encoded strings correctly:
`utf8_graphemes()`, `utf8_nchar()`, `utf8_substr()`.
* Support for palettes, including a colorblind friendly palette.
See `?ansi_palettes` for details.
* True color support: `num_ansi_colors()` now detects terminals with
24 bit color support, and `make_ansi_style()` uses the exact RGB colors
on these terminals (#208).
* The new `col_br_*()` and `bg_br_()` functions create bright versions of
eight base ANSI colors (#327).
* New function `code_highlight()` to syntax highlight R code. It supports
several themes out of the box, see `code_theme_list()` (#348).
* New functions for hashing: `hash_animal()`, `hash_emoji()` and
`hash_md5()`.
* New `diff_chr()` and `diff_str()` functions to calculate the difference
of character vectors and letters of strings.
## Smaller improvements
* Progress bars with `clear = FALSE` now print the last, completed, state
properly.
* The progress bar for Shiny apps now handles output from
`cli_progress_output()`.
* Progress variables in C `format_done` strings work correctly now (#337).
* `cli_dl()` now works with an empty description, and gives a better
error for invalid input (#347).
* `rule()` is now works better if the labels have ANSI markup.
* `cli_spark` objects now have `format()` and `print()` methods.
* `cli_process_done()` now does not error without a process (#351).
* ANSI markup is now supported in RStudio jobs (#353).
* The lack of ANSI support is now again correctly detected if there is an
active `sink()` (#366).
# cli 3.0.1
* `ansi_strtrim()` now correctly keeps `NA` values (#309).
* `format_inline()` now uses the correct environment (@rundel, #314).
# cli 3.0.0
* New functions for progress bars, please see the new articles at
https://cli.r-lib.org/articles/ for details.
* New `cli_abort()`, `cli_warn()` and `cli_inform()` functions, to throw
errors with cli pluralization and styling.
* New `format_inline()` function to format a cli string without emitting
it (#278).
# glue 1.6.2
* Modify a test for better forward compatibility with R.
# glue 1.6.1
* Glue Now registers its custom knitr engines in a way that is more
robust to namespace-loading edge cases that can arise during package
installation (#254).
# glue 1.6.0
* `glue()`, `glue_data()`, `glue_col()`, and `glue_data_col()` gain a
new `.literal` argument, which controls how quotes and the comment
character are treated when parsing the expression string
(#235). This is mostly useful when using a custom transformer.
* Trailing whitespace-only lines don't interfere with indentation (#247).
# glue 1.5.1
* Jennifer Bryan is now the maintainer.
* The existing custom language engines for knitr, `glue` and
`glue_sql`, are documented in a new vignette (#71). *Detail added
after release: glue now sets up registration of these engines in
`.onLoad()`.*
* `glue_col()` gives special treatment to styling functions from the
crayon package, e.g. `glue_col("{blue foo}")` "just works" now, even
if crayon is not attached (but is installed) (#241).
* Unterminated backticks trigger the same error as unterminated single
or double quotes (#237).
* `glue_sql()` collapses zero-length `DBI::SQL` object into
`DBI::SQL("NULL")` (#244 @shrektan).
# glue 1.5.0
## Breaking changes
* Long deprecated function `collapse()` has been removed (#213)
## New functions and arguments
* New `glue_sql_collapse()` function to collapse inputs and return a
`DBI::SQL()` object (#103).
* `glue()` gains a new `.comment` argument, to control the comment character (#193).
* `glue()` gains a new `.null` argument, to control the value to
replace `NULL` values with (#217, @echasnovski).
## Bugfixes and minor changes
* `sql_quote_transformer()` is now allows whitespace after the trailing `*` (#218).
* `compare_proxy.glue()` method defined so glue objects can be
compared to strings in testthat 3e without errors (#212)
* `print.glue()` no longer prints an empty newline for 0 length inputs (#214)
* Unterminated comments in glue expression now throw an error (#227, @gaborcsardi)
* Unterminated quotes in glue expressions now throw an error (#226, @gaborcsardi)
Staticcheck 2022.1 adds support for Go 1.18 and generics, adds and tweaks some
checks, and introduces the new -matrix and -merge flags.
Read the full release notes at https://staticcheck.io/changes/2022.1
Version 0.15
================================================================================
- `new_output_handler()` gains a `calling_handlers` argument. These
are passed to `withCallingHandlers()` before `evaluate()` captures
any conditions.
- Fixed#106: do not assume that `is.atomic(NULL)` returns `TRUE`
(thanks, @mmaechler).
# devtools 2.4.3
* New `Check_mac_release()` function to check a package using the
macOS builder at https://mac.r-project.org/macbuilder/submit.html
* (#2375) Jenny Bryan is now the official maintainer.
* `release()` and `submit_cran()` now record submission details using
the Debian Control File format, for better machine-readability. This
file has a new name, CRAN-SUBMISSION (instead of CRAN-RELEASE) and
now includes package version, in addition to the full SHA and a
timestamp.
mold 1.2.0 is a new release of the high-speed linker. The highlight of this
release is the 32-bit ARM support. We also added other features, and as
always, we fixed many bugs and compatibility issues in this release.
New features:
- The ARM32 target is now supported.
- --gdb-index is implemented. If this option is given, mold creates an
.gdb_index section in an output file to speed up GNU debugger. Users have
to compile their object files with -ggnu-pubnames to use this flag. mold
used to ignore --gdb-index. (a7475dd)
- mold now supports the following flags: --start-address, -Tbss, -Tdata,
-Ttext, --oformat=binary, --disable-new-dtags
Deprecated features:
- An experimental, mold-specific --preload flag has been marked as
deprecated. It's still usable, but a warning message will be displayed
if that flag is given.
Bug fixes and compatibility improvements:
- -dy and -dn are now accepted as aliases for -Bdynamic and -Bstatic,
respectively. (82e8072)
- -static-pie now works with older versions of glibc thanks to a few bug
fixes. (3d68824, 0884f27)
- Issues found by UndefinedBehaviorSanizer, AddressSanitizer and
ThreadSanitizer are fixed. (bf26753, f4753b3, e1e4e9f)
- mold used to place sections with very large section alignment
requirements to wrong places in an output file. That caused a mysterious
crash of a produced binary (#405). That bug was most noticeable when
Nvidia-provided object files are given because they tend to contain such
sections. This bug has been fixed. (100922b)
- .ctors and .dtors sections are now recognized by mold, and their contents
are sorted with a special rule. This shouldn't affect most build
environments because these sections have been superseded by .init_array
and .fini_array sections a long time ago. But it looks like some old
i386 compilers are still using .ctors and .dtors. (392781a)
- For a non-position-independent executable, we have to make address-taken
PLT entries as "canonical". Marking all PLT entries canonical should be
harmless in theory, so we did so. However, some programs, notably Qt
library, assume that non-address-taken PLTs can never be canonical
(#352). For the sake of compatibility with such programs, we now make
PLTs canonical only when their addresses are taken. (e0bc74a)
- mold now defines _TLS_MODULE_BASE_ symbol. A reference to this symbol
can occur if -mtls-dialect=gnu2 is given to a compiler. The flag tells
the compiler to use TLSDESC mechanism instead of the regular TLS access
mechanism to access thread-local variables. (5feab82)
- libbacktrace sometimes fail to read compressed debug sections in
mold-generated files due to a bug. We not only fix that libbacktrace's
bug (ianlancetaylor/libbacktrace#87) but also implemented a workaround
to mold (ba63479) so that mold works with older versions of libbacktrace.
- [ARM64] mold now recognizes R_AARCH64_LD_PREL_LO19 relocation. (146ddd7)
- [RISCV64] The correct semantics of R_RISCV_ALIGN is implemented.
(0daf623)