Skip to content

Commit

Permalink
Merge branch 'main' into #38-Add-Game-FalloutNV
Browse files Browse the repository at this point in the history
# Conflicts:
#	NexusMods.App.sln
#	src/NexusMods.App/Services.cs
  • Loading branch information
MistaOmega committed Oct 4, 2024
2 parents a049d0e + f3b2e21 commit 55cd307
Show file tree
Hide file tree
Showing 131 changed files with 4,649 additions and 764 deletions.
46 changes: 23 additions & 23 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,17 @@
<PackageVersion Include="Avalonia.Labs.Panels" Version="11.1.0" />
<PackageVersion Include="Avalonia.Skia" Version="11.1.0" />
<PackageVersion Include="AvaloniaEdit.TextMate" Version="11.1.0" />
<PackageVersion Include="FlatSharp.Compiler" Version="7.6.0" />
<PackageVersion Include="FlatSharp.Runtime" Version="7.6.0" />
<PackageVersion Include="LinqGen" Version="0.3.1" />
<PackageVersion Include="Microsoft.Extensions.Http.Resilience" Version="8.8.0" />
<PackageVersion Include="Microsoft.Extensions.Options" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Http.Resilience" Version="8.9.1" />
<PackageVersion Include="Microsoft.Extensions.Options" Version="8.0.2" />
<PackageVersion Include="Nerdbank.FullDuplexStream" Version="1.1.12" />
<PackageVersion Include="Nerdbank.Streams" Version="2.11.74" />
<PackageVersion Include="NexusMods.Paths" Version="0.10.0" />
<PackageVersion Include="NexusMods.MnemonicDB.Abstractions" Version="0.9.86" />
<PackageVersion Include="NexusMods.MnemonicDB" Version="0.9.86" />
<PackageVersion Include="NexusMods.Hashing.xxHash64" Version="2.0.1" />
<PackageVersion Include="NexusMods.Hashing.xxHash64" Version="2.0.2" />
<PackageVersion Include="NexusMods.Paths.Extensions.Nx" Version="0.10.0" />
<PackageVersion Include="NexusMods.Paths.TestingHelpers" Version="0.9.5" />
<PackageVersion Include="NexusMods.Paths.TestingHelpers" Version="0.10.0" />
<PackageVersion Include="NexusMods.Archives.Nx" Version="0.5.0" />
<PackageVersion Include="NexusMods.Telemetry.OpenTelemetry" Version="1.0.0" />
<PackageVersion Include="FomodInstaller.Interface" Version="1.2.0" />
Expand All @@ -26,11 +24,11 @@
<PackageVersion Include="NLog" Version="5.2.8" />
<PackageVersion Include="Noggog.CSharpExt" Version="2.64.0" />
<PackageVersion Include="ObservableCollections" Version="2.2.0" />
<PackageVersion Include="ObservableCollections.R3" Version="3.0.1" />
<PackageVersion Include="Polly" Version="8.4.1" />
<PackageVersion Include="R3" Version="1.2.8" />
<PackageVersion Include="R3Extensions.Avalonia" Version="1.2.8" />
<PackageVersion Include="ReactiveUI" Version="20.1.1" />
<PackageVersion Include="ObservableCollections.R3" Version="3.1.0" />
<PackageVersion Include="QoiSharp" Version="1.0.0" />
<PackageVersion Include="R3" Version="1.2.9" />
<PackageVersion Include="R3Extensions.Avalonia" Version="1.2.9" />
<PackageVersion Include="ReactiveUI" Version="20.1.63" />
<PackageVersion Include="Spectre.Console.Testing" Version="0.49.1" />
<PackageVersion Include="StrawberryShake.Server" Version="13.9.12" />
<PackageVersion Include="System.Linq" Version="4.3.0" />
Expand All @@ -39,6 +37,8 @@
<PackageVersion Include="OpenTelemetry" Version="1.8.1" />
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.8.1" />
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.8.1" />
<PackageVersion Include="Polly.Core" Version="8.4.2" />
<PackageVersion Include="Polly" Version="8.4.2" />
</ItemGroup>
<ItemGroup>
<PackageVersion Include="MemoryPack.Streaming" Version="1.21.1" />
Expand All @@ -58,8 +58,8 @@
<PackageVersion Include="Avalonia.Headless" Version="11.1.3" />
<PackageVersion Include="Avalonia.ReactiveUI" Version="11.1.3" />
<PackageVersion Include="Avalonia.Themes.Fluent" Version="11.1.3" />
<PackageVersion Include="Projektanker.Icons.Avalonia.MaterialDesign" Version="9.3.0" />
<PackageVersion Include="Avalonia.Svg.Skia" Version="11.1.0" />
<PackageVersion Include="Projektanker.Icons.Avalonia.MaterialDesign" Version="9.4.0" />
<PackageVersion Include="Avalonia.Svg.Skia" Version="11.1.0.1" />
<PackageVersion Include="LiveChartsCore.SkiaSharpView.Avalonia" Version="2.0.0-rc2" />
<!-- keep this version in sync with Avalonia (https://github.com/whistyun/Markdown.Avalonia?tab=readme-ov-file#nuget) -->
<PackageVersion Include="Markdown.Avalonia.Tight" Version="11.0.3-a1" />
Expand All @@ -69,18 +69,18 @@
<PackageVersion Include="System.IO.Hashing" Version="8.0.0" />
<PackageVersion Include="System.Linq.Async" Version="6.0.1" />
<PackageVersion Include="System.Reactive" Version="6.0.1" />
<PackageVersion Include="Microsoft.AspNetCore.WebUtilities" Version="8.0.7" />
<PackageVersion Include="Microsoft.AspNetCore.WebUtilities" Version="8.0.8" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.1" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Logging" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.1" />
<PackageVersion Include="Microsoft.Extensions.ObjectPool" Version="8.0.7" />
<PackageVersion Include="Microsoft.Extensions.ObjectPool" Version="8.0.8" />
<PackageVersion Include="Microsoft.IO.RecyclableMemoryStream" Version="3.0.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.4" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.8.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.8.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.XUnit" Version="1.1.1" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.XUnit" Version="1.1.2" />
<PackageVersion Include="AutoFixture" Version="4.18.1" />
<PackageVersion Include="AutoFixture.Xunit2" Version="4.18.1" />
<PackageVersion Include="coverlet.collector" Version="6.0.2">
Expand All @@ -97,21 +97,21 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageVersion>
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.10.0" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
<PackageVersion Include="NSubstitute" Version="5.1.0" />
<PackageVersion Include="NSubstitute.Analyzers.CSharp" Version="1.0.17">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageVersion>
<PackageVersion Include="Verify.Xunit" Version="24.2.0" />
<PackageVersion Include="Verify.Xunit" Version="26.6.0" />
<PackageVersion Include="Verify.ImageMagick" Version="3.4.2" />
<PackageVersion Include="Verify.SourceGenerators" Version="2.2.0" />
<PackageVersion Include="xunit" Version="2.8.0" />
<PackageVersion Include="Xunit.DependencyInjection" Version="9.3.0" />
<PackageVersion Include="xunit" Version="2.9.2" />
<PackageVersion Include="Xunit.DependencyInjection" Version="9.4.0" />
<PackageVersion Include="Xunit.DependencyInjection.Logging" Version="9.0.0" />
<PackageVersion Include="Xunit.DependencyInjection.SkippableFact" Version="9.0.0" />
<PackageVersion Include="xunit.extensibility.core" Version="2.6.3" />
<PackageVersion Include="xunit.runner.visualstudio" Version="2.8.0">
<PackageVersion Include="xunit.runner.visualstudio" Version="2.8.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageVersion>
Expand All @@ -130,7 +130,7 @@
<PackageVersion Include="ReactiveUI.Fody" Version="19.5.41" />
<PackageVersion Include="Sewer56.BitStream" Version="1.3.0" />
<PackageVersion Include="Spectre.Console" Version="0.48.0" />
<PackageVersion Include="Splat.Microsoft.Extensions.Logging" Version="15.0.1" />
<PackageVersion Include="Splat.Microsoft.Extensions.Logging" Version="15.2.22" />
<PackageVersion Include="TransparentValueObjects" Version="1.0.1" />
</ItemGroup>
</Project>
</Project>
63 changes: 56 additions & 7 deletions NexusMods.App.sln
Original file line number Diff line number Diff line change
Expand Up @@ -254,12 +254,26 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Collections", "sr
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Collections.Tests", "tests\NexusMods.Collections.Tests\NexusMods.Collections.Tests.csproj", "{8C817874-7A88-450E-B216-851A1B03684C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Abstractions.Media", "src\Abstractions\NexusMods.Abstractions.Media\NexusMods.Abstractions.Media.csproj", "{5CB6D02C-07D0-4C0D-BF5C-4E2E958A0612}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Games.Larian", "src\Games\NexusMods.Games.Larian\NexusMods.Games.Larian.csproj", "{2A35EBB5-1CA6-4F5D-8CE8-352146C82C28}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Networking.ModUpdates", "src\Networking\NexusMods.Networking.ModUpdates\NexusMods.Networking.ModUpdates.csproj", "{8B246C04-F372-47F6-9397-F658915429A8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Networking.ModUpdates.Tests", "tests\Networking\NexusMods.Networking.ModUpdates.Tests\NexusMods.Networking.ModUpdates.Tests.csproj", "{CDA2C52B-A9A7-446B-9D2F-D7B75C1905EF}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Games.Larian.Tests", "tests\Games\NexusMods.Games.Larian.Tests\NexusMods.Games.Larian.Tests.csproj", "{425F7A13-99A2-4231-B0C1-C56EB819C174}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Media", "src\NexusMods.Media\NexusMods.Media.csproj", "{CEC177AB-4FF0-4F8A-81B8-1E756D892416}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Abstractions.Resources", "src\Abstractions\NexusMods.Abstractions.Resources\NexusMods.Abstractions.Resources.csproj", "{8744F914-BF51-4276-AFDA-9CBD750B8187}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Abstractions.Resources.DB", "src\Abstractions\NexusMods.Abstractions.Resources.DB\NexusMods.Abstractions.Resources.DB.csproj", "{856B58BA-8B98-42C5-9129-273A679697D0}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Abstractions.Resources.Caching", "src\Abstractions\NexusMods.Abstractions.Resources.Caching\NexusMods.Abstractions.Resources.Caching.csproj", "{BE8C17C4-E3B0-4D07-8CD0-0D15C3CCA9D5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Abstractions.Resources.IO", "src\Abstractions\NexusMods.Abstractions.Resources.IO\NexusMods.Abstractions.Resources.IO.csproj", "{D3BA5B5A-668A-443B-872C-3116CBB0BC0D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Abstractions.Resources.Resilience", "src\Abstractions\NexusMods.Abstractions.Resources.Resilience\NexusMods.Abstractions.Resources.Resilience.csproj", "{04219A58-C99C-4C3B-A477-5E4B29D1F275}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Games.Obsidian", "src\Games\NexusMods.Games.Obsidian\NexusMods.Games.Obsidian.csproj", "{44AF0AAE-3924-4A2B-B85E-D9DE0F8B7779}"
EndProject
Global
Expand Down Expand Up @@ -664,18 +678,46 @@ Global
{8C817874-7A88-450E-B216-851A1B03684C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8C817874-7A88-450E-B216-851A1B03684C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8C817874-7A88-450E-B216-851A1B03684C}.Release|Any CPU.Build.0 = Release|Any CPU
{5CB6D02C-07D0-4C0D-BF5C-4E2E958A0612}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5CB6D02C-07D0-4C0D-BF5C-4E2E958A0612}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5CB6D02C-07D0-4C0D-BF5C-4E2E958A0612}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5CB6D02C-07D0-4C0D-BF5C-4E2E958A0612}.Release|Any CPU.Build.0 = Release|Any CPU
{2A35EBB5-1CA6-4F5D-8CE8-352146C82C28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2A35EBB5-1CA6-4F5D-8CE8-352146C82C28}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2A35EBB5-1CA6-4F5D-8CE8-352146C82C28}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2A35EBB5-1CA6-4F5D-8CE8-352146C82C28}.Release|Any CPU.Build.0 = Release|Any CPU
{8B246C04-F372-47F6-9397-F658915429A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8B246C04-F372-47F6-9397-F658915429A8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8B246C04-F372-47F6-9397-F658915429A8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8B246C04-F372-47F6-9397-F658915429A8}.Release|Any CPU.Build.0 = Release|Any CPU
{CDA2C52B-A9A7-446B-9D2F-D7B75C1905EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CDA2C52B-A9A7-446B-9D2F-D7B75C1905EF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CDA2C52B-A9A7-446B-9D2F-D7B75C1905EF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CDA2C52B-A9A7-446B-9D2F-D7B75C1905EF}.Release|Any CPU.Build.0 = Release|Any CPU
{425F7A13-99A2-4231-B0C1-C56EB819C174}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{425F7A13-99A2-4231-B0C1-C56EB819C174}.Debug|Any CPU.Build.0 = Debug|Any CPU
{425F7A13-99A2-4231-B0C1-C56EB819C174}.Release|Any CPU.ActiveCfg = Release|Any CPU
{425F7A13-99A2-4231-B0C1-C56EB819C174}.Release|Any CPU.Build.0 = Release|Any CPU
{CEC177AB-4FF0-4F8A-81B8-1E756D892416}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CEC177AB-4FF0-4F8A-81B8-1E756D892416}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CEC177AB-4FF0-4F8A-81B8-1E756D892416}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CEC177AB-4FF0-4F8A-81B8-1E756D892416}.Release|Any CPU.Build.0 = Release|Any CPU
{8744F914-BF51-4276-AFDA-9CBD750B8187}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8744F914-BF51-4276-AFDA-9CBD750B8187}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8744F914-BF51-4276-AFDA-9CBD750B8187}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8744F914-BF51-4276-AFDA-9CBD750B8187}.Release|Any CPU.Build.0 = Release|Any CPU
{856B58BA-8B98-42C5-9129-273A679697D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{856B58BA-8B98-42C5-9129-273A679697D0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{856B58BA-8B98-42C5-9129-273A679697D0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{856B58BA-8B98-42C5-9129-273A679697D0}.Release|Any CPU.Build.0 = Release|Any CPU
{BE8C17C4-E3B0-4D07-8CD0-0D15C3CCA9D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BE8C17C4-E3B0-4D07-8CD0-0D15C3CCA9D5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BE8C17C4-E3B0-4D07-8CD0-0D15C3CCA9D5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BE8C17C4-E3B0-4D07-8CD0-0D15C3CCA9D5}.Release|Any CPU.Build.0 = Release|Any CPU
{D3BA5B5A-668A-443B-872C-3116CBB0BC0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D3BA5B5A-668A-443B-872C-3116CBB0BC0D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D3BA5B5A-668A-443B-872C-3116CBB0BC0D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D3BA5B5A-668A-443B-872C-3116CBB0BC0D}.Release|Any CPU.Build.0 = Release|Any CPU
{04219A58-C99C-4C3B-A477-5E4B29D1F275}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{04219A58-C99C-4C3B-A477-5E4B29D1F275}.Debug|Any CPU.Build.0 = Debug|Any CPU
{04219A58-C99C-4C3B-A477-5E4B29D1F275}.Release|Any CPU.ActiveCfg = Release|Any CPU
{04219A58-C99C-4C3B-A477-5E4B29D1F275}.Release|Any CPU.Build.0 = Release|Any CPU
{44AF0AAE-3924-4A2B-B85E-D9DE0F8B7779}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{44AF0AAE-3924-4A2B-B85E-D9DE0F8B7779}.Debug|Any CPU.Build.0 = Debug|Any CPU
{44AF0AAE-3924-4A2B-B85E-D9DE0F8B7779}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand Down Expand Up @@ -797,9 +839,16 @@ Global
{BF6EEEA3-9C9C-404E-9B2D-6926EF503384} = {0CB73565-1207-4A56-A79F-6A8E9BBD795C}
{A9FD538A-E101-4AEA-A98E-35DCED950AEE} = {E7BAE287-D505-4D6D-A090-665A64309B2D}
{8C817874-7A88-450E-B216-851A1B03684C} = {52AF9D62-7D5B-4AD0-BA12-86F2AA67428B}
{5CB6D02C-07D0-4C0D-BF5C-4E2E958A0612} = {0CB73565-1207-4A56-A79F-6A8E9BBD795C}
{2A35EBB5-1CA6-4F5D-8CE8-352146C82C28} = {70D38D24-79AE-4600-8E83-17F3C11BA81F}
{8B246C04-F372-47F6-9397-F658915429A8} = {D7E9D8F5-8AC8-4ADA-B219-C549084AD84C}
{CDA2C52B-A9A7-446B-9D2F-D7B75C1905EF} = {897C4198-884F-448A-B0B0-C2A6D971EAE0}
{425F7A13-99A2-4231-B0C1-C56EB819C174} = {05B06AC1-7F2B-492F-983E-5BC63CDBF20D}
{CEC177AB-4FF0-4F8A-81B8-1E756D892416} = {E7BAE287-D505-4D6D-A090-665A64309B2D}
{8744F914-BF51-4276-AFDA-9CBD750B8187} = {0CB73565-1207-4A56-A79F-6A8E9BBD795C}
{856B58BA-8B98-42C5-9129-273A679697D0} = {0CB73565-1207-4A56-A79F-6A8E9BBD795C}
{BE8C17C4-E3B0-4D07-8CD0-0D15C3CCA9D5} = {0CB73565-1207-4A56-A79F-6A8E9BBD795C}
{D3BA5B5A-668A-443B-872C-3116CBB0BC0D} = {0CB73565-1207-4A56-A79F-6A8E9BBD795C}
{04219A58-C99C-4C3B-A477-5E4B29D1F275} = {0CB73565-1207-4A56-A79F-6A8E9BBD795C}
{44AF0AAE-3924-4A2B-B85E-D9DE0F8B7779} = {70D38D24-79AE-4600-8E83-17F3C11BA81F}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,11 @@ public Task BackupFiles(IEnumerable<ArchivedFileEntry> backups, bool deduplicate
return Task.CompletedTask;
}

public Task BackupFiles(string archiveName, IEnumerable<ArchivedFileEntry> files, CancellationToken cancellationToken = default)
{
return Task.CompletedTask;
}

public Task ExtractFiles(IEnumerable<(Hash Hash, AbsolutePath Dest)> files, CancellationToken token = default)
{
return Task.CompletedTask;
Expand Down
40 changes: 40 additions & 0 deletions docs/developers/decisions/backend/0019-updating-mods.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Updating Mods

!!! info "This is a design document detailing the steps taken to update mods."

A corresponding research document (original design) can be found on a [separate page][research-doc].

## General Approach

!!! tip "First read the [Problem Statement] in the [Research Document]"

The requested approach (from business) has been to maximize the use of the V2 API,
as opposed to programming against the legacy V1 API.

To achieve this, we will [NOT use the `file_updates` array from V1 API's Querying Mod Files][querying-mod-files];
instead choosing to opt to wait until backend decides their future plans with
respect to 'Mods 2.0' project, and how mod updates will be handled in V2 API in the future.

For now, we will:

- [1. Determine Updated Mod Pages], to update our local cache.
- [2. Multi Query Pages], for update mod pages with a 'cache miss'.

## Displaying Mod Updates

!!! info "We display all files on a given mod page that are more recent (file upload time) than the user's file."

Although uncommon this may include:

- Files for other mods on same mod page.
- Older files (if uploaded out of order).

We will for now rely on *users' common sense* to identify whether a file is an
update to a previous file or not. Until site decides on future plans.

[Problem Statement]: ../../misc/research/00-update-implementation-research.md#problem-statement
[1. Determine Updated Mod Pages]: ../../misc/research/00-update-implementation-research.md#1-determine-updated-mod-pages
[2. Multi Query Pages]: ../../misc/research/00-update-implementation-research.md#multi-query-pages
[querying-mod-files]: ../../misc/research/00-update-implementation-research.md#2-querying-mod-files
[Research Document]: ../../misc/research/00-update-implementation-research.md
[research-doc]: ../../misc/research/00-update-implementation-research.md
Loading

0 comments on commit 55cd307

Please sign in to comment.