)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"d8b7d39f7c36b75765a463bda5dd9c78ab8fd2bb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"4d4dcc26_e2f46f15","updated":"2025-12-17 05:45:06.000000000","message":"During the docs build, Sphinx imports glance.wsgi.api to extract docstrings. The module initializes the WSGI application at import time by calling wsgi_app.init_app(), which loads the paste configuration. That config requires pymysql (an optional dependency), which isn’t installed in the docs environment, causing the build to fail.\n\n\nThe fix could be catch exceptions during initialization and create a dummy application object, something like below in glance/wsgi/api.py\n\n\n```\napplication \u003d None\nwith threading.Lock():\n    if application is None:\n        try:\n            application \u003d wsgi_app.init_app()\n        except Exception:\n            # During documentation builds, optional dependencies may be missing.\n            # Create a dummy application to allow docs to build successfully.\n            # This will fail at runtime if actually used, which is expected.\n            class DummyApp:\n                def __call__(self, environ, start_response):\n                    raise RuntimeError(\"Application not initialized\")\n            application \u003d DummyApp()\n```\n\n\nOR add below in glance/doc/requirements.txt\n\n# needed for sphinx extension\nstevedore!\u003d3.0.0,\u003e\u003d1.20.0 # Apache-2.0\n\n# needed for wsgi module initialization during docs build\nPyMySQL\u003e\u003d0.7.6 # MIT License\n\n\nI will prefer modifying requirements.txt","commit_id":"26b2dbfb80cdb4ed9d5e228f12119af5d313c249"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"9628f7ada6ef8a7b53c83948e5ff88012c9d4513","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"3ea24cea_9b579f75","updated":"2025-12-16 19:01:36.000000000","message":"thanks for finding this out! makes total sense","commit_id":"26b2dbfb80cdb4ed9d5e228f12119af5d313c249"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"1e327a2e47f847a498f12e53befe6f4b66061ecf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"b6f321db_d5f4f469","in_reply_to":"4d4dcc26_e2f46f15","updated":"2025-12-23 10:07:48.000000000","message":"so adding requirements won\u0027t work, as wsgi requires config to be generated, and it\u0027s not simple to pass an arbitrary path to it.\n\nSo instead I\u0027ve proposed to fix sphinx excludepath, as I\u0027m not really sure if there\u0027s anything we wanna sphinx to consume in wsgi directory.","commit_id":"26b2dbfb80cdb4ed9d5e228f12119af5d313c249"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"4328d2111da1143dc5673fab4ccddc5e9ccc9309","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"13d62cb6_fe23f837","updated":"2026-01-11 20:39:01.000000000","message":"recheck","commit_id":"d55c065a38d4be8616b49692e7222543c48cf8a7"}]}
