---
title: "New release process"
canonical: "https://alto-intranet.refined.com/space/DDI/2916529/New%20release%20process"
format: markdown
---
## Development Phase:

- Continuous Integration (CI) systems automatically build and test the code with each commit to detect integration issues early.

## Staging Environment:

- After a feature is fully developed and tested in isolation, it is merged into the staging branch.
- The staging branch represents a stable and tested version of the software that is close to what will be released.

## Integration and System Testing:

- The integrated code in the staging branch undergoes extensive integration testing in a dedicated test environment.
- System tests are conducted to verify that the software works as expected when all components are combined.

## Release Candidate:

- Once all tests pass successfully, a release candidate is prepared from the staging branch.
- The release candidate is thoroughly tested to identify any last-minute issues or bugs.

## User Acceptance Testing (UAT):

- In this phase, selected users or stakeholders conduct UAT on the release candidate.
- Feedback is collected, and any critical issues discovered are addressed.

## Production Release:

- If the UAT feedback is positive and all issues are resolved, the release candidate is marked as the final production version.
- The software is deployed to the production environment, making it available to end-users.

## Monitoring and Feedback:

- After the release, the team monitors the software's performance and user feedback.
- Any post-release issues or bugs are promptly addressed with hotfixes.

## Versioning and Rollbacks:

- Use semantic versioning (e.g., MAJOR.MINOR.PATCH) to track releases and indicate backward compatibility.
- In case of severe issues, have a rollback plan in place to revert to the previous stable version.

## Documentation and Communication:

- Update the documentation, release notes, and user guides to reflect the changes in the new version.
- Communicate the release details to end-users and stakeholders to ensure a smooth transition.

## Post-Release Analysis:

- Conduct a post-mortem analysis to evaluate the release process and identify areas for improvement.
- Use feedback and insights to enhance the release process for future updates.