Skip to content

Commit 5586e85

Browse files
Configuration Migration Utilities (#262)
* Initial plan * Add ConfigurationMigration utilities, Version fields in config classes, and tests Co-authored-by: michaelbeale-IL <63321611+michaelbeale-IL@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: michaelbeale-IL <63321611+michaelbeale-IL@users.noreply.github.com>
1 parent 961de8b commit 5586e85

File tree

10 files changed

+947
-0
lines changed

10 files changed

+947
-0
lines changed

src/Libraries/ACATCore.Tests.Configuration/ConfigurationMigrationTests.cs

Lines changed: 429 additions & 0 deletions
Large diffs are not rendered by default.

src/Libraries/ACATCore/ACAT.Core.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,8 @@
271271
<Compile Include="Utility\ExtensionInstantiator.cs" />
272272
<Compile Include="Utility\HotkeyManager.cs" />
273273
<Compile Include="Utility\ConfigurationWatcher.cs" />
274+
<Compile Include="Utility\ConfigurationMigration.cs" />
275+
<Compile Include="Utility\Migrations\MigrationBase.cs" />
274276
<Compile Include="Utility\JsonConfigurationLoader.cs" />
275277
<Compile Include="Utility\LogManager.cs" />
276278
<Compile Include="Utility\TopMostManager.cs" />

src/Libraries/ACATCore/Configuration/AbbreviationsJson.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@ namespace ACAT.Core.Configuration
2121
/// </summary>
2222
public class AbbreviationsJson
2323
{
24+
/// <summary>
25+
/// Configuration file version for migration support
26+
/// </summary>
27+
[JsonPropertyName("version")]
28+
public string Version { get; set; } = "1.0.0";
29+
2430
/// <summary>
2531
/// List of abbreviation entries
2632
/// </summary>

src/Libraries/ACATCore/Configuration/ActuatorSettingsJson.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,12 @@ namespace ACAT.Core.Configuration
2424
/// </summary>
2525
public class ActuatorSettingsJson
2626
{
27+
/// <summary>
28+
/// Configuration file version for migration support
29+
/// </summary>
30+
[JsonPropertyName("version")]
31+
public string Version { get; set; } = "1.0.0";
32+
2733
/// <summary>
2834
/// List of actuator configurations
2935
/// </summary>

src/Libraries/ACATCore/Configuration/PanelConfigJson.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,12 @@ namespace ACAT.Core.Configuration
2323
/// </summary>
2424
public class PanelConfigJson
2525
{
26+
/// <summary>
27+
/// Configuration file version for migration support
28+
/// </summary>
29+
[JsonPropertyName("version")]
30+
public string Version { get; set; } = "1.0.0";
31+
2632
/// <summary>
2733
/// List of widget attribute definitions
2834
/// </summary>

src/Libraries/ACATCore/Configuration/PreferredWordPredictorsJson.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,12 @@ namespace ACAT.Core.Configuration
2424
/// </summary>
2525
public class PreferredWordPredictorsJson
2626
{
27+
/// <summary>
28+
/// Configuration file version for migration support
29+
/// </summary>
30+
[JsonPropertyName("version")]
31+
public string Version { get; set; } = "1.0.0";
32+
2733
/// <summary>
2834
/// List of preferred word predictors for different languages
2935
/// </summary>

src/Libraries/ACATCore/Configuration/PronunciationsJson.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@ namespace ACAT.Core.Configuration
2121
/// </summary>
2222
public class PronunciationsJson
2323
{
24+
/// <summary>
25+
/// Configuration file version for migration support
26+
/// </summary>
27+
[JsonPropertyName("version")]
28+
public string Version { get; set; } = "1.0.0";
29+
2430
/// <summary>
2531
/// List of pronunciation entries
2632
/// </summary>

src/Libraries/ACATCore/Configuration/ThemeJson.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,12 @@ namespace ACAT.Core.Configuration
2323
/// </summary>
2424
public class ThemeJson
2525
{
26+
/// <summary>
27+
/// Configuration file version for migration support
28+
/// </summary>
29+
[JsonPropertyName("version")]
30+
public string Version { get; set; } = "1.0.0";
31+
2632
/// <summary>
2733
/// Description of the theme
2834
/// </summary>

0 commit comments

Comments
 (0)