-
Notifications
You must be signed in to change notification settings - Fork 7
Delta Updates for mods hosted at Github
- when you extract the mod archive, make sure that every mod have an extra top-level directory
Simply add mod metadata file and fill the 'Download = ' keyword with the link to your GitHub repository: https://github.com/ALIENQuake/ProjectInfinity/wiki/Adding-metadata-for-you-mod
If you do not use releases, everything below doesn't apply to you but you are encouraged to read this anyway.
In order to not break things, simply follow the usual Git + GitHub workflow:
- Update tp2 VERSION keyword, update readme with version, and changelog
- Create final local commit with all 'ready-to-go' changes
- Push local commits into a remote repository
- Optionally, create mod packages which you will later add to the release or use automated tools
- Create release via the GitHub web interface (or via tools) with the same tag as VERSION
This is the end of the road. After publishing release, you cannot:
- add other tags to the same release
- remove or replace existing tags
- replace mod packages with new ones that contain changes
If you have done ANY modification to the local files, especially if you discover mistakes, you must repeat all of the steps above.
Delta Updates will only download mod changes, not the whole mod again.
Because it's GitHub-based, it offers stability and consistency. It's impossible to download partial
files: you either download it correctly or don't download it at all, it's how git itself works internally.
- the update process doesn't modify mods inside the game directory, only the directory where the user has extracted it
- update process can be only initiated by the user himself, in order to not break the desired install state
- user-created files inside the mod folder are untouched
- if the mod doesn't have any releases or prerelease, offer updates for each new commit
- if the mod has even one release, offer to update only if there is a new release
- if the mod has only prereleases, offer updates for new prerelease
- if the mod has both releases and prereleases, offer updates for releases only, do not offer the update for new prereleases unless there is a global option "Allow for prereleases" enabled