← Back to issue list

chore(deps): update dependency astroid to v3

View original Github issue

Metadata

Project
rockcraft
Number
#537
Type
pull request
State
closed
Author
renovate[bot]
Labels
Created
Updated
Closed

Current evaluation

Closed without merging. Maintainer declined the update because astroid requires a coordinated upgrade with pylint, so Renovate will ignore it.

Suggested action:

No scores available.

Issue body

[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [astroid](https://togithub.com/pylint-dev/astroid) | `==2.15.8` -> `==3.2.0` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/astroid/3.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/astroid/3.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/astroid/2.15.8/3.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/astroid/2.15.8/3.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>pylint-dev/astroid (astroid)</summary> ### [`v3.2.0`](https://togithub.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-320) [Compare Source](https://togithub.com/pylint-dev/astroid/compare/v3.1.0...v3.2.0) \============================ Release date: 2024-05-07 - `.pyi` stub files are now preferred over `.py` files when resolving imports, (except for numpy). Closes pylint-dev/[#&#8203;9185](https://togithub.com/pylint-dev/astroid/issues/9185) - `igetattr()` returns the last same-named function in a class (instead of the first). This avoids false positives in pylint with `@overload`. Closes [#&#8203;1015](https://togithub.com/pylint-dev/astroid/issues/1015) Refs [pylint-dev/pylint#4696](https://togithub.com/pylint-dev/pylint/issues/4696) - Adds `module_denylist` to `AstroidManager` for modules to be skipped during AST generation. Modules in this list will cause an `AstroidImportError` to be raised when an AST for them is requested. Refs [pylint-dev/pylint#9442](https://togithub.com/pylint-dev/pylint/issues/9442) - Make `astroid.interpreter._import.util.is_namespace` only consider modules using a loader set to `NamespaceLoader` or `None` as namespaces. This fixes a problem that `six.moves` brain was not effective if `six.moves` was already imported. Closes [#&#8203;1107](https://togithub.com/pylint-dev/astroid/issues/1107) ### [`v3.1.0`](https://togithub.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-310) [Compare Source](https://togithub.com/pylint-dev/astroid/compare/v3.0.3...v3.1.0) \============================ Release date: 2024-02-23 - Include PEP 695 (Python 3.12) generic type syntax nodes in `get_children()`, allowing checkers to visit them. Refs [pylint-dev/pylint#9193](https://togithub.com/pylint-dev/pylint/issues/9193) - Add `__main__` as a possible inferred value for `__name__` to improve control flow inference around `if __name__ == "__main__":` guards. Closes [#&#8203;2071](https://togithub.com/pylint-dev/astroid/issues/2071) - Following a deprecation period, the `names` arg to the `Import` constructor and the `op` arg to the `BoolOp` constructor are now required, and the `doc` args to the `PartialFunction` and `Property` constructors have been removed (call `postinit(doc_node=...)` instead.) - Following a deprecation announced in astroid 1.5.0, the alias `AstroidBuildingException` is removed in favor of `AstroidBuildingError`. - Include modname in AST warnings. Useful for `invalid escape sequence` warnings with Python 3.12. - `RecursionError` is now trapped and logged out as `UserWarning` during astroid node transformations with instructions about raising the system recursion limit. Closes [pylint-dev/pylint#8842](https://togithub.com/pylint-dev/pylint/issues/8842) - Suppress `SyntaxWarning` for invalid escape sequences on Python 3.12 when parsing modules. Closes [pylint-dev/pylint#9322](https://togithub.com/pylint-dev/pylint/issues/9322) ### [`v3.0.3`](https://togithub.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-303) [Compare Source](https://togithub.com/pylint-dev/astroid/compare/v3.0.2...v3.0.3) \============================ Release date: 2024-02-04 - Fix type of `UnicodeDecodeError.object` inferred as `str` instead of `bytes`. Closes [pylint-dev/pylint#9342](https://togithub.com/pylint-dev/pylint/issues/9342) - Fix `no-member` false positives for `args` and `kwargs` on `ParamSpec` under Python 3.12. Closes [pylint-dev/pylint#9401](https://togithub.com/pylint-dev/pylint/issues/9401) ### [`v3.0.2`](https://togithub.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-302) [Compare Source](https://togithub.com/pylint-dev/astroid/compare/v3.0.1...v3.0.2) \============================ Release date: 2023-12-12 - Avoid duplicate inference results for some uses of `typing.X` constructs like `Tuple[Optional[int], ...]`. This was causing pylint to occasionally omit messages like `deprecated-typing-alias`. Closes [pylint-dev/pylint#9220](https://togithub.com/pylint-dev/pylint/issues/9220) ### [`v3.0.1`](https://togithub.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-301) [Compare Source](https://togithub.com/pylint-dev/astroid/compare/v3.0.0...v3.0.1) \============================ Release date: 2023-10-15 - Fix crashes linting code using PEP 695 (Python 3.12) generic type syntax. Closes [pylint-dev/pylint#9098](https://togithub.com/pylint-dev/pylint/issues/9098) ### [`v3.0.0`](https://togithub.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-300) [Compare Source](https://togithub.com/pylint-dev/astroid/compare/v2.15.8...v3.0.0) \============================= Release date: 2023-09-26 - Add support for Python 3.12, including PEP 695 type parameter syntax. Closes [#&#8203;2201](https://togithub.com/pylint-dev/astroid/issues/2201) - Remove support for Python 3.7. Refs [#&#8203;2137](https://togithub.com/pylint-dev/astroid/issues/2137) - Use the global inference cache when inferring, even without an explicit `InferenceContext`. This is a significant performance improvement given how often methods default to `None` for the context argument. (Linting `astroid` itself now takes ~5% less time on Python 3.12; other projects requiring more complex inference calculations will see greater speedups.) Refs [#&#8203;529](https://togithub.com/pylint-dev/astroid/issues/529) - Following a deprecation period starting in astroid 2.7.0, the `astroid.node_classes` and `astroid.scoped_nodes` modules have been removed in favor of `astroid.nodes.node_classes` and `astroid.nodes.scoped_nodes`. Closes [#&#8203;1072](https://togithub.com/pylint-dev/astroid/issues/1072) - Following a deprecation period starting in astroid 2.12.0, the `astroid.mixins` module has been removed in favor of `astroid.nodes._base_nodes` (private). Refs [#&#8203;1633](https://togithub.com/pylint-dev/astroid/issues/1633) - Return all existing arguments when calling `Arguments.arguments()`. This also means `find_argname` will now use the whole list of arguments for its search. Closes [#&#8203;2213](https://togithub.com/pylint-dev/astroid/issues/2213) - Exclude class attributes from the `__members__` container of an `Enum` class when they are `nodes.AnnAssign` nodes with no assigned value. Refs [pylint-dev/pylint#7402](https://togithub.com/pylint-dev/pylint/issues/7402) - Remove `@cached` and `@cachedproperty` decorator (just use `@cached_property` from the stdlib). Closes [#&#8203;1780](https://togithub.com/pylint-dev/astroid/issues/1780) Refs [#&#8203;2140](https://togithub.com/pylint-dev/astroid/issues/2140) - Remove the `inference` module. Node inference methods are now in the module defining the node, rather than being associated to the node afterward. Closes [#&#8203;679](https://togithub.com/pylint-dev/astroid/issues/679) - Move `LookupMixIn` to `astroid.nodes._base_nodes` and make it private. - Remove the shims for `OperationError`, `BinaryOperationError`, and `UnaryOperationError` in `exceptions`. They were moved to `util` in astroid 1.5.0. - Move `safe_infer()` from `helpers` to `util`. This avoids some circular imports. - Reduce file system access in `ast_from_file()`. - Reduce time to `import astroid` by delaying `astroid_bootstrapping()` until the first instantiation of `AstroidBuilder`. Closes [#&#8203;2161](https://togithub.com/pylint-dev/astroid/issues/2161) - Make `igetattr()` idempotent. This addresses some reports of varying results when running pylint with `--jobs`. Closes [pylint-dev/pylint#4356](https://togithub.com/pylint-dev/pylint/issues/4356) Refs [#&#8203;7](https://togithub.com/pylint-dev/astroid/issues/7) - Fix incorrect cache keys for inference results, thereby correctly inferring types for calls instantiating types dynamically. Closes [#&#8203;1828](https://togithub.com/pylint-dev/astroid/issues/1828) Closes [pylint-dev/pylint#7464](https://togithub.com/pylint-dev/pylint/issues/7464) Closes [pylint-dev/pylint#8074](https://togithub.com/pylint-dev/pylint/issues/8074) - Fix interrupted `InferenceContext` call chains, thereby addressing performance problems when linting `sqlalchemy`. Closes [pylint-dev/pylint#8150](https://togithub.com/pylint-dev/pylint/issues/8150) - `nodes.FunctionDef` no longer inherits from `nodes.Lambda`. This is a breaking change but considered a bug fix as the nodes did not share the same API and were not interchangeable. We have tried to minimize the amount of breaking changes caused by this change but some are unavoidable. - `infer_call_result` now shares the same interface across all implementations. Namely: ```python def infer_call_result( self, caller: SuccessfulInferenceResult | None, context: InferenceContext | None = None, ) -> Iterator[InferenceResult]: ``` This is a breaking change for `nodes.FunctionDef` where previously `caller` had a default of `None`. Passing `None` again will not create a behaviour change. The breaking change allows us to better type and re-use the method within `astroid`. - Improved signature of the `__init__` and `__postinit__` methods of most nodes. This includes making `lineno`, `col_offset`, `end_lineno`, `end_col_offset` and `parent` required arguments for `nodes.NodeNG` and its subclasses. For most other nodes, arguments of their `__postinit__` methods have been made required to better represent how they would normally be constructed by the standard library `ast` module. The following nodes were changed or updated: - `nodes.AnnAssign` - `nodes.Arguments` - `nodes.Assign` - `nodes.AssignAttr` - `nodes.AssignName` - `nodes.Attribute` - `nodes.AugAssign` - `nodes.Await` - `nodes.BaseContainer` - `nodes.BinOp` - `nodes.Call` - `nodes.ClassDef` - `nodes.Compare` - `nodes.Comprehension` - `nodes.Decorators` - `nodes.Delete` - `nodes.DelAttr` - `nodes.DelName` - `nodes.Dict` - `nodes.DictComp` - `nodes.ExceptHandler` - `nodes.Expr` - `nodes.For` - `nodes.FunctionDef` - `nodes.GeneratorExp` - `nodes.If` - `nodes.IfExp` - `nodes.Keyword` - `nodes.Lambda` - `nodes.ListComp` - `nodes.Module` - `nodes.Name` - `nodes.NodeNG` - `nodes.Raise` - `nodes.Return` - `nodes.SetComp` - `nodes.Slice` - `nodes.Starred` - `objects.Super`, we also added the `call` parameter to its `__init__` method. - `nodes.Subscript` - `nodes.UnaryOp` - `nodes.While` - `nodes.Yield` These changes involve breaking changes to their API but should be considered bug fixes. We now make arguments required when they are instead of always providing defaults. - `nodes.If.self.is_orelse` has been removed as it was never set correctly and therefore provided a false value. - Remove dependency on `wrapt`. - Remove dependency on `lazy_object_proxy`. This includes the removal of the associated `lazy_import`, `lazy_descriptor` and `proxy_alias` utility functions. - `CallSite._unpack_args` and `CallSite._unpack_keywords` now use `safe_infer()` for better inference and fewer false positives. Closes [pylint-dev/pylint#8544](https://togithub.com/pylint-dev/pylint/issues/8544) - Add `attr.Factory` to the recognized class attributes for classes decorated with `attrs`. Closes [pylint-dev/pylint#4341](https://togithub.com/pylint-dev/pylint/issues/4341) - `infer_property()` now observes the same property-specific workaround as `infer_functiondef`. Refs [#&#8203;1490](https://togithub.com/pylint-dev/astroid/issues/1490) - Remove unused and / or deprecated constants: - `astroid.bases.BOOL_SPECIAL_METHOD` - `astroid.bases.BUILTINS` - `astroid.const.BUILTINS` - `astroid.const.PY38_PLUS` - `astroid.const.Load` - `astroid.const.Store` - `astroid.const.Del` Refs [#&#8203;2141](https://togithub.com/pylint-dev/astroid/issues/2141) - `frame()` raises `ParentMissingError` and `statement()` raises `StatementMissing` for missing parents regardless of the value of the `future` argument (which gave this behavior already). The `future` argument to each method is deprecated and will be removed in astroid 4.0. Refs [#&#8203;1217](https://togithub.com/pylint-dev/astroid/issues/1217) - Remove deprecated `Ellipsis`, `ExtSlice`, `Index` nodes. Refs [#&#8203;2152](https://togithub.com/pylint-dev/astroid/issues/2152) - Remove deprecated `is_sys_guard` and `is_typing_guard` methods. Refs [#&#8203;2153](https://togithub.com/pylint-dev/astroid/issues/2153) - Remove deprecated `doc` attribute for `Module`, `ClassDef`, and `FunctionDef`. Use the `doc_node` attribute instead. Refs [#&#8203;2154](https://togithub.com/pylint-dev/astroid/issues/2154) - Add new `nodes.Try` to better match Python AST. Replaces the `TryExcept` and `TryFinally` nodes which have been removed. - Publicize `NodeNG.repr_name()` to facilitate finding a node's nice name. Refs [pylint-dev/pylint#8598](https://togithub.com/pylint-dev/pylint/issues/8598) - Fix false positives for `no-member` and `invalid-name` when using the `_name_`, `_value_` and `_ignore_` sunders in Enums. Closes [pylint-dev/pylint#9015](https://togithub.com/pylint-dev/pylint/issues/9015) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "every weekend" in timezone Etc/UTC, Automerge - "every weekend" in timezone Etc/UTC. 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/canonical/rockcraft). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNjkuMiIsInVwZGF0ZWRJblZlciI6IjM3LjM1MS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Evaluation history

Date Model Scores Action Summary
qwen/qwen3.6-35b-a3b Closed without merging. Maintainer declined the update because astroid requires a coordinated upgrade with pylint, so Renovate will ignore it.
qwen3.6-35b-a3b-mtp-q6 Closed without merging. The maintainer rejected the standalone update, noting that astroid v3 requires a coordinated upgrade alongside pylint to ensure compatibility.
qwen3.6-35b-a3b-mtp-q6 Closed manually without merging. The astroid v3 update was deferred because it requires a coordinated upgrade alongside pylint to maintain compatibility. Renovate will ignore future updates for this major version bump.

Update history

No update history recorded yet.

Related issues

Issue Project State Summary Similarity
#114 chore(deps): update dependency lint/pylint to v3 craft-store closed Closed without merging. The dependency update was abandoned after maintainers confirmed the project is removing pylint entirely.
81%
#1832 build(deps): update dependency astroid to v3.3.2 (main) charmcraft closed Closed without merging. The astroid v3.3.2 update was abandoned, and Renovate will ignore this specific version, waiting to propose a newer release instead.
80%
#163 chore(deps): update dependency pydantic to v2 craft-application closed Dependency update for pydantic v2 was closed without merging. Renovate will ignore future 2.x updates unless manually upgraded or the PR is renamed to trigger a replacement.
79%
#1351 chore(deps): update dependency pydantic to v2 charmcraft closed Closed without merging. Maintainers determined the pydantic v2 migration requires a separate project structure, so the update was abandoned. Renovate will skip future v2 updates until manually addressed or the PR is reopened.
79%
#116 chore(deps): update dependency pydantic to v2 craft-store closed Closed without merging due to significant breaking changes required for Pydantic v2. The update was abandoned, and Renovate was configured to ignore future v2 releases until manual migration occurs.
79%
#544 chore(deps): update dependency docutils to v0.21.1 rockcraft closed Closed without merging. A maintainer deferred the docutils update to be applied as part of a larger change. Renovate will ignore this version.
78%
#524 chore(deps): update dependency mypy to v1 craft-parts closed Closed without merging. Superseded by manual dependency handling in PR #525. Renovate will ignore future v1.x updates until manually upgraded.
78%
#1350 chore(deps): update dependency platformdirs to v3.11.0 charmcraft closed Dependency update for platformdirs to v3.11.0 was approved and passed CI but closed without merging. Renovate will ignore this update and generate a new PR for a newer version.
77%
#698 chore(deps): update dependency tox-gh to v1.3.1 craft-parts closed Closed without merging. Maintainer marked the tox-gh v1.3.1 update as unnecessary, and Renovate will ignore this version until a newer release is available.
77%
#1344 chore(deps): update dependency mypy to v1.6.1 charmcraft closed Abandoned without merging. The mypy dependency update to v1.6.1 was approved and passed CI but manually closed. Renovate will ignore this version and open a replacement PR for newer releases.
76%