Modernize project: update all dependencies to current versions#113
Open
discostur wants to merge 4 commits into
Open
Modernize project: update all dependencies to current versions#113discostur wants to merge 4 commits into
discostur wants to merge 4 commits into
Conversation
- Node.js 14 → 20, TypeScript 3.8 → 5.7, Electron 13 → 34 - Webpack 4 → 5 with ts-loader, asset modules, updated plugins - Replace node-sass with sass (dart-sass) - React Router 5 → 6 (withRouter → hooks, Routes/element API) - Replace TSLint with ESLint + TypeScript/React plugins - Update Husky 1 → 9, Prettier 2 → 3 - Update electron-builder 22 → 25, electron-settings 3 → 4 - Update electron-log 4 → 5, @electron/remote 1 → 2 - Replace XMLHttpRequest with fetch() in GithubService - Convert class components to functional (AddSecretPage, PasswordHealthPage, TreeComponent) - Replace electron-mock-ipc with custom EventEmitter-based mock - Update GitHub Actions: checkout@v4, setup-node@v4, Node 20 - Remove deprecated deps: node-sass, awesome-typescript-loader, react-hot-loader, spectron, tslint, file-loader, etc. - Fix all ESLint errors, update docs Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…lewares - Change fix-path import to default import (esModuleInterop compatibility) - Replace onBeforeSetupMiddleware with setupMiddlewares (webpack-dev-server v5) - Remove redundant HotModuleReplacementPlugin (hot:true enables it) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Always expand top-level store folders so tree isn't blank on initial load (previously collapsed when >15 secrets, making it appear empty) - Fix 'Cannot create property on string' error when a secret path is both a leaf and a directory prefix (e.g. 'store/foo' and 'store/foo/bar') Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Author
Author
|
Could anybody from the maintainers have a look please? |
|
Looks like the project is dead? |
Author
|
Looks like it's dead, yes ... :/ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR modernizes the entire gopass-ui project so it builds and runs again on current systems (macOS, Node 20+). The project was stuck on Node 14 / Electron 13 / Webpack 4 era dependencies and could no longer be installed or built.
Changes
Build Toolchain
webpack-mergev6)file-loader,image-webpack-loader,source-map-loaderwebpack-dev-serverv5 config (onBeforeSetupMiddleware→setupMiddlewares)Electron
remoteMain.enable()per window)get()/set()→getSync()/setSync())WebPreferences:enableRemoteModule,worldSafeExecuteJavaScriptelectron-devtools-installer(no longer needed)React Ecosystem
<Routes>/<Route element>API, replacedwithRouterHOC withuseNavigatehook)AddSecretPage,PasswordHealthPage,TreeComponentreact-keyboard-event-handlerimport foresModuleInteropcompatibilityLinting & Tooling
@typescript-eslint+ React/React Hooks plugins.husky/directory format)tslint:disablecomments, fixed all ESLint errorsCode Quality
XMLHttpRequestwithfetch()inGithubService.tselectron-mock-ipc(broken) with custom EventEmitter-based IPC mockfix-pathimport foresModuleInterop(was causingfixPath is not a functionat runtime)Bug Fixes
store/fooandstore/foo/bar), the tree builder would throwCannot create property on string. Now handles this gracefully.CI / GitHub Actions
actions/checkoutv2 → v4,actions/setup-nodev2 → v4samuelmeuli/action-electron-builder@v1with directelectron-buildercommandsnpm run lintstep to CIDocumentation
docs/development.mdwith current prerequisites, ESLint/Prettier/Husky instructionsVerification
npm installsucceedsnpm run buildsucceeds (all 3 webpack targets: main, renderer-explorer, renderer-search)npm run lintpasses (0 errors, 11 pre-existing warnings)npm testpasses (38/38 tests, 3 snapshots)npm startand dev mode)Notes
react-materializev2.6.0 doesn't support React 18. Upgrading to v3.x would requireInput→TextInputAPI migration across many components.@electron/remotekept — removing it would require a full IPC/contextBridge rewrite.contextIsolationremainsfalse— enabling it properly requires preload scripts; deferred for a future PR.fix-pathpinned at v3 — v4 is ESM-only and incompatible with the current CJS webpack setup.