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
Since this library is vendored by pip, which is itself vendored in CPython's ensurepip module, the fact that there's no release that includes PR #403 is blocking the removal of the deprecated abstract base classes from the collections module, long advertised as happening in Python 3.8, see python/cpython#10596
Normally I am the last person to ask for releases (I assume maintainers have good reasons for not doing so, and I usually don't like being on the receiving end of such requests), but the deadline for the 3.8 beta release is coming up very soon, so if there's any way to expedite an html5lib release it would really help that effort, and it would avoid stickier solutions like patching html5lib directly in pip.
Now that Python 3.8 has been released, I imagine the urgency for releasing a new version to PyPI has become somewhat elevated.
As a side note, this tendency for package releases to lag behind master is one that I have personally encountered dozens of times... including when the fault is entirely my own, in projects that I maintain! It's a shame because it means there are features and bug fixes in master that nearly nobody is benefiting from, and all because publishing new releases to PyPI is just cumbersome enough to prevent maintainers from prioritizing it. (And once again, I'm including myself in that group.)
I recently solved this problem by creating AutoPub, an open-source project that helps automate package releases on PR merge, which I recently announced during my EuroPython talk a few months ago in Basel, Switzerland. Rather than explain its many benefits here, you can read more about them on the AutoPub project page.
Since the announcement last month, I've added AutoPub to several projects I maintain:
As a maintainer, I have been thrilled with the results. I would be happy to submit a PR to this repository that automates package releases via AutoPub and Travis, assuming that would be of interest. What do you think, @gsnedders ?
https://bugs.python.org/issue37324 has been fixed: collections ABC aliases have been removed from Python 3.9. As a consequence, html5lib is no longer compatible with Python 3.9.
@jgraham@gsnedders Thank you both very much for your work on this project!
It's been two years since a release and this project is widely used (2.5m downloads last month according to https://pypistats.org/packages/html5lib!), and it'd be great to keep things ticking over.
I understand if you've moved on and have other interests. Please would you consider giving merge and PyPI rights to one or more extra maintainers?
I would like to volunteer to help get a new release out, to unblock the collections.abc issue, and for general maintenance tasks, at least as an interim maintainer like @willkg was for the 1.0 release, and would welcome other volunteers too.
Otherwise, I suggest we make a community fork (I've made a start at html5lib-python/html5lib-python) and apply for a PEP 0541 transfer.
Again, thanks for all your work on this project!
Reacted by Carlton Gibson, James Addison and Paulo Ribeiro
I think at this point it's best to push forward with your fork. I see you've pulled in some the PRs here that are ready. It may be worth commenting on each that that's the case, and perhaps a ticket on the fork to track that progress?
I think beginning the transfer request would be wise. (I don't suppose those are instant.)
Maybe it's worth opening a PR from your master branch to back here, so that at least there's the possibility that your effort can be picked up, if a sustainable solution here does turn up. 🤷♂️
Hi. I've basically been away from all tech stuff for the past month, and not seen any of the recent discussion.
To summarize, somehow I missed the offer of @jdufresne offering "to help out on a very limited time basis" in the email thread last October and was already on holiday by the time of @vstinner's email in December. Sorry!
Some of my disincentive since last summer has been undergoing a big move in my life, and spending very little time unpaid on tech stuff (as mentioned before, I'm more than happy to spend more time on html5lib if I'm paid to do so; I have relatively little interest in maintaining a major project used by enough for-profit companies without any compensation). That said, let's try and find a workable path forward.
What I said in October in email thread a bunch of you were on then still holds true:
I think my suggestion for a short-term path forward is we get some agreement on adding one or two maintainers (and preferably not just for the next release, because then we're back here in a year's time), we get master passing CI (inc on 3.8 and CPython master), and make a release. I think with other people involved I'm more likely to spend time on html5lib (me eventually landing changes after not getting anyone to review them for months, which has happened before, is a bit demotivating!), so it's probably worthwhile to assume that I'll be a part of whatever comes next.
So, let's:
Figure out what PRs need to land prior to a next release (and I'll try and get more done on train later too).
Document how to make a release (this has been another disincentive against me making a release, not knowing what I'm doing!).
Make a release!
Document a bunch of policies (there's enough users and institutional knowledge between myself and @jgraham that we should write a bunch of this down); Document Python version support policy #439 is an obvious one where we are at least constrained by being vendored by pip (and I think both us and those working on pip would rather avoid them needing to fork the last supported release!).
At least add a few committers here (and hopefully with documentation as to how to I'll be much better at/willing to make releases!) and see how that goes, and probably later add some/all as maintainers on PyPI.
Though I will say I still feel like dropping the collections.* aliases is a complete waste of time, it saves maintaining 15 lines in CPython and causes how many hours in way of work and changes throughout the ecosystem? Sure, it may be fractionally cleaner, but it's a breaking change that therefore necessitates work from plenty of Python developers rather than the Python developers supporting the ecosystem. I'd be much more understanding if it made a significant impact on maintenance work on CPython, but I can't imagine those 15 lines do. Is the benefit of breaking existing code really justified in this case?
Let me know if this seems workable, either later this evening (and I realise many of you are in Europe and have previously been commenting during business hours) or over the next few days. In the mean time, I'll try and land a fair number of the open maintenance-task PRs.
Activity
vstinner commentedon Jun 17, 2019
This issue prevents to remove ABC aliases from the collections module in Python 3.9: https://bugs.python.org/issue37324
justinmayer commentedon Oct 17, 2019
Now that Python 3.8 has been released, I imagine the urgency for releasing a new version to PyPI has become somewhat elevated.
As a side note, this tendency for package releases to lag behind master is one that I have personally encountered dozens of times... including when the fault is entirely my own, in projects that I maintain! It's a shame because it means there are features and bug fixes in master that nearly nobody is benefiting from, and all because publishing new releases to PyPI is just cumbersome enough to prevent maintainers from prioritizing it. (And once again, I'm including myself in that group.)
I recently solved this problem by creating AutoPub, an open-source project that helps automate package releases on PR merge, which I recently announced during my EuroPython talk a few months ago in Basel, Switzerland. Rather than explain its many benefits here, you can read more about them on the AutoPub project page.
Since the announcement last month, I've added AutoPub to several projects I maintain:
... and, of course, AutoPub releases itself via AutoPub.
As a maintainer, I have been thrilled with the results. I would be happy to submit a PR to this repository that automates package releases via AutoPub and Travis, assuming that would be of interest. What do you think, @gsnedders ?
vstinner commentedon Nov 8, 2019
https://bugs.python.org/issue37324 has been fixed: collections ABC aliases have been removed from Python 3.9. As a consequence, html5lib is no longer compatible with Python 3.9.
How can we help you to get a new release?
vstinner commentedon Nov 8, 2019
The issue broke pyperformance benchmark suite which has a benchmark on html5lib:
https://bugs.python.org/issue38739
hugovk commentedon Nov 8, 2019
I've reviewed some PRs and left some comments on others, and made #430 which should help make releasing easier.
(Although I've just realised this is similar to Justin's suggestion so don't mean to step on any toes! #419 (comment))
Also, perhaps a transfer to JazzBand or the PSF may help unblock some of the more basic maintenance tasks such as releasing?
vstinner commentedon Dec 17, 2019
I contacted @jgraham and @gsnedders by email to see how I can help them to publish a new release.
dimaqq commentedon Jan 28, 2020
@vstinner did you hear back from @jgraham or @gsnedders perhaps?
Otherwise, if all what's needed is to fork a repo and publish under a different
pypiname, then that should not be a big problem :)vstinner commentedon Jan 28, 2020
No.
There is a process to request to get the ownership of an existing PyPI name: see https://www.python.org/dev/peps/pep-0541/#abstract
frenzymadness commentedon Feb 24, 2020
html5lib is also bundled in bleach
hugovk commentedon Feb 24, 2020
@jgraham @gsnedders Thank you both very much for your work on this project!
It's been two years since a release and this project is widely used (2.5m downloads last month according to https://pypistats.org/packages/html5lib!), and it'd be great to keep things ticking over.
I understand if you've moved on and have other interests. Please would you consider giving merge and PyPI rights to one or more extra maintainers?
I would like to volunteer to help get a new release out, to unblock the
collections.abcissue, and for general maintenance tasks, at least as an interim maintainer like @willkg was for the 1.0 release, and would welcome other volunteers too.Otherwise, I suggest we make a community fork (I've made a start at html5lib-python/html5lib-python) and apply for a PEP 0541 transfer.
Again, thanks for all your work on this project!
carltongibson commentedon Feb 25, 2020
Hi @hugovk.
I think at this point it's best to push forward with your fork. I see you've pulled in some the PRs here that are ready. It may be worth commenting on each that that's the case, and perhaps a ticket on the fork to track that progress?
I think beginning the transfer request would be wise. (I don't suppose those are instant.)
Thank you for your effort.
hugovk commentedon Feb 25, 2020
PEP 0541 requires PyPI maintainers attempt contact at least three times over six weeks: https://www.python.org/dev/peps/pep-0541/#reachability, so I've opened a request at pypi/support#227. Although it would be preferable to continue things here.
I've commented the PRs here that have been merged into the fork.
Thanks!
carltongibson commentedon Feb 25, 2020
Hi @hugovk. Super stuff. Thank you again.
Maybe it's worth opening a PR from your master branch to back here, so that at least there's the possibility that your effort can be picked up, if a sustainable solution here does turn up. 🤷♂️
gsnedders commentedon Feb 25, 2020
Hi. I've basically been away from all tech stuff for the past month, and not seen any of the recent discussion.
To summarize, somehow I missed the offer of @jdufresne offering "to help out on a very limited time basis" in the email thread last October and was already on holiday by the time of @vstinner's email in December. Sorry!
Some of my disincentive since last summer has been undergoing a big move in my life, and spending very little time unpaid on tech stuff (as mentioned before, I'm more than happy to spend more time on html5lib if I'm paid to do so; I have relatively little interest in maintaining a major project used by enough for-profit companies without any compensation). That said, let's try and find a workable path forward.
What I said in October in email thread a bunch of you were on then still holds true:
So, let's:
Though I will say I still feel like dropping the
collections.*aliases is a complete waste of time, it saves maintaining 15 lines in CPython and causes how many hours in way of work and changes throughout the ecosystem? Sure, it may be fractionally cleaner, but it's a breaking change that therefore necessitates work from plenty of Python developers rather than the Python developers supporting the ecosystem. I'd be much more understanding if it made a significant impact on maintenance work on CPython, but I can't imagine those 15 lines do. Is the benefit of breaking existing code really justified in this case?Let me know if this seems workable, either later this evening (and I realise many of you are in Europe and have previously been commenting during business hours) or over the next few days. In the mean time, I'll try and land a fair number of the open maintenance-task PRs.
5 remaining items
tests: Skip readme renderer on py 3.9
tests: Skip readme renderer on py 3.9
tests: Skip readme renderer on py 3.9
vstinner commentedon Mar 2, 2020
FYI aliases to ABC in collections have been reverted in Python 3.9, but they will be removed again in Python 3.10: https://bugs.python.org/issue39674
But it doesn't solve the lack of new html5lib release ;-)
vstinner commentedon Mar 2, 2020
The initial issue was collections ABC, but this issue has already been fixed in html5lib master: 4f92357
tests: Skip readme renderer on py 3.9
tests: Skip readme renderer on py 3.9
hugovk commentedon Mar 14, 2020
@gsnedders @jgraham Hi, I created https://test.pypi.org/project/html5lib/ earlier for deploy testing, if you create accounts on TestPyPI, I'll give you the full rights.
gsnedders commentedon Jun 16, 2020
OK, so status update from what I've done over the past few weeks:
Hopefully we'll get those three landed this week and make a release by the end of the week.
If I have the chance, I might try and fix #96 for wide Python builds only.
EmilStenstrom commentedon Jun 16, 2020
@gsnedders You are awesome! :)
FrankDMartinez commentedon Jun 21, 2020
@gsnedders The end of the week has come; any word?
gsnedders commentedon Jun 22, 2020
We've now landed all of the above, I think the changelog has all the potential breakage/notable changes, so… let me try to make a release tomorrow?
gsnedders commentedon Jun 22, 2020
OK, that's 1.1 shipped. Shout at me if anything is broken (in a new issue, please!).
(I realise it's now Tuesday, so I failed at "tomorrow" as well as the end of the week!)
tests: Skip readme renderer on py 3.9