v4.0.0
What's Changed
- Updated
package.json
engines
minimum requirements to include Yarn 3 (>=3.5.0
) and Node 18 (>=18.0.0
) for improved performance, betternode_modules
resolvers, updated V8 JavaScript engine, and globalfetch
enabled by default. - dnd kit replaces React DnD for performant drag-n-drop operations; including smooth dragging in and out of Stack components, consistent dragging with multiple cards present on canvas, and additional new features (i.e. bounded dragging, sorted cards within Stacks, etc.).
- TypeScript updated to TypeScript 5.0 which includes new decorators standards, added functionality to better support ESM projects in Node and bundlers, and the new
extends
keyword. - React updated to React v18.0 which includes automatic batching, new APIs like
startTransition
, streaming server-side rendering with support forSuspense
, and a new concurrent renderer that enables catching rendering errors with an error boundary. - Electron updated to Electron 25.0.0 which includes upgrades to Chromium
114
, V811.4
, and Node.js18.15.0
. This update also implementsnet.fetch
within Electron'snet
module, using Chromium's networking stack (this differs from Node'sfetch()
, which uses Node.js' HTTP stack), and addsprotocol.handle
to replace the deprecatedprotocol.{register,intercept}{String,Buffer,Stream,Http,File}Protocol
. - Material UI updated from Material UI v4 to v5 which includes replacing JSS for Emotion as the default styling solution, support for React 18, and minimum bundled version requirements of Node 12, React 17, and TypeScript 3.5.
- Removal of
Cache
objects within the Redux store to reduce memory overhead and disk thrashing when projects containing git repositories with lots of branches and commits are loaded. - Introduction of
Commit
objects within the Redux store to centralize the management of git commit state across branches as they are loaded into theGitGraph
visualization. - Expanded functionality within
GitGraph
to include context menus for checking out at specific commits/branches, staging/unstaging changes within branches, committing/reverting changes within branches, resolving merge conflicts, and deleting branches. - Fail only on error messages in
stderr
output stream forcloneRepo
command by @nelsonni in #970 - Resolve hierarchical grouping in branch names for
listBranch
command by @nelsonni in #977 - Consolidate branch merging into
Branch
objects to maintain consistentunmerged
status information by @nelsonni in #1028 - Remove unnecessary
RootState
typing when callinguseAppSelector
by @nelsonni in #1029 - Bump
actions/checkout
from v2 to v3 by @nelsonni in #1030 - Bump
actions/setup-node
from v2 to v3 by @nelsonni in #1031 - Use
createAsyncThunk.withTypes<>()
from RTK 1.9 for pre-typedcreateAsyncThunk
by @nelsonni in #1056 - Process
MergeOutput
to handle successful, failed, and halted merges by @nelsonni in #1059 - Prune stale linked worktrees in
buildRepo
to preventENOENT
errors when loading root directories by @nelsonni in #1060 - Enable ESLint
@typescript-eslint/naming-convention
rules by @nelsonni in #1061 - Migrate
react-flow-renderer
v10 toreactflow
v11 for consistent graph construction inGitGraph
by @nelsonni in #1080 - Fix/serializable state invariant perf by @nelsonni in #1151
- Replace
uuid
package with built-inCrypto
library for generating UUIDs by @nelsonni in #1152
Chores
@electron-forge/*
to 6.3.0@testing-library/dom
to 9.3.1@testing-library/jest-dom
to 6.0.0@testing-library/react
to 14.0.0@typescript-eslint/eslint-plugin
to 6.4.0@typescript-eslint/parser
to 6.4.0css-loader
to 6.8.1electron
to 25.5.0electron-devtools-installer
to 3.2.0eslint
to 8.47.0eslint-config-prettier
to 9.0.0eslint-plugin-import
to 2.28.0eslint-plugin-jsdoc
to 46.4.6eslint-plugin-testing-library
to 6.0.0fork-ts-checker-webpack-plugin
to 8.0.0jest
to 29.6.2jest-environment-jsdom
to 29.6.2pako
to 2.1.0prettier
to 3.0.1style-loader
to 3.3.3ts-jest
to 29.1.1ts-loader
to 9.4.4ts-node
to 10.9.1typescript
to 5.1.6unionfs
to 4.5.1validator
to 13.11.0webpack
to 5.88.2@dnd-kit/core
to 6.0.8@dnd-kit/modifiers
to 6.0.1@dnd-kit/sortable
to 7.0.2@emotion/react
to 11.11.1@emotion/styled
to 11.11.0@mui/icons-material
to 5.14.3@mui/lab
to 5.0.0-alpha.140@mui/material
to 5.14.5@reduxjs/toolkit
to 1.9.5clsx
to 2.0.0dot-prop
to 8.0.2ignore
to 5.2.4ini
to 4.1.1isomorphic-git
to 1.24.5luxon
to 3.4.0re-reselect
to 4.0.1react
to 18.2.0react-dom
to 18.2.0react-error-boundary
to 4.0.11react-redux
to 8.1.2react-use
to 17.4.0reactflow
to 11.8.1redux
to 4.2.1redux-logger
to 3.0.6reselect
to 4.1.8semver
7.5.4use-callback-ref
to 1.3.0
Full Changelog: v3.2.0...v4.0.0