New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
mkdocs-material@8.2.12 requires python >= 3.7 instead of python 3.6 #3866
Comments
@squidfunk How do we trigger a new release? |
I've released your changes as part of 8.2.13 8 minutes ago. |
@squidfunk I wonder if we should remove the 8.2.12 release, given the python version requirement is wrong? Or update the release to fix the python version requirement? |
No, removing a release is not an option. If you're already on Python 3.7+, 8.2.12 will work without problems for you. Removing a release retrospectively will break a lot of things downstream and is considered malpractice. |
@squidfunk Do you see any other way (best would be to remove the release) to solve that problem for Python 3.6.x users? |
Python 3.7 is demanded by Python Markdown Extensions, so the only thing we can do is to ask @facelessuser. |
I'm not sure what specifically is being asked. Python 3.6 reached EOL 4 months ago. Currently, I have no intentions of spending time ensuring testing and compatibility for Python 3.6. Python 3.11 is just around the corner, and resources will be dedicated to ensuring the latest is supported as we phase out EOL releases. A request for support of Python 3.6 could last for an indefinite amount of time as there is no timeline for when I can drop support. I guess if we are targeting the EOL of Ubuntu 18.04, then I am looking at Apr 2028, which is another 6 years. Organizations may sit on Python 3.6 for a long time. I am then chained to a vague sense of "whenever enough organizations have moved on from Python 3.6". I understand why organizations stay on older Python versions, but some software will move on. Even if Material or Pymdown-Extensions keep supporting Python 3.6, it is very likely that Python Markdown or some other dependency in the chain will drop Python 3.6 in the next release. Python Markdown usually does drop old EOL Python versions that reach EOL. |
Thanks @facelessuser! Full support. |
Thank you for the detailed answer here! Just to make it sure, it is not a problem at all if the support has been dropped. This is completely fine and normal. That ends up changes on all of the product branches a maintainer has, as this will come up for all the hotfix releases as well. So my point here is that there is a last mkdocs version for Python 3.6, which does not support Python 3.6. |
Ah, so you want a final version of mkdocs that you can pin that will work for Python 3.6 always. Material would have to pin all the versions of everything to make sure that is the case since it is not the bottom of the stack. It'd have to pin its dependencies and the dependencies of all of those dependencies. Something can surely break things in the future. I'm sure a Py3.6 compatible release that works with things as they are right now with minimal effort could be created, but I'll leave that up to @squidfunk to decide. If Material was interested in ensuring no future breakage for specific Python versions, it may be in its interest to create some test jobs that install the package on various Python versions. Since there are currently no tests to do this, stuff like this will probably happen again. But even then, things can retroactively break unless your package is at the bottom of the stack. |
I have no interest to maintain a Python 3.6 compatible version, as this is an uphill battle with more of our upstream dependencies moving on to higher versions. Remember that Material for MkDocs is a leaf dependency – we have almost no dependents, but we depend on several other packages. However, Material for MkDocs is Open Source, so I imagine that this can surely be done as part of a fork by somehow who is familiar with the Python ecosystem. For the time being, you can pin the version to 8.2.11, as this is the last one working with Python 3.6. |
We moved forward by pinning this version throughout our codebase! |
Contribution guidelines
I've found a bug and checked that ...
mkdocs
orreadthedocs
themescustom_dir
,extra_javascript
andextra_css
Description
Installing
mkdocs-material@8.2.12
on an environment with python 3.6 would fail because one of the dependenciespymdown-extensions
is now required to be>=9.4
. However, sincepymdown-extensions@9.2
, it has dropped support for python 3.6 and now requires python 3.7 or above.Here's the error message:
Expected behaviour
Install mkdocs-material on python 3.6 environment would succeed (i.e. it installs mkdocs-material@8.2.11, which is the last version that support python 3.6)
Actual behaviour
It fails with the error message mentioned in description
Steps to reproduce
On an environment with python 3.6, run
Package versions
python3 --version
: 3.6.9mkdocs --version
: unrelatedpip show mkdocs-material | grep -E ^Version
: unrelatedConfiguration
Unrelated
System information
The text was updated successfully, but these errors were encountered: