-
-
Notifications
You must be signed in to change notification settings - Fork 21
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
feat: Consider additionally supporting downloading Northstar from Thunderstore #142
Comments
I completely agree with everything and I'll have a look at implementing this, it'll just be a switch for selecting where the Northstar release will be fetched and downloaded from, which would then have GitHub, Thunderstore Stable and Unstable. I think "release candidate" can be confusing than something like "unstable", while they aren't exactly the same thing, explaining to a user how releases are drafted and tested is a lot just to explain that it's a less stable but more upstream version. Feel free to lmk if you think something else is better... As for implementing this, just to confirm, the Zip archive on Thunderstore is identical in layout to the GitHub release, correct? If so we only actually need to update some stuff in
Personally I think Thunderstore should be default...
I do wonder, how does our code for checking if Northstar is up to date, work with |
Why bothering creating GitHub, Thunderstore Stable or Unstable channels, when we can just fetch all available versions from Thunderstore and let users choose themselves (à-la-Minecraft Launcher, if it still works this way)? @GeckoEidechse release notes are not published on Thunderstore, only on GitHub releases, right? |
It really wouldn't take a lot to implement, and if Thunderstore is down it's always good to have an alternative, and likewise with GitHub. |
Sounds like a good idea. Probably best to hint somewhere in UI that there's not a difference between "Thunderstore stable" and "GitHub", maybe display the most current version next to download source when selecting download source?
Don't really have an idea so I'll leave it up to you :P We're planning to also do a rolling release "git main" package in the future but we still need to figure out how to do infrastructure for that. I guess that one could be called "dev" then ^^
Sadly no but almost. When downloading from Thunderstore the resulting zip contains a folder called
I'd go for picking newest in that channel. So if newest unstable is older then newest stable, still stick with newest unstable. For version checking on NorthstarMasterServer we used the
Yup, so release note fetching would stay the same regardless of selected channel. We currently don't really do release notes for release candidates, though release note drafts should be publicly visible. |
How about "GitHub (Stable)", "Thunderstore (Stable)", "Thunderstore (Canary)" (rc builds), and "Thunderstore (Unstable)"
Hmm, we'll just modify what |
I'd use |
The idea is rather to really empathize that it's not really stable... Developer may not exactly imply the stability of it to some people... Idk. We could also rename Canary to Testing, anything is really possible of course. I'm not sure what better words there really are to describe it really. We could also go all the way with the Discord route and have Stable, PTB (Public Test Build), and Canary. And then note that Canary is not stable, PTB is meant for testing, and Stable is the recommended build. |
Maybe combine the two words and use |
Considering everything else is a single short word and nothing more, that'd be a very long line... GitHub (Stable) Keep in mind the UI this would be in, though, now that I think of it, In-Development might work, aka: GitHub (Stable) Ofc whether it's PTB or Canary, or whatever doesn't matter much and if nobody has an opinion I'll figure out what fits best, from my opinion that is... |
So turns out Thunderstore only allows To circumvent this, we are considering doing At least for Viper this means a change in versioning detection library won't be needed for now :P |
The release candidate Thunderstore package (manually uploaded for now): |
One pain point I just realised is that the Northstar mods version will still say |
I suggest waiting until that is fully sorted, as it would not only be a waste of work getting it solved and then having to scrap it later, but it'll also likely require a bit of work for it to function properly.
Again, it seems easier to wait till everything is solved with the whole suffix... |
So based on discussion in discussion in thunderstore-io/Thunderstore#634 as well as in direct messages with Mythic I'm under the impression that this will take quite some time to implement. In particular it's not yet clear whether there will ever be suffix support as it might just be changed to add support different release channels, which of course takes time. From the Northstar side of things, we're planning to add auto-uploading rc builds to separate package some time this weekend. Given the limitations by Thunderstore we'll stick to encoded version numbers e.g. For Viper I guess the best course of action is to just add support for downloading the stable package from Thunderstore for now, preferably in a more generic way to allow for easy extending to other download sources in the future. |
So the |
Oh right, there's the catch. Yeah no it does not have that due to the way our CI is build up, i.e. we first package Northstar and then do Thunderstore specific stuff. We could go in and re-modify it in Thunderstore step but I'm not really a fan of that due to it misrepresenting the version of the package even more. I guess the best solution would be to have a "translation function" in Viper that takes the the package type (GitHub, Thunderstore stable, Thunderstore unstable) and returns the translated version number. So if installed version is Thunderstore unstable and Btw, if you need a package to check against for unstable/release-candidate, I uploaded one manually for now https://northstar.thunderstore.io/package/northstar/NorthstarReleaseCandidate/ ^^ |
Hmm, we could also just check if |
Assuming we don't have more than 9 release-candidates that should work just fine ^^ Otherwise we might have to go for zero-padding rc number to 2 digits and then just stripping the |
Support for auto-publishing release-candidates to Thunderstore is nearly done btw ;) |
Just to clarify, both the Thunderstore version, and the If so, this shouldn't be hard to implement! |
No, as stated before that's kinda difficult to implement with our CI and would mess with other things, see #142 (comment) :P
This part, very much yes. At least that's the plan, cause currently it doesn't do it yet but I will fix it before we reach 10 release candidates of the same version (which has never happened so far anyway :P) |
Right, brain bad, and I forgot lol, I would say, just replace |
You mean passing Well the correspondence is basically |
ah, so we actually just remove the |
R2Northstar/Northstar#313 has now been successfully merged and the Northstar built on Thunderstore from a test run from building |
Thinking about this again, it might even be better to drop support for downloading from GitHub entirely and going for just downloading from Thunderstore. |
Any reason for dropping support entirely over just changing which one it uses by default? |
Mostly to avoid having to maintain duplicate logic I guess. Another reason is that the GitHub release still ships I've been planning to drop it from GitHub release for a while now but not sure how mod managers will react to those files missing from release zip. Also there's not really any other difference between the two so there's no point in having both (unless the idea is to have a fallback in case one of the two services is down). |
For Viper, we actually just write the file when changes (settings) are made or similar, whether it exists already or not makes no difference, so at least for Viper it'd have no effect.
Chances of GitHub going down isn't that big, chances of Thunderstore is bigger and a possibility, unless it's annoying to maintain, or there's incompatibilities between the two, I don't see much reason to switch over to Thunderstore and not keep GitHub as an alternative. If you would've preferred GitHub no longer had releases then yeah, we'd switch over to Thunderstore only, but otherwise, I don't see the reason. |
Fair enough ^^ |
Northstar release |
Regardless to what should be default, Viper currently still does not support installing Northstar from Thunderstore, right? Or at least I couldn't find anything related in the UI unless I'm mistaken. ^^" |
It does not no, been busy with life and all, and haven't had much time to dedicate to adding minor things like this. It is however something I intend to add, sooner or later, among a couple other features. |
That is totally ok. Setting priorities is important and there are things out there that are far more important than Northstar <3 |
What feature would you like added?
Viper currently downloads Northstar from GitHub but we also upload Northstar to Thunderstore as well. In fact Thunderstore version gets auto-upload by CI on release.
Why should this feature be added?
The reason for supporting Thunderstore Northstar download is a bit of selfish one. We're planning to also auto-upload release candidates to their own package on Thunderstore (
NorthstarReleaseCandidate
vsNorthstar
). By supporting Thunderstore download, it would be really easy to then add support for selecting a release channel in Viper. So player could then pick whether they want to be in "stable" or "release candidate" channel. "stable" would obviously be the default while "release candidate" would have to be changed to manually.That way when we enable auto-upload release candidates we can then point playtesters to just select "release candidate" channel in Viper to playtest the newest release candidates which is way easier for them to do compared to having to manually download a release-candidate from GitHub actions everytime we do a new one. Especially as Viper already supports auto-download on update.
Additional Info
I'd still keep support for GitHub and then have an option to select download source. Whether GitHub or Thunderstore should be the default is a decision I'll leave up to you. Currently it makes no difference :P
The text was updated successfully, but these errors were encountered: