[1.3] [KV] ModSync RW

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

Previous topic - Next topic

Kubouch

Quote from: Kiame on June 05, 2018, 09:53:05 AM
I can take a look at gitlab, know any mods that use that so i can test?

Also using 'Direct' should work for all repos

I do: https://gitlab.com/rwmods. I manage my releases under tags (yes, they don't have a base folder, I need to fix it).

Kiame

#16
Quote from: Kubouch on June 05, 2018, 10:50:48 AM
I do: https://gitlab.com/rwmods. I manage my releases under tags (yes, they don't have a base folder, I need to fix it).

Thanks. I'll take a look at it tonight

Taking a quick look and 'Direct' will work. It doesn't look like it'll be hard to make Gitlab specific either as it's very close to github

The input fields I'm thinking will be available: (ownerand project is filled in using one of your mods as an example. Branch will always default to master)

Owner: [ rwmods ]
Project: [ universal-fermenter ]
Branch: [ master ]

I don't see a need to add a location for downloads as there's no release page or is that where tags come into play? Would another field like this be useful? (this would be a selection box with 2 options)
Download Page: [ ] ->
-Main Page
-Tags

Kiame

#17
Update:
Added Gitlab support for developers
Instructions

Kubouch

Tags are a recommended way by GitLab to emulate the functionality of GitHub's Releases. It is just a convention. They added a Release Notes field to the Git tags where you can put some text or attach a file.

Kiame

Please request modders to include this in their mods as they get ready for RW 1.0

Thank you

NoImageAvailable

How exactly would one add support for this? Adding a comprehensive guide to the wiki would be a good idea if you want this to gain traction with modders, people spend enough time figuring out the game code, they don't want to reverse-engineer some third-party API's on top of that.
"The power of friendship destroyed the jellyfish."

Kiame

#21
Quote from: NoImageAvailable on June 17, 2018, 02:34:44 PM
How exactly would one add support for this? Adding a comprehensive guide to the wiki would be a good idea if you want this to gain traction with modders, people spend enough time figuring out the game code, they don't want to reverse-engineer some third-party API's on top of that.

There's already a step by step guide in the description of this mod.

QuoteMod Authors: Instructions to create a ModSync file

  • Enable Dev Mode
  • Go to the Mods page
  • Select your mod
  • On the right side there will be a new button "Create ModSync File"
  • Fill out the information on the new window
  • Confirm will be enabled once the Host information is complete and the "Validate" button has been clicked and the About.xml was successfully found.


Hosts:
Note: Currently Direct, Github, and Gitlab as a host are supported. Here are pages with instructions on how to fill each form of host out:

If there's anything that does not make sense please let me know and i'll update it to be clearer.


Kiame

#23
1.0 Update:
Mods that are hosted on Gitlab and Github and have 'About' directories that are not at the root are now supported with a new field "About Dir".

Updated the wiki pages with information on what the About directory will do. Mods that are already using ModSync RW will not need to update to the new format.

Added more details in the wiki pages for create ModSync.xml files

Dingo

I sincerely hope this takes off as the go-to solution for non-Steam releases. Very easy to make ModSync.xml files and it does not require much effort to maintain.

All of my RimWorld v1.0+ mods will include ModSync functionality.

Spdskatr

Nice work Kiame. I'm gonna join in the ModSync party in 1.0 as well. Making it decentralised and friendly to modders should help bring more modders in.
My mods

If 666 is evil, does that make 25.8069758011 the root of all evil?

TheIVFallen

u just upgraded to 1.0, modsync and hugslib as well but the modsync button isnt showing up on my menu

Kiame

TheIVFallen

A few things to verify:
1. The mod is enabled
2. Do you have the correct version? If running the unstable version of the game use ModSync RW 1.0 otherwise please use the B18 version until the game is officially released (at which point you can switch to the 1.0 version of this mod)

Tsunamy

By going to github.com/Author/Project/releases/latest and looking at what the last part of the URL resolves to, you can implement version retrieval for most RimWorld mods on Github without relying on mod authors to add a ModSync.xml file. Many won't even if it's easy.

Kiame

#29
Quote from: Tsunamy on July 09, 2018, 04:34:26 PM
By going to github.com/Author/Project/releases/latest and looking at what the last part of the URL resolves to, you can implement version retrieval for most RimWorld mods on Github without relying on mod authors to add a ModSync.xml file. Many won't even if it's easy.

Without a ModSync.xml file how would this mod know where to look?
-It is not guaranteed that a mod is hosted on GitHub.
-Who is the Author?
-What Branch?
-Where can the mod be downloaded from? -d/l branch or release?
-What version is currently installed?

If it's hosted elsewhere, where?
GitLab? See above
Direct Download?
-Where's the version for it?
-Where's the zip?
-What version is currently installed?

The ModSync.xml file is the abstraction layer that allows all of this information to be standardized. I've written instructions on how to make the ModSync.xml files. If someone is already using git and github/gitlabs/other then adding an additional file is not a problem. Same holds true to a static means of uploading files to a server; just another file to upload. Heck if someone wanted to select Direct Download option they could host the xml files in a repo and have the zip on a google drive (not sure why they'd do that but it's possible)

There's also something called being `platform agnostic` in which a program/mod does not rely on a 3rd party app/api/site to always behave a certain way. Uri signatures should stay unchanged - too much rely on that to be true - but behaviors like redirects that are specific to a single site cannot be guaranteed to always behave that way.

I am not going to tie this mod to any one platform. This mod will support as many different platforms as possible as people ask for support to be added.

If a modder does not want to take the 10 minutes to learn how to create a ModSync.xml then upload the file in another minute that's unfortunate - in the end it just hurts the mods' users as they won't know when there are updates. TBH after doing it 18 times now it takes all of 2 minutes to do everything. If any of the instructions are not clear let me know and I'll update them (they are wikis so others can update them as well i believe (i'll probably need to approve any changes))