PalisadoesFoundation / talawa-admin

Admin portal for the Talawa Mobile App. Click on the link below to see our documentation
https://docs.talawa.io/
GNU General Public License v3.0
120 stars 476 forks source link

Upgrade of node-sass package to Dart Sass #1503

Closed varshith257 closed 3 months ago

varshith257 commented 5 months ago

Is your feature request related to a problem? Please describe.

Node Sass is deprecated and the compatibility with Sass and Node is failing Saas v9.0.0 producing build errors if we usenode-sass along with the node version >=20.x.xas specified in package.json

                                                [##################] / reify:@mui/icons-material: timing metavuln:calculate:security-advisory:postcss-orderenpm WARN cleanup Failed to remove some directories [
npm WARN cleanup   [
npm WARN cleanup     'C:\\Users\\91970\\Desktop\\talawa\\talawa-admin\\node_modules\\@testing-library',
npm WARN cleanup     [Error: EPERM: operation not permitted, rmdir 'C:\Users\91970\Desktop\talawa\talawa-admin\node_modules\@testing-library\dom\node_modules\aria-query'] {
npm WARN cleanup       errno: -4048,
npm WARN cleanup       code: 'EPERM',
npm WARN cleanup       syscall: 'rmdir',
npm WARN cleanup       path: 'C:\\Users\\91970\\Desktop\\talawa\\talawa-admin\\node_modules\\@testing-library\\dom\\node_modules\\aria-query'
npm WARN cleanup     }
npm WARN cleanup   ]
npm WARN cleanup ]
npm ERR! code 1
npm ERR! path C:\Users\91970\Desktop\talawa\talawa-admin\node_modules\node-sass
npm ERR! command failed
npm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c node scripts/build.js
npm ERR! Binary found at C:\Users\91970\Desktop\talawa\talawa-admin\node_modules\node-sass\vendor\win32-x64-120\binding.node
npm ERR! Testing binary
npm ERR! Binary has a problem: Error: \\?\C:\Users\91970\Desktop\talawa\talawa-admin\node_modules\node-sass\vendor\win32-x64-120\binding.node is not a valid Win32 application.
npm ERR! \\?\C:\Users\91970\Desktop\talawa\talawa-admin\node_modules\node-sass\vendor\win32-x64-120\binding.node
npm ERR!     at Module._extensions..node (node:internal/modules/cjs/loader:1475:18)
npm ERR!     at Module.load (node:internal/modules/cjs/loader:1212:32)
npm ERR!     at Module._load (node:internal/modules/cjs/loader:1028:12)
npm ERR!     at Module.require (node:internal/modules/cjs/loader:1237:19)
npm ERR!     at require (node:internal/modules/helpers:176:18)
npm ERR!     at module.exports (C:\Users\91970\Desktop\talawa\talawa-admin\node_modules\node-sass\lib\binding.js:19:10)
npm ERR!     at Object.<anonymous> (C:\Users\91970\Desktop\talawa\talawa-admin\node_modules\node-sass\lib\index.js:13:35)
npm ERR!     at Module._compile (node:internal/modules/cjs/loader:1378:14)
npm ERR!     at Module._extensions..js (node:internal/modules/cjs/loader:1437:10)
npm ERR!     at Module.load (node:internal/modules/cjs/loader:1212:32) {
npm ERR!   code: 'ERR_DLOPEN_FAILED'
npm ERR! }
npm ERR! Building the binary locally
npm ERR! Building: C:\Program Files\nodejs\node.exe C:\Users\91970\Desktop\talawa\talawa-admin\node_modules\node-gyp\bin\node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp verb cli [
npm ERR! gyp verb cli   'C:\\Program Files\\nodejs\\node.exe',
npm ERR! gyp verb cli   'C:\\Users\\91970\\Desktop\\talawa\\talawa-admin\\node_modules\\node-gyp\\bin\\node-gyp.js',
npm ERR! gyp verb cli   'rebuild',
npm ERR! gyp verb cli   '--verbose',
npm ERR! gyp verb cli   '--libsass_ext=',
npm ERR! gyp verb cli   '--libsass_cflags=',
npm ERR! gyp verb cli   '--libsass_ldflags=',
npm ERR! gyp verb cli   '--libsass_library='
npm ERR! gyp verb cli ]
npm ERR! gyp info using node-gyp@8.4.1
npm ERR! gyp info using node@21.6.1 | win32 | x64
npm ERR! gyp verb command rebuild []
npm ERR! gyp verb command clean []
npm ERR! gyp verb clean removing "build" directory
npm ERR! gyp verb command configure []
npm ERR! gyp verb find Python Python is not set from command line or npm configuration
npm ERR! gyp verb find Python Python is not set from environment variable PYTHON
npm ERR! gyp verb find Python checking if "python3" can be used
npm ERR! gyp verb find Python - executing "python3" to get executable path
npm ERR! gyp verb find Python - "python3" is not in PATH or produced an error
npm ERR! gyp verb find Python checking if "python" can be used
npm ERR! gyp verb find Python - executing "python" to get executable path
npm ERR! gyp verb find Python - "python" is not in PATH or produced an error
npm ERR! gyp verb find Python checking if Python is C:\Users\91970\AppData\Local\Programs\Python\Python39\python.exe
npm ERR! gyp verb find Python - executing "C:\Users\91970\AppData\Local\Programs\Python\Python39\python.exe" to get version
npm ERR! gyp verb find Python - "C:\Users\91970\AppData\Local\Programs\Python\Python39\python.exe" could not be run
npm ERR! gyp verb find Python checking if Python is C:\Program Files\Python39\python.exe
npm ERR! gyp verb find Python - executing "C:\Program Files\Python39\python.exe" to get version
npm ERR! gyp verb find Python - "C:\Program Files\Python39\python.exe" could not be run
npm ERR! gyp verb find Python checking if Python is C:\Users\91970\AppData\Local\Programs\Python\Python39-32\python.exe
npm ERR! gyp verb find Python - executing "C:\Users\91970\AppData\Local\Programs\Python\Python39-32\python.exe" to get version
npm ERR! gyp verb find Python - "C:\Users\91970\AppData\Local\Programs\Python\Python39-32\python.exe" could not be run
npm ERR! gyp verb find Python checking if Python is C:\Program Files\Python39-32\python.exe
npm ERR! gyp verb find Python - executing "C:\Program Files\Python39-32\python.exe" to get version
npm ERR! gyp verb find Python - "C:\Program Files\Python39-32\python.exe" could not be run
npm ERR! gyp verb find Python checking if Python is C:\Program Files (x86)\Python39-32\python.exe
npm ERR! gyp verb find Python - executing "C:\Program Files (x86)\Python39-32\python.exe" to get version
npm ERR! gyp verb find Python - "C:\Program Files (x86)\Python39-32\python.exe" could not be run
npm ERR! gyp verb find Python checking if Python is C:\Users\91970\AppData\Local\Programs\Python\Python38\python.exe
npm ERR! gyp verb find Python - executing "C:\Users\91970\AppData\Local\Programs\Python\Python38\python.exe" to get version
npm ERR! gyp verb find Python - "C:\Users\91970\AppData\Local\Programs\Python\Python38\python.exe" could not be run
npm ERR! gyp verb find Python checking if Python is C:\Program Files\Python38\python.exe
npm ERR! gyp verb find Python - executing "C:\Program Files\Python38\python.exe" to get version
npm ERR! gyp verb find Python - "C:\Program Files\Python38\python.exe" could not be run
npm ERR! gyp verb find Python checking if Python is C:\Users\91970\AppData\Local\Programs\Python\Python38-32\python.exe
npm ERR! gyp verb find Python - executing "C:\Users\91970\AppData\Local\Programs\Python\Python38-32\python.exe" to get version
npm ERR! gyp verb find Python - "C:\Users\91970\AppData\Local\Programs\Python\Python38-32\python.exe" could not be run
npm ERR! gyp verb find Python checking if Python is C:\Program Files\Python38-32\python.exe
npm ERR! gyp verb find Python - executing "C:\Program Files\Python38-32\python.exe" to get version
npm ERR! gyp verb find Python - "C:\Program Files\Python38-32\python.exe" could not be run
npm ERR! gyp verb find Python checking if Python is C:\Program Files (x86)\Python38-32\python.exe
npm ERR! gyp verb find Python - executing "C:\Program Files (x86)\Python38-32\python.exe" to get version
npm ERR! gyp verb find Python - "C:\Program Files (x86)\Python38-32\python.exe" could not be run
npm ERR! gyp verb find Python checking if Python is C:\Users\91970\AppData\Local\Programs\Python\Python37\python.exe
npm ERR! gyp verb find Python - executing "C:\Users\91970\AppData\Local\Programs\Python\Python37\python.exe" to get version
npm ERR! gyp verb find Python - "C:\Users\91970\AppData\Local\Programs\Python\Python37\python.exe" could not be run
npm ERR! gyp verb find Python checking if Python is C:\Program Files\Python37\python.exe
npm ERR! gyp verb find Python - executing "C:\Program Files\Python37\python.exe" to get version
npm ERR! gyp verb find Python - "C:\Program Files\Python37\python.exe" could not be run
npm ERR! gyp verb find Python checking if Python is C:\Users\91970\AppData\Local\Programs\Python\Python37-32\python.exe
npm ERR! gyp verb find Python - executing "C:\Users\91970\AppData\Local\Programs\Python\Python37-32\python.exe" to get version
npm ERR! gyp verb find Python - "C:\Users\91970\AppData\Local\Programs\Python\Python37-32\python.exe" could not be run
npm ERR! gyp verb find Python checking if Python is C:\Program Files\Python37-32\python.exe
npm ERR! gyp verb find Python - executing "C:\Program Files\Python37-32\python.exe" to get version
npm ERR! gyp verb find Python - "C:\Program Files\Python37-32\python.exe" could not be run
npm ERR! gyp verb find Python checking if Python is C:\Program Files (x86)\Python37-32\python.exe
npm ERR! gyp verb find Python - executing "C:\Program Files (x86)\Python37-32\python.exe" to get version
npm ERR! gyp verb find Python - "C:\Program Files (x86)\Python37-32\python.exe" could not be run
npm ERR! gyp verb find Python checking if Python is C:\Users\91970\AppData\Local\Programs\Python\Python36\python.exe
npm ERR! gyp verb find Python - executing "C:\Users\91970\AppData\Local\Programs\Python\Python36\python.exe" to get version
npm ERR! gyp verb find Python - "C:\Users\91970\AppData\Local\Programs\Python\Python36\python.exe" could not be run
npm ERR! gyp verb find Python checking if Python is C:\Program Files\Python36\python.exe
npm ERR! gyp verb find Python - executing "C:\Program Files\Python36\python.exe" to get version
npm ERR! gyp verb find Python - "C:\Program Files\Python36\python.exe" could not be run
npm ERR! gyp verb find Python checking if Python is C:\Users\91970\AppData\Local\Programs\Python\Python36-32\python.exe
npm ERR! gyp verb find Python - executing "C:\Users\91970\AppData\Local\Programs\Python\Python36-32\python.exe" to get version
npm ERR! gyp verb find Python - "C:\Users\91970\AppData\Local\Programs\Python\Python36-32\python.exe" could not be run
npm ERR! gyp verb find Python checking if Python is C:\Program Files\Python36-32\python.exe
npm ERR! gyp verb find Python - executing "C:\Program Files\Python36-32\python.exe" to get version
npm ERR! gyp verb find Python - "C:\Program Files\Python36-32\python.exe" could not be run
npm ERR! gyp verb find Python checking if Python is C:\Program Files (x86)\Python36-32\python.exe
npm ERR! gyp verb find Python - executing "C:\Program Files (x86)\Python36-32\python.exe" to get version
npm ERR! gyp verb find Python - "C:\Program Files (x86)\Python36-32\python.exe" could not be run
npm ERR! gyp verb find Python checking if the py launcher can be used to find Python 3
npm ERR! gyp verb find Python - executing "py.exe" to get Python 3 executable path
npm ERR! gyp verb find Python - executable path is "C:\Users\91970\AppData\Local\Programs\Python\Python312\python.exe"
npm ERR! gyp verb find Python - executing "C:\Users\91970\AppData\Local\Programs\Python\Python312\python.exe" to get version
npm ERR! gyp verb find Python - version is "3.12.1"
npm ERR! gyp info find Python using Python version 3.12.1 found at "C:\Users\91970\AppData\Local\Programs\Python\Python312\python.exe"
npm ERR! gyp verb get node dir no --target version specified, falling back to host node version: 21.6.1
npm ERR! gyp verb command install [ '21.6.1' ]
npm ERR! gyp verb install input version string "21.6.1"
npm ERR! gyp verb install installing version: 21.6.1
npm ERR! gyp verb install --ensure was passed, so won't reinstall if already installed
npm ERR! gyp verb install version is already installed, need to check "installVersion"
npm ERR! gyp verb got "installVersion" 9
npm ERR! gyp verb needs "installVersion" 9
npm ERR! gyp verb install version is good
npm ERR! gyp verb get node dir target node version installed: 21.6.1
npm ERR! gyp verb build dir attempting to create "build" dir: C:\Users\91970\Desktop\talawa\talawa-admin\node_modules\node-sass\build
npm ERR! gyp verb build dir "build" dir needed to be created? Yes
npm ERR! gyp verb find VS msvs_version not set from command line or npm config
npm ERR! gyp verb find VS VCINSTALLDIR not set, not running in VS Command Prompt
npm ERR! gyp verb find VS checking VS2022 (17.8.34511.84) found at:
npm ERR! gyp verb find VS "C:\Program Files\Microsoft Visual Studio\2022\Community"
npm ERR! gyp verb find VS - found "Visual Studio C++ core features"
npm ERR! gyp verb find VS - found VC++ toolset: v143
npm ERR! gyp verb find VS - found Windows SDK: 10.0.19041.0
npm ERR! gyp info find VS using VS2022 (17.8.34511.84) found at:
npm ERR! gyp info find VS "C:\Program Files\Microsoft Visual Studio\2022\Community"
npm ERR! gyp info find VS run with --verbose for detailed information
npm ERR! gyp verb build/config.gypi creating config file
npm ERR! gyp verb build/config.gypi writing out config file: C:\Users\91970\Desktop\talawa\talawa-admin\node_modules\node-sass\build\config.gypi
npm ERR! gyp verb config.gypi checking for gypi file: C:\Users\91970\Desktop\talawa\talawa-admin\node_modules\node-sass\config.gypi
npm ERR! gyp verb common.gypi checking for gypi file: C:\Users\91970\Desktop\talawa\talawa-admin\node_modules\node-sass\common.gypi
npm ERR! gyp verb gyp gyp format was not specified; forcing "msvs"
npm ERR! gyp info spawn C:\Users\91970\AppData\Local\Programs\Python\Python312\python.exe
npm ERR! gyp info spawn args [
npm ERR! gyp info spawn args   'C:\\Users\\91970\\Desktop\\talawa\\talawa-admin\\node_modules\\node-gyp\\gyp\\gyp_main.py',
npm ERR! gyp info spawn args   'binding.gyp',
npm ERR! gyp info spawn args   '-f',
npm ERR! gyp info spawn args   'msvs',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   'C:\\Users\\91970\\Desktop\\talawa\\talawa-admin\\node_modules\\node-sass\\build\\config.gypi',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   'C:\\Users\\91970\\Desktop\\talawa\\talawa-admin\\node_modules\\node-gyp\\addon.gypi',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   'C:\\Users\\91970\\AppData\\Local\\node-gyp\\Cache\\21.6.1\\include\\node\\common.gypi',
npm ERR! gyp info spawn args   '-Dlibrary=shared_library',
npm ERR! gyp info spawn args   '-Dvisibility=default',
npm ERR! gyp info spawn args   '-Dnode_root_dir=C:\\Users\\91970\\AppData\\Local\\node-gyp\\Cache\\21.6.1',
npm ERR! gyp info spawn args   '-Dnode_gyp_dir=C:\\Users\\91970\\Desktop\\talawa\\talawa-admin\\node_modules\\node-gyp',
npm ERR! gyp info spawn args   '-Dnode_lib_file=C:\\\\Users\\\\91970\\\\AppData\\\\Local\\\\node-gyp\\\\Cache\\\\21.6.1\\\\<(target_arch)\\\\node.lib',
npm ERR! gyp info spawn args   '-Dmodule_root_dir=C:\\Users\\91970\\Desktop\\talawa\\talawa-admin\\node_modules\\node-sass',
npm ERR! gyp info spawn args   '-Dnode_engine=v8',
npm ERR! gyp info spawn args   '--depth=.',
npm ERR! gyp info spawn args   '--no-parallel',
npm ERR! gyp info spawn args   '--generator-output',
npm ERR! gyp info spawn args   'C:\\Users\\91970\\Desktop\\talawa\\talawa-admin\\node_modules\\node-sass\\build',
npm ERR! gyp info spawn args   '-Goutput_dir=.'
npm ERR! gyp info spawn args ]
npm ERR! Traceback (most recent call last):
npm ERR!   File "C:\Users\91970\Desktop\talawa\talawa-admin\node_modules\node-gyp\gyp\gyp_main.py", line 42, in <module>
npm ERR!     import gyp  # noqa: E402
npm ERR!     ^^^^^^^^^^
npm ERR!   File "C:\Users\91970\Desktop\talawa\talawa-admin\node_modules\node-gyp\gyp\pylib\gyp\__init__.py", line 9, in <module>
npm ERR!     import gyp.input
npm ERR!   File "C:\Users\91970\Desktop\talawa\talawa-admin\node_modules\node-gyp\gyp\pylib\gyp\input.py", line 19, in <module>
npm ERR!     from distutils.version import StrictVersion
npm ERR! ModuleNotFoundError: No module named 'distutils'
npm ERR! gyp ERR! configure error
npm ERR! gyp ERR! stack Error: `gyp` failed with exit code: 1
npm ERR! gyp ERR! stack     at ChildProcess.onCpExit (C:\Users\91970\Desktop\talawa\talawa-admin\node_modules\node-gyp\lib\configure.js:259:16)
npm ERR! gyp ERR! stack     at ChildProcess.emit (node:events:519:28)
npm ERR! gyp ERR! stack     at ChildProcess._handle.onexit (node:internal/child_process:294:12)
npm ERR! gyp ERR! System Windows_NT 10.0.22621
npm ERR! gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\91970\\Desktop\\talawa\\talawa-admin\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
npm ERR! gyp ERR! cwd C:\Users\91970\Desktop\talawa\talawa-admin\node_modules\node-sass
npm ERR! gyp ERR! node -v v21.6.1
npm ERR! gyp ERR! node-gyp -v v8.4.1
npm ERR! gyp ERR! not ok
npm ERR! Build failed with error code: 1

npm ERR! A complete log of this run can be found in: C:\Users\91970\AppData\Local\npm-cache\_logs\2024-01-27T04_02_33_691Z-debug-0.log

C:\Users\91970\Desktop\talawa\talawa-admin>

Describe the solution you'd like

1)Node Sass is deprecated. While they will continue to receive maintenance releases indefinitely, there are no plans to add additional features or compatibility with any new CSS or Sass features. 2) The package.json is defined to use node engine >= 20.x.x. If we need to use latest version of node without any compatibility issues has to be moved toDart Sass

Describe alternatives you've considered

Approach to be followed (optional) A clear and concise description of approach to be followed. Upgrade package of node-sas to Dart Sass to make compatible with latest version of nodejs

Additional context Add any other context or screenshots about the feature request here.

Potential internship candidates Please read this if you are planning to apply for a Palisadoes Foundation internship https://github.com/PalisadoesFoundation/talawa/issues/359

github-actions[bot] commented 5 months ago

Congratulations on making your first Issue! :confetti_ball: If you haven't already, check out our Contributing Guidelines and Issue Reporting Guidelines to ensure that you are following our guidelines for contributing and making issues.

varshith257 commented 5 months ago

@palisadoes @noman2002 I would like to work on this issue

gautam-divyanshu commented 5 months ago

It worked fine with 18.18.0,

varshith257 commented 5 months ago

Yes, but our package.json specifies node >= 20 . We have to be aligned with it and make updates.

varshith257 commented 5 months ago

And node-sass has no longer support and updates and the npm packager and maintainer suggested to move to dart sass for upcoming updates and support for this.

gautam-divyanshu commented 5 months ago

please assign this issue, love to work on it.

gautam-divyanshu commented 5 months ago

@varshith257 did you worked on it? What problems did you faced

varshith257 commented 5 months ago

I didn't worked much about it but researched about it. While installing talawa admin the node saas required build and is compatible with node 18. But in admin package. json specified node version could be node >=20 it produced build errors as above image.

Just exploring found node saas is no longer supported and updates to it. Suggested to move to Dart Sass.

I think to complete this issue we have to migrate all node saas code to dart sass.

github-actions[bot] commented 4 months ago

This issue did not get any activity in the past 10 days and will be closed in 180 days if no update occurs. Please check if the develop branch has fixed it and report again or close the issue.

NamitBhutani commented 4 months ago

I would like to work on this issue!