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

PATCH-Basic-v2.6.1.unitypackage 1 MB
Oct 20, 2021
PATCH-Pro-v2.6.1.unitypackage 3 MB
Oct 20, 2021

Get PATCH - Updating System

Buy Now$69.00 USD or more

Leave a comment

Log in with itch.io to leave a comment.