DevOps Practices for LUISDevOps practices for LUIS

Os engenheiros de software que estão desenvolvendo um aplicativo de Reconhecimento vocal (LUIS) podem aplicar práticas DevOpss sobre controle do código-fonte, compilações automatizadas, testese Gerenciamento de liberações seguindo estas diretrizes.Software engineers who are developing a Language Understanding (LUIS) app can apply DevOps practices around source control, automated builds, testing, and release management by following these guidelines.

Controle do código-fonte e estratégias de ramificação para LUISSource control and branch strategies for LUIS

Um dos fatores principais dos quais o sucesso do DevOps depende é o controle do código-fonte.One of the key factors that the success of DevOps depends upon is source control. Um sistema de controle do código-fonte permite que os desenvolvedores colaborem no código e controlem as alterações.A source control system allows developers to collaborate on code and to track changes. O uso de branches permite que os desenvolvedores alternem entre diferentes versões da base de código e trabalhem independentemente de outros membros da equipe.The use of branches allows developers to switch between different versions of the code base, and to work independently from other members of the team. Quando os desenvolvedores geram uma solicitação de pull (PR) para propor atualizações de uma ramificação para outra, ou quando as alterações são mescladas, elas podem ser o gatilho para compilações automatizadas para compilar e testar continuamente o código.When developers raise a pull request (PR) to propose updates from one branch to another, or when changes are merged, these can be the trigger for automated builds to build and continuously test code.

Usando os conceitos e diretrizes descritos neste documento, você pode desenvolver um aplicativo LUIS enquanto controla alterações em um sistema de controle do código-fonte e seguir estas práticas recomendadas de engenharia de software:By using the concepts and guidance that are described in this document, you can develop a LUIS app while tracking changes in a source control system, and follow these software engineering best practices:

  • Controle do código-fonteSource Control

    • O código-fonte para seu aplicativo LUIS está em um formato legível.Source code for your LUIS app is in a human-readable format.
    • O modelo pode ser criado a partir da origem de maneira repetitiva.The model can be built from source in a repeatable fashion.
    • O código-fonte pode ser gerenciado por um repositório de código-fonte.The source code can be managed by a source code repository.
    • As credenciais e os segredos, como a criação e as chaves de assinatura, nunca são armazenados no código-fonte.Credentials and secrets such as authoring and subscription keys are never stored in source code.
  • Ramificação e mesclagemBranching and Merging

    • Os desenvolvedores podem trabalhar de ramificações independentes.Developers can work from independent branches.
    • Os desenvolvedores podem trabalhar em várias ramificações simultaneamente.Developers can work in multiple branches concurrently.
    • É possível integrar alterações a um aplicativo LUIS de uma ramificação em outra por meio de troca de base ou mesclagem.It's possible to integrate changes to a LUIS app from one branch into another through rebase or merge.
    • Os desenvolvedores podem mesclar uma PR para a ramificação pai.Developers can merge a PR to the parent branch.
  • Controle de versãoVersioning

    • Cada componente em um aplicativo grande deve ser versionado de forma independente, permitindo que os desenvolvedores detectem alterações significativas ou atualizações apenas observando o número da versão.Each component in a large application should be versioned independently, allowing developers to detect breaking changes or updates just by looking at the version number.
  • Revisões de códigoCode Reviews

    • As alterações na PR são apresentadas como código-fonte legível por humanos que pode ser revisado antes de aceitar a PR.The changes in the PR are presented as human readable source code that can be reviewed before accepting the PR.

Controle do código-fonteSource control

Para manter a definição de esquema de aplicativo de um aplicativo Luis em um sistema de gerenciamento de código-fonte, use a representação de formato LUDown ( .lu ) do aplicativo.To maintain the App schema definition of a LUIS app in a source code management system, use the LUDown format (.lu) representation of the app. .luo formato é preferencial para ser .json formatado porque é legível por humanos, o que torna mais fácil fazer e revisar alterações no PRS..lu format is preferred to .json format because it's human readable, which makes it easier to make and review changes in PRs.

Salvar um aplicativo LUIS usando o formato LUDownSave a LUIS app using the LUDown format

Para salvar um aplicativo LUIS no .lu formato e colocá-lo no controle do código-fonte:To save a LUIS app in .lu format and place it under source control:

  • OU: exporte a versão do aplicativo como .lu no portal do Luis e adicione-a ao seu repositório de controle do código-fonteEITHER: Export the app version as .lu from the LUIS portal and add it to your source control repository

  • OU: Use um editor de texto para criar um .lu arquivo para um aplicativo Luis e adicioná-lo ao seu repositório de controle do código-fonteOR: Use a text editor to create a .lu file for a LUIS app and add it to your source control repository

Dica

Se você estiver trabalhando com a exportação JSON de um aplicativo LUIS, poderá convertê-lo em LUDown usando a CLI BOTBUILDER-Tools Luis.If you are working with the JSON export of a LUIS app, you can convert it to LUDown using the BotBuilder-Tools LUIS CLI. Use a --sort opção para garantir que as intenções e declarações sejam classificadas em ordem alfabética.Use the --sort option to ensure that intents and utterances are sorted alphabetically.
Observe que o **. **A funcionalidade de exportação de Lu interna no portal do Luis já classifica a saída.Note that the .LU export capability built into the LUIS portal already sorts the output.

Criar o aplicativo LUIS da origemBuild the LUIS app from source

Para um aplicativo LUIS, para criar a partir do meio de origem , crie uma nova versão do aplicativo Luis importando a .lu origem , para treinar a versão epublicá-la.For a LUIS app, to build from source means to create a new LUIS app version by importing the .lu source , to train the version and topublish it. Você pode fazer isso no portal do LUIS ou na linha de comando:You can do this in the LUIS portal, or at the command line:

Arquivos a serem mantidos no controle do código-fonteFiles to maintain under source control

Os seguintes tipos de arquivos para seu aplicativo LUIS devem ser mantidos sob controle do código-fonte:The following types of files for your LUIS application should be maintained under source control:

Não há check-in de credenciais e chavesCredentials and keys are not checked in

Não inclua chaves de assinatura ou valores confidenciais semelhantes em arquivos que você faz check-in em seu repositório, onde eles podem estar visíveis para pessoas não autorizadas.Do not include subscription keys or similar confidential values in files that you check in to your repo where they might be visible to unauthorized personnel. As chaves e outros valores que você deve impedir do check-in incluem:The keys and other values that you should prevent from check-in include:

  • Chaves de criação e previsão do LUISLUIS Authoring and Prediction keys
  • Pontos de extremidade de criação e previsão do LUISLUIS Authoring and Prediction endpoints
  • Chaves de assinatura do AzureAzure subscription keys
  • Tokens de acesso, como o token para uma entidade de serviço do Azure usada para autenticação de automaçãoAccess tokens, such as the token for an Azure service principal used for automation authentication

Estratégias para o gerenciamento seguro de segredosStrategies for securely managing secrets

As estratégias para o gerenciamento seguro de segredos incluem:Strategies for securely managing secrets include:

  • Se você estiver usando o controle de versão do git, poderá armazenar os segredos de tempo de execução em um arquivo local e impedir o check-in do arquivo adicionando um padrão para corresponder o nome de arquivo a um arquivos . gitignoreIf you're using Git version control, you can store runtime secrets in a local file and prevent check in of the file by adding a pattern to match the filename to a .gitignore file
  • Em um fluxo de trabalho de automação, você pode armazenar segredos com segurança na configuração de parâmetros oferecida por essa tecnologia de automação.In an automation workflow, you can store secrets securely in the parameters configuration offered by that automation technology. Por exemplo, se você estiver usando ações do GitHub, poderá armazenar segredos com segurança nos segredos do GitHub.For example, if you're using GitHub Actions, you can store secrets securely in GitHub secrets.

Ramificação e mesclagemBranching and merging

Os sistemas de controle de versão distribuídos, como o Git, oferecem flexibilidade para a publicação, o compartilhamento, a análise e a iteração de alterações de código por meio de branches de desenvolvimento compartilhados com outras pessoas.Distributed version control systems like Git give flexibility in how team members publish, share, review, and iterate on code changes through development branches shared with others. Adote uma estratégia de ramificação git apropriada para sua equipe.Adopt a Git branching strategy that is appropriate for your team.

Seja qual for a estratégia de ramificação que você adotar, um princípio fundamental de todos eles é que os membros da equipe podem trabalhar na solução dentro de um Branch de recursos independentemente do trabalho que está acontecendo em outras ramificações.Whichever branching strategy you adopt, a key principle of all of them is that team members can work on the solution within a feature branch independently from the work that is going on in other branches.

Para dar suporte a trabalho independente em branches com um projeto LUIS:To support independent working in branches with a LUIS project:

  • O Branch mestre tem seu próprio aplicativo LUIS.The master branch has its own LUIS app. Este aplicativo representa o estado atual de sua solução para seu projeto e sua versão ativa atual sempre deve mapear para a .lu origem que está no Branch mestre.This app represents the current state of your solution for your project and its current active version should always map to the .lu source that is in the master branch. Todas as atualizações na .lu origem para esse aplicativo devem ser examinadas e testadas para que esse aplicativo possa ser implantado para criar ambientes como a produção a qualquer momento.All updates to the .lu source for this app should be reviewed and tested so that this app could be deployed to build environments such as Production at any time. Quando as atualizações do .lu são mescladas no mestre de um Branch de recurso, você deve criar uma nova versão no aplicativo Luis e aumentar o número de versão.When updates to the .lu are merged into master from a feature branch, you should create a new version in the LUIS app and bump the version number.

  • Cada ramificação de recurso deve usar sua própria instância de um aplicativo Luis.Each feature branch must use its own instance of a LUIS app. Os desenvolvedores trabalham com esse aplicativo em uma ramificação de recursos sem o risco de afetar os desenvolvedores que trabalham em outras ramificações.Developers work with this app in a feature branch without risk of affecting developers who are working in other branches. Este aplicativo de ' ramificação de desenvolvimento ' é uma cópia funcional que deve ser excluída quando a ramificação de recurso é excluída.This 'dev branch' app is a working copy that should be deleted when the feature branch is deleted.

Ramificação de recurso git

Os desenvolvedores podem trabalhar de ramificações independentesDevelopers can work from independent branches

Os desenvolvedores podem trabalhar em atualizações em um aplicativo LUIS independentemente de outros branches:Developers can work on updates on a LUIS app independently from other branches by:

  1. Criar uma ramificação de recurso a partir da ramificação principal (dependendo da sua estratégia de Branch, geralmente mestre ou desenvolvimento).Creating a feature branch from the main branch (depending on your branch strategy, usually master or develop).

  2. Crie um novo aplicativo Luis no portal do Luis (o "aplicativo de ramificação de desenvolvimento") somente para dar suporte ao trabalho na ramificação de recurso.Create a new LUIS app in the LUIS portal (the "dev branch app") solely to support the work in the feature branch.

    • Se a .lu origem da sua solução já existir em seu Branch, pois ela foi salva após o trabalho feito em outra ramificação anterior no projeto, crie seu aplicativo Luis Branch de desenvolvimento importando o .lu arquivo.If the .lu source for your solution already exists in your branch, because it was saved after work done in another branch earlier in the project, create your dev branch LUIS app by importing the .lu file.

    • Se você estiver iniciando o trabalho em um novo projeto, ainda não terá a .lu origem do seu aplicativo Luis mestre no repositório.If you are starting work on a new project, you will not yet have the .lu source for your master LUIS app in the repo. Você criará o .lu arquivo exportando seu aplicativo de Branch de desenvolvimento do portal quando tiver concluído o trabalho de ramificação de recursos e o enviará como parte de sua pr.You will create the .lu file by exporting your dev branch app from the portal when you have completed your feature branch work, and submit it as a part of your PR.

  3. Trabalhe na versão ativa do seu aplicativo de Branch de desenvolvimento para implementar as alterações necessárias.Work on the active version of your dev branch app to implement the required changes. É recomendável que você trabalhe apenas em uma única versão do seu aplicativo de ramificação de desenvolvimento para todo o trabalho de ramificação de recursos.We recommend that you work only in a single version of your dev branch app for all the feature branch work. Se você criar mais de uma versão em seu aplicativo de Branch de desenvolvimento, tenha cuidado para controlar qual versão contém as alterações que você deseja fazer check-in ao gerar sua PR.If you create more than one version in your dev branch app, be careful to track which version contains the changes you want to check in when you raise your PR.

  4. Testar as atualizações-consulte Testing for Luis DevOps para obter detalhes sobre como testar seu aplicativo de Branch de desenvolvimento.Test the updates - see Testing for LUIS DevOps for details on testing your dev branch app.

  5. Exporte a versão ativa do seu aplicativo de Branch .lu de desenvolvimento da lista de versões.Export the active version of your dev branch app as .lu from the versions list.

  6. Faça check-in de suas atualizações e convide a revisão de pares de suas atualizações.Check in your updates and invite peer review of your updates. Se você estiver usando o GitHub, você gerará uma solicitação de pull.If you're using GitHub, you'll raise a pull request.

  7. Quando as alterações forem aprovadas, mescle as atualizações no Branch mestre.When the changes are approved, merge the updates into the master branch. Neste ponto, você criará uma nova versão do aplicativo Master Luis, usando a atualização .lu no mestre.At this point, you will create a new version of the master LUIS app, using the updated .lu in master. Consulte controle de versão para obter considerações sobre como definir o nome da versão.See Versioning for considerations on setting the version name.

  8. Quando o Branch de recurso é excluído, é uma boa ideia excluir o aplicativo LUIS Branch de desenvolvimento que você criou para o trabalho de ramificação de recursos.When the feature branch is deleted, it's a good idea to delete the dev branch LUIS app you created for the feature branch work.

Os desenvolvedores podem trabalhar em várias ramificações simultaneamenteDevelopers can work in multiple branches concurrently

Se você seguir o padrão descrito acima em os desenvolvedores puderem trabalhar de ramificações independentes, você usará um aplicativo Luis exclusivo em cada ramificação de recurso.If you follow the pattern described above in Developers can work from independent branches, then you will use a unique LUIS application in each feature branch. Um único desenvolvedor pode trabalhar em várias ramificações simultaneamente, desde que mudem para o aplicativo LUIS de Branch de desenvolvimento correto para o Branch no qual estão trabalhando no momento.A single developer can work on multiple branches concurrently, as long as they switch to the correct dev branch LUIS app for the branch they're currently working on.

É recomendável que você use o mesmo nome para o Branch de recurso e para o aplicativo LUIS Branch de desenvolvimento que você cria para o trabalho de ramificação de recursos, para tornar menos provável que você trabalhe acidentalmente no aplicativo errado.We recommend that you use the same name for both the feature branch and for the dev branch LUIS app that you create for the feature branch work, to make it less likely that you'll accidentally work on the wrong app.

Conforme observado acima, recomendamos que, para simplificar, você trabalhe em uma única versão em cada aplicativo de Branch de desenvolvimento.As noted above, we recommend that for simplicity, you work in a single version in each dev branch app. Se você estiver usando várias versões, tome cuidado para ativar a versão correta conforme alternar entre os aplicativos de Branch de desenvolvimento.If you are using multiple versions, take care to activate the correct version as you switch between dev branch apps.

Vários desenvolvedores podem trabalhar na mesma ramificação simultaneamenteMultiple developers can work on the same branch concurrently

Você pode dar suporte a vários desenvolvedores que trabalham na mesma ramificação de recursos ao mesmo tempo:You can support multiple developers working on the same feature branch at the same time:

  • Os desenvolvedores verificam o mesmo Branch de recursos e enviam por push e efetuam pull de alterações enviadas por si mesmos e por outros desenvolvedores enquanto o trabalho continua, como de costume.Developers check out the same feature branch and push and pull changes submitted by themselves and other developers while work proceeds, as normal.

  • Se você seguir o padrão descrito acima em os desenvolvedores puderem trabalhar de ramificações independentes, essa ramificação usará um aplicativo Luis exclusivo para dar suporte ao desenvolvimento.If you follow the pattern described above in Developers can work from independent branches, then this branch will use a unique LUIS application to support development. Esse aplicativo LUIS ' Branch de desenvolvimento ' será criado pelo primeiro membro da equipe de desenvolvimento que começa a trabalhar na ramificação de recursos.That 'dev branch' LUIS app will be created by the first member of the development team who begins work in the feature branch.

  • Adicione membros da equipe como colaboradores ao aplicativo Luis Branch de desenvolvimento.Add team members as contributors to the dev branch LUIS app.

  • Quando o trabalho de ramificação de recursos for concluído, exporte a versão ativa do aplicativo LUIS Branch de desenvolvimento como .lu na lista versões, salve o .lu arquivo atualizado no repositório e faça check-in e PR as alterações.When the feature branch work is complete, export the active version of the dev branch LUIS app as .lu from the versions list, save the updated .lu file in the repo, and check in and PR the changes.

Incorporando alterações de uma ramificação para outra com a troca de base ou mesclagemIncorporating changes from one branch to another with rebase or merge

Alguns outros desenvolvedores da sua equipe que trabalham em outra ramificação podem ter feito atualizações na .lu origem e mesclá-los no Branch mestre após a criação do Branch de recursos.Some other developers on your team working in another branch may have made updates to the .lu source and merged them to the master branch after you created your feature branch. Talvez você queira incorporar suas alterações em sua versão de trabalho antes de continuar a fazer alterações no seu Branch de recursos.You may want to incorporate their changes into your working version before you continue to make own changes within your feature branch. Você pode fazer isso rebasear ou mesclar para o mestre da mesma maneira que qualquer outro ativo de código.You can do this by rebase or merge to master in the same way as any other code asset. Como o aplicativo LUIS no formato LUDown é legível por humanos, ele dá suporte à mesclagem usando ferramentas de mesclagem padrão.Since the LUIS app in LUDown format is human readable, it supports merging using standard merge tools.

Siga estas dicas se estiver rebaseando seu aplicativo LUIS em uma ramificação de recurso:Follow these tips if you're rebasing your LUIS app in a feature branch:

  • Antes de trocar de base ou mesclar, certifique-se de que sua cópia local da .lu origem do seu aplicativo tenha todas as alterações mais recentes que você aplicou usando o portal do Luis, exportando novamente seu aplicativo do portal primeiro.Before you rebase or merge, make sure your local copy of the .lu source for your app has all your latest changes that you've applied using the LUIS portal, by re-exporting your app from the portal first. Dessa forma, você pode garantir que todas as alterações feitas no portal e ainda não exportadas não sejam perdidas.That way, you can make sure that any changes you've made in the portal and not yet exported don't get lost.

  • Durante a mesclagem, use ferramentas padrão para resolver conflitos de mesclagem.During the merge, use standard tools to resolve any merge conflicts.

  • Não se esqueça depois que a troca de base ou a mesclagem estiver concluída para importar novamente o aplicativo de volta para o portal, para que você esteja trabalhando com o aplicativo atualizado enquanto você continua a aplicar suas próprias alterações.Don't forget after rebase or merge is complete to re-import the app back into the portal, so that you're working with the updated app as you continue to apply your own changes.

Mesclar PRsMerge PRs

Depois que sua PR for aprovada, você poderá mesclar suas alterações em seu Branch mestre.After your PR is approved, you can merge your changes to your master branch. Nenhuma consideração especial se aplica à origem do LUDown para um aplicativo LUIS: é legível por humanos e, portanto, dá suporte à mesclagem usando ferramentas de mesclagem padrão.No special considerations apply to the LUDown source for a LUIS app: it's human readable and so supports merging using standard Merge tools. Quaisquer conflitos de mesclagem podem ser resolvidos da mesma maneira que com outros arquivos de origem.Any merge conflicts may be resolved in the same way as with other source files.

Depois que sua PR foi mesclada, é recomendável limpar:After your PR has been merged, it's recommended to cleanup:

  • Excluir a ramificação em seu repositórioDelete the branch in your repo

  • Exclua o aplicativo LUIS ' Branch de desenvolvimento ' criado para o trabalho de ramificação de recurso.Delete the 'dev branch' LUIS app you created for the feature branch work.

Da mesma maneira que com os ativos de código do aplicativo, você deve escrever testes de unidade para acompanhar as atualizações do aplicativo LUIS.In the same way as with application code assets, you should write unit tests to accompany LUIS app updates. Você deve empregar fluxos de trabalho de integração contínua para testar:You should employ continuous integration workflows to test:

  • Atualizações em uma PR antes de a PR ser mescladaUpdates in a PR before the PR is merged
  • O aplicativo LUIS da ramificação mestre após uma PR foi aprovado e as alterações foram mescladas no mestre.The master branch LUIS app after a PR has been approved and the changes have been merged into master.

Para obter mais informações sobre o teste do LUIS DevOps, consulte Testing for DevOps for Luis.For more information on testing for LUIS DevOps, see Testing for DevOps for LUIS. Para obter mais detalhes sobre como implementar fluxos de trabalho, consulte fluxos de trabalho de automação para Luis DevOps.For more details on implementing workflows, see Automation workflows for LUIS DevOps.

Revisões de códigoCode reviews

Um aplicativo LUIS no formato LUDown é legível por humanos, que dá suporte à comunicação de alterações em uma PR, adequada para revisão.A LUIS app in LUDown format is human readable, which supports the communication of changes in a PR suitable for review. Os arquivos de teste de unidade também são escritos no formato LUDown e também podem ser facilmente reexibidos em uma PR.Unit test files are also written in LUDown format and also easily reviewable in a PR.

Controle de versãoVersioning

Um aplicativo consiste em vários componentes que podem incluir coisas como um bot em execução no serviço de bot do Azure, QnA Maker, serviço de fala do Azuree muito mais.An application consists of multiple components that might include things such as a bot running in Azure Bot Service, QnA Maker, Azure Speech service, and more. Para atingir o objetivo de aplicativos menos rígidos, use o controle de versão para que cada componente de um aplicativo tenha versão independente, permitindo que os desenvolvedores detectem alterações significativas ou atualizações apenas examinando o número de versão.To achieve the goal of loosely coupled applications, use version control so that each component of an application is versioned independently, allowing developers to detect breaking changes or updates just by looking at the version number. É mais fácil fazer a versão do seu aplicativo LUIS independentemente de outros componentes, se você o mantiver em seu próprio repositório.It's easier to version your LUIS app independently from other components if you maintain it in its own repo.

O aplicativo LUIS para o Branch mestre deve ter um esquema de controle de versão aplicado.The LUIS app for the master branch should have a versioning scheme applied. Ao mesclar atualizações para o .lu para um aplicativo Luis no mestre, você importará essa origem atualizada para uma nova versão no aplicativo Luis para a ramificação mestre.When you merge updates to the .lu for a LUIS app into master, you'll then import that updated source into a new version in the LUIS app for the master branch.

É recomendável que você use um esquema de controle de versão numérico para a versão do aplicativo LUIS mestre, por exemplo:It is recommended that you use a numeric versioning scheme for the master LUIS app version, for example:

major.minor[.build[.revision]]

Cada atualização do número de versão é incrementada no último dígito.Each update the version number is incremented at the last digit.

A versão principal/secundária pode ser usada para indicar o escopo das alterações na funcionalidade do aplicativo LUIS:The major / minor version can be used to indicate the scope of the changes to the LUIS app functionality:

  • Versão principal: uma alteração significativa, como suporte para uma nova tentativa ou entidadeMajor Version: A significant change, such as support for a new Intent or Entity
  • Versão secundária: uma alteração secundária compatível com versões anteriores, como após um novo treinamento significativoMinor Version: A backwards-compatible minor change, such as after significant new training
  • Compilação: nenhuma alteração de funcionalidade, apenas uma compilação diferente.Build: No functionality change, just a different build.

Depois de determinar o número de versão para a revisão mais recente do seu aplicativo LUIS mestre, você precisará criar e testar a nova versão do aplicativo e publicá-la em um ponto de extremidade onde ela possa ser usada em diferentes ambientes de compilação, como garantia de qualidade ou produção.Once you've determined the version number for the latest revision of your master LUIS app, you need to build and test the new app version, and publish it to an endpoint where it can be used in different build environments, such as Quality Assurance or Production. É altamente recomendável que você automatize todas essas etapas em um fluxo de trabalho de CI (integração contínua).It's highly recommended that you automate all these steps in a continuous integration (CI) workflow.

Consulte:See:

Controle de versão do aplicativo LUIS ' ramificação de recurso 'Versioning the 'feature branch' LUIS app

Quando você estiver trabalhando com um aplicativo LUIS "Branch de desenvolvimento" que você criou para dar suporte ao trabalho em uma ramificação de recursos, você exportará seu aplicativo quando seu trabalho for concluído e você incluirá o atualizado 'lu em seu pr.When you are working with a 'dev branch' LUIS app that you've created to support work in a feature branch, you will be exporting your app when your work is complete and you will include the updated 'lu in your PR. A ramificação em seu repositório e o aplicativo LUIS ' Branch de desenvolvimento ' devem ser excluídos depois que a PR é mesclada no mestre.The branch in your repo, and the 'dev branch' LUIS app should be deleted after the PR is merged into master. Como esse aplicativo existe apenas para dar suporte ao trabalho na ramificação de recursos, não há nenhum esquema de controle de versão específico que você precise aplicar nesse aplicativo.Since this app exists solely to support the work in the feature branch, there's no particular versioning scheme you need to apply within this app.

Quando as alterações na sua PR são mescladas no mestre, isso ocorre quando o controle de versão deve ser aplicado, de modo que todas as atualizações para o mestre tenham controle de versão de forma independente.When your changes in your PR are merged into master, that is when the versioning should be applied, so that all updates to master are versioned independently.

Próximas etapasNext steps