Migration notes#
Migration and deprecation notes for libvcs are here, see Changelog as well.
Welcome on board! π
π For safety, always pin the package
π Check the migration notes (You are here)
π£ If you feel something got deprecated and it interrupted you - past, present, or future - voice your opinion on the tracker.
We want to make libvcs fun, reliable, and useful for users.
API changes can be painful.
If we can do something to draw the sting, weβll do it. Weβre taking a balanced approach. Thatβs why these notes are here!
(Please pin the package. π)
Next release#
Notes on the upcoming release will be added here
libvcs 0.20.0 (2022-10-31)#
URLs: Mapping now class attributes (#433)#
URL.rule_map
is now a class attribute rather than a dataclass attribute.
Before:
@dataclasses.dataclass(repr=False)
class GitLabURL(GitURL):
rule_map: RuleMap = RuleMap(
_rule_map={'gitlab_prefix': GitLabPrefix}
)
In python 3.11, that raises an error:
File "/home/user/.python/3.11.0/lib/python3.11/dataclasses.py", line 1211, in wrap
return _process_class(cls, init, repr, eq, order, unsafe_hash,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/user/.python/3.11.0/lib/python3.11/dataclasses.py", line 959, in _process_class
cls_fields.append(_get_field(cls, name, type, kw_only))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/user/.python/3.11.0/lib/python3.11/dataclasses.py", line 816, in _get_field
raise ValueError(f'mutable default {type(f.default)} for field '
ValueError: mutable default <class 'libvcs.url.base.RuleMap'> for field rule_map is not allowed: use default_factory
After release:
>>> import dataclasses
>>> from libvcs.url.base import RuleMap
>>> from libvcs.url.git import GitURL, DEFAULT_RULES
>>> @dataclasses.dataclass(repr=False)
... class MyGitURL(GitURL):
... rule_map = RuleMap(
... _rule_map={'gitlab_prefix': DEFAULT_RULES}
... )