Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Contributing.md doc #6368

Merged

Conversation

chidozieononiwu
Copy link
Member

No description provided.

@chidozieononiwu
Copy link
Member Author

@Azure/azure-sdk-eng

@chidozieononiwu chidozieononiwu added the EngSys This issue is impacting the engineering system. label May 22, 2019
@weshaggard
Copy link
Member

@dsgouda @shahabhijeet can you guys please also review and provide feedback on the the documentation update on how to work in this repo.

@chidozieononiwu chidozieononiwu force-pushed the UpdateContributing.md branch from 42dab89 to ef282b8 Compare May 28, 2019 17:39
@chidozieononiwu chidozieononiwu force-pushed the UpdateContributing.md branch 2 times, most recently from 7825631 to 57891c2 Compare June 17, 2019 22:01
CONTRIBUTING.md Outdated

Now you can use the same command on non-windows as above for e.g. on Ubuntu you can do something like below:

- `dotnet msbuild build.proj /t:Build /p:scope=Compute`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@shahabhijeet my goal is that we don't need to use msbuild and these targets manually but instead we can simply call dotnet build, dotnet test, and dotnet pack which are the default .NET cli commands. Behind the scenes we can still call those targets but people won't need to know these custom command lines and targets.


Build tools are now downloaded as part of a nuget package under `root\restoredPackages\microsoft.internal.netsdkbuild.mgmt.tools`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@shahabhijeet once we correctly version and publish this package these steps will no longer be necessary.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is correct.
The only thing that needs to be added is, for getting latest version, you will have to pull latest from upstream and then execute build targets.
But yes once we version and start publishing nuget pacakges to nuget feed, no need to delete anything.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we need to add any steps telling people to pull from latest upstream. They will automatically have the latest tools if they are on the latest source.


> PackageReleaseNotes are important because this information is displayed on www.nuget.org when your nuget package is published

8. Copy existing generate.ps1 file from another service and update the `ResourceProvider` name that is applicable to your SDK. Resource provider refers to the relative path of your REST spec directory in Azure-Rest-Api-Specs repository
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@shahabhijeet we still need to fix the psmodules if we want people to use generate.ps1.

> PackageReleaseNotes are important because this information is displayed on www.nuget.org when your nuget package is published

8. Copy existing generate.ps1 file from another service and update the `ResourceProvider` name that is applicable to your SDK. Resource provider refers to the relative path of your REST spec directory in Azure-Rest-Api-Specs repository
During SDK generation, this path helps to locate the REST API spec from the `https://github.com/Azure/azure-rest-api-specs`

### Code Review Process
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@shahabhijeet @AlexGhiondea can you guys look through this and ensure it matches the expectations across both teams? I'm a little worried about things like SLA of 48 hours for example.

- MS internal folks, please reach out to us via our slack channel or
- Send an email to the Azure DevEx .Net team (azdevxdotnet@microsoft.com) alias.
- MS internal folks, please reach out to us via our Teams channel or
- Send an email to the Azure Developer Platform team [adpteam@microsoft.com](mailto:adpteam@microsoft.com) alias.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@shahabhijeet @AlexGhiondea what would be a good alias here?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We might also want to consider pointing folks at the Codeowners file instead of putting an alias here.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do you mean by CodeOwners file?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have plans to setup CODEOWNERS files in all our repos (see https://help.github.com/en/articles/about-code-owners), once that happens we should just refer to that file to find the correct owner to contact.

@chidozieononiwu chidozieononiwu force-pushed the UpdateContributing.md branch from 57891c2 to b853df2 Compare June 24, 2019 07:30
Copy link
Member

@shahabhijeet shahabhijeet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are over 90+ management plane SDK when compared to data plane SDKs, so naturally more any information we present should be geared first about management plane than data plane for now. So move management plane related stuff on the top.


Build tools are now downloaded as part of a nuget package under `root\restoredPackages\microsoft.internal.netsdkbuild.mgmt.tools`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is correct.
The only thing that needs to be added is, for getting latest version, you will have to pull latest from upstream and then execute build targets.
But yes once we version and start publishing nuget pacakges to nuget feed, no need to delete anything.


- `dotnet msbuild eng\mgmt.proj /t:Build /p:scope=Compute`
- `dotnet msbuild eng\mgmt.proj /t:RunTests /p:scope=Compute`
- `dotnet msbuild eng\mgmt.proj /t:CreateNugetPackage /p:scope=Compute`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add the following
msbuild build.proj /t:Util /p:UtilityName=InstallPsModules
this will install the powershell modules that are needed for using generate.ps1

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This command does not work right now. Error: error MSB4057: The target "Util" does not exist in the project

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As we chatted I think we should hide that command completely and instead we should have a helper script under eng to handle this setup and then update all the generate.ps1 to call that init script.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@weshaggard changing generate.ps1 for every RP is a bigger change (at least I think that is little more involved as it will require all generate.ps1 to be updated and tested)
So unless we are planning to do that change right now, we need to have a way for RPs to get the updated scripts documented, because if we do not do that, partners will start adding their own custom scripts in the repo and that will be even bigger workitem for a clean up.

@chidozieononiwu our partners have started using that target to get updated powershell scripts, and I am not able to reproduce the error you are mentioning.
The only way you end up getting that error if you are still using old tools.
let me know if you still see the issue if you do the following:

  1. git clean -xdf
  2. git pull upstream master
  3. msbuild build.proj /t:Util /p:UtilityName=InstallPsModules

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While the change might be rather large, with a lot of files generate.ps1 files changed I don't think you need to test everyone just a few to verify it works. As it should be as simple as adding one line to the top of all generate.ps1. If you don't think that is worth the effort right now might I suggest you go ahead and create a simple wrapper script in eng/mgmt that people can call instead of trying to have them remember and type this fairly complicated msbuild command?

@chidozieononiwu
Copy link
Member Author

There are over 90+ management plane SDK when compared to data plane SDKs, so naturally more any information we present should be geared first about management plane than data plane for now. So move management plane related stuff on the top.

Done

@chidozieononiwu chidozieononiwu force-pushed the UpdateContributing.md branch from 2fba2d6 to 6ee1b67 Compare July 3, 2019 19:34
@chidozieononiwu chidozieononiwu merged commit 03138e2 into Azure:master Jul 3, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
EngSys This issue is impacting the engineering system.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants