Skip to content

Commit

Permalink
Merge m4 to master branch (#700)
Browse files Browse the repository at this point in the history
* Support for simple API with modelerfour(defined in xkcd.ymal)

* Move some libs from modeler-v3 to autorest.powershell and remove modeler-v3 dependency in the new plugins

* Reimplement CmdletClass based on modelerfour

* Add support for basic types like integer/number/array/boolean/.etc

* Add test cases for upgrade.

* Init ADO pipeline for PR verification (#626)

* Add dummy code

* Change file name

* Update code

* Add PowerShell task

* Update code

* Correct displayName

* Fix typo

* Add virtual properties and fix a few issues (#628)

* Support parameter path - llcsharp (#629)

* add tweak-model-azure-v2 plugin

* support path parameter (llcsharp)

* fix comment

* fix comment

* Fix some issues in powershell-v2

Co-authored-by: xichen <[email protected]>
Co-authored-by: derek <[email protected]>

* Add azure support for get with an empty response (#634)

* Add validation script in pipeline (#630)

* Add -AllowList

* Add scripts and configuration

* Add build steps

* Change work directory

* Enable AutoRestUpgradeTest.ps1.

* Add save artifacts task

* Revert "Enable AutoRestUpgradeTest.ps1."

This reverts commit 66c750d.

* Update the script

Co-authored-by: Youri <[email protected]>

* Add support for default response and fix an issue related to model (#635)

* enable the test cases basic-get and basic-get-delete (#636)

* Add another 9 test cases that has been supported (#638)

* Change the script (#639)

* Update test-module-upgrade.yml

* Update test-module-upgrade.yml, should use core instead of window powershell for pipeline

* Remove unpassed cases and upgrade codemodel dependency (#641)

* support request body (#637)

* support request body

* fix query parameter and no-requried parameter

* fix readonly

* fix diff between m3 and m4

Co-authored-by: xichen <[email protected]>

* Change the AutoRestUpgrade.ps1 for different Powershell version (#642)

* Change the script

* add script tips

* fix the powershell version issue

* Fix formatting issues

* Support enum (#643)

* support enum

* fix diff from m3

* llcsharp-v2 should rely on modifiers-v2

Co-authored-by: xichen <[email protected]>
Co-authored-by: Xiaogang <[email protected]>

* Initial support for lro and paing (#644)

* Initial support for lro and pagination

* Fixed a paging issue

* Fix the issue nested object is not supported (#646)

* Fix the issue nested ojbect not supported

* Add more passed test cases

* Add support for allof, datetime and enable two cases (#649)

* Fix the issue nested ojbect not supported

* Add more passed test cases

* Add support for allOf, datetime and enable two cases

* support header (#648)

* support header

* fix some issue for enum and header

* fix choice

* fix enum

* Only validate sealedchoice

Co-authored-by: xichen <[email protected]>
Co-authored-by: Xiaogang <[email protected]>

* Add test cases of autorest extension. (#647)

* Add test cases of autorest extension.

* Add test cases of directive.

* Add test case of directive.

* Intial support for polymorphism (#650)

* Fix the issue nested ojbect not supported

* Add more passed test cases

* Add support for allOf, datetime and enable two cases

* initial poly support

* Add a test for polymorphism

* Add support for duration and uuid (#652)

* Fix the issue nested ojbect not supported

* Add more passed test cases

* Add support for allOf, datetime and enable two cases

* initial poly support

* Add a test for polymorphism

* Add support for uuid and duration

* Add test cases to AllowList. (#653)

* Add test cases of autorest extension.

* Add test cases of directive.

* Add test case of directive.

* Add test cases to AllowList.

* support dict (#651)

Co-authored-by: xichen <[email protected]>

* Add test cases of data model. (#654)

* Add test cases of autorest extension.

* Add test cases of directive.

* Add test case of directive.

* Add test cases to AllowList.

* Add test cases of datamodels.

* Update AllList.

* Add databricks, fix several issues (#658)

* SupportDateTimeRfc1123 (#657)

* SupportDateTimeRfc1123

* fix

Co-authored-by: xichen <[email protected]>

* Fix the BlackList issue (#656)

* Fix the BlackList issue

* Fix Create CompareResult Folder Issue

It will not create 'CompareResult' folder if the file exists.

* Fixed a completer related issue and add support for credential (#660)

* Add databricks, fix several issues

* Fixed a completer related issue and add support for credential

* Enable 3 test cases (#659)

* enable test cases

* disable datamodels-datatypes-object, cause we cannot handle any yet

* fix dup name issue

* fix comment

Co-authored-by: xichen <[email protected]>

* Fix some issues (#663)

Co-authored-by: xichen <[email protected]>

* Update some test cases (#661)

* Update some testcase

Add some testcases and delete some failed testcases

* Revert "Update some testcase"

This reverts commit 38b9e87.

* Submit some test cases and fix some problems with the script

* Add two m4 configuration and fix some issues (#664)

* Add databricks, fix several issues

* Fixed a completer related issue and add support for credential

* Add two m4 configuration and fix some issues

* Add support for enum with one value (#666)

* Add databricks, fix several issues

* Fixed a completer related issue and add support for credential

* Add two m4 configuration and fix some issues

* Add support for enum with one value

* fix some issues (#665)

Co-authored-by: xichen <[email protected]>
Co-authored-by: Xiaogang <[email protected]>

* fix header issue (#667)

Co-authored-by: xichen <[email protected]>

* Fixed an enum related issue and add some RPs in the test (#669)

* Add databricks, fix several issues

* Fixed a completer related issue and add support for credential

* Add two m4 configuration and fix some issues

* Add support for enum with one value

* Fixed an enum related issue and add some RPs in the test

* Fix some issues in m4 test (#671)

* Add databricks, fix several issues

* Fixed a completer related issue and add support for credential

* Add two m4 configuration and fix some issues

* Add support for enum with one value

* Fixed an enum related issue and add some RPs in the test

* Fix some issues in m4 test

* skip content type request parameter (#673)

Co-authored-by: xichen <[email protected]>

* Use the latest m4 (#674)

* Add databricks, fix several issues

* Fixed a completer related issue and add support for credential

* Add two m4 configuration and fix some issues

* Add support for enum with one value

* Fixed an enum related issue and add some RPs in the test

* Fix some issues in m4 test

* just for test, do not merge

* Update autorest-configuration.md

* Fix choice issue (#675)

Co-authored-by: xichen <[email protected]>

* Fix enum boolean response which has only one value (#676)

Co-authored-by: xichen <[email protected]>

* Enable two test cases, and drop the workaround for x-ms-enum (#677)

* Upgrade modelerfour to 4.15.414 (#679)

* Add utils folder include a script to decrypt securestring (#682)

* Enable two test cases, and drop the workaround for x-ms-enum

* Add utils folder include a script to decrypt securestring

* fix deserialize dictionary value bug (#684)

* Generate model for all the dictionaries and add support for unixtime (#685)

* Enable two test cases, and drop the workaround for x-ms-enum

* Add utils folder include a script to decrypt securestring

* Generate model for all the dictionaries and add support for unixtime

* git clone need not --recurse (#686)

* handle duplicated properties in parentes, fixes #688 (#690)

* handle duplicated properties in parentes, fixes #688

* Remove no-needed comments

* Add support for no-inline (#691)

* Add support support for API, whose request body is just an object without specifying any details (#694)

* M4 master merge (#695)

* Emit Signal method and delegate to provide a hook into events

* Update Az.Accounts dependency to 1.8.4

* Adding target attribute to nuspec file elements

* Using backslash path separator in nuspec for cross platform compatability

* Remove Init method constructor call.

* Revert "Emit Signal method and delegate to provide a hook into events"

* Emit Signal method and delegate to provide hook into events for Non-Azure scenarios.

* Update ISendAsync.cs (#662)

* Update ISendAsync.cs

pass only Authorization to next header for long running operations.

* Update ISendAsync.cs

* Update ISendAsync.cs

fix potential null reference

* Update ISendAsync.cs

* Update ISendAsync.cs

* Update ISendAsync.cs

* update gitignore (#670)

* Add scan pipelines (#681)

* Update development.md - add how to debug (#683)

* Update development.md

* Update development.md

* Fix some merging issues

Co-authored-by: George Ndungu <[email protected]>
Co-authored-by: Tim Mullender <[email protected]>
Co-authored-by: Yabo Hu <[email protected]>
Co-authored-by: Yeming Liu <[email protected]>
Co-authored-by: Dingmeng Xue <[email protected]>

* Upgrade rush and pnpm (#697)

* Clean m3 related steps from the pipeline (#699)

* Clean m3 related steps from the pipeline

* clean m3 plugins and update related tests accordingly

* clean code used by m3 generator

* Remove the prefix New

* Remove New from types

* upgrade version to 3.0.0

* Remove some useless comments

Co-authored-by: LucasYao93 <[email protected]>
Co-authored-by: Dingmeng Xue <[email protected]>
Co-authored-by: xichen <[email protected]>
Co-authored-by: xichen <[email protected]>
Co-authored-by: Youri <[email protected]>
Co-authored-by: Youri970410 <[email protected]>
Co-authored-by: Yeming Liu <[email protected]>
Co-authored-by: George Ndungu <[email protected]>
Co-authored-by: Tim Mullender <[email protected]>
Co-authored-by: Yabo Hu <[email protected]>
Co-authored-by: Dingmeng Xue <[email protected]>
  • Loading branch information
12 people committed Oct 19, 2020
1 parent bd7146a commit c22c4e2
Show file tree
Hide file tree
Showing 274 changed files with 30,531 additions and 1,657 deletions.
50 changes: 50 additions & 0 deletions .azure-pipelines/test-module-upgrade.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
pool:
name: Hosted VS2017
demands: npm

steps:
- task: NodeTool@0
displayName: 'Use Node 10.16.0'
inputs:
versionSpec: 10.16.0

- task: Npm@1
displayName: 'Install autorest@beta'
inputs:
command: custom
verbose: false
customCommand: 'install -g "@autorest/autorest"'

- task: Npm@1
displayName: 'Install @microsoft/rush'
inputs:
command: custom
verbose: false
customCommand: 'install -g @microsoft/[email protected]'

- task: CmdLine@2
displayName: 'Rush sync-versions'
inputs:
script: 'rush sync-versions'

- task: CmdLine@2
displayName: 'Rush Update'
inputs:
script: 'rush update'

- task: CmdLine@2
displayName: 'Rush Rebuild'
inputs:
script: 'rush rebuild'

- pwsh: |
./AutoRestUpgradeTest.ps1 -AllowList
workingDirectory: 'tests-upgrade'
displayName: 'Verify Upgrad'

- task: PublishPipelineArtifact@0
displayName: 'Save artifacts'
inputs:
artifactName: CompareResult
targetPath: tests-upgrade\CompareResult
condition: succeededOrFailed()
41 changes: 19 additions & 22 deletions common/config/rush/pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 1 addition & 3 deletions docs/development.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,9 @@ Use of this project requires the following:

## Cloning this repository

Make sure that you clone this repository with `--recurse` - there is a submodule with common code that we pull from the `https://github.com/azure/perks` project.

``` powershell
# clone recursively
git clone https://github.com/azure/autorest.powershell --recurse
git clone https://github.com/azure/autorest.powershell
# one-time
cd autorest.powershell
Expand Down
105 changes: 59 additions & 46 deletions powershell/autorest-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,21 @@
- Please don't edit this section unless you're re-configuring how the powershell extension plugs in to AutoRest
AutoRest needs the below config to pick this up as a plug-in - see https://github.com/Azure/autorest/blob/master/docs/developer/architecture/AutoRest-extension.md

> modelerfour configuration
``` yaml
modelerfour:
emit-yaml-tags: false
lenient-model-deduplication: true
additional-checks: false
always-create-content-type-parameter: false
always-seal-x-ms-enums: true
```

> if the modeler is loaded already, use that one, otherwise grab it.
``` yaml !isLoaded('@autorest/remodeler')
``` yaml !isLoaded('@autorest/modelerfour')
use-extension:
"@autorest/remodeler" : "~2.1.0"
"@autorest/modelerfour": "4.15.414"

# will use highest 2.0.x
```
Expand Down Expand Up @@ -52,6 +62,7 @@ module-folder: $(current-folder)/generated
cmdlet-folder: $(module-folder)/cmdlets
model-cmdlet-folder: $(module-folder)/model-cmdlets
custom-cmdlet-folder: $(current-folder)/custom
utils-cmdlet-folder: $(current-folder)/utils
internal-cmdlet-folder: $(current-folder)/internal
test-folder: $(current-folder)/test
runtime-folder: $(module-folder)/runtime
Expand Down Expand Up @@ -93,62 +104,51 @@ declare-directive:
# Pipeline Configuration
``` yaml
pipeline:
# --- extension remodeler ---

# "Shake the tree", and normalize the model
remodeler:
input: openapi-document/multi-api/identity # the plugin where we get inputs from

# allow developer to do transformations on the code model.
remodeler/new-transform:
input: remodeler

# Make some interpretations about what some things in the model mean
tweakcodemodel:
input: remodeler/new-transform
# --- extension powershell based on modelerfour

# Specific things for Azure
tweakcodemodelazure:
input: tweakcodemodel
# Fix the code model gap between m3 and m4
tweakm4codemodel:
input: modelerfour/identity

# --- extension powershell ---
tweakcodemodel-v2:
input: tweakm4codemodel
# input: clicommon/identity

tweakcodemodelazure-v2:
input: tweakcodemodel-v2

# creates high-level commands
create-commands:
input: tweakcodemodelazure # brings the code-model-v3 with it.
create-commands-v2:
input: tweakcodemodelazure-v2

create-virtual-properties-v2:
input: create-commands-v2

create-virtual-properties:
input: create-commands

# Choose names for everything in c#
csnamer:
input: create-virtual-properties # and the generated c# files
csnamer-v2:
input: create-virtual-properties-v2

# ensures that names/descriptions are properly set for powershell
psnamer:
input: csnamer
psnamer-v2:
input: csnamer-v2

modifiers:
input: psnamer
modifiers-v2:
input: psnamer-v2

add-azure-completers:
input: modifiers
add-azure-completers-v2:
input: modifiers-v2

# creates powershell cmdlets for high-level commands. (leverages llc# code)
powershell:
input: add-azure-completers # and the generated c# files
llcsharp-v2:
input: modifiers-v2

powershell-v2:
input: add-azure-completers-v2

# --- extension llcsharp ---
# generates c# files for http-operations
llcsharp:
input: modifiers

llcsharp/text-transform:
input: llcsharp
input: llcsharp-v2
scope: scope-here

powershell/text-transform:
input: powershell
input: powershell-v2
scope: scope-here

llcsharp/emitter:
Expand All @@ -174,10 +174,10 @@ scope-here:

# Specific Settings for cm emitting - selects the file types and format that cmv2-emitter will spit out.
code-model-emitter-settings:
input-artifact: code-model-v3
input-artifact: code-model-v4
is-object: true
output-uri-expr: |
"code-model-v3"
"code-model-v4"
# testing: ask for the files we need
output-artifact:
Expand Down Expand Up @@ -409,4 +409,17 @@ verb-mapping:
Write: Write
```


``` yaml
cli:
reason: 'Keep same as modelerfour'
naming:
default:
parameter: 'camel'
property: 'camel'
operation: 'pascal'
operationGroup: 'pascal'
choice: 'pascal'
choiceValue: 'pascal'
constant: 'pascal'
type: 'pascal'
```
Loading

0 comments on commit c22c4e2

Please sign in to comment.