)]}'
{"id":"openstack%2Foslo.versionedobjects~700509","triplet_id":"openstack%2Foslo.versionedobjects~master~I9d1e9403352e82b0d8721c0efdc856152b9fae86","project":"openstack/oslo.versionedobjects","branch":"master","topic":"drop-py27-support","hashtags":[],"change_id":"I9d1e9403352e82b0d8721c0efdc856152b9fae86","subject":"Switch from inspect.getargspec to inspect.getfullargspec","status":"ABANDONED","created":"2019-12-24 12:05:47.000000000","updated":"2020-02-07 16:37:59.000000000","total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"03cc6ddd5c14c11cbcf3fb00e32600ca9e64890a","_number":700509,"virtual_id_number":700509,"owner":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"actions":{},"labels":{"Verified":{"disliked":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"tag":"autogenerated:zuul:check","value":-1,"date":"2020-02-07 13:13:26.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":-1,"default_value":0,"optional":true},"Code-Review":{"disliked":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"all":[{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":-1,"date":"2020-02-07 15:00:22.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","value":-1,"default_value":0,"optional":true},"Workflow":{"rejected":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"all":[{"value":-1,"date":"2020-02-07 11:49:26.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Backport-Candidate":{"all":[{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do Not Backport","-1":"Not A Backport Candidate"," 0":"Backport Review Needed","+1":"Proposed Backport","+2":"Should Backport"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2020-02-07 13:13:26.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2020-02-07 15:00:22.000000000","updated_by":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"reviewer":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"state":"REVIEWER"}],"messages":[{"id":"eb64beadbe610154e5780cfc39ce4f868d34e5c7","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2019-12-24 12:05:47.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"b08e1aef7a023e7df89e1f6b1b0d9f6b7d97f122","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2019-12-24 12:10:49.000000000","message":"Patch Set 1:\n\nDan Smith should weigh in on this.","accounts_in_message":[],"_revision_number":1},{"id":"cb6be2990d7b38a73ba79491fabc1d934a74923a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-12-24 13:51:10.000000000","message":"Patch Set 1: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n\n- tempest-full https://zuul.opendev.org/t/openstack/build/7459a87ccf8f429086363170f1fcf942 : SUCCESS in 1h 43m 37s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/3bbd4316d8e74a34b8d8689e4757f7ba : SUCCESS in 1h 24m 11s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/91e964b338444cf688ab52b012760378 : FAILURE in 3m 42s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f9f8a9891cbf4f8fa11fc4597524ea72 : SUCCESS in 3m 14s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/013cb40f29814534b40db79a7189be23 : SUCCESS in 3m 55s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/1bab461703d04e19af2b052ef1e6ef26 : FAILURE in 3m 54s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/38d549433f6c4692b2bd564e4e0a6b25 : FAILURE in 3m 30s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/de55c5e714d24461a91c608914dbc02e : SUCCESS in 4m 50s\n- oslo.versionedobjects-src-grenade-devstack-multinode https://zuul.opendev.org/t/openstack/build/4911ec71220742ad8445de7785ec87f7 : FAILURE in 1h 00m 42s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"46364af50a68f203346bc516d269ad7f54b7ef4e","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2020-02-07 11:45:55.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"7da881f3ca172c502858c53dee332f524278e195","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2020-02-07 11:49:26.000000000","message":"Patch Set 2: Workflow-1\n\nNeed to add/update a release note","accounts_in_message":[],"_revision_number":2},{"id":"a0bbbcb81477fd2bfb96e313d668342e3e398dd4","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-02-07 13:13:26.000000000","message":"Patch Set 2: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/e10df418414a485a90edef9f22d81739 : SUCCESS in 1h 25m 40s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/469f548395c6458c9576e5f340bf9fde : SUCCESS in 3m 43s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/3c089358bae041b8886f70650bbf5b1b : SUCCESS in 3m 24s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/1c60963eba2643169b3d1ad37b7eb4a2 : SUCCESS in 4m 25s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/a77b111303aa4cd5aabf20e5a02564cc : FAILURE in 4m 46s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/889f0c37869743e3a5430bff1e4e29a4 : SUCCESS in 4m 12s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/86075eba5c074a078ee0d1c342569331 : SUCCESS in 4m 08s\n- oslo.versionedobjects-src-grenade-devstack-multinode https://zuul.opendev.org/t/openstack/build/8b575f92f0454f70b6f41810f835e271 : FAILURE in 24m 32s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"87be4475c67fa393df9c7baca23c6b9de9f92e6e","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2020-02-07 14:23:57.000000000","message":"Patch Set 2:\n\nAlso looks like sets are unordered so the representation isn\u0027t stable. Can\u0027t remove all of that set formatting code","accounts_in_message":[],"_revision_number":2},{"id":"e9f2febd744c1e54bd495c4df5ca808feec31c0f","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2020-02-07 15:00:22.000000000","message":"Patch Set 2: Code-Review-1\n\nI think that the hashes changing is a real problem, and if we\u0027re going to do that, we need to bump the major version of the next release of the library. The hashes are what we use to determine when objects change in incompatible ways in the projects that use this library. It\u0027s super uncool to have that change underneath us, so the signaling method needs to be really strong, if we do.\n\nFrom a quick look, it seems like it should be not too hard to output something equivalent to getargspec when python3-specific features aren\u0027t used (like kw-only arguments). I\u0027d like to take a stab at doing something that tries to generate compatible output until it finds a feature that it can\u0027t do that for. If you added a kw-only arg to an object method, that would be a hash change anyway, so it would be fine to use the newer argspec output for things using those sorts of features, as long as it\u0027s done in just that place.","accounts_in_message":[],"_revision_number":2},{"id":"268bfe286d7837a5443285cff17c91dea6bfcd43","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2020-02-07 15:01:41.000000000","message":"Patch Set 2:\n\nAlso, is there an announced date or version where the old thing will be removed? Or is this just an exercise because we\u0027re seeing the deprecation message and feel overly compelled to change everyone\u0027s hashes to make that go away?","accounts_in_message":[],"_revision_number":2},{"id":"3d58b1f960867ca88601b8ba9b627ebcc428b9a9","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2020-02-07 15:45:41.000000000","message":"Patch Set 2:\n\n\u003e Also, is there an announced date or version where the old thing\n \u003e will be removed? Or is this just an exercise because we\u0027re seeing\n \u003e the deprecation message and feel overly compelled to change\n \u003e everyone\u0027s hashes to make that go away?\n\nNo, and it\u0027s a bit of a mess. fwict, getargspec has been deprecated since 3.0 and getfullargspec, which was introduced in 3.0, was deprecated in 3.5 only for that deprecation to be reversed in 3.6. As such, I\u0027m not sure when this will actually go (it\u0027s a similar situation for optparse) but I do think this is something that is more likely to happen now that Python 2.7 is no longer something upstream Python needs to care about. In addition, the next version of o.vo is going to be a major version bump that drops support for Python 2.7 so as far as signaling goes, we can\u0027t do much better #SemVer. From the perspective of nova, wouldn\u0027t this simply become:\n\n  if oslo_versionedobjects.__version__ \u003e\u003d (2, 0):\n      hashes \u003d { ... } # new hashes\n  else:\n      hashes \u003d { ... } # old hashes\n\nor just update in one go and bump our minimum? The hashes are only for testing purposes, right?","accounts_in_message":[],"_revision_number":2},{"id":"2dd27e17107490d26e425d7250aedf5a1ddb61ed","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2020-02-07 16:37:59.000000000","message":"Abandoned","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"16ea0d4ba146fb3f292b1d68ba5011780fc3d3cc","revisions":{"259debb283912a34d58c5280a7ce7a9dc563d47f":{"kind":"REWORK","_number":1,"created":"2019-12-24 12:05:47.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/09/700509/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.versionedobjects","ref":"refs/changes/09/700509/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/09/700509/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/09/700509/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/09/700509/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/09/700509/1"}}},"commit":{"parents":[{"commit":"f806dda6755546d15fcb620a0e4f9e446e6b6c47","subject":"Import ABCs from collections.abc","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/f806dda6755546d15fcb620a0e4f9e446e6b6c47"}]}],"author":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2019-12-24 11:49:09.000000000","tz":0},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2019-12-24 12:03:02.000000000","tz":0},"subject":"WIP: Handle deprecation of inspect.getargspec","message":"WIP: Handle deprecation of inspect.getargspec\n\ngetargspec has been deprecated in py3 with plans to remove it in a\nfuture release. The recommendation is to move to inspect.signature, but\nthe results of that call are different than the existing one.\n\nThere is also getfullargspec available under py3 that was originally\ndeprecated, but for the sake of handling 2/3 code, it has been\nun-deprecated. This call uses inspect internally, but returns a mostly\ncompatible result with what getargspec did. This handles getargspec\ndeprecation by just using getfullargspec instead if it is available\n\nThis is WIP because it\u0027s breaking the stable hashes we provide via the\n\u0027oslo_versionedobjects.fixture.ObjectVersionChecker.get_hashes\u0027 method.\nWe\u0027re either going to have to deal with this, via a major version bump\nthat also drops support for Python 2 or by vendoring the code from\nstdlib into o.v.o.\n\nChange-Id: I9d1e9403352e82b0d8721c0efdc856152b9fae86\nSigned-off-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/259debb283912a34d58c5280a7ce7a9dc563d47f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/259debb283912a34d58c5280a7ce7a9dc563d47f"}]},"branch":"refs/heads/master"},"16ea0d4ba146fb3f292b1d68ba5011780fc3d3cc":{"kind":"REWORK","_number":2,"created":"2020-02-07 11:45:55.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/09/700509/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.versionedobjects","ref":"refs/changes/09/700509/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/09/700509/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/09/700509/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/09/700509/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/09/700509/2"}}},"commit":{"parents":[{"commit":"4d7cd135dafd775f649fc06b424e026b0c263618","subject":"Drop use of six","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/4d7cd135dafd775f649fc06b424e026b0c263618"}]}],"author":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2019-12-24 11:49:09.000000000","tz":0},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2020-02-07 11:45:47.000000000","tz":0},"subject":"Switch from inspect.getargspec to inspect.getfullargspec","message":"Switch from inspect.getargspec to inspect.getfullargspec\n\ngetargspec has been deprecated in Python 3 with plans to remove it in a\nfuture release. The recommendation is to move to inspect.signature, but\nthe results of that call are different than the existing one. However,\nthere is also getfullargspec available under Python 3 that was\noriginally deprecated but, for the sake of handling 2/3 code, it has\nbeen un-deprecated. This call uses inspect internally, but returns a\nmostly compatible result with what getargspec did. This handles\ngetargspec deprecation by just using getfullargspec instead if it is\navailable. Switch to using this.\n\nNote that this results in a change in object hashes. This is unavoidable\nas the alternative is to vendor the deprecated (and broken, hence its\ndeprecation) \u0027getargspec\u0027 in o.vo. Since we\u0027re dropping Python 2 support\nand releasing a new major version, now is as good a time as any to do\nthis migration.\n\nChange-Id: I9d1e9403352e82b0d8721c0efdc856152b9fae86\nSigned-off-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/16ea0d4ba146fb3f292b1d68ba5011780fc3d3cc"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/16ea0d4ba146fb3f292b1d68ba5011780fc3d3cc"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
