release_updater 1.3.2
release_updater: ^1.3.2 copied to clipboard
A simple way to automatically update release/installation files in a local directory.
1.3.2 #
- gcloud:
>=0.8.19 <0.10.0(was^0.9.0in 1.3.1). The^0.9.0of 1.3.1 conflicted with packages still ongcloud0.8 (likebones_api1.29.1), and the storage API used here is the same in both.
1.3.1 #
-
resolveJsonProperties:boolandnumvalues are kept. Before, with properties or--allow-env(therelease_packerCLI), they becamenull:"launcher": true,"windows_gui": trueand{"dart_pub_get": true}were silently ignored. Adart_build_clirelease had no launchers. -
release_packerCLI: creates the releases directory if missing. -
ReleasePacker.fromFile: a file that is not a JSON/YAMLMapthrows aStateErrorwith a clear message. -
ReleasePacker.checkBuildHooks:warningsparameter. The check beforepreparedoesn't log thedart compile kernelwarning, logged once by the check after it. -
gcloud: ^0.9.0
-
lints: ^6.1.0
1.3.0 #
-
release_packer:dart buildcommands, for dependencies with build hooks (native assets, likesqlite33), thatdart compile exedoes NOT support.dart_build_cli: performs adart build cli, building a bundle withbin/<name>andlib/(the dynamic libraries). Accepts atarget,output(defaultbuild/cli/<name>),argsandlauncher.dart_build_<subcommand>: performs adart build <subcommand>, with the arguments as is.- A
filesentry with only adart_build_climaps its bundle to the release root.
-
ReleasePackerDartBuild: new command fordart build <subcommand>, also from theString/Listforms (dart build ...). -
ReleasePackerDartBuildCli: new command fordart build cli:- Always passes
--output: thedart build clidefault (build/cli/<os>_<arch>/) is shared by all the targets. - The
outputis normalized (./out/->out) and must be inside the root directory, where the bundle is mapped from. Theargscan't set the target or the output (-t,--target,-o,--output). launcher: writes a script at the bundle root (<name>, or<name>.cmdon Windows) that runsbin/<name>, keeping the path of a release that had the executable at its root. The POSIX script resolves symbolic links to itself (like one in/usr/local/bin).- With
windows_gui: true, sets the subsystem of the executable inside the bundle.
- Always passes
-
ReleasePackerCommand.from: only onedart_build_*per command entry (ArgumentError). -
ReleasePacker:checkBuildHooks: aborts the build with aReleasePackerErrorwhen adart compile exe/aot-snapshotmeets packages with build hooks, suggestingdart_build_cli. Called bybuildFromDirectorybefore thepreparecommands (if the package resolution is up to date), to fail fast, and after them. Adart compile kernelonly logs a warning.packagesWithBuildHooks: the packages with ahook/build.dartin.dart_tool/package_config.json. Only the runtime dependencies count (from.dart_tool/package_graph.json), as fordart compile exe: a dev dependency with build hooks does NOT block it.isPackageResolutionUpToDate:package_config.jsonis NOT older thanpubspec.yamlandpubspec.lock.mergeDuplicatedFiles: files with the same release path are merged if identical (like thelib/of two bundles), keeping the executable flag of any copy, and abort the build if not. Before, both were added to the bundle.allCommands: theprepare,filesandfinalizecommands.buildFromDirectory: a file in a directory tree is executable by its own extension (like.exe), not by the directory destiny path.
-
ReleasePackerFile:- The destiny path
/(or./) is the release root, to map a directory tree to it. A single file keeps its name. fromJson:dart_build_*keys are commands, not the file mapping. AMapwithout a file path now throws anArgumentError(was aStateError).
- The destiny path
-
ReleasePackerDartCommand: a failure caused by build hooks logs a hint to usedart_build_cli. -
Tests: coverage from 97.1% to 97.4%.
-
mercury_client: ^2.4.0
-
shelf: ^1.4.3
-
shelf_static: ^1.2.0
-
googleapis_auth: ^2.3.5
-
crypto: ^3.0.8
-
archive: ^4.5.2
-
test: ^1.33.0
-
dependency_validator: ^5.1.0
-
coverage: ^1.16.0
1.2.0 #
release_packer: a command error now aborts the build with an error, avoiding a silent error while building/releasing a package/artifact.- Before, a failed command (like a
dart compile exeerror) was only logged, and the build continued and generated/uploaded an incomplete release bundle.
- Before, a failed command (like a
ReleasePackerCommandStatus: newenumwith the status of a command execution:ok,ignored(not applicable, does NOT abort the build) orerror(aborts the build).ReleasePackerError: newErrorthrown when a build fails. Exposes thefailedCommands.ReleasePackerCommand:executeStatus: new method, returning theReleasePackerCommandStatusof the execution. Defaults toexecute, mappingtruetookandfalsetoerror.executeCommands: now stops at the 1st failed command and throws aReleasePackerError. Returns aMapofReleasePackerCommandStatus(was aMapofbool). Accepts acontextto identify the failure.checkCommandsResults: new helper that throws aReleasePackerErrorfor failed commands.
ReleasePacker:prepare,finalizeandReleasePackerOperation.executeCommands: now return aMapofReleasePackerCommandStatusand throw aReleasePackerErrorif a command fails.
ReleasePackerCommandDelete:- A missing file is now
ignored(the desired state), not an error.
- A missing file is now
ReleasePackerWindowsSubsystemCommand:- An input that is not a Windows executable (the usual case when building
on another platform) is now
ignored, not an error. - Added
resolveInputPathandisNotAWindowsExecutable.
- An input that is not a Windows executable (the usual case when building
on another platform) is now
release_packerCLI:- Now catches build errors, logs them and exits with code
1.
- Now catches build errors, logs them and exits with code
- Tests: increased the coverage from
94.6%to97.1%, adding tests for the build abort, the directory tree bundling, the commandfromvariants and theReleaseStorage.updateToerror paths.
1.1.13 #
-
sdk: '>=3.10.0 <4.0.0'
-
Code formatted with the new Dart formatter style.
-
ReleaseFile:normalizePath: now rejects paths outside of the release directory (Zip Slip), a bare drive prefix and empty/.paths.
-
Release:parse: now throws aFormatExceptionfor a malformed release.
-
ReleaseManifest:toJson: fixed thedateentry (wasdate:and was usingDateTime.now()instead of the manifest date).toJson: anullplatform is now omitted (was thenullString), fixing the load of manifests of releases without a platform.fromJson: still accepts manifests generated by previous versions.
-
ReleaseBundleZip:- Fixed the UNIX file mode of the Zip entries: was
755/420(decimal), now0o755/0o644. Bundles generated by previous versions are still read as executables.
- Fixed the UNIX file mode of the Zip entries: was
-
ReleaseUpdater:onSpawned: fixed the resolution of asynchronous results (afalseresult was ignored).
-
ReleaseStorageDirectory:copy: now preservesoverwriteFilesandselfReleaseDirectory(anIsolateupdate checker was losing them).FileStorageExtension.toReleaseFile: without a matchingparentPaththe root prefix is now removed on any platform (a Windows absolute path was throwing aStateError, while a POSIX one was accepted).
-
ReleaseProviderHttp:copy: now preservesreleasesFileandreleasesBundleFileFormat.- Logs the error of a request that failed all the retries.
-
ReleasePackerCommandWithArgs: fixed the empty command check (a blank command was accepted). -
WindowsPEFile:- Reads
e_lfanew(the PE header offset) as anUint32(was anUint16).
- Reads
-
Server:
- The tracked
RequestInfos are now purged (unbounded growth).
- The tracked
-
parseReleaseDirectory: now detects an absolute path on Windows. -
Tests: coverage from 67.8% to 94.6%.
-
data_serializer: ^1.2.3
-
googleapis_auth: ^2.3.3
-
crypto: ^3.0.7
-
archive: ^4.0.9
-
test: ^1.31.1
-
dependency_validator: ^5.0.5
-
coverage: ^1.15.1
1.1.12 #
-
gcloud: ^0.8.19
-
googleapis_auth: ^2.0.0
-
pub_semver: ^2.2.0
-
archive: ^4.0.7
-
test: ^1.26.2
-
coverage: ^1.14.1
1.1.11 #
-
sdk: '>=3.6.0 <4.0.0'
-
mercury_client: ^2.3.0
-
pub_semver: ^2.1.5
-
archive: ^4.0.4
-
yaml: ^3.1.3
-
lints: ^5.1.1
-
test: ^1.25.15
-
dependency_validator: ^5.0.2
-
coverage: ^1.11.1
1.1.10 #
-
sdk: '>=3.5.0 <4.0.0'
-
data_serializer: ^1.2.1
-
mercury_client: ^2.2.4
-
shelf_static: ^1.1.3
-
gcloud: ^0.8.18
-
crypto: ^3.0.6
-
path: ^1.9.1
-
collection: ^1.19.1
-
lints: ^4.0.0
-
test: ^1.25.11
-
coverage: ^1.11.0
1.1.9 #
-
sdk: '>=3.4.0 <4.0.0'
-
Removed use of
UnmodifiableUint8ListView(useasUnmodifiableView()) for Dart 3.5 compatibility. -
data_serializer: ^1.2.0
-
mercury_client: ^2.2.2
-
shelf: ^1.4.2
-
shelf_gzip: ^4.1.0
-
gcloud: ^0.8.12
-
googleapis_auth: ^1.6.0
-
archive: ^3.6.1
-
test: ^1.25.8
-
coverage: ^1.9.0
1.1.8 #
-
Added command
dart_compile_kernel(ReleasePackerDartCompileKernel). -
path: ^1.9.0
-
lints: ^3.0.0
1.1.7 #
ReleasePackerCommandGCS:resolveUploadParameters: force POSIX style in file path. (Fix Windows issue).
1.1.6 #
-
New
ReleasePackerCommandGCS. -
ReleasePackerCommandUploadReleaseBundle:- Added
byURLandbyGSCconstructors.
- Added
-
ReleaseBundle:- Added
contentType.
- Added
-
bin/release_packer- New option
--allow-env: allow config properties from environment variables.
- New option
-
gcloud: ^0.8.11
-
googleapis_auth: ^1.4.1
-
data_serializer: ^1.0.12
-
ascii_art_tree: ^1.0.6
-
archive: ^3.4.9
-
test: ^1.24.9
-
dependency_validator: ^3.2.3
-
coverage: ^1.7.1
1.1.5 #
-
Improved console output of CLI tools.
- Using
ASCIIArtTreeto show release bundle tree.
- Using
-
ReleaseBundle:- Added
toASCIIArtTree.
- Added
-
archive: ^3.3.8
-
mercury_client: ^2.2.0
-
ascii_art_tree: ^1.0.4
1.1.4 #
WindowsPEFile:- Not modifying original executable anymore to avoid OS security warnings.
- Added
savemethod.
1.1.3 #
-
New executable
release_utility. -
New
WindowPEFile. -
release_packer.dart:- Added support for command
windows_gui.
- Added support for command
-
Dart CI: added job
build_windows. -
data_serializer: ^1.0.10
1.1.2 #
- Fix packing of directory tree on Windows.
1.1.1 #
- Allow packing of a directory tree.
1.1.0 #
- sdk: '>=3.0.0 <4.0.0'
- archive: ^3.3.7
- mercury_client: ^2.1.8
- path: ^1.8.3
- pub_semver: ^2.1.4
- shelf: ^1.4.1
- shelf_static: ^1.1.2
- shelf_gzip: ^4.0.1
- crypto: ^3.0.3
- collection: ^1.17.1
- yaml: ^3.1.2
- lints: ^2.1.1
- test: ^1.24.4
- coverage: ^1.6.3
1.0.24 #
- Update GitHub CI.
- archive: ^3.3.1
- mercury_client: ^2.1.6
- path: ^1.8.2
- pub_semver: ^2.1.1
- shelf: ^1.3.2
- shelf_static: ^1.1.1
- crypto: ^3.0.2
- collection: ^1.16.0
- yaml: ^3.1.1
- lints: ^2.0.0
- test: ^1.21.4
- dependency_validator: ^3.2.2
- coverage: ^1.5.0
- pubspec: ^2.3.0
1.0.23 #
- Fix
checkManifestwhen saving files with suffix.new_release. - Improve check of manifest.
1.0.22 #
- Improved update response:
ReleaseUpdateResult. spawnPeriodicUpdateCheckerIsolatenow shares the sameIsolatefor multiple calls.
1.0.21 #
- Added support for
ReleaseManifestand save it asrelease-manifest.json. - crypto: ^3.0.1
- base_codecs: ^1.0.1
1.0.20 #
- Handle
HttpClientexceptions and added retries. ReleaseStorageDirectory:- Added
installNewReleaseFiles, to allow self directory storage mode.
- Added
ReleaseBundleZipnow stores the mode (755) for executable files.
1.0.19 #
update:- Added optional parameter
force. - If the current version is the same of the target version, returns
null.
- Added optional parameter
1.0.18 #
checkForUpdate:- new parameter
currentReleaseto allow check fo current release context, and not only from local file.
- new parameter
1.0.17 #
release_updater_server:- Sort entries for routes:
RELEASES-FILESandRELEASES-URLS.
- Sort entries for routes:
1.0.16 #
release_updater_server:- Info routes:
RELEASES,RELEASES-FILESandRELEASES-URLS.
- Info routes:
1.0.15 #
ReleaseUpdater:- Added
startPeriodicUpdateCheckerandspawnPeriodicUpdateCheckerIsolate.
- Added
1.0.14 #
- Fix upload of raw data.
- mercury_client: ^2.1.3
1.0.13 #
- Fix upload of release file format: platform as missing.
1.0.12 #
- Improved commands logging.
- Fix passing of release bundle to finalize commands.
- Handler
URLrequest errors. - `ReleasePackerCommandUploadReleaseBundle``:
- Fix parameter
fileformat. - Fix parameter
release.
- Fix parameter
- Server:
- Fix parse of request credential.
- Append uploaded releases to
releases-file.
1.0.11 #
ReleasePackerCommandURL:- Added request logging.
release_packer:- Improve command
info. - Log prepare/finalize commands.
- Improve command
1.0.10 #
- Fix
ReleasePackerCommandURLCredentialparser.
1.0.9 #
release_updater_server:- Upload support.
- Block of IP by request errors or high volume of requests.
1.0.8 #
ReleasePacker:- Allow properties in config JSON.
- New commands:
ReleasePackerCommandURLReleasePackerCommandUploadReleaseBundle
1.0.7 #
ReleasePackerCommand:- Improved commands error logging.
- Fix
ReleasePackerProcessCommandexecution onWindows.
1.0.6 #
ReleasePacker:- Added
prepareCommandsandfinalizeCommands.
- Added
- New
ReleasePackerCommand:ReleasePackerCommandDeleteReleasePackerProcessCommandReleasePackerDartCommand
- Improved
README.md:- Added executables usage description.
- Improved
ReleasePackerbuild tests:- Added commands.
- Added
prepareandfinalize.
1.0.5 #
- Improved path resolution, to work at
WindowsandLinux/POSIXtransparently.
1.0.4 #
- Improved CLI executables:
release_packer:- Added usage message.
- now can auto compile Dart scripts.
release_updater:- Added usage message.
1.0.3 #
ReleaseBundleZipnow can generate thezipBytes.- Added
ReleasePacker.- Added executable
release_packer.
- Added executable
ReleasePlatform: ensure thatx86_64is treated asx64.- Improved tests.
- yaml: ^3.1.0
1.0.2 #
- Added
currentReleaseFilePathandcurrentReleaseFile. - When loading a
ReleaseBundlefrom a Zip, detected executables by file extension. - When storing a
ReleaseFile, ensure that theexecutablepermission is set. - Added
startReleaseProcessandrunReleaseProcess. - collection: ^1.15.0
1.0.1 #
- Added support for
ReleaseBundlefrom Zip file. - Added executables:
release_updater.release_updater_server.dart.
1.0.0 #
- Initial version.