)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"de601bfa09798073b2407d0f90d43ebe8db67272","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"26acea88_7bcf2018","updated":"2025-09-18 13:31:44.000000000","message":"A couple of suggestions inline, otherwise looks good to me.\n\nApparently it\u0027s too late to merge this, so we\u0027ll probably merge this early in G.","commit_id":"c45485f8a02b7f4efea98bb0acab0d61f3d07bf1"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"2dd2812d5331556eb4b89ac33ac1563dba359646","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"5eb3a45e_d0dc1753","updated":"2025-10-08 16:17:05.000000000","message":"OK we can change the license-related fields later.","commit_id":"c45485f8a02b7f4efea98bb0acab0d61f3d07bf1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"95f7382b0ce106023e435f95bde9348dfbd11293","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"bea73ecb_3dfe53ec","updated":"2025-10-08 16:18:42.000000000","message":"recheck new results","commit_id":"c45485f8a02b7f4efea98bb0acab0d61f3d07bf1"}],"pyproject.toml":[{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"de601bfa09798073b2407d0f90d43ebe8db67272","unresolved":true,"context_lines":[{"line_number":8,"context_line":"authors \u003d ["},{"line_number":9,"context_line":"    {name \u003d \"OpenStack\", email \u003d \"openstack-discuss@lists.openstack.org\"},"},{"line_number":10,"context_line":"]"},{"line_number":11,"context_line":"readme \u003d {file \u003d \"README.rst\", content-type \u003d \"text/x-rst\"}"},{"line_number":12,"context_line":"license \u003d {text \u003d \"Apache-2.0\"}"},{"line_number":13,"context_line":"dynamic \u003d [\"version\", \"dependencies\"]"},{"line_number":14,"context_line":"requires-python \u003d \"\u003e\u003d3.10\""}],"source_content_type":"text/x-toml","patch_set":2,"id":"5d64e045_b281dfe1","line":11,"range":{"start_line":11,"start_character":53,"end_line":11,"end_character":54},"updated":"2025-09-18 13:31:44.000000000","message":"Explicit is better than implicit, but the content-type can be autodetected now[1]. I don\u0027t really mind either way, so it\u0027s probably fine to keep it like this if you like being explicit  :)\n\n[1] https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#readme","commit_id":"c45485f8a02b7f4efea98bb0acab0d61f3d07bf1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f884dd28d3ad16452fbdc49eae32dd776bd5e413","unresolved":false,"context_lines":[{"line_number":8,"context_line":"authors \u003d ["},{"line_number":9,"context_line":"    {name \u003d \"OpenStack\", email \u003d \"openstack-discuss@lists.openstack.org\"},"},{"line_number":10,"context_line":"]"},{"line_number":11,"context_line":"readme \u003d {file \u003d \"README.rst\", content-type \u003d \"text/x-rst\"}"},{"line_number":12,"context_line":"license \u003d {text \u003d \"Apache-2.0\"}"},{"line_number":13,"context_line":"dynamic \u003d [\"version\", \"dependencies\"]"},{"line_number":14,"context_line":"requires-python \u003d \"\u003e\u003d3.10\""}],"source_content_type":"text/x-toml","patch_set":2,"id":"128d22d9_c807daba","line":11,"range":{"start_line":11,"start_character":53,"end_line":11,"end_character":54},"in_reply_to":"5d64e045_b281dfe1","updated":"2025-09-18 13:52:16.000000000","message":"This is copy-pasting from other projects. Let\u0027s keep it here to be consistent, if that\u0027s okay (it\u0027s no harm)","commit_id":"c45485f8a02b7f4efea98bb0acab0d61f3d07bf1"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"de601bfa09798073b2407d0f90d43ebe8db67272","unresolved":true,"context_lines":[{"line_number":9,"context_line":"    {name \u003d \"OpenStack\", email \u003d \"openstack-discuss@lists.openstack.org\"},"},{"line_number":10,"context_line":"]"},{"line_number":11,"context_line":"readme \u003d {file \u003d \"README.rst\", content-type \u003d \"text/x-rst\"}"},{"line_number":12,"context_line":"license \u003d {text \u003d \"Apache-2.0\"}"},{"line_number":13,"context_line":"dynamic \u003d [\"version\", \"dependencies\"]"},{"line_number":14,"context_line":"requires-python \u003d \"\u003e\u003d3.10\""},{"line_number":15,"context_line":"classifiers \u003d ["}],"source_content_type":"text/x-toml","patch_set":2,"id":"11354c04_23671ea7","line":12,"range":{"start_line":12,"start_character":26,"end_line":12,"end_character":29},"updated":"2025-09-18 13:31:44.000000000","message":"This is the syntax from a draft of PEP639, I think. The docs[1] specify that:\n\n\"Text string that is a valid SPDX license expression, as specified in License Expression. Tools SHOULD validate and perform case normalization of the expression.\"\n\nSee also an example[2].\n\nI think we could also use \"license-files\"[3] here\n\n[1] https://packaging.python.org/en/latest/specifications/pyproject-toml/#pyproject-toml-license\n[2] https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license\n[3] https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license-files","commit_id":"c45485f8a02b7f4efea98bb0acab0d61f3d07bf1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f884dd28d3ad16452fbdc49eae32dd776bd5e413","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    {name \u003d \"OpenStack\", email \u003d \"openstack-discuss@lists.openstack.org\"},"},{"line_number":10,"context_line":"]"},{"line_number":11,"context_line":"readme \u003d {file \u003d \"README.rst\", content-type \u003d \"text/x-rst\"}"},{"line_number":12,"context_line":"license \u003d {text \u003d \"Apache-2.0\"}"},{"line_number":13,"context_line":"dynamic \u003d [\"version\", \"dependencies\"]"},{"line_number":14,"context_line":"requires-python \u003d \"\u003e\u003d3.10\""},{"line_number":15,"context_line":"classifiers \u003d ["}],"source_content_type":"text/x-toml","patch_set":2,"id":"447b3075_907e6448","line":12,"range":{"start_line":12,"start_character":26,"end_line":12,"end_character":29},"in_reply_to":"11354c04_23671ea7","updated":"2025-09-18 13:52:16.000000000","message":"Ask @fungi@yuggoth.org about this. The meaning of this setting is still being debated and may change in the new future, so I\u0027m intentionally using the older value for now.","commit_id":"c45485f8a02b7f4efea98bb0acab0d61f3d07bf1"},{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"0ccf2fdd935f691d9b3c9bcf9e8afed2ae5dcef7","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    {name \u003d \"OpenStack\", email \u003d \"openstack-discuss@lists.openstack.org\"},"},{"line_number":10,"context_line":"]"},{"line_number":11,"context_line":"readme \u003d {file \u003d \"README.rst\", content-type \u003d \"text/x-rst\"}"},{"line_number":12,"context_line":"license \u003d {text \u003d \"Apache-2.0\"}"},{"line_number":13,"context_line":"dynamic \u003d [\"version\", \"dependencies\"]"},{"line_number":14,"context_line":"requires-python \u003d \"\u003e\u003d3.10\""},{"line_number":15,"context_line":"classifiers \u003d ["}],"source_content_type":"text/x-toml","patch_set":2,"id":"d7211854_89051b6e","line":12,"range":{"start_line":12,"start_character":26,"end_line":12,"end_character":29},"in_reply_to":"447b3075_907e6448","updated":"2025-09-19 18:11:22.000000000","message":"The primary discussion to keep an eye on (yes it\u0027s hundreds of posts long now) can be found here: https://discuss.python.org/t/expressing-project-vs-distribution-licenses-post-pep-639/90314\n\nConsensus, if there is one, seems to be settling on the side of this field reflecting the comprehensive set of licenses for the package as distributed, since it\u0027s technically package metadata even though it\u0027s part of the `project` table, which in many cases will need to list more than just the source project\u0027s license. Unfortunately, that means different packages built from the same version of source may have different licenses if they link different libraries or bundle other software at build time. Since the original PEP 639 didn\u0027t take this need into account, there\u0027s another related draft PEP 808 now about being able to declare \"partially dyynamic\" (append-only or similar) semantics for metadata fields in order to support that: https://github.com/python/peps/pull/4598 (for that matter, PyPI currently lacks the UI capability to display different licenses for packages built from a common source too).\n\nBecause the table-based license field was previously implemented in SetupTools with that older syntax enforced even in the latest versions to support e.g. Python 3.8 (SetupTools\u003c77), there\u0027s a request to continue supporting it past the stated deadline of next February: https://github.com/pypa/setuptools/issues/5081\n\nThere\u0027s also been a suggestion to keep the `License :: .*` trove classifiers around indefinitely for indicating the source project license independent of the `project.license` package metadata, though it\u0027s not clear yet whether there\u0027s any consensus around that compromise.\n\nFor the most part, if a project no longer needs to support Python\u003c3.9 and doesn\u0027t bundle/vendor any other projects with additional licenses and doesn\u0027t build non-Python extensions (so-called \"pure Python\" projects), then project license and package license are probably the same and can use the simple SPDX string format. I expect this is the case for Glance, but there are plenty of other projects in OpenStack where things aren\u0027t so simple.","commit_id":"c45485f8a02b7f4efea98bb0acab0d61f3d07bf1"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"de601bfa09798073b2407d0f90d43ebe8db67272","unresolved":true,"context_lines":[{"line_number":16,"context_line":"  \"Development Status :: 5 - Production/Stable\","},{"line_number":17,"context_line":"  \"Environment :: Console\","},{"line_number":18,"context_line":"  \"Intended Audience :: Developers\","},{"line_number":19,"context_line":"  \"License :: OSI Approved :: Apache Software License\","},{"line_number":20,"context_line":"  \"Operating System :: POSIX :: Linux\","},{"line_number":21,"context_line":"  \"Programming Language :: Python\","},{"line_number":22,"context_line":"  \"Programming Language :: Python :: 3\","}],"source_content_type":"text/x-toml","patch_set":2,"id":"59b51702_5d7dc062","line":19,"range":{"start_line":19,"start_character":53,"end_line":19,"end_character":54},"updated":"2025-09-18 13:31:44.000000000","message":"License classifiers have been deprecated, please remove this.","commit_id":"c45485f8a02b7f4efea98bb0acab0d61f3d07bf1"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"92e5ce0323d4ab5403fb1c5dd7897abc97e5f6fd","unresolved":false,"context_lines":[{"line_number":16,"context_line":"  \"Development Status :: 5 - Production/Stable\","},{"line_number":17,"context_line":"  \"Environment :: Console\","},{"line_number":18,"context_line":"  \"Intended Audience :: Developers\","},{"line_number":19,"context_line":"  \"License :: OSI Approved :: Apache Software License\","},{"line_number":20,"context_line":"  \"Operating System :: POSIX :: Linux\","},{"line_number":21,"context_line":"  \"Programming Language :: Python\","},{"line_number":22,"context_line":"  \"Programming Language :: Python :: 3\","}],"source_content_type":"text/x-toml","patch_set":2,"id":"2948801c_38eafe8c","line":19,"range":{"start_line":19,"start_character":53,"end_line":19,"end_character":54},"in_reply_to":"282ea8b9_5f11bbe8","updated":"2025-09-18 17:42:15.000000000","message":"(I\u0027m mostly repeating what Stephen said, but ) I tried removing this during the previous cycle but had some discussions with fungi. Our conclusion at that time was that we should wait until the discussions in upstream python community should be settled down before we remove this, because there are large possibility that the direction may change again.","commit_id":"c45485f8a02b7f4efea98bb0acab0d61f3d07bf1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f884dd28d3ad16452fbdc49eae32dd776bd5e413","unresolved":false,"context_lines":[{"line_number":16,"context_line":"  \"Development Status :: 5 - Production/Stable\","},{"line_number":17,"context_line":"  \"Environment :: Console\","},{"line_number":18,"context_line":"  \"Intended Audience :: Developers\","},{"line_number":19,"context_line":"  \"License :: OSI Approved :: Apache Software License\","},{"line_number":20,"context_line":"  \"Operating System :: POSIX :: Linux\","},{"line_number":21,"context_line":"  \"Programming Language :: Python\","},{"line_number":22,"context_line":"  \"Programming Language :: Python :: 3\","}],"source_content_type":"text/x-toml","patch_set":2,"id":"282ea8b9_5f11bbe8","line":19,"range":{"start_line":19,"start_character":53,"end_line":19,"end_character":54},"in_reply_to":"59b51702_5d7dc062","updated":"2025-09-18 13:52:16.000000000","message":"It\u0027s a fair point but I think this is also tied into the same debate as above. If I do remove this, I should do it across all projects since they pretty much all have this defined at the moment.","commit_id":"c45485f8a02b7f4efea98bb0acab0d61f3d07bf1"}]}
