From 0506b6af4afd78688d7cec7e4c9c5cd210bcc6d8 Mon Sep 17 00:00:00 2001 From: Gary Pretty Date: Tue, 23 Jun 2020 17:35:52 +0100 Subject: [PATCH 1/5] Updates to readme for accuracy, consistency across languages and consolidating wiki content. (#4159) --- README.md | 107 +++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 78 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index f2f5a9442e..5efd9aa1d5 100644 --- a/README.md +++ b/README.md @@ -1,59 +1,108 @@ # ![Bot Framework for dotnet](./doc/media/BotFrameworkDotnet_header.png) -### [Click here to find out what's new with Bot Framework](https://docs.microsoft.com/en-us/azure/bot-service/what-is-new?view=azure-bot-service-4.0) +### [What's new with Bot Framework](https://docs.microsoft.com/en-us/azure/bot-service/what-is-new?view=azure-bot-service-4.0) -# Bot Framework SDK v4 for .NET -This repository contains code for the .NET version of the [Microsoft Bot Framework SDK](https://github.com/Microsoft/botbuilder). The Bot Framework SDK v4 enable developers to model conversation and build sophisticated bot applications using .NET. +This repository contains code for the .NET version of the [Microsoft Bot Framework SDK](https://github.com/Microsoft/botframework-sdk), which is part of the Microsoft Bot Framework - a comprehensive framework for building enterprise-grade conversational AI experiences. -This repo is part of the [Microsoft Bot Framework](https://github.com/Microsoft/botframework) - a comprehensive framework for building enterprise-grade conversational AI experiences. +This SDK enables developers to model conversation and build sophisticated bot applications using .NET. SDKs for [JavaScript](https://github.com/Microsoft/botbuilder-js), [Python](https://github.com/Microsoft/botbuilder-python) and [Java (preview)](https://github.com/Microsoft/botbuilder-java) are also available. - | Branch | Description | Build Status | Coverage Status | Windows Bot Test Status | Linux Bot Test Status | - |----|---------------|--------------|-----------------|--|--| - |Master | 4.10.* Preview Builds |[![Build Status](https://fuselabs.visualstudio.com/SDK_v4/_apis/build/status/DotNet/BotBuilder-DotNet-Signed-daily?branchName=master)](https://fuselabs.visualstudio.com/SDK_v4/_build/latest?definitionId=277&branchName=master) |[![Coverage Status](https://coveralls.io/repos/github/Microsoft/botbuilder-dotnet/badge.svg?branch=master&service=github)](https://coveralls.io/github/Microsoft/botbuilder-dotnet?branch=master) | [![Tests Status](https://fuselabs.visualstudio.com/SDK_v4/_apis/build/status/DotNet/FunctionalTests/BotBuilder-DotNet-Functional-Tests-Windows-yaml?branchName=master)](https://fuselabs.visualstudio.com/SDK_v4/_build/latest?definitionId=834&branchName=master) | [![Tests Status](https://fuselabs.visualstudio.com/SDK_v4/_apis/build/status/DotNet/FunctionalTests/BotBuilder-DotNet-Functional-Tests-Linux-yaml?branchName=master)](https://fuselabs.visualstudio.com/SDK_v4/_build/latest?definitionId=779&branchName=master) - -[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/Microsoft/botbuilder-dotnet/blob/master/LICENSE) -[![Gitter](https://img.shields.io/gitter/room/Microsoft/BotBuilder.svg)](https://gitter.im/Microsoft/BotBuilder) +To get started building bots using the SDK, see the [Azure Bot Service Documentation](https://docs.microsoft.com/en-us/azure/bot-service/?view=azure-bot-service-4.0). -[![StackExchange](https://img.shields.io/stackexchange/stackoverflow/t/botframework.svg)](https://stackoverflow.com/questions/tagged/botframework) +For more information jump to a section below. +* [Build status](#build-status) +* [Packages](#packages) +* [Getting started](#getting-started) +* [Getting support and providing feedback](#getting-support-and-providing-feedback) +* [Contributing and our code of conduct](contributing-and-our-code-of-conduct) +* [Reporting security sssues](#reporting-security-issues) +## Build Status -In addition to the .NET SDK, Bot Builder supports creating bots in other popular programming languages like [JavaScript](https://github.com/Microsoft/botbuilder-js), [Python (Preview)](https://github.com/Microsoft/botbuilder-python), and [Java (Preview)](https://github.com/Microsoft/botbuilder-java). - -To get started see the [Azure Bot Service Documentation](https://docs.microsoft.com/en-us/azure/bot-service/?view=azure-bot-service-4.0) for the v4 SDK. - -The [Bot Framework Samples](https://github.com/microsoft/botbuilder-samples) includes a rich set of samples repository. - + | Branch | Description | Build Status | Coverage Status | Windows Bot Test Status | Linux Bot Test Status | + |----|---------------|--------------|-----------------|--|--| + |Master | 4.10.* Preview Builds |[![Build Status](https://fuselabs.visualstudio.com/SDK_v4/_apis/build/status/DotNet/BotBuilder-DotNet-Signed-daily?branchName=master)](https://fuselabs.visualstudio.com/SDK_v4/_build/latest?definitionId=277&branchName=master) |[![Coverage Status](https://coveralls.io/repos/github/Microsoft/botbuilder-dotnet/badge.svg?branch=master&service=github)](https://coveralls.io/github/Microsoft/botbuilder-dotnet?branch=master) | [![Tests Status](https://fuselabs.visualstudio.com/SDK_v4/_apis/build/status/DotNet/FunctionalTests/BotBuilder-DotNet-Functional-Tests-Windows-yaml?branchName=master)](https://fuselabs.visualstudio.com/SDK_v4/_build/latest?definitionId=834&branchName=master) | [![Tests Status](https://fuselabs.visualstudio.com/SDK_v4/_apis/build/status/DotNet/FunctionalTests/BotBuilder-DotNet-Functional-Tests-Linux-yaml?branchName=master)](https://fuselabs.visualstudio.com/SDK_v4/_build/latest?definitionId=779&branchName=master) ## Packages + | Name | Released Package | Daily Build | |---------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|--| | Microsoft.Bot.Builder | [![BotBuilder Badge](https://buildstats.info/nuget/Microsoft.Bot.Builder?dWidth=70)](https://www.nuget.org/packages/Microsoft.Bot.Builder/) | [![BotBuilder Badge](https://buildstats.info/myget/botbuilder/botbuilder-v4-dotnet-daily/Microsoft.Bot.Builder?includePreReleases=true&dWidth=50)](https://botbuilder.myget.org/feed/botbuilder-v4-dotnet-daily/package/nuget/Microsoft.Bot.Builder) | | Microsoft.Bot.Builder.AI.LUIS | [![BotBuilder Badge](https://buildstats.info/nuget/Microsoft.Bot.Builder.AI.LUIS?dWidth=70)](https://www.nuget.org/packages/Microsoft.Bot.Builder.AI.LUIS/) | [![BotBuilder Badge](https://buildstats.info/myget/botbuilder/botbuilder-v4-dotnet-daily/Microsoft.Bot.Builder.AI.LUIS?includePreReleases=true&dWidth=50)](https://botbuilder.myget.org/feed/botbuilder-v4-dotnet-daily/package/nuget/Microsoft.Bot.Builder.AI.LUIS) | | Microsoft.Bot.Builder.AI.QnA | [![BotBuilder Badge](https://buildstats.info/nuget/Microsoft.Bot.Builder.AI.QnA?dWidth=70)](https://www.nuget.org/packages/Microsoft.Bot.Builder.AI.Qna/) | [![BotBuilder Badge](https://buildstats.info/myget/botbuilder/botbuilder-v4-dotnet-daily/Microsoft.Bot.Builder.AI.QnA?includePreReleases=true&dWidth=50)](https://botbuilder.myget.org/feed/botbuilder-v4-dotnet-daily/package/nuget/Microsoft.Bot.Builder.AI.QnA) | +| Microsoft.Bot.Builder.ApplicationInsights | [![BotBuilder Badge](https://buildstats.info/nuget/Microsoft.Bot.Builder.ApplicationInsights?dWidth=70)](https://www.nuget.org/packages/Microsoft.Bot.Builder.ApplicationInsights/) | [![BotBuilder Badge](https://buildstats.info/myget/botbuilder/botbuilder-v4-dotnet-daily/Microsoft.Bot.Builder.ApplicationInsights?includePreReleases=true&dWidth=50)](https://botbuilder.myget.org/feed/botbuilder-v4-dotnet-daily/package/nuget/Microsoft.Bot.Builder.ApplicationInsights) | | Microsoft.Bot.Builder.Azure | [![BotBuilder Badge](https://buildstats.info/nuget/Microsoft.Bot.Builder.Azure?dWidth=70)](https://www.nuget.org/packages/Microsoft.Bot.Builder.Azure/) | [![BotBuilder Badge](https://buildstats.info/myget/botbuilder/botbuilder-v4-dotnet-daily/Microsoft.Bot.Builder.Azure?includePreReleases=true&dWidth=50)](https://botbuilder.myget.org/feed/botbuilder-v4-dotnet-daily/package/nuget/Microsoft.Bot.Builder.Azure) | | Microsoft.Bot.Builder.Dialogs | [![BotBuilder Badge](https://buildstats.info/nuget/Microsoft.Bot.Builder.Dialogs?dWidth=70)](https://www.nuget.org/packages/Microsoft.Bot.Builder.Dialogs/) | [![BotBuilder Badge](https://buildstats.info/myget/botbuilder/botbuilder-v4-dotnet-daily/Microsoft.Bot.Builder.Dialogs?includePreReleases=true&dWidth=50)](https://botbuilder.myget.org/feed/botbuilder-v4-dotnet-daily/package/nuget/Microsoft.Bot.Builder.Dialogs) | +| Microsoft.Bot.Builder.Dialogs.Adaptive | [![BotBuilder Badge](https://buildstats.info/nuget/Microsoft.Bot.Builder.Dialogs.Adaptive?dWidth=70)](https://www.nuget.org/packages/Microsoft.Bot.Builder.Dialogs.Adaptive/) | [![BotBuilder Badge](https://buildstats.info/myget/botbuilder/botbuilder-v4-dotnet-daily/Microsoft.Bot.Builder.Dialogs.Adaptive?includePreReleases=true&dWidth=50)](https://botbuilder.myget.org/feed/botbuilder-v4-dotnet-daily/package/nuget/Microsoft.Bot.Builder.Dialogs.Adaptive) | +| Microsoft.Bot.Builder.Dialogs.Declarative | [![BotBuilder Badge](https://buildstats.info/nuget/Microsoft.Bot.Builder.Dialogs.Declarative?dWidth=70)](https://www.nuget.org/packages/Microsoft.Bot.Builder.Dialogs.Declarative/) | [![BotBuilder Badge](https://buildstats.info/myget/botbuilder/botbuilder-v4-dotnet-daily/Microsoft.Bot.Builder.Dialogs.Declarative?includePreReleases=true&dWidth=50)](https://botbuilder.myget.org/feed/botbuilder-v4-dotnet-daily/package/nuget/Microsoft.Bot.Builder.Dialogs.Declarative) | | Microsoft.Bot.Builder.TemplateManager | [![BotBuilder Badge](https://buildstats.info/nuget/Microsoft.Bot.Builder.TemplateManager?dWidth=70)](https://www.nuget.org/packages/Microsoft.Bot.Builder.TemplateManager/) | [![BotBuilder Badge](https://buildstats.info/myget/botbuilder/botbuilder-v4-dotnet-daily/Microsoft.Bot.Builder.TemplateManager?includePreReleases=true&dWidth=50)](https://botbuilder.myget.org/feed/botbuilder-v4-dotnet-daily/package/nuget/Microsoft.Bot.Builder.TemplateManager) | | Microsoft.Bot.Builder.Integration.ApplicationInsights.Core | [![BotBuilder Badge](https://buildstats.info/nuget/Microsoft.Bot.Builder.Integration.ApplicationInsights.Core?dWidth=70)](https://www.nuget.org/packages/Microsoft.Bot.Builder.Integration.ApplicationInsights.Core/) | [![BotBuilder Badge](https://buildstats.info/myget/botbuilder/botbuilder-v4-dotnet-daily/Microsoft.Bot.Builder.Integration.ApplicationInsights.Core?includePreReleases=true&dWidth=50)](https://botbuilder.myget.org/feed/botbuilder-v4-dotnet-daily/package/nuget/Microsoft.Bot.Builder.Integration.ApplicationInsights.Core) | | Microsoft.Bot.Builder.Integration.ApplicationInsights.WebApi | [![BotBuilder Badge](https://buildstats.info/nuget/Microsoft.Bot.Builder.Integration.ApplicationInsights.WebApi?dWidth=70)](https://www.nuget.org/packages/Microsoft.Bot.Builder.Integration.ApplicationInsights.WebApi/) | [![BotBuilder Badge](https://buildstats.info/myget/botbuilder/botbuilder-v4-dotnet-daily/Microsoft.Bot.Builder.Integration.ApplicationInsights.WebApi?includePreReleases=true&dWidth=50)](https://botbuilder.myget.org/feed/botbuilder-v4-dotnet-daily/package/nuget/Microsoft.Bot.Builder.Integration.ApplicationInsights.WebApi) | +| Microsoft.Bot.Builder.LanguageGeneration | [![BotBuilder Badge](https://buildstats.info/nuget/Microsoft.Bot.Builder.LanguageGeneration?dWidth=70)](https://www.nuget.org/packages/Microsoft.Bot.Builder.LanguageGeneration/) | [![BotBuilder Badge](https://buildstats.info/myget/botbuilder/botbuilder-v4-dotnet-daily/Microsoft.Bot.Builder.LanguageGeneration?includePreReleases=true&dWidth=50)](https://botbuilder.myget.org/feed/botbuilder-v4-dotnet-daily/package/nuget/Microsoft.Bot.Builder.LanguageGeneration) | +| Microsoft.Bot.Builder.Testing | [![BotBuilder Badge](https://buildstats.info/nuget/Microsoft.Bot.Builder.Testing?dWidth=70)](https://www.nuget.org/packages/Microsoft.Bot.Builder.Testing/) | [![BotBuilder Badge](https://buildstats.info/myget/botbuilder/botbuilder-v4-dotnet-daily/Microsoft.Bot.Builder.Testing?includePreReleases=true&dWidth=50)](https://botbuilder.myget.org/feed/botbuilder-v4-dotnet-daily/package/nuget/Microsoft.Bot.Builder.Testing) | | Microsoft.Bot.Configuration | [![BotBuilder Badge](https://buildstats.info/nuget/Microsoft.Bot.Configuration?dWidth=70)](https://www.nuget.org/packages/Microsoft.Bot.Configuration/) | [![BotBuilder Badge](https://buildstats.info/myget/botbuilder/botbuilder-v4-dotnet-daily/Microsoft.Bot.Configuration?includePreReleases=true&dWidth=50)](https://botbuilder.myget.org/feed/botbuilder-v4-dotnet-daily/package/nuget/Microsoft.Bot.Configuration) | | Microsoft.Bot.Connector | [![BotBuilder Badge](https://buildstats.info/nuget/Microsoft.Bot.Connector?dWidth=70)](https://www.nuget.org/packages/Microsoft.Bot.Connector/) | [![BotBuilder Badge](https://buildstats.info/myget/botbuilder/botbuilder-v4-dotnet-daily/Microsoft.Bot.Connector?includePreReleases=true&dWidth=50)](https://botbuilder.myget.org/feed/botbuilder-v4-dotnet-daily/package/nuget/Microsoft.Bot.Connector) | | Microsoft.Bot.Schema | [![BotBuilder Badge](https://buildstats.info/nuget/Microsoft.Bot.Schema?dWidth=70)](https://www.nuget.org/packages/Microsoft.Bot.Schema/) | [![BotBuilder Badge](https://buildstats.info/myget/botbuilder/botbuilder-v4-dotnet-daily/Microsoft.Bot.Schema?includePreReleases=true&dWidth=50)](https://botbuilder.myget.org/feed/botbuilder-v4-dotnet-daily/package/nuget/Microsoft.Bot.Schema) | +| Microsoft.Bot.Streaming | [![BotBuilder Badge](https://buildstats.info/nuget/Microsoft.Bot.Streaming?dWidth=70)](https://www.nuget.org/packages/Microsoft.Bot.Streaming/) | [![BotBuilder Badge](https://buildstats.info/myget/botbuilder/botbuilder-v4-dotnet-daily/Microsoft.Bot.Streaming?includePreReleases=true&dWidth=50)](https://botbuilder.myget.org/feed/botbuilder-v4-dotnet-daily/package/nuget/Microsoft.Bot.Streaming) | -[![Dependencies Graph](https://img.shields.io/badge/dependency-graph-blue.svg)](https://botbuildersdkblobstorage.blob.core.windows.net/sdk-dotnet-dependency-reports/4.9.2/InterdependencyGraph.html) +You can refer to the [dependency graph](https://botbuildersdkblobstorage.blob.core.windows.net/sdk-dotnet-dependency-reports/4.9.2/InterdependencyGraph.html) for our libraries. To use the daily builds, which are published to MyGet, please follow the instructions [here](UsingMyGet.md). -## Contributing -This project welcomes contributions and suggestions. Most contributions require you to agree to a -Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us -the rights to use your contribution. For details, visit https://cla.microsoft.com. -When you submit a pull request, a CLA-bot will automatically determine whether you need to provide -a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions -provided by the bot. You will only need to do this once across all repos using our CLA. -This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). -For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or -contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. +## Getting Started +To get started building bots using the SDK, see the [Azure Bot Service Documentation](https://docs.microsoft.com/en-us/azure/bot-service/?view=azure-bot-service-4.0). + +The [Bot Framework Samples](https://github.com/microsoft/botbuilder-samples) includes a rich set of samples repository. + +If you want to debug an issue, would like to [contribute](#contributing), or understand how the Bot Builder SDK works, instructions for building and testing the SDK are below. + +### Prerequisites +- [Git](https://git-scm.com/downloads) +- [Visual Studio](https://www.visualstudio.com/) + +### Clone +Clone a copy of the repo: + +```bash +git clone https://github.com/Microsoft/botbuilder-dotnet.git +``` + +Change to the SDK's directory: + +```bash +cd botbuilder-dotnet +``` + +### Build and test locally +Open `Microsoft.Bot.Builder.sln` in Visual Studio. +On the menu bar, choose **Build** > **Build Solution**. + +When the solution is built, local NuGet package files (.nupkg) are generated for each project and are available under the `outputPackages` directory. You can add this folder to your NuGet Package Manager source list in Visual Studio (choose **Tools > NuGet Package Manager > Package Manager Settings** from the Visual Studio menu and add an additional **Package Sources** from there), allowing you to consume these in your local projects. + +## Getting support and providing feedback +Below are the various channels that are available to you for obtaining support and providing feedback. Please pay carful attention to which channel should be used for which type of content. e.g. general "how do I..." questions should be asked on Stack Overflow, Twitter or Gitter, with GitHub issues being for feature requests and bug reports. + +### Github issues +[Github issues](https://github.com/Microsoft/botbuilder-dotnet/issues) should be used for bugs and feature requests. + +### Stack overflow +[Stack Overflow](https://stackoverflow.com/questions/tagged/botframework) is a great place for getting high-quality answers. Our support team, as well as many of our community members are already on Stack Overflow providing answers to 'how-to' questions. + +### Azure Support +If you issues relates to [Azure Bot Service](https://azure.microsoft.com/en-gb/services/bot-service/), you can take advantage of the available [Azure support options](https://azure.microsoft.com/en-us/support/options/). + +### Twitter +We use the [@botframework](https://twitter.com/botframework) account on twitter for announcements and members from the development team watch for tweets for @botframework. + +### Gitter Chat Room +The [Gitter Channel](https://gitter.im/Microsoft/BotBuilder) provides a place where the Community can get together and collaborate. + +## Contributing and our code of conduct +We welcome contributions and suggestions. Please see our [contributing guidelines](./contributing.md) for more information. + +This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). +For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact + [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. ## Reporting Security Issues Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) @@ -64,5 +113,5 @@ at [secure@microsoft.com](mailto:secure@microsoft.com). You should receive a re Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the [MIT](https://github.com/Microsoft/vscode/blob/master/LICENSE.txt) License. +Licensed under the [MIT](./LICENSE.md) License. From 9ced3162040e5f17992aaf2fafb05a30cd6db5f9 Mon Sep 17 00:00:00 2001 From: BruceHaley Date: Tue, 23 Jun 2020 10:52:05 -0700 Subject: [PATCH 2/5] Fix Slack functional test build (#4160) * add az group create * Switch to template-with-preexisting-rg.json * Fix template args for az deployment sub create * Fix arg appServicePlanLocation * Try "call az deployment group create" * Fix call az deployment group create #4 --- build/yaml/botbuilder-dotnet-ci-slack-test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build/yaml/botbuilder-dotnet-ci-slack-test.yml b/build/yaml/botbuilder-dotnet-ci-slack-test.yml index e807bdf4d7..1829359ddb 100644 --- a/build/yaml/botbuilder-dotnet-ci-slack-test.yml +++ b/build/yaml/botbuilder-dotnet-ci-slack-test.yml @@ -72,7 +72,8 @@ steps: azureSubscription: $(AzureSubscription) scriptLocation: inlineScript inlineScript: | - call az deployment create --name "$(BotGroup)" --template-file "$(System.DefaultWorkingDirectory)\tests\Adapters\Microsoft.Bot.Builder.Adapters.Slack.TestBot\DeploymentTemplates\template-with-new-rg.json" --location "westus" --parameters appId=$(AppId) appSecret="$(AppSecret)" botId="$(BotName)" botSku=F0 newAppServicePlanName="$(BotName)" newWebAppName="$(BotName)" groupName="$(BotGroup)" groupLocation="westus" newAppServicePlanLocation="westus" slackVerificationToken="$(SlackVerificationToken)" slackBotToken="$(SlackBotToken)" slackClientSigningSecret="$(SlackClientSigningSecret)" + call az group create --location westus --name $(BotGroup) + call az deployment group create --resource-group "$(BotGroup)" --template-file "$(System.DefaultWorkingDirectory)\tests\Adapters\Microsoft.Bot.Builder.Adapters.Slack.TestBot\DeploymentTemplates\template-with-preexisting-rg.json" --parameters appId=$(AppId) appSecret="$(AppSecret)" botId="$(BotName)" botSku=F0 newAppServicePlanName="$(BotName)" newWebAppName="$(BotName)" appServicePlanLocation="westus" slackVerificationToken="$(SlackVerificationToken)" slackBotToken="$(SlackBotToken)" slackClientSigningSecret="$(SlackClientSigningSecret)" --name "$(BotName)" call az webapp deployment source config-zip --resource-group "$(BotGroup)" --name "$(BotName)" --src "$(System.DefaultWorkingDirectory)\tests\Adapters\Microsoft.Bot.Builder.Adapters.Slack.TestBot\PublishedBot\PublishedBot.zip" - task: DotNetCoreCLI@2 From 56274c7fe1124f896aa3baff9c1f295f7972a195 Mon Sep 17 00:00:00 2001 From: Chris Mullins Date: Tue, 23 Jun 2020 14:24:18 -0700 Subject: [PATCH 3/5] Minor updates to proposal for review. --- specs/DailyBuildProposal.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/specs/DailyBuildProposal.md b/specs/DailyBuildProposal.md index 1e84dd814c..9cced9f885 100644 --- a/specs/DailyBuildProposal.md +++ b/specs/DailyBuildProposal.md @@ -8,13 +8,13 @@ This proposal describes our plan to publish daily builds for consumption. The go Use the [ASP.Net Team](https://github.com/dotnet/aspnetcore/blob/master/docs/DailyBuilds.md) as inspiration, and draft off the work they do. # Versioning -Move to semver2. This [file in ASp.Net Core](https://github.com/dotnet/aspnetcore/blob/3787d7e7f070543cc9368d589a504fa8c4bd4830/eng/Versions.props) can be looked at to learn more. +Move to semver2 and use "." rather than "-" to follow semver2 sorting rules. This [file in ASp.Net Core](https://github.com/dotnet/aspnetcore/blob/3787d7e7f070543cc9368d589a504fa8c4bd4830/eng/Versions.props) can be looked at to learn more. The tags we use for preview versions are: -* -preview..{incrementing value} +* -daily..{incrementing value} * -rc.{0} -Note: use of "." rather than "-" to follow semver2 sorting rules. +Note: We are avoding the "-preview" tag for daily builds as we occasionally release "preview" assemblies that have a final semver moniker of "4.10.0-preview". # Daily Builds Copying what the ASP.Net team does, all our Nuget packages would be pushed to the SDK_Public project at [fuselabs.visualstudio.com](https://fuselabs.visualstudio.com). @@ -46,7 +46,7 @@ To debug daily builds using Visual Studio Daily builds older than 90 days are automatically deleted. # Summary - Weekly Builds -Once per week, preferably on a Monday, a daily build is pushed to Nuget.org. This serves 2 purposes: +Once per week, preferably on a Monday, a daily build is pushed to Nuget.org. This build happens from master, the same as a standard daily build. This serves 2 purposes: 1. Keeps Nuget "Fresh" for people that don't want daily builds. 2. Keeps the release pipelines active and working, and prevents issues. @@ -68,4 +68,7 @@ nuget.exe push -Source "sdk_public_nuget" -ApiKey az 1. Initially, our daily builds should go to both MyGet and Azure Devops. 2. Our docs are updated once builds are in both locations. -3. Towards the end of 2020, we stop publising to MyGet. \ No newline at end of file +3. Towards the end of 2020, we stop publising to MyGet. + +# Containers +ASP.Net and .Net Core 5 also publish a container to [Docker Hub](https://hub.docker.com/_/microsoft-dotnet-nightly-aspnet/) as part of their daily feed. We should consider that, along with our samples, in the next iteration of this work. From ebf495022cf486da23dda288a4ef34e70da60a9e Mon Sep 17 00:00:00 2001 From: Chris Mullins Date: Tue, 23 Jun 2020 14:25:32 -0700 Subject: [PATCH 4/5] Markdown fixes for formatting --- specs/DailyBuildProposal.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/specs/DailyBuildProposal.md b/specs/DailyBuildProposal.md index 9cced9f885..e8069a2a0a 100644 --- a/specs/DailyBuildProposal.md +++ b/specs/DailyBuildProposal.md @@ -11,8 +11,10 @@ Use the [ASP.Net Team](https://github.com/dotnet/aspnetcore/blob/master/docs/Dai Move to semver2 and use "." rather than "-" to follow semver2 sorting rules. This [file in ASp.Net Core](https://github.com/dotnet/aspnetcore/blob/3787d7e7f070543cc9368d589a504fa8c4bd4830/eng/Versions.props) can be looked at to learn more. The tags we use for preview versions are: -* -daily..{incrementing value} -* -rc.{0} +``` +-daily..{incrementing value} +-rc.{incrementing value} +``` Note: We are avoding the "-preview" tag for daily builds as we occasionally release "preview" assemblies that have a final semver moniker of "4.10.0-preview". From bb52f9f885e3b61d71c5c6d8d04dfe2abd9693c0 Mon Sep 17 00:00:00 2001 From: BruceHaley Date: Tue, 23 Jun 2020 15:55:38 -0700 Subject: [PATCH 5/5] Fix 3 functional test builds (#4163) * add az group create * Switch to template-with-preexisting-rg.json * Fix template args for az deployment sub create * Fix arg appServicePlanLocation * Try "call az deployment group create" * Fix call az deployment group create #4 * Fix facebook pipeline * Fix facebook call az deployment group create * Fix template reference * Fix webex pipeline * Drop --location "westus" * Fix windows func test build * Fix botgroup * Remove slack refs from windows template * Add message to "Set up directline keys" --- .../template-with-preexisting-rg.json | 154 ++++++++++++++++++ .../ExportedTemplate/template.json | 2 +- .../botbuilder-dotnet-ci-facebook-test.yml | 7 +- .../yaml/botbuilder-dotnet-ci-slack-test.yml | 2 +- .../yaml/botbuilder-dotnet-ci-webex-test.yml | 3 +- ...builder-dotnet-functional-test-windows.yml | 9 +- 6 files changed, 168 insertions(+), 9 deletions(-) create mode 100644 FunctionalTests/ExportedTemplate/template-with-preexisting-rg.json diff --git a/FunctionalTests/ExportedTemplate/template-with-preexisting-rg.json b/FunctionalTests/ExportedTemplate/template-with-preexisting-rg.json new file mode 100644 index 0000000000..aa6cdc2afa --- /dev/null +++ b/FunctionalTests/ExportedTemplate/template-with-preexisting-rg.json @@ -0,0 +1,154 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "appId": { + "type": "string", + "metadata": { + "description": "Active Directory App ID, set as MicrosoftAppId in the Web App's Application Settings." + } + }, + "appSecret": { + "type": "string", + "metadata": { + "description": "Active Directory App Password, set as MicrosoftAppPassword in the Web App's Application Settings. Defaults to \"\"." + } + }, + "botId": { + "type": "string", + "metadata": { + "description": "The globally unique and immutable bot ID. Also used to configure the displayName of the bot, which is mutable." + } + }, + "botSku": { + "type": "string", + "defaultValue": "F0", + "metadata": { + "description": "The pricing tier of the Bot Service Registration. Acceptable values are F0 and S1." + } + }, + "newAppServicePlanName": { + "type": "string", + "defaultValue": "", + "metadata": { + "description": "The name of the new App Service Plan." + } + }, + "newAppServicePlanSku": { + "type": "object", + "defaultValue": { + "name": "S1", + "tier": "Standard", + "size": "S1", + "family": "S", + "capacity": 1 + }, + "metadata": { + "description": "The SKU of the App Service Plan. Defaults to Standard values." + } + }, + "appServicePlanLocation": { + "type": "string", + "metadata": { + "description": "The location of the App Service Plan." + } + }, + "existingAppServicePlan": { + "type": "string", + "defaultValue": "", + "metadata": { + "description": "Name of the existing App Service Plan used to create the Web App for the bot." + } + }, + "newWebAppName": { + "type": "string", + "defaultValue": "", + "metadata": { + "description": "The globally unique name of the Web App. Defaults to the value passed in for \"botId\"." + } + } + }, + "variables": { + "defaultAppServicePlanName": "[if(empty(parameters('existingAppServicePlan')), 'createNewAppServicePlan', parameters('existingAppServicePlan'))]", + "useExistingAppServicePlan": "[not(equals(variables('defaultAppServicePlanName'), 'createNewAppServicePlan'))]", + "servicePlanName": "[if(variables('useExistingAppServicePlan'), parameters('existingAppServicePlan'), parameters('newAppServicePlanName'))]", + "resourcesLocation": "[parameters('appServicePlanLocation')]", + "webAppName": "[if(empty(parameters('newWebAppName')), parameters('botId'), parameters('newWebAppName'))]", + "siteHost": "[concat(variables('webAppName'), '.azurewebsites.net')]", + "botEndpoint": "[concat('https://', variables('siteHost'), '/api/messages')]" + }, + "resources": [ + { + "comments": "Create a new App Service Plan if no existing App Service Plan name was passed in.", + "type": "Microsoft.Web/serverfarms", + "condition": "[not(variables('useExistingAppServicePlan'))]", + "name": "[variables('servicePlanName')]", + "apiVersion": "2018-02-01", + "location": "[variables('resourcesLocation')]", + "sku": "[parameters('newAppServicePlanSku')]", + "properties": { + "name": "[variables('servicePlanName')]" + } + }, + { + "comments": "Create a Web App using an App Service Plan", + "type": "Microsoft.Web/sites", + "apiVersion": "2015-08-01", + "location": "[variables('resourcesLocation')]", + "kind": "app", + "dependsOn": [ + "[resourceId('Microsoft.Web/serverfarms/', variables('servicePlanName'))]" + ], + "name": "[variables('webAppName')]", + "properties": { + "name": "[variables('webAppName')]", + "serverFarmId": "[variables('servicePlanName')]", + "siteConfig": { + "appSettings": [ + { + "name": "WEBSITE_NODE_DEFAULT_VERSION", + "value": "10.14.1" + }, + { + "name": "MicrosoftAppId", + "value": "[parameters('appId')]" + }, + { + "name": "MicrosoftAppPassword", + "value": "[parameters('appSecret')]" + } + ], + "cors": { + "allowedOrigins": [ + "https://botservice.hosting.portal.azure.net", + "https://hosting.onecloud.azure-test.net/" + ] + } + } + } + }, + { + "apiVersion": "2017-12-01", + "type": "Microsoft.BotService/botServices", + "name": "[parameters('botId')]", + "location": "global", + "kind": "bot", + "sku": { + "name": "[parameters('botSku')]" + }, + "properties": { + "name": "[parameters('botId')]", + "displayName": "[parameters('botId')]", + "endpoint": "[variables('botEndpoint')]", + "msaAppId": "[parameters('appId')]", + "developerAppInsightsApplicationId": null, + "developerAppInsightKey": null, + "publishingCredentials": null, + "storageResourceId": null + }, + "dependsOn": [ + "[resourceId('Microsoft.Web/sites/', variables('webAppName'))]" + ] + } + ] +} diff --git a/FunctionalTests/ExportedTemplate/template.json b/FunctionalTests/ExportedTemplate/template.json index 426d129915..06b8284158 100644 --- a/FunctionalTests/ExportedTemplate/template.json +++ b/FunctionalTests/ExportedTemplate/template.json @@ -76,7 +76,7 @@ "resourcesLocation": "[parameters('newAppServicePlanLocation')]", "webAppName": "[if(empty(parameters('newWebAppName')), parameters('botId'), parameters('newWebAppName'))]", "siteHost": "[concat(variables('webAppName'), '.azurewebsites.net')]", - "botEndpoint": "[concat('https://', variables('siteHost'), '/api/mybot')]" + "botEndpoint": "[concat('https://', variables('siteHost'), '/api/messages')]" }, "resources": [ { diff --git a/build/yaml/botbuilder-dotnet-ci-facebook-test.yml b/build/yaml/botbuilder-dotnet-ci-facebook-test.yml index 3e1e4376ec..f35fe657b5 100644 --- a/build/yaml/botbuilder-dotnet-ci-facebook-test.yml +++ b/build/yaml/botbuilder-dotnet-ci-facebook-test.yml @@ -68,12 +68,13 @@ steps: modifyOutputPath: false - task: AzureCLI@1 - displayName: 'Deploy bot to Azure' + displayName: 'Create resources, deploy bot' inputs: - azureSubscription: '$(AzureSubscription)' + azureSubscription: $(AzureSubscription) scriptLocation: inlineScript inlineScript: | - call az deployment create --name "$(FacebookTestBotBotGroup)" --template-file "$(System.DefaultWorkingDirectory)\tests\Adapters\Microsoft.Bot.Builder.Adapters.Facebook.PrimaryTestBot\DeploymentTemplates\template-with-new-rg.json" --location "westus" --parameters appId="$(AppId)" appSecret="$(FacebookTestBotAppSecret)" botId="$(FacebookTestBotBotName)" botSku=F0 newAppServicePlanName="$(FacebookTestBotBotName)" newWebAppName="$(FacebookTestBotBotName)" groupName="$(FacebookTestBotBotGroup)" groupLocation="westus" newAppServicePlanLocation="westus" facebookVerifyToken="verifyToken" facebookAppSecret="$(FacebookTestBotFaceBookAppSecret)" facebookAccessToken="$(FacebookTestBotFacebookAccessToken)" + call az group create --location westus --name $(FacebookTestBotBotGroup) + call az deployment group create --resource-group "$(FacebookTestBotBotGroup)" --template-file "$(System.DefaultWorkingDirectory)\tests\Adapters\Microsoft.Bot.Builder.Adapters.Facebook.PrimaryTestBot\DeploymentTemplates\template-with-preexisting-rg.json" --parameters appId="$(AppId)" appSecret="$(FacebookTestBotAppSecret)" botId="$(FacebookTestBotBotName)" botSku=F0 newAppServicePlanName="$(FacebookTestBotBotName)" newWebAppName="$(FacebookTestBotBotName)" appServicePlanLocation="westus" facebookVerifyToken="verifyToken" facebookAppSecret="$(FacebookTestBotFaceBookAppSecret)" facebookAccessToken="$(FacebookTestBotFacebookAccessToken)" --name "$(FacebookTestBotBotName)" call az webapp deployment source config-zip --resource-group "$(FacebookTestBotBotGroup)" --name "$(FacebookTestBotBotName)" --src "$(System.DefaultWorkingDirectory)\tests\Adapters\Microsoft.Bot.Builder.Adapters.Facebook.PrimaryTestBot\PublishedBot\PublishedBot.zip" - powershell: | diff --git a/build/yaml/botbuilder-dotnet-ci-slack-test.yml b/build/yaml/botbuilder-dotnet-ci-slack-test.yml index 1829359ddb..7e773bb458 100644 --- a/build/yaml/botbuilder-dotnet-ci-slack-test.yml +++ b/build/yaml/botbuilder-dotnet-ci-slack-test.yml @@ -67,7 +67,7 @@ steps: displayName: 'Set Environment Variables' - task: AzureCLI@1 - displayName: 'Create Resources' + displayName: 'Create resources, deploy bot' inputs: azureSubscription: $(AzureSubscription) scriptLocation: inlineScript diff --git a/build/yaml/botbuilder-dotnet-ci-webex-test.yml b/build/yaml/botbuilder-dotnet-ci-webex-test.yml index 87fe4c64b4..648e2408c3 100644 --- a/build/yaml/botbuilder-dotnet-ci-webex-test.yml +++ b/build/yaml/botbuilder-dotnet-ci-webex-test.yml @@ -67,7 +67,8 @@ steps: azureSubscription: '$(AzureSubscription)' scriptLocation: inlineScript inlineScript: | - call az deployment create --name "$(WebexTestBotBotGroup)" --template-file "$(System.DefaultWorkingDirectory)\tests\Adapters\Microsoft.Bot.Builder.Adapters.Webex.TestBot\DeploymentTemplates\template-with-new-rg.json" --location "westus" --parameters appId=$(WebexTestBotAppId) appSecret="$(WebexTestBotAppSecret)" botId="$(WebexTestBotBotName)" botSku=F0 newAppServicePlanName="$(WebexTestBotBotName)" newWebAppName="$(WebexTestBotBotName)" groupName="$(WebexTestBotBotGroup)" groupLocation="westus" newAppServicePlanLocation="westus" webexPublicAddress="$(WebexPublicAddress)" webexAccessToken="$(WebexTestBotWebexBotAccessToken)" webexSecret="$(WebexTestBotWebexWebhookSecret)" webexWebhookName="$(WebexTestBotWebexWebhookName)" + call az group create --location westus --name $(WebexTestBotBotGroup) + call az deployment group create --resource-group "$(WebexTestBotBotGroup)" --template-file "$(System.DefaultWorkingDirectory)\tests\Adapters\Microsoft.Bot.Builder.Adapters.Webex.TestBot\DeploymentTemplates\template-with-preexisting-rg.json" --parameters appId="$(WebexTestBotAppId)" appSecret="$(WebexTestBotAppSecret)" botId="$(WebexTestBotBotName)" botSku=F0 newAppServicePlanName="$(WebexTestBotBotName)" newWebAppName="$(WebexTestBotBotName)" appServicePlanLocation="westus" webexPublicAddress="$(WebexPublicAddress)" webexAccessToken="$(WebexTestBotWebexBotAccessToken)" webexSecret="$(WebexTestBotWebexWebhookSecret)" webexWebhookName="$(WebexTestBotWebexWebhookName)" --name "$(WebexTestBotBotName)" call az webapp deployment source config-zip --resource-group "$(WebexTestBotBotGroup)" --name "$(WebexTestBotBotName)" --src "$(System.DefaultWorkingDirectory)\tests\Adapters\Microsoft.Bot.Builder.Adapters.Webex.TestBot\PublishedBot\PublishedBot.zip" - task: AzureCLI@1 diff --git a/build/yaml/botbuilder-dotnet-functional-test-windows.yml b/build/yaml/botbuilder-dotnet-functional-test-windows.yml index b967a2006e..c3b25424b7 100644 --- a/build/yaml/botbuilder-dotnet-functional-test-windows.yml +++ b/build/yaml/botbuilder-dotnet-functional-test-windows.yml @@ -53,12 +53,13 @@ steps: modifyOutputPath: false - task: AzureCLI@1 - displayName: 'Create Resource Group, deploy bot, create DirectLine channel' + displayName: 'Create resources, deploy bot, create DirectLine channel' inputs: azureSubscription: $(AzureSubscription) scriptLocation: inlineScript inlineScript: | - call az deployment create --name "$(WinTestBotBotGroup)" --template-file "$(System.DefaultWorkingDirectory)\FunctionalTests\ExportedTemplate\template.json" --location "westus" --parameters appId=$(WinTestBotAppId) appSecret="$(WinTestBotAppSecret)" botId="$(WinTestBotBotName)" botSku=F0 newAppServicePlanName="$(WinTestBotBotName)" newWebAppName="$(WinTestBotBotName)" groupName="$(WinTestBotBotGroup)" groupLocation="westus" newAppServicePlanLocation="westus" + call az group create --location westus --name $(WinTestBotBotGroup) + call az deployment group create --resource-group "$(WinTestBotBotGroup)" --template-file "$(System.DefaultWorkingDirectory)\FunctionalTests\ExportedTemplate\template-with-preexisting-rg.json" --parameters appId=$(WinTestBotAppId) appSecret="$(WinTestBotAppSecret)" botId="$(WinTestBotBotName)" botSku=F0 newAppServicePlanName="$(WinTestBotBotName)" newWebAppName="$(WinTestBotBotName)" appServicePlanLocation="westus" --name "$(WinTestBotBotName)" call az webapp deployment source config-zip --resource-group "$(WinTestBotBotGroup)" --name "$(WinTestBotBotName)" --src "$(System.DefaultWorkingDirectory)\tests\Microsoft.Bot.Builder.TestBot\publishedbot\PublishedBot.zip" call az bot directline create -n "$(WinTestBotBotName)" -g "$(WinTestBotBotGroup)" > "$(System.DefaultWorkingDirectory)\DirectLineCreate.json" @@ -67,7 +68,9 @@ steps: $key = $json.properties.properties.sites.key echo "##vso[task.setvariable variable=DIRECTLINE;]$key" echo "##vso[task.setvariable variable=BOTID;]$(WinTestBotBotName)" - displayName: 'Get Bot Keys' + Write-Host "DIRECTLINE=$key"; + Write-Host "BOTID=$(WinTestBotBotName)"; + displayName: 'Set up directline keys' - task: DotNetCoreCLI@2 displayName: 'dotnet test'