-
-
Notifications
You must be signed in to change notification settings - Fork 346
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
Spec extension proposal: "downloads" #487
Comments
This issue is now particularly important at times like this when Kerbalstuff is down, making most mods in the index unavailable for download. |
Maybe it's better to change the type of "download" field to array in next spec version? |
I agree with TeddyDD: imho, "download" should take an array of download locations to try. |
My brain hasn't properly spun up today, but things to consider with regards to multiple download locations are:
For 1, implementing checksums (#62) would help verify that what we downloaded is what we expect. For 2 and 3, one could always consider the first URL to be the canonical URL, and files are cached as if they were downloaded from there, even if they were not. Point 3 could be potentially relieved by allowing mods to reference another mod's download section, rather than having to provide its own. Although as mentioned in #489, the spec and CKAN core itself will never read, use, or validate any key starting with "x_", as they're specifically reserved for extensions which are not in the core, so this ticket could do with a rename (or a new ticket created) if we want to discuss extending the |
|
That would be nice, but also a barrier to humans writing the metadata themselves. Having said that, caching by checksum if it exists is most definitely a good idea, and should be implemented if we add checksums to the spec. Ref #62 . |
#935, while not superseding this, may certainly remove much of the need. :) |
This is simple to solve. We just need to add checksum calculation tool to netkan.exe (something like |
Hey there! I'm a fun-loving automated bot who's responsible for making sure old support tickets get closed out. As we haven't seen any activity on this ticket for a while, we're hoping the problem has been resolved and I'm closing out the ticket automaically. If I'm doing this in error, please add a comment to this ticket to let us know, and we'll re-open it! |
May as well re-open this as it's getting particularly relevant. |
My thoughts:
|
Also, deprecate Right now we have For example: {
"x_netkan_jenkins": {
"url": "https://ksp.sarbian.com/jenkins/job/ModuleManager/"
},
"x_netkan_github": {
"user": "sarbian",
"repo": "ModuleManager"
}
} Would generate multiple download URLs, one from Jenkins and one from GitHub. This would be trivial to do with how NetKAN's transformers work. EDIT: Dealing with priorities may be a bit tricky though. EDIT2: Thoughts on handling priorities: Each source would specify a priority number, e.g.: {
"x_netkan_jenkins": {
"url": "https://ksp.sarbian.com/jenkins/job/ModuleManager/",
"priority": 1
},
"x_netkan_github": {
"user": "sarbian",
"repo": "ModuleManager",
"priority": 2
}
} During transformation each source transformer would adds it download URL, size, and checksum to a temporary array: {
"x_netkan_downloads": [
{
"url": "https://jenkins.example/ModuleManager.zip",
"checksum": {
"sha256": "0123456789abcdef"
},
"size": 123456,
"priority": 1
},
{
"url": "https://github.example/ModuleManager.zip",
"checksum": {
"sha256": "0123456789abcdef"
},
"size": 123456,
"priority": 2
}
]
} Then at the end will be a transformer which takes the EDIT3: An open question is what we should do if one download source fails during |
@dbent 👍 |
I propose that we implement an extension called 'downloads'
For now this will mostly allow mirorred ckan metadata to continue to function if the mirror goes down among other things.
The text was updated successfully, but these errors were encountered: