github electron-userland/electron-builder electron-updater@7.0.0-alpha.10

latest release: docker@26.12.0-alpha.0
pre-release2 hours ago

Patch Changes

  • Fix(updater): make GitHubProvider pick the highest eligible release for alpha/beta channel clients instead of the first feed entry, so a stable hotfix published after a pre-release no longer hides that newer pre-release (or offers a downgrade) (#10287) #10289 a1ad1a5

  • Fix: handle a deferred native macOS update download only once #10116 10c4b54

  • Fix: stop retry backoff immediately when cancelled #10126 68aa2ff — builder-util-runtime

  • Fix: reject missing and path-valued cached update file names #10115 4ca053b

  • Fix: handle multipart headers split across download chunks #10117 dde668d

  • Fix: validate the initial update channel and allow resetting a configured channel to the default #10112 1e167b8

  • Fix(docs): repair broken links and anchors across the docs site and JSDoc, and export the SnapOptions24, SnapOptionsLegacy, SnapOptionsCustom and RemoteBuildOptions types from app-builder-lib so their API reference pages are generated #10305 2fdbcae — electron-updater, builder-util-runtime

  • Feat(builder-util): log.limit({ key, max, scope }) / log.once(key, scope) emit a keyed message at most N times (per process, or per scope object), replacing hand-rolled "already warned" flags; electron-updater counts once-per-updater warnings internally without changing the injectable Logger interface. Both share one limiter (wrap() on any { info, warn, error, debug? } logger, including console), and its LogLevel, LogLimitOptions, LoggerLike and LimitedLogger types are now exported from builder-util-runtime (builder-util re-exports them) #10302 5cbbc8d — electron-updater, builder-util-runtime

  • Refactor: once-only build and updater warnings use log.once / log.limit (and the updater's per-instance counter) instead of hand-rolled flags and sets; a concurrently resolved NSIS ProgID notice can no longer print twice #10303 6fe881e

  • Docs: document files[].isAdminRightsRequired as an intentionally unsigned launch hint in signed update manifests. It only selects how the hash-verified installer is launched (directly or via elevate.exe), so publishers can correct it in latest.yml without re-signing. #10318 434f6e9 — electron-updater, builder-util-runtime

  • Feat!: nest files, extraResources and extraFiles under fileOptions #10319 8f55928 — builder-util-runtime

    The three file-copy lists live in a fileOptions?: FilesBuildOptions | null property at the configuration root and in every platform section (mac, mas, masDev, win, linux), the same way directories groups the build directories: fileOptions.files, mac.fileOptions.extraResources, and so on. PlatformSpecificBuildOptions does not extend FilesBuildOptions, and the TypeScript types and the JSON schema only have fileOptions.

    Flat files / extraResources / extraFiles keys in a config file, an extends parent, a -c.files=… override or the config object passed to build() are applied as their fileOptions counterparts before the configuration is validated, logging one warning per process that names the keys found and where they belong. When a flat key and its fileOptions counterpart are set on the same object, fileOptions wins and the build warns about the conflict. A CLI override or a parent config's flat key is merged with fileOptions. A fileOptions that is not an object (for example a list of globs written directly under it) fails the build with a message showing the nested form.

    Code that reads files, extraResources or extraFiles from the loaded configuration (for example a hook reading context.packager.config.files, or buildResult.configuration.extraResources) gets the fileOptions value, with a warning per key: the loaded configuration and its platform sections forward these reads through non-enumerable properties, which stay out of the effective config, JSON.stringify and Object.keys. Assigning them throws a configuration error naming the fileOptions property to set instead.

    deepAssign (builder-util-runtime) copies only enumerable own properties, so the forwarding properties are never copied into merged options.

    electron-builder migrate-schema (static and JS/TS configs) moves flat keys under fileOptions at the root and per platform. A flat key also set under fileOptions is removed with a warning, since the build ignores it.

    See https://www.electron.build/docs/migration/v27-breaking-changes#file-options-fileoptions

Don't miss a new electron-builder release

NewReleases is sending notifications on new releases.