GithubHelp home page GithubHelp logo

ksp-ckan / netkan Goto Github PK

View Code? Open in Web Editor NEW
69.0 20.0 335.0 15.53 MB

Metadata files used by the NetKAN/CKAN indexer for KSP

License: Creative Commons Zero v1.0 Universal

YAML 100.00%
ckan ksp metadata

netkan's Introduction

The NetKAN repository

The NetKAN consists of CKAN fragments which are used by our indexing bots to generate metadata for use by the CKAN client and other tools. The files themselves live in the NetKAN directory.

If you're wondering what the CKAN is, start with this README.

Opening issues

If you want to suggest something or report a bug relating to CKAN as a whole, open an issue on the CKAN repository.

If you wish to add support for a new mod yourself, Read our guide on how to do this.

The format of NetKAN files is that described in the CKAN Spec, including the special use fields at the end.

All contributions to this repository must be made under a CC-0 license.

Contributing to CKAN

No technical expertise is required to contribute to CKAN

If you want to contribute, please read our CONTRIBUTING file.

netkan's People

Contributors

alexanderdzhoganov avatar basharmilesteg avatar dasskelett avatar dazpoet avatar dbent avatar felger avatar hakan42 avatar hebarusan avatar ippo343 avatar jonnyothan avatar jrossignol avatar linuxgurugamer avatar lomicronl avatar mgsdk avatar murdabenne avatar nathankell avatar netkan-bot avatar olympic1 avatar pjf avatar plague006 avatar politas avatar raidernick avatar sarbian avatar sirdiazo avatar space-duck avatar sswelm avatar starstrider42 avatar techman83 avatar teddydd avatar y3mo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

netkan's Issues

KerbalAlarmClock install location

It has been pointed out on the forum that KAC is installed in the wrong folder: it should be in GameData/TriggerAU/KerbalAlarmClock, while presently it is in GameData/KerbalAlarmClock.

However the KerbalStuff release is just a copy of the zip posted to github, and thus has the same format:

KerbalAlarmClock.x.x.x.x/GameData/KerbalAlarmClock

Unfortunately to solve this we are going to need either the find keyword (KSP-CKAN/CKAN#376), or a way to install to a subdirectory of GameData (KSP-CKAN/CKAN#315).

Impossible Innovations bad install section

Seems like ImpossibleInnovations has an extra space in the directory name in the install section which prevents it from being installed correctly.

By that I mean that the mod's archive contains a folder "Impossible Innovations" and not "ImpossibleInnovations"

ArgumentOutOfRangeException while parsing github information

netkan file:

{
    "spec_version"   : 1,
    "name"           : "Extraplanetary Launchpads",
    "abstract"       : "Adds the ability to build crafts in flight mode to your game.",
    "identifier"     : "ExtraPlanetaryLaunchpads",
    "$kref"          : "#/ckan/github/taniwha-qf/Extraplanetary-Launchpads",
    "license"        : "LGPL-3.0",
    "release_status" : "stable",
    "ksp_version"    : "0.25",
    "resources"      : {
        "homepage" : "http://forum.kerbalspaceprogram.com/threads/59545"
    },
    "depends"        : [
        {"name" : "ModuleManager"},
    {"name" : "Toolbar"}
    ],
    "recommends"     : [
        {"name" : "KerbalStats"},
    {"name" : "KerbalAttachementSystem"},
    {"name" : "InfernalRobotics"},
    {"name" : "Kethane"}
    ],
    "install"        : [
        {
            "file"       : "ExtraplanetaryLaunchpads",
            "install_to" : "GameData",
        "filter"     : "Ships"
        },
        {
            "file"       : "ExtraplanetaryLaunchpads/Ships",
            "install_to" : "Ships"
        }
    ]
}

command output:

mono ../netkan.exe ../NetKAN/NetKAN/Extraplanetary-Launchpads.netkan 

Unhandled Exception:
System.ArgumentOutOfRangeException: Argument is out of range.
Parameter name: index
  at System.Collections.Generic.List`1[Newtonsoft.Json.Linq.JToken].get_Item (Int32 index) [0x00000] in <filename unknown>:0 
  at Newtonsoft.Json.Linq.JContainer.GetItem (Int32 index) [0x00000] in <filename unknown>:0 
  at Newtonsoft.Json.Linq.JArray.get_Item (Int32 index) [0x00000] in <filename unknown>:0 
  at CKAN.NetKAN.GithubAPI.GetLatestRelease (System.String repository) [0x00000] in <filename unknown>:0 
  at CKAN.NetKAN.MainClass.GitHub (Newtonsoft.Json.Linq.JObject orig_metadata, System.String repo, CKAN.Cache cache) [0x00000] in <filename unknown>:0 
  at CKAN.NetKAN.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.ArgumentOutOfRangeException: Argument is out of range.
Parameter name: index
  at System.Collections.Generic.List`1[Newtonsoft.Json.Linq.JToken].get_Item (Int32 index) [0x00000] in <filename unknown>:0 
  at Newtonsoft.Json.Linq.JContainer.GetItem (Int32 index) [0x00000] in <filename unknown>:0 
  at Newtonsoft.Json.Linq.JArray.get_Item (Int32 index) [0x00000] in <filename unknown>:0 
  at CKAN.NetKAN.GithubAPI.GetLatestRelease (System.String repository) [0x00000] in <filename unknown>:0 
  at CKAN.NetKAN.MainClass.GitHub (Newtonsoft.Json.Linq.JObject orig_metadata, System.String repo, CKAN.Cache cache) [0x00000] in <filename unknown>:0 
  at CKAN.NetKAN.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0 

Toadicus' Mods

AntennaRange has an error in NetKAN: the license should be BSD-3-Clause.

TweakableEverything looks correct.

Add VOID:

{
    "spec_version" : 1,
    "identifier"   : "VOID",
    "license"      : "BSD-3-Clause",
    "$kref"        : "#/ckan/kerbalstuff/253"
}

Add QuantumStrutsContinued:

{
    "spec_version" : 1,
    "identifier"   : "QuantumStrutsContinued",
    "license"      : "BSD-2-Clause",
    "$kref"        : "#/ckan/kerbalstuff/168"
}

Thanks!

All TriggerTech ckans include his flags, causing conflicts

Now (spec v1.2) that we can install in subdirectories of GameData, I noticed that KerbalAlarmClock, AlternateResourcePanel, TransferWindowPlanner (and more?) all include his Flags.

  • The netkans should be amended to exclude the Flags,
  • a seperate netkan that provides only the flags should be created
  • the created flag should be referenced from the previous ckans

NovaPunch config file

{
"spec_version": 1,
"identifier": "NovaPunch",
"x_netkan_license_ok": true,
"install": [
{
"file": "GameData/NovaPunch2",
"install_to": "GameData"
}
],
"resources": {
"homepage": "http://forum.kerbalspaceprogram.com/threads/3870",
"kerbalstuff": "https://kerbalstuff.com/mod/26/NovaPunch"
},
"ksp_version": "0.90",
"name": "NovaPunch",
"license": "CC-BY-SA 3.0",
"abstract": "Novapunch is a pack of realistically-styled rocket parts from 1 to 5 meters in diameter. It includes engines, fuel tanks, many adapters and utility parts as well as new crew capsules and spacecraft.",
"author": "Tiberion",
"version": "2.08",
"download": "https://kerbalstuff.com/mod/26/NovaPunch/download/2.08",
"x_generated_by": "netkan",
"download_size": 87397323
}

B9 Aerospace

Assuming we get permission, B9 has a long list of bundled mods:

  • CrossFeedEnabler
  • Firespitter (core)
  • RasterPropMonitor
  • KineTechAnimation
  • KlockheedMartian gimbal
  • ResGen
  • SmokeScreen
  • Virgin Kalactic's "Generic" plugin

Update: on the forum thread it's stated that FAR/NEAR are considered requirements:

  • FAR
  • NEAR

Additionally it also provides a custom config for Hot Rockets, which maybe isn't worth a package on its own.

Active Texture Management

ATM is going to give us some issues. Assuming we get permission from @rbray89, ATM has 4 downloads per release (basic / aggressive, 32 / 64 bit).

How can this be accounted for?

The netkan bot won't pick up multple releases if they are released too close to each other

The bot refreshes the index about once an hour. However, it seems to assume that only one release has appeared since the last update.

Case study: we missed a FAR release. If you look at the changelog on kerbalstuff, there is a v0.14.4.1 release that hasn't been indexed by the bot. This is because ferram4 has released v0.14.4.1 and v0.14.5 within minutes of each other and the bot only picked up the latest one, ignoring the other one.

Poking @pjf and @AlexanderDzhoganov : we might want to improve the bot's detection of new releases.

UniversalStorage >= 1.0.90.1 conflicts with other UniveralStorage mods

This issue is about the following mods:

  • UniversalStorage-ECLSS.netkan
  • UniversalStorage-IFI.netkan
  • UniversalStorage-KAS.netkan
  • UniversalStorage-SNACKS.netkan
  • UniversalStorage-TAC.netkan
  • UniversalStorage.netkan

The newest release of UniversalStorage (1.0.90.1) combines all of its submods into one package that detects the presence of other mods and enables the specific submods if required.

Trying to install UniversalStorage >= 1.0.90.1 alongside with any other UniversalStorage mods causes a conflict on installation (overwriting files of another mod).

For more information and in case you need feedback from the author, please refer to this thread: http://forum.kerbalspaceprogram.com/threads/75129-Universal-Storage-1-0-90-0-%28For-KSP-0-90%29-2nd-January-2015?p=1644627&viewfull=1#post1644627

KDEX.netkan

CKAN is awesome, please include my little mod in your index

{
    "spec_version" : 1,
    "identifier"   : "KDEX",
    "$kref"        : "#/ckan/kerbalstuff/337",  
    "install": [
        {
            "file"       : "GameData/masTerTorch",
            "install_to" : "GameData"
        }
    ]
}

MainClass.KerbalStuff fails when data does not contain ksp_version

KerbalAlarmClock and KSPAlternateResourcePanel have no ksp_version configured on kerbalstuff. With following netkan file I get exceptions from netkan, no matter whether I put "ksp_version" in the file or not:

{
    "spec_version"   : 1,
    "identifier"     : "KerbalAlarmClock",
    "$kref"          : "#/ckan/kerbalstuff/231",
    "ksp_version"    : "0.25",
    "license"        : "MIT"
}
D:\work\ksp\NetKAN-hakan42>netkan.exe --debug NetKAN\KerbalAlarmClock.netkan
...
187 [1] INFO CKAN.NetKAN.MainClass (null) - Processing NetKAN\KerbalAlarmClock.netkan
265 [1] DEBUG CKAN.NetKAN.KSAPI (null) - Calling https://kerbalstuff.com/api/mod/231

Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> CKAN.BadKSPVersionException: Exception of type 'CKAN.BadKSPVersionException' was thrown.
   at CKAN.KSPVersion.Validate()
   --- End of inner exception stack trace ---
   ...   at CKAN.NetKAN.MainClass.KerbalStuff(JObject orig_metadata, String remote_id, NetFileCache cache)
   at CKAN.NetKAN.MainClass.Main(String[] args)

CKAN Spec Addition

After having spent a lot of time going through the incompatible mod lists looking for mods that should be updated since they have a .90 release, I have noticed that a lot of mods do not have a homepage, however, I would be willing to be that virtually all mods have a KSP Forum page.

To help improve the meta files, I propose adding a "forum" resource to the same node that has the homepage resource, specifically so mods can have a dedicated link back to their forum posting, and also a link to a homepage, if the mod author wishes to host a homepage somewhere other than the KSP forums.

add KAS mod

Is there any blocking condition preventing to have KAS here ?
Some mod depends on it, I see one having a depends on 'KAS' which isn't there, I guess such mod is uninstallable for now.

System.NullReferenceException: Object reference nnot set to an instance of an object.

I'm not sure if I'm doing something wrong, or if there is a bug. This is the .netkan file I am trying to use (named Guard13007EmpireAgency.netkan):

{
  "spec_version" : 1,
  "identifier"   : "Guard13007EmpireAgency",
  "$kref"        : "#/ckan/kerbalstuff/68",
  "$vref"        : "#/ckan/ksp-avc",
  "install" : [
    {
      "file"       : "GameData/Guard13007",
      "install_to" : "GameData"
    }
  ]
}

And when running netkan.exe Guard13007EmpireAgency.netkan I get the following:

Unhandled Exception: System.NullReferenceException: Object reference nnot set to an instance of an object.
    at CKAN.NetKAN.MainClass.InflateMetadata(JObject metadata, String unused_filename, Object unused_context)
    at CKAN.NetKAN.MainClass.Main(String[] args)

Am I doing something wrong or what's going on exactly?

netkan should validate the Json file in input

If there is some minor defect in the .netkan file (such as a comma before the end of a section), netkan is still able to parse the file and validate it, but then the Travis build will fail when jsonlint is used.

It would be nice to have netkan also validate the json file before accepting it.

AmbientLightAdjustment

{
"spec_version" : 1,
"identifier" : "AmbientLightAdjustment",
"$kref" : "#/ckan/github/timmersuk/ksp_ambient_light",
"name" : "KSP Ambient Light Adjustment",
"abstract" : "A plugin for which adds the ability to change ambient lighting",
"license" : "GPL-3.0",
"ksp_version" : "0.90.0"
}

Kerbal Aircraft Expansion (KAX)

{
"spec_version" : 1,
"identifier" : "KerbalAircraftExpansion",
"$kref" : "#/ckan/kerbalstuff/391",
"license" : "GPL-3.0",
"x_netkan_license_ok": true,
"install" : [
{
"file" : "KAX",
"install_to" : "GameData"
}
],
"depends": [
{
"name" : "FirespitterCore"
}
],
}

SpaceY Heavy Lifters

{
"spec_version": 1,
"identifier": "SpaceY-Lifters",
"license": "CC-BY-NC-SA",
"resources": {
"homepage": "http://forum.kerbalspaceprogram.com/threads/100408",
"kerbalstuff": "https://kerbalstuff.com/mod/352/SpaceY%20Heavy%20Lifters%20Parts%20Pack"
},
"name": "SpaceY Heavy Lifters Parts Pack",
"abstract": "Stock-alike parts for large lifting rockets, 5m rocket parts and large SRBs, and matching decouplers, docking ports, structural, and utilities. ",
"author": "NecroBones",
"version": "0.3",
"download": "https://kerbalstuff.com/mod/352/SpaceY%20Heavy%20Lifters%20Parts%20Pack/download/0.3",
"x_generated_by": "netkan",
"$vref": "#/ckan/ksp-avc"
}

KeepFit

{
"spec_version" : 1,
"identifier" : "KeepFit",
"$kref" : "#/ckan/kerbalstuff/295",
"x_netkan_license_ok": true,
"$vref" : "#/ckan/ksp-avc",
"depends": [
{ "name" : "ModuleManager", "min_version" : "2.5.1" }
]
}

Splitting ProceduralFairings

KOSMOS URM apparently depends on the plugin of procedural fairings, and only the plugin.

I suggest we split Procedural Fairings in two packages, ProceduralFairings-core and ProceduralFairings so that other mods can depend on the plugin (exactly like we did with FireSpitter).

RCSLandAid

{
"spec_version" : 1,
"identifier" : "RCSLandAid",
"$kref" : "#/ckan/kerbalstuff/412",
"x_netkan_license_ok": true
}

One level too much indirection

Hi!
I just now realized that there is one level too much when my mods are installed via CKAN.

Example:
GameData
. CIT
.. ActiveStruts <- too much
... ActiveStruts
.... [ModContent]

For the CIT-Utils the structure should be:
GameData
. CIT
.. [ModContent]
as well.

This is true for all my CIT packages and breaks the mods which expect a certain path. I don't have access to my dev machine until the weekend so it would be really great if someone could fix the files.
Very sorry for the inconvenience!

netkan.exe doesn't work on 64b windows OS

I tried the last version on netkan and from command line, it complains this version is not compatible with currently running windows version (??).

system: win 7 64b

steps:
run cmd.exe
go to netkan.exe folder
run netkan.exe (without arguments)

Kerbal Alarm Clock

You might consider correcting the Kerbal Alarm Clock NetKAN entry to install under /TriggerTech/Kerbal\ Alarm\ Clock rather than /Kerbal\ Alarm\ Clock...

0P Inline Fairings LITE

{
"spec_version" : 1,
"identifier" : "0PinlineFairingsLite",
"$kref" : "#/ckan/kerbalstuff/228",
"$vref" : "#/ckan/ksp-avc",
"license" : "CC-BY-NC-SA"
}

FASA and BadKSPVersionException

I was trying to write the file for FASA:

{
    "spec_version" : 1,
    "identifier"   : "FASA",
    "$kref"        : "#/ckan/kerbalstuff/27",

    "depends": [
        { "name": "RasterPropMonitor" }
    ]
}

But trying to validate it with netkan throws the above exception. It appears that the version is not correct, but the one provided on kerbalstuff seems fine.

Please do not merge this file until we have frizzank's approval.

Modular Rocket Systems

{
"spec_version": 1,
"identifier": "ModRocketSys",
"license": "CC-BY-NC-SA",
"resources": {
"homepage": "http://forum.kerbalspaceprogram.com/threads/93067",
"kerbalstuff": "https://kerbalstuff.com/mod/148/Modular%20Rocket%20Systems%20-%20Parts%20Pack"
},
"name": "Modular Rocket Systems - Parts Pack",
"abstract": "Stock-alike parts that fill in gaps in the stock selection, and offer additional NASA-like cosmetic options. ",
"author": "NecroBones",
"version": "1.3.2",
"download": "https://kerbalstuff.com/mod/148/Modular%20Rocket%20Systems%20-%20Parts%20Pack/download/1.3.2",
"x_generated_by": "netkan",
"$vref": "#/ckan/ksp-avc"
}

0P Inline Fairings

{
"spec_version" : 1,
"identifier" : "0PinlineFairings",
"$kref" : "#/ckan/kerbalstuff/196",
"$vref" : "#/ckan/ksp-avc",
"license" : "CC-BY-NC-SA"
}

Enhanced NavBall

{
"spec_version" : 1,
"identifier" : "EnhancedNavBall",
"$kref" : "#/ckan/kerbalstuff/411",
"x_netkan_license_ok": true
}

Source Code / Releases

Crowd Sourced Science doesn't do binaries, just source code, because it only uses Github for easy moderation of submissions

Will this cause an issue?

Modularize B9

So now that CKAN supports installing into arbitrary subfolders of GameData, I thinks we should be able to go ahead with splitting some mods into multiple parts. One obvious option is to separate the heavy structural parts (HX parts) from the B9 package. I'd like to start a discussion here about the best way to do this. My idea is to create two packages - B9-Core (all the parts except HX) and B9-HX (only the HX parts, depends on B9-Core). Then the main B9 package can simply depend on those two and not provide any content by itself. Not sure if this is the best way to do it though.

Also, I have one perhaps silly idea, and that is to provide a package that installs only the B9 airbrakes and nothing else. B9 seems to be the only mod providing airbrakes (as far as I know) and they are very useful for folks using FAR, because they make spaceplane reentry quite a lot easier. So this could potentially be useful for folks that don't want for whatever reason install the whole B9 package (part clutter, memory constraints, don't like the aesthetics, etc...).

So, anyone have opinions/ideas about this?

Failing NetKAN mods

The following netkan files are failing:

  • CrowdSourcedScience (netkan can't process source releases yet)
  • EntchenFlag (Mod doesn't even exist on KerbalStuff; did you hit publish at all?)

Attentioning @DuoDex and @hakan42 on this, the former because if we can get an asset attached to the release on github then we can at least index that for now, and the latter because there's a reason we review pull-requests, especial when they're for an author's own mod. :P

~ Paul

Kerbal Weather Systems

{
"spec_version" : 1,
"identifier" : "KerbalWeatherSystems",
"$kref" : "#/ckan/kerbalstuff/262",
"license" : "restricted"
}

I cannot make a PR at this moment, however SilverFox has granted me permission on IRC.

ContractConfigurator-0.3.0 not picked up by CKAN-meta

I suspect that there may be an issue with my .netkan file, but I don't know of an easy way for me to investigate. I released ContractConfigurator-0.3.0 about 12 hours ago via GitHub, but it hasn't shown up in the CKAN-meta repository. Is there a problem with my .netkan file, or has the bot just not picked up the release yet?

Chatterer

{
"spec_version" : 1,
"identifier" : "Chatterer",
"$kref" : "#/ckan/kerbalstuff/124",
"license" : "GPL-3.0",
"x_netkan_license_ok": true

}

RealismOverhaul dependencies

This is the current metadata for RealismOverhaul.

@NathanKell, @Felger: Right now everything in depends must be installed, and if the user wishes to un-install any of them we must uninstall RealismOverhaul, as it's considered to be irreparably broken without its dependencies. You simply cannot install RO without EngineIgnitor or TACLS.

What should it contain?

Note:

  • Depends: Must be installed. Hard requirement.
  • Recommends: Installed by default, but user can opt-out.
  • Suggests: Not installed by default, but user can opt-in.

The full CKAN spec is here if you need it.

KSPIRC

{
"spec_version" : 1,
"identifier" : "KSPIRC",
"$kref" : "#/ckan/github/timmersuk/ksp_irc",
"name" : "KSP IRC",
"abstract" : "A plugin which adds Internet Relay Chat (IRC) to the game",
"license" : "GPL-3.0",
"ksp_version" : "0.90.0"
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.