Skip to content

Commit 0b06a0b

Browse files
typespec submodule (#2937)
1 parent 1b01ff5 commit 0b06a0b

File tree

671 files changed

+16316
-79989
lines changed

Some content is hidden

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

671 files changed

+16316
-79989
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,3 +104,7 @@ typespec-tests/package-lock.json
104104

105105
# ApiView properties files
106106
/typespec-tests/src/main/resources/META-INF/*apiview_properties.json
107+
108+
# typespec-extension
109+
/typespec-extension/src
110+
/typespec-extension/generator

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "core"]
2+
path = core
3+
url = https://github.com/microsoft/typespec.git

Build-TypeSpec.ps1

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,39 @@
1-
mvn clean install -P local,tsp -DskipTests "-Djacoco.skip"
1+
$ErrorActionPreference = "Stop"
22

3+
Write-Host "Apply diff to core"
4+
Push-Location ./core
5+
try {
6+
git checkout .
7+
git apply ../core.diff --ignore-whitespace
8+
} finally {
9+
Pop-Location
10+
}
11+
12+
Write-Host "Build JAR"
13+
mvn clean install -P tsp --no-transfer-progress
14+
if ($LASTEXITCODE -ne 0) {
15+
exit $LASTEXITCODE
16+
}
17+
18+
Write-Host "Copy JAR and TypeSpec code to './typespec-extension' directory"
19+
# Copy JAR
20+
New-Item -ItemType File -Path ./typespec-extension/generator/http-client-generator/target/emitter.jar -Force
21+
Copy-Item ./core/packages/http-client-java/generator/http-client-generator/target/emitter.jar ./typespec-extension/generator/http-client-generator/target/emitter.jar -Force
22+
# Copy TypeScript code
23+
Copy-Item -Path ./core/packages/http-client-java/emitter/src -Destination ./typespec-extension/ -Recurse -Force
24+
25+
Write-Host "Build and Pack typespec-java"
326
Push-Location ./typespec-extension/
427
try {
5-
npm ci
6-
npm run build
7-
npm run lint
8-
npm pack
28+
npm ci
29+
npm run build
30+
npm run lint
31+
# npm run check-format
32+
npm pack
33+
if ($LASTEXITCODE -ne 0) {
34+
exit $LASTEXITCODE
35+
}
936
}
1037
finally {
11-
Pop-Location
38+
Pop-Location
1239
}

Generate-TypeSpec.ps1

Lines changed: 12 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -14,40 +14,20 @@ param (
1414
)
1515

1616
function invokeExpressionAndCaptureOutput([string]$expression) {
17-
$output = Invoke-Expression $expression
18-
if ($LASTEXITCODE -ne 0) {
19-
$ExitCode = $LASTEXITCODE
17+
$output = Invoke-Expression $expression
18+
if ($LASTEXITCODE -ne 0) {
19+
$ExitCode = $LASTEXITCODE
2020

21-
Write-Host $output
21+
Write-Host $output
2222

23-
exit $ExitCode
24-
}
25-
}
26-
27-
Write-Host "Changing directory to './typespec-extension'"
28-
Push-Location ./typespec-extension
29-
30-
try {
31-
Write-Host "Installing dependencies for TypeSpec Java ('npm ci')"
32-
invokeExpressionAndCaptureOutput("npm ci")
33-
34-
Write-Host "Building TypeSpec Java ('npm run build')"
35-
invokeExpressionAndCaptureOutput("npm run build")
36-
37-
Write-Host "Linting TypeSpec Java ('npm run lint')"
38-
invokeExpressionAndCaptureOutput("npm run lint")
23+
exit $ExitCode
24+
}
3925

40-
Write-Host "Checking TypeSpec Java format ('npm run check-format')"
41-
invokeExpressionAndCaptureOutput("npm run check-format")
42-
43-
Write-Host "Packing TypeSpec Java ('npm pack')"
44-
invokeExpressionAndCaptureOutput("npm pack")
45-
46-
Write-Host "Returning to root directory ('..')"
47-
} finally {
48-
Pop-Location
26+
Write-Host $output
4927
}
5028

29+
pwsh ./Build-TypeSpec.ps1
30+
5131
Write-Host "Installing TypeSpec ('npm install -g @typespec/compiler')"
5232
invokeExpressionAndCaptureOutput("npm install -g @typespec/compiler")
5333

@@ -56,10 +36,10 @@ Push-Location ./typespec-tests
5636

5737
try {
5838
Write-Host "Generating code ('Generate.ps1' in './typespec-tests')"
59-
invokeExpressionAndCaptureOutput("./Generate.ps1 -Parallelization $Parallelization")
39+
pwsh ./Generate.ps1 -Parallelization $Parallelization
6040

61-
Write-Host "Checking format of generated code ('npm run check-format')"
62-
invokeExpressionAndCaptureOutput("npm run check-format")
41+
# Write-Host "Checking format of generated code ('npm run check-format')"
42+
# invokeExpressionAndCaptureOutput("npm run check-format")
6343
} finally {
6444
Pop-Location
6545
}

checkstyle-suppressions.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,7 @@
2727
<suppress checks="[ConstantName|MethodName]" files="com[/\\]azure[/\\]autorest[/\\]fluent[/\\]model[/\\]FluentType.java"/>
2828
<!-- androidgen -->
2929
<suppress checks="[a-zA-Z0-9]*" files="com[/\\]azure[/\\]autorest[/\\]android[/\\].*"/>
30+
31+
<!-- com.microsoft.typespec -->
32+
<suppress checks="[a-zA-Z0-9]*" files="com[/\\]microsoft[/\\]typespec[/\\].*"/>
3033
</suppressions>

core

Submodule core added at 99abec9

core.diff

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
diff --git a/packages/http-client-java/emitter/src/code-model-builder.ts b/packages/http-client-java/emitter/src/code-model-builder.ts
2+
index 263da6dd..121a62f2 100644
3+
--- a/packages/http-client-java/emitter/src/code-model-builder.ts
4+
+++ b/packages/http-client-java/emitter/src/code-model-builder.ts
5+
@@ -240,7 +240,7 @@ export class CodeModelBuilder {
6+
}
7+
8+
public async build(): Promise<CodeModel> {
9+
- this.sdkContext = await createSdkContext(this.emitterContext, "@typespec/http-client-java", {
10+
+ this.sdkContext = await createSdkContext(this.emitterContext, "@azure-tools/typespec-java", {
11+
versioning: { previewStringRegex: /$/ },
12+
}); // include all versions and do the filter by ourselves
13+
14+
diff --git a/packages/http-client-java/emitter/src/emitter.ts b/packages/http-client-java/emitter/src/emitter.ts
15+
index b3527bd6..1130efff 100644
16+
--- a/packages/http-client-java/emitter/src/emitter.ts
17+
+++ b/packages/http-client-java/emitter/src/emitter.ts
18+
@@ -98,7 +98,7 @@ const EmitterOptionsSchema: JSONSchemaType<EmitterOptions> = {
19+
};
20+
21+
export const $lib = createTypeSpecLibrary({
22+
- name: "@typespec/http-client-java",
23+
+ name: "@azure-tools/typespec-java",
24+
diagnostics: {},
25+
emitter: {
26+
options: EmitterOptionsSchema,
27+
diff --git a/packages/http-client-java/generator/http-client-generator-core/pom.xml b/packages/http-client-java/generator/http-client-generator-core/pom.xml
28+
index 33442326..e57b77bb 100644
29+
--- a/packages/http-client-java/generator/http-client-generator-core/pom.xml
30+
+++ b/packages/http-client-java/generator/http-client-generator-core/pom.xml
31+
@@ -19,6 +19,11 @@
32+
</properties>
33+
34+
<dependencies>
35+
+ <dependency>
36+
+ <groupId>com.azure.tools</groupId>
37+
+ <artifactId>azure-autorest-customization</artifactId>
38+
+ <version>1.0.0-beta.8</version>
39+
+ </dependency>
40+
<dependency>
41+
<groupId>com.azure</groupId>
42+
<artifactId>azure-core</artifactId>
43+
diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/postprocessor/Postprocessor.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/postprocessor/Postprocessor.java
44+
index 0ff22ae8..33e7b162 100644
45+
--- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/postprocessor/Postprocessor.java
46+
+++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/postprocessor/Postprocessor.java
47+
@@ -3,8 +3,8 @@
48+
49+
package com.microsoft.typespec.http.client.generator.core.postprocessor;
50+
51+
-import com.microsoft.typespec.http.client.generator.core.customization.Customization;
52+
-import com.microsoft.typespec.http.client.generator.core.customization.implementation.Utils;
53+
+import com.azure.autorest.customization.Customization;
54+
+import com.azure.autorest.customization.implementation.Utils;
55+
import com.microsoft.typespec.http.client.generator.core.extension.plugin.JavaSettings;
56+
import com.microsoft.typespec.http.client.generator.core.extension.plugin.NewPlugin;
57+
import com.microsoft.typespec.http.client.generator.core.extension.plugin.PluginLogger;
58+
diff --git a/packages/http-client-java/generator/http-client-generator/src/main/resources/readme/pom.xml b/packages/http-client-java/generator/http-client-generator/src/main/resources/readme/pom.xml
59+
index b009d250..6ef31a2d 100644
60+
--- a/packages/http-client-java/generator/http-client-generator/src/main/resources/readme/pom.xml
61+
+++ b/packages/http-client-java/generator/http-client-generator/src/main/resources/readme/pom.xml
62+
@@ -16,9 +16,9 @@
63+
64+
<dependencies>
65+
<dependency>
66+
- <groupId>com.microsoft.typespec</groupId>
67+
- <artifactId>http-client-generator-core</artifactId>
68+
- <version>1.0.0-beta.1</version>
69+
+ <groupId>com.azure.tools</groupId>
70+
+ <artifactId>azure-autorest-customization</artifactId>
71+
+ <version>1.0.0-beta.8</version>
72+
</dependency>
73+
</dependencies>
74+

eng/pipelines/ci-typespec-java-dev-nightly.yaml

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ jobs:
2121
vmImage: "MMSUbuntu20.04"
2222

2323
steps:
24+
- checkout: self
25+
submodules: true
26+
2427
- task: PowerShell@2
2528
displayName: 'Disable Warning on Deprecation'
2629
inputs:
@@ -38,18 +41,6 @@ jobs:
3841
parameters:
3942
JobType: 'TypeSpec Nightly'
4043

41-
- task: Maven@3
42-
displayName: 'Build JAR'
43-
inputs:
44-
mavenPomFile: pom.xml
45-
goals: 'clean install'
46-
options: '$(DefaultOptions) -P local,tsp -T 1C'
47-
mavenOptions: '$(MemoryOptions) $(LoggingOptions)'
48-
javaHomeOption: 'JDKVersion'
49-
jdkVersionOption: $(JavaVersion)
50-
jdkArchitectureOption: 'x64'
51-
publishJUnitResults: false
52-
5344
- script: |
5445
npm install -g @typespec/compiler@next
5546
npx @azure-tools/typespec-bump-deps typespec-extension/package.json typespec-tests/package.json --add-npm-overrides

eng/pipelines/ci-typespec-java.yaml

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ jobs:
3838
vmImage: "MMSUbuntu20.04"
3939

4040
steps:
41+
- checkout: self
42+
submodules: true
43+
4144
- task: NodeTool@0
4245
displayName: 'Install Node.js $(NodeVersion)'
4346
inputs:
@@ -47,21 +50,9 @@ jobs:
4750
parameters:
4851
JobType: 'TypeSpec'
4952

50-
- task: Maven@3
51-
displayName: 'Build JAR'
52-
inputs:
53-
mavenPomFile: pom.xml
54-
goals: 'clean install'
55-
options: '$(DefaultOptions) -P local,tsp -T 1C'
56-
mavenOptions: '$(MemoryOptions) $(LoggingOptions)'
57-
javaHomeOption: 'JDKVersion'
58-
jdkVersionOption: $(JavaVersion)
59-
jdkArchitectureOption: 'x64'
60-
publishJUnitResults: false
61-
6253
- task: PowerShell@2
6354
retryCountOnTaskFailure: 1
64-
displayName: 'Generate Code'
55+
displayName: 'Build and Generate Code'
6556
inputs:
6657
pwsh: true
6758
filePath: Generate-TypeSpec.ps1
@@ -71,9 +62,9 @@ jobs:
7162
git diff
7263
displayName: 'Git Diff'
7364
74-
- script: |
75-
[ -z "`git status --porcelain -- :!package-lock.json`" ]
76-
displayName: 'Check no Diff'
65+
# - script: |
66+
# [ -z "`git status --porcelain -- :!package-lock.json`" ]
67+
# displayName: 'Check no Diff'
7768

7869
- task: Maven@3
7970
displayName: 'Verify Test Code'

eng/pipelines/ci.yaml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,15 @@ jobs:
3232
vmImage: "MMSUbuntu20.04"
3333

3434
steps:
35+
- checkout: self
36+
submodules: true
37+
38+
- script: |
39+
git checkout .
40+
git apply ../core.diff --ignore-whitespace
41+
displayName: 'Patch core'
42+
workingDirectory: ./core
43+
3544
- task: NodeTool@0
3645
displayName: 'Install Node.js $(NodeVersion)'
3746
inputs:
@@ -66,11 +75,11 @@ jobs:
6675

6776
- script: |
6877
git status
69-
git diff
78+
git diff --ignore-submodules
7079
displayName: 'Git Diff'
7180
7281
- script: |
73-
[ -z "`git status --porcelain`" ]
82+
[ -z "`git status --ignore-submodules --porcelain`" ]
7483
displayName: 'Check no Diff'
7584
7685
- script: |

eng/pipelines/fluent_integration.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,15 @@ jobs:
2929
- template: /eng/pipelines/variables/globals.yml
3030

3131
steps:
32+
- checkout: self
33+
submodules: true
34+
35+
- script: |
36+
git checkout .
37+
git apply ../core.diff --ignore-whitespace
38+
displayName: 'Patch core'
39+
workingDirectory: ./core
40+
3241
- task: NodeTool@0
3342
inputs:
3443
versionSpec: '$(NodeVersion)'

eng/pipelines/post-publish-sdk.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ jobs:
3838

3939
steps:
4040
- checkout: self
41-
fetchDepth: 1
41+
submodules: true
42+
4243
- checkout: azure-sdk-for-java
4344

4445
- task: NodeTool@0
@@ -47,8 +48,9 @@ jobs:
4748
versionSpec: '$(NodeVersion)'
4849

4950
- task: PowerShell@2
50-
displayName: 'Build typespec-java'
51+
retryCountOnTaskFailure: 1
5152
condition: and(succeeded(), eq('${{ parameters.DevPackage }}', 'true'))
53+
displayName: 'Build'
5254
inputs:
5355
pwsh: true
5456
filePath: $(Build.SourcesDirectory)/autorest.java/Build-TypeSpec.ps1

eng/pipelines/publish-autorest-java.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,15 @@ extends:
2222
timeoutInMinutes: 30
2323

2424
steps:
25+
- checkout: self
26+
submodules: true
27+
28+
- script: |
29+
git checkout .
30+
git apply ../core.diff --ignore-whitespace
31+
displayName: 'Patch core'
32+
workingDirectory: ./core
33+
2534
- task: NodeTool@0
2635
displayName: 'Install Node.js $(NodeVersion)'
2736
inputs:

0 commit comments

Comments
 (0)