Version 2.6.1 is out!
New 2.6.1 version is out! This is a huge release with a huge changelog!
TL;DR: removed the dependencies (Newtonsoft.Json and Serilog), replaced the FileManager with a more abstracted IFileSystem, added a new ChunkedDownloader (a high-performance, multi-thread downloader).
CHANGELOG
fix(PatchDefinition): fixed a deserialization fail
update(Settings): made disk space check optional
update(FileSystem): explicitly set FileAccess, FileSharing, FileMode in GetFileStream
update(DebugMode): validation process now checks for file attributes too
update(ChunkedDownloader): fixed directory creation when missing
update(DebugMode): added files validation on Repairer and Updater while in debug mode
update(UpdatingContext): FetchIndexes is now public
fix(Logger): the logs file must be opened with FileAccess.Write
update(Logger): the logs file is now opened with FileMode.Append
update(FileSystem): exposed FileAccess, FileShare and FileMode for GetFileStream
update(DownloadHelper): download validation now doesn't fail when the hash in the definition is null
fix(ChunkedDownloader): the jobs waiter now filters out the null entries (in the case the chunks amount is less than downloading threads)
update(FileSystem): added UnlockFile function
fix(SelfUpdate): fixed a problem with the deserialization of the UpdaterDefinition
fix(Serialization): fixed a problem with the deserialization of the IVersion
update(ChunkedDownloader): empty files are now correctly created
update(Downloader): moved advanced downloaders in their own dedicated folders
update(Dependencies): updated and removed dependencies in the whole project
fix(FileSystem): GetFileStream now returns a readable and writable stream
fix(Logger): the generation of the log file is now working as expected
update(Tests): added the base for a completely automated test
update(Files): abstracted the paths representation for files
update(Tests): added an In-Memory file system implementation to work with automated tests
update(Tests): prepared fake data helpers for Tests
update(Logging): the new SimpleLogger is now synchronized with the new abstracted file system API
update(Hashing): all GetFileHashing calls are now synchronized with the new abstracted file system API
update(macOS): modified the privileges setter for macOS
update(Launcher): Pause/Resume buttons prefabs
update(Logging): removed Serilog dependency
update(Files): FileSystem and InMemoryFileSystem
update(Files): abstracted all files operations, so that an in-memory mock can be used for end-to-end testing
update(WPF): added Resume/Pause buttons
update(SmartDownloader): added Pause/Resume functionality
update(FileDownloader): added Pause/Resume functionality
update(IDownloader): added Pause/Resume methods to IDownloader interface
fix(ChunkedDownloader): passed in the correct size of the file for the other IDownloader methods
update(ChunkedDownloader): completed the IDownloader implementation for ChunkedDownloader
update(ChunkedDownloader): adapted the TasksAmount to better fit with the number of chunks to download
update(ChunkedDownloader): added Pause/Resume functionality
update(Launcher): added CheckAvailableDiskSpace check for Repairer, Updater and PatcherUpdater
update(ChunkedDownloader): new working ChunkedDownloader
update(FilesManager): added GetAvailableDiskSpace method
update(DownloadSpeed): added MaxReachedDownloadSpeed property
update(Launcher): exposed VersionFactory property and used it to deserialize the IVersion object without reflection
update(Serializer): added DeserializeOn method to deserialize JSON over an already allocated object
fix(Downloader): subtracted the already downloaded amount when a new download retry is performed
update(Pro): added PATCH version under the logo
update(Basic): added PATCH version under the logo
update(WPF): added PATCH version under the logo
update(WPF): sync'ed JsonSerializer to the latest version
update(Serilog): updated Serilog version
fix(Deserialization): adjusted the manual deserialization of the Operation field in UpdaterDefinition
update(LauncherData): improved timer formatting code, now it's more concise and clear
update: introduced a manual json serialization logic not based on reflection
update: removed the dependency from Newtonsoft.Json library
update(ChunkedDownloader): added some different variants of ChunkedDownloader
update(ChunkedDownloader): improved the chunking strategy and overall performance
update(DownloadHelper): improved the ValidateDownloadedResult's error reporting
update(ChunkedDownloader): improved performance by distributing the flushing to the disk job over the thread pool
update(SmartDownloader): improved performance by scheduling the workers as long running tasks
fix(ChunkedDownloader): fixed the flushing to disk procedure, introduced the callbacks, added buffers leak detection when in Debug, added download result validation when in Debug
update(SmartDownloader): added some performance metrics + download result validation when in Debug
update(Downloader): testing ChunkedDownloader
update(Downloader): moved certificate validation callback to DownloadHelper
update(Utilities): added Assert utility
update(LauncherUpdater): added the Background Launcher Updater to the Pro version
update(LauncherUpdater): added RestartNeeded event to the BackgroundLauncherUpdater
fix(LauncherUpdater): fixed the Background Launcher Updater, moved all operations on the UI in the dispatcher
fix(PatcherUpdater): fixed a NullReferenceException in IsUpdateAvailable method
update(LauncherUpdater): added the Background Launcher Updater, with a in-game integrated graphic
update(NetworkChecker): exposed the exception thrown by the NetworkChecker, to help with debugging
feat(PatcherUpdater): added IsUpdateAvailable method
update(Launcher): added StartedStep event in the IUpdateRunner
update: added VERSION files to keep track of current version
Files
Get PATCH - Updating System
PATCH - Updating System
PATCH - Updating System is a rock-solid solution to manage updates for your games.
More posts
- Version 2.6.6 is out!Feb 15, 2023
- Version 2.6.3 is out!Jul 05, 2022
- Version 2.6.2 is out!Apr 01, 2022
- Version 2.4.2 is out!Dec 17, 2020
- The new 2.2.0 version is out!May 07, 2020
Leave a comment
Log in with itch.io to leave a comment.