Jump to content

The Comprehensive Kerbal Archive Network: Call for mod participation


pjf

Recommended Posts

@nli2work: Oops, our validation bot doesn't like RetroFuture. In particular, it's very particular about the license, and because KerbalStuff allows free range strings it's not always able to figure out which license is on which mod.

I don't suppose you can change your KerbalStuff license to "CC-BY-NC-SA-4.0"? There's no need for a new release, I can just run the indexer again when done.

No prob; changed it to "CC-BY-NC-SA-4.0"

Link to comment
Share on other sites

So I want to include support for this in my mods and have a question or two. My mods are hosted on KerbalStuff, so I can use the quick/easy method of creating the ckan file, but I don't need to actually include anything in the zip correct? Additionally, one of my mods, Kerbal Construction Time, has the dll named Kerbal_Construction_Time.dll (with underscores) but the folder is KerbalConstructionTime (no underscores). Will the automatic detection of the folder path work in this case (Module Manager goes by the dll name, but the mod doesn't have anything that a Module Manager would ever need access to), or will I need to define that manually? I suppose I'll find out when I try to generate the ckan file but figured I'd ask first.

Regarding recommends/suggests, I'm afraid that a lot of people are going to favor using recommends over suggests and "normal" users aren't going to realize they probably don't want to install every recommended mod (which presumably will recommend other mods ad infinitum, creating a potentially large snowball). And then suddenly there will be lots of posts saying that installing X mod also installed 16 other mods without their knowledge. The recommends system assumes users pay attention and are generally competent, but often times mod users have proven themselves to blame mod authors for their problems rather than themselves (meaning more support claims for things the users should have been aware of had they RTFM). It may be a good idea to push "suggests" as the preferred method rather than "recommends" and get that idea in mod authors' heads now before this really takes off.

StageRecovery will be suggesting KCT for sure, but I'm not sure if I should have KCT recommend or suggest StageRecovery.

Link to comment
Share on other sites

Oh hey magico13! I love KCT! :)

You're correct that you don't need to include anything in your zip file. If you do, it will override anything we have in our NetKAN directory, but we've found it's overwhelmingly easier to leave them out of the zips entirely.

With regards to naming, its a hard question. The CKAN itself doesn't care what identifier you use, as long as it's unique and you're consistent. If someone has a pre-CKAN copy of KCT installed, that will be detected as "Kerbal_Construction_Time", but we're already seeing a move away from supporting pre-CKAN mods in terms of naming schemes. For example, "FirespitterCore" is what one would add as a dependency to get "Firespitter.dll", whereas "Firespitter" gives one the entire mod.

I would probably go with KerbalConstructionTime, as there seems to be a de-facto standard of using PascalCase for identifiers.

With regards to Depends vs Recommends vs Suggests vs Supports, that's definitely a thorny situation. I've seen mods with things marked as "depends" when really they're "recommends", and I also fear the general habit mod authors will be to declare relationships which are stronger than they really are.

However, if it puts your mind at peace, users of the GUI client will almost certainly end up with a screen which presents them with dependencies (which can't be unselected), recommends (which are selected by default), and suggestions (which are unselected by default), which will mean that they're more aware of what's being installed, and will be able to adjust their choices before anything is installed. I even believe some of this functionality is in the GUI right now, but I haven't tested it extensively (nlight is our GUI wizard, I've been focusing mostly on the CKAN.dll core).

Folks using the command line can already specify `--no-recommends` or `--with-suggests`, and we always confirm with the user before installing anything. However it would probably be a good idea if our relationship resolver indicated why it came up with a particular solution, so we can more easily display to the user what they can choose to go without.

As for your mods, I would have:

* StageRecovery suggests KCT (I agree with you here)

* KCT recommends StageRecovery

The reason for this is that it's going to be totally normal for folks using StageRecovery to not worry about construction time, but for the full (and typical) KCT experience we want users to have a way to recover stages for re-use in future projects.

All the best!

~ Paul

Link to comment
Share on other sites

With regards to Depends vs Recommends vs Suggests vs Supports, that's definitely a thorny situation. I've seen mods with things marked as "depends" when really they're "recommends", and I also fear the general habit mod authors will be to declare relationships which are stronger than they really are.

I hope aptitude default settings mess (install recommended package is checked) will be avoided :).

Also, if modders mess up with their settings, people managing CKAN (you :) ) repository HAVE TO fix this (like for debian packages, packages are not usually "owned" by software authors), lazyness or foolishness or whatever it is has to be fixed for the benefits of all users.

I've seen too much mess with Debian because of some people and I don't want to see the same issues here.

By the way, is parts only mod managed yet ? Or when ?

Link to comment
Share on other sites

Recommends mods will be installed by default; that's the whole point of recommends.

Suggested mods will only be installed when the user indicates they want suggested mods, and we only process the suggests list of mods directly requested by the user. We don't install the suggested mods which we've added because of a depends, recommends, or suggest; this does avoid the kitchen-sinking we see in Debian when someone specifies '--with-suggests'. If you want the kitchen sink, there's '--with-all-suggests'.

By the way, is parts only mod managed yet ? Or when ?

We've always supported parts mods; the main question has been regarding ensuring we have a consistent naming scheme. This is a hard problem, but it seems pretty clear that we should let people have CKAN identifiers which differ from what ModuleManager would use, with the understanding that we won't be able to detect such mods being installed unless they were installed via the CKAN (which we certainly hope will become the de-facto standard for mod installations).

I know you've got AMEG outstanding, so since we've figured out the naming issue I'll go add that now. (Although we also need to add a 'license' URL to our resources stanza at some point, so we can handle non-standard licenses.)

~ Paul

Link to comment
Share on other sites

ok thanks.

I have to update the AMEG ckan file, it's on my list ;).

suggestions to detect part mod:

-look at main subfolder of GameData (may or may not give a hint),

-look at existence of every config files provided in the mods (here, ckan need to process archive to be sure to forgot no one), + get all parts in file (one file can contains x parts),

- ultimately, do some checksum stuff as part config can be upgraded for a reason or another without any other changes (a new parameter, a balance update, a typo fix, ...) as well as textures and models which can be upgraded independently.

(in fact it's close to a plug-in considreing icons, config file/settings, ...)

Link to comment
Share on other sites

Just a quick announcement that we found a serious bug whereby the CKAN could write corrupted files to disk in the v0.15.1, and v0.16 releases. It's recommended that all users upgrade to the latest release, and if you installed a mod using one of the affected clients, that you re-install that mod.

Many thanks to Darklight for finding this.

~ Paul

Link to comment
Share on other sites

Hello, I don't know if I do something wrong but I have an error when I use ckan.exe or netkan.exe.

I'm on Arch Linux 64b with mono 3.10.0.

When I click on refresh, ckan try to download something but I always see: "Error! Failed to connect to repository", and after this I see that nothing have been updated on ckan but on the status bar I can read: "Repository successfully updated".

[malah@arch-desktop Kerbal Space Program]$ mono ckan.exe version
v0.17-0-gaa6039f

[malah@arch-desktop Kerbal Space Program]$ mono ckan.exe gui --debug
302 [1] INFO CKAN.CmdLine.MainClass (null) - Debug logging enabled
336 [1] DEBUG CKAN.KSP (null) - Checking if KSP is in my exe dir: /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program
395 [1] DEBUG CKAN.KSP (null) - Found version 0.25.0
398 [1] DEBUG CKAN.KSP (null) - /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program looks like a GameDir
398 [1] INFO CKAN.KSP (null) - KSP found at /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program
402 [1] DEBUG CKAN.KSP (null) - Found version 0.25.0
402 [1] DEBUG CKAN.KSP (null) - /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program looks like a GameDir
403 [1] DEBUG CKAN.KSP (null) - Initialising /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN
407 [1] DEBUG CKAN.KSP (null) - Initialised /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN
407 [1] INFO CKAN.CmdLine.MainClass (null) - Using KSP install at /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program
1369 [1] DEBUG CKAN.RegistryManager (null) - Using suppied CKAN registry at /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN
1369 [1] DEBUG CKAN.RegistryManager (null) - RegistryManager not yet active, loading...
1553 [1] DEBUG CKAN.RegistryManager (null) - Loaded CKAN registry at /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN/registry.json
1555 [1] DEBUG CKAN.RegistryManager (null) - Using suppied CKAN registry at /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN
1559 [1] DEBUG CKAN.KSP (null) - Found version 0.25.0
1574 [1] DEBUG CKAN.RegistryManager (null) - Using suppied CKAN registry at /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN
1574 [1] DEBUG CKAN.RegistryManager (null) - Using suppied CKAN registry at /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN
1575 [1] DEBUG CKAN.RegistryManager (null) - Using suppied CKAN registry at /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN
1575 [1] DEBUG CKAN.RegistryManager (null) - Using suppied CKAN registry at /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN
1575 [1] DEBUG CKAN.RegistryManager (null) - Using suppied CKAN registry at /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN
1575 [1] DEBUG CKAN.RegistryManager (null) - Using suppied CKAN registry at /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN
3577 [Threadpool worker] DEBUG CKAN.RegistryManager (null) - Using suppied CKAN registry at /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN
3582 [Threadpool worker] INFO CKAN.Repo (null) - Downloading https://github.com/KSP-CKAN/CKAN-meta/archive/master.zip
3715 [Threadpool worker] DEBUG CKAN.Net (null) - Downloading https://github.com/KSP-CKAN/CKAN-meta/archive/master.zip to /tmp/CdFileMgr/3460a4a2-678f-4c.tmp
4704 [Threadpool worker] DEBUG CKAN.Net (null) - Removing /tmp/CdFileMgr/3460a4a2-678f-4c.tmp after web error failure
7341 [1] DEBUG CKAN.RegistryManager (null) - Using suppied CKAN registry at /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN
7341 [1] DEBUG CKAN.RegistryManager (null) - Using suppied CKAN registry at /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN
7342 [1] DEBUG CKAN.RegistryManager (null) - Using suppied CKAN registry at /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN
7342 [1] DEBUG CKAN.RegistryManager (null) - Using suppied CKAN registry at /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN
7342 [1] DEBUG CKAN.RegistryManager (null) - Using suppied CKAN registry at /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN
7343 [1] DEBUG CKAN.RegistryManager (null) - Using suppied CKAN registry at /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN
7343 [1] DEBUG CKAN.RegistryManager (null) - Using suppied CKAN registry at /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN
7343 [1] DEBUG CKAN.RegistryManager (null) - Using suppied CKAN registry at /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN
7352 [1] DEBUG CKAN.RegistryManager (null) - Using suppied CKAN registry at /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN
7610 [1] INFO CKAN.Registry (null) - Registering SRL -> /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/GameData/SRL/Plugins/SRL.dll
7611 [1] DEBUG CKAN.RegistryManager (null) - Saving CKAN registry at /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN/registry.json

[malah@arch-desktop Kerbal Space Program]$ mono ckan.exe update --debug
307 [1] INFO CKAN.CmdLine.MainClass (null) - Debug logging enabled
341 [1] DEBUG CKAN.KSP (null) - Checking if KSP is in my exe dir: /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program
403 [1] DEBUG CKAN.KSP (null) - Found version 0.25.0
405 [1] DEBUG CKAN.KSP (null) - /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program looks like a GameDir
405 [1] INFO CKAN.KSP (null) - KSP found at /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program
409 [1] DEBUG CKAN.KSP (null) - Found version 0.25.0
409 [1] DEBUG CKAN.KSP (null) - /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program looks like a GameDir
410 [1] DEBUG CKAN.KSP (null) - Initialising /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN
414 [1] DEBUG CKAN.KSP (null) - Initialised /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN
414 [1] INFO CKAN.CmdLine.MainClass (null) - Using KSP install at /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program
Downloading updates...
431 [1] DEBUG CKAN.RegistryManager (null) - Using suppied CKAN registry at /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN
432 [1] DEBUG CKAN.RegistryManager (null) - RegistryManager not yet active, loading...
618 [1] DEBUG CKAN.RegistryManager (null) - Loaded CKAN registry at /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN/registry.json
620 [1] INFO CKAN.Repo (null) - Downloading https://github.com/KSP-CKAN/CKAN-meta/archive/master.zip
Downloading https://github.com/KSP-CKAN/CKAN-meta/archive/master.zip
646 [1] DEBUG CKAN.Net (null) - Downloading https://github.com/KSP-CKAN/CKAN-meta/archive/master.zip to /tmp/CdFileMgr/1ab20b12-a498-42.tmp
1381 [1] DEBUG CKAN.Net (null) - Removing /tmp/CdFileMgr/1ab20b12-a498-42.tmp after web error failure

Unhandled Exception:
System.Net.WebException: Error: SendFailure (Error writing headers) ---> System.Net.WebException: Error writing headers ---> System.IO.IOException: The authentication or decryption has failed. ---> Mono.Security.Protocol.Tls.TlsException: Invalid certificate received from server. Error code: 0xffffffff800b010a
at Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.RemoteValidation (Mono.Security.Protocol.Tls.ClientContext context, AlertDescription description) [0x00000] in <filename unknown>:0
at Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.validateCertificates (Mono.Security.X509.X509CertificateCollection certificates) [0x00000] in <filename unknown>:0
at Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.ProcessAsTls1 () [0x00000] in <filename unknown>:0
at Mono.Security.Protocol.Tls.Handshake.HandshakeMessage.Process () [0x00000] in <filename unknown>:0
at (wrapper remoting-invoke-with-check) Mono.Security.Protocol.Tls.Handshake.HandshakeMessage:Process ()
at Mono.Security.Protocol.Tls.ClientRecordProtocol.ProcessHandshakeMessage (Mono.Security.Protocol.Tls.TlsStream handMsg) [0x00000] in <filename unknown>:0
at Mono.Security.Protocol.Tls.RecordProtocol.InternalReceiveRecordCallback (IAsyncResult asyncResult) [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
at Mono.Security.Protocol.Tls.SslClientStream.EndNegotiateHandshake (IAsyncResult result) [0x00000] in <filename unknown>:0
at Mono.Security.Protocol.Tls.SslStreamBase.AsyncHandshakeCallback (IAsyncResult asyncResult) [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest.EndGetResponse (IAsyncResult asyncResult) [0x00000] in <filename unknown>:0
at System.Net.HttpWebRequest.GetResponse () [0x00000] in <filename unknown>:0
at System.Net.WebClient.GetWebResponse (System.Net.WebRequest request) [0x00000] in <filename unknown>:0
at System.Net.WebClient.DownloadFileCore (System.Uri address, System.String fileName, System.Object userToken) [0x00000] in <filename unknown>:0
at System.Net.WebClient.DownloadFile (System.Uri address, System.String fileName) [0x00000] in <filename unknown>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.Net.WebException: Error: SendFailure (Error writing headers) ---> System.Net.WebException: Error writing headers ---> System.IO.IOException: The authentication or decryption has failed. ---> Mono.Security.Protocol.Tls.TlsException: Invalid certificate received from server. Error code: 0xffffffff800b010a
at Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.RemoteValidation (Mono.Security.Protocol.Tls.ClientContext context, AlertDescription description) [0x00000] in <filename unknown>:0
at Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.validateCertificates (Mono.Security.X509.X509CertificateCollection certificates) [0x00000] in <filename unknown>:0
at Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.ProcessAsTls1 () [0x00000] in <filename unknown>:0
at Mono.Security.Protocol.Tls.Handshake.HandshakeMessage.Process () [0x00000] in <filename unknown>:0
at (wrapper remoting-invoke-with-check) Mono.Security.Protocol.Tls.Handshake.HandshakeMessage:Process ()
at Mono.Security.Protocol.Tls.ClientRecordProtocol.ProcessHandshakeMessage (Mono.Security.Protocol.Tls.TlsStream handMsg) [0x00000] in <filename unknown>:0
at Mono.Security.Protocol.Tls.RecordProtocol.InternalReceiveRecordCallback (IAsyncResult asyncResult) [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
at Mono.Security.Protocol.Tls.SslClientStream.EndNegotiateHandshake (IAsyncResult result) [0x00000] in <filename unknown>:0
at Mono.Security.Protocol.Tls.SslStreamBase.AsyncHandshakeCallback (IAsyncResult asyncResult) [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest.EndGetResponse (IAsyncResult asyncResult) [0x00000] in <filename unknown>:0
at System.Net.HttpWebRequest.GetResponse () [0x00000] in <filename unknown>:0
at System.Net.WebClient.GetWebResponse (System.Net.WebRequest request) [0x00000] in <filename unknown>:0
at System.Net.WebClient.DownloadFileCore (System.Uri address, System.String fileName, System.Object userToken) [0x00000] in <filename unknown>:0
at System.Net.WebClient.DownloadFile (System.Uri address, System.String fileName) [0x00000] in <filename unknown>:0

[malah@arch-desktop Kerbal Space Program]$ mono netkan.exe
279 [1] FATAL CKAN.NetKAN.MainClass (null) - Usage: netkan [--verbose|--debug] [--outputdir=...] <filename>

[malah@arch-desktop Kerbal Space Program]$ mono netkan.exe --debug SRL.ckan
319 [1] DEBUG CKAN.KSP (null) - Checking if KSP is in my exe dir: /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program
411 [1] DEBUG CKAN.KSP (null) - Found version 0.25.0
413 [1] DEBUG CKAN.KSP (null) - /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program looks like a GameDir
414 [1] INFO CKAN.KSP (null) - KSP found at /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program
418 [1] DEBUG CKAN.KSP (null) - Found version 0.25.0
418 [1] DEBUG CKAN.KSP (null) - /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program looks like a GameDir
419 [1] DEBUG CKAN.KSP (null) - Initialising /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN
422 [1] DEBUG CKAN.KSP (null) - Initialised /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN
423 [1] INFO CKAN.NetKAN.MainClass (null) - Using CKAN cache at /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN/downloads
423 [1] INFO CKAN.NetKAN.MainClass (null) - Processing SRL.ckan

Unhandled Exception:
System.IO.FileNotFoundException: Could not find file "/home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/SRL.ckan".
File name: '/home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/SRL.ckan'
at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) [0x00000] in <filename unknown>:0
at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share) [0x00000] in <filename unknown>:0
at (wrapper remoting-invoke-with-check) System.IO.FileStream:.ctor (string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)
at System.IO.File.OpenRead (System.String path) [0x00000] in <filename unknown>:0
at System.IO.StreamReader..ctor (System.String path, System.Text.Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize) [0x00000] in <filename unknown>:0
at System.IO.StreamReader..ctor (System.String path) [0x00000] in <filename unknown>:0
at (wrapper remoting-invoke-with-check) System.IO.StreamReader:.ctor (string)
at System.IO.File.ReadAllText (System.String path) [0x00000] in <filename unknown>:0
at CKAN.NetKAN.MainClass.JsonFromFile (System.String filename) [0x00000] in <filename unknown>:0
at CKAN.NetKAN.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.IO.FileNotFoundException: Could not find file "/home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/SRL.ckan".
File name: '/home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/SRL.ckan'
at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) [0x00000] in <filename unknown>:0
at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share) [0x00000] in <filename unknown>:0
at (wrapper remoting-invoke-with-check) System.IO.FileStream:.ctor (string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)
at System.IO.File.OpenRead (System.String path) [0x00000] in <filename unknown>:0
at System.IO.StreamReader..ctor (System.String path, System.Text.Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize) [0x00000] in <filename unknown>:0
at System.IO.StreamReader..ctor (System.String path) [0x00000] in <filename unknown>:0
at (wrapper remoting-invoke-with-check) System.IO.StreamReader:.ctor (string)
at System.IO.File.ReadAllText (System.String path) [0x00000] in <filename unknown>:0
at CKAN.NetKAN.MainClass.JsonFromFile (System.String filename) [0x00000] in <filename unknown>:0
at CKAN.NetKAN.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0

Thanks for your help :)

Edited by Malah
Link to comment
Share on other sites

Malah: Hmm, this feels *very* familiar. Can you running mozroots --import --ask-remove on the command-line, which should update mono's https certificate registry, and then try a straight mono ckan.exe update ?

It might not help, but I've got a hunch that our code that detects an empty certificate store may no longer be doing its job.

As for netkan.exe, it's could certainly do with a better message if it can't find the file you've asked it to process. (netkan.exe is mostly used by our bots to index mods from these fragments, but it really should look nicer on a file-not-found.)

~ Paul

Link to comment
Share on other sites

Malah: Hmm, this feels *very* familiar. Can you running mozroots --import --ask-remove on the command-line, which should update mono's https certificate registry, and then try a straight mono ckan.exe update ?

It might not help, but I've got a hunch that our code that detects an empty certificate store may no longer be doing its job.

As for netkan.exe, it's could certainly do with a better message if it can't find the file you've asked it to process. (netkan.exe is mostly used by our bots to index mods from these fragments, but it really should look nicer on a file-not-found.)

~ Paul

That's work, thanks :) and for netkan, HAAA ok, I thought it was a modder tool;)

Link to comment
Share on other sites

That's work, thanks :) and for netkan, HAAA ok, I thought it was a modder tool;)

Hooray! I've opened a bug because we used to display a big message if mozroots could fix your problem, and clearly we've regressed somehow. (Luckily `git bisect` and test cases are great for discovering how and when.)

As for the netkan, it's useful for testing your configurations. You've told it to process the SRL.ckan file, but if that's not present, then it'll fail. (You're encouraged to make one though! The top post of this thread has instructions on how.)

If you do have a SRL.ckan file in your directory, then obviously something is up if it can't read it, and I'll need to take a closer look.

Thanks again for testing, I really appreciate it! :)

Link to comment
Share on other sites

Hooray! I've opened a bug because we used to display a big message if mozroots could fix your problem, and clearly we've regressed somehow. (Luckily `git bisect` and test cases are great for discovering how and when.)

As for the netkan, it's useful for testing your configurations. You've told it to process the SRL.ckan file, but if that's not present, then it'll fail. (You're encouraged to make one though! The top post of this thread has instructions on how.)

If you do have a SRL.ckan file in your directory, then obviously something is up if it can't read it, and I'll need to take a closer look.

Thanks again for testing, I really appreciate it! :)

When I made my test, I had not understood that it would check the file (I though that it would create the file with the need to prompt all the information ;)), my mistake. Now it is good.

And just for test, after I have made the ckan file:

[malah@arch-desktop Kerbal Space Program]$ ls *.ckan
SRL.ckan
[malah@arch-desktop Kerbal Space Program]$ mono netkan.exe --debug SRL.ckan
299 [1] DEBUG CKAN.KSP (null) - Checking if KSP is in my exe dir: /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program
391 [1] DEBUG CKAN.KSP (null) - Found version 0.25.0
393 [1] DEBUG CKAN.KSP (null) - /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program looks like a GameDir
394 [1] INFO CKAN.KSP (null) - KSP found at /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program
397 [1] DEBUG CKAN.KSP (null) - Found version 0.25.0
398 [1] DEBUG CKAN.KSP (null) - /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program looks like a GameDir
399 [1] DEBUG CKAN.KSP (null) - Initialising /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN
402 [1] DEBUG CKAN.KSP (null) - Initialised /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN
403 [1] INFO CKAN.NetKAN.MainClass (null) - Using CKAN cache at /home/malah/.local/share/Steam/SteamApps/common/Kerbal Space Program/CKAN/downloads
403 [1] INFO CKAN.NetKAN.MainClass (null) - Processing SRL.ckan

Unhandled Exception:
System.ArgumentNullException: Argument cannot be null.
Parameter name: input
at System.Text.RegularExpressions.Regex.Match (System.String input, Int32 startat) [0x00000] in <filename unknown>:0
at System.Text.RegularExpressions.Regex.Match (System.String input) [0x00000] in <filename unknown>:0
at System.Text.RegularExpressions.Regex.Match (System.String input, System.String pattern, RegexOptions options) [0x00000] in <filename unknown>:0
at System.Text.RegularExpressions.Regex.Match (System.String input, System.String pattern) [0x00000] in <filename unknown>:0
at CKAN.NetKAN.MainClass.FindRemote (Newtonsoft.Json.Linq.JObject json) [0x00000] in <filename unknown>:0
at CKAN.NetKAN.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.ArgumentNullException: Argument cannot be null.
Parameter name: input
at System.Text.RegularExpressions.Regex.Match (System.String input, Int32 startat) [0x00000] in <filename unknown>:0
at System.Text.RegularExpressions.Regex.Match (System.String input) [0x00000] in <filename unknown>:0
at System.Text.RegularExpressions.Regex.Match (System.String input, System.String pattern, RegexOptions options) [0x00000] in <filename unknown>:0
at System.Text.RegularExpressions.Regex.Match (System.String input, System.String pattern) [0x00000] in <filename unknown>:0
at CKAN.NetKAN.MainClass.FindRemote (Newtonsoft.Json.Linq.JObject json) [0x00000] in <filename unknown>:0
at CKAN.NetKAN.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0

Perhaps my file is bad, I will post on the CKAN-meta for my mods (with the file), thanks.

Link to comment
Share on other sites

Just a quick note to say that v0.18 "Sabiter" is out. This adds support for filters when installing files, which allows us to support some very rich relationships and install processes.

Note that older clients won't understand mods which have filter requirements, so this is very much a recommended upgrade. Your existing registry and installed files will continue to work fine.

Also, Firespitter is now installable via the CKAN (v0.18 and later). I've been flying planes around all afternoon. :)

~ Paul

Link to comment
Share on other sites

Just to let you know, according to the GUI (and thus, probably the ckan repository) Firespitter has "Snjo" as the author and FirespitterCore has "snjo" (Uppercase vs lowercase). While it may not matter a whole lot, it is definitely an error :P

I'm also having issues with trying to get KCT working with this, but I'll open a github issue for that.

Link to comment
Share on other sites

Try the last release of ckan today, one concern: installed mods need to be downloaded (??) to display contents, it's quite weird !

I know it could be very hard (almost impossible) to do it without this step, as a coder myself I can't even imagine a good way to do that, especially with my own mods :D (I confess to have mimic Squad a little on that, maybe I'll use KerbiceGroup/mod1/engines/ .. KG/mod2/engines/... in the future)

Any plan to create a content file like in debian package ? (checksum + filename, allowing checking for corruption/modification, but without too much control on some config files, as KSP mods use global config files instead of "per save" ones)

EDIT: in gui: installed version column => "autodetect dll" :huh: "and so what ?"

Link to comment
Share on other sites

Hey everyone, just a quick status report. We've continued to work like crazy on the CKAN, and v0.19 has just gone up on the releases page. While this release may not look very different from the outside, there's a lot more internal consistency states on the inside, so it should be much harder to end up with installs which are forbidden by metadata (no more removing a mod's dependencies, or installing conflicting mods). Download of the new release is encouraged, because if there are any serious bugs, they're much less likely to cause any damage.

We know there's a bug in the GUI that can cause it to lock up on complex operations, but we're still trying to track down what's causing it. The command-line should be reasonably solid, and now produces less spam than it once did. Run with `--verbose` if you want to see more of what's going on, or `--debug` if you really enjoy watching scroll. :)

I'm also very happy to say that we've got the full Karbonite stack available for download via the CKAN now, along with a number of other modules. As always, you can do a `ckan update` or hit the refresh button in the GUI to get them.

~ Paul

Link to comment
Share on other sites

Justin: We can't figure out what's going to be installed from a mod without downloading it. A lot of metadata systems come with some sort of a manifest, which describes everything that's found in a distribution, but I suspect that would be overkill at this stage in our development.

Our original plan was something along a Debian-like packaging system, where .ckan files are included in the mods themselves. That's still supported by the indexer, but we've found it's a huge pain to have to make a new release if one wishes to change the metadata. However there are plans for checksumming, so we can better detect if we've got the wrong file. These are likely to be auto-generated by our indexer. We do sha1 fingerprints of the files we install, so we can detect if they've changed, although right now we don't actually use those for anything.

~ Paul

Link to comment
Share on other sites

Justin: We can't figure out what's going to be installed from a mod without downloading it. A lot of metadata systems come with some sort of a manifest, which describes everything that's found in a distribution, but I suspect that would be overkill at this stage in our development.

Our original plan was something along a Debian-like packaging system, where .ckan files are included in the mods themselves. That's still supported by the indexer, but we've found it's a huge pain to have to make a new release if one wishes to change the metadata. However there are plans for checksumming, so we can better detect if we've got the wrong file. These are likely to be auto-generated by our indexer. We do sha1 fingerprints of the files we install, so we can detect if they've changed, although right now we don't actually use those for anything.

~ Paul

I like the checksumming too, with that feature, CKAN could detect a bad or interrupted download.

I don't know if this have been ever thought but, many mods uses the AVC metadata, if you can work with this, this can be interesting. I know that AVC files are not completes for CKAN, but if you can added new metadata on AVC files, we always could updated a bad link without needed of your intervention.

Edited by Malah
Link to comment
Share on other sites

I like the checksumming too, with that feature, CKAN could detect a bad or interrupted download.

As it happens, we have a developer working on this right now.

I don't know if this have been ever thought but, many mods uses the AVC metadata, if you can work with this, this can be interesting. I know that AVC files are not completes for CKAN, but if you can added new metadata on AVC files, we always could updated a bad link without needed of your intervention.

We're using AVC metadata for KSP compatibility as for a few hours ago, and both SRL and QuickRevert are now having their min/max KSP versions set by the embedded AVC files we find. (You would also not believe how many broken/corrupt/malformed AVC files there are out there!)

We don't use AVC files for anything else besides checking KSP version compatibility, but we may expand that in the future (patches very welcome here!); my current focus is on improving the client to a point where it's both doing everything the spec requires it to (proper relationship resolution is anything but trivial), and is resilient enough to handle most things typical users will throw at it.

~ Paul

Edited by pjf
typos
Link to comment
Share on other sites

v0.20 aka Vacuum Polarization has been released. This fixes a bug whereby Windows users were unable to install mods with default stanzas, and also stops missing recommended or suggested modules from preventing an install from going ahead. (They'll stop produce warnings, and missing dependencies will always block an install.) There's also a few tweaks to the GUI, and the netkan inflater also has basic support for AVC files.

Also of great personal satisfaction to me is that the entire core of RealismOverhaul can now be installed via the CKAN, which is another big milestone towards me being able to play KSP again. ;)

Enjoy!

Link to comment
Share on other sites

Also of great personal satisfaction to me is that the entire core of RealismOverhaul can now be installed via the CKAN, which is another big milestone towards me being able to play KSP again. ;)

Enjoy!

Oh god, I had just finished setting up 6.4x, why are you doing this to me :(

Link to comment
Share on other sites

Just another short progress report. We've been doing oodles of work on consistency checks and improving the core CKAN libraries, and v0.24 codename Enceladus has just been released. Improvements over the last two days have included (apologies for weird formatting):

  • Shielded against a serious bug that could result in CKAN registry corruption when operations failed using the GUI client.

  • The relationship resolver will no longer try to schedule conflicting mods to be installed.
  • We refuse to install any mod that will overwrite a file from another mod, or a pre-CKAN mod.
  • Better tracking of which mods own which files.
  • Better error messages on mod conflict.

  • The client should no longer time-out during long (but active) downloads.
  • File dialog boxes work under windows.
  • GUI better handles modules which are referenced but not available.
  • Clear selection option in GUI (hover over 'apply changes', known not-showing bug on Linux/Mac)
  • We now hide the console in GUI mode (Windows only)
  • Virtual packages are displayed in a more pretty way in the dependency viewer.

  • Empty directories are now correctly removed on uninstall.
  • Fixed a bug where directories would not be installed if the user's tempdir was on a different device to KSP.
  • Updated the client to the latest release of the CKAN spec.

  • Fixed a bug where Windows users could not install modules with default stanzas.
  • Missing recommended or suggested modules will no longer stop an install (but will generate a warning).
  • The GUI now provides an "always close on success" option for the activity log.
  • The NetKAN can will retrieve KSP compatibility info from KSP-AVC version files if a magic "$vref" : "#/ckan/ksp-avc" line is present in its input.

Also, please note that clients earlier than v0.21 will soon stop working with some of the changes to the metadata format, so if you have an old release, you'll want to upgrade soon.

The newer clients are also much better at detecting packaging bugs, and we're aware there are some with TACLS and CustomBiomes related mods. These will be fixed as I update their metadata in the next couple of days.

As always, see our releases page for full details.

Many thanks!

~ Paul

Link to comment
Share on other sites

@pjf: maybe I'm wrong but there is no good enough step-by-step guide which WORKS out of the box and as-is to make a ckan index file and all explanations are quite confusing, looks like to me the usual issue with "I know everything and it's so damned easy I can't explain it well because it's so so so easy".

I suggest you to rewrite some part of the adding the bare minimal ckan file for a basic mod. Kind of quick tutorial which doesn't need to read all the documentation to gather just the needed stuff. Right now I'm quite confusing and don't really know the right way to do it :confused:.

And again, I play with netkan but... it doesn't like to be used any other way you think it should be used.

netkan.exe notamod

Exception non gérée.: System.IO.FileNotFoundException: Impossible de trouver le

fichier 'z:\games\KSP\tools\notamod'.

à System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)

à System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, In

t32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions op

tions, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean

useLongPath, Boolean checkHost)

à System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, F

ileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean b

FromProxy, Boolean useLongPath, Boolean checkHost)

à System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detect

EncodingFromByteOrderMarks, Int32 bufferSize, Boolean checkHost)

à System.IO.File.InternalReadAllText(String path, Encoding encoding, Boolean

checkHost)

à System.IO.File.ReadAllText(String path)

à CKAN.NetKAN.MainClass.Main(String[] args)

netkan.exe "z:\low-profile jet engines\lpme.ckan"

Exception non gérée.: CKAN.Kraken: Cannot find remote and ID in kref: #/ckan/ker

balstuff

à CKAN.NetKAN.MainClass.FindRemote(JObject json)

à CKAN.NetKAN.MainClass.Main(String[] args)

boring... :sealed:

Link to comment
Share on other sites

@pjf: maybe I'm wrong but there is no good enough step-by-step guide which WORKS out of the box and as-is to make a ckan index file and all explanations are quite confusing, looks like to me the usual issue with "I know everything and it's so damned easy I can't explain it well because it's so so so easy".

The top-post of this thread *tries* to be that, but I'm well aware that we need a better quick-start guide. There's the start of one on the wiki, but it's not great, either.

I would love you to write one for me.

As someone who's given up sleep, employment, and social life to work on the CKAN full-time for the last six weeks, it's *very* hard for me to see things with new-user eyes.

~ Paul

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...