chore: bump electron (#13935)

fix #13647

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Release Notes

* **Chores**
* Updated development tooling and build dependencies to latest stable
versions
  * Increased minimum Node.js requirement to version 22
  * Updated macOS deployment target to version 11.6
  * Enhanced type safety and error handling in build processes
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
DarkSky
2025-11-15 15:52:04 +08:00
committed by GitHub
parent 17ec76540b
commit 46e7d9fab7
11 changed files with 722 additions and 428 deletions

View File

@@ -19,7 +19,7 @@ env:
APP_NAME: affine APP_NAME: affine
AFFINE_ENV: dev AFFINE_ENV: dev
COVERAGE: true COVERAGE: true
MACOSX_DEPLOYMENT_TARGET: '10.13' MACOSX_DEPLOYMENT_TARGET: '11.6'
DEPLOYMENT_TYPE: affine DEPLOYMENT_TYPE: affine
AFFINE_INDEXER_ENABLED: true AFFINE_INDEXER_ENABLED: true

View File

@@ -25,7 +25,7 @@ env:
RELEASE_VERSION: ${{ inputs.app-version }} RELEASE_VERSION: ${{ inputs.app-version }}
DEBUG: 'affine:*,napi:*' DEBUG: 'affine:*,napi:*'
APP_NAME: affine APP_NAME: affine
MACOSX_DEPLOYMENT_TARGET: '10.13' MACOSX_DEPLOYMENT_TARGET: '11.6'
jobs: jobs:
before-make: before-make:
@@ -466,6 +466,4 @@ jobs:
draft: ${{ inputs.build-type == 'stable' }} draft: ${{ inputs.build-type == 'stable' }}
prerelease: ${{ inputs.build-type != 'stable' }} prerelease: ${{ inputs.build-type != 'stable' }}
tag_name: v${{ env.RELEASE_VERSION}} tag_name: v${{ env.RELEASE_VERSION}}
files: | files: ./release/*
./release/*
./release/.env.example

View File

@@ -68,7 +68,7 @@
"@vitest/coverage-istanbul": "3.1.3", "@vitest/coverage-istanbul": "3.1.3",
"@vitest/ui": "3.1.3", "@vitest/ui": "3.1.3",
"cross-env": "^7.0.3", "cross-env": "^7.0.3",
"electron": "^35.0.0", "electron": "^36.0.0",
"eslint": "^9.16.0", "eslint": "^9.16.0",
"eslint-config-prettier": "^10.0.0", "eslint-config-prettier": "^10.0.0",
"eslint-import-resolver-typescript": "^4.0.0", "eslint-import-resolver-typescript": "^4.0.0",

View File

@@ -36,17 +36,17 @@
"@affine/i18n": "workspace:*", "@affine/i18n": "workspace:*",
"@affine/native": "workspace:*", "@affine/native": "workspace:*",
"@affine/nbstore": "workspace:*", "@affine/nbstore": "workspace:*",
"@electron-forge/cli": "^7.6.0", "@electron-forge/cli": "^7.10.2",
"@electron-forge/core": "^7.6.0", "@electron-forge/core": "^7.10.2",
"@electron-forge/core-utils": "^7.6.0", "@electron-forge/core-utils": "^7.10.2",
"@electron-forge/maker-deb": "^7.6.0", "@electron-forge/maker-deb": "^7.10.2",
"@electron-forge/maker-dmg": "^7.6.0", "@electron-forge/maker-dmg": "^7.10.2",
"@electron-forge/maker-flatpak": "^7.6.0", "@electron-forge/maker-flatpak": "^7.10.2",
"@electron-forge/maker-squirrel": "^7.6.0", "@electron-forge/maker-squirrel": "^7.10.2",
"@electron-forge/maker-zip": "^7.6.0", "@electron-forge/maker-zip": "^7.10.2",
"@electron-forge/plugin-auto-unpack-natives": "^7.6.0", "@electron-forge/plugin-auto-unpack-natives": "^7.10.2",
"@electron-forge/plugin-fuses": "^7.8.2", "@electron-forge/plugin-fuses": "^7.10.2",
"@electron-forge/shared-types": "^7.6.0", "@electron-forge/shared-types": "^7.10.2",
"@pengx17/electron-forge-maker-appimage": "^1.2.1", "@pengx17/electron-forge-maker-appimage": "^1.2.1",
"@sentry/electron": "^7.0.0", "@sentry/electron": "^7.0.0",
"@sentry/esbuild-plugin": "^3.0.0", "@sentry/esbuild-plugin": "^3.0.0",
@@ -55,12 +55,12 @@
"@types/set-cookie-parser": "^2.4.10", "@types/set-cookie-parser": "^2.4.10",
"@types/uuid": "^10.0.0", "@types/uuid": "^10.0.0",
"@vitejs/plugin-react-swc": "^3.7.2", "@vitejs/plugin-react-swc": "^3.7.2",
"app-builder-lib": "^26.0.0", "app-builder-lib": "^26.1.0",
"builder-util-runtime": "^9.2.10", "builder-util-runtime": "^9.5.0",
"cross-env": "^7.0.3", "cross-env": "^7.0.3",
"debug": "^4.4.0", "debug": "^4.4.0",
"electron": "^35.0.0", "electron": "^36.0.0",
"electron-log": "^5.2.4", "electron-log": "^5.4.3",
"electron-squirrel-startup": "1.0.1", "electron-squirrel-startup": "1.0.1",
"electron-window-state": "^5.0.3", "electron-window-state": "^5.0.3",
"esbuild": "^0.25.0", "esbuild": "^0.25.0",
@@ -79,8 +79,8 @@
}, },
"dependencies": { "dependencies": {
"async-call-rpc": "^6.4.2", "async-call-rpc": "^6.4.2",
"electron-updater": "^6.3.9", "electron-updater": "^6.6.2",
"link-preview-js": "^3.0.12", "link-preview-js": "^3.1.0",
"next-themes": "^0.4.4", "next-themes": "^0.4.4",
"set-cookie-parser": "^2.7.1", "set-cookie-parser": "^2.7.1",
"yjs": "^13.6.21" "yjs": "^13.6.21"

View File

@@ -10,7 +10,7 @@ export const electronDir = fileURLToPath(new URL('..', import.meta.url));
export const rootDir = resolve(electronDir, '..', '..', '..', '..'); export const rootDir = resolve(electronDir, '..', '..', '..', '..');
export const NODE_MAJOR_VERSION = 18; export const NODE_MAJOR_VERSION = 22;
export const mode = (process.env.NODE_ENV = export const mode = (process.env.NODE_ENV =
process.env.NODE_ENV || 'development'); process.env.NODE_ENV || 'development');

View File

@@ -1,4 +1,4 @@
import en from './en.json' assert { type: 'json' }; import en from './en.json' with { type: 'json' };
export type Language = export type Language =
| 'en' | 'en'

View File

@@ -10,7 +10,7 @@
"@affine-tools/cli": "workspace:*", "@affine-tools/cli": "workspace:*",
"@affine-tools/utils": "workspace:*", "@affine-tools/utils": "workspace:*",
"@playwright/test": "=1.52.0", "@playwright/test": "=1.52.0",
"webpack": "^5.98.0" "webpack": "^5.102.1"
}, },
"version": "0.25.2" "version": "0.25.2"
} }

View File

@@ -6,7 +6,7 @@
"private": true, "private": true,
"description": "Generate changelog from version changes", "description": "Generate changelog from version changes",
"dependencies": { "dependencies": {
"@napi-rs/simple-git": "^0.1.19", "@napi-rs/simple-git": "^0.1.22",
"@slack/web-api": "^7.8.0", "@slack/web-api": "^7.8.0",
"changelogithub": "^13.0.0", "changelogithub": "^13.0.0",
"jsx-slack": "^6.1.2", "jsx-slack": "^6.1.2",

View File

@@ -19,7 +19,7 @@
"@aws-sdk/client-s3": "^3.709.0", "@aws-sdk/client-s3": "^3.709.0",
"@clack/core": "^0.4.0", "@clack/core": "^0.4.0",
"@clack/prompts": "^0.10.0", "@clack/prompts": "^0.10.0",
"@napi-rs/simple-git": "^0.1.19", "@napi-rs/simple-git": "^0.1.22",
"@perfsee/webpack": "^1.13.0", "@perfsee/webpack": "^1.13.0",
"@sentry/webpack-plugin": "^3.0.0", "@sentry/webpack-plugin": "^3.0.0",
"@swc/core": "^1.10.1", "@swc/core": "^1.10.1",
@@ -49,7 +49,7 @@
"ts-node": "^10.9.2", "ts-node": "^10.9.2",
"typanion": "^3.14.0", "typanion": "^3.14.0",
"typescript": "^5.5.4", "typescript": "^5.5.4",
"webpack": "^5.97.1", "webpack": "^5.102.1",
"webpack-dev-server": "^5.2.0", "webpack-dev-server": "^5.2.0",
"webpack-merge": "^6.0.1" "webpack-merge": "^6.0.1"
}, },

View File

@@ -39,10 +39,12 @@ function getBaseWorkerConfigs(pkg: Package) {
]; ];
} }
function getBundleConfigs(pkg: Package) { function getBundleConfigs(pkg: Package): webpack.MultiConfiguration {
switch (pkg.name) { switch (pkg.name) {
case '@affine/admin': { case '@affine/admin': {
return [createHTMLTargetConfig(pkg, pkg.srcPath.join('index.tsx').value)]; return [
createHTMLTargetConfig(pkg, pkg.srcPath.join('index.tsx').value),
] as webpack.MultiConfiguration;
} }
case '@affine/web': case '@affine/web':
case '@affine/mobile': case '@affine/mobile':
@@ -64,7 +66,7 @@ function getBundleConfigs(pkg: Package) {
workerConfigs.map(config => config.name) workerConfigs.map(config => config.name)
), ),
...workerConfigs, ...workerConfigs,
]; ] as webpack.MultiConfiguration;
} }
case '@affine/electron-renderer': { case '@affine/electron-renderer': {
const workerConfigs = getBaseWorkerConfigs(pkg); const workerConfigs = getBaseWorkerConfigs(pkg);
@@ -87,10 +89,12 @@ function getBundleConfigs(pkg: Package) {
workerConfigs.map(config => config.name) workerConfigs.map(config => config.name)
), ),
...workerConfigs, ...workerConfigs,
]; ] as webpack.MultiConfiguration;
} }
case '@affine/server': { case '@affine/server': {
return [createNodeTargetConfig(pkg, pkg.srcPath.join('index.ts').value)]; return [
createNodeTargetConfig(pkg, pkg.srcPath.join('index.ts').value),
] as webpack.MultiConfiguration;
} }
} }
@@ -174,10 +178,12 @@ export class BundleCommand extends PackageCommand {
rmSync(pkg.distPath.value, { recursive: true, force: true }); rmSync(pkg.distPath.value, { recursive: true, force: true });
const config = getBundleConfigs(pkg); const config = getBundleConfigs(pkg);
// @ts-expect-error allow
config.parallelism = cpus().length; config.parallelism = cpus().length;
const compiler = webpack(config); const compiler = webpack(config);
if (!compiler) {
throw new Error('Failed to create webpack compiler');
}
compiler.run((error, stats) => { compiler.run((error, stats) => {
if (error) { if (error) {
@@ -201,10 +207,12 @@ export class BundleCommand extends PackageCommand {
logger.info(`Starting dev server for ${pkg.name}...`); logger.info(`Starting dev server for ${pkg.name}...`);
const config = getBundleConfigs(pkg); const config = getBundleConfigs(pkg);
// @ts-expect-error allow
config.parallelism = cpus().length; config.parallelism = cpus().length;
const compiler = webpack(config); const compiler = webpack(config);
if (!compiler) {
throw new Error('Failed to create webpack compiler');
}
const devServer = new WebpackDevServer( const devServer = new WebpackDevServer(
merge({}, defaultDevServerConfig, devServerConfig), merge({}, defaultDevServerConfig, devServerConfig),

1072
yarn.lock

File diff suppressed because it is too large Load Diff