Jump to content

CKAN (The Comprehensive Kerbal Archive Network); v1.28.0 - Dyson


Recommended Posts

Unhandled exception:
Newtonsoft.Json.JsonSerializationException: Unexpected end when deserializing object. Path 'available_modules.CryoEngines-LFO.module_version['1:0.4.1'].ksp_version', line 126563, position 16186493.
   bei Newtonsoft.Json.Serialization.JsonSerializerInternalReader.ThrowUnexpectedEndException(JsonReader reader, JsonContract contract, Object currentObject, String message)
   bei Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   bei Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   bei Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   bei Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateDictionary(IDictionary dictionary, JsonReader reader, JsonDictionaryContract contract, JsonProperty containerProperty, String id)
   bei Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   bei Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   bei Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
   bei Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   bei Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   bei Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   bei Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateDictionary(IDictionary dictionary, JsonReader reader, JsonDictionaryContract contract, JsonProperty containerProperty, String id)
   bei Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   bei Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   bei Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
   bei Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   bei Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   bei Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   bei Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
   bei Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
   bei Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
   bei Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
   bei CKAN.RegistryManager.Load()
   bei CKAN.RegistryManager.LoadOrCreate()
   bei CKAN.RegistryManager..ctor(String path, KSP ksp)
   bei CKAN.RegistryManager.Instance(KSP ksp)
   bei CKAN.Main..ctor(String[] cmdlineArgs, KSPManager mgr, GUIUser user, Boolean showConsole)
   bei CKAN.GUI.Main_(String[] args, KSPManager manager, Boolean showConsole)
   bei CKAN.CmdLine.MainClass.RunSimpleAction(Options cmdline, CommonOptions options, String[] args, IUser user, KSPManager manager)
   bei CKAN.CmdLine.MainClass.Execute(KSPManager manager, CommonOptions opts, String[] args)
   bei CKAN.CmdLine.MainClass.Main(String[] args)

 

Thats the Error log I get, if i start Ckan Up, Any tips?

I have now removed any other mod except graphical ones

Its still not starting

 

Link to post
Share on other sites

KSP 1.7.3, CKAN 1.26.4, Strategia 1.7.3

  1.  For some reason, Strategia, while already installed and marked as such, always shows as Newly Compatible.  Even if there are other mods listed as New, the next time I open CKAN, they're all gone but Strategia remains.  I don't wish to uninstall it for fear of losing my progress/policies in my career.  I suspect that I caused this somehow but it's not clear how I've done this.
  2. Another issue for me is that CKAN doesn't remember its screen position and size, the size setting between the mod description window and the mod metadata tabs, nor the main window's column display selections.  Are these supposed to be persistent?
Link to post
Share on other sites

Hello,

CKAN is distributing Deep Space Surface Habitat Unit 1.8 with patches in the GameData/DSSHU folder as well as patches in GameData/DSSHU/Patches folder. The new release moved the patches from /DSSHU to /DSSHU/Patches and there are no patches in the /DSSHU folder in the zip file uploaded to Spacedock for 1.8. Can you please advise the best way to proceed?

Thank you

Link to post
Share on other sites
18 minutes ago, bcink said:

Hello,

CKAN is distributing Deep Space Surface Habitat Unit 1.8 with patches in the GameData/DSSHU folder as well as patches in GameData/DSSHU/Patches folder. The new release moved the patches from /DSSHU to /DSSHU/Patches and there are no patches in the /DSSHU folder in the zip file uploaded to Spacedock for 1.8. Can you please advise the best way to proceed?

Thank you

Ah I see, you moved all the config files from "/DSSHU/Optional Configs" to "/DSSHU/GameData/Patches" in the zip, this results in some of the being installed twice.

This should be an easy fix, hang on.

Link to post
Share on other sites

@bcink CKAN now takes the folder "DSSHU" as is and puts it into GameData, without picking out any config files:
https://github.com/KSP-CKAN/CKAN-meta/commit/4b1307eccf2fa9317d6544475dc9144b44b2826d
The new forum thread URL has also been picked up already:
https://github.com/KSP-CKAN/CKAN-meta/commit/1df73bda55b414dc24da99d34392c5916902ae2a

Edited by DasSkelett
Typooooo
Link to post
Share on other sites
1 hour ago, DasSkelett said:

@bcink CKAN now takes the folder "DSSHU" as is and puts it into GameData, without picking out any config files:
The new forum thread URL has also been picked up already:

That's fantastic. Thank you!

Link to post
Share on other sites

Is there any way to build CKAN that doesn't involve running Cake to get all the dependencies automatically? I am attempting to update the NixOS package from 1.16.1 to 1.26.4, and the build sandbox does not have internet access. Normally Nix packages download their dependencies, hash them, and insert them into the build environment. But there are many dependencies pulled in by Cake, each of which presumably will have it's own updates to track. Is there at least a way to get Cake to dump the list of URLs needed, or something?

Thanks.

Link to post
Share on other sites
9 hours ago, lordcirth said:

Is there any way to build CKAN that doesn't involve running Cake to get all the dependencies automatically? I am attempting to update the NixOS package from 1.16.1 to 1.26.4, and the build sandbox does not have internet access. Normally Nix packages download their dependencies, hash them, and insert them into the build environment. But there are many dependencies pulled in by Cake, each of which presumably will have it's own updates to track. Is there at least a way to get Cake to dump the list of URLs needed, or something?

Thanks.

All the dependencies are cached in "_build/cake/", "_build/lib/" and "_build/tools/". If they are already installed, neither NuGet nor Cake should try to download them. Not sure how the Nix packaging works, but maybe you can just include those directories in the package?

Dependencies are only updated with new CKAN releases, so you don't have to worry about in-between dependency (version) changes.

Link to post
Share on other sites
19 minutes ago, DasSkelett said:

All the dependencies are cached in "_build/cake/", "_build/lib/" and "_build/tools/". If they are already installed, neither NuGet nor Cake should try to download them. Not sure how the Nix packaging works, but maybe you can just include those directories in the package?

Dependencies are only updated with new CKAN releases, so you don't have to worry about in-between dependency (version) changes.

Basically I need to be able to specify the build inputs as a set of URLs and matching hashes. I can then copy them into _build. The package definition itself can't include the downloads, just the metadata to fetch them. So unless there is a better way, I will have to run the build script, look at everything in _build/lib etc, and figure out the matching urls.

Or I could give up and fetch the binary. Not sure about the rules on that.

For reference, this is the current definition:

https://github.com/NixOS/nixpkgs/blob/69d58ee24506e2b3b5aff347ae3b0791110340ec/pkgs/games/ckan/default.nix

Edited by lordcirth
Link to post
Share on other sites
6 hours ago, lordcirth said:

Basically I need to be able to specify the build inputs as a set of URLs and matching hashes. I can then copy them into _build. The package definition itself can't include the downloads, just the metadata to fetch them. So unless there is a better way, I will have to run the build script, look at everything in _build/lib etc, and figure out the matching urls.

Or I could give up and fetch the binary. Not sure about the rules on that.

For reference, this is the current definition:

https://github.com/NixOS/nixpkgs/blob/69d58ee24506e2b3b5aff347ae3b0791110340ec/pkgs/games/ckan/default.nix

Okay, this will be a bit harder. Cake itself doesn't download the runtime dependencies, it tells NuGet to do so.

NuGet downloads .nupkg zips, those are saved in "~/.nuget/packages/"  and "CKAN/_build/lib/nuget".
First folder is the global installation directory, in there are all packages downloaded by NuGet. It's somewhat of a cache :)
Packages referenced with "PackageReference" in .csproj files, can only be found there.
Packages referenced in "packages.config" files are also "copied"  to the second folder. Beware, the folder structure is different: "<package_name>/<package_version>/*" in the first directory and "<package_id>.<package_version>/*" in the second.

For more information, see https://docs.microsoft.com/en-us/nuget/consume-packages/managing-the-global-packages-and-cache-folders

You can get a list of the called URLs when building CKAN with both folders empty. It will look something like this after piping through grep:

GET https://api.nuget.org/v3-flatcontainer/cake/0.34.1/cake.0.34.1.nupkg
GET https://api.nuget.org/v3-flatcontainer/log4net/2.0.8/log4net.2.0.8.nupkg
GET https://api.nuget.org/v3-flatcontainer/newtonsoft.json/12.0.2/newtonsoft.json.12.0.2.nupkg
GET https://api.nuget.org/v3-flatcontainer/commandlineparser/1.9.71/commandlineparser.1.9.71.nupkg
GET https://api.nuget.org/v3-flatcontainer/autofac/4.9.2/autofac.4.9.2.nupkg
GET https://api.nuget.org/v3-flatcontainer/ini-parser/3.4.0/ini-parser.3.4.0.nupkg
GET https://api.nuget.org/v3-flatcontainer/icsharpcode.sharpziplib.patched/0.86.5.1/icsharpcode.sharpziplib.patched.0.86.5.1.nupkg
GET https://api.nuget.org/v3-flatcontainer/njsonschema/10.0.19/njsonschema.10.0.19.nupkg
GET https://api.nuget.org/v3-flatcontainer/namotion.reflection/1.0.5/namotion.reflection.1.0.5.nupkg
GET https://api.nuget.org/v3-flatcontainer/awssdk.core/3.3.103/awssdk.core.3.3.103.nupkg
GET https://api.nuget.org/v3-flatcontainer/awssdk.sqs/3.3.100.34/awssdk.sqs.3.3.100.34.nupkg
GET https://api.nuget.org/v3-flatcontainer/chinhdo.transactions.filemanager/index.json
GET https://api.nuget.org/v3-flatcontainer/chinhdo.transactions.filemanager/1.2.0/chinhdo.transactions.filemanager.1.2.0.nupkg
GET https://api.nuget.org/v3-flatcontainer/castle.core/index.json
GET https://api.nuget.org/v3-flatcontainer/moq/index.json
GET https://api.nuget.org/v3-flatcontainer/nunit/index.json
GET https://api.nuget.org/v3-flatcontainer/nunit3testadapter/index.json
GET https://api.nuget.org/v3-flatcontainer/system.runtime.compilerservices.unsafe/index.json
GET https://api.nuget.org/v3-flatcontainer/system.threading.tasks.extensions/index.json
GET https://api.nuget.org/v3-flatcontainer/castle.core/4.4.0/castle.core.4.4.0.nupkg
GET https://api.nuget.org/v3-flatcontainer/system.runtime.compilerservices.unsafe/4.5.2/system.runtime.compilerservices.unsafe.4.5.2.nupkg
GET https://api.nuget.org/v3-flatcontainer/system.threading.tasks.extensions/4.5.2/system.threading.tasks.extensions.4.5.2.nupkg
GET https://api.nuget.org/v3-flatcontainer/nunit3testadapter/3.13.0/nunit3testadapter.3.13.0.nupkg
GET https://api.nuget.org/v3-flatcontainer/nunit/3.12.0/nunit.3.12.0.nupkg
GET https://api.nuget.org/v3-flatcontainer/moq/4.11.0/moq.4.11.0.nupkg

However there are also build dependencies (see "#addin" and "#tool" at the beginning of build.cake), but Cake downloads them in a different process and doesn't output the URLs during build. But they shouldn't be too hard to handcraft.
The files are also cached in "~/.nuget/packages/".

So in the Nix package build process, you should download those .nupkg files, extraxt them to "<package_name>/<package_version>/*", copy the .nupkg zip again in the extracted folder (so "<package_name>/<package_version>/<name>.<version>.nupkg" ), and bundle them all together in the package.
It will take some string manipulation to get the package name and version from the zip filename.

During installation of the package / before building CKAN, either put those files in "~/.nuget/packages/", or set the env var $NUGET_PACKAGES to a folder you want (see the link above).

NuGet then will do everything automatically and install each nupkg where it belongs when running "./build".

Link to post
Share on other sites

The CKAN client v1.26.6 "Leonov" is released!

68747470733a2f2f75706c6f61642e77696b696d


Changes since 1.26.4

Features

  • [GUI] Default to consoleui on MacOSX Catalina (#2911 by: HebaruSan; reviewed: pfFredd, DasSkelett)
  • [GUI] Add language selection option to settings (#2925 by: DasSkelett; reviewed: HebaruSan)

Bugfixes

  • [Build] Use Debian machine-readable copyright format (#2853 by: bfrobin446; reviewed: HebaruSan)
  • [GUI] Don't invalidate invisible rows (#2854 by: HebaruSan; reviewed: DasSkelett)
  • [Multiple] Speed up autoremove search (#2855 by: HebaruSan; reviewed: DasSkelett)
  • [Core] Find portable installs when enforcing cache limits (#2856 by: HebaruSan; reviewed: DasSkelett)
  • [Build] Add libcurl dependency to RPM (#2858 by: HebaruSan; reviewed: DasSkelett)
  • [GUI] Allow totally incompatible modules in changeset (#2869 by: HebaruSan; reviewed: DasSkelett)
  • [GUI] Remove base64 encoded CKAN icon from resources (#2872 by: DasSkelett; reviewed: HebaruSan)
  • [Multiple] Fail on http status codes >=300 for cURL downloads (#2879 by: DasSkelett; reviewed: HebaruSan)
  • [Multiple] Normalize install paths (#2887 by: HebaruSan; reviewed: DasSkelett)
  • [Multiple] Fixes for KSP in Windows drive root (#2857 by: HebaruSan; reviewed: DasSkelett)
  • [GUI] Use current metadata for installed module compatibility (#2886 by: HebaruSan; reviewed: DasSkelett)
  • [Core] Notify when falling back to archive.org URL (#2892 by: HebaruSan; reviewed: DasSkelett)
  • [Multiple] Only run Mono in 32bit mode when the GUI is launched (#2893 by: DaskSkelett; reviewed: HebaruSan)
  • [Build] Force logical name for generated resources (#2899 by: DasSkelett; reviewed: HebaruSan)
  • [GUI] Show target version for upgrades in change set (#2888 by: HebaruSan; reviewed: DasSkelett)
  • [Netkan] Merge resources and include metanetkan (#2913 by: HebaruSan; reviewed: DasSkelett)
  • [GUI] Force redraw of recommendation listview headers on Mono (#2920 by: HebaruSan; reviewed: DasSkelett)
  • [Core] Restructure Net.Download and Net.DownloadText (#2904 by: DasSkelett; reviewed: HebaruSan)
  • [Netkan] Eliminate duplicate network calls in Netkan (#2928 by: HebaruSan; reviewed: DasSkelett, techman83)
  • [ConsoleUI] Disable Upgrade All ConsoleUI menu option when nothing to upgrade (#2927 by: HebaruSan; reviewed: DasSkelett)

Internal

  • [Build] Redeploy Inflator after builds (#2889 by: HebaruSan; reviewed: techman83)
  • [Netkan] Add owners of parent GitHub repos to authors (#2922 by: HebaruSan; reviewed: DasSkelett)
  • [Build] Update dependencies (#2921 by: DasSkelett; reviewed: HebaruSan, politas)

Comments

  • Welcome to new contributor bfrobin446 who helped bring our copyright data into line with other software repositories. We are always happy to see new contributors submitting code, and don't feel like you have to do it all by yourself. We're a very helpful team.
  • If you're wondering why MacOS now defaults to the consoleui, it's because Apple have dropped support for 32-bit graphics, and our graphical ui uses the Winforms toolset which has not been ported to 64-bit, and likely never will. Discussions for a new UI using a more modern toolset are ongoing.
  • The CKAN Discord has been very popular, and is certainly proving very useful for the Dev team. Feel free to hit us up there for questions, though the primary locations for Bug Reports and Metadata Issues remains GitHub.
  • My Twitch streaming has been a bit off the air since moving my home office around. My microphone seems to have stopped working, and I need to sort it out, but I'll be back on sometime, playing KSP (usually fairly badly!). If anyone has questions about the CKAN client and how to make the best use of it, feel free to jump on my stream and ask, and I can demonstrate live!
  • I am as always humbled and inordinately grateful for the excellent team we have working on the CKAN. @HebaruSan, @DasSkelett, @Olympic1, and the incomparable master of infrastructure @techman83 continue their fabulous work!
Link to post
Share on other sites
  • 1 month later...
1 hour ago, David H said:

I did. Did you see the picture?

What you have on picture is archive file names that CKAN downloaded. It extract those in folder "..\KSP\Gamedata\" where each mod should be installed. CKAN does not extract those files in same folder as it downloads them. Have you checked your "..\KSP\Gamedata\" folder after you have clicked on apply button ?

Edited by kcs123
Link to post
Share on other sites
23 minutes ago, David H said:

Ok then how would I get them to go to a desktop copy I use?

Hmm, that would be a good FAQ for the user guide to cover. Try this new section I just added:

https://github.com/KSP-CKAN/CKAN/wiki/User-guide#adding-game-folders

Quote

Do I still need to keep the folder for the non extracted files? Is there a way to get ckan to not store them.

You can limit the size of that folder:  Settings → CKAN Settings → Maximum cache size

Edited by HebaruSan
Link to post
Share on other sites
  • Geonovast locked and unpinned this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...