Once the project bootstrapping is complete, the team can begin developing new features. This section provides a detailed guide on delivering a new feature, covering every step from initial development to production deployment. To illustrate the procedure, we will develop a new feature called "Feature X," which will be included in the project's release 1.0.0. The process can be summarized in six steps, represented in the following diagram, making it easier to understand and follow along.
Follow the steps below to deliver this feature from the beginning of development to deployment in production. You will need access to your project repository that has been bootstrapped, a terminal (bash or PowerShell) with Git, and the GitHub page of your repository.
Use a command like the one below to clone your bootstrapped project repository. Make sure to replace the example repository name with the actual repository you created during the bootstrapping process:
git clone [email protected]:your-username/your-repository.git
cd your-repository
If you prefer to clone the repository using HTTPS instead of SSH, you can use the following command:
git clone https://github.com/your-username/your-repository.git
cd your-repository
The workflow starts by creating a feature branch named feature/feature_x
from the develop
branch. This is where the development team will work on the new feature X.
Switch to the develop
branch and pull the latest changes:
git checkout develop
git pull
Create the feature branch:
git checkout -b feature/feature_x
Make non-disruptive changes to the repository. For instance, create a file FEATUREX.md
in the project root:
Using Bash:
touch FEATUREX.md
Using PowerShell:
New-Item -ItemType File -Name "FEATUREX.md"
This ensures the new feature is developed in isolation, maintaining the integrity of the project's develop
branch and promptflow.
Upon completing the feature, create a Pull Request (PR) to merge changes from the feature branch feature/feature_x
to the develop
branch, which is the default branch where the team integrates changes.
Add changes, commit, and push to the feature branch:
git add .
git commit -m "Feature X complete"
git push origin feature/feature_x
Create the PR:
gh pr create --base develop --head feature/feature_x --title "Feature X" --body "Description of the changes and the impact."
You can also use the GitHub website to create the pull request. Remember to select develop
as the base branch and feature/feature_x
as the compare branch.
The creation of the PR triggers a PR Evaluation Pipeline to ensure that the code adheres to standards, passes unit tests, and the orchestration flow is evaluated by AI to ensure it meets quality metrics.
Approve the Pull Request, merging it into the develop
branch. This merge triggers the Continuous Integration (CI) Pipeline, which builds the orchestration flow and conducts AI-assisted evaluations using a comprehensive test dataset based on the Golden Dataset. Upon successful completion, the Continuous Deployment (CD) Pipeline is executed to deploy the flow to the dev environment.
Merge the PR using GitHub:
Go to the Pull Requests tab in your repository, select the recently created PR, and click on Merge pull request.
After confirming the stability of the develop
branch through testing in dev, create a release branch release/1.0.0
from develop
. This triggers a Continuous Deployment (CD) pipeline to deploy the application to the qa environment. Before deployment, an AI-based evaluation assesses quality, risk and safety evaluation. The application in qa is then used for User Acceptance Testing (UAT) and red-teaming ou LLM App.
Create the release branch:
git checkout develop
git pull origin develop
git checkout -b release/1.0.0
git push origin release/1.0.0
After UAT tests in the qa environment confirm that the application is ready for production, create a Pull Request (PR) to merge the changes into the main
branch from the release/1.0.0
branch.
Create the PR:
Below is an example utilizing the GitHub CLI:
gh pr create --base main --head release/1.0.0 --title "Release 1.0.0" --body "Merging release/1.0.0 into main after successful UAT in QA environment"
You can also use the GitHub website to create the pull request. Remember to select main
as the base branch and release/1.0.0
as the compare branch.
Once the Pull Request (PR) to the main
branch is approved on GitHub, go to the Pull Requests tab of your project repository on GitHub, select the PR created for merging into production, and click on Merge pull request to manually approve the merge of release/1.0.0
into the main
branch. This action triggers the Continuous Deployment (CD) pipeline, which deploys the code to the prod environment.