<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Aura – </title>
    <link>/docs/developers-workspace/develop-features/release-train-manager/branch-configuration/</link>
    <description>Recent content on Aura</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    
	  <atom:link href="/docs/developers-workspace/develop-features/release-train-manager/branch-configuration/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Docs: </title>
      <link>/docs/developers-workspace/develop-features/release-train-manager/branch-configuration/main-branches-stages/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/developers-workspace/develop-features/release-train-manager/branch-configuration/main-branches-stages/</guid>
      <description>
        
        
        &lt;h1 id=&#34;main-branches-stages&#34;&gt;Main branches stages&lt;/h1&gt;


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;Description of the different stages for &lt;strong&gt;main branches&lt;/strong&gt; in the Release Train Manager&lt;/p&gt;

&lt;/div&gt;

&lt;!-- See layouts\shortcodes\custom-markmap.html to view all parameters --&gt;
&lt;p&gt;The following diagram shows the Release Train Manager stages for &lt;strong&gt;main branches&lt;/strong&gt;:&lt;/p&gt;



&lt;style&gt;
    svg.markmap {
      width: 85%;
      height: 700px;    
      margin: 0 auto; 
      display: block;  
    }
  &lt;/style&gt;
&lt;div class=&#34;markmap&#34;&gt;
    &lt;script type=&#34;text/template&#34;&gt;
---
markmap:
  maxWidth: 800
  colorFreezeLevel: 2
  initialExpandLevel: 1
  autoFit: false
  duration: 500
  embedGlobalCSS: true
  fitRatio: 0.95
  nodeMinHeight: 16
  paddingX: 8
  scrollForPan: isMacintosh
  spacingHorizontal: 80
  spacingVertical: 5
  zoom: true
  pan: true
  color: [white, yellow, green, Cyan, red, DeepPink]
---
      


# Main Branches Stages

## [INIT](#main-init-stage)

### [Bot](#init-bot-steps)
 - [install-dependencies](#bot-install-dependencies)
 - [create-branch](#create-branch)
 - [store-locales](#bot-store-locales)
 - [prepare-repository](#bot-prepare-repository)
 - [create_changelog](#bot-create_changelog)
 - [protect-branch](#protect-branch)
 - [install-tools](#bot-install-tools)
 ### [QA](#init-qa-steps)
 - [create-branch](#create-branch)
 - [prepare-repository](#qa-prepare-repository)
 - [protect-branch](#protect-branch)

 ### [DevOps](#init-devops-steps)
 - [create-branch](#create-branch)
 - [initial-commit](#devops-initial-commit)
 - [check-environment](#devops-check-environment)
 - [create-environment](#devops-create-environment)
 - [deploy-environment](#devops-deploy-environment)
 - [upload-environment-files](#devops-upload-environment-files)
 - [protect-tests-branch](#protect-branch)
 - [protect-branch](#protect-branch)

 ## [START](#start)
 ### [Bot](#start-bot-steps)
 - [unprotect-branch](#unprotect-branch)
 - [trigger-deploy-components](#bot-trigger-deploy-components)
 - [protect-branch](#protect-branch)
 - [validate-deploy-component](#bot-validate-deploy-component)

 ### [QA](#start-qa-steps)
 - [create-branch](#create-branch)
 - [prepare-repository](#qa-prepare-repository)
 - [protect-branch](#protect-branch)
 ## [PREPARE TO MERGE](#prepare-to-merge)
 ### [Bot](#prepare-to-merge-bot-steps)
 - [update-locales](#bot-update-locales)
 - [check-conflicts](#check-conflicts)
 - [merge-and-update-versions](#bot-merge-and-update-versions)
 - [publish-modules](#bot-publish-modules)
 - [trigger-deploy-components](#bot-trigger-deploy-components)
 - [validate-deploy-component](#bot-validate-deploy-component)
 ### [QA](#prepare-to-merge-qa-steps)
 - [check-conflicts](#check-conflicts)
 - [merge-and-update-versions](#bot-merge-and-update-versions)
 - [publish-modules](#bot-publish-modules)
 - [trigger-deploy-components](#bot-trigger-deploy-components)
 - [validate-deploy-component](#bot-validate-deploy-component)
 ### [DEVOPS](#prepare-to-merge-devops-steps)
 - [check-conflicts](#check-conflicts)
 - [merge-and-update-versions](#bot-merge-and-update-versions)
 - [publish-modules](#bot-publish-modules)
 - [trigger-deploy-components](#bot-trigger-deploy-components)
 - [validate-deploy-component](#bot-validate-deploy-component)
 ## [CLOSE](#close)
 ### [Bot](#close-bot-steps)
 - [unprotect-branch](#unprotect-branch)
 - [prepare-versions-to-master](#bot-prepare-versions-to-master)
 - [merge-to-master](#bot-merge-to-master)
 - [validate-deploy-component](#bot-validate-deploy-component)
 ### [QA](#close-qa-steps)
 - [create-branch](#create-branch)
 - [prepare-repository](#qa-prepare-repository)
 - [protect-branch](#protect-branch)
 ### [DevOps](#close-devops-steps)
 - [create-branch](#descritionInitBotProtectBranch)
 - [initial-commit](#descritionInitBotProtectBranch)
 - [check-environment](#descritionInitBotProtectBranch)
 - [create-environment](#descritionInitBotProtectBranch)
 - [deploy-environment](#descritionInitBotProtectBranch)
 - [upload-environment-files](#descritionInitBotProtectBranch)
 - [protect-tests-branch](#descritionInitBotProtectBranch)
 - [protect-branch](#descritionInitBotProtectBranch)
 ## [FINALIZE](#finalize)
 ### [Bot](#finalize-bot-steps)
 - [remove-main-branches](#remove-main-branches)
 - [uninstall-tools](#uninstall-tools)
 - [remove-packages](#remove-packages)


    &lt;/script&gt;
  &lt;/div&gt;


&lt;p&gt;All phases of the main branches are managed by the workflow:
&lt;code&gt;.github/workflows/push-to-main.yml&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yml&#34; data-lang=&#34;yml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;Push To Main&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;on&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;push&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;branches&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;main/**&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;hotfix/**&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;jobs&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;load-configuration&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;########&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# INIT #&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;########&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;prepare-init-process&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;protect_branch_main&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;init-bot-module&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;init-devops-module&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;init-legacy-module&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;init-models-module&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;init-nlp-module&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;init-training-nlp-module&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;init-qa-module&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;#########&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# START #&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;#########&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;start-bot-module&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;start-qa-module&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;####################&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# PREPARE TO MERGE #&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;####################&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;block-close&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;prepare-to-merge-bot-module&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;prepare-to-merge-training-nlp-module&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;prepare-to-merge-qa-module&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;prepare-to-merge-legacy-module&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;prepare-to-merge-devops-module&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;#########&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# CLOSE #&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;#########&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;close-bot-module&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;close-devops-module&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;close-qa-module&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;close-legacy-module&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;close-nlp-module&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;close-training-nlp-module&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;############&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# FINALIZE #&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;############&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;finalize-bot-module&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;process-result&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;main-init-stage&#34;&gt;Main Init stage&lt;/h2&gt;
&lt;p&gt;In this phase, the branches are generated in the repositories and, if there is a configured environment, it will be deployed. As in every stage, each team defines its own steps, but some of them are shared and executed by any of the teams.&lt;/p&gt;
&lt;h3 id=&#34;common-steps&#34;&gt;Common steps&lt;/h3&gt;
&lt;h4 id=&#34;create-branch&#34;&gt;Create branch&lt;/h4&gt;
&lt;p&gt;This step gets the list of repositories of the team (from &lt;code&gt;branch-config.yml&lt;/code&gt; file, &lt;code&gt;teams.*.repositories&lt;/code&gt;) which step is being executed and creates the corresponding &lt;strong&gt;main branch&lt;/strong&gt; in all of them. If the branch already exists, it just goes on.&lt;/p&gt;
&lt;h4 id=&#34;protect-branch&#34;&gt;Protect Branch&lt;/h4&gt;
&lt;p&gt;Once all the initial changes are applied in each package of each &lt;strong&gt;main branch&lt;/strong&gt;, they are protected to force the creation of a Pull Request to merge changes on them. It is executed after every stage of the RTM, because it needs the branch to be unprotected during its execution, to make changes automatically.&lt;/p&gt;
&lt;h4 id=&#34;unprotect-branch&#34;&gt;Unprotect Branch&lt;/h4&gt;
&lt;p&gt;RTM stages need to remove repositories&amp;rsquo; branches protection to apply changes automatically in the code. It is executed at the beginning of almost any stage of the RTM.&lt;/p&gt;
&lt;h4 id=&#34;check-conflicts&#34;&gt;Check conflicts&lt;/h4&gt;
&lt;p&gt;This step is executed during &lt;code&gt;prepare-to-master&lt;/code&gt; stage to check if there is any conflict between &lt;strong&gt;master&lt;/strong&gt; and the &lt;strong&gt;main branch&lt;/strong&gt; in any configured repository. Any conflict will be reflected in the RTM as a message in the corresponding PR.&lt;/p&gt;
&lt;h3 id=&#34;init-bot-steps&#34;&gt;Init Bot Steps&lt;/h3&gt;
&lt;h4 id=&#34;bot-install-dependencies&#34;&gt;Bot: Install dependencies&lt;/h4&gt;
&lt;p&gt;In this step, the dependencies defined in &lt;code&gt;teams.bot.dependencies&lt;/code&gt; are installed. The &lt;code&gt;tgz&lt;/code&gt; of the NPM module is obtained and installed in the Github repository. This is necessary because the main branch works in isolation and uses Github as the main repository.&lt;/p&gt;
&lt;h4 id=&#34;bot-store-locales&#34;&gt;Bot: Store Locales&lt;/h4&gt;
&lt;p&gt;In this step, all the locales files of every package in every repository are stored in DB. They are stored in the collection called &lt;code&gt;branch-locales&lt;/code&gt;.&lt;/p&gt;
&lt;h4 id=&#34;bot-prepare-repository&#34;&gt;Bot: Prepare Repository&lt;/h4&gt;
&lt;p&gt;In this step, all the dependencies of every package in every repository are updated. Internal &lt;strong&gt;node&lt;/strong&gt; packages (those belonging to &lt;code&gt;@telefonica&lt;/code&gt; NPM organization) in &lt;strong&gt;master&lt;/strong&gt; branch are read from &lt;code&gt;npm&lt;/code&gt; registry and a &lt;code&gt;x.y.z&lt;/code&gt; version is used. But each &lt;strong&gt;main branch&lt;/strong&gt; uses for the internal dependencies a private GitHub &lt;code&gt;npm&lt;/code&gt; registry and the dependencies are tagged with the &lt;code&gt;decodedName&lt;/code&gt; of the branch: &lt;code&gt;version: 7.5.0-main-my-feature.0&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Packages are read in order, so first those packages without internal dependencies are processed. They are published in GitHub registry and those packages depending on them are then processed, going on recursively.&lt;/p&gt;
&lt;h4 id=&#34;bot-create-changelog&#34;&gt;Bot: Create Changelog&lt;/h4&gt;
&lt;p&gt;This step is responsible for creating the changelog scaffolding for the current version.&lt;/p&gt;
&lt;h4 id=&#34;bot-install-tools&#34;&gt;Bot: Install Tools&lt;/h4&gt;
&lt;p&gt;A new project is created in &lt;a href=&#34;https://poeditor.com&#34;&gt;POEditor&lt;/a&gt; to include the language resources to be contained in this &lt;strong&gt;main branch&lt;/strong&gt;. The project is created by &lt;em&gt;&lt;a href=&#34;mailto:auradev@tid.es&#34;&gt;auradev@tid.es&lt;/a&gt;&lt;/em&gt; user and its name will be the branch decoded name: &lt;code&gt;main/feature-desc#id -&amp;gt; main-feature-desc-id&lt;/code&gt;. This project is intended to contain all the changes (creations or updates) of locales for the issues being resolved in this &lt;strong&gt;main branch&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;main-start-stage&#34;&gt;Main Start stage&lt;/h2&gt;
&lt;p&gt;In this phase, all the components configured in &lt;code&gt;branch-config.yml&lt;/code&gt; and that were prepared during the &lt;strong&gt;init stage&lt;/strong&gt; will be deployed if an environment has been configured for the current branch. Afterwards, the &lt;strong&gt;sanity test plan&lt;/strong&gt; is launched just to validate that the environment is properly settled. If no environment is configured (for instance, if a branch is just to review documentation or to prepare something specifically for a given OB, such as language trainings) tests are not executed.&lt;/p&gt;
&lt;h3 id=&#34;start-bot-steps&#34;&gt;Start Bot Steps&lt;/h3&gt;
&lt;h4 id=&#34;bot-trigger-deploy-components&#34;&gt;Bot: Trigger Deploy Components&lt;/h4&gt;
&lt;p&gt;A push is launched in the repositories of the components to force them to be deployed from CI job running in Jenkins. After each component is deployed, Jenkins sends a notification to GitHub to inform of the status, that is updated in the RTM API database.&lt;/p&gt;
&lt;h4 id=&#34;bot-validate-deploy-components&#34;&gt;Bot: Validate Deploy Components&lt;/h4&gt;
&lt;p&gt;This step is in charge of validating that all the components that are configured for the current branch have been deployed. It reads the information from the RTM API database that is updated with every notification from Jenkins, as explained in the previous step.&lt;/p&gt;
&lt;h2 id=&#34;main-prepare-to-merge-stage&#34;&gt;Main Prepare-To-Merge stage&lt;/h2&gt;
&lt;p&gt;This phase aims to merge &lt;strong&gt;master&lt;/strong&gt; changes in the current &lt;strong&gt;main branch&lt;/strong&gt;, deploy the updated version in the branch in configured environment, if exists, and launch the complete functional test plan to validate the full code base before merging to &lt;strong&gt;master&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&#34;prepare-to-merge-bot-steps&#34;&gt;Prepare-To-Merge Bot Steps&lt;/h3&gt;
&lt;h4 id=&#34;bot-update-locales&#34;&gt;Bot: Update Locales&lt;/h4&gt;
&lt;p&gt;This step is in charge of updating the locales files in all repositories doing a merge into the main poEditor project and Aura-Bot PoEditor project.&lt;/p&gt;
&lt;h4 id=&#34;bot-merge-and-update-versions&#34;&gt;Bot: Merge and Update Versions&lt;/h4&gt;
&lt;p&gt;Once the eventual conflicts have been resolved in all repositories configured in the branch, the content of &lt;strong&gt;master&lt;/strong&gt; and &lt;strong&gt;main branches&lt;/strong&gt; are merged together. In the happening of any change, tagged versions are automatically updated to provoke a new deployment of the components.&lt;/p&gt;
&lt;h4 id=&#34;bot-publish-modules&#34;&gt;Bot: Publish Modules&lt;/h4&gt;
&lt;p&gt;If new versions have been generated in any of the bot &lt;code&gt;npm&lt;/code&gt; libraries, a new version of them is published and updated in all the components.&lt;/p&gt;
&lt;h2 id=&#34;main-close-stage&#34;&gt;Main Close stage&lt;/h2&gt;
&lt;p&gt;In this phase, all the components will be deployed in &lt;strong&gt;master&lt;/strong&gt; and the libraries published in NPM. The versions of the modules will be updated if the repositories have been changed along the development in the &lt;strong&gt;main branch&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&#34;close-bot-steps&#34;&gt;Close Bot Steps&lt;/h3&gt;
&lt;h4 id=&#34;bot-prepare-versions-to-master&#34;&gt;Bot: Prepare versions to master&lt;/h4&gt;
&lt;p&gt;As already mentioned, bot versions in &lt;strong&gt;master&lt;/strong&gt; are not tagged but in &lt;code&gt;x.y.z&lt;/code&gt; format. This step calculates the next version of each library and component automatically depending on the existing version in &lt;strong&gt;master&lt;/strong&gt;, the original semantic version and the number of changes in its tagged version in the &lt;strong&gt;main branch&lt;/strong&gt;. If a library or a component has been updated in a &lt;strong&gt;main branch&lt;/strong&gt;, no matter the number of commits needed for the change, its semantic version in &lt;strong&gt;master&lt;/strong&gt; will be increased by 1 in the &lt;code&gt;minor&lt;/code&gt; counter. For instance, if the version in &lt;strong&gt;master&lt;/strong&gt; for library &lt;code&gt;my-library&lt;/code&gt; is &lt;code&gt;6.2.0&lt;/code&gt;, and &lt;code&gt;my-library&lt;/code&gt; has some changes in the current branch, its version in &lt;strong&gt;master&lt;/strong&gt; after merging the &lt;strong&gt;main branch&lt;/strong&gt;, will be &lt;code&gt;6.3.0&lt;/code&gt;.&lt;/p&gt;
&lt;h4 id=&#34;bot-merge-to-master&#34;&gt;Bot: merge to master&lt;/h4&gt;
&lt;p&gt;If new versions have been generated in the libraries, changes are merged and the libraries are published in @telefonica private &lt;code&gt;npm&lt;/code&gt; registry.&lt;/p&gt;
&lt;h2 id=&#34;finalize-step&#34;&gt;Finalize step&lt;/h2&gt;
&lt;p&gt;In this phase, all the branches created, packages installed in Github and the POEditor project are deleted.&lt;/p&gt;
&lt;h3 id=&#34;finalize-bot-steps&#34;&gt;Finalize Bot Steps&lt;/h3&gt;
&lt;h4 id=&#34;bot-remove-main-branches&#34;&gt;Bot: Remove Main Branches&lt;/h4&gt;
&lt;p&gt;The &lt;strong&gt;main branch&lt;/strong&gt; created in the repositories is removed.&lt;/p&gt;
&lt;h4 id=&#34;bot-uninstall-tools&#34;&gt;Bot: Uninstall Tools&lt;/h4&gt;
&lt;p&gt;This step removes the POEditor project created for the language resources of this &lt;strong&gt;main branch&lt;/strong&gt;.&lt;/p&gt;
&lt;h4 id=&#34;bot-remove-packages&#34;&gt;Bot: Remove Packages&lt;/h4&gt;
&lt;p&gt;This step removes the packages created in the branch for each library.&lt;/p&gt;

      </description>
    </item>
    
  </channel>
</rss>
