-
-
Notifications
You must be signed in to change notification settings - Fork 347
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
Create a replaced_by relationship to allow seamless continuation of deprecated mods #904
Comments
What I'd like to see is a new relationship The logic should be that before a mod is added to the list of mods to install or upgrade it's checked for For example, say we have {
"spec_version": "1.x",
"identifier": "AwesomeMod",
"replaced_by": [
{ "name": "AwesomeModContinued" }
]
} However, eventually the maintainers decide that {
"spec_version": "1.x",
"identifier": "AwesomeModContinued",
"replaced_by": [
{ "name": "AmazingMod" },
{ "name": "FantasticMod" }
]
}
Potentially you could weaken the relationship and not require it to be a substitute and make use of
Thoughts? A slight concern I have is that my favorite package manager (Arch Linux's pacman) has the exact inverse relationship with |
One thing I could think of is: "replaces" would go into the new ckan/netkan so it would be in control of whoever writes the replacing addon. "replaced_by" would need cooperation from the author of ckan/netkan of the previous addon. This issue is purely academical at the moment because all metadata authors are still alive and kicking (and, more importantly, cooperating with each other) at this point in time. |
@hakan42 I don't think that's much of a concern, since ultimately the CKAN team has full control of the metadata, even with something like my proposal in #865, the CKAN team can still override metadata if necessary. I imagine it may be a concern with something like multiple repositories, but that's an advanced enough use case that I trust users doing that would be able to figure it out. A few other things to keep in mind:
|
As I see it this is two somewhat seperate issues that got thrown into one. I think the initial issue was the fact that people might have installed mod X in their system was negatively effected if we removed said mod from the metadata no matter how incorrectly it was placed there. Baiscally CKAN (primarily the GUI) hated any mods not having metadata in the upstream. From what I gather that part will be solved by #1005 and great rejoicement shall be had! As for the continuing issue of mods being taken over, revisited, continued etc I agree that a However imaging a future with multiple repositories and perhaps varying updatecycles to those repositories a |
I think this issue is timely once again since #1730 will actually allow a |
I'd like to get this into the next release; it will solve many issues over people changing the name of their mods and wanting the CKAN identifier changed, too. |
Yep. I think a new filter and maybe a new column for Replaced mods is probably required. Might be worth creating a status column with icons. This should be easy to add to the CLI list, on the other hand.
I disagree with this. I think we should create a new release, with |
On the question of |
This feels like a hack and the type of thing #1730 was designed to prevent (thanks @ayan4m1 for rebasing that). Ideally there should be a 1-to-1 mapping between CKAN metadata and releases of a mod. Creating "psuedo-releases" just for CKAN is a design flaw in my opinion that should be fixed within CKAN (hence #1730). |
The trouble then is that we are effectively forcing users to cross-grade to the replacement. They may not want to "upgrade" to the replacement. |
Nobody should be forced to do anything.
If a user doesn't want to use |
But CKAN isn't modeling "links" between versions. The data objects we have are "Modules" and "Versions". We can fairly easily create a virtual "Version" which points to a different "Module", but #1730 forces reinstallation in order to meet new relationships. So anyone having the version with "replaced_by" would be forced to upgrade, because their registry would show up as inconsistent. |
Only if it's written that way and I don't see why it would be.
Not quite, both with #1730 and prior to it the user is prompted to reinstall. At some point, the decision was made that (for whatever reason) GUI interactions would automatically accept confirmation dialogs while the CLI would actually prompt the user for a decision (GUI easy mode? CLI advanced mode? /me shrugs). Again, there's no reason why Links between versions are modeled implicitly by they're ordering. 1.0 < 2.0 therefore 1.0 and 2.0 are "linked". Right now this ordering only considers modules with the same identifier. What
But again, CKAN should notice this and prompt the user explicitly. And as a matter of policy as I said originally:
The number of people using |
But if you have How do we show that a mod has been replaced in the modlist? What do we put as AwesomeMod's latest version if |
Like I said, the link is implied, it's not explicit anywhere.
Not sure how that's materially different from showing
It would only disappear in the sense that it's being ignored, the metadata would still be there for all time as a source of confusion: "Why is there a 3.0-obsolete if there's a perfectly good 3.1 right here?". Anyway, if the original mod returns with a 3.1 it seems perfectly reasonable to take a moment and go "Woah, what's going on here?"
In both those cases if the original mod suddenly pops back into existence, that seems like a good time to reevaluate the situation and not inadvertently split the user base between two mods, causing a potential host of confusion. But really, that situation is super rare. The only time I can think of a mod being "replaced" and then the original coming back was when kOS was adopted by new maintainers and then the original maintainer came back after some time and made like one new release (kOS-Classic) before it was abandoned again. |
Well, we have a perfect case at the moment, where BahamutoD is taking a break from KSP modding, and various people are taking over his mods, but it is expected that BahamutoD will return at some stage. |
How did that turn out? It could be useful to examine now that the code is moving forward again. |
I believe BahamutoD is still on break from KSP modding. I think #1888 caters for it, in any case. The replaced_by applies only to the specific version. If an upgrade appears after a replaced_by has been set, the users will have the option to either upgrade or replace (and after upgrading, they will no longer see the replacement option unless it is re-applied to the new version's metadata) |
This was 2 very different issues, 1 revolved around how to de-index deprecated mods, and one is about introducing a replaced_by relationship. I've pruned this conversation to be directed toward the latter topic as the former has a relatively well established workflow.
The text was updated successfully, but these errors were encountered: