You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I ended up forking the project as an alternatively named package primarily for myself but went ahead and published it to pypi in case it's useful for anyone else. (selenium-axe-python)
I was the architect of axe-selenium-python and core maintainer. I lost access after leaving Mozilla. I'll contact moz via other channels to understand their intent with this project.
For what it’s worth, we’ve been investigating using this package for Django (django#16372), so I’d love to know what the maintenance status is as well – and help if help is needed.
Mozilla staff are attending an All Hands meeting next week. I don't expect to hear back until after their meetings. The gears are in motion, we should receive a status update shortly. I appreciate everyone's patience while we get this sorted out.
I can confirm that this project is no longer being maintained by anyone at Mozilla. I fully support @m8ttyB's suggestion of handing this over to a new owner or community for future development. My suggestion would be to initiate a repository transfer. If others are in agreement, I believe we would just need to know the new owner.
An open question to the community - @MarcelWilson + @thibaudcolas: Deque's Python bindings appear to have significantly improved over the years. The initial goals of this project were to provide Python bindings for axe-core, where Deque (if I remember correctly) only supported JS at the time. This gap has narrowed quite a bit.
Is there an intrinsic reason to continue using axe-selenium-python instead of Deque's axe-devtools-api? I'm not against reviving this project, but I want a sanity check.
I want to nudge this thread again -- I have not been able to locate @kimberlythegeek yet. I'll continue to work on getting ahold of her. In the meantime, @MarcelWilson or @thibaudcolas, have you given my question some thought? Should we suggest the community begin using axe-devtools-api instead of this project?
@m8ttyB thanks for following up! I’ve not come across Deque’s axe-devtools-api before. It seems to be a different product? Axe DevTools doesn’t seem to be open source / is only available on an authenticated packages registry. axe-core is what I’m looking for Python/Selenium bindings for. Deque seems to have a lot of language-specific axe-core bindings these days but not one for Python/Selenium. There is a third-party axe-core-python though, which advertises Selenium and Playwright.
As far as ownership, the options I can see working from my side are:
https://github.com/django if there’s agreement from Django ops it makes sense to have a package on there that’s not just for Django use.
A new dedicated organisation
A personal account as a last resort (not keen on the bus factor)
We’d then try to replicate this as appropriate in PyPI, set up an Organization account and invite the relevant maintainers.
You make fine points, particularly around being pushed towards an authenticated package registry that ties usage to Deque. Is this a blocker? The underlying integration they use to inject Axe with Selenium appears curiously similar to our solution.
Again, I am not dismissing the value of axe-selenium-python; I just want to be clear that folks are comfortable creating/maintaining a solution that roughly parallel to Deque's that still relies on axe-core. Reinvigorating community engagement on this project would give us more fine-grained control and move it out of the pay-walled model that Deque's model suggests.
If you're a 👍🏼, let's move forward, can you approach the Django project to engage in a conversation and take a temperature check? I agree with your assessment. Once it's decided which organization to host this project under, Mozilla folks will assist with transferring the project - ty to @davehunt & @pdehaan.
https://github.com/django if there’s agreement from Django ops, it makes sense to have a package on there that’s not just for Django use.
A new dedicated organization
We’d then try to replicate this as appropriate in PyPI, set up an Organization account and invite the relevant maintainers.
There is a mechanism in place to recover abandoned pypi namespaces. I will begin the process.
@m8ttyB I'm not against paid libraries, but unfortunately it would be a non-starter for my projects (one of which is also open source).
Personally I would love to see axe-selenium-python continue to thrive. It already seems to have roots, just needs a little TLC. (it would also mean I can ditch my forked version 😆)
I love the efforts everyone is making here to push this forward. I would be happy to volunteer to help in any manner possible and want to contribute some features inspired by https://github.com/pamelafox/pytest-axe-playwright-snapshot, majorly interested in having inbuilt snapshot testing as starters.
There's some process involved in transferring a repository, which makes me wonder if it's worth the effort. If we're able to get access to the PyPI project, could we archive this repository and allow a fork to become the canonical repository? Apparently this approach has been used before. What do you think?
@davehunt with the caveat that I don’t have context on what your process involves, nor on how PyPI package transfers work, that seems ok to me.
Here’s what I think we would lose, in rough order of value:
Automated GitHub redirects from /mozilla-services/axe-selenium-python
Quick access to the GitHub issues and pull requests history via #<number> mentions
Watch status at the repository and individual issue / PR level.
Connection to the project’s forks
GitHub Stars
I’d like to see mitigations in place for items 1. and 2. if possible. I’d run an automated script to recreate placeholder issues for all existing issues, with a link pointing to their source. And it’d be nice if on the existing repository, I could comment with a link to the new repo before it’s archived. And signposting on the README before archival.
Be great if we could rely on GitHub’s support for all of this, but if not, I’ve created axe-selenium-python/axe-selenium-python-fork for now as a placeholder, which I’ll rename if we proceed with this.
Repository transfer has been approved and should happen soon. Hopefully we can also get some attention on pypi/support#4205 soon. Thank you everyone for your patience.
Hi everyone, there’s been lots of progress! Thanks to @davehunt, the repository transfer is now completed. The repository moved to thibaudcolas/axe-selenium-python, and I’ve subsequently moved it to axe-selenium-python/axe-selenium-python so we can have @knyghty as an Owner just in case. We might not leave it there, our "plan A" is currently to move the package to Django Commons which is a new community-driven package maintenance organization.
The next step is the PyPI package, for which @m8ttyB opened a PEP 541 request with PyPI back in June (pypi/support#4205). Looking at how those requests are processed, the PyPI support team is currently reviewing requests from March-April 2023, about 18 months ago. If those delays hold, we’d be getting support in December 2025 / January 2026.
In the meantime, I’ve set up axe-selenium on PyPI. Please don’t switch to it now. I’ve tried to re-publish the artifacts of axe-selenium-python 2.1.6 as-is, but made no attempt to test the results. This is just there as a placeholder so we have an available package name to publish to.
Onwards
If anyone following this thread has concerns with Django Commons, please share them now before we proceed? And if anyone is interested to help with future maintenance and hasn’t said so yet, now’s also the right time.
And as far as the implementation – I think we’re in a good place to proceed with adoption of modern Python packaging practices / tools; other maintenance-related project health improvements; and subsequently improvements to the functionality (in particular Axe version upgrades). For now I’ve set up a kanban board: 2024 maintenance overhaul.
Reacted by Matt B, Tushar, Dave Hunt, Marcel Wilson, Sarah Abderemane and Marcel Wilson
Just checking in. Looking at pypi/support#4205 it would appear they couldn't get ahold of "the owner". Do we have any idea what kind of timeline we can expect? (assuming they move forward).
We got access yesterday! 🌈 axe-selenium-python on PyPI now has me as the owner and I’ve invited @knyghty as well to have some redundancy in the short term.
I’m not super clear on the order of actions but the plan as I see it is still:
Get a new release out that’s the same as the current latest, with updated metadata to make it clear "new owners"
New package tooling with a focus on automation
Move to Django Commons
Axe upgrade
(New release with Axe upgrade(s))
Other feature development
Onboarding of a sustainable amount of maintainers
Triage of all existing issues and creation of an informal roadmap
I’ll review the Django Commons process a bit more to check if it makes more sense to add everyone to the package "now" or after the move there.
Activity
m8ttyB commentedon Aug 1, 2023
@kimberlythegeek / @davehunt - is Moz still maintaining this or has the project been sunsetted?
m8ttyB commentedon Aug 3, 2023
Alternatively, can this project be shifted to a community ownership model? Happy to re-take the reigns.
MarcelWilson commentedon Aug 11, 2023
I ended up forking the project as an alternatively named package primarily for myself but went ahead and published it to pypi in case it's useful for anyone else. (selenium-axe-python)
m8ttyB commentedon Aug 11, 2023
I was the architect of axe-selenium-python and core maintainer. I lost access after leaving Mozilla. I'll contact moz via other channels to understand their intent with this project.
thibaudcolas commentedon Aug 18, 2023
For what it’s worth, we’ve been investigating using this package for Django (django#16372), so I’d love to know what the maintenance status is as well – and help if help is needed.
m8ttyB commentedon Aug 18, 2023
Mozilla staff are attending an All Hands meeting next week. I don't expect to hear back until after their meetings. The gears are in motion, we should receive a status update shortly. I appreciate everyone's patience while we get this sorted out.
davehunt commentedon Aug 30, 2023
I can confirm that this project is no longer being maintained by anyone at Mozilla. I fully support @m8ttyB's suggestion of handing this over to a new owner or community for future development. My suggestion would be to initiate a repository transfer. If others are in agreement, I believe we would just need to know the new owner.
m8ttyB commentedon Sep 4, 2023
thx @davehunt. I'm working to track down @kimberlythegeek to discuss the pypi maintainers list.
An open question to the community - @MarcelWilson + @thibaudcolas:
Deque's Python bindings appear to have significantly improved over the years. The initial goals of this project were to provide Python bindings for axe-core, where Deque (if I remember correctly) only supported JS at the time. This gap has narrowed quite a bit.
Is there an intrinsic reason to continue using
axe-selenium-pythoninstead of Deque'saxe-devtools-api? I'm not against reviving this project, but I want a sanity check.m8ttyB commentedon Sep 11, 2023
I want to nudge this thread again -- I have not been able to locate @kimberlythegeek yet. I'll continue to work on getting ahold of her. In the meantime, @MarcelWilson or @thibaudcolas, have you given my question some thought? Should we suggest the community begin using
axe-devtools-apiinstead of this project?thibaudcolas commentedon Sep 19, 2023
@m8ttyB thanks for following up! I’ve not come across Deque’s
axe-devtools-apibefore. It seems to be a different product? Axe DevTools doesn’t seem to be open source / is only available on an authenticated packages registry.axe-coreis what I’m looking for Python/Selenium bindings for. Deque seems to have a lot of language-specific axe-core bindings these days but not one for Python/Selenium. There is a third-party axe-core-python though, which advertises Selenium and Playwright.As far as ownership, the options I can see working from my side are:
We’d then try to replicate this as appropriate in PyPI, set up an Organization account and invite the relevant maintainers.
thibaudcolas commentedon Oct 3, 2023
Hey all, my turn to nudge :)
m8ttyB commentedon Oct 4, 2023
Hi @thibaudcolas -- I was hoping @MarcelWilson might have a moment to weigh in.
You make fine points, particularly around being pushed towards an authenticated package registry that ties usage to Deque. Is this a blocker? The underlying integration they use to inject Axe with Selenium appears curiously similar to our solution.
Again, I am not dismissing the value of
axe-selenium-python; I just want to be clear that folks are comfortable creating/maintaining a solution that roughly parallel to Deque's that still relies onaxe-core. Reinvigorating community engagement on this project would give us more fine-grained control and move it out of the pay-walled model that Deque's model suggests.If you're a 👍🏼, let's move forward, can you approach the Django project to engage in a conversation and take a temperature check? I agree with your assessment. Once it's decided which organization to host this project under, Mozilla folks will assist with transferring the project - ty to @davehunt & @pdehaan.
There is a mechanism in place to recover abandoned pypi namespaces. I will begin the process.
MarcelWilson commentedon Oct 6, 2023
@m8ttyB I'm not against paid libraries, but unfortunately it would be a non-starter for my projects (one of which is also open source).
Personally I would love to see
axe-selenium-pythoncontinue to thrive. It already seems to have roots, just needs a little TLC. (it would also mean I can ditch my forked version 😆)m8ttyB commentedon Oct 7, 2023
ty @MarcelWilson. Let's do it.
tushar5526 commentedon Oct 8, 2023
I love the efforts everyone is making here to push this forward. I would be happy to volunteer to help in any manner possible and want to contribute some features inspired by https://github.com/pamelafox/pytest-axe-playwright-snapshot, majorly interested in having inbuilt snapshot testing as starters.
9 remaining items
davehunt commentedon Jul 12, 2024
There's some process involved in transferring a repository, which makes me wonder if it's worth the effort. If we're able to get access to the PyPI project, could we archive this repository and allow a fork to become the canonical repository? Apparently this approach has been used before. What do you think?
thibaudcolas commentedon Jul 17, 2024
@davehunt with the caveat that I don’t have context on what your process involves, nor on how PyPI package transfers work, that seems ok to me.
Here’s what I think we would lose, in rough order of value:
/mozilla-services/axe-selenium-python#<number>mentionsI’d like to see mitigations in place for items 1. and 2. if possible. I’d run an automated script to recreate placeholder issues for all existing issues, with a link pointing to their source. And it’d be nice if on the existing repository, I could comment with a link to the new repo before it’s archived. And signposting on the README before archival.
Be great if we could rely on GitHub’s support for all of this, but if not, I’ve created axe-selenium-python/axe-selenium-python-fork for now as a placeholder, which I’ll rename if we proceed with this.
davehunt commentedon Sep 20, 2024
Repository transfer has been approved and should happen soon. Hopefully we can also get some attention on pypi/support#4205 soon. Thank you everyone for your patience.
thibaudcolas commentedon Sep 26, 2024
Hi everyone, there’s been lots of progress! Thanks to @davehunt, the repository transfer is now completed. The repository moved to
thibaudcolas/axe-selenium-python, and I’ve subsequently moved it toaxe-selenium-python/axe-selenium-pythonso we can have @knyghty as an Owner just in case. We might not leave it there, our "plan A" is currently to move the package to Django Commons which is a new community-driven package maintenance organization.For transparency, here’s the legal agreement between Mozilla and myself about the repository transfer: Mozilla Thibaud Axe-Selenium-Python Agreement For Execution (PDF, 200kb).
PyPI package
The next step is the PyPI package, for which @m8ttyB opened a PEP 541 request with PyPI back in June (pypi/support#4205). Looking at how those requests are processed, the PyPI support team is currently reviewing requests from March-April 2023, about 18 months ago. If those delays hold, we’d be getting support in December 2025 / January 2026.
In the meantime, I’ve set up axe-selenium on PyPI. Please don’t switch to it now. I’ve tried to re-publish the artifacts of axe-selenium-python 2.1.6 as-is, but made no attempt to test the results. This is just there as a placeholder so we have an available package name to publish to.
Onwards
If anyone following this thread has concerns with Django Commons, please share them now before we proceed? And if anyone is interested to help with future maintenance and hasn’t said so yet, now’s also the right time.
And as far as the implementation – I think we’re in a good place to proceed with adoption of modern Python packaging practices / tools; other maintenance-related project health improvements; and subsequently improvements to the functionality (in particular Axe version upgrades). For now I’ve set up a kanban board: 2024 maintenance overhaul.
tushar5526 commentedon Sep 26, 2024
This is awesome, thanks for all the work!
MatMoore commentedon Oct 1, 2024
Thank you for making this happen. If you need additional maintainers I'd be happy to get involved in the project health improvements.
MarcelWilson commentedon Apr 25, 2025
Just checking in. Looking at pypi/support#4205 it would appear they couldn't get ahold of "the owner". Do we have any idea what kind of timeline we can expect? (assuming they move forward).
Should we attempt pushing updates to https://pypi.org/project/axe-selenium/ in the interim?
thibaudcolas commentedon Apr 30, 2025
We got access yesterday! 🌈 axe-selenium-python on PyPI now has me as the owner and I’ve invited @knyghty as well to have some redundancy in the short term.
I’m not super clear on the order of actions but the plan as I see it is still:
I’ll review the Django Commons process a bit more to check if it makes more sense to add everyone to the package "now" or after the move there.