Skip to content

Commit a5c2ce6

Browse files
committed
Pre-release handling
1 parent 749fb70 commit a5c2ce6

File tree

132 files changed

+2189
-1186
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

132 files changed

+2189
-1186
lines changed

Cmdline/Action/Available.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,13 @@ public Available(RepositoryDataManager repoData, IUser user)
1616

1717
public int RunCommand(CKAN.GameInstance instance, object raw_options)
1818
{
19-
AvailableOptions opts = (AvailableOptions)raw_options;
20-
IRegistryQuerier registry = RegistryManager.Instance(instance, repoData).registry;
19+
AvailableOptions opts = (AvailableOptions)raw_options;
2120

22-
IEnumerable<CkanModule> compatible = registry
23-
.CompatibleModules(instance.VersionCriteria())
21+
IEnumerable<CkanModule> compatible = RegistryManager
22+
.Instance(instance, repoData)
23+
.registry
24+
.CompatibleModules(instance.StabilityToleranceConfig,
25+
instance.VersionCriteria())
2426
.Where(m => !m.IsDLC)
2527
.OrderBy(m => m.identifier);
2628

Cmdline/Action/Import.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public int RunCommand(CKAN.GameInstance instance, object options)
6060
{
6161
HashSet<string>? possibleConfigOnlyDirs = null;
6262
installer.InstallList(toInstall,
63-
new RelationshipResolverOptions(),
63+
new RelationshipResolverOptions(instance.StabilityToleranceConfig),
6464
regMgr,
6565
ref possibleConfigOnlyDirs,
6666
opts?.NetUserAgent);

Cmdline/Action/Install.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,9 @@ public int RunCommand(CKAN.GameInstance instance, object raw_options)
8989
(options?.allow_incompatible ?? false)
9090
? null
9191
: crit)
92-
?? registry.LatestAvailable(arg, crit,
93-
null, installed)
92+
?? registry.LatestAvailable(arg,
93+
instance.StabilityToleranceConfig,
94+
crit, null, installed)
9495
?? registry.InstalledModule(arg)?.Module)
9596
.OfType<CkanModule>()
9697
.ToList();
@@ -102,7 +103,7 @@ public int RunCommand(CKAN.GameInstance instance, object raw_options)
102103
}
103104

104105
var installer = new ModuleInstaller(instance, manager.Cache, user, options?.NetUserAgent);
105-
var install_ops = new RelationshipResolverOptions
106+
var install_ops = new RelationshipResolverOptions(instance.StabilityToleranceConfig)
106107
{
107108
with_all_suggests = options?.with_all_suggests ?? false,
108109
with_suggests = options?.with_suggests ?? false,

Cmdline/Action/List.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,9 @@ public int RunCommand(CKAN.GameInstance instance, object raw_options)
8787
{
8888
// Check if upgrades are available, and show appropriately.
8989
log.DebugFormat("Check if upgrades are available for {0}", mod.Key);
90-
var latest = registry.LatestAvailable(mod.Key, instance.VersionCriteria());
90+
var latest = registry.LatestAvailable(mod.Key,
91+
instance.StabilityToleranceConfig,
92+
instance.VersionCriteria());
9193
var current = registry.GetInstalledVersion(mod.Key);
9294
var inst = registry.InstalledModule(mod.Key);
9395

@@ -103,7 +105,9 @@ public int RunCommand(CKAN.GameInstance instance, object raw_options)
103105
// Check if mod is replaceable
104106
else if (current.replaced_by != null)
105107
{
106-
var replacement = registry.GetReplacement(mod.Key, instance.VersionCriteria());
108+
var replacement = registry.GetReplacement(mod.Key,
109+
instance.StabilityToleranceConfig,
110+
instance.VersionCriteria());
107111
if (replacement != null)
108112
{
109113
// Replaceable!
@@ -120,7 +124,9 @@ public int RunCommand(CKAN.GameInstance instance, object raw_options)
120124
// Check if mod is replaceable
121125
if (current?.replaced_by != null)
122126
{
123-
var replacement = registry.GetReplacement(latest.identifier, instance.VersionCriteria());
127+
var replacement = registry.GetReplacement(latest.identifier,
128+
instance.StabilityToleranceConfig,
129+
instance.VersionCriteria());
124130
if (replacement != null)
125131
{
126132
// Replaceable!

Cmdline/Action/Prompt.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ private string[] GetAvailIdentifiers(string prefix)
185185
CKAN.GameInstance inst = MainClass.GetGameInstance(manager);
186186
return RegistryManager.Instance(inst, repoData)
187187
.registry
188-
.CompatibleModules(inst.VersionCriteria())
188+
.CompatibleModules(inst.StabilityToleranceConfig, inst.VersionCriteria())
189189
.Where(m => !m.IsDLC)
190190
.Select(m => m.identifier)
191191
.Where(ident => ident.StartsWith(prefix,

Cmdline/Action/Replace.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public int RunCommand(CKAN.GameInstance instance, object raw_options)
3636
}
3737

3838
// Prepare options. Can these all be done in the new() somehow?
39-
var replace_ops = new RelationshipResolverOptions
39+
var replace_ops = new RelationshipResolverOptions(instance.StabilityToleranceConfig)
4040
{
4141
with_all_suggests = options.with_all_suggests,
4242
with_suggests = options.with_suggests,
@@ -68,7 +68,9 @@ public int RunCommand(CKAN.GameInstance instance, object raw_options)
6868
log.DebugFormat("Testing {0} {1} for possible replacement", mod.Key, mod.Value);
6969
// Check if replacement is available
7070

71-
var replacement = registry.GetReplacement(mod.Key, instance.VersionCriteria());
71+
var replacement = registry.GetReplacement(mod.Key,
72+
instance.StabilityToleranceConfig,
73+
instance.VersionCriteria());
7274
if (replacement != null)
7375
{
7476
// Replaceable
@@ -100,7 +102,9 @@ public int RunCommand(CKAN.GameInstance instance, object raw_options)
100102
try
101103
{
102104
// Check if replacement is available
103-
var replacement = registry.GetReplacement(modToReplace.identifier, instance.VersionCriteria());
105+
var replacement = registry.GetReplacement(modToReplace.identifier,
106+
instance.StabilityToleranceConfig,
107+
instance.VersionCriteria());
104108
if (replacement != null)
105109
{
106110
// Replaceable

Cmdline/Action/Repo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ public class RepoAddOptions : InstanceSpecificOptions
9393
public class RepoPriorityOptions : InstanceSpecificOptions
9494
{
9595
[ValueOption(0)] public string? name { get; set; }
96-
[ValueOption(1)] public int priority { get; set; }
96+
[ValueOption(1)] public int priority { get; set; }
9797
}
9898

9999
public class RepoDefaultOptions : InstanceSpecificOptions
@@ -459,6 +459,6 @@ private void PrintUsage(string verb)
459459
private readonly RepositoryDataManager repoData;
460460
private IUser? user;
461461

462-
private static readonly ILog log = LogManager.GetLogger(typeof (Repo));
462+
private static readonly ILog log = LogManager.GetLogger(typeof(Repo));
463463
}
464464
}

Cmdline/Action/Search.cs

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public Search(RepositoryDataManager repoData, IUser user)
1717
this.user = user;
1818
}
1919

20-
public int RunCommand(CKAN.GameInstance ksp, object raw_options)
20+
public int RunCommand(CKAN.GameInstance instance, object raw_options)
2121
{
2222
SearchOptions options = (SearchOptions)raw_options;
2323

@@ -32,11 +32,11 @@ public int RunCommand(CKAN.GameInstance ksp, object raw_options)
3232
return Exit.BADOPT;
3333
}
3434

35-
var matching_compatible = PerformSearch(ksp, options.search_term, options.author_term, false);
35+
var matching_compatible = PerformSearch(instance, options.search_term, options.author_term, false);
3636
var matching_incompatible = new List<CkanModule>();
3737
if (options.all)
3838
{
39-
matching_incompatible = PerformSearch(ksp, options.search_term, options.author_term, true);
39+
matching_incompatible = PerformSearch(instance, options.search_term, options.author_term, true);
4040
}
4141

4242
// Show how many matches we have.
@@ -94,10 +94,10 @@ public int RunCommand(CKAN.GameInstance ksp, object raw_options)
9494
user.RaiseMessage(Properties.Resources.SearchIncompatibleModsHeader);
9595
foreach (CkanModule mod in matching_incompatible)
9696
{
97-
CkanModule.GetMinMaxVersions(new List<CkanModule> { mod } , out _, out _, out var minKsp, out var maxKsp);
98-
var gv = GameVersionRange.VersionSpan(ksp.game,
99-
minKsp ?? GameVersion.Any,
100-
maxKsp ?? GameVersion.Any)
97+
CkanModule.GetMinMaxVersions(new List<CkanModule> { mod } , out _, out _, out var mininstance, out var maxinstance);
98+
var gv = GameVersionRange.VersionSpan(instance.game,
99+
mininstance ?? GameVersion.Any,
100+
maxinstance ?? GameVersion.Any)
101101
.ToString();
102102

103103
user.RaiseMessage(Properties.Resources.SearchIncompatibleMod,
@@ -125,15 +125,15 @@ public int RunCommand(CKAN.GameInstance ksp, object raw_options)
125125
}
126126

127127
/// <summary>
128-
/// Searches for the term in the list of compatible or incompatible modules for the ksp instance.
128+
/// Searches for the term in the list of compatible or incompatible modules for the instance instance.
129129
/// Looks in name, identifier and description fields, and if given, restricts to authors matching the author term.
130130
/// </summary>
131131
/// <returns>List of matching modules.</returns>
132-
/// <param name="ksp">The KSP instance to perform the search for.</param>
132+
/// <param name="instance">The instance instance to perform the search for.</param>
133133
/// <param name="term">The search term. Case insensitive.</param>
134134
/// <param name="author">Name of author to find</param>
135135
/// <param name="searchIncompatible">True to look for incompatible modules, false (default) to look for compatible</param>
136-
public List<CkanModule> PerformSearch(CKAN.GameInstance ksp,
136+
public List<CkanModule> PerformSearch(CKAN.GameInstance instance,
137137
string? term,
138138
string? author = null,
139139
bool searchIncompatible = false)
@@ -142,11 +142,12 @@ public List<CkanModule> PerformSearch(CKAN.GameInstance ksp,
142142
term = string.IsNullOrWhiteSpace(term) ? string.Empty : CkanModule.nonAlphaNums.Replace(term, "");
143143
author = string.IsNullOrWhiteSpace(author) ? string.Empty : CkanModule.nonAlphaNums.Replace(author, "");
144144

145-
var registry = RegistryManager.Instance(ksp, repoData).registry;
145+
var registry = RegistryManager.Instance(instance, repoData).registry;
146146

147147
return searchIncompatible
148148
? registry
149-
.IncompatibleModules(ksp.VersionCriteria())
149+
.IncompatibleModules(instance.StabilityToleranceConfig,
150+
instance.VersionCriteria())
150151
// Look for a match in each string.
151152
.Where(module => (module.SearchableName.IndexOf(term, StringComparison.OrdinalIgnoreCase) > -1
152153
|| module.SearchableIdentifier.IndexOf(term, StringComparison.OrdinalIgnoreCase) > -1
@@ -155,7 +156,8 @@ public List<CkanModule> PerformSearch(CKAN.GameInstance ksp,
155156
&& module.SearchableAuthors.Any((auth) => auth.IndexOf(author, StringComparison.OrdinalIgnoreCase) > -1))
156157
.ToList()
157158
: registry
158-
.CompatibleModules(ksp.VersionCriteria())
159+
.CompatibleModules(instance.StabilityToleranceConfig,
160+
instance.VersionCriteria())
159161
// Look for a match in each string.
160162
.Where(module => (module.SearchableName.IndexOf(term, StringComparison.OrdinalIgnoreCase) > -1
161163
|| module.SearchableIdentifier.IndexOf(term, StringComparison.OrdinalIgnoreCase) > -1
@@ -190,9 +192,10 @@ private static string CaseInsensitiveExactMatch(List<CkanModule> mods, string mo
190192
/// <param name="modules">List of strings to convert, format 'identifier' or 'identifier=version'</param>
191193
public static void AdjustModulesCase(CKAN.GameInstance instance, Registry registry, List<string> modules)
192194
{
195+
var stabilityTolerance = instance.StabilityToleranceConfig;
193196
// Get the list of all compatible and incompatible mods
194-
List<CkanModule> mods = registry.CompatibleModules(instance.VersionCriteria()).ToList();
195-
mods.AddRange(registry.IncompatibleModules(instance.VersionCriteria()));
197+
var mods = registry.CompatibleModules(stabilityTolerance, instance.VersionCriteria()).ToList();
198+
mods.AddRange(registry.IncompatibleModules(stabilityTolerance, instance.VersionCriteria()));
196199
for (int i = 0; i < modules.Count; ++i)
197200
{
198201
Match match = CkanModule.idAndVersionMatcher.Match(modules[i]);

Cmdline/Action/Show.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@ public int RunCommand(CKAN.GameInstance instance, object raw_options)
5151

5252
// Module was not installed, look for an exact match in the available modules,
5353
// either by "name" (the user-friendly display name) or by identifier
54-
var moduleToShow = registry.CompatibleModules(instance.VersionCriteria())
54+
var moduleToShow = registry.CompatibleModules(instance.StabilityToleranceConfig,
55+
instance.VersionCriteria())
5556
.SingleOrDefault(
5657
mod => mod.name == modName
5758
|| mod.identifier == modName);

0 commit comments

Comments
 (0)