mirror of
https://github.com/zotero/zotero.git
synced 2026-08-28 05:25:31 +00:00
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. |
||
|---|---|---|
| .. | ||
| 8.0_release_build_and_deploy | ||
| 9.0_release_build_and_deploy | ||
| add_omni_file | ||
| add_version_info | ||
| beta_build_and_deploy | ||
| build_and_run | ||
| build_for_deploy | ||
| check_requirements | ||
| codesign_local | ||
| createprecomplete.py | ||
| dev_build_and_deploy | ||
| dir_build | ||
| fetch_mar_tools | ||
| fetch_rcedit | ||
| fetch_xulrunner | ||
| get_commit_files | ||
| get_repo_branch_hash | ||
| incremental_update | ||
| manage_incrementals | ||
| notarization_info | ||
| notarization_stapler | ||
| notarize_mac_app | ||
| optimizejars.py | ||
| prepare_build | ||
| test_build_and_deploy | ||
| upload_builds | ||
| utils.sh | ||
| xulrunner_hash | ||