0neGal / viper

Launcher+Updater for TF|2 Northstar
https://0negal.github.io/viper
GNU General Public License v3.0
151 stars 21 forks source link

feat: Delete previous core mods on update #223

Closed GeckoEidechse closed 7 months ago

GeckoEidechse commented 7 months ago

Introduction

To my knowledge Viper currently simply overwrites existing files on Northstar updates. While this has been fine so far in terms of update stability, it is somewhat limiting for upstream Northstar.

In particular, given our past recommendations of simply overwriting files when updating we could never ship an update that removes a script source file for one of the core Northstar mods (Northstar.{Client,Custom,CustomServers}) again. This made development somewhat cumbersome as adding any script file had to be carefully considered due to not being able to remove said file again once shipped.

As such our recommendations for (manually) updating Northstar have since changed to first clearing existing Northstar.* mods folders and only then adding the new script files from the release. (Similarly FlightCore was also updated accordingly.)

This finally allows upstream Northstar to push out an update that also removes script files from core mods again.

How Viper falls into this

Given that a large chunk of Northstar players use Viper to maintain their installation, I'm hoping Viper can follow suite on this, so that we can ensure that no players encounter any issues on future updates that might remove script source files again.

Note that we don't have an exact time frame on when such an update might release, however it's probably best to already have the change in Viper implemented and shipped in order to avoid any stress once such an update should hit ^^

TL;DR

Before extracting a new update into Titanfall2 folder, delete any existing Northstar.Custom, Northstar.Client, and Northstar.CustomServers folders in the mods directory. For future proofing (e.g. when Northstar.Coop surely releases one day), it's probably to even just delete all Northstar.* folders in the mods directory before applying an update.

0neGal commented 7 months ago

To my knowledge Viper currently simply overwrites existing files on Northstar updates.

Correct it does just do this, and its never really been ideal. Something like this would be quite easy to do, one gripe however, what if someone were to make a mod who's name starts with Northstar., to my knowledge, there is nothing in place to prevent such a mod from being uploaded to Thunderstore, right? And if so, is that a concern?

GeckoEidechse commented 7 months ago

[...] what if someone were to make a mod who's name starts with Northstar., to my knowledge, there is nothing in place to prevent such a mod from being uploaded to Thunderstore, right?

That is correct. Thunderstore unfortunately currently does not offer any form of validity checks outside the manifest.json unfortunately :/

And if so, is that a concern?

Not really. Firstly, installing from Thunderstore via Viper should cause the mod to end up in packages and not mods anyway. Secondly, if someone creates a mod in the Northstar.* namespace it's more their problem than Viper's IMO. So I would no worry about that case IMO ^^

0neGal commented 7 months ago

Secondly, if someone creates a mod in the Northstar.* namespace it's more their problem than Viper's IMO. So I would no worry about that case IMO ^^

Figured, just wanted to check/ask! :)

0neGal commented 7 months ago

This should ideally now be functioning upstream, however, keep in mind, a new release wont happen immediately... Unless this is actually critical to be released ASAP? But it seemingly is more of a long term problem?

GeckoEidechse commented 7 months ago

This should ideally now be functioning upstream, however, keep in mind, a new release wont happen immediately...

Thanks for the fast implementation :D

Personally with FlightCore I tend to ship changes as soon as they are ready, sometimes even pushing two releases in a single day, lol. However, I have also already received criticism for this in the past as the update process with FlightCore is still a bit too invasive... So I'll leave the decision on when to ship up to you. Should there be an update that requires deleting past files, I'll try to warn you in advance. ^^

For now:

Unless this is actually critical to be released ASAP?

None planned atm ^^

0neGal commented 7 months ago

I have also already received criticism for this in the past as the update process with FlightCore is still a bit too invasive

I've read some criticism of when Viper had like 2-3 updates in one week, even tho, in Viper, updates are done automatically, and the only thing invasive part of it, is it popping an alert up asking if you want to restart. On top of this, updates can be disabled.

Point being, you cant satisfy those types of people lol

I'll try having the update out within 1-2 weeks, I was planning on making a bunch of other changes, and pushing it all together. However a tad busy right now, and parts of next week, but yeah... it'll be out soon™