shell.openExternal() raising errors

Hello,
I once asked a question on how to open a url with my ionic desktop app using @capacitor-community/electron, which i got an answer to use:
import { shell } from '@capacitor-community/electron';
shell.openExternal(url);
which i believe could would work, but it raising the following errors when i run npm run build
./electron/node_modules/fsevents/fsevents.node:1:0 - Error: Module parse failed: Unexpected character '�' (1:0)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
(Source code omitted for this binary file)
@capacitor-community/electron:1:1122-1135 - Error: Module not found: Error: Can't resolve 'fs' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\node_modules@capacitor-community\electron\dist\core'
@capacitor-community/electron:1:1168-1183 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\node_modules@capacitor-community\electron\dist\core'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/builder-util-runtime/out/ProgressCallbackTransform.js:4:17-34 - Error: Module not found: Error: Can't resolve 'stream' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\builder-util-runtime\out'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "stream": require.resolve("stream-browserify") }'
- install 'stream-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "stream": false }
./electron/node_modules/builder-util-runtime/out/httpExecutor.js:4:17-34 - Error: Module not found: Error: Can't resolve 'crypto' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\builder-util-runtime\out'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "crypto": require.resolve("crypto-browserify") }'
- install 'crypto-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "crypto": false }
./electron/node_modules/builder-util-runtime/out/httpExecutor.js:6:13-26 - Error: Module not found: Error: Can't resolve 'fs' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\builder-util-runtime\out'
./electron/node_modules/builder-util-runtime/out/httpExecutor.js:7:17-34 - Error: Module not found: Error: Can't resolve 'stream' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\builder-util-runtime\out'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "stream": require.resolve("stream-browserify") }'
- install 'stream-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "stream": false }
./electron/node_modules/builder-util-runtime/out/uuid.js:4:17-34 - Error: mModule not found: Error: Can't resolve 'crypto' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\builder-util-runtime\out'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "crypto": require.resolve("crypto-browserify") }'
- install 'crypto-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "crypto": false }
./electron/node_modules/chokidar/index.js:4:11-24 - Error: Module not found: Error: Can't resolve 'fs' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\chokidar'
./electron/node_modules/chokidar/index.js:5:16-31 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\chokidar'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/chokidar/lib/constants.js:3:14-29 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\chokidar\lib'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/chokidar/lib/constants.js:5:11-24 - Error: Module not found: Error: Can't resolve 'os' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\chokidar\lib'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "os": require.resolve("os-browserify/browser") }'
- install 'os-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "os": false }
./electron/node_modules/chokidar/lib/fsevents-handler.js:3:11-24 - Error: Module not found: Error: Can't resolve 'fs' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\chokidar\lib'
./electron/node_modules/chokidar/lib/fsevents-handler.js:4:16-31 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\chokidar\lib'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/chokidar/lib/nodefs-handler.js:3:11-24 - Error: Module not found: Error: Can't resolve 'fs' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\chokidar\lib'
./electron/node_modules/chokidar/lib/nodefs-handler.js:4:16-31 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\chokidar\lib'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/electron-serve/index.js:2:11-24 - Error: Module not found: Error: Can't resolve 'fs' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-serve'
./electron/node_modules/electron-serve/index.js:3:13-28 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-serve'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/electron-updater/node_modules/fs-extra/lib/copy-sync/copy-sync.js:4:13-28[39m - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\node_modules\fs-extra\lib\copy-sync'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/electron-updater/node_modules/fs-extra/lib/copy/copy.js:4:13-28 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\node_modules\fs-extra\lib\copy'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/electron-updater/node_modules/fs-extra/lib/empty/index.js:5:13-28 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\node_modules\fs-extra\lib\empty'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/electron-updater/node_modules/fs-extra/lib/ensure/file.js:4:13-28 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\node_modules\fs-extra\lib\ensure'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/electron-updater/node_modules/fs-extra/lib/ensure/link.js:4:13-28 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\node_modules\fs-extra\lib\ensure'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/electron-updater/node_modules/fs-extra/lib/ensure/symlink-paths.js:3:13-28 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\node_modules\fs-extra\lib\ensure'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/electron-updater/node_modules/fs-extra/lib/ensure/symlink.js:4:13-28 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\node_modules\fs-extra\lib\ensure'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/electron-updater/node_modules/fs-extra/lib/mkdirs/utils.js:7:13-28 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\node_modules\fs-extra\lib\mkdirs'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/electron-updater/node_modules/fs-extra/lib/move-sync/move-sync.js:4:13-28 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\node_modules\fs-extra\lib\move-sync'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/electron-updater/node_modules/fs-extra/lib/move/move.js:4:13-28 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\node_modules\fs-extra\lib\move'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/electron-updater/node_modules/fs-extra/lib/output/index.js:5:13-28 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\node_modules\fs-extra\lib\output'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/electron-updater/node_modules/fs-extra/lib/remove/rimraf.js:4:13-28 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\node_modules\fs-extra\lib\remove'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/electron-updater/node_modules/fs-extra/lib/remove/rimraf.js:5:15-32 - Error: Module not found: Error: Can't resolve 'assert' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\node_modules\fs-extra\lib\remove'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "assert": require.resolve("assert/") }'
- install 'assert'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "assert": false }
./electron/node_modules/electron-updater/node_modules/fs-extra/lib/util/stat.js:4:13-28 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\node_modules\fs-extra\lib\util'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/electron-updater/out/AppAdapter.js:4:13-28 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\out'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/electron-updater/out/AppAdapter.js:5:13-26 - Error: Module not found: Error: Can't resolve 'os' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\out'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "os": require.resolve("os-browserify/browser") }'
- install 'os-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "os": false }
./electron/node_modules/electron-updater/out/AppImageUpdater.js:5:24-48 - Error: Module not found: Error: Can't resolve 'child_process' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\out'
./electron/node_modules/electron-updater/out/AppImageUpdater.js:7:13-26 - Error: Module not found: Error: Can't resolve 'fs' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\out'
./electron/node_modules/electron-updater/out/AppImageUpdater.js:8:13-28 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\out'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/electron-updater/out/AppUpdater.js:5:17-34 - Error: Module not found: Error: Can't resolve 'crypto' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\out'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "crypto": require.resolve("crypto-browserify") }'
- install 'crypto-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "crypto": false }
./electron/node_modules/electron-updater/out/AppUpdater.js:8:19-41 - Error: Module not found: Error: Can't resolve 'fs/promises' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\out'
./electron/node_modules/electron-updater/out/AppUpdater.js:11:13-28 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\out'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/electron-updater/out/DownloadedUpdateHelper.js:4:17-34 - Error: Module not found: Error: Can't resolve 'crypto' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\out'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "crypto": require.resolve("crypto-browserify") }'
- install 'crypto-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "crypto": false }
./electron/node_modules/electron-updater/out/DownloadedUpdateHelper.js:5:13-26 - Error: Module not found: Error: Can't resolve 'fs' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\out'
./electron/node_modules/electron-updater/out/DownloadedUpdateHelper.js:9:13-28 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\out'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/electron-updater/out/ElectronAppAdapter.js:4:13-28 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\out'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/electron-updater/out/MacUpdater.js:6:13-26 - Error: Module not found: Error: Can't resolve 'fs' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\out'
./electron/node_modules/electron-updater/out/MacUpdater.js:7:15-30 - Error: Module not found: Error: Can't resolve 'http' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\out'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "http": require.resolve("stream-http") }'
- install 'stream-http'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "http": false }
./electron/node_modules/electron-updater/out/MacUpdater.js:10:24-48 - Error: Module not found: Error: Can't resolve 'child_process' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\out'
./electron/node_modules/electron-updater/out/NsisUpdater.js:5:24-48 - Error: Module not found: Error: Can't resolve 'child_process' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\out'
./electron/node_modules/electron-updater/out/NsisUpdater.js:6:13-28 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\out'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/electron-updater/out/NsisUpdater.js:16:15-30 - Error: Module not found: Error: Can't resolve 'zlib' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\out'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "zlib": require.resolve("browserify-zlib") }'
- install 'browserify-zlib'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "zlib": false }
./electron/node_modules/electron-updater/out/differentialDownloader/DataSplitter.js:5:13-26 - Error: Module not found: Error: Can't resolve 'fs' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\out\differentialDownloader'
./electron/node_modules/electron-updater/out/differentialDownloader/DataSplitter.js:6:17-34 - Error: Module not found: Error: Can't resolve 'stream' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\out\differentialDownloader'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "stream": require.resolve("stream-browserify") }'
- install 'stream-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "stream": false }
./electron/node_modules/electron-updater/out/differentialDownloader/DifferentialDownloader.js:6:13-26 - Error: Module not found: Error: Can't resolve 'fs' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\out\differentialDownloader'
./electron/node_modules/electron-updater/out/differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader.js:6:15-30 - Error: Module not found: Error: Can't resolve 'zlib' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\out\differentialDownloader'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "zlib": require.resolve("browserify-zlib") }'
- install 'browserify-zlib'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "zlib": false }
./electron/node_modules/electron-updater/out/differentialDownloader/ProgressDifferentialDownloadCallbackTransform.js:4:17-34 - Error: Module not found: Error: Can't resolve 'stream' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\out\differentialDownloader'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "stream": require.resolve("stream-browserify") }'
- install 'stream-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "stream": false }
./electron/node_modules/electron-updater/out/providers/PrivateGitHubProvider.js:6:13-28[0m - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\out\providers'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/electron-updater/out/windowsExecutableCodeSignatureVerifier.js:5:24-48 - Error: Module not found: Error: Can't resolve 'child_process' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\out'
./electron/node_modules/electron-updater/out/windowsExecutableCodeSignatureVerifier.js:6:11-24 - Error: Module not found: Error: Can't resolve 'os' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-updater\out'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "os": require.resolve("os-browserify/browser") }'
- install 'os-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "os": false }
./electron/node_modules/electron-window-state/index.js:3:13-28 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-window-state'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/electron-window-state/node_modules/jsonfile/index.js:5:8-21 - Error: Module not found: Error: Can't resolve 'fs' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-window-state\node_modules\jsonfile'
./electron/node_modules/electron-window-state/node_modules/mkdirp/index.js:1:11-26 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-window-state\node_modules\mkdirp'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/electron-window-state/node_modules/mkdirp/index.js:2:9-22 - Error: Module not found: Error: Can't resolve 'fs' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\electron-window-state\node_modules\mkdirp'
./electron/node_modules/glob-parent/index.js:4:23-52 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\glob-parent'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/glob-parent/index.js:5:14-36 - Error: Module not found: Error: Can't resolve 'os' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\glob-parent'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "os": require.resolve("os-browserify/browser") }'
- install 'os-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "os": false }
./electron/node_modules/graceful-fs/graceful-fs.js:1:9-22 - Error: Module not found: Error: Can't resolve 'fs' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\graceful-fs'
./electron/node_modules/graceful-fs/graceful-fs.js:87:6-29 - Error: Module not found: Error: Can't resolve 'assert' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\graceful-fs'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "assert": require.resolve("assert/") }'
- install 'assert'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "assert": false }
./electron/node_modules/graceful-fs/legacy-streams.js:1:13-37 - Error: Module not found: Error: Can't resolve 'stream' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\graceful-fs'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "stream": require.resolve("stream-browserify") }'
- install 'stream-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "stream": false }
./electron/node_modules/graceful-fs/polyfills.js:1:16-36 - Error: Module not found: Error: Can't resolve 'constants' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\graceful-fs'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "constants": require.resolve("constants-browserify") }'
- install 'constants-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "constants": false }
./electron/node_modules/is-binary-path/index.js:2:13-28 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\is-binary-path'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/jsonfile/index.js:5:8-21 - Error: Module not found: Error: Can't resolve 'fs' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\jsonfile'
./electron/node_modules/picomatch/lib/constants.js:3:13-28 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\picomatch\lib'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/picomatch/lib/picomatch.js:3:13-28 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\picomatch\lib'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
m./electron/node_modules/picomatch/lib/utils.js:3:13-28 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\picomatch\lib'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/node_modules/readdirp/index.js:3:11-24 - Error: Module not found: Error: Can't resolve 'fs' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\readdirp'
./electron/node_modules/readdirp/index.js:4:21-38 - Error: Module not found: Error: Can't resolve 'stream' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\readdirp'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "stream": require.resolve("stream-browserify") }'
- install 'stream-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "stream": false }
./electron/node_modules/readdirp/index.js:5:16-31 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\node_modules\readdirp'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./node_modules/@capacitor-community/electron/dist/core/index.js:1:1122-1135 - Error: Module not found: Error: Can't resolve 'fs' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\node_modules@capacitor-community\electron\dist\core'
./node_modules/@capacitor-community/electron/dist/core/index.js:1:1168-1183 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\node_modules@capacitor-community\electron\dist\core'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./node_modules/mime-types/index.js:16:14-37 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\node_modules\mime-types'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
./electron/build/src/setup.js:11:15-30 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Users\ODUNAYO\Desktop\Flutter\newApp\electron\build\src'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>build: ng build
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR!      C:\Users\ODUNAYO\AppData\Roaming\npm-cache_logs\2022-01-11T09_47_38_459Z-debug.log
@IT-MikeS  kindly help with this.
Thanks

This seems to be more an issue of trying to use the function in your app and not via the context bridge to the main process. So when you build your app webpack throws a fit trying to package up electron and its dependencies.

@IT-MikeS, Yeah i now understand the cause, but what can be the possible solution  to this issue ?

There are two possible fixes here...
Quick and dirty
You could add the following to /electron/src/rt/electron-rt.ts:
// This line should already exist. Add 'shell'.
import { ipcRenderer, contextBridge, shell } from 'electron';

contextBridge.exposeInMainWorld('openExternal', shell.openExternal);

You could simply use it in the browser like this:
openExternal('https://google.com');

This could be dangerous!: https://benjamin-altpeter.de/shell-openexternal-dangers/
Best
The best solution is to add a custom plugin (that checks the input). This is a bit more work, but it is the best solution in the long run. You can find the docs here: https://capacitor-community.github.io/electron/docs/creatingplugins.

I added a pull-request to the default Capacitor plugins repo that adds support for Electron to the AppLauncher plugin: https://github.com/ionic-team/capacitor-plugins/pull/793

There are two possible fixes here...
Quick and dirty
You could add the following to /electron/src/rt/electron-rt.ts:
// This line should already exist. Add 'shell'.
import { ipcRenderer, contextBridge, shell } from 'electron';

contextBridge.exposeInMainWorld('openExternal', shell.openExternal);

You could simply use it in the browser like this:
openExternal('https://google.com');

This could be dangerous!: https://benjamin-altpeter.de/shell-openexternal-dangers/
Best
The best solution is to add a custom plugin (that checks the input). This is a bit more work, but it is the best solution in the long run. You can find the docs here: https://capacitor-community.github.io/electron/docs/creatingplugins.

@jdgjsag67251 thanks for your response, i tried the Quick and Dirty hack, but it didn't work as i keep getting the same error, and i  really don't know how to approach that suggested Best Solution

I added a pull-request to the default Capacitor plugins repo that adds support for Electron to the AppLauncher plugin: ionic-team/capacitor-plugins#793

I hope this yield something positive

```ts
contextBridge.exposeInMainWorld('openExternal', shell.openExternal);

How to call openExternal() in my page.ts file?? what to import? as i am importing shell form electron its not working.

contextBridge.exposeInMainWorld('openExternal', shell.openExternal);

How to call openExternal() in my page.ts file?? what to import? as i am importing shell form electron its not working.

i used this code
window['openExternal']()
this works

contextBridge.exposeInMainWorld('openExternal', shell.openExternal);

How to call openExternal() in my page.ts file?? what to import? as i am importing shell form electron its not working.

i used this code window['openExternal']() this works

What I did is:
add this code in my electron-rt.ts
contextBridge.exposeInMainWorld('electron', {
  shell: {
    openExternal: shell.openExternal
  }
});

and then called it in my ts as:
window.electron.shell.openExternal('https://google.com')

way way better, I will use this option

App.jsx
const handleOpenExternal = (url) => {
   window.electron.openExternal(url);
 };

<div className="menu-item" onClick={() => handleOpenExternal('https://cyberpunkcity.com')}>
     <img src={homeIcon} alt="Home" />
      <span>Website</span>
</div>
<div className="menu-item" onClick={() => handleOpenExternal('https://xoxno.com/collection/CITYNFT-26cded')}>
      <img src={nftIcon} alt="Shop" />
      <span>Shop</span>
</div>

preload.js
const { contextBridge, ipcRenderer, shell } = require('electron');

contextBridge.exposeInMainWorld('electron', {
    download: () => ipcRenderer.invoke('download'),
    verify: () => ipcRenderer.invoke('verify'),
    openExternal: (url) => shell.openExternal(url),
});

Uncaught Error: Cannot read properties of undefined (reading 'openExternal')
I keep getting this error. How can I solve it? What am I doing wrong?


[ci] upgrade to GoogleTest v1.14.0 (fixes #5976)

Fixes #5976
Updates to the latest version of GoogleTest, v1.14.0 (https://github.com/google/googletest/releases), to get recent miscellaneous bugfixes and improvements and to keep up with versions that LightGBM contributors and uses are more likely to have.
Other changes:

removes C++ standard from flags in CMakeLists.txt, in favor of setting CMake variable CMAKE_CXX_STANDARD
sets CMAKE_CXX_STANDARD_REQUIRED to ON, to ensure a loud error is raised if using a compiler that doesn't support the requested standard (instead of silently falling back to an earlier version, which could lead to cryptic errors or undefined behavior)
uses C++14 standard when running the C++ tests with GoogleTest

Why only go to C++14?
C++14 is the minimum version supported by newer versions of GoogleTest.
I tried to go all the way to C++20 in this PR, but encountered some compilation errors like the following:
* LightGBM/include/LightGBM/utils/common.h:1203:35:   in 'constexpr' expansion of 'fmt::v8::basic_format_string<char, const unsigned int&>(format)'
* LightGBM/include/LightGBM/utils/common.h:1203:35: error: 'format' is not a constant expression

Which might be related to https://github.com/fmtlib/fmt/issues/2775 or https://github.com/fmtlib/fmt/issues/2898.
I'm proposing separating the work of adding C++20 out to #6033.
Adding C++14 specifically also improves the project's CI coverage of C++ standards:

C++11 = most tests (Python-package, CMake-based R-package, SWIG, CUDA): C++11
C++14 = the cpp tests
C++17 = CRAN-style R-package tests

References
The changes in CMakeLists.txt are supported by the following:

https://cliutils.gitlab.io/modern-cmake/chapters/features/cpp11.html
https://crascit.com/2015/03/28/enabling-cxx11-in-cmake/

How I tested this
git clean -d -f -X
rm -rf ./build
mkdir build
cd ./build
cmake -DBUILD_CPP_TEST=ON -DUSE_OPENMP=OFF ..

VERBOSE=1 \
make -j2 testlightgbm

../testlightgbm

Observed that the expected --std flags were passed to the compiler (e.g.

Ok good! Just updating the version without changing the C++ standard, I see exactly the same errors in CI as reported in #5976.
/__w/1/s/build/_deps/googletest-src/googletest/include/gtest/internal/gtest-port.h:270:2: error: C++ versions less than C++14 are not supported.
#error C++ versions less than C++14 are not supported.

https://dev.azure.com/lightgbm-ci/lightgbm-ci/_build/results?buildId=14929&view=logs&j=c1aa5445-36f0-58f5-2c69-68691d629457&t=c07c8f5b-ba24-5225-6ddc-80219dbcdc35

@guolinke @shiyu1994 could I please get a review on this one?

thank you!


Is Call log for Audio and Video calls implemented in Q-Municate Android?

I want to know Is Call log for Audio and Video calls implemented in Q-Municate Android?

Hi you would have to implement as per my understanding of sdk. We implemented call logs on own for our application.

Yeah there is no call log. I have implemented successfully.

Thanks @sheikhrashid. Would you please share the code snippet for the call log? I need to implement it for one of my projects. Looking for your kind cooperation.

Hi @AAPBD.  What I did is a simple thing. I just added a new UI with some Views. Every time, I receive a new call, or I make a call. I populate the UI in a ListView. Simple :)
Just a UI Manipulation ;)

Would be great if you can share the code.


Train loss during training to changing.

I started train with command
python3 -m dinov2.run.train.train --config-file dinov2/configs/train/vitl16_short.yaml
with yaml params:
train:
dataset_path: ImageNet:split=TRAIN
batch_size_per_gpu: 32
OFFICIAL_EPOCH_LENGTH: 2500
student:
arch: vit_base
patch_size: 14
teacher:
momentum_teacher: 0.994
optim:
weight_decay_end: 0.2
base_lr: 2.0e-04
layerwise_decay: 1.0
epochs: 100
warmup_epochs: 1
I create my own dataset with imageNet-like structure, but during ~50 epochs steps - loss changing in interval 0.01% from 1st epoch, and still flat.
I start train without any specific pretrained weights, is it correct?
What im doing wrong?

It looks like you are training in a non-distributed setup, with a total batch size of 32. We do not have much experience with this setting, as we use a total batch size of 2048 in our distributed setups; my gut feeling tells me it would not work well.

Probably this is the issue. I have never trained DINOv2 setups with small batch sizes such as 32; we use a batch size of 2048 in our work, and the optimization problem is very different in that case. Unfortunately I don't have any solution to offer to you, and at this point I can not even confirm there is a way to make it work with a batch size of 32.

Are you running a distributed setup ?

No, just 1 A100 40 Gb

Probably this is the issue. I have never trained DINOv2 setups with small batch sizes such as 32; we use a batch size of 2048 in our work, and the optimization problem is very different in that case. Unfortunately I don't have any solution to offer to you, and at this point I can not even confirm there is a way to make it work with a batch size of 32.

Well, that ain't good. Thanks anyway.


Trying to create Private K8s Cluster with the example given

Thanks for the Private K8s Cluster Example Code. It is useful
https://github.com/gruntwork-io/terraform-google-gke/blob/master/examples/gke-private-cluster/variables.tf#L47
all 3 CIDR ranges are "master_ipv4_cidr_block" is  "<IP_ADDRESS>/28" , "vpc_cidr_block" is "<IP_ADDRESS>/16" and "vpc_secondary_cidr_block"  is "<IP_ADDRESS>/16"
But in my case due to various CIDR block range those are little bit constrained still getting the following
all 3 CIDR ranges are "master_ipv4_cidr_block" is  "<IP_ADDRESS>/28" , "vpc_cidr_block" is "<IP_ADDRESS>/24" and "vpc_secondary_cidr_block"  is "<IP_ADDRESS>/24"
And I am getting the following error
"tierSettings": {  "tier": "STANDARD" }, "selfLink": "https://container.googleapis.com/v1beta1/projects/my-sandbox/locations/us-central1/clusters/sb-pvt-cluster", "zone": "us-central1", "endpoint": "<IP_ADDRESS>", "initialClusterVersion": "1.14.3-gke.11", "currentMasterVersion": "1.14.3-gke.11", "currentNodeVersion": "1.14.3-gke.11", "createTime": "2019-09-16T18:45:28+00:00", "status": "ERROR", "statusMessage": "\n\t(1) deploy error: Not all instances running in IGM after 12.294175155s. Expect 1. Current errors: [INVALID_FIELD_VALUE]: Instance 'gke-sb-pvt-cluster-default-pool-78b0666e-fjqd' creation failed: Invalid value for field 'resource.networkInterfaces[0].aliasIpRanges[0].ipCidrRange': '/24'. CIDR range for alias IP range must be within the specified subnetwork. (when acting as '902699685401@cloudservices.gserviceaccount.com')\n\t(2) deploy error: Not all instances running in IGM after 12.636626322s. Expect 1. Current errors: [INVALID_FIELD_VALUE]: Instance 'gke-sb-pvt-cluster-default-pool-14f555fd-p8c0' creation failed: Invalid value for field 'resource.networkInterfaces[0].aliasIpRanges[0].ipCidrRange': '/24'. CIDR range for alias IP range must be within the specified subnetwork. (when acting as '902699685401@cloudservices.gserviceaccount.com')\n\t(3) deploy error: Not all instances running in IGM after 14.673528039s. Expect 1. Current errors: [INVALID_FIELD_VALUE]: Instance 'gke-sb-pvt-cluster-default-pool-7f5795dc-zzbs' creation failed: Invalid value for field 'resource.networkInterfaces[0].aliasIpRanges[0].ipCidrRange': '/24'. CIDR range for alias IP range must be within the specified subnetwork. (when acting as '902699685401@cloudservices.gserviceaccount.com').", "servicesIpv4Cidr": "<IP_ADDRESS>/28", "instanceGroupUrls": [  "https://www.googleapis.com/compute/v1/projects/my-sandbox/zones/us-central1-b/instanceGroupManagers/gke-sb-pvt-cluster-default-pool-78b0666e-grp",  "https://www.googleapis.com/compute/v1/projects/my-sandbox/zones/us-central1-c/instanceGroupManagers/gke-sb-pvt-cluster-default-pool-7f5795dc-grp",  "https://www.googleapis.com/compute/v1/projects/my-sandbox/zones/us-central1-a/instanceGroupManagers/gke-sb-pvt-cluster-default-pool-14f555fd-grp" ], "currentNodeCount": 3, "location": "us-central1", "conditions": [  {   "message": "[INVALID_FIELD_VALUE]: Instance 'gke-sb-pvt-cluster-default-pool-78b0666e-fjqd' creation failed: Invalid value for field 'resource.networkInterfaces[0].aliasIpRanges[0].ipCidrRange': '/24'. CIDR range for alias IP range must be within the specified subnetwork. (when acting as '902699685401@cloudservices.gserviceaccount.com')"  },  {   "message": "[INVALID_FIELD_VALUE]: Instance 'gke-sb-pvt-cluster-default-pool-14f555fd-p8c0' creation failed: Invalid value for field 'resource.networkInterfaces[0].aliasIpRanges[0].ipCidrRange': '/24'. CIDR range for alias IP range must be within the specified subnetwork. (when acting as '902699685401@cloudservices.gserviceaccount.com')"  }

Attaching the same error content in a TXT file as well..

my.pvt.k8s.error.txt
Uploading the above error in TXT file as well .

Hi @rajrajen-juul I believe you have an issue with your network ranges. When configuring your networks / VPCs, refer to the vpc-network documentation: https://github.com/gruntwork-io/terraform-google-network/tree/master/modules/vpc-network

Increased CIDR Block from /24 to /20
All 3 CIDR ranges are reset to  "master_ipv4_cidr_block" is "<IP_ADDRESS>/28" , "vpc_cidr_block" is "<IP_ADDRESS>/20" and "vpc_secondary_cidr_block" is "<IP_ADDRESS>/20"  and  "cidr_subnetwork_width_delta" as 4
. Its basically forced me to increase the range from /24 to /20 and hence to keep the subnets created .
Checking the GKE cluster pod / services IP Range
Then I am seeing the public-serivces is used in Terraform
    ip_allocation_policy {     cluster_secondary_range_name  = var.cluster_secondary_range_name     services_secondary_range_name = var.cluster_secondary_range_name   }
But the "public-services" in the subnet - secondary CIDR block in the Terraform Plan

Actual "Public Services" in the Network page

When I looked at cluster creation it failed with [IP_SPACE_EXHAUSTED]
(1) deploy error: Not all instances running in IGM after 1m13.055459544s. Expect 1. Current errors: [IP_SPACE_EXHAUSTED]: Instance 'gke-sb-pvt-cluster-default-pool-ade9854f-70v1' creation failed: IP space of 'projects/my-sandbox/regions/us-central1/subnetworks/sb-pvt-cl-public-services-477c216b85986fde' is exhausted. (2) deploy error: Not all instances running in IGM after 2m24.501460274s. Expect 1. Current errors: [IP_SPACE_EXHAUSTED]: Instance 'gke-sb-pvt-cluster-default-pool-78e03855-cfg8' creation failed: IP space of 'projects/my-sandbox/regions/us-central1/subnetworks/sb-pvt-cl-public-services-477c216b85986fde' is exhausted. .

Any update on this? I have the same issue

@jakesyl could you provide a bit more context? How are you using the module, what settings do you have and what exact error are you getting. Could you share your configuration, so we could try and reproduce it. Thanks!

@autero1, yeah, so the issue was just /20 restricts us to 16 vms so we had to reform the cluster with /14 and move everything over after using this to bootstrap our initial cluster

Apologies for the delay in responding to this issue. Please see below:
Sunset notice
We believe there is an opportunity to create a truly outstanding developer experience for deploying to the cloud, however developing this vision requires that we temporarily limit our focus to just one cloud. Gruntwork has hundreds of customers currently using AWS, so we have temporarily suspended our maintenance efforts on this repo. Once we have implemented and validated our vision for the developer experience on the cloud, we look forward to picking this up. In the meantime, you are welcome to use this code in accordance with the open source license, however we will not be responding to GitHub Issues or Pull Requests.
If you wish to be the maintainer for this project, we are open to considering that. Please contact us at<EMAIL_ADDRESS>


What is feature transformation net?

you said on paper "the decoder can be further divided in to a feature transformation net and a classifier"
In my thought, ASPP is classifier which is layer5 in this code. But I don't know what is feature transformation net.

Hi,
ASPP module is embedded in 'self.layer5' from your code if there's no misunderstanding, and there are a set of layers (conv layers, relu layers, etc.) in 'self.layer5'. Actually, the 'classifier' I mentioned in the paper refers to only the last convolution layer. The features which are used to calculate 'anchors' (after 'f_D') are those just before the last convolution layer.
So maybe you need to decomposite 'self.layer5' to better understand the CAG method.

Thanks for response!
This code is from AdaptSegNet
https://github.com/wasidennis/AdaptSegNet/blob/master/model/deeplab.py

In this code, layer 5 only consists of ASPP.
Is this different from your decoder part?

Hi, sorry for the delay. There are some differences in the way of implementation from mine. But you can still implement the CAG method in your code if you want, and I'm quite sure you will see a performance increase.

Thanks! When will be the code be released?


[DT-691]Add missing non hierarchy concepts in data

Added the following to the underlays:

Entity:

cpt4NonHierarchyConcept
icd9cmNonHierarchyConcept
icd9procNonHierarchyConcept
icd10cmNonHierarchyConcept
icd10pcsNonHierarchyConcept

EntityGroup

cpt4NonHierarchyPerson
icd9cmNonHierarchyPerson
icd9procNonHierarchyPerson
icd10cmNonHierarchyPerson
icd10pcsNonHierarchyPerson
Tested by deploying AoU-integrated tanagra to local docker container

CPT4 NonHierarchy

ICD9CM NonHierarchy

ICD9Proc NonHierarchy

ICD10CM NonHierarchy

ICD10PCS NonHierarchy

After talking to @freemabd I am in agreement that we should wait on this till we have a real need to mitigate source-concepts that are missing from tanagra indexing build and find a different solution to include those missing concepts at later date.   Hence closing this PR


28 create a graphical output

Description
Plotting size estimations based on media property.

@AbdulBasitA revert the changes in __main__.py file. Those changes are tracked in #26

Overriden by #35


[BUG] Videoclips  are too short for the actual script and stop at a still image.

Describe the bug
In a video I generated most of the clips are too short and stop playing although the text/voice continues. Only after a new "paragraph" a new clip is loaded. The result is a still image until the paragraph is finished.
Expected behavior
The next clip is played when the previous one finishes instead of just stopping at a still image.
Screenshots
Sample video:
https://drive.google.com/file/d/1h_MSsMkskG3aUy775u0MRUgSiNBLQwO1/view
Desktop (please complete the following information):

OS: Windows
Browser Firefox
Python Version 3.11

Can I try to work on this?

Can I try to work on this?

Sure, I'd appreciate it as I'm low on time 🙏

I set up everything but I am having issues with the request to g4f.ChatCompletion.create(). It gives me
ClientConnectorCertificateError: Cannot connect to host chat.chatgptdemo.net:443
Any ideas why?

Found an easy solution but don't have time to test right now:
in video.py "combine_videos" where it sets the clip length, just loop the video if the clip length is shorter than what it should be.
I also found two other bugs related to this where it doesn't download 5 videos but fewer and thus not enough length in each video is available.
I can fix it tomorrow, no time to open a separate issue now.

I followed all instructions but keep getting:
[-] Error: RetryProvider failed: Gpt6: ClientConnectorCertificateError: Cannot connect to host seahorse-app-d29hu.ondigitalocean.app:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)')] Chatgpt4Online: URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)> You: ClientConnectorCertificateError: Cannot connect to host you.com:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)')] FreeGpt: ClientConnectorCertificateError: Cannot connect to host s.aifree.site:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)')] FakeGpt: ClientConnectorCertificateError: Cannot connect to host chat-shared2.zhile.io:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)')] ChatgptDemoAi: ClientConnectorError: Cannot connect to host chat.chatgptdemo.ai:443 ssl:default [Connection reset by peer] ChatgptDemo: ClientConnectorCertificateError: Cannot connect to host chat.chatgptdemo.net:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)')] ChatgptNext: ClientConnectorCertificateError: Cannot connect to host chat.fstha.com:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)')] GeekGpt: HTTPError: 521 Server Error:  for url: https://ai.fakeopen.com/v1/chat/completions
Let me know if there is a fix and I can try working on this.

Please open an issue in the xtekky/gpt4free package, as MoneyPrinter isn't related to g4f.

As @radry is pointing out, the best solution here would be to dynamically fetch enough videos to fill the audio track duration.
I did a quickfix by commenting out this line in video.py. Then the video will transition to the next as soon as it has ended.

You can modify the AMOUNT_OF_STOCK_VIDEOS constant in main.py accordingly to fetch enough videos to fill the audio track duration.
Not a very consistent approach, but better than the current implementation, in my opinion

@zanmat0
It currently makes every clip the same length and doesn't consider the real available length. I was thinking of comparing the calculated clip length with the actual video length of each clip and dynamically adjust the length of each clip depending on the actual length.
That means if a clip is too short it will play more of another one. Sounds a bit complicated though.
Your suggestion has the downside that it will only play a single clip if it's very long


introduce pronounciation guide

@rvagg Did you sign the jif CLA?

Of course.

This is a big problem for us. We are a big enterprise shop, and we would like to pronounce it "skippy." I'm afraid that unless this obvious oversight is addressed, we will be forced to fork the project.

Perhaps we can consider a dual-licensing scheme that allows for the use of "skippy", /skɪpi/, in limited circumstances.


🚀[FEA]: Improve deterministic inference UX

Is this a new feature, an improvement, or a change to existing functionality?
Improvement
How would you describe the priority of this feature request
Medium
Please provide a clear description of problem you would like to solve.
Basic deterministic inference with e2mip is rather difficult and non-intuitive for some users. I've seen multiple users give up on the tool because of it.
xarray does not support netCDF groups well, so it looks like the output data is empty when using xarray.open_dataset. The solution is to pass xarray.open_dataset(path, group="group").
Likewise, most users simply want to run a deterministic forecast with a few output fields. This is too difficult to do right now, and requires a configuration like this:
    config_dict = {
        "simulation_length": nt,
        "weather_event": {
            "properties": {
                "name": "Globe",
                "start_time": "2018-01-02 00:00:00",
                "initial_condition_source": "cds",
            },
            "domains": [
                {
                    "name": "global",
                    "type": "Window",
                    "diagnostics": [{"type": "raw", "channels": ["t2m", "z500"]}],
                }
            ],
        },
        "output_path": output_path,
        "weather_model": "this value is overrided",
        "output_frequency": 4,
    }

Perhaps we could a simple convenience function for deterministic forecasts:
def run_deterministic(time_loop, data_source,  length: datetime.timedelta, channels: list[str], output_path: str, frequency: datetime.timedelta):

Describe any alternatives you have considered
No response

Could just add these options to run_basic_inference.


Create a notebook index in the README

Feedback has been received that it's hard to find a notebook without clicking into it and viewing the contents.
Although there is a curated list at https://cloud.google.com/vertex-ai/docs/tutorials/jupyter-notebooks?hl=en, it does not include all official notebooks and people might not know about that link.
An effort to add an index to this repo should be explored.

One proposal is to auto-generate an index based on a particular marked cell in each ipynb file.

@andrewferlitsch AFAIK you are doing some work that will mitigate this. Let me know if I should reassign.

Work in progress and being evaluated by TW. Next will be a draft updated content strategy proposal that will supercede this issue.

work in progress

This task was completed


query(terraform): ca_certificate_identifier_is_outdated

Platform
Terraform
Provider
AWS
Description

Version: v1.7.6
Platform: Linux/Mac

Hi folks, it seems that ca_certificate_identifier_is_outdated query is causing a false positive result because it checks only one possible result value rds-ca-2019. According to the latest AWS recommendations, CA certificates Identifier should be updated to one of the newest version due to the upcoming expiration of rds-ca-2019.
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html

Hi @gabriel-cx,
Thank you for the quick fix!


Split up functions with behaviors dependent on the presence of keyword arguments for efficiency

This would avoid unnecessary branching (checking for the presence of the argument) and allow for better optimization, especially if only positional arguments are allowed. Some examples are consume and count_items. I propose to split these into separate functions: consume to advance and consume, and count_items to count_items, count_items + filter, and count_items + filter_eq.

The reason they are not split up was because I could simply re-use the same code and branch-prediction makes the branches much less costly. However I can see the point, especially because the splitted functions could have more descriptive names.
For the purpose of optimization, do you have any example(s) that you found were too slow or should be faster? It would make it easier to test/benchmark alternative approaches.
And thank you for raising the issue!

I haven't actually used this at all yet 😂. I just noticed this and was looking through the code a bit. I can work on a PR if you're interested when I get a chance. Also, shared portions can be moved to their  own functions. Keyword arguments should be allowed, even for single-argument functions, right?

I haven't actually used this at all yet 😂. I just noticed this and was looking through the code a bit

😄

I'm definitely interested in how these splitted-up functions would perform performance-wise. I'm not sure if it's worth the effort though. It's a bit of a trade-off between API surface and discoverability vs. performance vs. convenience vs. good names. But if it doesn't really improve the performance I don't know if it's worth changing the API and refactoring the internals. I'm not sure how many people use the library but making backwards-incompatible changes seems like an ideal way to annoy people using the library (if any). 😄
But if you like to make a PR or triage the performance of alternative approaches then I would be really interested!

Keyword arguments should be allowed, even for single-argument functions, right?

Ideally yes.

As for backwards compatibility, one option is to just come up with new names for the split-up versions. As for keyword arguments, AFAIK it's somewhat faster not to allow them, especially for single-argument functions, but it may or may not be worth the reduced usability. I'll just leave them as-is.

I'm trying to decide what I think of all_monotone. I dislike optional boolean parameters: If you want the default, should you state so explicitly? Not specify would lead to inconsistency between the default and its opposite. Specifying would lead to redundancy and would render the default pointless. It's too late to change now, though... In this case, to me, not specifying decreasing should mean that either is fine, not that it has to be increasing. I guess just leaving it is probably the best option at this point... Or perhaps a new function called is_monotone (which sounds slightly better to me) could be created, deprecating all_monotone, with decreasing defaulting to None, meaning that either direction is fine (and perhaps being changed to increasing, so that 1/True signifies increase, and 0/False signifies decrease), and strict either being required or staying as-is and defaulting to False?

As for backwards compatibility, one option is to just come up with new names for the split-up versions.

Yeah, that's probably the way to go.

As for keyword arguments, AFAIK it's somewhat faster not to allow them, especially for single-argument functions

That's true, however it's almost always unnecessary optimization for functions processing iterables. It makes sense if the function is always O(1) because then constant factors matter more. However I don't have strong evidence to back this up - so I may be wrong!

I dislike optional boolean parameters: If you want the default, should you state so explicitly?

I can see the point but this function was conceived as is_sorted equivalent (which explains the defaults) but with added options. I probably should've used is_sorted as name and made the keyword name reversed. 🤷♂
That's actually my first own single-maintainer package and so it really doesn't surprises me that I made questionable API decisions. 😄

List of proposed changes:

all_monotone(iterable, decreasing=False, strict=False) to is_monotone(iterable, /, *, increasing=None, strict=False)
chained(*funcs, /, reverse=False, all=False) to:

compose(*funcs, /, *, left_inner=False) and/or pipeline(*funcs, /, *, left_inner=True)
call_multiple(*funcs, /), which can either take 2 or more values as separate arguments, or take a single iterable, and returns a function that takes any number of positional and/or named arguments, and returns an iterable (to allow an infinite iterable of functions).

combinations_from_relations(dictionary, r) to combinations_from_relations(dictionary, r=None)
consume(iterator, n) to:

consume_all(iterator) or advance_to_end(iterator)
advance(iterator, n)

Also, some functions had incorrect argument specifications for optional arguments are different: accumulate, argmax, argmin, combinations_from_relations, consume, groupedby, grouper, minmax, nth.
There are also various functions that violate the SRP by adding keyword arguments to do additional things that could also be done with function composition, for possible, marginal speed and readability improvements (Coconut would solve the readability problems): argmax, argmin, argsorted, count_items, groupby, nth, sideeffects.
Why is nth partially curried and why is it the only one? Why not just use functools.partial?
Why are random_product and repeatfunc documented as taking variable keyword arguments?
Isn't return_identity just identity?
Is there any pattern for when underscores are used in function names?
As for the questionable API decisions, if there are enough of them, you could consider making a fork of it with a related name. (iteration_utilities_2?)

I'm sorry that I haven't answered until now.

Also, some functions had incorrect argument specifications for optional arguments are different:  [...]

I had a quick look and I'm not sure what you mean. Could you add at least one example where these are different so that I can fix it?

There are also various functions that violate the SRP by adding keyword arguments to do additional things that could also be done with function composition

Yes, that's true. But I found that some compositions are tricky to get right or I had a use-case for this particular combination (and needed fast performance). I'm not particularly keen on changing these just for the sake of SRP.

Why is nth partially curried and why is it the only one?

Because I had first and last before I added nth. By making it "curried" I could keep the API.

Why are random_product and repeatfunc documented as taking variable keyword arguments?

What do you mean with variable keyword arguments?

Isn't return_identity just identity?

Yep.

Is there any pattern for when underscores are used in function names?

No, I haven't thought about this yet 😅

As for the questionable API decisions, if there are enough of them, you could consider making a fork of it with a related name. (iteration_utilities_2?)

Well, in theory this package is still alpha/beta because I never released a 1.x. However I wouldn't break API without a good reason - deprecation and renaming is easy enough to do without the need for breaking APIs or forking the library.
By the way: Thanks a lot for the assessment.
I would be especially interested in clarification on the documentation problems, if the docs are unclear or something is buggy that's something I want to fix fast. I do need some more time to think about ways to deal with the API changes. If you want to make one or multiple PRs (in case: keep them one issue for each PR) I'm very happy to review these, but don't feel pressured.

Also, some functions had incorrect argument specifications for optional arguments are different: [...]
I had a quick look and I'm not sure what you mean. Could you add at least one example where these are different so that I can fix it?

I think that was typoed. What I meant is that either:

Specifying the default has a different behavior from omitting the argument. (E.g. accumulate's start parameter.)
The argument is optional but not documented as such in the argspec. (E.g. argmin's key and default parameters.)

Parameters for which specifying a particular value is equivalent to not specifying the argument at all should use name = default. Parameters for which there is no value that can be specified that would have identical behavior to not specifying any should use [name].

Why are random_product and repeatfunc documented as taking variable keyword arguments?
What do you mean with variable keyword arguments?

https://docs.python.org/3/library/inspect.html#inspect.CO_VARKEYWORDS

inspect.CO_VARKEYWORDS
The code object has a variable keyword parameter (**kwargs-like).

I was wondering why repeatfunc's times and random_product's repeat are documented as being **kwargs-like: **times and **repeat. Arguments after * or *args are keyword-only, which I guess is what you were trying to document.

I would be especially interested in clarification on the documentation problems, if the docs are unclear or something is buggy that's something I want to fix fast. I do need some more time to think about ways to deal with the API changes. If you want to make one or multiple PRs (in case: keep them one issue for each PR) I'm very happy to review these, but don't feel pressured.

When I have a chance, I can submit PRs for some of these.

Parameters for which specifying a particular value is equivalent to not specifying the argument at all should use name = default. Parameters for which there is no value that can be specified that would have identical behavior to not specifying any should use [name]

Unfortunately [name] is not a valid Python signature. I already have the docstring-like signature so the C-functions are inspectable, I'm not sure if I want yet another place to put the signature.

I was wondering why repeatfunc's times and random_product's repeat are documented as being **kwargs-like: **times and **repeat. Arguments after * or *args are keyword-only, which I guess is what you were trying to document.

Yeah, unfortunately Python 2.x does not support keyword-only arguments so this is not possible. Yes, it would be time to drop Python 2.x support but I simply haven't done that (yet).

When I have a chance, I can submit PRs for some of these.

That would be great. But if you don't have the time that's also okay. I was simply curious.

Unfortunately [name] is not a valid Python signature. I already have the docstring-like signature so the C-functions are inspectable, I'm not sure if I want yet another place to put the signature.

AFAIK, the convention is used throughout the standard library for C modules. It is also used by Argument Clinic: https://docs.python.org/3/howto/clinic.html#optional-groups

To specify an optional group, add a [ on a line by itself before the parameters you wish to group together, and a ] on a line by itself after these parameters.

Yeah, unfortunately Python 2.x does not support keyword-only arguments so this is not possible.

So are you unable to put non-**kwargs parameters after *args?
Shouldn't it still be documented normally?

AFAIK, the convention is used throughout the standard library for C modules. It is also used by Argument Clinic: https://docs.python.org/3/howto/clinic.html#optional-groups

That sounds interesting, but if I remember correctly then CPython documents the function signaturs in the documentation files, it doesn't use argument clinic to generate these. And that's what I want to avoid although it could be interesting in the cases where the documented signature isn't correct.

So are you unable to put non-**kwargs parameters after *args?

Yes, that's the limitation.

Shouldn't it still be documented normally?

What do you mean by "normally" here? Do you mean generating the documentation from the real function signature? If yes, then I tend to prefer this, because it's least effort to maintain and always "correct". But I haven't really investigated this fully, there may be something obvious I'm missing.
I like that the documented signature is identical to the signature one can get at runtime through inspect.

Unfortunately [name] is not a valid Python signature. I already have the docstring-like signature so the C-functions are inspectable, I'm not sure if I want yet another place to put the signature.

That sounds interesting, but if I remember correctly then CPython documents the function signaturs in the documentation files, it doesn't use argument clinic to generate these. And that's what I want to avoid although it could be interesting in the cases where the documented signature isn't correct.

I like that the documented signature is identical to the signature one can get at runtime through inspect.

Yeah, apparently a lot of builtins aren't inspectable, even in Python 3. I do feel like it's better to have missing introspection than incorrect introspection, though.

Yeah, unfortunately Python 2.x does not support keyword-only arguments so this is not possible. Yes, it would be time to drop Python 2.x support but I simply haven't done that (yet).

Many library authors have pledged to drop Python 2 support sometime before 2020-01-01. https://python3statement.org/ I am basically ignoring Python 2 (and even older versions of Python 3) when I write my code. It's up to you to decide, though.

Hey @sollyucko and sorry for the long delay.
You made some very good points and made me aware of several of the problematic decisions I have made when I started the project. However I am currently more inclined to keep the library as it is and avoid deprecations or other version-related problems with users for now.
Thank you for bringing this up 👍


Removed note about Microsoft Storage Explore

Removed note about Microsoft Storage Explore as it now supports login to Azure Gov.

@sdubeymsft,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

@sdubeymsft : Thanks for your contribution to the Azure documentation! The author, @ryansoc, has been notified to review your proposed change.


Improvements to Arbitrary Hotkeys repository

I've improved the arbitrary-hotkeys.js file with a well-detailed header and made a little bit of changes. I've written a completely new README for the repository, based on this, this and this READMEs, also based on this cool guidelines.
I saw on the Internet many websites that gathers lots of jQuery plugins, and many of them accepts new requests of jQuery plugins hosted on GitHub. We could do this! Increase the popularity (stars) of the repository!
Warning
The GIF image shown in README is located in a folder inside Wiki repository, so if you merge this Pull Request, the image probably won't be shown (broken link)!
To avoid this, merge commits between repositories using this tutorial.
There are two ways to merge commits between Wiki repositories shown in the tutorial. The second one it's easier and it seems it will work:
git clone https://github.com/Yuri-M-Dias/arbitrary-hotkeys.wiki.git
cd arbitrary-hotkeys.wiki.git
git pull https://github.com/gustavosotnas/arbitrary-hotkeys.wiki.git master
git push origin master
If won't work, try the first method on the tutorial. :+1:

Nice. Seems pretty organized like this, you really made a nice job. The initial way that i thought about it was quite clunky, but this one seems to work. LGTM!


Update evaluation order on D&D

When D&D is complete, be sure to calculate the new evaluation order. For this, you will need to know the evaluation order of the entry before/after the target area, and subtract/add 1 from/to the new entry.
A - 1
B - 2
C - 3
Dragging B could result into:
A - 1
C - 3
B - 4
or
B - 0
A - 1
C - 3
Negative results, or those that are greater than<PHONE_NUMBER> are not allowed. So disable the drop target if it results into a bad order.

On the drop, you'll need to contact the server of course to make the change and persist it. The server will tell you if it could, so you can render the result and present a message to the user, etc.

"Negative results, or those that are greater than<PHONE_NUMBER> are not allowed. So disable the drop target if it results into a bad order."
I'll check, but pretty sure the sorting is 0- or 1-based as the root and part of the A/C is that there should only be about 15-20 of these, not more; was important since I was considering pagination for the page. Will try to keep this in mind for the validation of the form's evalOrder field though.

Just pointing this out, but this Issue contradicts #11, which I didn't realize until after my commit and was looking for more to knock out. =P

So documenting the summary of our discussion for record keeping:
Evaluation Order should not be listed on the dashboard; because services are auto sorted by evaluation order when you retrieve them. So the fact that they are visually ordered should suffice, I hope. You nonetheless always get the evaluation order in the payload. Just dont render is, and solely use/update it for D&D.
I dont think the UI has any options for sorting by other cols, which is fine. Not needed in fact.

This isn't quite right yet; because it seems like you're changing two entries. The entry that is being moved changes, and the its neighbor. This may not work because you'll end up sending two calls to the server to update both. Is that what you had in mind?
Note that evaluation orders do not have to be unique. Two entries could both have the same evaluation order. So if you move an entry and that move results into getting the same evaluation order as some other entry because ur calc made it so, that's fine.

... The purpose of the drag-and-drop (DaD) isn't valid then (in my opinion) if they need the ability to have over-lapping evalOrder values though it since the DaD orders a list sequentially, there is no sharing of the same positioning. As for what DaD is doing, it is not changing just two values, it is currently changing the value of all entries in the sorting list.

Having two entries with the same evaluation order is definitely a bad idea, but it's technically possible and isn't considered a technical error, more like a logical "this doesn't make sense and can lead into weird behavior" error. That said, I definitely dont think you should change all entries in the list. You should only take note of the drop target's entries and update that entry with respect to the previous/next entry (as my example above feebly attempts to demonstrate) If the result is duplicate eval orders, so be it. Let the adopter fix that. At the end, only one call should be made to the server for the entry that is actually being moved.

At the end, only one call should be made to the server for the entry that is actually being moved.

Why? If it is a performance issue, we can cut back the entries send for updating to only ones with values changed - http://stackoverflow.com/questions/16894148/detect-if-element-position-was-changed-in-jquery-ui-sortable.
There are still several problems with what you've mentioned you want: the positioning is still integer based, so if you drag an entry between two items (let's say dragging 5 between 2 and 3), then the list cannot make the previously no.5 item now be 2.5, nor 2 or 3 since those spots are unique entries - like array indexing, but the values only accept a single, non-complete item.

That might work; I am just you may want to delegate all that work to the user, but it can be made to work so you only send updates for the entries that changed, then no problem.


Avoid sa_column where possible

It can cause programmer errors like in #235.

[ ] DECIMAL: https://sqlmodel.tiangolo.com/advanced/decimal/#decimals-in-sqlmodel
needed for DateTime(timezone=True): https://github.com/tiangolo/sqlmodel/issues/539

TBD:

JSON https://github.com/tiangolo/sqlmodel/issues/42
DateTime(timezone=False) (maybe better to stay consistent with DateTime(timezone=True))

When making changes to Decimal in #238, we had changed the type annotation from Decimal to our custom type FLOAT_DECIMAL https://github.com/open-contracting/credere-backend/pull/238/commits/56ea76a2ff1919637458d5f4b8e5e017eaf1856a, based on this documentation: https://docs.pydantic.dev/latest/api/standard_library_types/#decimaldecimal
Relevant comments:

https://github.com/open-contracting/credere-backend/pull/238#issuecomment-1854577223
https://github.com/open-contracting/credere-backend/pull/238#issuecomment-1854609403


The specified resource does not exist - There is no resource of type 'appPrices' with id

The specified resource does not exist - There is no resource of type 'appPrices' with id

Please re-open your issue with a fully filled out issue template as the community will otherwise not be able to help you.


[MAUI][ANDROID] Page's BindingContext Does Not Work Wih The First Tab

Platform (please complete the following information):
OS: [Android]
Device: Tab Active 3 [Android API Level 31]
Sdk Version: Min: 30 Target: 34
MAUI: [NET 8.0][8.0.91]
Bindings on the first tab aren't functioning. Tab 2, 3, etc the bindings work with the bindingcontext of the page's view model. For the first tab however, buttons, label text bindings, etc aren't linked to the page's view model. I use the mauicommunitytoolkit.mvvm package to handle the bindingcontext link.
This issue was introduced after the fix for this issue (https://github.com/roubachof/Sharpnado.Tabs/issues/127#)
I'm currently on sharpnado.tabs 3.1.1
To Reproduce
Steps to reproduce the behavior:

Create an app with the Tabs control (3+ tabs). Add a view model binding for the page containing the tab control.
On each of the tabs, add a button and a label. bind the button command to a relaycommand and the label title to a string property in the view model. I had the button just update the label text's bound property.
Run the app and navigate to the page with the tab control
You'll notice on the first tab, tapping the button does not trigger the relaycommand in the view model and the label is not updated either. navigating to the other tabs, the bindings work fine (button command is triggered and the label is updated)

Expected Behavior: Bindings on the first tab should work

Need a repro app for that fix

Repro:
https://github.com/sk1llsh0t/TabVmBindingRepro
When app loads, if i tap the button on the Tab A view, nothing happens. If i go to tab b or c and tap the button, it updates the page label and the label in the tab. go back to tab a and tap the button again, it still doesn't update either label. The relaycommand the button is bound to isn't fired.
This is also the case if tab b is the default selected tab when the page loads. tab b button binding doesn't work but tab a and tab c work.
so it is really whichever tab is first to load when the page loads has the issue. not necessarily the first tab in the tabhostview if that makes sense.

Thank you for the repro! Will look into that tomorrow

fixed by v3.2.0

When will it be uploaded to nuget.org?

Lol I forgot to upload the nuget
Le jeu. 24 oct. 2024, 14:25, sk1llsh0t @.***> a écrit :

When will it be uploaded to nuget.org?
—
Reply to this email directly, view it on GitHub
https://github.com/roubachof/Sharpnado.Tabs/issues/132#issuecomment-2435152654,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAERXJ2XLFUHFJQ6A4K6M4TZ5DRKPAVCNFSM6AAAAABQPCE4V6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMZVGE2TENRVGQ
.
You are receiving this because you modified the open/close state.Message
ID: @.***>


Typescript : Typed props are cast to Object instead of keeping orignal class instance (Only ssr, spa works fine)

Steps to reproduce
Running with nuxt typescript ans ssr enabled.
Create a component with Prop input
 export default class CarouselListItem extends Vue {       @Prop({ type: Film, required: true }) film!: Film }
--> film is type Film -> On SPA only this works fine. The Film is well passed
What is Expected?
Input is instance of Film.
What is actually happening?
When running nuxt dev with ssr enabled, the prop is cast to Object.
Then I can't manipulate the Film object. I have to recast it into a new Film object.

Ok I'm sorry I didn't see you replied.
I'm managed reproducing my problem. Which I don't know if it is a bug but is at least annoying.
So : https://codesandbox.io/s/fervent-snowflake-9dlgt?file=/pages/index.vue
As you can see, arrays of Test are cast to Array of Object. Then I can't use Test(s) methods and functions.
SSR : Is Array of Test
Client: is Array of Object

Is it because of the serialization of objects ?

@azpery Yes, that's right. You won't be able to deserialise a stringified class and get out an instance - of the same class, out of the box. You would have to normalise it yourself (perhaps using a computed property?).

@danielroe thanks a lot for replying and for your time.
I think the hybrid system client/server is awesome but this only brings weird bugs when integrating Nuxt. I don't if I'm the only developper manipulating custom objects but as Nuxt supports Typescript and types in general, do you know if this feature is planned?
At the end I think for the moment we can manage using Objects.

@azpery Yes, that's right. You won't be able to deserialise a stringified class and get out an instance - of the same class, out of the box. You would have to normalise it yourself (perhaps using a computed property?).

Any example on YOUR computed property?


[v0.5.0] oidc error

After plugin upgrade from 0.4.0 to 0.5.0 i got the following error when i want to use the kubectl rook-ceph plugin
Error: no Auth Provider found for name "oidc"

Maybe someone can help here?

@HaveFun83 what command you were trying to run?

I tried: kubectl rook-ceph ceph status
Cluster: On-Prem kubeadm v1.26.5
I manually rolled back to plugin v0.4.0 and everything is working again.

We use keycloak as odic provider to authenticate our user (kubectl) against the kubernetes api.
https://kubernetes.io/docs/reference/access-authn-authz/authentication/#option-1-oidc-authenticator

@subhamkrai thank you so much. Works like a charm :rocket: :1st_place_medal:

@subhamkrai thank you so much. Works like a charm 🚀 🥇

Good to know it is working 🙂


Support for displaying SVG wrapped in HTML

HTML support enables interactive features in more tools (e.g. Pluto.jl).
On the other hand, depending on the environment (e.g. Jupyter+IE11), the display may not be the same as the current SVG version.
This also fixes the showable to avoid displaying the configuration as an SVG.

Codecov Report

Merging #50 into master will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##            master       #50   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            2         2
  Lines          155       162    +7
=========================================
+ Hits           155       162    +7

Impacted Files
Coverage Δ

src/ProfileSVG.jl
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8789b76...90a2537. Read the comment docs.

Note that ProfileSVG and Gadfly's SVGJS backend use the same background technology, so ProfileSVG has the same problems as what I wrote in https://github.com/fonsp/Pluto.jl/issues/546.
(Pluto's reactive mechanism and Julia's profiling mechanism are a bit incompatible, though. However, it's better to be able to use it than not.)

(Pluto's reactive mechanism and Julia's profiling mechanism are a bit incompatible, though. However, it's better to be able to use it than not.)

Hi! I was curious about how they are incompatible. Could you expand more on this? Thanks

The profile data will not be updated when the code or data changes. It would be technically possible to re-run the profiling after each change, but I think it would be annoying that the old plofile data are automatically dropped.


Grid: Export to excel

It will be nice if Grid data can be exported to Excel.

https://github.com/vikramlearning/blazorbootstrap/discussions/634


Update Cube Versions

Closes  #76
Closes #116
Also implements changes related to how cubes are marked as expired.

Going to merge, so it's ready to test. Opened another issue #143 for adding tests.