[1.3] [KV] ModSync RW

Started by Kiame, June 01, 2018, 12:13:30 AM

Previous topic - Next topic

Tsunamy

#30
QuoteWithout a ModSync.xml file how would this mod know where to look?

My suggestion was based on users making their own ModSync.xml files for mods that don't support it and whose authors are silent to pull requests. Perhaps they just don't care or they have long been absent (and the user would like to know if that absence ever changes).

Inputting that the mod is from Github and inputting the Author and Project could enable the automatic version retrieval without relying on a server-side ModSync.xml file. 301 Redirects are platform agnostic and as far as this particular redirect goes, is unlikely to change because of all the projects very reliant on this redirect.

One of the stated project goals is to "leverages hosting sites like Github", so this seems like a very easy addition to accomplish that. It would essentially just be comparing the version number from the About.xml file with the version number pulled from the 301 Redirect I described.

Kiame

#31
You're assuming modders create releases - many do not. Also this assumes that modders will create a new release for each update - many do not.

This would also require the user to update the version locally each time they update.

I got tired of creating new versions each time i updated a mod. I now just modify the release for the current RW version. I delete the zip, upload the new zip, and update the last update text in the message. This saves a ton of time otherwise I'd have to go to wherever i have direct download links and update manually.

Tsunamy

#32
Quote from: Kiame on July 09, 2018, 05:45:35 PM
You're assuming modders create releases - many do not. Also this assumes that modders will create a new release for each update - many do not.

I got tired of creating new versions each time i updated a mod. I now just modify the release for the current RW version. I delete the zip, upload the new zip, and update the last update text in the message. This saves a ton of time otherwise I'd have to go to wherever i have direct download links and update manually.
It does make that assumption, yes. So in the cases where releases aren't done, it would simply have to report to the user that it can't handle this particular mod and they're going to have to do it manually.

An Option B could be to have it update the mod from the latest commit, whether it needs to be updated or not, and simply store the commit hash in a ModSync.xml file. Should the latest commit ever change, it'll tell the user that the mod may be ready to be updated.

I'm in the same boat as you, I hate doing all this shit manually, but I know how difficult it can be to get a modder to do the smallest of things for compatibility, even if it does not impact their mod in the slightest. They simply do not want to be saddled with the responsibility of ever having to update said compatibility should the circumstances ever change. And people in general can be very stubborn.

In those cases it would be very very nice to have fallback options.

Kiame

Hashtags could be used but then there would be too many false positives at which point users would not know when a mod is actually updated or if it was just the modder updating their mod locally but not ready for the next release.

Tsunamy

#34
Quote from: Kiame on July 09, 2018, 05:54:09 PM
Hashtags could be used but then there would be too many false positives at which point users would not know when a mod is actually updated or if it was just the modder updating their mod locally but not ready for the next release.

That's why going off releases would be the first thing the mod would try, and the commit hashes would be the fallback. i.e. If not {A}, then it must be {B}.

The only instances I can see this failing is incompatibilities wherein ModSync RW is being used on an out of date RW build, but you can check to make sure that the mod's update will be compatible by checking the About.xml file beforehand.

Dingo

It's a one-time setup for the XML and all you have to do is change the version number when you update. Pretty well abstracted and easy to do.

Tsunamy

And yet there aren't too many mods that support this right now. ¯\_(ツ)_/¯

Kiame

#37
Unless people request modders to include this it's not going to get used. It would be nice for this to get stickied.

In the end this mod will go unused out of ignorance to its existence and not complexity

Canute

And not to speak, only 5-10% of rimworld player/modder use DRM-free rimworld and not the workshop.

Tsunamy

I hate to beat a dead horse, but I don't think people are willing to add support for a mod no one uses. This is a Catch 22 situation.

If you started adding support to update mods that don't have explicit support, then more people would start to use it. Once it catches on, mod authors who wish for a finer control of what ModSync does with updating their mod would add support for it.

historic_os

if Kiame does that for his 10+ mods, other modders can do that easily. Also, responding to people asking about bugs with "it was already fixed, just download the new version" literally takes more time than uploading the modsync file.

Regardless, previous iterations of modsync had around 160 mods. so yes, some mods will certainly support it.

to add to this general conversation: automatic version detection is the ideal but impossible scenario and we need to accept it. we've gone over it in past modsync threads, but the main points are:
1. mods are not similar. a mod can be either XML item mod,  an assembly or just a scenario.  the game does not force a version indication of mods. it doesn't even offer one.
2. mods use many distribution pipelines. some use cloud, version control, direct hosting,etc.. you can't force modders to use github.
3. even if you do force some type of source control, you can't determine what is a "build" and what's just a push of changes not ready for release.  most modders don't use releases or branches.

the best approach to get such project adopted is by helping. Kiame has made the whole project open source and anyone interested can easily add a new agent where every idea can be implemented and added to the arsenal for modders that could find it the ideal solution for them.

Tsunamy

So if it can't accurate detect the version of every single mod regardless of distribution method it's not worth adding?

I don't understand the all-or-nothing mentality at all.

Kiame

Just to be clear, this mod can track changes to the version number in the ModSync.xml file accurately no matter where it's hosted. Thus it can track the version of any mod hosted anywhere accurately.


The problem with trying to track anything related to a repo is that there's no guarantee that there was an update to the mod. If every time a repo changed in any way there would be too many false positives as to render this mod worthless.

Dingo

There is absolutely no point in doing hours of work on versioning when the mod author can update it in seconds through XML. You choose your priorities as a developer and version detection should not be one of them.

Kiame

1.0 Update:
Moved the ModSync RW button on the main screen to the left so it's no longer hidden.