Skip to content

Commit a8bcc9e

Browse files
committed
chore(csharp): test the support of multiple dotnet versions
1 parent e24c89b commit a8bcc9e

15 files changed

+67
-20
lines changed

config/clients.config.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,12 @@
2727
"snippets": {
2828
"extension": ".cs",
2929
"outputFolder": "src"
30-
}
30+
},
31+
"supportedVersions": [
32+
"8.0.416",
33+
"9.0.307",
34+
"10.0.100"
35+
]
3136
},
3237
"dart": {
3338
"clients": [

config/clients.schema.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@
9393
},
9494
"supportedVersions": {
9595
"type": "array",
96-
"description": "hints the CI on what matrix to generate for this client, this must be language specific versions, e.g. versions of node",
96+
"description": "hints the CI on what matrix to generate for this client, this must be language specific versions, e.g. versions of node. The last item is the version that will be released",
9797
"items": { "type": "string" }
9898
}
9999
},

config/generation.config.mjs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ export const patterns = [
2626
'!clients/algoliasearch-client-csharp/algoliasearch/Models/Common/**',
2727

2828
'tests/output/csharp/global.json',
29+
'tests/output/csharp/src/Algolia.Search.Tests.csproj',
2930

3031
// Dart
3132
'!clients/algoliasearch-client-dart/**',

generators/src/main/java/com/algolia/codegen/cts/AlgoliaCTSGenerator.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public void processOpts() {
4444
language = (String) additionalProperties.get("language");
4545
client = (String) additionalProperties.get("client");
4646
mode = (String) additionalProperties.get("mode");
47-
ctsManager = CTSManagerFactory.getManager(language, client);
47+
ctsManager = CTSManagerFactory.getManager(language, client, (String) additionalProperties.getOrDefault("languageVersion", ""));
4848

4949
if (ctsManager == null) {
5050
// skip the generation
@@ -162,6 +162,9 @@ public Map<String, Object> postProcessSupportingFileData(Map<String, Object> obj
162162
ctsManager.addMustacheLambdas(lambda);
163163
bundle.put("lambda", lambda);
164164

165+
// Set some default values in the bundle
166+
bundle.put("packageVersion", ctsManager.getPackageVersion());
167+
165168
String languageVersion = ctsManager.getLanguageVersion((String) additionalProperties.getOrDefault("languageVersion", ""));
166169
bundle.put("languageVersion", languageVersion);
167170

generators/src/main/java/com/algolia/codegen/cts/manager/CSharpCTSManager.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,18 @@
44
import com.algolia.codegen.exceptions.GeneratorException;
55
import com.algolia.codegen.utils.*;
66
import com.samskivert.mustache.Mustache.Lambda;
7+
import java.io.IOException;
78
import java.util.*;
89
import org.openapitools.codegen.SupportingFile;
910

1011
public class CSharpCTSManager implements CTSManager {
1112

1213
private final String client;
14+
private final String overrideLanguageVersion;
1315

14-
public CSharpCTSManager(String client) {
16+
public CSharpCTSManager(String client, String overrideLanguageVersion) {
1517
this.client = client;
18+
this.overrideLanguageVersion = overrideLanguageVersion;
1619
}
1720

1821
public String getLanguage() {
@@ -26,6 +29,9 @@ public String getClient() {
2629
@Override
2730
public void addTestsSupportingFiles(List<SupportingFile> supportingFiles) {
2831
supportingFiles.add(new SupportingFile("globaljson.mustache", "tests/output/csharp", "global.json"));
32+
supportingFiles.add(
33+
new SupportingFile("tests/Algolia.Search.Tests.csproj.mustache", "tests/output/csharp/src", "Algolia.Search.Tests.csproj")
34+
);
2935
}
3036

3137
@Override
@@ -43,7 +49,13 @@ public void addSnippetsSupportingFiles(List<SupportingFile> supportingFiles, Str
4349

4450
@Override
4551
public void addDataToBundle(Map<String, Object> bundle) throws GeneratorException {
46-
bundle.put("packageVersion", getVersion());
52+
try {
53+
String dotnetVersion = getLanguageVersion(overrideLanguageVersion);
54+
String[] parts = dotnetVersion.split("\\.");
55+
bundle.put("dotnetVersion", parts[0] + "." + parts[1]);
56+
} catch (IOException e) {
57+
throw new GeneratorException("Failed to compute dotnet version", e);
58+
}
4759
}
4860

4961
@Override

generators/src/main/java/com/algolia/codegen/cts/manager/CTSManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public default String getLanguageCased() {
1616
return Helpers.capitalize(getLanguage());
1717
}
1818

19-
public default String getVersion() {
19+
public default String getPackageVersion() {
2020
return Helpers.getClientConfigField(getLanguage(), "packageVersion");
2121
}
2222

generators/src/main/java/com/algolia/codegen/cts/manager/CTSManagerFactory.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ private CTSManagerFactory() {
66
// NO-OP
77
}
88

9-
public static CTSManager getManager(String language, String client) {
9+
public static CTSManager getManager(String language, String client, String overrideLanguageVersion) {
1010
return switch (language) {
1111
case "javascript" -> new JavascriptCTSManager(client);
1212
case "java" -> new JavaCTSManager(client);
@@ -17,7 +17,7 @@ public static CTSManager getManager(String language, String client) {
1717
case "ruby" -> new RubyCTSManager(client);
1818
case "scala" -> new ScalaCTSManager(client);
1919
case "python" -> new PythonCTSManager(client);
20-
case "csharp" -> new CSharpCTSManager(client);
20+
case "csharp" -> new CSharpCTSManager(client, overrideLanguageVersion);
2121
case "swift" -> new SwiftCTSManager(client);
2222
default -> null;
2323
};

generators/src/main/java/com/algolia/codegen/cts/manager/DartCTSManager.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ public String getClient() {
2727

2828
@Override
2929
public void addDataToBundle(Map<String, Object> bundle) throws GeneratorException {
30-
bundle.put("packageVersion", getVersion());
3130
if (client.equals("algoliasearch")) {
3231
bundle.put("import", "package:algoliasearch/algoliasearch_lite.dart");
3332
bundle.put("client", "SearchClient");

generators/src/main/java/com/algolia/codegen/cts/manager/JavaCTSManager.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,7 @@ public String getClient() {
2626

2727
@Override
2828
public String getLanguageVersion(String override) throws IOException {
29-
if (override != null && !override.isEmpty()) {
30-
return override.split("\\.")[0];
31-
}
32-
33-
return Helpers.getLanguageVersion(getLanguage()).split("\\.")[0];
29+
return CTSManager.super.getLanguageVersion(override).split("\\.")[0];
3430
}
3531

3632
@Override
@@ -46,7 +42,6 @@ public void addSnippetsSupportingFiles(List<SupportingFile> supportingFiles, Str
4642

4743
@Override
4844
public void addDataToBundle(Map<String, Object> bundle) throws GeneratorException {
49-
bundle.put("packageVersion", getVersion());
5045
bundle.put("import", Helpers.camelize(this.client).toLowerCase());
5146
}
5247

generators/src/main/java/com/algolia/codegen/cts/manager/JavascriptCTSManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public String getClient() {
2727
return client;
2828
}
2929

30-
public String getVersion() {
30+
public String getPackageVersion() {
3131
return Helpers.getPackageJsonVersion(AlgoliaJavascriptGenerator.getPackageName(client));
3232
}
3333

0 commit comments

Comments
 (0)