This Schedule forms part of the Web Development Master Services Agreement and describes the scope, responsibilities and limitations relating to Deployment and Version Control.p>
1. Version control
- We normally use version control (for example Git) to manage source code and configuration for Websites and Applications.
- We may:
- use branching strategies appropriate to the size and complexity of the Project;
- require that all changes are committed through version control; and
- limit direct changes on Live Environments to emergency fixes where strictly necessary.
- Where you or third parties also contribute code, we may agree standards and workflows to keep the repository stable.
2. Environments
- Where supported by your hosting or platform, we may work with separate environments, such as:
- Development;
- Staging or UAT; and
- Live (Production).
- We recommend that:
- new features and changes are deployed to Staging/UAT for testing first; and
- you carry out UAT in Staging before approving deployment to Live.
- You are responsible for provisioning environments where you control hosting or platform services.
3. Deployment process
- Where we handle deployments, we will:
- follow a repeatable process appropriate to the technology stack;
- aim to minimise disruption to users; and
- where practical, perform deployments at agreed times.
- We may use:
- automated deployment tools or scripts; and/or
- manual steps where automation is not practical.
- Emergency fixes may occasionally require direct changes on Live Environments. Where this happens, we will aim to reconcile those changes into version control promptly.
4. Rollbacks
- Where feasible, we will plan for rollbacks so that major issues introduced by a release can be reversed.
- The ability to roll back depends on:
- how the Application and data are structured;
- availability of backups or prior versions; and
- constraints of your hosting or platform.
- We will discuss rollback options with you as part of the deployment approach for significant changes.
5. Access and credentials
- You must provide and manage access credentials required for deployments to environments you control.
- We recommend:
- using individual, auditable accounts where possible;
- granting least-privilege access appropriate to the tasks; and
- revoking access promptly when no longer needed.
- We will handle credentials you provide with care and will not share them beyond the team members who need them to perform agreed work.