Skip to content

Commit 48ea209

Browse files
author
Vlad Barosan
authored
Merge pull request #104 from vladbarosan/fix-build
Update to autorest 2 and dotnet 2.0
2 parents 9df9120 + a79447f commit 48ea209

14 files changed

+68
-82
lines changed

.travis.yml

+8-5
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,14 @@ env:
66
- MODE=main
77
install:
88
# Install runtime
9-
- |-
10-
sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list'
11-
sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893
12-
sudo apt-get update
13-
sudo apt-get install dotnet-dev-1.0.0-rc4-004769 -y
9+
- rm -rf ~/.nvm && git clone https://github.com/creationix/nvm.git ~/.nvm && (cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`) && source ~/.nvm/nvm.sh && nvm install 7.10.0
10+
- npm install -g npm@'>=5.4.0'
11+
# Install dotnet 2.0.0 according to https://www.microsoft.com/net/core#linuxubuntu
12+
- curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
13+
- sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
14+
- sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-trusty-prod trusty main" > /etc/apt/sources.list.d/dotnetdev.list'
15+
- sudo apt-get update
16+
- sudo apt-get install dotnet-sdk-2.0.0 -y
1417
script:
1518
- npm install
1619
- ./node_modules/gulp/bin/gulp.js

CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 0.1.8
2+
Released on 2017-08-10.
3+
- Updating to use AutoRest 2. This solves [#105](https://github.com/Azure/openapi-diff/issues/105)
4+
15
## 0.1.7
26
Released on 2017-08-10.
37
- Chaining the promises upto `compare` method and gracefully exiting application [#88](https://github.com/Azure/openapi-diff/issues/88)

README.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
### How to install
22
```
3-
npm install -g [email protected].7
3+
npm install -g [email protected].8
44
```
55

66
### Command Usage
@@ -25,13 +25,13 @@ Options:
2525
```
2626

2727
## Build dependencies
28-
- [Node](https://nodejs.org) (6.9.5 or higher)
28+
- [Node](https://nodejs.org) (7.10.0 or higher)
2929
- [Node Package Manager](https://www.npmjs.com/package/npm)
30-
- [.NET CLI tools](https://github.com/dotnet/cli#installers-and-binaries) build -004812 or later (after 02/14/2017)
30+
- [.NET CLI tools](https://github.com/dotnet/cli/releases) version 2.0.0 or higher
3131
> You want the **.NET Core SDK Binaries** for your platform <br>
3232
>
3333
> `dotnet --version ` <br>
34-
> ` 1.0.0-rc4-004769 ` <br>
34+
> ` 2.0.2 ` <br>
3535
3636
## Build scripts
3737
### How to build

lib/validators/openApiDiff.js

+6-15
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class OpenApiDiff {
2424
* @param {object} options The configuration options.
2525
*
2626
* @param {boolean} [options.json] A boolean flag indicating whether output format of the messages is json.
27-
*
27+
*
2828
* @param {boolean} [options.matchApiVersion] A boolean flag indicating whether to consider api-version while comparing.
2929
*
3030
* @returns {object} OpenApiDiff Returns the configured OpenApiDiff object.
@@ -72,18 +72,7 @@ class OpenApiDiff {
7272
dotNetPath() {
7373
log.silly(`dotNetPath is being called`);
7474

75-
// try global installation directory
76-
let result = path.join(os.homedir(), ".autorest", "frameworks", "dotnet");
77-
if (fs.existsSync(result)) {
78-
return result;
79-
}
80-
81-
result = path.join(os.homedir(), ".autorest", "frameworks", "dotnet.exe");
82-
if (fs.existsSync(result)) {
83-
return result;
84-
}
85-
86-
// hope there is one in the PATH
75+
// Assume that dotnet is in the PATH
8776
return "dotnet";
8877
}
8978

@@ -97,13 +86,15 @@ class OpenApiDiff {
9786

9887
// When oad is installed globally
9988
let result = path.join(__dirname, "..", "..", "node_modules", "autorest", "app.js");
100-
if (fs.existsSync(result))
89+
if (fs.existsSync(result)) {
10190
return `node ${result}`;
91+
}
10292

10393
// When oad is installed locally
10494
result = path.join(__dirname, "..", "..", "..", "autorest", "app.js");
105-
if (fs.existsSync(result))
95+
if (fs.existsSync(result)) {
10696
return `node ${result}`;
97+
}
10798

10899
// Assume that autorest is in the path
109100
return 'autorest';

openapi-diff/src/common/package-fallback.proj

-6
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<Project ToolsVersion="15.0">
22
<PropertyGroup>
3-
<TargetFramework>netstandard1.3</TargetFramework>
3+
<TargetFramework>netstandard2.0</TargetFramework>
44
</PropertyGroup>
55
</Project>
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
<Project ToolsVersion="15.0">
22
<ItemGroup>
3-
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="1.1.0.0" />
4-
<!-- <PackageReference Include="Microsoft.NETCore.App" Version="1.0.1" /> -->
5-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0-preview-20161123-03" />
6-
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0-beta4-build1194" />
7-
<PackageReference Include="xunit" Version="2.2.0-beta4-build3444" />
3+
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="1.1.2" />
4+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
5+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0" />
6+
<PackageReference Include="xunit" Version="2.3.0" />
87
</ItemGroup>
98
</Project>

openapi-diff/src/core/OpenApiDiff.Core/OpenApiDiff.Core.csproj

+5-11
Original file line numberDiff line numberDiff line change
@@ -3,31 +3,25 @@
33
<Import Project="$(common)common-package-references.proj" />
44
<Import Project="$(common)project-library.proj" />
55
<Import Project="$(common)package-info.proj" />
6-
<Import Project="$(common)package-fallback.proj" />
7-
6+
87
<PropertyGroup>
98
<AssemblyName>OpenApiDiff.Core</AssemblyName>
109
<PackageTags>Microsoft AutoRest</PackageTags>
1110
</PropertyGroup>
12-
11+
1312
<ItemGroup>
1413
<Compile Remove="Extensibility\**" />
1514
<EmbeddedResource Remove="Extensibility\**" />
1615
<None Remove="Extensibility\**" />
1716
</ItemGroup>
18-
17+
1918
<ItemGroup>
2019
<PackageReference Include="Newtonsoft.Json" Version="9.0.1" />
21-
<PackageReference Include="YamlDotNet.Signed" Version="3.8.0" />
20+
<PackageReference Include="YamlDotNet.Signed" Version="4.2.2" />
2221
<PackageReference Include="System.Net.Http" Version="4.3.0" />
2322
<PackageReference Include="System.Reflection.TypeExtensions" Version="4.3.0" />
2423
</ItemGroup>
25-
26-
<ItemGroup>
27-
<Reference Include="AutoRest.Swagger">
28-
<HintPath>..\..\modeler\AutoRest.Swagger\bin\Debug\netstandard1.3\AutoRest.Swagger.dll</HintPath>
29-
</Reference>
30-
</ItemGroup>
24+
3125
<ItemGroup>
3226
<Compile Update="Properties\Resources.Designer.cs">
3327
<DesignTime>True</DesignTime>

openapi-diff/src/core/OpenApiDiff/OpenApiDiff.csproj

+4-6
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,11 @@
22
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), common/common.proj ))/common/common.proj" />
33
<Import Project="$(common)common-package-references.proj" />
44
<Import Project="$(common)package-info.proj" />
5-
<Import Project="$(common)package-fallback.proj" />
6-
5+
76
<PropertyGroup>
8-
<RuntimeIdentifiers>win7-x64</RuntimeIdentifiers>
7+
<RuntimeIdentifiers>win7-x64</RuntimeIdentifiers>
98
<OutputType>Exe</OutputType>
10-
<TargetFrameworks>netcoreapp1.0</TargetFrameworks>
11-
<TargetFramework>netcoreapp1.0</TargetFramework>
9+
<TargetFramework>netcoreapp2.0</TargetFramework>
1210
<AssemblyName>OpenApiDiff</AssemblyName>
1311
<PackageTags>Microsoft OpenApiDiff</PackageTags>
1412
<Version>0.1.0</Version>
@@ -19,7 +17,7 @@
1917
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
2018
<PackageRequireLicenseAcceptance>False</PackageRequireLicenseAcceptance>
2119
</PropertyGroup>
22-
20+
2321
<ItemGroup>
2422
<PackageReference Include="Newtonsoft.Json" Version="9.0.1" />
2523
</ItemGroup>

openapi-diff/src/modeler/AutoRest.Swagger.Tests/AutoRest.Swagger.Tests.csproj

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0">
22
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), common/common.proj ))/common/common.proj" />
33
<Import Project="$(common)copy-resource-to-output.proj" />
4-
<Import Project="$(common)package-fallback.proj" />
54
<Import Project="$(common)project-xunittest.proj" />
65

76
<PropertyGroup>
8-
<OutputType>Exe</OutputType>
9-
<TargetFramework>netcoreapp1.0</TargetFramework>
7+
<TargetFramework>netcoreapp2.0</TargetFramework>
108
</PropertyGroup>
119

1210
<ItemGroup>
@@ -86,11 +84,11 @@
8684
<Content Include="Resource\Swagger\old\version_check_03.json" />
8785
<Content Include="Resource\Swagger\old\version_check_04.json" />
8886
</ItemGroup>
89-
87+
9088
<ItemGroup>
9189
<ProjectReference Include="$(SolutionDir)src/modeler/AutoRest.Swagger/AutoRest.Swagger.csproj" />
9290
<ProjectReference Include="..\..\core\OpenApiDiff.Core\OpenApiDiff.Core.csproj" />
9391
</ItemGroup>
94-
92+
9593
<ProjectExtensions><VisualStudio><UserProperties /></VisualStudio></ProjectExtensions>
9694
</Project>

openapi-diff/src/modeler/AutoRest.Swagger.Tests/SwaggerModelerCompareTests.cs

+19-18
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@
1111
namespace AutoRest.Swagger.Tests
1212
{
1313
/// <summary>
14-
/// This class contains tests for the logic comparing two swagger specifications,
14+
/// This class contains tests for the logic comparing two swagger specifications,
1515
/// an older version against newer version.
16-
///
17-
/// For all but the tests that verify that version checks are done properly, the
16+
///
17+
/// For all but the tests that verify that version checks are done properly, the
1818
/// old and new specifications have the same version number, which should force
1919
/// the comparison logic to produce errors rather than warnings for each breaking
2020
/// change.
21-
///
21+
///
2222
/// Non-breaking changes are always presented as informational messages, regardless
2323
/// of whether the version has changed or not.
2424
/// </summary>
@@ -169,10 +169,10 @@ public void PathRemoved()
169169
/// </summary>
170170
[Fact]
171171
public void OperationRemoved()
172-
{
172+
{
173173
var messages = CompareSwagger("removed_operation.json").ToArray();
174174
var missing = messages.Where(m => m.Id == ComparisonMessages.RemovedOperation.Id);
175-
Assert.Equal(1, missing.Count());
175+
Assert.Single(missing);
176176
Assert.NotEmpty(missing.Where(m => m.Severity == Category.Error && m.Path.ReadablePath == "#/paths/api/Operations"));
177177
}
178178

@@ -197,11 +197,11 @@ public void AddedPaths()
197197
{
198198
var messages = CompareSwagger("added_path.json").ToArray();
199199
var missing = messages.Where(m => m.Id == ComparisonMessages.AddedPath.Id);
200-
Assert.Equal(1, missing.Count());
200+
Assert.Single(missing);
201201
Assert.NotEmpty(missing.Where(m => m.Severity == Category.Info && m.Path.ReadablePath == "#/paths/api/Paths"));
202202

203203
missing = messages.Where(m => m.Id == ComparisonMessages.AddedOperation.Id);
204-
Assert.Equal(1, missing.Count());
204+
Assert.Single(missing);
205205
Assert.NotEmpty(missing.Where(m => m.Severity == Category.Info && m.Path.ReadablePath == "#/paths/api/Operations/post"));
206206
}
207207

@@ -213,7 +213,7 @@ public void RequiredParameterRemoved()
213213
{
214214
var messages = CompareSwagger("required_parameter.json").ToArray();
215215
var missing = messages.Where(m => m.Id == ComparisonMessages.RemovedRequiredParameter.Id);
216-
Assert.Equal(1, missing.Count());
216+
Assert.Single(missing);
217217
Assert.NotEmpty(missing.Where(m => m.Severity == Category.Error && m.Path.ReadablePath == "#/paths/api/Parameters/{a}/get/f"));
218218
}
219219

@@ -253,7 +253,7 @@ public void RequiredParameterAdded()
253253
{
254254
var messages = CompareSwagger("required_parameter.json").ToArray();
255255
var missing = messages.Where(m => m.Id == ComparisonMessages.AddingRequiredParameter.Id);
256-
Assert.Equal(1, missing.Count());
256+
Assert.Single(missing);
257257
Assert.NotEmpty(missing.Where(m => m.Severity == Category.Error && m.Path.ReadablePath == "#/paths/api/Parameters/{a}/get/g"));
258258
}
259259

@@ -265,7 +265,7 @@ public void ReadonlyPropertyInResponse()
265265
{
266266
var messages = CompareSwagger("readonly_changes.json").ToArray();
267267
var missing = messages.Where(m => m.Id == ComparisonMessages.AddedReadOnlyPropertyInResponse.Id);
268-
Assert.Equal(1, missing.Count());
268+
Assert.Single(missing);
269269
Assert.NotEmpty(missing.Where(m => m.Severity == Category.Info && m.Path.ReadablePath == "#/paths/subscriptions/{subscriptionId}/providers/Microsoft.Storage/checkNameAvailability/post/200/properties"));
270270
}
271271

@@ -277,13 +277,14 @@ public void AddedPropertyInResponse()
277277
{
278278
var messages = CompareSwagger("added_property_in_response.json").ToArray();
279279
var missing = messages.Where(m => m.Id == ComparisonMessages.AddedPropertyInResponse.Id);
280-
Assert.Equal(1, missing.Count());
280+
Assert.Single(missing);
281281
Assert.NotEmpty(missing.Where(m => m.Severity == Category.Error && m.Path.ReadablePath == "#/paths/subscriptions/{subscriptionId}/providers/Microsoft.Storage/checkNameAvailability/post/200/properties"));
282282
}
283283

284284
/// <summary>
285285
/// Verifies that rules work on the recurive models
286286
/// </summary>
287+
[Fact]
287288
public void RecursiveModels()
288289
{
289290
var messages = CompareSwagger("recursive_model.json").ToArray();
@@ -330,7 +331,7 @@ public void ParameterStatusLess()
330331
{
331332
var messages = CompareSwagger("required_parameter.json").ToArray();
332333
var missing = messages.Where(m => m.Id == ComparisonMessages.RequiredStatusChange.Id);
333-
Assert.Equal(1, missing.Count());
334+
Assert.Single(missing);
334335
Assert.NotEmpty(missing.Where(m => m.Severity == Category.Error && m.Path.ReadablePath == "#/paths/api/Parameters/{a}/get/e"));
335336
}
336337

@@ -443,7 +444,7 @@ public void ResponseSchemaChanged()
443444
{
444445
var messages = CompareSwagger("operation_check_02.json").ToArray();
445446
var removed = messages.Where(m => m.Id == ComparisonMessages.TypeChanged.Id && m.Path.JsonReference.Contains("Responses")).ToArray();
446-
Assert.Equal(1, removed.Length);
447+
Assert.Single(removed);
447448
Assert.Equal(Category.Error, removed[0].Severity);
448449
Assert.Equal("#/paths/~1api~1Responses/get/400/properties/id", removed[0].Path.JsonReference);
449450
}
@@ -456,7 +457,7 @@ public void ResponseHeaderAdded()
456457
{
457458
var messages = CompareSwagger("operation_check_03.json").ToArray();
458459
var added = messages.Where(m => m.Id == ComparisonMessages.AddingHeader.Id).ToArray();
459-
Assert.Equal(1, added.Length);
460+
Assert.Single(added);
460461
Assert.Equal(Category.Info, added[0].Severity);
461462
Assert.Equal("#/paths/~1api~1Responses/get/200/x-c", added[0].Path.JsonReference);
462463
}
@@ -469,7 +470,7 @@ public void ResponseHeaderRemoved()
469470
{
470471
var messages = CompareSwagger("operation_check_03.json").ToArray();
471472
var removed = messages.Where(m => m.Id == ComparisonMessages.RemovingHeader.Id).ToArray();
472-
Assert.Equal(1, removed.Length);
473+
Assert.Single(removed);
473474
Assert.Equal(Category.Error, removed[0].Severity);
474475
Assert.Equal("#/paths/~1api~1Responses/get/200/x-a", removed[0].Path.JsonReference);
475476
}
@@ -482,7 +483,7 @@ public void ResponseHeaderTypeChanged()
482483
{
483484
var messages = CompareSwagger("operation_check_03.json").ToArray();
484485
var changed = messages.Where(m => m.Id == ComparisonMessages.TypeChanged.Id && m.Path.JsonReference.Contains("Responses")).ToArray();
485-
Assert.Equal(1, changed.Length);
486+
Assert.Single(changed);
486487
Assert.Equal(Category.Error, changed[0].Severity);
487488
Assert.Equal("#/paths/~1api~1Responses/get/200/x-b", changed[0].Path.JsonReference);
488489
}
@@ -647,7 +648,7 @@ public void GlobalResponseTypeConstraintsChanged()
647648
public void RemovedPropertyTest()
648649
{
649650
var messages = CompareSwagger("removed_property.json").ToArray();
650-
Assert.Equal(true, messages.Where(m => m.Id == ComparisonMessages.RemovedProperty.Id).Any());
651+
Assert.True(messages.Where(m => m.Id == ComparisonMessages.RemovedProperty.Id).Any());
651652
}
652653
}
653654
}

openapi-diff/src/modeler/AutoRest.Swagger/AutoRest.Swagger.csproj

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
<Import Project="$(common)common-package-references.proj" />
44
<Import Project="$(common)project-library.proj" />
55
<Import Project="$(common)package-info.proj" />
6-
<Import Project="$(common)package-fallback.proj" />
7-
6+
87
<PropertyGroup>
98
<AssemblyName>AutoRest.Swagger</AssemblyName>
109
<PackageTags>Microsoft AutoRest Generator Extensions</PackageTags>
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
33
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net45" />
4-
<package id="YamlDotNet.Signed" version="3.8.0" targetFramework="net45" />
4+
<package id="YamlDotNet.Signed" version="4.2.2" targetFramework="net45" />
55
</packages>

0 commit comments

Comments
 (0)