Skip to content
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

Allow multiple distributions per file? #1

Closed
NathanKell opened this issue Aug 17, 2014 · 4 comments
Closed

Allow multiple distributions per file? #1

NathanKell opened this issue Aug 17, 2014 · 4 comments

Comments

@NathanKell
Copy link
Contributor

Let's take RSS as an example. I would like to release a file that includes both RSS itself and some required dependencies. However, each of those dependencies are themselves distributions.

As not all users will use the preferred means of distribution, and we would like mods installed through means other than this to be recognized by this, it seems of decent importance that this (issue) be possible.

@pjf
Copy link
Member

pjf commented Aug 17, 2014

+1 Agreed. Bundling MM is exceedingly common, and it's common to see things like the Open Resource System bundled with Karbonite or the Modular Kolonization System.

@pjf
Copy link
Member

pjf commented Sep 21, 2014

Right now I'm using something similar to this:

    "install" : [
        {
            "file"       : "RealSolarSystem",
            "install_to" : "GameData"
        }
    ],
    "bundles" : [
        {
            "file"       : "ModuleManager.2.3.3.dll",
            "name"       : "ModuleManager",
            "version"    : "v2.3.3",
            "install_to" : "GameData",
            "license"    : "CC-BY-SA",
            "required"   : true
        },
        {
            "file"       : "CustomBiomes",
            "name"       : "CustomBiomes",
            "version"    : "v1.6.6",
            "install_to" : "GameData",
            "license"    : "CC-BY-NC-SA 3.0",
            "required"   : false
        }
    ]

Things in the install stanza are ours, and inherit the meta-info from the main document. Things in the bundled stanza are things we've bundled up. Right now they have reduced meta-data. If we've already got them installed separately, we skip the install.

Note that something which overwrites a file (like RealismOverhaul overwriting TACLS config¹) isn't a bundle, it goes in install (and will be appropriately marked up to say that it needs TACLS to overwrite).


¹ This always makes me weep. I wish TACLS allowed config via MM.

@pjf
Copy link
Member

pjf commented Sep 24, 2014

I'm pretty sure we've got this mostly designed to a state I'm happy with. We provide bundles stanzas which allow us to indicate that some things are bundled, and those can be skipped if we know they're already installed, or a later version is installed.

#3 has discussion on how we retain state on bundled mods, and I've still got to figure out what to do about mods which are commonly bundled in an incomplete state (eg: Firespitter).

There's also a question of what to do if a mod is broken up over multiple files in the same directory as another mod, which is what we see in a few USI releases. In those cases, I think we need to extend the spec so that the file field can refer to multiple files rather than just a single one.

@pjf
Copy link
Member

pjf commented Sep 24, 2014

And closing this now, since most of the remaining issues are in the other tickets.

(As always, re-open if you think this is in error)

@pjf pjf closed this as completed Sep 24, 2014
christianvdstap added a commit that referenced this issue Nov 8, 2014
More tests for path utils.
Ippo343 added a commit that referenced this issue Nov 23, 2014
Extra tests for GameData pathed installs
RichardLake referenced this issue in RichardLake/CKAN May 30, 2015
Extra tests for GameData pathed installs
Olympic1 referenced this issue in Olympic1/CKAN Mar 20, 2016
Fixed some typos and added a fix for malformed URLs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants