From bf094b080a3e9b4cf3172e059fff093d5a012fbe Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sat, 7 Dec 2024 23:25:31 -0500 Subject: [PATCH 1/4] update for compatibility list data split --- .../CompatibilityRepoClient.cs | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/SMAPI.Toolkit/Framework/Clients/CompatibilityRepo/CompatibilityRepoClient.cs b/src/SMAPI.Toolkit/Framework/Clients/CompatibilityRepo/CompatibilityRepoClient.cs index 5fe7c4b9..e25d890a 100644 --- a/src/SMAPI.Toolkit/Framework/Clients/CompatibilityRepo/CompatibilityRepoClient.cs +++ b/src/SMAPI.Toolkit/Framework/Clients/CompatibilityRepo/CompatibilityRepoClient.cs @@ -27,11 +27,14 @@ public class CompatibilityRepoClient : IDisposable ** Public methods *********/ /// Construct an instance. - /// The full URL of the JSON file to fetch. + /// The base URL from which to fetch the compatibility list JSON files. /// The user agent for the API client. - public CompatibilityRepoClient(string userAgent, string fetchUrl = "https://raw.githubusercontent.com/Pathoschild/SmapiCompatibilityList/refs/heads/release/data/data.jsonc") + public CompatibilityRepoClient(string userAgent, string fetchBaseUrl = "https://raw.githubusercontent.com/Pathoschild/SmapiCompatibilityList/refs/heads/release/data") { - this.Client = new FluentClient(fetchUrl).SetUserAgent(userAgent); + this.Client = new FluentClient(fetchBaseUrl) + .SetUserAgent(userAgent); + this.Client.Filters.Add(new ForceJsonResponseTypeFilter()); + this.MarkdownPipeline = new MarkdownPipelineBuilder() .Use(new ExpandCompatibilityListAnchorLinksExtension()) .Build(); @@ -40,14 +43,12 @@ public class CompatibilityRepoClient : IDisposable /// Fetch mods from the compatibility list. public async Task FetchModsAsync() { - RawCompatibilityList response = await this.Client - .GetAsync(null) - .WithFilter(new ForceJsonResponseTypeFilter()) - .As(); + RawCompatibilityList mods = await this.Client.GetAsync("mods.jsonc").As(); + RawCompatibilityList brokenContentPacks = await this.Client.GetAsync("broken-content-packs.jsonc").As(); return - (response.Mods ?? Array.Empty()) - .Concat(response.BrokenContentPacks ?? Array.Empty()) + (mods.Mods ?? Array.Empty()) + .Concat(brokenContentPacks.BrokenContentPacks ?? Array.Empty()) .Select(this.ParseRawModEntry) .ToArray(); } From 6c02a22dd89d08e6deb0b798a217c85f4e21019e Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sun, 8 Dec 2024 01:55:37 -0500 Subject: [PATCH 2/4] remove embedded codesign command macOS players were reporting that macOS began flagging SMAPI 4.1.8 as malware again a few days after release. Based on testing with macOS users, a combination of recreating the build VM from scratch with the latest versions and removing the embedded codesign command seems to fix it. --- docs/release-notes.md | 6 +++++- src/SMAPI.Installer/InteractiveInstaller.cs | 15 --------------- 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index b9aa34c9..a4c3b625 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -1,12 +1,16 @@ ← [README](README.md) # Release notes +# Upcoming release +* For players: + * Fixed compatibility with new macOS security restrictions (again). + ## 4.1.8 Released 28 November 2024 for Stardew Valley 1.6.14 or later. * For players: * Updated the mod compatibility blacklist. - * Fixed compatibility with newer macOS security restrictions. + * Fixed compatibility with new macOS security restrictions. * Fixed crash with some rare combinations of mods involving Harmony and mod APIs. * For mod authors: diff --git a/src/SMAPI.Installer/InteractiveInstaller.cs b/src/SMAPI.Installer/InteractiveInstaller.cs index 4b6544af..f25f7cfa 100644 --- a/src/SMAPI.Installer/InteractiveInstaller.cs +++ b/src/SMAPI.Installer/InteractiveInstaller.cs @@ -415,21 +415,6 @@ internal class InteractiveInstaller } }.Start(); } - - // sign SMAPI on macOS - // This avoids 'StardewModdingAPI will damage your computer' errors in newer versions. - if (context.Platform is Platform.Mac) - { - new Process - { - StartInfo = new ProcessStartInfo - { - FileName = "codesign", - Arguments = $"--force --sign - \"{paths.UnixSmapiExecutablePath}\"", - CreateNoWindow = true - } - }.Start(); - } } // copy the game's deps.json file From d2c53856273a33f58929d405808a00df343ea5ae Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sun, 8 Dec 2024 17:04:39 -0500 Subject: [PATCH 3/4] fix support for overriding color schemes via user config files (#942) --- docs/release-notes.md | 1 + src/SMAPI.Internal/ConsoleWriting/ColorSchemeConfig.cs | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index a4c3b625..6b59aaa1 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -4,6 +4,7 @@ # Upcoming release * For players: * Fixed compatibility with new macOS security restrictions (again). + * Fixed unable to override color themes via `smapi-internal/config.user.json`. ## 4.1.8 Released 28 November 2024 for Stardew Valley 1.6.14 or later. diff --git a/src/SMAPI.Internal/ConsoleWriting/ColorSchemeConfig.cs b/src/SMAPI.Internal/ConsoleWriting/ColorSchemeConfig.cs index b4247017..aaed0635 100644 --- a/src/SMAPI.Internal/ConsoleWriting/ColorSchemeConfig.cs +++ b/src/SMAPI.Internal/ConsoleWriting/ColorSchemeConfig.cs @@ -10,10 +10,10 @@ internal class ColorSchemeConfig ** Accessors *********/ /// The default color scheme ID to use, or to select one automatically. - public MonitorColorScheme UseScheme { get; } + public MonitorColorScheme UseScheme { get; set; } /// The available console color schemes. - public IDictionary> Schemes { get; } + public IDictionary> Schemes { get; set; } /********* From 513ef3e9759822d2659fcc9942856e42a4ff48b8 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sun, 8 Dec 2024 18:01:22 -0500 Subject: [PATCH 4/4] prepare for release --- build/common.targets | 2 +- docs/release-notes.md | 6 ++++-- src/SMAPI.Mods.ConsoleCommands/manifest.json | 4 ++-- src/SMAPI.Mods.SaveBackup/manifest.json | 4 ++-- src/SMAPI/Constants.cs | 2 +- 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/build/common.targets b/build/common.targets index 1dabf36e..4e16194c 100644 --- a/build/common.targets +++ b/build/common.targets @@ -7,7 +7,7 @@ repo. It imports the other MSBuild files as needed. - 4.1.8 + 4.1.9 SMAPI latest $(AssemblySearchPaths);{GAC} diff --git a/docs/release-notes.md b/docs/release-notes.md index 6b59aaa1..72903094 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -1,10 +1,12 @@ ← [README](README.md) # Release notes -# Upcoming release +# 4.1.9 +Released 08 December 2024 for Stardew Valley 1.6.14 or later. + * For players: * Fixed compatibility with new macOS security restrictions (again). - * Fixed unable to override color themes via `smapi-internal/config.user.json`. + * Fixed unable to override color schemes via `smapi-internal/config.user.json`. ## 4.1.8 Released 28 November 2024 for Stardew Valley 1.6.14 or later. diff --git a/src/SMAPI.Mods.ConsoleCommands/manifest.json b/src/SMAPI.Mods.ConsoleCommands/manifest.json index b9a657ee..8b3acc33 100644 --- a/src/SMAPI.Mods.ConsoleCommands/manifest.json +++ b/src/SMAPI.Mods.ConsoleCommands/manifest.json @@ -1,9 +1,9 @@ { "Name": "Console Commands", "Author": "SMAPI", - "Version": "4.1.8", + "Version": "4.1.9", "Description": "Adds SMAPI console commands that let you manipulate the game.", "UniqueID": "SMAPI.ConsoleCommands", "EntryDll": "ConsoleCommands.dll", - "MinimumApiVersion": "4.1.8" + "MinimumApiVersion": "4.1.9" } diff --git a/src/SMAPI.Mods.SaveBackup/manifest.json b/src/SMAPI.Mods.SaveBackup/manifest.json index c8ab0b4c..4f815aaa 100644 --- a/src/SMAPI.Mods.SaveBackup/manifest.json +++ b/src/SMAPI.Mods.SaveBackup/manifest.json @@ -1,9 +1,9 @@ { "Name": "Save Backup", "Author": "SMAPI", - "Version": "4.1.8", + "Version": "4.1.9", "Description": "Automatically backs up all your saves once per day into its folder.", "UniqueID": "SMAPI.SaveBackup", "EntryDll": "SaveBackup.dll", - "MinimumApiVersion": "4.1.8" + "MinimumApiVersion": "4.1.9" } diff --git a/src/SMAPI/Constants.cs b/src/SMAPI/Constants.cs index 5faabf38..7771f516 100644 --- a/src/SMAPI/Constants.cs +++ b/src/SMAPI/Constants.cs @@ -49,7 +49,7 @@ internal static class EarlyConstants internal static int? LogScreenId { get; set; } /// SMAPI's current raw semantic version. - internal static string RawApiVersion = "4.1.8"; + internal static string RawApiVersion = "4.1.9"; } /// Contains SMAPI's constants and assumptions.