)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a28f7d00c93159aa4aaa276c9ded254eae8c541d","unresolved":true,"context_lines":[{"line_number":30,"context_line":"* Is the function of this library already covered by other libraries"},{"line_number":31,"context_line":"  in global-requirements.txt?"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    No."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"* Is the library required for OpenStack project or related dev or"},{"line_number":36,"context_line":"  infrastructure setup? (Answer to this should be Yes, of course) Which?"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"a4591991_25d6f89a","line":34,"range":{"start_line":33,"start_character":0,"end_line":34,"end_character":1},"updated":"2026-04-07 11:52:55.000000000","message":"This isn\u0027t true though, right? Selenium provides very similar functionality. I understand Playwright has an easier learning curve and is faster, meaning there are reasons to prefer it over Selenium, but we should at least note that here","commit_id":"65686a3e402ae0eef6e6c701da30f71d6e3a5006"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"2d60f98075395b1071d831261e471792c91f9652","unresolved":true,"context_lines":[{"line_number":30,"context_line":"* Is the function of this library already covered by other libraries"},{"line_number":31,"context_line":"  in global-requirements.txt?"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    No."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"* Is the library required for OpenStack project or related dev or"},{"line_number":36,"context_line":"  infrastructure setup? (Answer to this should be Yes, of course) Which?"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"b8acb170_0f62deaf","line":34,"range":{"start_line":33,"start_character":0,"end_line":34,"end_character":1},"in_reply_to":"3eeaf364_71b34ce6","updated":"2026-04-13 12:50:36.000000000","message":"maybe some discussion with the horizon team and other dashboard plugin maintainers would be good? adding this dependency only for a single plugin doesn\u0027t sound too convincing to me, if you could get others to join the boat and in the end possibly replace selenium completely, that would be quite a different story","commit_id":"65686a3e402ae0eef6e6c701da30f71d6e3a5006"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"79121d26f36e46a54181bfc1130961987a0585b9","unresolved":true,"context_lines":[{"line_number":30,"context_line":"* Is the function of this library already covered by other libraries"},{"line_number":31,"context_line":"  in global-requirements.txt?"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    No."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"* Is the library required for OpenStack project or related dev or"},{"line_number":36,"context_line":"  infrastructure setup? (Answer to this should be Yes, of course) Which?"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"a4adcb1a_320c51e3","line":34,"range":{"start_line":33,"start_character":0,"end_line":34,"end_character":1},"in_reply_to":"a4591991_25d6f89a","updated":"2026-04-07 12:06:43.000000000","message":"while it does its less reliable and has quite a lot of technical debt in comparison.\n\nmentioning that Selenium cna provide some of the same functionality is valid however. we evalcuated both last cycle and the developer expericne of actully wrinting the tests in playwrite vastly exceed any value we could have form contiuing to us selenium both in terms of reviewign the code and writing/debuging them form the POCs we did.\n\nhttps://review.opendev.org/c/openstack/watcher-dashboard/+/970353\nhttps://review.opendev.org/c/openstack/watcher-dashboard/+/976594\nvs \nhttps://review.opendev.org/c/openstack/watcher-dashboard/+/970573\n\nthe playwright test are still in early review but its clear its a net win on understandablity.","commit_id":"65686a3e402ae0eef6e6c701da30f71d6e3a5006"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6247a672fef0fce3b9bd44f655e59cd6aa2caaea","unresolved":true,"context_lines":[{"line_number":30,"context_line":"* Is the function of this library already covered by other libraries"},{"line_number":31,"context_line":"  in global-requirements.txt?"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    No."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"* Is the library required for OpenStack project or related dev or"},{"line_number":36,"context_line":"  infrastructure setup? (Answer to this should be Yes, of course) Which?"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"dc4a3dff_08c8bbc8","line":34,"range":{"start_line":33,"start_character":0,"end_line":34,"end_character":1},"in_reply_to":"a4adcb1a_320c51e3","updated":"2026-04-07 15:07:22.000000000","message":"Yup, that\u0027s all fair. My point is simply that we should state that here, rather than fibbing and saying there\u0027s no alternative","commit_id":"65686a3e402ae0eef6e6c701da30f71d6e3a5006"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"800dd9d516c3c02e94140d24008bc8e9efe518a0","unresolved":true,"context_lines":[{"line_number":30,"context_line":"* Is the function of this library already covered by other libraries"},{"line_number":31,"context_line":"  in global-requirements.txt?"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    No."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"* Is the library required for OpenStack project or related dev or"},{"line_number":36,"context_line":"  infrastructure setup? (Answer to this should be Yes, of course) Which?"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"f8a131dc_a1dc2194","line":34,"range":{"start_line":33,"start_character":0,"end_line":34,"end_character":1},"in_reply_to":"b8acb170_0f62deaf","updated":"2026-04-13 13:32:58.000000000","message":"i would love if we could replace selenium across the board but i didnt want to block watcher on converting horizon to playwright.\n\nform my perspective i would prefer not to have e2e test at all if we had to use selenium for it that just too much tech debt to me to maintain.\n\ni was proposing we use ti for grian-ui evenutlly.\n\nwe (mainly victoria) has started looking at grian-ui again to provide a\ntelemerty dashbaord on top of ateos/prometheus.\n\ni had hoped that could reuse playwright too.","commit_id":"65686a3e402ae0eef6e6c701da30f71d6e3a5006"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"c0c2af00a42df0908c2366c06161a21dc386f4d9","unresolved":true,"context_lines":[{"line_number":30,"context_line":"* Is the function of this library already covered by other libraries"},{"line_number":31,"context_line":"  in global-requirements.txt?"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    No."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"* Is the library required for OpenStack project or related dev or"},{"line_number":36,"context_line":"  infrastructure setup? (Answer to this should be Yes, of course) Which?"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3eeaf364_71b34ce6","line":34,"range":{"start_line":33,"start_character":0,"end_line":34,"end_character":1},"in_reply_to":"dc4a3dff_08c8bbc8","updated":"2026-04-08 12:38:14.000000000","message":"Thank you Sean and Stephen for point that out. I have included selenium here.","commit_id":"65686a3e402ae0eef6e6c701da30f71d6e3a5006"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"3b7ccb209a1b081d722e366b5fedcef4011cdb0e","unresolved":true,"context_lines":[{"line_number":30,"context_line":"* Is the function of this library already covered by other libraries"},{"line_number":31,"context_line":"  in global-requirements.txt?"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    No."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"* Is the library required for OpenStack project or related dev or"},{"line_number":36,"context_line":"  infrastructure setup? (Answer to this should be Yes, of course) Which?"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ac22e08c_582a4619","line":34,"range":{"start_line":33,"start_character":0,"end_line":34,"end_character":1},"in_reply_to":"f8a131dc_a1dc2194","updated":"2026-04-15 06:14:14.000000000","message":"Thank you Jens for review and comment and Thanks Sean for planning to adopt Playwright in grian-ui! \n\nI share your perspective that avoiding Selenium is preferable given the tech debt concerns, and Playwright offers a better path forward.                                   \nBased on the Watcher team\u0027s POC, Playwright appears easier for non-UI developers to automatically generate test code compared to Selenium. It helps developers to easily rewrite the code.\n\nI\u0027ve added Horizon reviewers for visibility, In case they want to reuse it in future. I hope we can build momentum for Playwright adoption starting with Watcher dashboard and grian-ui over time. \n\nAdding Playwright to requirements will allow watcher-dashboard to move forward. Thank you!","commit_id":"65686a3e402ae0eef6e6c701da30f71d6e3a5006"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"bdff7b10b6da3065819f2425c16171837b1c3ff5","unresolved":true,"context_lines":[{"line_number":25,"context_line":"* Is the library already packaged in the distros we target?"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    Yes:"},{"line_number":28,"context_line":"        https://packages.debian.org/sid/python/python3-playwright"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* Is the function of this library already covered by other libraries"},{"line_number":31,"context_line":"  in global-requirements.txt?"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"0030a561_03b0a8db","line":28,"updated":"2026-04-13 13:17:07.000000000","message":"I don\u0027t see it in the CentOS Stream package list: https://mirror.stream.centos.org/10-stream/BaseOS/x86_64/os/Packages/","commit_id":"ea019940ab3222c41ca33a8e2f250d7b3c469831"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"800dd9d516c3c02e94140d24008bc8e9efe518a0","unresolved":true,"context_lines":[{"line_number":25,"context_line":"* Is the library already packaged in the distros we target?"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    Yes:"},{"line_number":28,"context_line":"        https://packages.debian.org/sid/python/python3-playwright"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* Is the function of this library already covered by other libraries"},{"line_number":31,"context_line":"  in global-requirements.txt?"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ad93a941_f6c8bc8a","line":28,"in_reply_to":"0030a561_03b0a8db","updated":"2026-04-13 13:32:58.000000000","message":"the intent was not to use it form disto packages for what its worth. just form pypi","commit_id":"ea019940ab3222c41ca33a8e2f250d7b3c469831"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"80190ce64884ec0d669539d453cf7d54edfdea49","unresolved":true,"context_lines":[{"line_number":25,"context_line":"* Is the library already packaged in the distros we target?"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    Yes:"},{"line_number":28,"context_line":"        https://packages.debian.org/sid/python/python3-playwright"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* Is the function of this library already covered by other libraries"},{"line_number":31,"context_line":"  in global-requirements.txt?"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"b7a9f664_54fcfa01","line":28,"in_reply_to":"ad93a941_f6c8bc8a","updated":"2026-04-14 12:07:58.000000000","message":"Yes, Add a note around that.","commit_id":"ea019940ab3222c41ca33a8e2f250d7b3c469831"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"acb90167b985a1fa1dc6908f4cb38cc9ac25fe32","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"d0aea048_215714e6","updated":"2026-04-09 05:44:22.000000000","message":"recheck internal error in devstack functional job.","commit_id":"ea019940ab3222c41ca33a8e2f250d7b3c469831"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"e864024ba70c53838adc0140da44207edc4d5379","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"04b221ea_1d7f1e40","updated":"2026-04-17 09:11:32.000000000","message":"thx, voting +1 for now to indicate that I\u0027m not opposed to this, but I\u0027d prefer to see more feedback from others before approving","commit_id":"9f87a413ed30f96fa8d3c01e67472adddeea99cf"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e3dc93e1779a54ecbf388656500998e19e09eedb","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"19a024c1_b700da3e","updated":"2026-04-27 15:21:08.000000000","message":"It\u0027s in merge conflict, but it seems playwright looks like a smaller learning curve for teams and if somebody starts fresh it\u0027s probably a better solution","commit_id":"b529f3204ce5ede5cf863a0e00af1c6f039d8f6a"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"9a29cb559ad45c3625a0a67c89b812eacc4fc3e1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"29d581fa_14b3e403","updated":"2026-04-27 15:27:05.000000000","message":"rebased now!","commit_id":"cffd7d85e3c9169b79ed5aaac2c9fe92745835e9"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"9795e3b86f3d5e3c476ebffa828e65c9d338178e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"589ce216_7c8635cb","updated":"2026-05-07 14:02:43.000000000","message":"As for today, Playwright seems to be a better tool for developers that want to write ui tests, and Watcher plans is to drop all Selemium related code to adopt Playwright within this cycle. I have the impression that more projects could benefit from Playwright as a starting point for ui testing. We would like to have the chance to be the first one.","commit_id":"2a92a998f9b65b43ee3f66c61d6094db69825bcf"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"9602b89fe6affcd0e2ed88ab17688db86ea93de7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"3bff2168_06aabb93","updated":"2026-05-08 12:07:27.000000000","message":"This has a merge conflict that needs to be resolved.","commit_id":"2a92a998f9b65b43ee3f66c61d6094db69825bcf"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"afda19c6e6e51c0e75b597c5c3b74ec969f3ddc5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"34b6b1d4_88a1de7e","in_reply_to":"3bff2168_06aabb93","updated":"2026-05-08 12:10:21.000000000","message":"Done, thank you!","commit_id":"2a92a998f9b65b43ee3f66c61d6094db69825bcf"},{"author":{"_account_id":35133,"name":"Jan Jasek","email":"jjasek@redhat.com","username":"janjasek"},"change_message_id":"eb7909fbe878482a4221d4eeb5262f524dbe0cb5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"bba35a26_e32693c0","updated":"2026-05-13 15:02:20.000000000","message":"Hello everyone,\nFrom my point of view as someone who is the primary maintainer of Horizon tests - we rewrote integration/ui tests from scratch a few cycles ago (we stayed with Selenium). Currently our tests are working well, are stable and (in my point of view) easy to maintain.\nWe stayed with Selenium because although playwright started to be quite common, it definitely was not so established as it is now. We all (active Horizon contributors) are quite experienced with Selenium, Selenium is providing everything that we need for testing and it is industry-hardened.\nSo we are not planning to switch from Selenium to Playwright anytime soon in Horizon.\n\nOn the other side I was involved in the introductory discussions with @chkumar@redhat.com and @smooney@redhat.com when they tried both ways and decided what tool to use for Watcher. I am definitely not against evolving the tech stack. And I understand that the same as for us (Horizon team) is more comfortable to use Selenium (which, we know is able to cover all our needs) then other engineers can prefer playwright because of the learning curve or anything else.\n\nI personally do not have so deep practical experience with Playwright compared to Selenium so I can not say for certain if there are specific architectural bottleneck in case of Playwright specifically for Horizon. But in my point of view unless there is a specific technical blocker(like legacy browser requirements, extreme performance needs, etc.) the choice Selenium/Playwright - for standard use cases the end result is effectively the same and it is more about which tool enables an engineer to be most productive.\n\nObviously @chkumar@redhat.com and @smooney@redhat.com are in phase when they are actively using playwright, they have some proof of work and they want to use it. So although we will have here two paths and (at least at this moment) we do not agree on a common testing environment, I would prefer to add it into requirements so it is clear someone is actively using it and we have somewhere existing examples that can be for future evidence of proper way or not so great way, rather than let them use it as not official one plugin specific way.","commit_id":"c2db3af669e876c5fe2a82afba21ee76c243bd18"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"30b9c7cdbb579e99737a006aa39a18ef433cd2c6","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"eae4cdd0_754eb816","updated":"2026-05-13 12:48:17.000000000","message":"I\u0027m still worried by that fact that the wider OpenStack dashboard community cannot seem to agree on a common testing environment. In my understanding this is the main reason why this shared requirements repo exists. If we give that up, we can as well stop tracking requirements here completely. Maybe as long as this is only to be used in a single repo, you can use it as a local (possibly optional) dependency without needing this change?","commit_id":"c2db3af669e876c5fe2a82afba21ee76c243bd18"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"4dba5e2280877db8a79177ecf4c4691368c5517d","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"a8524b5d_6e4bd3b5","updated":"2026-05-13 12:31:14.000000000","message":"Just a small side note - is anybody going to work on an openstack-zuul-jobs Ansible role for installing playwright or something similar?","commit_id":"c2db3af669e876c5fe2a82afba21ee76c243bd18"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"68dce5314deb23c4caefbc5d292fb6cdbbf8bc3f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"598342f5_c45d2fff","updated":"2026-05-13 12:41:47.000000000","message":"We would really like to get this requirement merge, to continue watcher-dashboard testing effort.","commit_id":"c2db3af669e876c5fe2a82afba21ee76c243bd18"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"24bd49e4bab28def9aac9e093e09ac7dbd82ea27","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"a94896df_555085b1","updated":"2026-05-13 12:29:53.000000000","message":"is this something we can come to a resolution on so we can start building out the test coverage for watcher more concretely.\n\nits hard to justify investing in adding new testcases when teh specter that this might not be merged is hanging over the effort.","commit_id":"c2db3af669e876c5fe2a82afba21ee76c243bd18"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"82a1a25fa01b21b6ebeae0978fed9acbdef514c2","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"8518d756_d3425669","in_reply_to":"2a305062_c9d39f36","updated":"2026-05-14 10:51:52.000000000","message":"right im not saying we shoudl bypass the requriemetn repo.\nim saying if we anted to do that we coudl do so trivially we are activly tring to work within the normal procedure of adopting a new depenciy isntead of side steping the process.","commit_id":"c2db3af669e876c5fe2a82afba21ee76c243bd18"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"ab27fe3a76ca0515287864f2274cf9b5f2a9f98d","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"2a305062_c9d39f36","in_reply_to":"70f812ff_c3d720a2","updated":"2026-05-14 08:27:20.000000000","message":"Based on my testing https://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_a90/openstack/a9022e766d364217b94cbcdbad039dd7/job-output.txt , requirement-check checks for test-requirements.txt file and the job fails as playwright is not included in requirements project. In that case, we need to keep playwright in tox.ini as a deps to install it in required venv.","commit_id":"c2db3af669e876c5fe2a82afba21ee76c243bd18"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"d2ece830f993dfc99509e3262a5fdfd90bbbdfe4","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"70f812ff_c3d720a2","in_reply_to":"72c9af55_d84da591","updated":"2026-05-14 07:34:34.000000000","message":"Thank you Jens, Sean for the review and comment. We also have votes from horizon team now. I will keep this patch open to see what others think.\n\nIn the mean time, I will keep playwright under test-requirements.txt in watcher repo.","commit_id":"c2db3af669e876c5fe2a82afba21ee76c243bd18"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"bf50eb38bec5d230a6d4a5bd9e29d08638fc5f6c","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"b005226a_3874ebe7","in_reply_to":"8518d756_d3425669","updated":"2026-05-15 05:46:29.000000000","message":"I personally think it\u0027s fine, that we have two UI testing tools in requirements - @jjasek@redhat.com hasn\u0027t indicated Horizon will never move (just indicated they have invested significant amount of time to do Selenium based tests). With my Magnum PTL hat - I would probably investigate if Playwright is a better choice when implementing integration tests (which I plan to do this cycle).\nWe might converge the community on one tool in the future, but there needs to be a transition phase.","commit_id":"c2db3af669e876c5fe2a82afba21ee76c243bd18"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"f75e3da545afc762d3534f0a49dc60474329f755","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"75ff4ff0_d49dba25","in_reply_to":"a8524b5d_6e4bd3b5","updated":"2026-05-13 12:37:10.000000000","message":"In watcher-dashboard repo, we have https://review.opendev.org/c/openstack/watcher-dashboard/+/970353/55/playbooks/playwright/pre.yaml which takes care of installing playwright.\n\nI am not sure we need a role, incase it is needed, I will move it there.","commit_id":"c2db3af669e876c5fe2a82afba21ee76c243bd18"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c5b225ccec9d023fddf7bed852a276f163ba1087","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"66150198_2ae5fb02","in_reply_to":"a8524b5d_6e4bd3b5","updated":"2026-05-13 12:40:41.000000000","message":"we have a poc of a devstack job whit runnign tests already.\n\nyou can see some of the sample output here.\n\nhttps://review.opendev.org/c/openstack/watcher-dashboard/+/976594/18\n\nhttps://zuul.opendev.org/t/openstack/build/d6bc6fd94d644377bdd59bdb488fac9a/\n\nhttps://225f2f627b351c539bc3-727435b75dae9cfd37cdbf2b3b490518.ssl.cf5.rackcdn.com/openstack/d6bc6fd94d644377bdd59bdb488fac9a/controller/logs/playwright/screenshots/\n\nhttps://225f2f627b351c539bc3-727435b75dae9cfd37cdbf2b3b490518.ssl.cf5.rackcdn.com/openstack/d6bc6fd94d644377bdd59bdb488fac9a/controller/logs/playwright/videos/page%4051d2e25669c2abc58cec1c2512c6c534.webm\n\nthe exact way that this wil be installed/run is still under review but we got to that point in the poc last cycle.","commit_id":"c2db3af669e876c5fe2a82afba21ee76c243bd18"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"26eead6277dfc5166fd6675b19b285608a3e2474","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"36caa4d5_6c95540c","in_reply_to":"acba1151_6e7f1c66","updated":"2026-05-28 10:39:45.000000000","message":"Thank you Radomir for correcting the reasoning around Horizon pytest move.","commit_id":"c2db3af669e876c5fe2a82afba21ee76c243bd18"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"8ed51557a752e07b99286c0fab6e4a5be61664fe","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"e92a7bf1_6926cc5b","in_reply_to":"b005226a_3874ebe7","updated":"2026-05-28 08:24:59.000000000","message":"Thank you Michal for the review. As a part of https://specs.openstack.org/openstack/watcher-specs/specs/2026.2/approved/improve-watcher-dashboard-ui-testing.html spec, we did pocs based on selenium[1] and playwright[2] with stestr as per OpenStack Python PTI testing guidelines[3].\n\nPlaywright tests based on unit test modules works well with stestr for running integration tests. while selenium requires a lot of hack to work with stestr that\u0027s why Horizon team is using selenium with pytest. The watcher team found playwright poc more easier.\n\nWe also had a discussion around mentioning pytest in the Python PTI testing doc[4].(Not sure how much this will be helpful). Then we started exploring playwright/selenium poc for watcher-dashboard.\n\nWe also have two test runner pytest and stestr in requirements project as multiple projects are using both of them. I hope these information will be helpful for this review. Thank you!\n\nLinks:\n[1]. https://review.opendev.org/c/openstack/watcher-dashboard/+/970573\n[2]. https://review.opendev.org/c/openstack/watcher-dashboard/+/970353\n[3]. https://github.com/openstack/governance/blob/master/reference/pti/python.rst#python-test-running\n[4]. https://lists.openstack.org/archives/list/openstack-discuss@lists.openstack.org/message/3V3CNPQLB77SKFVLZ6LXJ5NPNYWW4QFD/","commit_id":"c2db3af669e876c5fe2a82afba21ee76c243bd18"},{"author":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},"change_message_id":"08348bde92dbffc24dbbf7e76b5117577fbcbd40","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"acba1151_6e7f1c66","in_reply_to":"e92a7bf1_6926cc5b","updated":"2026-05-28 09:40:37.000000000","message":"Sorry for interjecting, I just want to clarify that this is not the reason why Horizon is using PyTest. We have switched to PyTest as the test runner when the NoseTest that all of OpenStack was using previously became unmaintained and unusable. I believe this was before the stestr was introduced, and in fact we completely missed it when it was.\n\nAs the person who ported the code for running Selenium from the legacy unittest code to PyTest, I have to admit that PyTest allowed to do the same thing in a much cleaner and less hacky way, but I don\u0027t believe it is because of any particular thing that Selenium has, it\u0027s just that unittest is an ancient library based on even more ancient Java library, and it is clunky by nature and unpythonic by design.","commit_id":"c2db3af669e876c5fe2a82afba21ee76c243bd18"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8dbda3bccea67ff44904036699041851fcb6a911","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"72c9af55_d84da591","in_reply_to":"eae4cdd0_754eb816","updated":"2026-05-13 13:01:38.000000000","message":"we can trivially bypass the requirement repo by just including it in the tox.ini or installing it via devstack\n\nnothing actually forces us to list it in test-requirement.txt which si the only thing that requires this change.","commit_id":"c2db3af669e876c5fe2a82afba21ee76c243bd18"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"23ad1531f58243ebb6068f19ade8e21bc5cab414","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"8d525847_b4c48d32","updated":"2026-06-02 18:42:12.000000000","message":"ok so let\u0027s go ahead with this","commit_id":"3a769bd81908ad0e6248e1c05e6f9fffa87d8da8"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"048a712cf62899c9b8810fb39a46815bd545494d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"375f6920_4c7aa610","updated":"2026-06-03 06:30:27.000000000","message":"Done thank you!","commit_id":"bdc4e18ff354825af258288e11491b4e2ce17f35"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"8c2317065f9bf69c6f3b19b7f74408db3ff2b156","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"099c6822_15ba5a77","updated":"2026-06-03 12:38:09.000000000","message":"Thank you everyone for helping in getting this merged!","commit_id":"bdc4e18ff354825af258288e11491b4e2ce17f35"}],"global-requirements.txt":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"2d60f98075395b1071d831261e471792c91f9652","unresolved":true,"context_lines":[{"line_number":218,"context_line":"zstd  # BSD License (2 clause)"},{"line_number":219,"context_line":"zVMCloudConnector;sys_platform!\u003d\u0027win32\u0027  # Apache 2.0 License"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"## section:testing"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"bashate  # Apache-2.0"},{"line_number":224,"context_line":"coverage!\u003d4.4  # Apache-2.0"}],"source_content_type":"text/plain","patch_set":3,"id":"d98b719f_0248f3a6","line":221,"updated":"2026-04-13 12:50:36.000000000","message":"iiuc the library would belong to this section, which is also where selenium is located?","commit_id":"ea019940ab3222c41ca33a8e2f250d7b3c469831"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"80190ce64884ec0d669539d453cf7d54edfdea49","unresolved":false,"context_lines":[{"line_number":218,"context_line":"zstd  # BSD License (2 clause)"},{"line_number":219,"context_line":"zVMCloudConnector;sys_platform!\u003d\u0027win32\u0027  # Apache 2.0 License"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"## section:testing"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"bashate  # Apache-2.0"},{"line_number":224,"context_line":"coverage!\u003d4.4  # Apache-2.0"}],"source_content_type":"text/plain","patch_set":3,"id":"88904a08_2f2abd24","line":221,"in_reply_to":"0e888118_c186fc03","updated":"2026-04-14 12:07:58.000000000","message":"Done","commit_id":"ea019940ab3222c41ca33a8e2f250d7b3c469831"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"800dd9d516c3c02e94140d24008bc8e9efe518a0","unresolved":true,"context_lines":[{"line_number":218,"context_line":"zstd  # BSD License (2 clause)"},{"line_number":219,"context_line":"zVMCloudConnector;sys_platform!\u003d\u0027win32\u0027  # Apache 2.0 License"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"## section:testing"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"bashate  # Apache-2.0"},{"line_number":224,"context_line":"coverage!\u003d4.4  # Apache-2.0"}],"source_content_type":"text/plain","patch_set":3,"id":"0e888118_c186fc03","line":221,"in_reply_to":"d98b719f_0248f3a6","updated":"2026-04-13 13:32:58.000000000","message":"ya this sound more correct to me as well.","commit_id":"ea019940ab3222c41ca33a8e2f250d7b3c469831"}],"upper-constraints.txt":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"23ad1531f58243ebb6068f19ade8e21bc5cab414","unresolved":true,"context_lines":[{"line_number":572,"context_line":"actdiag\u003d\u003d\u003d3.0.0"},{"line_number":573,"context_line":"sphinxcontrib-applehelp\u003d\u003d\u003d2.0.0"},{"line_number":574,"context_line":"scikit-learn\u003d\u003d\u003d1.8.0"},{"line_number":575,"context_line":"playwright\u003d\u003d\u003d1.58.0"}],"source_content_type":"text/plain","patch_set":10,"id":"28420f54_d2fd4205","line":575,"updated":"2026-06-02 18:42:12.000000000","message":"the latest version is 1.60.0, can we start with that right away?","commit_id":"3a769bd81908ad0e6248e1c05e6f9fffa87d8da8"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"048a712cf62899c9b8810fb39a46815bd545494d","unresolved":false,"context_lines":[{"line_number":572,"context_line":"actdiag\u003d\u003d\u003d3.0.0"},{"line_number":573,"context_line":"sphinxcontrib-applehelp\u003d\u003d\u003d2.0.0"},{"line_number":574,"context_line":"scikit-learn\u003d\u003d\u003d1.8.0"},{"line_number":575,"context_line":"playwright\u003d\u003d\u003d1.58.0"}],"source_content_type":"text/plain","patch_set":10,"id":"3f95c6fd_cc24b791","line":575,"in_reply_to":"28420f54_d2fd4205","updated":"2026-06-03 06:30:27.000000000","message":"Done","commit_id":"3a769bd81908ad0e6248e1c05e6f9fffa87d8da8"}]}
