{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":72947621,"defaultBranch":"master","name":"deepmerge","ownerLogin":"toumorokoshi","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2016-11-05T19:09:31.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/391240?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1724995858.0","currentOid":""},"activityList":{"items":[{"before":"bc16d566160d9cc21fcc4662aea0a6fcc4fbc498","after":"1de7d1827315047110cea90f408045d85200cb8b","ref":"refs/heads/master","pushedAt":"2024-08-30T05:24:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"toumorokoshi","name":"Yusuke Tsutsumi","path":"/toumorokoshi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/391240?s=80&v=4"},"commit":{"message":"chore: fixing lint","shortMessageHtmlLink":"chore: fixing lint"}},{"before":"7f3fd6627df8b6d5cab700cdfc0c7cd630323c10","after":"bc16d566160d9cc21fcc4662aea0a6fcc4fbc498","ref":"refs/heads/master","pushedAt":"2024-08-30T05:19:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"toumorokoshi","name":"Yusuke Tsutsumi","path":"/toumorokoshi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/391240?s=80&v=4"},"commit":{"message":"chore: add unit test for extended set","shortMessageHtmlLink":"chore: add unit test for extended set"}},{"before":"31c2aa9c03072d2f766e05bc97677f757a8a46e2","after":"7f3fd6627df8b6d5cab700cdfc0c7cd630323c10","ref":"refs/heads/master","pushedAt":"2024-08-30T05:17:42.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"toumorokoshi","name":"Yusuke Tsutsumi","path":"/toumorokoshi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/391240?s=80&v=4"},"commit":{"message":"fix: Different hash for same dictionaries problem (#32)\n\nWhen merging unhashable types, the hash is calculated based on `str(obj)`. The problem appears when the hash is calculated for two dictionaries like\r\n`a = {'foo': 1, 'bar': 2}` and `b = {'bar': 2, 'foo': 1}.`\r\n\r\nIn this case, the calculated hashes obviously don't match, though from any other perspective, the dictionaries have no difference.","shortMessageHtmlLink":"fix: Different hash for same dictionaries problem (#32)"}},{"before":"4e1f31ef6a03cb695e892346b9fd4a5fec820804","after":"31c2aa9c03072d2f766e05bc97677f757a8a46e2","ref":"refs/heads/master","pushedAt":"2024-08-30T05:05:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"toumorokoshi","name":"Yusuke Tsutsumi","path":"/toumorokoshi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/391240?s=80&v=4"},"commit":{"message":"feat: add typing for `merge` and `value_strategy` functions (#33)","shortMessageHtmlLink":"feat: add typing for merge and value_strategy functions (#33)"}},{"before":"3bb38cb050d343a573f44862c6ea8a4171ced37a","after":"4e1f31ef6a03cb695e892346b9fd4a5fec820804","ref":"refs/heads/master","pushedAt":"2024-02-05T06:15:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"toumorokoshi","name":"Yusuke Tsutsumi","path":"/toumorokoshi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/391240?s=80&v=4"},"commit":{"message":"chore: Remove redundant black config (#31)\n\nPer [black docs](https://black.readthedocs.io/en/stable/usage_and_configuration/the_basics.html)\r\n\r\n> By default, Black will infer target versions from the project metadata in pyproject.toml, specifically the [project.requires-python] field.","shortMessageHtmlLink":"chore: Remove redundant black config (#31)"}},{"before":"d1c417e9369dfcdcf83d7ff5a58ec6354bad19fb","after":"3bb38cb050d343a573f44862c6ea8a4171ced37a","ref":"refs/heads/master","pushedAt":"2024-01-29T16:56:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"toumorokoshi","name":"Yusuke Tsutsumi","path":"/toumorokoshi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/391240?s=80&v=4"},"commit":{"message":"feat: add typing / drop Python < 3.8 support (#30)\n\nsince python2 and many versions of 3.7 are end-of-life, and type hints would be be valuable for the developer experience, remove support for these EOL versions of Python while adding type hints.\r\n\r\nFixes: #27 \r\n\r\nAt a high level the following changes have been made:\r\n\r\n- Update code to use new features available from 3.8 (e.g. `f\"{foo=}` notation).\r\n- Type annotations\r\n - note: Because we use `from __future__ import annotations` we can use \"new style\" annotations (e.g. `str | list[int] | None` instead of `Optional[Union[str, List[int]]]`) which are normally only available in higher versions of python. However it does mean that these annotations cannot be resolved from their string representation (all type annotations are stored as strings which is why this works) into their concrete classes unless you are running a supported version of Python.\r\n- Completely move to `pyrproject.toml`\r\n- Move all development dependencies to `pyproject.toml`, make `make .venv` more portable\r\n - `virtualenv` isn't always available so use `-m venv .venv` which is just as effective, and not all systems have `python(2)` installed or `python3-is-python` so explicitly use `python3`\r\n- Add some new badges to README","shortMessageHtmlLink":"feat: add typing / drop Python < 3.8 support (#30)"}},{"before":"98ec8c11a712d7791877cb3171eab0094ec5aab2","after":"d1c417e9369dfcdcf83d7ff5a58ec6354bad19fb","ref":"refs/heads/master","pushedAt":"2024-01-18T06:20:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"toumorokoshi","name":"Yusuke Tsutsumi","path":"/toumorokoshi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/391240?s=80&v=4"},"commit":{"message":"minor: small doc improvement (#29)","shortMessageHtmlLink":"minor: small doc improvement (#29)"}},{"before":"48cc8cbfc45dce7a5cacddcb835d938786100f2f","after":"98ec8c11a712d7791877cb3171eab0094ec5aab2","ref":"refs/heads/master","pushedAt":"2023-12-18T22:07:11.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"toumorokoshi","name":"Yusuke Tsutsumi","path":"/toumorokoshi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/391240?s=80&v=4"},"commit":{"message":"fix: make predefined merge strategies work with primitive collections subtypes (#25)\n\nCurrently the predefined merge strategies for dicts, lists and sets are not being applied when the objects to be merged are different subtypes of those base types.\r\n\r\nFor instance, two dicts can be merged. Even a dict with an OrderedDict, or viceversa. But an OrderedDict and a defaultdict are treated as two completely different types and the conflict strategy is applied, although they could perfectly be merged as dicts, as they are both subtypes of dict and behave as such.","shortMessageHtmlLink":"fix: make predefined merge strategies work with primitive collections…"}},{"before":"33a078ac7a29b63dfb91fea806cc6b96ede3fd23","after":"48cc8cbfc45dce7a5cacddcb835d938786100f2f","ref":"refs/heads/master","pushedAt":"2023-12-18T21:57:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"toumorokoshi","name":"Yusuke Tsutsumi","path":"/toumorokoshi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/391240?s=80&v=4"},"commit":{"message":"chore: update python versions, rm 2.7 (#26)\n\nremove python2.7 since it is no longer being used. Update other Python versions.","shortMessageHtmlLink":"chore: update python versions, rm 2.7 (#26)"}},{"before":"c96610a9c63051c4e22eca71da5ce5fc9ce4ea64","after":"33a078ac7a29b63dfb91fea806cc6b96ede3fd23","ref":"refs/heads/master","pushedAt":"2023-03-31T20:20:00.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"toumorokoshi","name":"Yusuke Tsutsumi","path":"/toumorokoshi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/391240?s=80&v=4"},"commit":{"message":"Merge pull request #24 from jan-golda/patch-1\n\nFix documentation for custom strategies","shortMessageHtmlLink":"Merge pull request #24 from jan-golda/patch-1"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0zMFQwNToyNDo1MS4wMDAwMDBazwAAAASoTU-B","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0zMFQwNToyNDo1MS4wMDAwMDBazwAAAASoTU-B","endCursor":"Y3Vyc29yOnYyOpK7MjAyMy0wMy0zMVQyMDoyMDowMC4wMDAwMDBazwAAAAMPxjR_"}},"title":"Activity · toumorokoshi/deepmerge"}