Skip to content

Commit 0ce39e2

Browse files
committed
Merge branch 'develop' into stable
2 parents 53e0e8c + 4e27841 commit 0ce39e2

File tree

28 files changed

+200
-123
lines changed

28 files changed

+200
-123
lines changed

build/common.targets

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,16 @@ repo. It imports the other MSBuild files as needed.
77
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
88
<PropertyGroup>
99
<!--set general build properties -->
10-
<Version>3.18.3</Version>
10+
<Version>3.18.4</Version>
1111
<Product>SMAPI</Product>
1212
<LangVersion>latest</LangVersion>
1313
<AssemblySearchPaths>$(AssemblySearchPaths);{GAC}</AssemblySearchPaths>
1414
<DefineConstants>$(DefineConstants);SMAPI_DEPRECATED</DefineConstants>
1515
<DebugSymbols>true</DebugSymbols>
1616

17+
<!--embed symbols for error stack trace line numbers on Linux/macOS: https://github.com/dotnet/runtime/issues/39987-->
18+
<DebugType>embedded</DebugType>
19+
1720
<!--enable nullable annotations, except in .NET Standard 2.0 where they aren't supported-->
1821
<Nullable Condition="'$(TargetFramework)' != 'netstandard2.0'">enable</Nullable>
1922
<NoWarn Condition="'$(TargetFramework)' == 'netstandard2.0'">$(NoWarn);CS8632</NoWarn>

build/deploy-local-smapi.targets

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ This assumes `find-game-folder.targets` has already been imported and validated.
1818
<Copy SourceFiles="$(TargetDir)\$(TargetName).dll" DestinationFolder="$(GamePath)" />
1919
<Copy SourceFiles="$(TargetDir)\$(TargetName).exe" DestinationFolder="$(GamePath)" Condition="$(OS) == 'Windows_NT'" />
2020
<Copy SourceFiles="$(TargetDir)\$(TargetName)" DestinationFolder="$(GamePath)" Condition="$(OS) != 'Windows_NT'" />
21-
<Copy SourceFiles="$(TargetDir)\$(TargetName).pdb" DestinationFolder="$(GamePath)" />
2221
<Copy SourceFiles="$(TargetDir)\$(TargetName).xml" DestinationFolder="$(GamePath)" />
2322
<Copy SourceFiles="$(TargetDir)\SMAPI.config.json" DestinationFiles="$(GamePath)\smapi-internal\config.json" />
2423
<Copy SourceFiles="$(TargetDir)\SMAPI.metadata.json" DestinationFiles="$(GamePath)\smapi-internal\metadata.json" />
@@ -62,20 +61,17 @@ This assumes `find-game-folder.targets` has already been imported and validated.
6261
</ItemGroup>
6362

6463
<Copy SourceFiles="$(TargetDir)\$(TargetName).dll" DestinationFolder="$(GamePath)\Mods\$(AssemblyName)" />
65-
<Copy SourceFiles="$(TargetDir)\$(TargetName).pdb" DestinationFolder="$(GamePath)\Mods\$(AssemblyName)" Condition="Exists('$(TargetDir)\$(TargetName).pdb')" />
6664
<Copy SourceFiles="$(TargetDir)\manifest.json" DestinationFolder="$(GamePath)\Mods\$(AssemblyName)" />
6765
<Copy SourceFiles="@(TranslationFiles)" DestinationFolder="$(GamePath)\Mods\$(AssemblyName)\i18n" />
6866
</Target>
6967

7068
<!-- toolkit -->
7169
<Target Name="CopyToolkit" Condition="'$(MSBuildProjectName)' == 'SMAPI.Toolkit'" AfterTargets="PostBuildEvent">
7270
<Copy SourceFiles="$(TargetDir)\$(TargetName).dll" DestinationFolder="$(GamePath)\smapi-internal" />
73-
<Copy SourceFiles="$(TargetDir)\$(TargetName).pdb" DestinationFolder="$(GamePath)\smapi-internal" />
7471
<Copy SourceFiles="$(TargetDir)\$(TargetName).xml" DestinationFolder="$(GamePath)\smapi-internal" />
7572
</Target>
7673
<Target Name="CopyToolkitCoreInterfaces" Condition="'$(MSBuildProjectName)' == 'SMAPI.Toolkit.CoreInterfaces'" AfterTargets="PostBuildEvent">
7774
<Copy SourceFiles="$(TargetDir)\$(TargetName).dll" DestinationFolder="$(GamePath)\smapi-internal" />
78-
<Copy SourceFiles="$(TargetDir)\$(TargetName).pdb" DestinationFolder="$(GamePath)\smapi-internal" />
7975
<Copy SourceFiles="$(TargetDir)\$(TargetName).xml" DestinationFolder="$(GamePath)\smapi-internal" />
8076
</Target>
8177
</Project>

build/unix/prepare-install-package.sh

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ for folder in ${folders[@]}; do
122122
fi
123123

124124
# bundle root files
125-
for name in "StardewModdingAPI" "StardewModdingAPI.dll" "StardewModdingAPI.pdb" "StardewModdingAPI.xml" "steam_appid.txt"; do
125+
for name in "StardewModdingAPI" "StardewModdingAPI.dll" "StardewModdingAPI.xml" "steam_appid.txt"; do
126126
if [ $name == "StardewModdingAPI" ] && [ $folder == "windows" ]; then
127127
name="$name.exe"
128128
fi
@@ -134,7 +134,7 @@ for folder in ${folders[@]}; do
134134
cp -r "$smapiBin/i18n" "$bundlePath/smapi-internal"
135135

136136
# bundle smapi-internal
137-
for name in "0Harmony.dll" "0Harmony.xml" "Mono.Cecil.dll" "Mono.Cecil.Mdb.dll" "Mono.Cecil.Pdb.dll" "MonoMod.Common.dll" "Newtonsoft.Json.dll" "Pathoschild.Http.Client.dll" "Pintail.dll" "TMXTile.dll" "SMAPI.Toolkit.dll" "SMAPI.Toolkit.pdb" "SMAPI.Toolkit.xml" "SMAPI.Toolkit.CoreInterfaces.dll" "SMAPI.Toolkit.CoreInterfaces.pdb" "SMAPI.Toolkit.CoreInterfaces.xml" "System.Net.Http.Formatting.dll"; do
137+
for name in "0Harmony.dll" "0Harmony.xml" "Mono.Cecil.dll" "Mono.Cecil.Mdb.dll" "Mono.Cecil.Pdb.dll" "MonoMod.Common.dll" "Newtonsoft.Json.dll" "Pathoschild.Http.Client.dll" "Pintail.dll" "TMXTile.dll" "SMAPI.Toolkit.dll" "SMAPI.Toolkit.xml" "SMAPI.Toolkit.CoreInterfaces.dll" "SMAPI.Toolkit.CoreInterfaces.xml" "System.Net.Http.Formatting.dll"; do
138138
cp "$smapiBin/$name" "$bundlePath/smapi-internal"
139139
done
140140

@@ -164,7 +164,6 @@ for folder in ${folders[@]}; do
164164
mkdir "$targetPath" --parents
165165

166166
cp "$fromPath/$modName.dll" "$targetPath"
167-
cp "$fromPath/$modName.pdb" "$targetPath"
168167
cp "$fromPath/manifest.json" "$targetPath"
169168
if [ -d "$fromPath/i18n" ]; then
170169
cp -r "$fromPath/i18n" "$targetPath"

build/windows/prepare-install-package.ps1

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ foreach ($folder in $folders) {
142142
}
143143

144144
# bundle root files
145-
foreach ($name in @("StardewModdingAPI", "StardewModdingAPI.dll", "StardewModdingAPI.pdb", "StardewModdingAPI.xml", "steam_appid.txt")) {
145+
foreach ($name in @("StardewModdingAPI", "StardewModdingAPI.dll", "StardewModdingAPI.xml", "steam_appid.txt")) {
146146
if ($name -eq "StardewModdingAPI" -and $folder -eq "windows") {
147147
$name = "$name.exe"
148148
}
@@ -154,7 +154,7 @@ foreach ($folder in $folders) {
154154
cp -Recurse "$smapiBin/i18n" "$bundlePath/smapi-internal"
155155

156156
# bundle smapi-internal
157-
foreach ($name in @("0Harmony.dll", "0Harmony.xml", "Mono.Cecil.dll", "Mono.Cecil.Mdb.dll", "Mono.Cecil.Pdb.dll", "MonoMod.Common.dll", "Newtonsoft.Json.dll", "Pathoschild.Http.Client.dll", "Pintail.dll", "TMXTile.dll", "SMAPI.Toolkit.dll", "SMAPI.Toolkit.pdb", "SMAPI.Toolkit.xml", "SMAPI.Toolkit.CoreInterfaces.dll", "SMAPI.Toolkit.CoreInterfaces.pdb", "SMAPI.Toolkit.CoreInterfaces.xml", "System.Net.Http.Formatting.dll")) {
157+
foreach ($name in @("0Harmony.dll", "0Harmony.xml", "Mono.Cecil.dll", "Mono.Cecil.Mdb.dll", "Mono.Cecil.Pdb.dll", "MonoMod.Common.dll", "Newtonsoft.Json.dll", "Pathoschild.Http.Client.dll", "Pintail.dll", "TMXTile.dll", "SMAPI.Toolkit.dll", "SMAPI.Toolkit.xml", "SMAPI.Toolkit.CoreInterfaces.dll", "SMAPI.Toolkit.CoreInterfaces.xml", "System.Net.Http.Formatting.dll")) {
158158
cp "$smapiBin/$name" "$bundlePath/smapi-internal"
159159
}
160160

@@ -189,7 +189,6 @@ foreach ($folder in $folders) {
189189
mkdir "$targetPath" > $null
190190

191191
cp "$fromPath/$modName.dll" "$targetPath"
192-
cp "$fromPath/$modName.pdb" "$targetPath"
193192
cp "$fromPath/manifest.json" "$targetPath"
194193
if (Test-Path "$fromPath/i18n" -PathType Container) {
195194
cp -Recurse "$fromPath/i18n" "$targetPath"

docs/release-notes.md

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,29 @@
77
_If needed, you can update to SMAPI 3.16.0 first and then install the latest version._
88
-->
99

10+
## 3.18.4
11+
Released 24 June 2023 for Stardew Valley 1.5.6 or later.
12+
13+
* For players:
14+
* In multiplayer, the game/SMAPI window titles now show whether you're the main player or a farmhand.
15+
* The `test_input` console command now logs input until the command is run again (instead of for 30 seconds).
16+
* Fixed logged SMAPI errors not having line numbers on Linux/macOS.
17+
* Fixed wezterm terminal support on Linux/macoS (thanks to romangraef!).
18+
* Fixed install error if a game folder has an invalid symlink.
19+
20+
* For mod authors:
21+
* Added `--no-prompt` installer command-line argument for automated tools (thanks to NyCodeGHG!).
22+
* Added clearer error message when a map tilesheet has no image source (thanks to atravita!).
23+
* Fixed `Context.HasRemotePlayers` being true when there's no farmhands connected.
24+
* Fixed error loading a mod if it explicitly sets `"MinimumApiVersion": null`.
25+
* Updated Newtonsoft.Json 13.0.2 → 13.0.3 (see [changes](https://github.com/JamesNK/Newtonsoft.Json/releases/tag/13.0.3)) and Pintail 2.2.2 → 2.3.0 (see [changes](https://github.com/Nanoray-pl/Pintail/blob/master/docs/release-notes.md#230)).
26+
27+
* For SMAPI toolkit users:
28+
* Fixed `ModFolder` not being JSON-serializable.
29+
30+
* For the web API:
31+
* Fixed manifest schema format for the `examples` field (thanks to boneskull!).
32+
1033
## 3.18.3
1134
Released 09 April 2023 for Stardew Valley 1.5.6 or later.
1235

@@ -15,7 +38,7 @@ Released 09 April 2023 for Stardew Valley 1.5.6 or later.
1538
* Fixed installer error for some Linux players due to a non-portable shebang (thanks to freyacoded!).
1639
* Fixed error using load order overrides when there are broken mods installed (thanks to atravita!).
1740
* Removed `LargeAddressAware` flag on SMAPI (no longer needed since it's 64-bit now).
18-
* Improved translations. Thganks to stylemate (updated Korean)!
41+
* Improved translations. Thanks to stylemate (updated Korean)!
1942

2043
* For mod authors:
2144
* Added `IsActiveForScreen()` method to `PerScreen<T>`.

docs/technical/mod-package.md

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -416,28 +416,33 @@ The NuGet package is generated automatically in `StardewModdingAPI.ModBuildConfi
416416
when you compile it.
417417

418418
## Release notes
419+
## 4.1.1
420+
Released 24 June 2023 for SMAPI 3.13.0 or later.
421+
422+
* Replaced `.pdb` files with embedded symbols by default. This fixes logged errors not having line numbers on Linux/macOS.
423+
419424
### 4.1.0
420-
Released 08 January 2023.
425+
Released 08 January 2023 for SMAPI 3.13.0 or later.
421426

422427
* Added `manifest.json` format validation on build (thanks to tylergibbs2!).
423428
* Fixed game DLLs not excluded from the release zip when they're referenced explicitly but `BundleExtraAssemblies` isn't set.
424429

425430
### 4.0.2
426-
Released 09 October 2022.
431+
Released 09 October 2022 for SMAPI 3.13.0 or later.
427432

428433
* Switched to the newer crossplatform `portable` debug symbols (thanks to lanturnalis!).
429434
* Fixed `BundleExtraAssemblies` option being partly case-sensitive.
430435
* Fixed `BundleExtraAssemblies` not applying `All` value to game assemblies.
431436

432437
### 4.0.1
433-
Released 14 April 2022.
438+
Released 14 April 2022 for SMAPI 3.13.0 or later.
434439

435440
* Added detection for Xbox app game folders.
436441
* Fixed "_conflicts between different versions of Microsoft.Win32.Registry_" warnings in recent SMAPI versions.
437442
* Internal refactoring.
438443

439444
### 4.0.0
440-
Released 30 November 2021.
445+
Released 30 November 2021 for SMAPI 3.13.0 or later.
441446

442447
* Updated for Stardew Valley 1.5.5 and SMAPI 3.13.0. (Older versions are no longer supported.)
443448
* Added `IgnoreModFilePaths` option to ignore literal paths.
@@ -459,7 +464,7 @@ Released 30 November 2021.
459464
documentation](#configure).
460465

461466
### 3.3.0
462-
Released 30 March 2021.
467+
Released 30 March 2021 for SMAPI 3.0.0 or later.
463468

464469
* Added a build warning when the mod isn't compiled for `Any CPU`.
465470
* Added a `GameFramework` build property set to `MonoGame` or `Xna` based on the platform. This can
@@ -468,32 +473,32 @@ Released 30 March 2021.
468473
* The package now suppresses the misleading 'processor architecture mismatch' warnings.
469474

470475
### 3.2.2
471-
Released 23 September 2020.
476+
Released 23 September 2020 for SMAPI 3.0.0 or later.
472477

473478
* Reworked and streamlined how the package is compiled.
474479
* Added [SMAPI-ModTranslationClassBuilder](https://github.com/Pathoschild/SMAPI-ModTranslationClassBuilder)
475480
files to the ignore list.
476481

477482
### 3.2.1
478-
Released 11 September 2020.
483+
Released 11 September 2020 for SMAPI 3.0.0 or later.
479484

480485
* Added more detailed logging.
481486
* Fixed _path's format is not supported_ error when using default `Mods` path in 3.2.
482487

483488
### 3.2.0
484-
Released 07 September 2020.
489+
Released 07 September 2020 for SMAPI 3.0.0 or later.
485490

486491
* Added option to change `Mods` folder path.
487492
* Rewrote documentation to make it easier to read.
488493

489494
### 3.1.0
490-
Released 01 February 2020.
495+
Released 01 February 2020 for SMAPI 3.0.0 or later.
491496

492497
* Added support for semantic versioning 2.0.
493498
* `0Harmony.dll` is now ignored if the mod references Harmony directly (it's bundled with SMAPI).
494499

495500
### 3.0.0
496-
Released 26 November 2019.
501+
Released 26 November 2019 for SMAPI 3.0.0 or later.
497502

498503
* Updated for SMAPI 3.0 and Stardew Valley 1.4.
499504
* Added automatic support for `assets` folders.

docs/technical/smapi.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ argument | purpose
3232
`--install` | Preselects the install action, skipping the prompt asking what the user wants to do.
3333
`--uninstall` | Preselects the uninstall action, skipping the prompt asking what the user wants to do.
3434
`--game-path "path"` | Specifies the full path to the folder containing the Stardew Valley executable, skipping automatic detection and any prompt to choose a path. If the path is not valid, the installer displays an error.
35+
`--no-prompt` | Don't let the installer wait for user input (e.g. for cases where it's being run by a script). If the installer is unable to continue without user input, it'll fail instead.
3536

3637
SMAPI itself recognises five arguments, but these are meant for internal use or testing, and might
3738
change without warning. **On Linux/macOS**, command-line arguments won't work; see _environment

0 commit comments

Comments
 (0)