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
Move away from node-sass #1486
Comments
Hi @jelly Everything in the build setup is pretty outdated. I've isolated the environment in Docker to perhaps make it easier to build things: You can see the commands here: https://github.com/readthedocs/sphinx_rtd_theme/blob/master/Makefile
(there's a bug that means you sometimes have to run |
That does not help us as in Arch Linux we build the package currently with nodejs 14, which we intend to drop soon. So I am wondering if you are open in a PR which moves away from |
Arch Linux is something that @humitos and @agjohnson like a lot ❤️ I think they can make a call here about how much can be invested in changing the current setup, if any 😐 If node-sass and dart-sass compile the same CSS code, then the change would be fairly simple. I'd worry that the Node upgrade isn't possible because of the super-deprecated state of the stack, though |
I'll see if I can make a patch and then we can discuss what the possibilities are 👍 |
So dropping
Now the question is, can we update this as newer versions dropped the
Maybe tailwind or bulma or bootstrap? would be an interesting sass framework to switch too |
I believe there are a few issues going over the blocks to upgrading if you're interested, but you've found the major issues we've touched on. The dependency on a very specific version of Wyrm and Bourbon/Neat is the largest block to ugrading to Dart. To solve this, a fork of Wyrm is needed, but I don't think we have the appetite to maintain that in addition. Wyrm was written by the same original author as this theme, and wasn't used much outside this theme. There is already a branch/PR porting to Bootstrap, but we have to take this upgrade incredibly slow and deliberately because of how much of a backwards incompatible change it will be. We incur all of the support around the theme and projects breaking, which in the case of a big backwards incompatible visual change like this, would mostly be silent breakage with visual elements and style overrides. Our current release plan is to continue deprecating our support for older versions of Sphinx and docutils until we have a reasonable dependency and testing matrix. After that, we'll consider either a backwards incompatible major release using Bootstrap or some pattern to ease into the migration. Right now the technical work behind a Bootstrap port is not holding this back much. The blocker is the amount of work in getting users to rewrite their own projects to match the backwards incompatible change and the amount of support we'll incur with a big backwards incompatible change. |
For the Arch package we now just use the prebuild assets so it's less of an issue. |
That would be my suggestion for the time being as well. It is possible to build the assets, but the dependency chain is extremely fragile right now and held together with duct tape and magic. For some background, here is a similar issue and some of the background around the versions used here: In particular, if installed at the system level, node-gyp will be used in place of the dependency from node-sass, regardless of Python version. Very much not a good fix, but I agree that overall switching away from node-sass, node-gyp, Bourbon, Neat, and Wyrm is the right call. |
Problem
This project seems to hard require
nodejs
14 as node-sass does not work with a higher nodejs version (does not build with Python 3.10) for some interesting reason.node-sass is deprecated andprojects should use dart sass. Is a PR welcome to update to dart sass?
Error Logs/Results
The text was updated successfully, but these errors were encountered: