Commit graph

11 commits

Author SHA1 Message Date
Dan Stillman
094d5cc2b6
Update staged builds in place for faster dev builds (#5994)
After a full build, dir_build saves a manifest of build/ files to
staging/.build-manifest. On subsequent runs, if all changed files are
ones that build.sh copies into omni.ja unmodified (chrome/, components/,
resource/, and test/ when tests are staged), zip just those files into
the staged omni.ja instead of rebuilding, taking rebuilds from ~15
seconds to ~0.3 seconds on an M1 Mac. Files are prescreened by size and
mtime so that only changed files need to be hashed. Zotero .ftl files
are also updated at their localization/<locale>/ paths, and test files
are also copied to the staged tests/ directory.

Any other change triggers an automatic full rebuild: files transformed
by build.sh (defaults/, chrome.manifest, version, translators/, styles/,
mozilla .ftl files, CSL locales), removed files, changes to build inputs
in app/ (detected via a size/mtime fingerprint, with xulrunner runtimes
covered by the hash-* files written by fetch_xulrunner), or requesting
tests or devtools that the staged build doesn't include.

Other changes:

- dir_build no longer takes -q and always skips omni.ja compression and
  optimization, which only matter for distribution builds made via
  build.sh. Use -f (dir_build or build_and_run) to force a full rebuild.
- build_and_run now always rebuilds. -r is deprecated, and -n skips the
  rebuild and just launches the app.
- build_and_run no longer passes -purgecaches. Startup caches are
  invalidated automatically when the BuildID changes, which now happens
  whenever omni.ja is modified (including via add_omni_file), so
  relaunching an unchanged build can use the startup cache.
- build_and_run and runtests.sh invoke js-build directly instead of via
  'npm run', which saves ~270ms of npm overhead per build.
- The Word integration dylib is now ad-hoc-signed by dir_build, and only
  on full rebuilds, since incremental updates don't invalidate the
  existing signature. This also covers test builds, which were never
  signed before.
- dir_build removes broken symlinks left in build/ when source files are
  deleted, which previously broke rsync in prepare_build.
2026-07-08 10:07:58 -04:00
Dan Stillman
832575b7c0 Update build scripts for Linux ARM64
This doesn't include an ARM updater, so those lines in build.sh need to
be commented out for the build to succeed.

Addresses #3515
2025-07-30 22:15:31 -04:00
Dan Stillman
659d5e864b build_and_run: Fix handling of ZOTERO_PROFILE containing spaces 2025-03-09 16:16:47 -04:00
Abe Jellinek
175541ed86 Prevent "Warning: unrecognized command line flag -rd" 2024-08-26 23:36:32 -04:00
Dan Stillman
b564924c7c build_and_run: Fix debugger not showing Zotero sources when using d
`-jsconsole` somehow prevented Zotero sources from showing up in the
Debugger tab of the Browser Toolbox, but there's no reason to show the
Browser Console when we're showing the Browser Toolbox, so just don't
pass `-jsconsole` when `d` is passed.

Fixes #4503
2024-08-10 01:32:46 -04:00
Dan Stillman
934a74fba4 Use -jsdebugger for build_and_run, and don't bind devtools on port 6100
Since -jsdebugger apparently works fine, there's no reason to connect to
Zotero from Firefox anymore. So just open the Browser Toolbox when
passing the -d flag to build_and_run, and stop having the devtools
server listen on port 6100 for devtools-enabled builds, since
-jsdebugger uses a random port of its own.
2024-07-20 02:20:03 -04:00
Dan Stillman
d95c10e06c Use NODE_OPTIONS=--openssl-legacy-provider in build_and_run 2023-07-25 00:52:54 -04:00
Dan Stillman
3d7ce028e9 Change win64 to win-x64 in app build scripts 2023-05-11 05:17:52 +01:00
Dan Stillman
c326a6c971 Fix more files for combined repos 2023-04-29 07:50:54 -04:00
Dan Stillman
c55ef8714b Update app build scripts for new combined repo
Also:

- Replace `install.rdf` with `version` file
- Remove lots of obsolete logic in `prepare_build` (formerly
  `build_xpi`)
2023-04-26 04:40:22 -04:00
Dan Stillman
a3d7b58b83 Add zotero-standalone-build repo as app folder
Minus obsolete 4.0 files
2023-04-26 04:40:22 -04:00