Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[3/4] Improve: Small Cleanup / Tech Debt Reduction Around NexusWebApi / V2 Types. #2095

Merged
merged 23 commits into from
Oct 3, 2024
Merged
Show file tree
Hide file tree
Changes from 15 commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
78ace0f
WIP: Documentation for Update Detection
Sewer56 Sep 19, 2024
796c123
Added: Additional Edge Cases to Update Logic Docs
Sewer56 Sep 23, 2024
0cfb392
Added: Extra case of `Archived in the Middle`
Sewer56 Sep 23, 2024
6498415
Fixed: Indentation for `file_updates` field.
Sewer56 Sep 23, 2024
600ec0b
Finalized 'Updating Mods' doc with simplified Implementation requested.
Sewer56 Sep 24, 2024
2155750
Fixed: Minor Notes from older Research Doc
Sewer56 Sep 24, 2024
d151e86
Merge branch 'main' into detect-updates-docs-only
Sewer56 Sep 24, 2024
b54efac
Fixed: Added Missing 'Updating Mods' mkdocs sidebar item.
Sewer56 Sep 24, 2024
71a131b
[Working WIP] Added: Initial Implementation of Generic Page Caching S…
Sewer56 Sep 25, 2024
6fe3105
Merge remote-tracking branch 'origin/main' into updates-cache-system
Sewer56 Sep 26, 2024
7afd32d
Tech Debt Reduction: Add additional V2 GraphQL Types and Correct Size…
Sewer56 Sep 26, 2024
1173046
Added: Missing 'UInt32' types in attribute definitions
Sewer56 Sep 26, 2024
3eb2986
Improved: Accuracy of documentation for FileId struct.
Sewer56 Sep 26, 2024
2de875a
Added: Method for constructing UidForMod and UidForFile from GraphQL …
Sewer56 Sep 26, 2024
a0d80d4
Rename: ICanGetUid to ICanGetUidForMod
Sewer56 Sep 26, 2024
e8e09e3
Added: Tests for UidForModTests and UidForFileTests
Sewer56 Sep 27, 2024
e4349be
Removed: Unused Tests.cs file
Sewer56 Sep 27, 2024
2c96668
Merge branch 'updates-cache-system' into start-adding-v2-types
Sewer56 Sep 27, 2024
dbd6d20
Merge branch 'main' into start-adding-v2-types
Sewer56 Sep 30, 2024
731a620
Merge branch 'main' into start-adding-v2-types
Sewer56 Oct 1, 2024
edf3775
Merge remote-tracking branch 'origin/main' into start-adding-v2-types
Sewer56 Oct 2, 2024
a68e6dd
Merge branch 'main' into start-adding-v2-types
Sewer56 Oct 2, 2024
1498929
Merge branch 'main' into start-adding-v2-types
halgari Oct 3, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions NexusMods.App.sln
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Abstractions.Medi
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
Global
Expand Down Expand Up @@ -670,6 +674,14 @@ Global
{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
Expand Down Expand Up @@ -793,6 +805,8 @@ Global
{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}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
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
Loading