Commit Graph
170 Commits
Author SHA1 Message Date
Ashesh Vashi ed9dcf6ebf chore(deps): bump electron 41.5.0 -> 42.1.0 and pin packaged version (#9959)
Bumps the desktop runtime to electron 42 (dependabot PR #9945) and
closes a supply-chain gap in the Linux/Mac packaging scripts that
predated this bump.

Why the bump is safe:

  - macOS UNNotification API change — pgAdmin's runtime does not use
    Electron's Notification API (only a UI toast comment in
    src/js/pgadmin.js:211; no `new Notification(...)` anywhere).
  - postinstall no longer downloads electron — production packaging
    fetches the binary directly via wget from GitHub releases, never
    via electron's postinstall script.
  - Offscreen rendering scale-factor change — no OSR usage anywhere
    in runtime/src/js/.

While verifying, found that pkg/linux/build-functions.sh and
pkg/mac/build-functions.sh resolve the packaged electron version
via:

    ELECTRON_VERSION="$(npm info electron version)"

This pulls whatever currently carries the `latest` dist-tag on the
npm registry. Any newly published electron release — including a
hypothetical malicious one — would land in shipped binaries without
review, regardless of what runtime/package.json pins.

Replace with sed-based extraction from runtime/package.json and
fail loudly if extraction returns empty. The Windows installer
(pkg/win32/installer.iss.in) does not have this issue (it bundles a
pre-built tree, no electron download step).

Net change in runtime/yarn.lock is mostly deletions — electron 42
ships with @electron/get 5.x, which dropped a large transitive
dependency tree associated with the old postinstall download path.

Verified:

  - eslint (runtime): clean (silent)
  - yarn install (runtime): resolved to electron 42.2.0 within
    ^42.1.0 range
  - sed extraction smoke-tested: returns 42.1.0 from current
    runtime/package.json
2026-06-07 12:08:56 +05:30
Ashesh Vashi 533aed122f build(mac): drop webpack heap from 6 GB to 4 GB on the macOS build (#9968)
The 6 GB ceiling set by #9967 was too aggressive for the macOS x64
VM's total RAM. Build #1295 on `pgabf-macos-x64` failed in
`_build_runtime` at `unzip electron-vX.X.X-darwin-x64.zip` with exit
code 2 — never even reached webpack. That points at OS-level memory
pressure spilling out of the Node process and starving the rest of
the build: at 6 GB reserved, the box runs out of RAM long before
Terser actually needs the full ceiling.

Drop back to 4 GB, which still gives Terser a full extra gigabyte
beyond the original 3 GB setting that OOM-killed webpack in #1294,
but leaves enough headroom for the other steps in the appbundle
build to coexist.

Only the macOS appbundle path changes (see pkg/mac/build-functions.sh);
linux/pip/Makefile and dev-machine builds keep the 3 GB the `bundle`
npm script ships with.
2026-05-22 15:00:09 +05:30
Ashesh Vashi 3e1921dcd9 build(mac): bump webpack heap to 6 GB on the macOS appbundle build (#9967)
macOS x64 appbundle builds keep dying inside webpack's TerserPlugin at
92% (asset processing). Build #1294 on `pgabf-macos-x64` reached
`<s> [webpack.Progress] 92% [0] sealing asset processing TerserPlugin`
and was killed without producing a V8 fatal-error preamble, which
points at the OS reaping the Node process under memory pressure rather
than V8 hitting its own heap ceiling.

TerserPlugin is already running single-threaded (see
web/webpack.config.js, `parallel: false`), so we can't claw memory back
by reducing parallelism. Bump the V8 old-space ceiling from 3072 MB to
6144 MB inside the macOS appbundle build only — the helper in
pkg/mac/build-functions.sh bypasses `yarn run bundle` and calls
`yarn run webpacker` directly (see commit d96e8634), so this knob is
independent of the npm script and does not affect linux/pip/Makefile
or dev-machine builds. They keep the 3 GB the `bundle` script has been
shipping with for years.

If this still doesn't get the x64 box past Terser we'll switch the
minimiser to esbuild via terser-webpack-plugin's `minify` option; that
is a larger and more invasive change so we are trying the cheap fix
first.
2026-05-22 14:43:58 +05:30
Ashesh Vashi d96e86345e build(mac): split bundle step and capture stderr for diagnostics (#9965)
The macOS x64 appbundle build can fail inside `yarn run bundle` while
producing zero console output -- the Jenkins log goes straight from
"yarn install ... Done with warnings" to the EXIT trap's failure
message, leaving no signal as to whether linter, webpack, or a native
module load was the culprit (build #1293 on pgabf-macos-x64 is the
prompting example).

Split the bundled script into its constituent steps and merge stderr
into stdout so any error text reaches the console even if Jenkins'
shell step drops a tail buffer:

  yarn install
  yarn run git:hash    # cheap source-hash capture, moved up front
  yarn run linter
  yarn run webpacker

`git:hash` is a pure `git log` redirect (see web/package.json) with no
node-module dependency, but `yarn run` needs node_modules so it stays
after install. Pulling it before the heavy steps means the commit_hash
file lands on disk even if webpack later bails out.

Env vars NODE_ENV=production and NODE_OPTIONS=--max-old-space-size=3072
are set explicitly to mirror the cross-env wrapper inside the top-level
"bundle" npm script, so build output stays byte-identical to before.

No-op for successful builds; pure diagnostics win on failure.
2026-05-22 13:58:06 +05:30
Anil Sahoo 6000cc0fb4 Fixed an issue where pgAdmin4 app on macOS cannot auto-update while running on a read-only volume even if present in the Applications folder. #9402 2026-02-02 15:11:58 +05:30
Akshay Joshi 8f39f8a6bc Update JavaScript Dependencies. 2026-01-27 12:25:34 +05:30
Akshay Joshi d26aa0a8de 1) Added --no-cache-dir for OSX while installing requirements.txt
2) Updated release note.
2026-01-06 12:25:35 +05:30
Akshay Joshi 52daa56a04 Copyright updated for 2026 2026-01-05 13:33:45 +05:30
Akshay Joshi 71719db3ab sphinx==9.0.0 required Python version >= 3.11. Back to version 7.4.7 2025-12-02 11:55:26 +05:30
Akshay Joshi dc7873c2b2 Update Python and JavaScript dependecies. 2025-12-01 19:13:04 +05:30
Anil Sahoo 5f22b4e2d2 Fixed following issues related to auto-update:
1. Fixed the issue where auto-update was not working for macOS x64 arch machines as pgadmin4 zip file name has x86_64 in it.
2. Improved error handling in the /upgrade_check API by replacing the static “Failed to check for update” message for Windows users with a dynamic error message.
3. Fixed the CSS issue affecting the close icon in the warning notifier.
4. Removed trailing periods from helper texts and notifier messages in the app’s auto-update workflow. #9133
2025-10-13 17:25:14 +05:30
Pravesh Sharma 800fdce316 Unpin Electron version 35.x as the GTK crash issue has been resolved upstream. 2025-08-22 11:32:58 +05:30
Anil Sahoo 9eec4f5b8c Add support for automatic updates in the pgAdmin 4 Desktop application on macOS. #5766 2025-07-31 11:30:19 +05:30
Akshay Joshi 1259d72643 Plugin workspace-tools is included by default starting from Yarn 4. 2025-06-09 11:57:02 +05:30
Akshay Joshi cab1bc3cb4 Update yarn to version 4. 2025-06-06 19:08:32 +05:30
Khushboo Vashi 63f2c7fe00 Remove the reference to the DEPENDENCIES file from the macOS build. 2025-05-30 09:47:43 +05:30
Aditya Toshniwal 7c74b7cdb7 - Pin Electron to v35.4.0 as the v36 is not working on many OS.
- Pin html-to-image to v1.11.11 as latest version breaks ERD image downloads.
2025-05-27 13:02:11 +05:30
Akshay Joshi 4e52a8664c Updated Javascript dependencies. 2025-03-03 19:00:59 +05:30
Akshay Joshi 84a5467a5e Updated Sphinx to 7.4.7 2025-02-18 13:34:20 +05:30
Aditya Toshniwal e6d2334753 Pin Electron version to 33.3.2 as the versions above it fails to start on RHEL 8/Rocky 8 2025-02-05 19:10:39 +05:30
Akshay Joshi 99e1f005fc Update Python version to 3.13 2025-01-15 13:44:34 +05:30
Akshay Joshi 964d211260 Copyright updated for 2025 2025-01-01 11:26:42 +05:30
Aditya Toshniwal f451f89d38 Cleanup yarn cache before bundling the installers to reduce size 2024-08-30 14:09:53 +05:30
Aditya Toshniwal 546806c40c Always use latest version of Electron in package.json and in builds 2024-08-01 16:03:05 +05:30
Akshay Joshi 729c370125 Fixed build issues after package upgrade. 2024-07-30 13:41:56 +05:30
Akshay Joshi 636c224bd0 Updated JavaScript and Python packages according to Dependabot recommendations 2024-07-29 19:34:43 +05:30
Aditya Toshniwal f8fa1cf6d6 - Fix few SonarQube issues.
- Cleanup NW.js related stuff.
2024-07-02 10:34:30 +05:30
Aditya Toshniwal 91eb60a363 Replace pgAdmin NW.js container with Electron container. #7494 2024-07-01 11:27:42 +05:30
Akshay Joshi ad5bb0b190 Copy yarnrc.yml file to rectify the OSX builds. 2024-05-16 13:12:37 +05:30
Akshay Joshi 5edeee8017 Another attempt to rectify the OSX builds. 2024-05-15 16:28:47 +05:30
Akshay Joshi 95466b9d6c Update release note. 2024-05-15 15:30:45 +05:30
Akshay Joshi f833cea0dd Trying to fix the OSX build failure 2024-05-15 15:05:59 +05:30
Akshay Joshi 8b130b3351 Added corepack enable command. 2024-03-04 17:30:16 +05:30
Akshay Joshi d26182d178 Update yarn version for OSX build functions. 2024-03-04 15:23:07 +05:30
Ashesh Vashi d09833744a Separate the application name, branding & version information from the configuration file. #7187 2024-02-09 16:25:03 +05:30
Akshay Joshi 740ce15bd7 Update copyright notices for 2024 2024-01-01 14:13:48 +05:30
Akshay Joshi 53b5b59f56 Use notarytool instead of altool for notarization, as altool has been deprecated. (#6919) 2023-11-01 15:39:35 +00:00
Aditya Toshniwal 862f101772 Significant changes to use ReactJS extensively.
1. Replace the current layout library wcDocker with ReactJS based rc-dock. #6479
2. Have close buttons on individual panel tabs instead of common. #2821
3. Changes in the context menu on panel tabs - Add close, close all and close others menu items. #5394
4. Allow closing all the tabs, including SQL and Properties. #4733
5. Changes in docking behaviour of different tabs based on user requests and remove lock layout menu.
6. Fix an issue where the scroll position of panels was not remembered on Firefox. #2986
7. Reset layout now will not require page refresh and is done spontaneously.
8. Use the zustand store for storing preferences instead of plain JS objects. This will help reflecting preferences immediately.
9. The above fix incorrect format (no indent) of SQL stored functions/procedures. #6720
10. New version check is moved to an async request now instead of app start to improve startup performance.
11. Remove jQuery and Bootstrap completely.
12. Replace jasmine and karma test runner with jest. Migrate all the JS test cases to jest. This will save time in writing and debugging JS tests.
13. Other important code improvements and cleanup.
2023-10-23 17:43:17 +05:30
Akshay Joshi 33b2b82ba9 Pin NW.js to 0.77.0, as the latest version crashes after an attempt to reopen the fullscreen window. 2023-08-16 13:05:35 +05:30
Khushboo Vashi e80d55e968 Use a consistent name for sbom files. 2023-08-11 15:12:26 +05:30
Dave Page 7fcfea2214 JIT entitlement is required on Apple Silicon, otherwise NWJS won't start.
See https://github.com/nwjs/nw.js/issues/8086
2023-08-10 13:36:00 +01:00
Dave Page e06d39b70c Cleanup some more unnecessary artefacts from the build. 2023-08-10 13:35:04 +01:00
Khushboo Vashi 48bfc66048 Generate software bill of materials as part of the package builds. #3702 2023-08-03 16:08:59 +05:30
Dave Page 6bf2733628 Use the release build of NWJS for Apple Silicon 2023-06-09 14:58:35 +01:00
Dave Page b337b64eb1 Make sure the quarantine bit isn't set. 2023-05-26 13:31:22 +01:00
Dave Page 7d068130a4 Build for Apple Silicon using the test SDK build from NWjs. 2023-05-25 15:42:42 +01:00
Dave Page 4baaff4566 Fix typo. 2023-05-24 16:15:15 +01:00
Dave Page bdcf1f986f Manually install pip as well, to minimise work done by the framework creation script. 2023-05-24 16:14:43 +01:00
Dave Page 7609038a16 Install packages into the vent separately to avoid psycopg build issues. 2023-05-24 15:47:48 +01:00
Dave Page 619680e71f Don't unnecessarily set the PATH to include a hard coded directory. 2023-05-24 15:15:19 +01:00