)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"b2195c9bbe7db3bd8103161e102c9a0810710400","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"4fc3a333_6c19acd3","updated":"2025-01-06 14:10:48.000000000","message":"Do we *need* to do this? I\u0027ve managed to do Swift dev work for 10+years on macOS but this is a show-stopper for diskfile development on macOS.\n\n```\nE           AttributeError: module \u0027os\u0027 has no attribute \u0027setxattr\u0027\n```\n\nhttps://docs.python.org/3/library/os.html#linux-extended-attributes","commit_id":"90fcffaa80b9bf88aa502fcdb756cfe8394de3e7"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"799df4c85dfe21dab817f69b72f2548356f418ee","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"a457f7a9_7df92414","updated":"2025-01-06 19:58:41.000000000","message":"I would absolutely love this, but we need to come up with a solution for Alistair\u0027s MacOS.\n\nIt sounds weird for me that os would not support xattr on MacOS. It is part of the OS, so why is Python being recalcitrant?","commit_id":"90fcffaa80b9bf88aa502fcdb756cfe8394de3e7"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"cecbb574c355e348c79733c614ba45d73edd7936","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"dcf0ec48_a250364a","updated":"2025-01-03 19:24:41.000000000","message":"This is pretty great, the xattr was a thorn in my side for many years. I kept building my own version, or else I could not run unittests on my laptop.\n\nRegarding NotImplementedError, I noticed that tests stuff it. But the main code lets it bubble up, so we should be good if it ever comes up.","commit_id":"90fcffaa80b9bf88aa502fcdb756cfe8394de3e7"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"c3082415210cd5572775e0786f72b21cb270afd0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"bbcf5ca7_6793e9ea","in_reply_to":"2358682a_77281368","updated":"2025-01-06 19:42:37.000000000","message":"\u003e since xattr doesn\u0027t publish manylinux wheels\n\nEr, not manylinux (they do that), abi3 (their latest release has separate wheels for each minor version in py38-312)","commit_id":"90fcffaa80b9bf88aa502fcdb756cfe8394de3e7"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"6c7eebb07ce28e3a3459d27969624bd56b51b988","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"2358682a_77281368","in_reply_to":"4fc3a333_6c19acd3","updated":"2025-01-06 19:21:31.000000000","message":"Main goal was just to reduce the number of dependencies required -- especially since it involves a C extension. As an example of *why* we want that, since xattr doesn\u0027t publish manylinux wheels, it\u0027s hard to even *try* to test swift on py313 without a C toolchain.\n\nFWIW, I found https://github.com/python/cpython/issues/57187 but it doesn\u0027t seem to show much progress for a 10+ year-old issue, despite [someone picking up working on it again](https://github.com/python/cpython/pull/103994) nearly two years ago...\n\nMaybe there\u0027d be a tenable way forward with something like\n```\ntry:\n    import xattr\nexcept ImportError:\n    import os as xattr\n```\n?","commit_id":"90fcffaa80b9bf88aa502fcdb756cfe8394de3e7"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"61ebd485e0a97fbc73dacd2f4f146f3bec5b554e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3071c1bb_3b2ef8e5","updated":"2025-01-31 18:37:21.000000000","message":"I\u0027m okay with this, let\u0027s see what Alistair says.","commit_id":"b7854bbe0c6e905eea1052753c4f3a16dc720251"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"188ca30743eee0399265ac59750f59bb9b850796","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"d5d08d1b_c8543cb6","updated":"2025-01-31 17:30:02.000000000","message":"Requirements job might not like it, but I think this ought to work for Alistair.","commit_id":"b7854bbe0c6e905eea1052753c4f3a16dc720251"}],"requirements.txt":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"12c74fde7c68524525e773e7299ece78bfc05530","unresolved":true,"context_lines":[{"line_number":7,"context_line":"PasteDeploy\u003e\u003d2.0.0"},{"line_number":8,"context_line":"lxml\u003e\u003d4.2.3"},{"line_number":9,"context_line":"requests\u003e\u003d2.14.2                                                # Apache-2.0"},{"line_number":10,"context_line":"xattr\u003e\u003d0.7.2;sys_platform!\u003d\u0027win32\u0027 and sys_platform!\u003d\u0027linux\u0027    # MIT"},{"line_number":11,"context_line":"PyECLib\u003e\u003d1.3.1,!\u003d1.6.2,!\u003d1.6.3                                  # BSD"},{"line_number":12,"context_line":"cryptography\u003e\u003d2.0.2                                             # BSD/Apache-2.0"},{"line_number":13,"context_line":"dnspython\u003e\u003d1.15.0                                               # http://www.dnspython.org/LICENSE"}],"source_content_type":"text/plain","patch_set":2,"id":"775d1219_fba7c29d","line":10,"updated":"2025-01-31 19:06:06.000000000","message":"Yeah, `requirements-check` doesn\u0027t like it:\n```\nWARNING: possible mismatch found for package \"xattr\"\n   Attribute \"markers\" does not match\n   \"sys_platform!\u003d\u0027win32\u0027 and sys_platform!\u003d\u0027linux\u0027\" does not match \"sys_platform!\u003d\u0027win32\u0027\"\n   Requirement(package\u003d\u0027xattr\u0027, location\u003d\u0027\u0027, specifiers\u003d\u0027\u003e\u003d0.7.2\u0027, markers\u003d\"sys_platform!\u003d\u0027win32\u0027 and sys_platform!\u003d\u0027linux\u0027\", comment\u003d\u0027# MIT\u0027, extras\u003dfrozenset())\n   Requirement(package\u003d\u0027xattr\u0027, location\u003d\u0027\u0027, specifiers\u003d\u0027\u0027, markers\u003d\"sys_platform!\u003d\u0027win32\u0027\", comment\u003d\u0027# MIT\u0027, extras\u003dfrozenset())\nERROR: Could not find a global requirements entry to match package xattr. If the package is already included in the global list, the name or platform markers there may not match the local settings.\n```\nMaybe we **do** want to drop it from `requirements.txt`...","commit_id":"b7854bbe0c6e905eea1052753c4f3a16dc720251"}],"swift/obj/diskfile.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"12c74fde7c68524525e773e7299ece78bfc05530","unresolved":true,"context_lines":[{"line_number":83,"context_line":"except ImportError:"},{"line_number":84,"context_line":"    # BSDs"},{"line_number":85,"context_line":"    from xattr import getxattr, setxattr"},{"line_number":86,"context_line":"    from xattr import removexattr  # noqa"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"PICKLE_PROTOCOL \u003d 2"},{"line_number":89,"context_line":"DEFAULT_RECLAIM_AGE \u003d timedelta(weeks\u003d1).total_seconds()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3adb0ab9_debebff2","line":86,"updated":"2025-01-31 19:06:06.000000000","message":"Maybe have this more like\n```\nexcept ImportError:\n    try:\n        # BSDs\n        from xattr import getxattr, setxattr\n        from xattr import removexattr  # noqa\n    except ImportError:\n        raise ImportError(\u0027No xattr support in os module; install xattr package\u0027)\n```\n?\n\nTo what degree do we even support non-Linux platforms? I feel like I\u0027ve occasionally seen bugs like https://bugs.launchpad.net/swift/+bug/1179268 ...\n\nIf we want to support them,\n- I feel like it should probably be in `requirements.txt` with an appropriate `sys_platform` marker, or at least in setup.cfg as part of some `bsd` extra\n- we should look at having a gate job that would actually run things on some BSD\n\nBut if it\u0027s *just* in support of developer workflows, I\u0027m much more OK with saying \"hey, go install this extra thing\" at runtime.","commit_id":"b7854bbe0c6e905eea1052753c4f3a16dc720251"}]}
