Skip to content

Commit

Permalink
Merge branch 'main' into fix/preserve-ongoing-downloads
Browse files Browse the repository at this point in the history
# Conflicts:
#	tests/Networking/NexusMods.Networking.Downloaders.Tests/DownloadServiceDataStoreTests.cs
  • Loading branch information
Al12rs committed Jul 1, 2024
2 parents e07ca73 + 3e5f7e9 commit 6c60b88
Show file tree
Hide file tree
Showing 192 changed files with 311 additions and 5,600 deletions.
70 changes: 0 additions & 70 deletions NexusMods.App.sln
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NexusMods.StandardGameLocat
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NexusMods.StandardGameLocators.Tests", "tests\NexusMods.StandardGameLocators.Tests\NexusMods.StandardGameLocators.Tests.csproj", "{4FD95FB7-BD1D-4D79-90F8-9980DE5D6C28}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NexusMods.Games.BethesdaGameStudios", "src\Games\NexusMods.Games.BethesdaGameStudios\NexusMods.Games.BethesdaGameStudios.csproj", "{5038CF21-CE33-45F0-8C6F-D06D20D604F3}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NexusMods.Games.BethesdaGameStudios.Tests", "tests\Games\NexusMods.Games.BethesdaGameStudios.Tests\NexusMods.Games.BethesdaGameStudios.Tests.csproj", "{DC3AE1FC-8E93-4F33-B937-C51C2F7C350F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NexusMods.App.Cli", "src\NexusMods.App.Cli\NexusMods.App.Cli.csproj", "{D66C4BA1-C129-4DC1-954E-6D9E0B9CB691}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NexusMods.App", "src\NexusMods.App\NexusMods.App.csproj", "{60CAA464-4106-4A29-81ED-3C72AFB1B0B2}"
Expand All @@ -26,8 +22,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NexusMods.App.BuildInfo", "
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NexusMods.FileExtractor.Tests", "tests\NexusMods.FileExtractor.Tests\NexusMods.FileExtractor.Tests.csproj", "{AB2AD95A-17AA-473B-8E1C-02ACED2F8520}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NexusMods.Games.DarkestDungeon", "src\Games\NexusMods.Games.DarkestDungeon\NexusMods.Games.DarkestDungeon.csproj", "{EDDDDE44-9059-4F05-83F4-D0C5D0AE2CC3}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NexusMods.App.UI", "src\NexusMods.App.UI\NexusMods.App.UI.csproj", "{4767144A-0130-47F2-9940-5D68CCBEE241}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NexusMods.StandardGameLocators.TestHelpers", "tests\NexusMods.StandardGameLocators.TestHelpers\NexusMods.StandardGameLocators.TestHelpers.csproj", "{846232AE-BDEA-4673-918E-A2079D4E78E0}"
Expand Down Expand Up @@ -76,12 +70,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NexusMods.Games.FOMOD.Tests
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NexusMods.Games.TestFramework", "tests\Games\NexusMods.Games.TestFramework\NexusMods.Games.TestFramework.csproj", "{F9332FAE-1B43-413B-BEA0-780694B77310}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NexusMods.Games.Sifu", "src\Games\NexusMods.Games.Sifu\NexusMods.Games.Sifu.csproj", "{13551D04-5745-481F-A3AE-DC3CBA5FB2C6}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NexusMods.Games.Sifu.Tests", "tests\Games\NexusMods.Games.Sifu.Tests\NexusMods.Games.Sifu.Tests.csproj", "{C51F3E32-7195-440A-A289-0D83AB668898}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Games.DarkestDungeon.Tests", "tests\Games\NexusMods.Games.DarkestDungeon.Tests\NexusMods.Games.DarkestDungeon.Tests.csproj", "{3DBB08FF-9542-4086-890B-253572C11CFA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Games.StardewValley", "src\Games\NexusMods.Games.StardewValley\NexusMods.Games.StardewValley.csproj", "{E51435EE-F7F0-4B84-AE80-BBC575DCF868}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Games.StardewValley.Tests", "tests\Games\NexusMods.Games.StardewValley.Tests\NexusMods.Games.StardewValley.Tests.csproj", "{84C18EE7-86B5-4C1B-B467-93FED213C713}"
Expand All @@ -108,10 +96,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "benchmarks", "benchmarks",
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.CrossPlatform.Tests", "tests\NexusMods.CrossPlatform.Tests\NexusMods.CrossPlatform.Tests.csproj", "{FE0B804A-949E-44E7-9531-B16664ACEC01}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Games.MountAndBlade2Bannerlord", "src\Games\NexusMods.Games.MountAndBlade2Bannerlord\NexusMods.Games.MountAndBlade2Bannerlord.csproj", "{3E970563-DAE0-4168-AE8D-AB09A786C8A3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Games.MountAndBlade2Bannerlord.Tests", "tests\Games\NexusMods.Games.MountAndBlade2Bannerlord.Tests\NexusMods.Games.MountAndBlade2Bannerlord.Tests.csproj", "{355C8D44-F46F-4AA2-96C0-DDB6844D8BEA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Networking.Downloaders", "src\Networking\NexusMods.Networking.Downloaders\NexusMods.Networking.Downloaders.csproj", "{3FBDEE15-9892-40EF-9593-6353068FAF48}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Networking.Downloaders.Tests", "tests\Networking\NexusMods.Networking.Downloaders.Tests\NexusMods.Networking.Downloaders.Tests.csproj", "{09B037AB-07BB-4154-95FD-6EA2E55C4568}"
Expand All @@ -124,10 +108,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Games.AdvancedIns
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Games.AdvancedInstaller", "src\Games\NexusMods.Games.AdvancedInstaller\NexusMods.Games.AdvancedInstaller.csproj", "{E7E68E07-6732-4FA4-BC4D-6E4249B592FD}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Games.BladeAndSorcery", "src\Games\NexusMods.Games.BladeAndSorcery\NexusMods.Games.BladeAndSorcery.csproj", "{81F23A27-F517-41AD-B86E-6DCE7B4CCE93}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Games.BladeAndSorcery.Tests", "tests\Games\NexusMods.Games.BladeAndSorcery.Tests\NexusMods.Games.BladeAndSorcery.Tests.csproj", "{C2F6C9E5-CC53-44B7-994C-5B9287408263}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Games.AdvancedInstaller.UI", "src\Games\NexusMods.Games.AdvancedInstaller.UI\NexusMods.Games.AdvancedInstaller.UI.csproj", "{07B8ACA6-CE4B-496D-B183-63A57C5F08E1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Games.AdvancedInstaller.UI.Tests", "tests\Games\NexusMods.Games.AdvancedInstaller.UI.Tests\NexusMods.Games.AdvancedInstaller.UI.Tests.csproj", "{2BFAAE53-AFFF-4F0B-AD76-67918665F298}"
Expand Down Expand Up @@ -252,14 +232,6 @@ Global
{4FD95FB7-BD1D-4D79-90F8-9980DE5D6C28}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4FD95FB7-BD1D-4D79-90F8-9980DE5D6C28}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4FD95FB7-BD1D-4D79-90F8-9980DE5D6C28}.Release|Any CPU.Build.0 = Release|Any CPU
{5038CF21-CE33-45F0-8C6F-D06D20D604F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5038CF21-CE33-45F0-8C6F-D06D20D604F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5038CF21-CE33-45F0-8C6F-D06D20D604F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5038CF21-CE33-45F0-8C6F-D06D20D604F3}.Release|Any CPU.Build.0 = Release|Any CPU
{DC3AE1FC-8E93-4F33-B937-C51C2F7C350F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DC3AE1FC-8E93-4F33-B937-C51C2F7C350F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DC3AE1FC-8E93-4F33-B937-C51C2F7C350F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DC3AE1FC-8E93-4F33-B937-C51C2F7C350F}.Release|Any CPU.Build.0 = Release|Any CPU
{D66C4BA1-C129-4DC1-954E-6D9E0B9CB691}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D66C4BA1-C129-4DC1-954E-6D9E0B9CB691}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D66C4BA1-C129-4DC1-954E-6D9E0B9CB691}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand Down Expand Up @@ -292,10 +264,6 @@ Global
{AB2AD95A-17AA-473B-8E1C-02ACED2F8520}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AB2AD95A-17AA-473B-8E1C-02ACED2F8520}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AB2AD95A-17AA-473B-8E1C-02ACED2F8520}.Release|Any CPU.Build.0 = Release|Any CPU
{EDDDDE44-9059-4F05-83F4-D0C5D0AE2CC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EDDDDE44-9059-4F05-83F4-D0C5D0AE2CC3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EDDDDE44-9059-4F05-83F4-D0C5D0AE2CC3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EDDDDE44-9059-4F05-83F4-D0C5D0AE2CC3}.Release|Any CPU.Build.0 = Release|Any CPU
{4767144A-0130-47F2-9940-5D68CCBEE241}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4767144A-0130-47F2-9940-5D68CCBEE241}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4767144A-0130-47F2-9940-5D68CCBEE241}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand Down Expand Up @@ -360,18 +328,6 @@ Global
{F9332FAE-1B43-413B-BEA0-780694B77310}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F9332FAE-1B43-413B-BEA0-780694B77310}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F9332FAE-1B43-413B-BEA0-780694B77310}.Release|Any CPU.Build.0 = Release|Any CPU
{3DBB08FF-9542-4086-890B-253572C11CFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3DBB08FF-9542-4086-890B-253572C11CFA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3DBB08FF-9542-4086-890B-253572C11CFA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3DBB08FF-9542-4086-890B-253572C11CFA}.Release|Any CPU.Build.0 = Release|Any CPU
{13551D04-5745-481F-A3AE-DC3CBA5FB2C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{13551D04-5745-481F-A3AE-DC3CBA5FB2C6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{13551D04-5745-481F-A3AE-DC3CBA5FB2C6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{13551D04-5745-481F-A3AE-DC3CBA5FB2C6}.Release|Any CPU.Build.0 = Release|Any CPU
{C51F3E32-7195-440A-A289-0D83AB668898}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C51F3E32-7195-440A-A289-0D83AB668898}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C51F3E32-7195-440A-A289-0D83AB668898}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C51F3E32-7195-440A-A289-0D83AB668898}.Release|Any CPU.Build.0 = Release|Any CPU
{E51435EE-F7F0-4B84-AE80-BBC575DCF868}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E51435EE-F7F0-4B84-AE80-BBC575DCF868}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E51435EE-F7F0-4B84-AE80-BBC575DCF868}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand All @@ -384,14 +340,6 @@ Global
{FE0B804A-949E-44E7-9531-B16664ACEC01}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FE0B804A-949E-44E7-9531-B16664ACEC01}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FE0B804A-949E-44E7-9531-B16664ACEC01}.Release|Any CPU.Build.0 = Release|Any CPU
{3E970563-DAE0-4168-AE8D-AB09A786C8A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3E970563-DAE0-4168-AE8D-AB09A786C8A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3E970563-DAE0-4168-AE8D-AB09A786C8A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3E970563-DAE0-4168-AE8D-AB09A786C8A3}.Release|Any CPU.Build.0 = Release|Any CPU
{355C8D44-F46F-4AA2-96C0-DDB6844D8BEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{355C8D44-F46F-4AA2-96C0-DDB6844D8BEA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{355C8D44-F46F-4AA2-96C0-DDB6844D8BEA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{355C8D44-F46F-4AA2-96C0-DDB6844D8BEA}.Release|Any CPU.Build.0 = Release|Any CPU
{3FBDEE15-9892-40EF-9593-6353068FAF48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3FBDEE15-9892-40EF-9593-6353068FAF48}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3FBDEE15-9892-40EF-9593-6353068FAF48}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand All @@ -416,14 +364,6 @@ Global
{E7E68E07-6732-4FA4-BC4D-6E4249B592FD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E7E68E07-6732-4FA4-BC4D-6E4249B592FD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E7E68E07-6732-4FA4-BC4D-6E4249B592FD}.Release|Any CPU.Build.0 = Release|Any CPU
{81F23A27-F517-41AD-B86E-6DCE7B4CCE93}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{81F23A27-F517-41AD-B86E-6DCE7B4CCE93}.Debug|Any CPU.Build.0 = Debug|Any CPU
{81F23A27-F517-41AD-B86E-6DCE7B4CCE93}.Release|Any CPU.ActiveCfg = Release|Any CPU
{81F23A27-F517-41AD-B86E-6DCE7B4CCE93}.Release|Any CPU.Build.0 = Release|Any CPU
{C2F6C9E5-CC53-44B7-994C-5B9287408263}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C2F6C9E5-CC53-44B7-994C-5B9287408263}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C2F6C9E5-CC53-44B7-994C-5B9287408263}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C2F6C9E5-CC53-44B7-994C-5B9287408263}.Release|Any CPU.Build.0 = Release|Any CPU
{07B8ACA6-CE4B-496D-B183-63A57C5F08E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{07B8ACA6-CE4B-496D-B183-63A57C5F08E1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{07B8ACA6-CE4B-496D-B183-63A57C5F08E1}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand Down Expand Up @@ -640,34 +580,24 @@ Global
{D7E9D8F5-8AC8-4ADA-B219-C549084AD84C} = {E7BAE287-D505-4D6D-A090-665A64309B2D}
{41A7AD76-4800-4B43-B314-5DD1A767CB19} = {D7E9D8F5-8AC8-4ADA-B219-C549084AD84C}
{31ABE512-38F8-410E-A5A4-364C995413F7} = {D7E9D8F5-8AC8-4ADA-B219-C549084AD84C}
{5038CF21-CE33-45F0-8C6F-D06D20D604F3} = {70D38D24-79AE-4600-8E83-17F3C11BA81F}
{EDDDDE44-9059-4F05-83F4-D0C5D0AE2CC3} = {70D38D24-79AE-4600-8E83-17F3C11BA81F}
{B43A31B2-1F08-4D8E-9C45-48015FBA983E} = {70D38D24-79AE-4600-8E83-17F3C11BA81F}
{A9C1152E-6253-41FB-99C6-506F1C755032} = {70D38D24-79AE-4600-8E83-17F3C11BA81F}
{B9CDD38F-31FD-47BE-91EB-E2BFABC3860B} = {70D38D24-79AE-4600-8E83-17F3C11BA81F}
{13551D04-5745-481F-A3AE-DC3CBA5FB2C6} = {70D38D24-79AE-4600-8E83-17F3C11BA81F}
{E51435EE-F7F0-4B84-AE80-BBC575DCF868} = {70D38D24-79AE-4600-8E83-17F3C11BA81F}
{DC3AE1FC-8E93-4F33-B937-C51C2F7C350F} = {05B06AC1-7F2B-492F-983E-5BC63CDBF20D}
{3DBB08FF-9542-4086-890B-253572C11CFA} = {05B06AC1-7F2B-492F-983E-5BC63CDBF20D}
{678D0CB7-EA46-4DF2-8C91-E77EA2270C48} = {05B06AC1-7F2B-492F-983E-5BC63CDBF20D}
{B8BA0738-FE06-4CC7-B46D-DF283871F192} = {05B06AC1-7F2B-492F-983E-5BC63CDBF20D}
{C51F3E32-7195-440A-A289-0D83AB668898} = {05B06AC1-7F2B-492F-983E-5BC63CDBF20D}
{84C18EE7-86B5-4C1B-B467-93FED213C713} = {05B06AC1-7F2B-492F-983E-5BC63CDBF20D}
{F9332FAE-1B43-413B-BEA0-780694B77310} = {05B06AC1-7F2B-492F-983E-5BC63CDBF20D}
{7CDE7572-9471-4966-B3B3-70DF7D2D9269} = {70D38D24-79AE-4600-8E83-17F3C11BA81F}
{060613B7-92CA-418B-99CC-CA30C0D977DB} = {70D38D24-79AE-4600-8E83-17F3C11BA81F}
{CB61A764-B3BB-42C0-8CDB-DBE57FB80DF5} = {CF7454A5-0EBB-46E7-9A10-614380DB95D9}
{FE0B804A-949E-44E7-9531-B16664ACEC01} = {52AF9D62-7D5B-4AD0-BA12-86F2AA67428B}
{3E970563-DAE0-4168-AE8D-AB09A786C8A3} = {70D38D24-79AE-4600-8E83-17F3C11BA81F}
{355C8D44-F46F-4AA2-96C0-DDB6844D8BEA} = {05B06AC1-7F2B-492F-983E-5BC63CDBF20D}
{3FBDEE15-9892-40EF-9593-6353068FAF48} = {D7E9D8F5-8AC8-4ADA-B219-C549084AD84C}
{09B037AB-07BB-4154-95FD-6EA2E55C4568} = {897C4198-884F-448A-B0B0-C2A6D971EAE0}
{AA95B93F-23AC-46D5-83B3-2E7AE4BD309C} = {05B06AC1-7F2B-492F-983E-5BC63CDBF20D}
{500CE772-93C3-4DA9-9AB3-E9E9EC0A9429} = {70D38D24-79AE-4600-8E83-17F3C11BA81F}
{63BC2EE7-18E5-4887-913A-4843DBBE2C8D} = {05B06AC1-7F2B-492F-983E-5BC63CDBF20D}
{E7E68E07-6732-4FA4-BC4D-6E4249B592FD} = {70D38D24-79AE-4600-8E83-17F3C11BA81F}
{81F23A27-F517-41AD-B86E-6DCE7B4CCE93} = {70D38D24-79AE-4600-8E83-17F3C11BA81F}
{C2F6C9E5-CC53-44B7-994C-5B9287408263} = {05B06AC1-7F2B-492F-983E-5BC63CDBF20D}
{07B8ACA6-CE4B-496D-B183-63A57C5F08E1} = {70D38D24-79AE-4600-8E83-17F3C11BA81F}
{2BFAAE53-AFFF-4F0B-AD76-67918665F298} = {05B06AC1-7F2B-492F-983E-5BC63CDBF20D}
{0CB73565-1207-4A56-A79F-6A8E9BBD795C} = {E7BAE287-D505-4D6D-A090-665A64309B2D}
Expand Down
1 change: 1 addition & 0 deletions NexusMods.App.sln.DotSettings
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=EA/@EntryIndexedValue">EA</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=GOG/@EntryIndexedValue">GOG</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=JWT/@EntryIndexedValue">JWT</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=MIME/@EntryIndexedValue">MIME</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=VM/@EntryIndexedValue">VM</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/XamlNaming/Abbreviations/=LG/@EntryIndexedValue">LG</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/XamlNaming/Abbreviations/=MD/@EntryIndexedValue">MD</s:String>
Expand Down
23 changes: 17 additions & 6 deletions docs/developers/Contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,24 @@ Translations are currently handled via the IDE. See [this issue](https://github.

## For Package Maintainers

If you want to create a package for your distribution, here are some helpful tips to get started:
If you want to create a package for your distribution, here are some helpful tips to get started. If you have questions or want to let us know about your new package, consider joining our [Discord](https://discord.gg/ReWTxb93jS).

- If possible, use `nexusmods-app` for the package name.
- We ship a build of `7zz` and use that executable unless you set `NEXUSMODS_APP_USE_SYSTEM_EXTRACTOR=1` when publishing. See [this issue](https://github.com/Nexus-Mods/NexusMods.App/issues/1306#issuecomment-2095755699) for details.
- Set `INSTALLATION_METHOD_PACKAGE_MANAGER` when publishing. We have an integrated updater that will notify users about new versions. If you set this flag, we'll tell the user to update the App with their package manager.
- Let us know if you have questions or if you published a new package by joining our [Discord](https://discord.gg/ReWTxb93jS).
If possible, use `nexusmods-app` for the package name and `com.nexusmods.app` as the rDNS ID for Flatpaks and similar. See [Linux Dependencies](../users/SystemRequirements.md#linux-dependencies) for a list of dependencies.

There are various build variables you should consider using. You can set compile constants using `-p:DefineConstants="NAME"` with `dotnet build` or `dotnet publish`. For a full list of available application-specific compile constants, see [`Directory.Build.props`](../../Directory.Build.props):

- `NEXUSMODS_APP_USE_SYSTEM_EXTRACTOR`: We ship a build of `7zz` that you can disable. Setting this constant will force the code to use `7zz` available in `PATH`. See [#1306](https://github.com/Nexus-Mods/NexusMods.App/issues/1306#issuecomment-2095755699) for details. Do note that some versions of `7zz` don't support RAR files, due to licensing issues. The build that the App ships with supports RAR files. Many mods still come in RAR archives, for a better user experience, we expect `7zz` to support RAR files. We won't accept issues around extraction failures for builds that don't support RAR archives.
- `INSTALLATION_METHOD_PACKAGE_MANAGER`: This constant will prevent the App from generating a `.desktop` file at runtime, and will change the update notification that notifies the user about new versions. If this constant is set, the App will tell the user to update using their package manager.

We publish the App using [PupNet](https://github.com/kuiperzone/PupNet-Deploy). Releases are built using GitHub Actions, see [`build-linux-pupnet.yaml`](https://github.com/Nexus-Mods/NexusMods.App/blob/main/.github/workflows/build-linux-pupnet.yaml) for details. PupNet will use `dotnet publish` before packaging the result in some specialized format.

If you don't wish to use PupNet, you should still use `dotnet publish` over `dotnet build`. The arguments we use with `dotnet publish` can be found in [`app.pupnet.conf`](https://github.com/Nexus-Mods/NexusMods.App/blob/main/src/NexusMods.App/app.pupnet.conf). Also see the [`dotnet publish` documentation](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-publish#options) for a list of options.
If you don't wish to use PupNet, you should still prefer `dotnet publish` over `dotnet build`. The arguments we use with `dotnet publish` can be found in [`app.pupnet.conf`](https://github.com/Nexus-Mods/NexusMods.App/blob/main/src/NexusMods.App/app.pupnet.conf). Also see the [`dotnet publish` documentation](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-publish#options) for a list of options.

We provide a [Desktop Entry](https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html) file called [`com.nexusmods.app.desktop`](../../src/NexusMods.App/com.nexusmods.app.desktop). When building the package, you should use this file and replace `${INSTALL_EXEC}` with an absolute path to the `NexusMods.App` binary.

The App will [generate](../../src/NexusMods.CrossPlatform/ProtocolRegistration/ProtocolRegistrationLinux.cs) this `.desktop` file and replace the placeholder with the absolute path to the executable if `INSTALLATION_METHOD_PACKAGE_MANAGER` is not set.

Besides the Desktop Entry file, we also provide the following files that you should make use of, if possible:

- [AppStream](https://www.freedesktop.org/software/appstream/docs/) [`com.nexusmods.app.metainfo.xml`](../../src/NexusMods.App/com.nexusmods.app.metainfo.xml)
- [`icon.svg`](../../src/NexusMods.App/icon.svg) and [`icon.ico`](../../src/NexusMods.App/icon.ico)
Loading

0 comments on commit 6c60b88

Please sign in to comment.