API v8.0
Breaking changes for API v8.0
Here is a list of breaking changes that happened during the API v8.0 period when differing versions of Terminaux introduced breaking changes.
From 7.0.x to 8.0.x
Between the 7.0.x and 8.0.x version range, we've made the following breaking changes:
BassBoom library path settings moved
public string BassBoomLibraryPath
{
get => bassBoomLibraryRoot ?? "";
set => bassBoomLibraryRoot = value;
}The BassBoom library path is supposed to be set once, because BassBoom loads the library once before being functional. To reflect BassBoom's behavior, we've decided to move the above property to the static class of Input.
Update all references to this property to use the new location.
General console checker removed
public static void CheckConsole() {}
public static void AddToCheckWhitelist(Assembly asm) {}
public static void RemoveFromCheckWhitelist(Assembly asm) {}We have removed the general console checker as part of an ongoing effort to properly support file redirects and pipes for Terminaux CLI applications that use the provided console writing functions that support color. This will allow your application to use those functions without having to write a separate code path for dumb consoles.
If you are still using the console checker, you'll either have to downgrade to Terminaux 7.x, or you'll have to re-implement the checker yourself according to your requirements.
Console filter removed
We have removed the console filter feature as part of an ongoing effort to properly support file redirects and pipes for Terminaux CLI applications that use the provided console writing functions that support color. This will allow your application to use those functions without having to write a separate code path for dumb consoles.
If you are still using the console filter, you'll either have to downgrade to Terminaux 7.x, or you'll have to re-implement the filter yourself according to your requirements.
From 8.0.x to 8.1.x
Between the 8.0.x and 8.1.x version range, we've made the following breaking changes:
Decoupling color class prepared
To prepare the Color class for decoupling, we've managed to move all Terminaux-specific functions and properties, alongside the functionality, to independent classes that Terminaux applications can rely on. Those classes extend Colorimetry's original color class that was taken straight from Terminaux after the preparation stage.
You'll need to update all references to those functions to point to the new class. Additionally, if you're using VTSequence* properties, they have now become extension functions, which means that you'll have to add the () marks at the end of each call.
Moved the themes system to Terminaux.Themes
As the themes system is not going to be part of Colorimetry due to large portions of the theme system using Terminaux-specific console features, we've decided to move the themes system and their classes to a new namespace, which is Terminaux.Themes.
You'll need to update all using clauses to point to Terminaux.Themes and Terminaux.Themes.Colors.
Consistency in selection style TUI indexes
In the SelectionStyle class, we've made the experience more consistent by letting all returned answer numbers in the single-selection style TUIs become zero-based. This was because the multiple selection style TUI used zero-based numbers, while the single selection style TUI originally used the one-based answer numbers, and this traces back to when Nitrocid 0.0.20.0 was under early development on October 2021 as per this commit.
Now, we've cleaned that up by making the numbers become indexes, thus making them zero-based.
You'll need to adjust the code to handle the new logic. For example, you used to subtract 1 from the resultant number (for example, selected - 1). Now, you don't subtract the number itself (for example, selected).